-- ===== CONFIG ===== local TOGGLE_HIDE_KEY = Enum.KeyCode.LeftAlt -- ===== SERVICES ===== local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local CoreGui = game:GetService("CoreGui") local Workspace = game:GetService("Workspace") local Debris = game:GetService("Debris") local LocalPlayer = Players.LocalPlayer -- ===== STATE ===== local guiVisible = true local flyEnabled = false local flySpeed = 60 local flyObjects = {} -- will contain BodyGyro and BodyVelocity local noclipEnabled = false local currentTab = "Main" local minimized = false local walkSpeed = 16 -- Aim / ESP state local aimbotEnabled = false local aimbotMouseActive = false local aimbotFOV = 120 -- in pixels local aimbotSmooth = 0.25 -- 0 = instant, 1 = very slow (lerp factor) local aimbotTargetPart = "HumanoidRootPart" -- "Head" or "HumanoidRootPart" local espEnabled = false local espThroughWalls = true local espNameTag = true local espColor = Color3.fromRGB(255,50,50) -- default -- capability detection & fallback local HighlightSupported = false local DrawingSupported = false -- Keep references to slider dragging states to avoid cross interference local sliderStates = { fly = {dragging=false}, walk = {dragging=false}, aimFOV = {dragging=false}, aimSmooth = {dragging=false}, espR = {dragging=false}, espG = {dragging=false}, espB = {dragging=false} } -- utility: safe destroy local function safeDestroy(obj) if obj and obj.Parent then pcall(function() obj:Destroy() end) end end -- ===== ENV DETECTION ===== do -- Highlight detection: try creating/destroying a temporary Highlight safely local ok, res = pcall(function() local test = Instance.new("Highlight") test.Name = "__xNicky_test_hl" test.Parent = Workspace test:Destroy() return true end) HighlightSupported = ok and res -- Drawing detection (common in many executors) DrawingSupported = (type(Drawing) == "table" or type(drawing) == "table" or type(Drawing) == "function") end -- ===== FLY IMPLEMENTATION ===== local function enableFlyForCharacter(char) if not char then return end local root = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") if not root then return end -- Create BodyGyro local bg = root:FindFirstChild("xNickyFly_BG") if not bg then bg = Instance.new("BodyGyro") bg.Name = "xNickyFly_BG" end bg.P = 9000 bg.MaxTorque = Vector3.new(9e9,9e9,9e9) bg.CFrame = root.CFrame bg.Parent = root -- Create BodyVelocity local bv = root:FindFirstChild("xNickyFly_BV") if not bv then bv = Instance.new("BodyVelocity") bv.Name = "xNickyFly_BV" end bv.MaxForce = Vector3.new(9e9,9e9,9e9) bv.Velocity = Vector3.new(0,0,0) bv.Parent = root flyObjects = {bg, bv} spawn(function() while flyEnabled and root and root.Parent do RunService.RenderStepped:Wait() local cam = workspace.CurrentCamera if not cam then break end local dir = Vector3.new() if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir += cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir -= cam.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir -= cam.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir += cam.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir += Vector3.new(0,1,0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir -= Vector3.new(0,1,0) end if dir.Magnitude > 0 then bv.Velocity = dir.Unit * flySpeed else bv.Velocity = Vector3.new(0,0,0) end local target = Vector3.new(cam.CFrame.LookVector.X, 0, cam.CFrame.LookVector.Z) if target.Magnitude > 0 then bg.CFrame = CFrame.new(root.Position, root.Position + target) end end if root and root.Parent then pcall(function() root.Velocity = Vector3.new(0,0,0) end) end for _,obj in ipairs(flyObjects) do safeDestroy(obj) end flyObjects = {} end) end local function setFlyEnabled(state) flyEnabled = state and true or false local char = LocalPlayer.Character if flyEnabled then if char then enableFlyForCharacter(char) end else for _,v in ipairs(flyObjects) do safeDestroy(v) end flyObjects = {} local hrp = char and (char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso")) if hrp then pcall(function() hrp.Velocity = Vector3.new(0,0,0) end) end local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then pcall(function() hum.PlatformStand = false end) end end end -- ===== NOCLIP IMPLEMENTATION ===== RunService.Stepped:Connect(function() if noclipEnabled then local char = LocalPlayer and LocalPlayer.Character if char then for _,part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") then pcall(function() part.CanCollide = false end) end end end end end) -- ===== CHARACTER HANDLING ===== local function onCharacterAdded(char) local hum = char:FindFirstChildOfClass("Humanoid") if hum then hum.Died:Connect(function() flyEnabled = false for _,v in ipairs(flyObjects) do safeDestroy(v) end flyObjects = {} end) end if flyEnabled then enableFlyForCharacter(char) end end if LocalPlayer.Character then onCharacterAdded(LocalPlayer.Character) end LocalPlayer.CharacterAdded:Connect(onCharacterAdded) -- ===== TELEPORT FUNCTIONS ===== local function teleportToPlayer(name) local target = Players:FindFirstChild(name) local myHRP = LocalPlayer.Character and (LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or LocalPlayer.Character:FindFirstChild("Torso") or LocalPlayer.Character:FindFirstChild("UpperTorso")) if target and target.Character and myHRP then local hrp = target.Character:FindFirstChild("HumanoidRootPart") or target.Character:FindFirstChild("Torso") or target.Character:FindFirstChild("UpperTorso") if hrp then pcall(function() myHRP.CFrame = hrp.CFrame + Vector3.new(0,3,0) end) end end end local function teleportPlayerToMe(name) local target = Players:FindFirstChild(name) local myHRP = LocalPlayer.Character and (LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or LocalPlayer.Character:FindFirstChild("Torso") or LocalPlayer.Character:FindFirstChild("UpperTorso")) if target and target.Character and myHRP then local targetHRP = target.Character:FindFirstChild("HumanoidRootPart") or target.Character:FindFirstChild("Torso") or target.Character:FindFirstChild("UpperTorso") if targetHRP then pcall(function() targetHRP.CFrame = myHRP.CFrame + Vector3.new(0,3,0) end) end end end _G.teleportToPlayer = teleportToPlayer _G.teleportPlayerToMe = teleportPlayerToMe -- ===== GUI CREATION ===== local screenGui = Instance.new("ScreenGui") screenGui.Name = "xNicky_HUB_vFINAL" screenGui.ResetOnSpawn = false screenGui.Parent = CoreGui local function makeFrame(parent, size, pos, color, round) local f = Instance.new("Frame") f.Size = size f.Position = pos f.BackgroundColor3 = color or Color3.fromRGB(25,25,25) f.BorderSizePixel = 0 f.Parent = parent local u = Instance.new("UICorner") u.CornerRadius = UDim.new(0, round or 12) u.Parent = f return f end -- header, main, tabs, content local mainFrame = makeFrame(screenGui, UDim2.new(0,560,0,360), UDim2.new(0.5, -280, 0.5, -180), Color3.fromRGB(18,18,20), 14) local header = makeFrame(mainFrame, UDim2.new(1,0,0,52), UDim2.new(0,0,0,0), Color3.fromRGB(10,10,12), 14) local title = Instance.new("TextLabel", header) title.Size = UDim2.new(1, -120, 1, 0) title.Position = UDim2.new(0, 12, 0, 0) title.BackgroundTransparency = 1 title.Text = "xNicky HUB" title.Font = Enum.Font.GothamBold title.TextSize = 20 title.TextColor3 = Color3.fromRGB(255,255,255) title.TextXAlignment = Enum.TextXAlignment.Left local buttonsContainer = Instance.new("Frame", header) buttonsContainer.Size = UDim2.new(0,100,1,0) buttonsContainer.Position = UDim2.new(1, -110, 0, 0) buttonsContainer.BackgroundTransparency = 1 local function makeHeaderButton(parent, symbol, x) local b = Instance.new("TextButton", parent) b.Size = UDim2.new(0,36,0,28) b.Position = UDim2.new(0, x, 0, 12) b.BackgroundColor3 = Color3.fromRGB(30,30,32) b.BorderSizePixel = 0 b.Text = symbol b.Font = Enum.Font.GothamBold b.TextSize = 18 b.TextColor3 = Color3.fromRGB(255,255,255) local u = Instance.new("UICorner", b) u.CornerRadius = UDim.new(0,8) return b end local minimizeBtn = makeHeaderButton(buttonsContainer, "-", 0) local closeBtn = makeHeaderButton(buttonsContainer, "X", 44) local tabsFrame = Instance.new("Frame", mainFrame) tabsFrame.Size = UDim2.new(0,140,1,-68) tabsFrame.Position = UDim2.new(0,12,0,56) tabsFrame.BackgroundTransparency = 1 local contentFrame = Instance.new("Frame", mainFrame) contentFrame.Size = UDim2.new(1,-172,1,-68) contentFrame.Position = UDim2.new(0,164,0,56) contentFrame.BackgroundTransparency = 1 local function createTab(parent, name, y) local b = makeFrame(parent, UDim2.new(1,-8,0,44), UDim2.new(0,4,0,y), Color3.fromRGB(36,36,38), 8) local lbl = Instance.new("TextLabel", b) lbl.Size = UDim2.new(1,-16,1,0) lbl.Position = UDim2.new(0,8,0,0) lbl.BackgroundTransparency = 1 lbl.Text = name lbl.Font = Enum.Font.Gotham lbl.TextSize = 15 lbl.TextColor3 = Color3.fromRGB(200,200,200) lbl.TextXAlignment = Enum.TextXAlignment.Left return b end local tabOrder = {"Main","Player","Aim","ESP","Fun"} local tabButtons = {} for i,name in ipairs(tabOrder) do tabButtons[name] = createTab(tabsFrame, name, (i-1)*52) end local function clearContent() for _,c in ipairs(contentFrame:GetChildren()) do if not c:IsA("UIListLayout") then safeDestroy(c) end end end local function addContentBtn(text, callback) local yOffset = 10 for _,c in ipairs(contentFrame:GetChildren()) do if c:IsA("Frame") or c:IsA("TextButton") or c:IsA("TextLabel") then yOffset = yOffset + 48 end end local b = makeFrame(contentFrame, UDim2.new(1,-24,0,42), UDim2.new(0,12,0,yOffset), Color3.fromRGB(44,44,46), 8) local lbl = Instance.new("TextLabel", b) lbl.Size = UDim2.new(1,0,1,0) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.Font = Enum.Font.GothamSemibold lbl.TextSize = 14 lbl.TextColor3 = Color3.fromRGB(255,255,255) lbl.TextXAlignment = Enum.TextXAlignment.Center b.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 then local tw = TweenService:Create(b, TweenInfo.new(0.06), {BackgroundTransparency = 0.35}) tw:Play(); tw.Completed:Wait() tw = TweenService:Create(b, TweenInfo.new(0.06), {BackgroundTransparency = 0}) tw:Play() pcall(callback) end end) return b, lbl end -- ===== BUILD: MAIN TAB ===== local function buildMain() clearContent() addContentBtn("Toggle Fly - "..(flyEnabled and "ON" or "OFF"), function() setFlyEnabled(not flyEnabled) buildMain() end) -- Fly speed slider local flyFrame = makeFrame(contentFrame, UDim2.new(1,-24,0,42), UDim2.new(0,12,0,60), Color3.fromRGB(44,44,46), 8) flyFrame.Parent = contentFrame local flyLabel = Instance.new("TextLabel", flyFrame) flyLabel.Size = UDim2.new(1,0,1,0) flyLabel.BackgroundTransparency = 1 flyLabel.Text = "FlySpeed: "..tostring(flySpeed) flyLabel.Font = Enum.Font.GothamSemibold flyLabel.TextSize = 14 flyLabel.TextColor3 = Color3.fromRGB(255,255,255) flyLabel.TextXAlignment = Enum.TextXAlignment.Center local flyBar = makeFrame(flyFrame, UDim2.new(math.clamp(flySpeed/500,0.02,1),0,1,0), UDim2.new(0,0,0,0), Color3.fromRGB(255,255,255), 6) flyBar.Name = "FlyBar" flyFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.fly.dragging = true end end) flyFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.fly.dragging = false end end) UserInputService.InputChanged:Connect(function(input) if sliderStates.fly.dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local absPos = flyFrame.AbsolutePosition local absSize = flyFrame.AbsoluteSize local relX = math.clamp(input.Position.X - absPos.X, 0, absSize.X) flyBar.Size = UDim2.new(0, relX, 1, 0) flySpeed = math.floor((relX / absSize.X) * 500) flySpeed = math.max(10, flySpeed) flyLabel.Text = "FlySpeed: "..tostring(flySpeed) end end) -- Teleport UI local tpFrame = makeFrame(contentFrame, UDim2.new(1,-24,0,42), UDim2.new(0,12,0,120), Color3.fromRGB(44,44,46), 8) tpFrame.Parent = contentFrame local tpBox = Instance.new("TextBox", tpFrame) tpBox.Size = UDim2.new(0.7, 0, 1, 0) tpBox.Position = UDim2.new(0, 6, 0, 0) tpBox.BackgroundTransparency = 1 tpBox.PlaceholderText = "PlayerName" tpBox.Text = "" tpBox.Font = Enum.Font.Gotham tpBox.TextSize = 14 tpBox.TextColor3 = Color3.fromRGB(255,255,255) local tpBtn = Instance.new("TextButton", tpFrame) tpBtn.Size = UDim2.new(0.28, 0, 1, 0) tpBtn.Position = UDim2.new(0.72, 0, 0, 0) tpBtn.Text = "TP" tpBtn.Font = Enum.Font.GothamBold tpBtn.TextSize = 14 tpBtn.TextColor3 = Color3.fromRGB(255,255,255) tpBtn.BackgroundColor3 = Color3.fromRGB(0,170,255) tpBtn.BorderSizePixel = 0 tpBtn.MouseButton1Click:Connect(function() if tpBox.Text ~= "" then teleportToPlayer(tpBox.Text) end end) local tpToMeBtn = Instance.new("TextButton", contentFrame) tpToMeBtn.Size = UDim2.new(1,-24,0,36) tpToMeBtn.Position = UDim2.new(0,12,0,172) tpToMeBtn.BackgroundColor3 = Color3.fromRGB(50,50,50) tpToMeBtn.BorderSizePixel = 0 local u = Instance.new("UICorner", tpToMeBtn); u.CornerRadius = UDim.new(0,8) local lbl = Instance.new("TextLabel", tpToMeBtn) lbl.Size = UDim2.new(1,0,1,0); lbl.BackgroundTransparency = 1 lbl.Text = "TP To Me (bring player to you)" lbl.Font = Enum.Font.GothamSemibold; lbl.TextSize = 14 lbl.TextColor3 = Color3.fromRGB(255,255,255); lbl.TextXAlignment = Enum.TextXAlignment.Center tpToMeBtn.MouseButton1Click:Connect(function() if tpBox.Text ~= "" then teleportPlayerToMe(tpBox.Text) end end) end -- ===== BUILD: PLAYER TAB ===== local function buildPlayer() clearContent() addContentBtn("Toggle NoClip - "..(noclipEnabled and "ON" or "OFF"), function() noclipEnabled = not noclipEnabled buildPlayer() end) local walkFrame = makeFrame(contentFrame, UDim2.new(1,-24,0,42), UDim2.new(0,12,0,60), Color3.fromRGB(44,44,46), 8) walkFrame.Parent = contentFrame local walkLabel = Instance.new("TextLabel", walkFrame) walkLabel.Size = UDim2.new(1,0,1,0) walkLabel.BackgroundTransparency = 1 walkLabel.Text = "WalkSpeed: "..tostring(walkSpeed) walkLabel.Font = Enum.Font.GothamSemibold walkLabel.TextSize = 14 walkLabel.TextColor3 = Color3.fromRGB(255,255,255) walkLabel.TextXAlignment = Enum.TextXAlignment.Center local walkBar = makeFrame(walkFrame, UDim2.new(math.clamp(walkSpeed/50,0.02,1),0,1,0), UDim2.new(0,0,0,0), Color3.fromRGB(255,255,255), 6) walkBar.Name = "WalkBar" walkFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.walk.dragging = true end end) walkFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.walk.dragging = false end end) UserInputService.InputChanged:Connect(function(input) if sliderStates.walk.dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local absPos = walkFrame.AbsolutePosition local absSize = walkFrame.AbsoluteSize local relX = math.clamp(input.Position.X - absPos.X, 0, absSize.X) walkBar.Size = UDim2.new(0, relX, 1, 0) walkSpeed = math.floor((relX / absSize.X) * 50) walkSpeed = math.max(16, walkSpeed) walkLabel.Text = "WalkSpeed: "..tostring(walkSpeed) end end) addContentBtn("Reset Character", function() if LocalPlayer.Character then pcall(function() LocalPlayer.Character:BreakJoints() end) end end) end -- ===== BUILD: AIM TAB (left unchanged except UI) ===== local function buildAim() clearContent() addContentBtn("Toggle Aimbot - "..(aimbotEnabled and "ON" or "OFF"), function() aimbotEnabled = not aimbotEnabled buildAim() end) -- FOV slider local fovFrame = makeFrame(contentFrame, UDim2.new(1,-24,0,42), UDim2.new(0,12,0,60), Color3.fromRGB(44,44,46), 8) fovFrame.Parent = contentFrame local fovLabel = Instance.new("TextLabel", fovFrame) fovLabel.Size = UDim2.new(1,0,1,0) fovLabel.BackgroundTransparency = 1 fovLabel.Text = "FOV: "..tostring(aimbotFOV) fovLabel.Font = Enum.Font.GothamSemibold fovLabel.TextSize = 14 fovLabel.TextColor3 = Color3.fromRGB(255,255,255) fovLabel.TextXAlignment = Enum.TextXAlignment.Center local fovBar = makeFrame(fovFrame, UDim2.new(0.2,0,1,0), UDim2.new(0,0,0,0), Color3.fromRGB(255,255,255), 6) fovBar.Name = "FOVBar" fovFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.aimFOV.dragging = true end end) fovFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.aimFOV.dragging = false end end) UserInputService.InputChanged:Connect(function(input) if sliderStates.aimFOV.dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local absPos = fovFrame.AbsolutePosition local absSize = fovFrame.AbsoluteSize local relX = math.clamp(input.Position.X - absPos.X, 0, absSize.X) fovBar.Size = UDim2.new(0, relX, 1, 0) aimbotFOV = math.floor((relX / absSize.X) * 500) aimbotFOV = math.clamp(aimbotFOV, 20, 1000) fovLabel.Text = "FOV: "..tostring(aimbotFOV) end end) local smoothFrame = makeFrame(contentFrame, UDim2.new(1,-24,0,42), UDim2.new(0,12,0,120), Color3.fromRGB(44,44,46), 8) smoothFrame.Parent = contentFrame local smoothLabel = Instance.new("TextLabel", smoothFrame) smoothLabel.Size = UDim2.new(1,0,1,0) smoothLabel.BackgroundTransparency = 1 smoothLabel.Text = "Smooth: "..tostring(aimbotSmooth) smoothLabel.Font = Enum.Font.GothamSemibold smoothLabel.TextSize = 14 smoothLabel.TextColor3 = Color3.fromRGB(255,255,255) smoothLabel.TextXAlignment = Enum.TextXAlignment.Center local smoothBar = makeFrame(smoothFrame, UDim2.new(0.2,0,1,0), UDim2.new(0,0,0,0), Color3.fromRGB(255,255,255), 6) smoothBar.Name = "SmoothBar" smoothFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.aimSmooth.dragging = true end end) smoothFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.aimSmooth.dragging = false end end) UserInputService.InputChanged:Connect(function(input) if sliderStates.aimSmooth.dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local absPos = smoothFrame.AbsolutePosition local absSize = smoothFrame.AbsoluteSize local relX = math.clamp(input.Position.X - absPos.X, 0, absSize.X) smoothBar.Size = UDim2.new(0, relX, 1, 0) aimbotSmooth = (relX / absSize.X) aimbotSmooth = math.clamp(aimbotSmooth, 0, 0.95) smoothLabel.Text = ("Smooth: %.2f"):format(aimbotSmooth) end end) addContentBtn("Target: "..aimbotTargetPart, function() if aimbotTargetPart == "Head" then aimbotTargetPart = "HumanoidRootPart" else aimbotTargetPart = "Head" end buildAim() end) addContentBtn("Hold Right Mouse to Aim (PPM)", function() end) end -- ===== ESP MODULE (integrated, fixed) ===== do -- internal cache: player -> {highlight = Instance, billboard = Instance} or {drawing = {box,text}} local espCache = {} -- helper to create highlight in safe place and adornee to proper part/model local function createHighlightForCharacter(char) if not char then return nil end local ok, hl = pcall(function() local h = Instance.new("Highlight") h.Name = "xNicky_ESP_Highlight" -- prefer Adornee = model; some executors prefer a BasePart, so pick HRP if exists local hrp = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso") if hrp then h.Adornee = char -- highlight model is ok; if not, adornee can be hrp else h.Adornee = char end -- Parent highlight to CoreGui or Workspace depending on executor; CoreGui usually works h.Parent = CoreGui or Workspace return h end) if ok and hl then return hl end return nil end local function createBillboardForCharacter(char, player) if not char then return nil end local hrp = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso") if not hrp then return nil end local ok, bill = pcall(function() local b = Instance.new("BillboardGui") b.Name = "xNicky_ESP_Name" b.Adornee = hrp b.Size = UDim2.new(0,120,0,30) b.AlwaysOnTop = true b.Parent = char local t = Instance.new("TextLabel", b) t.Size = UDim2.new(1,0,1,0) t.BackgroundTransparency = 1 t.Text = player.Name t.TextScaled = true t.Font = Enum.Font.GothamBold t.TextColor3 = espColor return b end) if ok then return bill end return nil end local function createDrawingObjects(player) if not Drawing and not drawing then return nil end local ok, objs = pcall(function() local box = (Drawing and Drawing.new or drawing.new)("Square") local txt = (Drawing and Drawing.new or drawing.new)("Text") box.Thickness = 2 box.Filled = false box.Visible = false txt.Size = 14 txt.Center = true txt.Visible = false return {box = box, text = txt} end) if ok then return objs end return nil end local function addESPToCharacter(player) if not player or player == LocalPlayer then return end local char = player.Character if not char then return end -- avoid duplicates if espCache[player] then return end -- Try Highlight first if supported if HighlightSupported then local hl = createHighlightForCharacter(char) if hl then pcall(function() hl.FillColor = espColor hl.FillTransparency = 0.6 -- less bright so world lighting not flooded hl.OutlineTransparency = 1 hl.AlwaysOnTop = espThroughWalls end) espCache[player] = {highlight = hl} if espNameTag then local bill = createBillboardForCharacter(char, player) if bill then espCache[player].billboard = bill end end return end end -- Fallback to Drawing if supported if DrawingSupported then local dr = createDrawingObjects(player) if dr then espCache[player] = {drawing = dr} return end end -- If neither works, try a safe non-invasive visual: a small transparent part above head (last resort) local hrp = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso") if hrp then local ok, part = pcall(function() local p = Instance.new("Part") p.Name = "xNicky_ESP_Part" p.Size = Vector3.new(0.5,0.5,0.5) p.Transparency = 0.9 p.CanCollide = false p.Anchored = true p.CFrame = hrp.CFrame * CFrame.new(0, 3, 0) p.Parent = Workspace -- parent to workspace Debris:AddItem(p, 5) -- temporary; won't persist long return p end) if ok and part then espCache[player] = {part = part} end end end local function removeESPFromCharacter(player) if not player then return end local entry = espCache[player] if entry then if entry.highlight then pcall(function() entry.highlight:Destroy() end) end if entry.billboard then pcall(function() entry.billboard:Destroy() end) end if entry.drawing then pcall(function() if entry.drawing.box and entry.drawing.box.Remove then entry.drawing.box:Remove() end if entry.drawing.text and entry.drawing.text.Remove then entry.drawing.text:Remove() end end) end if entry.part then pcall(function() entry.part:Destroy() end) end espCache[player] = nil else -- extra cleanup (residuals) if player.Character then for _,v in ipairs(player.Character:GetChildren()) do if v.Name == "xNicky_ESP_Name" or v.Name == "xNicky_ESP_Part" then pcall(function() v:Destroy() end) end end end -- attempt to destroy highlights adorning char for _,inst in ipairs(Workspace:GetDescendants()) do if inst:IsA("Highlight") and inst.Adornee == player.Character then pcall(function() inst:Destroy() end) end end end end local function refreshAllESP() -- remove all then re-add if enabled for p,_ in pairs(espCache) do removeESPFromCharacter(p) end if espEnabled then for _,p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then addESPToCharacter(p) end end end end -- Drawing update loop (if needed) if DrawingSupported then RunService.RenderStepped:Connect(function() if not espEnabled then return end local cam = Workspace.CurrentCamera if not cam then return end for player,entry in pairs(espCache) do if entry.drawing and player.Character and player.Character.Parent then local hrp = player.Character:FindFirstChild("HumanoidRootPart") or player.Character:FindFirstChild("Head") if hrp then local pos, onScreen = cam:WorldToViewportPoint(hrp.Position) if onScreen then local box = entry.drawing.box local txt = entry.drawing.text if box and txt then local size = 40 box.Position = Vector2.new(pos.X - size/2, pos.Y - size/2) box.Size = Vector2.new(size, size) box.Color = espColor box.Visible = true txt.Position = Vector2.new(pos.X, pos.Y - size/2 - 14) txt.Text = player.Name txt.Color = espColor txt.Visible = true end else if entry.drawing.box then entry.drawing.box.Visible = false end if entry.drawing.text then entry.drawing.text.Visible = false end end end end end end) end -- Player joins / characters Players.PlayerAdded:Connect(function(pl) pl.CharacterAdded:Connect(function() if espEnabled and pl ~= LocalPlayer then task.defer(function() addESPToCharacter(pl) end) end end) end) for _,p in ipairs(Players:GetPlayers()) do p.CharacterAdded:Connect(function() if espEnabled and p ~= LocalPlayer then task.defer(function() addESPToCharacter(p) end) end end) end -- Expose helper functions to outer scope for GUI buttons _G.xNicky_ESP_INTERNAL = { add = addESPToCharacter, remove = removeESPFromCharacter, refresh = refreshAllESP, cache = espCache, setColor = function(c) espColor = c -- update live for _,entry in pairs(espCache) do if entry.highlight then pcall(function() entry.highlight.FillColor = espColor end) end if entry.billboard then pcall(function() local lbl = entry.billboard:FindFirstChildOfClass("TextLabel") if lbl then lbl.TextColor3 = espColor end end) end if entry.drawing and entry.drawing.text then pcall(function() entry.drawing.text.Color = espColor end) end end end, setThroughWalls = function(b) espThroughWalls = not not b for _,entry in pairs(espCache) do if entry.highlight then pcall(function() entry.highlight.AlwaysOnTop = espThroughWalls end) end end end, setNameTags = function(b) espNameTag = not not b -- recreate billboards for p,entry in pairs(espCache) do if entry.billboard then pcall(function() entry.billboard:Destroy() end); entry.billboard = nil end if espNameTag and p.Character then local bill = createBillboardForCharacter(p.Character, p) if bill then entry.billboard = bill end end end end, enable = function() if espEnabled then return end espEnabled = true for _,p in ipairs(Players:GetPlayers()) do if p~=LocalPlayer then addESPToCharacter(p) end end end, disable = function() if not espEnabled then return end espEnabled = false for p,_ in pairs(espCache) do removeESPFromCharacter(p) end end, toggle = function() if espEnabled then _G.xNicky_ESP_INTERNAL.disable() else _G.xNicky_ESP_INTERNAL.enable() end end, } end -- ===== BUILD: ESP TAB UI (integrated) ===== local function buildESP() clearContent() -- Toggle ESP button local btnToggle, lblToggle = addContentBtn("Toggle ESP/Chams - "..(espEnabled and "ON" or "OFF"), function() if espEnabled then _G.xNicky_ESP_INTERNAL.disable() else _G.xNicky_ESP_INTERNAL.enable() end buildESP() end) -- Through walls toggle local btnThrough, lblThrough = addContentBtn("Toggle ThroughWalls - "..(espThroughWalls and "ON" or "OFF"), function() espThroughWalls = not espThroughWalls _G.xNicky_ESP_INTERNAL.setThroughWalls(espThroughWalls) buildESP() end) -- NameTags toggle local btnName, lblName = addContentBtn("Toggle NameTags - "..(espNameTag and "ON" or "OFF"), function() espNameTag = not espNameTag _G.xNicky_ESP_INTERNAL.setNameTags(espNameTag) buildESP() end) -- Color sliders (RGB) -- Red local rFrame = makeFrame(contentFrame, UDim2.new(1,-24,0,28), UDim2.new(0,12,0,240), Color3.fromRGB(44,44,46), 6) local rLabel = Instance.new("TextLabel", rFrame) rLabel.Size = UDim2.new(0.22, -8, 1, 0) rLabel.Position = UDim2.new(0,6,0,0) rLabel.BackgroundTransparency = 1 rLabel.Text = "R: "..tostring(math.floor(espColor.R*255)) rLabel.Font = Enum.Font.GothamSemibold rLabel.TextSize = 14 rLabel.TextColor3 = Color3.fromRGB(255,255,255) rLabel.TextXAlignment = Enum.TextXAlignment.Left local rBar = makeFrame(rFrame, UDim2.new(0.4,0,1,0), UDim2.new(0.28,0,0,0), Color3.fromRGB(200,0,0), 6) rBar.Name = "ESP_R_Bar" rFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.espR.dragging = true end end) rFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.espR.dragging = false end end) -- Green local gFrame = makeFrame(contentFrame, UDim2.new(1,-24,0,28), UDim2.new(0,12,0,272), Color3.fromRGB(44,44,46), 6) local gLabel = Instance.new("TextLabel", gFrame) gLabel.Size = UDim2.new(0.22, -8, 1, 0) gLabel.Position = UDim2.new(0,6,0,0) gLabel.BackgroundTransparency = 1 gLabel.Text = "G: "..tostring(math.floor(espColor.G*255)) gLabel.Font = Enum.Font.GothamSemibold gLabel.TextSize = 14 gLabel.TextColor3 = Color3.fromRGB(255,255,255) gLabel.TextXAlignment = Enum.TextXAlignment.Left local gBar = makeFrame(gFrame, UDim2.new(0.4,0,1,0), UDim2.new(0.28,0,0,0), Color3.fromRGB(0,200,0), 6) gBar.Name = "ESP_G_Bar" gFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.espG.dragging = true end end) gFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.espG.dragging = false end end) -- Blue local bFrame = makeFrame(contentFrame, UDim2.new(1,-24,0,28), UDim2.new(0,12,0,304), Color3.fromRGB(44,44,46), 6) local bLabel = Instance.new("TextLabel", bFrame) bLabel.Size = UDim2.new(0.22, -8, 1, 0) bLabel.Position = UDim2.new(0,6,0,0) bLabel.BackgroundTransparency = 1 bLabel.Text = "B: "..tostring(math.floor(espColor.B*255)) bLabel.Font = Enum.Font.GothamSemibold bLabel.TextSize = 14 bLabel.TextColor3 = Color3.fromRGB(255,255,255) bLabel.TextXAlignment = Enum.TextXAlignment.Left local bBar = makeFrame(bFrame, UDim2.new(0.4,0,1,0), UDim2.new(0.28,0,0,0), Color3.fromRGB(0,0,200), 6) bBar.Name = "ESP_B_Bar" bFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.espB.dragging = true end end) bFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sliderStates.espB.dragging = false end end) -- Update logic for sliders UserInputService.InputChanged:Connect(function(input) -- R if sliderStates.espR.dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local absPos = rFrame.AbsolutePosition local absSize = rFrame.AbsoluteSize local relX = math.clamp(input.Position.X - absPos.X, 0, absSize.X) rBar.Size = UDim2.new(0, relX, 1, 0) local rVal = math.floor((relX / absSize.X) * 255) rVal = math.clamp(rVal, 0, 255) espColor = Color3.fromRGB(rVal, math.floor(espColor.G*255), math.floor(espColor.B*255)) rLabel.Text = "R: "..tostring(rVal) _G.xNicky_ESP_INTERNAL.setColor(espColor) end -- G if sliderStates.espG.dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local absPos = gFrame.AbsolutePosition local absSize = gFrame.AbsoluteSize local relX = math.clamp(input.Position.X - absPos.X, 0, absSize.X) gBar.Size = UDim2.new(0, relX, 1, 0) local gVal = math.floor((relX / absSize.X) * 255) gVal = math.clamp(gVal, 0, 255) espColor = Color3.fromRGB(math.floor(espColor.R*255), gVal, math.floor(espColor.B*255)) gLabel.Text = "G: "..tostring(gVal) _G.xNicky_ESP_INTERNAL.setColor(espColor) end -- B if sliderStates.espB.dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local absPos = bFrame.AbsolutePosition local absSize = bFrame.AbsoluteSize local relX = math.clamp(input.Position.X - absPos.X, 0, absSize.X) bBar.Size = UDim2.new(0, relX, 1, 0) local bVal = math.floor((relX / absSize.X) * 255) bVal = math.clamp(bVal, 0, 255) espColor = Color3.fromRGB(math.floor(espColor.R*255), math.floor(espColor.G*255), bVal) bLabel.Text = "B: "..tostring(bVal) _G.xNicky_ESP_INTERNAL.setColor(espColor) end end) end -- ===== BUILD: FUN TAB ===== local function buildFun() clearContent() addContentBtn("Print Hello", function() print("Hello from xNicky HUB!") end) addContentBtn("Spawn small part above HRP", function() local hrp = LocalPlayer.Character and (LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or LocalPlayer.Character:FindFirstChild("Torso") or LocalPlayer.Character:FindFirstChild("UpperTorso")) if hrp then local p = Instance.new("Part", workspace) p.Size = Vector3.new(1,1,1) p.Position = hrp.Position + Vector3.new(0,5,0) p.Anchored = true Debris:AddItem(p, 4) end end) addContentBtn("Make myself slightly bounce", function() local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then local orig = hum.JumpPower hum.JumpPower = (orig or 50) + 20 delay(2, function() if hum then pcall(function() hum.JumpPower = orig end) end end) end end) end -- ===== TAB SWITCHING ===== local function setActiveTab(name) currentTab = name for tn,btn in pairs(tabButtons) do btn.BackgroundColor3 = (tn == name and Color3.fromRGB(60,60,64) or Color3.fromRGB(36,36,38)) end if name == "Main" then buildMain() elseif name == "Player" then buildPlayer() elseif name == "Aim" then buildAim() elseif name == "ESP" then buildESP() elseif name == "Fun" then buildFun() end end for name,btn in pairs(tabButtons) do btn.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 then setActiveTab(name) end end) end setActiveTab("Main") -- ===== MINIMIZE / CLOSE ===== minimizeBtn.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 then minimized = not minimized if minimized then tabsFrame.Visible = false contentFrame.Visible = false mainFrame.Size = UDim2.new(mainFrame.Size.X.Scale, mainFrame.Size.X.Offset, 0, 60) else tabsFrame.Visible = true contentFrame.Visible = true mainFrame.Size = UDim2.new(0,560,0,360) end end end) closeBtn.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 then safeDestroy(screenGui) end end) -- ===== DRAGGABLE WINDOW (header) ===== do local dragging = false local dragStartPos = Vector2.new(0,0) local startPosUDim2 = nil header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStartPos = UserInputService:GetMouseLocation() startPosUDim2 = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) RunService.RenderStepped:Connect(function() if dragging and startPosUDim2 then local mousePos = UserInputService:GetMouseLocation() local delta = mousePos - dragStartPos local newX = startPosUDim2.X.Offset + delta.X local newY = startPosUDim2.Y.Offset + delta.Y local screenX = math.clamp(newX, -mainFrame.AbsoluteSize.X + 80, (workspace.CurrentCamera.ViewportSize.X - 80)) local screenY = math.clamp(newY, -mainFrame.AbsoluteSize.Y + 40, (workspace.CurrentCamera.ViewportSize.Y - 40)) mainFrame.Position = UDim2.new(0, screenX, 0, screenY) end end) end -- ===== TOGGLE VISIBILITY ===== UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == TOGGLE_HIDE_KEY then guiVisible = not guiVisible mainFrame.Visible = guiVisible end end) -- ===== WALK SPEED APPLY ===== RunService.RenderStepped:Connect(function() local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if hum and hum.Parent then if hum.WalkSpeed ~= walkSpeed then pcall(function() hum.WalkSpeed = walkSpeed end) end end end) -- ===== Aimbot INPUT (PPM) ===== UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then aimbotMouseActive = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then aimbotMouseActive = false end end) -- ===== Aimbot core loop (unchanged behavior) ===== RunService.RenderStepped:Connect(function(dt) if not screenGui:FindFirstChild("xNicky_Aim_FOV") then local f = Instance.new("Frame") f.Name = "xNicky_Aim_FOV" f.Size = UDim2.new(0, aimbotFOV, 0, aimbotFOV) f.Position = UDim2.new(0, 0, 0, 0) f.BackgroundTransparency = 0.93 f.BorderSizePixel = 0 f.Parent = screenGui local corner = Instance.new("UICorner", f) corner.CornerRadius = UDim.new(1,0) f.Visible = false end local fovFrame = screenGui:FindFirstChild("xNicky_Aim_FOV") if fovFrame then fovFrame.Size = UDim2.new(0, aimbotFOV, 0, aimbotFOV) local mousePos = UserInputService:GetMouseLocation() fovFrame.Position = UDim2.new(0, mousePos.X - aimbotFOV/2, 0, mousePos.Y - aimbotFOV/2) fovFrame.Visible = aimbotEnabled end if aimbotEnabled and aimbotMouseActive then local camera = workspace.CurrentCamera if not camera then return end local closestDist = aimbotFOV local chosenPart = nil for _,player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character.Parent then local part = player.Character:FindFirstChild(aimbotTargetPart) or player.Character:FindFirstChild("HumanoidRootPart") or player.Character:FindFirstChild("Head") if part then local screenPos, onScreen = camera:WorldToViewportPoint(part.Position) if onScreen then local mousePos = UserInputService:GetMouseLocation() local dist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(mousePos.X, mousePos.Y)).Magnitude if dist < closestDist then closestDist = dist chosenPart = part end end end end end if chosenPart and chosenPart.Parent then local camPos = camera.CFrame.Position local dir = (chosenPart.Position - camPos).Unit local targetCFrame = CFrame.new(camPos, camPos + dir) if aimbotSmooth <= 0 then camera.CFrame = targetCFrame else camera.CFrame = camera.CFrame:Lerp(targetCFrame, 1 - (1 - aimbotSmooth) ^ (dt * 60)) end end end end) -- ===== FINAL PRINT ===== print("xNicky HUB vFINAL loaded. Toggle GUI with LeftAlt. Fly, WalkSpeed, NoClip, TP, Aim and ESP all available.") -- End of file