local TweenService = game:GetService("TweenService") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local StarterGui = game:GetService("StarterGui") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") -- Global variables local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local ScreenGui = Instance.new("ScreenGui") local drawings = {} local ESPEnabled = false local teamCheckEnabled = false -- GUI Configuration ScreenGui.Name = "KuzaHubGui" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = game:GetService("CoreGui") ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling -- Function to create UI elements local function createElement(className, props) local element = Instance.new(className) for prop, value in pairs(props) do element[prop] = value end return element end -- ========== INITIAL NOTIFICATION ========== local Notification = createElement("Frame", { Size = UDim2.new(0, 500, 0, 100), Position = UDim2.new(0.5, -250, 0.1, 0), BackgroundColor3 = Color3.fromRGB(20, 20, 20), BorderSizePixel = 0, Parent = ScreenGui, Active = true, Draggable = true, ZIndex = 2 }) local NotificationText = createElement("TextLabel", { Size = UDim2.new(1, -50, 1, 0), Position = UDim2.new(0, 10, 0, 0), BackgroundTransparency = 1, Text = "Kuza Hub - Premium Version\nESP System Activated!", TextColor3 = Color3.new(1, 1, 1), Font = Enum.Font.GothamBold, TextSize = 22, TextWrapped = true, TextYAlignment = Enum.TextYAlignment.Center, Parent = Notification, ZIndex = 3 }) -- Rainbow effect coroutine.wrap(function() local hue = 0 while Notification and Notification.Parent do hue = (hue + 0.01) % 1 NotificationText.TextColor3 = Color3.fromHSV(hue, 1, 1) RunService.Heartbeat:Wait() end end)() local CloseNotificationBtn = createElement("TextButton", { Size = UDim2.new(0, 30, 0, 30), Position = UDim2.new(1, -35, 0, 5), BackgroundColor3 = Color3.fromRGB(255, 50, 50), Text = "X", Font = Enum.Font.GothamBold, TextSize = 20, TextColor3 = Color3.new(1, 1, 1), Parent = Notification, AutoButtonColor = false, ZIndex = 3 }) CloseNotificationBtn.MouseEnter:Connect(function() CloseNotificationBtn.BackgroundColor3 = Color3.fromRGB(200, 0, 0) end) CloseNotificationBtn.MouseLeave:Connect(function() CloseNotificationBtn.BackgroundColor3 = Color3.fromRGB(255, 50, 50) end) CloseNotificationBtn.MouseButton1Click:Connect(function() Notification:Destroy() end) -- ========== MAIN INTERFACE ========== local MainFrame = createElement("Frame", { Size = UDim2.new(0, 350, 0, 300), -- Reduced size due to removed features Position = UDim2.new(0.5, -175, 0.4, 0), BackgroundColor3 = Color3.fromRGB(25, 25, 25), BorderSizePixel = 0, Active = true, Draggable = true, Parent = ScreenGui, ZIndex = 2 }) local TopBar = createElement("Frame", { Size = UDim2.new(1, 0, 0, 40), BackgroundColor3 = Color3.fromRGB(35, 35, 35), BorderSizePixel = 0, Parent = MainFrame, ZIndex = 3 }) -- "Kuza Hub" title with rainbow effect local Title = createElement("TextLabel", { Size = UDim2.new(1, -100, 1, 0), Position = UDim2.new(0, 10, 0, 0), BackgroundTransparency = 1, Text = "Kuza Hub - ESP", TextColor3 = Color3.new(1, 1, 1), TextSize = 22, Font = Enum.Font.GothamBold, TextXAlignment = Enum.TextXAlignment.Left, Parent = TopBar, ZIndex = 4 }) -- Rainbow effect for the title coroutine.wrap(function() while Title and Title.Parent do for hue = 0, 1, 0.01 do Title.TextColor3 = Color3.fromHSV(hue, 1, 1) RunService.Heartbeat:Wait() end end end)() local MinimizeBtn = createElement("TextButton", { Size = UDim2.new(0, 40, 0, 30), Position = UDim2.new(1, -90, 0, 5), BackgroundColor3 = Color3.fromRGB(255, 170, 0), Text = "-", Font = Enum.Font.GothamBold, TextSize = 24, TextColor3 = Color3.new(1, 1, 1), Parent = TopBar, AutoButtonColor = false, ZIndex = 4 }) local CloseBtn = createElement("TextButton", { Size = UDim2.new(0, 40, 0, 30), Position = UDim2.new(1, -45, 0, 5), BackgroundColor3 = Color3.fromRGB(255, 70, 70), Text = "X", Font = Enum.Font.GothamBold, TextSize = 20, TextColor3 = Color3.new(1, 1, 1), Parent = TopBar, AutoButtonColor = false, ZIndex = 4 }) -- Main buttons local ESPButton = createElement("TextButton", { Size = UDim2.new(0.85, 0, 0, 40), Position = UDim2.new(0.075, 0, 0.15, 0), -- Adjusted position BackgroundColor3 = Color3.fromRGB(40, 40, 255), Text = "Enable ESP", Font = Enum.Font.GothamBold, TextSize = 20, TextColor3 = Color3.new(1, 1, 1), Parent = MainFrame, ZIndex = 3 }) local TeamCheckBtn = createElement("TextButton", { Size = UDim2.new(0.85, 0, 0, 40), Position = UDim2.new(0.075, 0, 0.35, 0), -- Adjusted position BackgroundColor3 = Color3.fromRGB(120, 80, 200), Text = "Team Check: OFF", Font = Enum.Font.GothamBold, TextSize = 20, TextColor3 = Color3.new(1, 1, 1), Parent = MainFrame, ZIndex = 3 }) local DiscordBtn = createElement("TextButton", { Size = UDim2.new(0.85, 0, 0, 40), Position = UDim2.new(0.075, 0, 0.55, 0), -- Adjusted position BackgroundColor3 = Color3.fromRGB(88, 101, 242), Text = "Join Discord", Font = Enum.Font.GothamBold, TextSize = 20, TextColor3 = Color3.new(1, 1, 1), Parent = MainFrame, ZIndex = 3 }) -- ========== ESP SYSTEM ========== local function ClearDrawings() for player, playerDrawings in pairs(drawings) do for _, drawing in pairs(playerDrawings) do drawing:Remove() end drawings[player] = nil end end local function IsEnemy(player) if not teamCheckEnabled then return true end local localTeam = LocalPlayer.Team local playerTeam = player.Team if not localTeam or not playerTeam then return true end return localTeam ~= playerTeam end local function UpdateESP() for player, playerDrawings in pairs(drawings) do local char = player.Character if not char then for _, drawing in pairs(playerDrawings) do drawing.Visible = false end else local hrp = char:FindFirstChild("HumanoidRootPart") local head = char:FindFirstChild("Head") local humanoid = char:FindFirstChildOfClass("Humanoid") local shouldShow = hrp and head and humanoid and humanoid.Health > 0 and IsEnemy(player) if shouldShow then local pos, onScreen = Camera:WorldToViewportPoint(hrp.Position) if onScreen then local headPos = Camera:WorldToViewportPoint(head.Position) local rootPos = Camera:WorldToViewportPoint(hrp.Position - Vector3.new(0, 3, 0)) local height = (headPos.Y - rootPos.Y) * 1.5 local width = height / 2 playerDrawings.Box.Size = Vector2.new(width, height) playerDrawings.Box.Position = Vector2.new(pos.X - width/2, pos.Y - height/2) playerDrawings.Box.Visible = true playerDrawings.Name.Position = Vector2.new(pos.X, pos.Y - height/2 - 20) playerDrawings.Name.Text = player.Name playerDrawings.Name.Visible = true playerDrawings.Tracer.To = Vector2.new(pos.X, pos.Y) playerDrawings.Tracer.Visible = true else for _, drawing in pairs(playerDrawings) do drawing.Visible = false end end else for _, drawing in pairs(playerDrawings) do drawing.Visible = false end end end end end local function CreatePlayerESP(player) if drawings[player] then return end drawings[player] = { Box = Drawing.new("Square"), Name = Drawing.new("Text"), Tracer = Drawing.new("Line") } local pDrawings = drawings[player] pDrawings.Box.Thickness = 2 pDrawings.Box.Filled = false pDrawings.Box.Visible = false pDrawings.Box.Color = Color3.fromRGB(0, 255, 255) -- Cyan color pDrawings.Name.Size = 16 pDrawings.Name.Center = true pDrawings.Name.Outline = true pDrawings.Name.Visible = false pDrawings.Name.Color = Color3.fromRGB(255, 255, 255) -- White color pDrawings.Tracer.Thickness = 1 pDrawings.Tracer.Visible = false pDrawings.Tracer.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y) pDrawings.Tracer.Color = Color3.fromRGB(255, 0, 0) -- Red color end -- Player management local function SetupPlayer(player) if player ~= LocalPlayer then CreatePlayerESP(player) end end Players.PlayerAdded:Connect(SetupPlayer) Players.PlayerRemoving:Connect(function(player) if drawings[player] then for _, drawing in pairs(drawings[player]) do drawing:Remove() end drawings[player] = nil end end) for _, player in ipairs(Players:GetPlayers()) do SetupPlayer(player) end -- ========== INTERACTIONS ========== -- Main buttons ESPButton.MouseButton1Click:Connect(function() ESPEnabled = not ESPEnabled ESPButton.Text = ESPEnabled and "Disable ESP" or "Enable ESP" ESPButton.BackgroundColor3 = ESPEnabled and Color3.fromRGB(0, 170, 255) or Color3.fromRGB(40, 40, 255) if ESPEnabled then for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then CreatePlayerESP(player) end end RunService:BindToRenderStep("ESP_Update", Enum.RenderPriority.Last.Value, UpdateESP) StarterGui:SetCore("SendNotification", { Title = "ESP Activated", Text = "ESP system activated successfully!", Duration = 3 }) else RunService:UnbindFromRenderStep("ESP_Update") ClearDrawings() StarterGui:SetCore("SendNotification", { Title = "ESP Deactivated", Text = "ESP system deactivated!", Duration = 3 }) end end) TeamCheckBtn.MouseButton1Click:Connect(function() teamCheckEnabled = not teamCheckEnabled TeamCheckBtn.Text = "Team Check: " .. (teamCheckEnabled and "ON" or "OFF") TeamCheckBtn.BackgroundColor3 = teamCheckEnabled and Color3.fromRGB(80, 200, 120) or Color3.fromRGB(120, 80, 200) if ESPEnabled then UpdateESP() end end) DiscordBtn.MouseButton1Click:Connect(function() setclipboard("https://discord.gg/BMAzkqXzWR") StarterGui:SetCore("SendNotification", { Title = "Discord Copied", Text = "Link copied to clipboard!", Duration = 3 }) end) -- Minimize/Maximize local isMinimized = false MinimizeBtn.MouseButton1Click:Connect(function() isMinimized = not isMinimized local newSize = isMinimized and UDim2.new(0, 350, 0, 40) or UDim2.new(0, 350, 0, 300) local tween = TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad), {Size = newSize}) tween:Play() if not isMinimized then tween.Completed:Wait() ESPButton.Visible = true TeamCheckBtn.Visible = true DiscordBtn.Visible = true else ESPButton.Visible = false TeamCheckBtn.Visible = false DiscordBtn.Visible = false end end) CloseBtn.MouseButton1Click:Connect(function() -- Clean up ESP before closing if ESPEnabled then ClearDrawings() RunService:UnbindFromRenderStep("ESP_Update") end local tween = TweenService:Create(MainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Quad), { Position = UDim2.new(0.5, 500, 0.4, 0) }) tween:Play() tween.Completed:Wait() ScreenGui:Destroy() end) -- Initial welcome notification delay(1, function() StarterGui:SetCore("SendNotification", { Title = "Kuza Hub Activated", Text = "ESP system ready!", Duration = 5, Icon = "rbxassetid://6724439482" }) end)