--[[ ███████╗██╗ ██╗██╗ ██╗██████╗ ╚══███╔╝██║ ██║██║ ██║██╔══██╗ ███╔╝ ███████║██║ ██║██████╔╝ ███╔╝ ██╔══██║██║ ██║██╔══██╗ ███████╗██║ ██║╚██████╔╝██████╔╝ ╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ Z HUB | RAINBOW BORDER | AUTO DETECTION - Moveable GUI with RGB rainbow border - ESP toggle (on/off) – shows players through walls - Auto‑leave toggle – kicks you INSTANTLY when stealing is detected - NO SCRIPT EDITING REQUIRED – works automatically --]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- ========== STATE VARIABLES ========== local espEnabled = true local autoLeaveEnabled = false -- Turn ON via the GUI button -- ========== ESP SYSTEM ========== local espFolder = Instance.new("Folder") espFolder.Name = "ZHub_ESP" espFolder.Parent = PlayerGui local activeESP = {} local function createESPForPlayer(player) if player == LocalPlayer then return end if activeESP[player] then return end local character = player.Character if not character or not character:FindFirstChild("HumanoidRootPart") then return end local highlight = Instance.new("Highlight") highlight.Name = "ZHubESP" highlight.FillTransparency = 0.8 highlight.OutlineTransparency = 0.2 highlight.OutlineColor = Color3.fromRGB(0, 170, 255) highlight.FillColor = Color3.fromRGB(0, 100, 200) highlight.Adornee = character highlight.Enabled = espEnabled highlight.Parent = espFolder local head = character:FindFirstChild("Head") if not head then return end local billboard = Instance.new("BillboardGui") billboard.Name = "NameTag" billboard.Size = UDim2.new(0, 200, 0, 40) billboard.StudsOffset = Vector3.new(0, 2.5, 0) billboard.AlwaysOnTop = true billboard.Enabled = espEnabled billboard.Parent = head local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(1, 0, 1, 0) nameLabel.BackgroundTransparency = 1 nameLabel.Text = player.Name nameLabel.TextColor3 = Color3.fromRGB(0, 170, 255) nameLabel.TextStrokeTransparency = 0.3 nameLabel.Font = Enum.Font.GothamBold nameLabel.TextScaled = true nameLabel.Parent = billboard local healthBar = Instance.new("Frame") healthBar.Size = UDim2.new(1, 0, 0.2, 0) healthBar.Position = UDim2.new(0, 0, 1, 0) healthBar.BackgroundColor3 = Color3.fromRGB(0, 200, 0) healthBar.BorderSizePixel = 0 healthBar.Parent = billboard local humanoid = character:FindFirstChild("Humanoid") local connection if humanoid then connection = humanoid.HealthChanged:Connect(function(health) local maxHealth = humanoid.MaxHealth or 100 local percent = math.clamp(health / maxHealth, 0, 1) healthBar.Size = UDim2.new(percent, 0, 0.2, 0) healthBar.BackgroundColor3 = Color3.fromRGB(255 * (1-percent), 200 * percent, 0) end) end activeESP[player] = { highlight = highlight, billboard = billboard, healthConnection = connection } end local function removeESPForPlayer(player) local data = activeESP[player] if data then if data.highlight then data.highlight:Destroy() end if data.billboard then data.billboard:Destroy() end if data.healthConnection then data.healthConnection:Disconnect() end activeESP[player] = nil end end local function refreshAllESP() for _, data in pairs(activeESP) do if data.highlight then data.highlight.Enabled = espEnabled end if data.billboard then data.billboard.Enabled = espEnabled end end end for _, player in ipairs(Players:GetPlayers()) do createESPForPlayer(player) end Players.PlayerAdded:Connect(createESPForPlayer) Players.PlayerRemoving:Connect(removeESPForPlayer) Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function() task.wait(0.5) removeESPForPlayer(player) createESPForPlayer(player) end) end) -- ========== AUTO-LEAVE & STEAL DETECTION (FULLY AUTOMATIC) ========== local function kickPlayer() local kickMsg = "⚠️ SOMEONE TRIED STEALING AND WE BLOCKED 😁✌🙏 THEM ⚠️\n\n➤ JOIN OUR DISCORD:\nhttps://discord.gg/JUca27emW\n\n[ Z HUB | PROTECTED ]" task.spawn(function() task.wait(0.05) LocalPlayer:Kick(kickMsg) end) end local function onStealDetected() if autoLeaveEnabled then kickPlayer() end end -- Automatically find any part that could be the Valentino and watch for touches local function watchParts() local potentialParts = {"Valentino", "StealZone", "Vault", "Target", "Gem", "Item", "Present"} for _, name in ipairs(potentialParts) do local part = workspace:FindFirstChild(name) if part then part.Touched:Connect(function(hit) if not autoLeaveEnabled then return end local humanoid = hit.Parent and hit.Parent:FindFirstChild("Humanoid") if humanoid then local player = Players:GetPlayerFromCharacter(hit.Parent) if player and player ~= LocalPlayer then onStealDetected() end end end) end end end -- Automatically hook any remote event that sounds like stealing local function hookRemotes() local remoteNames = {"Steal", "Take", "Rob", "Grab", "Claim", "Valentino"} local replicatedStorage = game:GetService("ReplicatedStorage") for _, child in ipairs(replicatedStorage:GetChildren()) do if child:IsA("RemoteEvent") then local lowerName = child.Name:lower() for _, keyword in ipairs(remoteNames) do if lowerName:find(keyword:lower()) then local oldFire = child.FireServer child.FireServer = function(...) if autoLeaveEnabled then onStealDetected() end return oldFire(...) end break end end end end end -- Watch for any value that indicates stolen state local function watchValues() local checkForStolenValue = function(obj) if obj:IsA("BoolValue") and (obj.Name:lower():find("stolen") or obj.Name:lower():find("taken")) then obj.Changed:Connect(function() if autoLeaveEnabled and obj.Value == true then onStealDetected() end end) elseif obj:IsA("NumberValue") and (obj.Name:lower():find("owner") or obj.Name:lower():find("team")) then local oldValue = obj.Value obj.Changed:Connect(function(newValue) if autoLeaveEnabled and oldValue ~= newValue and newValue ~= LocalPlayer.UserId then onStealDetected() end oldValue = newValue end) end end for _, obj in ipairs(workspace:GetDescendants()) do checkForStolenValue(obj) end workspace.DescendantAdded:Connect(checkForStolenValue) end -- Watch the player's own character for unexpected changes (e.g., item removed) local function watchInventory() local character = LocalPlayer.Character if character then character.ChildRemoved:Connect(function(child) if autoLeaveEnabled and child:IsA("Tool") then -- Someone might have stolen a tool from you onStealDetected() end end) end LocalPlayer.CharacterAdded:Connect(function(newChar) newChar.ChildRemoved:Connect(function(child) if autoLeaveEnabled and child:IsA("Tool") then onStealDetected() end end) end) end -- Start all detectors watchParts() hookRemotes() watchValues() watchInventory() -- Optional: test key (press 'E' to simulate a steal). Remove this line if you don't want it. UserInputService.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.E then warn("[Z HUB TEST] Steal simulation – you would be kicked if Auto-Leave is ON") onStealDetected() end end) -- ========== GUI: RAINBOW BORDER + TWO TOGGLES ========== local gui = Instance.new("ScreenGui") gui.Name = "ZHub" gui.ResetOnSpawn = false gui.Parent = PlayerGui local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 340, 0, 240) frame.Position = UDim2.new(0.5, -170, 0.75, 0) frame.BackgroundColor3 = Color3.fromRGB(8, 8, 16) frame.BackgroundTransparency = 0.1 frame.BorderSizePixel = 2 frame.Active = true frame.Draggable = true frame.Parent = gui -- Rainbow glitch lines local glitchLines = {} for i = 1, 6 do local line = Instance.new("Frame") line.Size = UDim2.new(1, 0, 0, 2) line.Position = UDim2.new(0, 0, i * 0.14, 0) line.BackgroundTransparency = 0.6 line.BorderSizePixel = 0 line.Parent = frame table.insert(glitchLines, line) end local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 45) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Text = "Z HUB" title.TextColor3 = Color3.fromRGB(0, 150, 255) title.TextScaled = true title.Font = Enum.Font.GothamBlack title.TextStrokeTransparency = 0.2 title.Parent = frame local desc = Instance.new("TextLabel") desc.Size = UDim2.new(1, 0, 0, 20) desc.Position = UDim2.new(0, 0, 0, 42) desc.BackgroundTransparency = 1 desc.Text = "⚡ RAINBOW EDITION | AUTO DETECT ⚡" desc.TextColor3 = Color3.fromRGB(0, 170, 255) desc.TextSize = 12 desc.Font = Enum.Font.Gotham desc.Parent = frame -- ESP Toggle local espSlot = Instance.new("Frame") espSlot.Size = UDim2.new(0.9, 0, 0, 45) espSlot.Position = UDim2.new(0.05, 0, 0, 70) espSlot.BackgroundColor3 = Color3.fromRGB(0, 20, 40) espSlot.BorderColor3 = Color3.fromRGB(0, 170, 255) espSlot.BorderSizePixel = 1 espSlot.Parent = frame local espLabel = Instance.new("TextLabel") espLabel.Size = UDim2.new(0.5, 0, 1, 0) espLabel.Position = UDim2.new(0, 5, 0, 0) espLabel.BackgroundTransparency = 1 espLabel.Text = "🔍 ESP VISION" espLabel.TextColor3 = Color3.fromRGB(0, 170, 255) espLabel.TextSize = 16 espLabel.TextXAlignment = Enum.TextXAlignment.Left espLabel.Font = Enum.Font.GothamBold espLabel.Parent = espSlot local espStatus = Instance.new("TextLabel") espStatus.Size = UDim2.new(0.3, 0, 1, 0) espStatus.Position = UDim2.new(0.55, 0, 0, 0) espStatus.BackgroundTransparency = 1 espStatus.Text = "ON" espStatus.TextColor3 = Color3.fromRGB(0, 255, 0) espStatus.TextSize = 16 espStatus.Font = Enum.Font.GothamBold espStatus.Parent = espSlot local espToggleBtn = Instance.new("TextButton") espToggleBtn.Size = UDim2.new(0, 70, 0, 30) espToggleBtn.Position = UDim2.new(0.75, 0, 0.15, 0) espToggleBtn.BackgroundColor3 = Color3.fromRGB(0, 80, 200) espToggleBtn.BorderColor3 = Color3.fromRGB(0, 170, 255) espToggleBtn.Text = "OFF" espToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) espToggleBtn.TextSize = 14 espToggleBtn.Font = Enum.Font.GothamBold espToggleBtn.Parent = espSlot -- Auto-Leave Toggle local leaveSlot = Instance.new("Frame") leaveSlot.Size = UDim2.new(0.9, 0, 0, 45) leaveSlot.Position = UDim2.new(0.05, 0, 0, 125) leaveSlot.BackgroundColor3 = Color3.fromRGB(0, 20, 40) leaveSlot.BorderColor3 = Color3.fromRGB(0, 170, 255) leaveSlot.BorderSizePixel = 1 leaveSlot.Parent = frame local leaveLabel = Instance.new("TextLabel") leaveLabel.Size = UDim2.new(0.5, 0, 1, 0) leaveLabel.Position = UDim2.new(0, 5, 0, 0) leaveLabel.BackgroundTransparency = 1 leaveLabel.Text = "🛡️ AUTO-LEAVE" leaveLabel.TextColor3 = Color3.fromRGB(0, 170, 255) leaveLabel.TextSize = 16 leaveLabel.TextXAlignment = Enum.TextXAlignment.Left leaveLabel.Font = Enum.Font.GothamBold leaveLabel.Parent = leaveSlot local leaveStatus = Instance.new("TextLabel") leaveStatus.Size = UDim2.new(0.3, 0, 1, 0) leaveStatus.Position = UDim2.new(0.55, 0, 0, 0) leaveStatus.BackgroundTransparency = 1 leaveStatus.Text = "OFF" leaveStatus.TextColor3 = Color3.fromRGB(255, 100, 100) leaveStatus.TextSize = 16 leaveStatus.Font = Enum.Font.GothamBold leaveStatus.Parent = leaveSlot local leaveToggleBtn = Instance.new("TextButton") leaveToggleBtn.Size = UDim2.new(0, 70, 0, 30) leaveToggleBtn.Position = UDim2.new(0.75, 0, 0.15, 0) leaveToggleBtn.BackgroundColor3 = Color3.fromRGB(0, 80, 200) leaveToggleBtn.BorderColor3 = Color3.fromRGB(0, 170, 255) leaveToggleBtn.Text = "ENABLE" leaveToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) leaveToggleBtn.TextSize = 14 leaveToggleBtn.Font = Enum.Font.GothamBold leaveToggleBtn.Parent = leaveSlot local discord = Instance.new("TextLabel") discord.Size = UDim2.new(1, 0, 0, 25) discord.Position = UDim2.new(0, 0, 0, 185) discord.BackgroundTransparency = 1 discord.Text = "💀 discord.gg/JUca27emW 💀" discord.TextColor3 = Color3.fromRGB(0, 170, 255) discord.TextSize = 14 discord.Font = Enum.Font.Gotham discord.Parent = frame -- Toggle logic local function updateESPUI() if espEnabled then espStatus.Text = "ON" espStatus.TextColor3 = Color3.fromRGB(0, 255, 0) espToggleBtn.Text = "OFF" espToggleBtn.BackgroundColor3 = Color3.fromRGB(200, 0, 0) else espStatus.Text = "OFF" espStatus.TextColor3 = Color3.fromRGB(255, 100, 100) espToggleBtn.Text = "ON" espToggleBtn.BackgroundColor3 = Color3.fromRGB(0, 80, 200) end refreshAllESP() end local function updateLeaveUI() if autoLeaveEnabled then leaveStatus.Text = "ON" leaveStatus.TextColor3 = Color3.fromRGB(0, 255, 0) leaveToggleBtn.Text = "DISABLE" leaveToggleBtn.BackgroundColor3 = Color3.fromRGB(200, 0, 0) leaveSlot.BackgroundColor3 = Color3.fromRGB(0, 40, 20) else leaveStatus.Text = "OFF" leaveStatus.TextColor3 = Color3.fromRGB(255, 100, 100) leaveToggleBtn.Text = "ENABLE" leaveToggleBtn.BackgroundColor3 = Color3.fromRGB(0, 80, 200) leaveSlot.BackgroundColor3 = Color3.fromRGB(0, 20, 40) end end espToggleBtn.MouseButton1Click:Connect(function() espEnabled = not espEnabled updateESPUI() end) leaveToggleBtn.MouseButton1Click:Connect(function() autoLeaveEnabled = not autoLeaveEnabled updateLeaveUI() end) updateESPUI() updateLeaveUI() -- Rainbow border animation local hue = 0 RunService.RenderStepped:Connect(function() hue = (hue + 0.005) % 1 local rainbow = Color3.fromHSV(hue, 1, 1) frame.BorderColor3 = rainbow for _, line in ipairs(glitchLines) do line.BackgroundColor3 = rainbow end end) print("✅ Z HUB loaded – everything works automatically. Toggle Auto-Leave ON to enable instant kick.")