local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local lp = Players.LocalPlayer local mouse = lp:GetMouse() local cam = workspace.CurrentCamera local gui = Instance.new("ScreenGui", lp:WaitForChild("PlayerGui")) gui.Name = "CMenuGui" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true local scale = Instance.new("UIScale", gui) local function upd() scale.Scale = math.clamp(cam.ViewportSize.X / 1200, 0.85, 1.15) end upd() cam:GetPropertyChangedSignal("ViewportSize"):Connect(upd) -- MAIN CONTAINER FRAME local main = Instance.new("Frame", gui) main.Size = UDim2.new(0, 230, 0, 515) -- Slightly taller to perfectly fit the Kill button main.Position = UDim2.new(0.02, 0, 0.5, 0) main.AnchorPoint = Vector2.new(0, 0.5) main.BackgroundColor3 = Color3.fromRGB(20, 20, 20) main.BorderSizePixel = 0 Instance.new("UICorner", main).CornerRadius = UDim.new(0, 10) local mainStroke = Instance.new("UIStroke", main) mainStroke.Color = Color3.fromRGB(65, 65, 65) mainStroke.Thickness = 1.5 -- MOUSE DRAGGING ENGINE local dragging, dragInput, dragStart, startPos local function updateDrag(input) local delta = input.Position - dragStart main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end main.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = main.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) main.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UIS.InputChanged:Connect(function(input) if input == dragInput and dragging then updateDrag(input) end end) -- HEADER / TITLE BAR local header = Instance.new("Frame", main) header.Size = UDim2.new(1, 0, 0, 36) header.BackgroundTransparency = 1 local title = Instance.new("TextLabel", header) title.Size = UDim2.new(1, -40, 1, 0) title.Position = UDim2.new(0, 12, 0, 0) title.BackgroundTransparency = 1 title.Text = "CMENU" title.TextColor3 = Color3.fromRGB(235, 235, 235) title.Font = Enum.Font.GothamBold title.TextSize = 13 title.TextXAlignment = Enum.TextXAlignment.Left -- CONTENT BODY CONTAINER local body = Instance.new("Frame", main) body.Size = UDim2.new(1, 0, 1, -36) body.Position = UDim2.new(0, 0, 0, 36) body.BackgroundTransparency = 1 local pad = Instance.new("UIPadding", body) pad.PaddingLeft = UDim.new(0, 10) pad.PaddingRight = UDim.new(0, 10) pad.PaddingBottom = UDim.new(0, 12) local lay = Instance.new("UIListLayout", body) lay.Padding = UDim.new(0, 6) -- BUTTON CREATION FACTORY local function btn(t, parent) local b = Instance.new("TextButton") b.Parent = parent or body b.Size = UDim2.new(1, 0, 0, 30) b.BackgroundColor3 = Color3.fromRGB(35, 35, 35) b.TextColor3 = Color3.fromRGB(225, 225, 225) b.Font = Enum.Font.GothamBold b.TextSize = 12 b.Text = t b.BorderSizePixel = 0 Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6) local s = Instance.new("UIStroke", b) s.Color = Color3.fromRGB(50, 50, 50) s.Thickness = 1 return b end -- DYNAMIC SPECTATE / PLAYER LIST PANEL local list = Instance.new("ScrollingFrame", gui) list.Size = UDim2.new(0, 190, 0, 260) list.BackgroundColor3 = Color3.fromRGB(20, 20, 20) list.Visible = false list.BorderSizePixel = 0 list.ScrollBarThickness = 3 Instance.new("UICorner", list).CornerRadius = UDim.new(0, 8) local listStroke = Instance.new("UIStroke", list) listStroke.Color = Color3.fromRGB(65, 65, 65) local listListLayout = Instance.new("UIListLayout", list) listListLayout.Padding = UDim.new(0, 4) Instance.new("UIPadding", list).PaddingTop = UDim.new(0, 6) -- DYNAMIC LOCATION TP FRAME local coordMenu = Instance.new("Frame", gui) coordMenu.Size = UDim2.new(0, 220, 0, 300) coordMenu.BackgroundColor3 = Color3.fromRGB(20, 20, 20) coordMenu.Visible = false coordMenu.BorderSizePixel = 0 Instance.new("UICorner", coordMenu).CornerRadius = UDim.new(0, 8) local coordStroke = Instance.new("UIStroke", coordMenu) coordStroke.Color = Color3.fromRGB(65, 65, 65) local coordPad = Instance.new("UIPadding", coordMenu) coordPad.PaddingTop = UDim.new(0, 10) coordPad.PaddingLeft = UDim.new(0, 10) coordPad.PaddingRight = UDim.new(0, 10) coordPad.PaddingBottom = UDim.new(0, 10) local nameInput = Instance.new("TextBox", coordMenu) nameInput.Size = UDim2.new(1, 0, 0, 28) nameInput.BackgroundColor3 = Color3.fromRGB(30, 30, 30) nameInput.TextColor3 = Color3.new(1, 1, 1) nameInput.PlaceholderText = "Location Name..." nameInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 120) nameInput.Font = Enum.Font.Gotham nameInput.TextSize = 12 nameInput.Text = "" nameInput.BorderSizePixel = 0 Instance.new("UICorner", nameInput).CornerRadius = UDim.new(0, 6) local niStroke = Instance.new("UIStroke", nameInput) niStroke.Color = Color3.fromRGB(45, 45, 45) local addCoordBtn = btn("Add Current", coordMenu) addCoordBtn.Size = UDim2.new(1, 0, 0, 28) addCoordBtn.Position = UDim2.new(0, 0, 0, 34) local coordScroll = Instance.new("ScrollingFrame", coordMenu) coordScroll.Size = UDim2.new(1, 0, 1, -70) coordScroll.Position = UDim2.new(0, 0, 0, 70) coordScroll.BackgroundTransparency = 1 coordScroll.CanvasSize = UDim2.new(0, 0, 0, 0) coordScroll.ScrollBarThickness = 3 local coordListLayout = Instance.new("UIListLayout", coordScroll) coordListLayout.Padding = UDim.new(0, 4) -- SYNC POSITION LAYOUTS RELATIVE TO PARENT PANEL RunService.RenderStepped:Connect(function() if main.Visible then list.Position = main.Position + UDim2.new(0, 240, 0, 0) coordMenu.Position = main.Position + UDim2.new(0, 240, 0, 0) end end) -- MINIMIZE AND EXPAND ACTION HOOK local toggleGuiBtn = Instance.new("TextButton", header) toggleGuiBtn.Size = UDim2.new(0, 22, 0, 22) toggleGuiBtn.Position = UDim2.new(1, -30, 0.5, -11) toggleGuiBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 35) toggleGuiBtn.TextColor3 = Color3.fromRGB(200, 200, 200) toggleGuiBtn.Font = Enum.Font.GothamBold toggleGuiBtn.TextSize = 12 toggleGuiBtn.Text = "-" toggleGuiBtn.BorderSizePixel = 0 Instance.new("UICorner", toggleGuiBtn).CornerRadius = UDim.new(0, 6) local tStroke = Instance.new("UIStroke", toggleGuiBtn) tStroke.Color = Color3.fromRGB(50, 50, 50) local coordsOpen = false toggleGuiBtn.MouseButton1Click:Connect(function() if body.Visible then body.Visible = false list.Visible = false coordMenu.Visible = false main.Size = UDim2.new(0, 230, 0, 36) toggleGuiBtn.Text = "+" else body.Visible = true main.Size = UDim2.new(0, 230, 0, 515) toggleGuiBtn.Text = "-" if coordsOpen then coordMenu.Visible = true end end end) -- UTILITY FOR INPUT SPEED/JUMP ENTRIES local function createInputRow(placeholder, defaultValue, callback) local row = Instance.new("Frame", body) row.Size = UDim2.new(1, 0, 0, 30) row.BackgroundTransparency = 1 local lbl = Instance.new("TextLabel", row) lbl.Size = UDim2.new(0.4, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.Text = placeholder lbl.TextColor3 = Color3.fromRGB(180, 180, 180) lbl.Font = Enum.Font.GothamBold lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left local box = Instance.new("TextBox", row) box.Size = UDim2.new(0, 120, 1, 0) box.Position = UDim2.new(1, -120, 0, 0) box.BackgroundColor3 = Color3.fromRGB(30, 30, 30) box.TextColor3 = Color3.new(1, 1, 1) box.Text = tostring(defaultValue) box.Font = Enum.Font.Gotham box.TextSize = 12 box.BorderSizePixel = 0 Instance.new("UICorner", box).CornerRadius = UDim.new(0, 6) local bStroke = Instance.new("UIStroke", box) bStroke.Color = Color3.fromRGB(45, 45, 45) box:GetPropertyChangedSignal("Text"):Connect(function() local val = tonumber(box.Text) if val then callback(val) end end) return row end local function addSavedCoordinate(name, cframe) local itemFrame = Instance.new("Frame", coordScroll) itemFrame.Size = UDim2.new(1, -6, 0, 28) itemFrame.BackgroundTransparency = 1 local tpLocBtn = Instance.new("TextButton", itemFrame) tpLocBtn.Size = UDim2.new(1, -32, 1, 0) tpLocBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 35) tpLocBtn.TextColor3 = Color3.fromRGB(225, 225, 225) tpLocBtn.Font = Enum.Font.GothamMedium tpLocBtn.TextSize = 12 tpLocBtn.Text = name tpLocBtn.BorderSizePixel = 0 Instance.new("UICorner", tpLocBtn).CornerRadius = UDim.new(0, 5) local tlStroke = Instance.new("UIStroke", tpLocBtn) tlStroke.Color = Color3.fromRGB(50, 50, 50) tpLocBtn.MouseButton1Click:Connect(function() local c = lp.Character if c and c:FindFirstChild("HumanoidRootPart") then c.HumanoidRootPart.CFrame = cframe end end) local delBtn = Instance.new("TextButton", itemFrame) delBtn.Size = UDim2.new(0, 28, 1, 0) delBtn.Position = UDim2.new(1, -28, 0, 0) delBtn.BackgroundColor3 = Color3.fromRGB(75, 40, 40) delBtn.TextColor3 = Color3.new(1, 1, 1) delBtn.Font = Enum.Font.GothamBold delBtn.TextSize = 12 delBtn.Text = "×" delBtn.BorderSizePixel = 0 Instance.new("UICorner", delBtn).CornerRadius = UDim.new(0, 5) delBtn.MouseButton1Click:Connect(function() itemFrame:Destroy() end) coordScroll.CanvasSize = UDim2.new(0, 0, 0, coordListLayout.AbsoluteContentSize.Y) end addCoordBtn.MouseButton1Click:Connect(function() local name = nameInput.Text ~= "" and nameInput.Text or "Location " .. (#coordScroll:GetChildren() - 1) local c = lp.Character if c and c:FindFirstChild("HumanoidRootPart") then addSavedCoordinate(name, c.HumanoidRootPart.CFrame) nameInput.Text = "" end end) local spectate, esp, tp, freecamActive, fullbrightActive, flyActive, noclipActive = false, false, false, false, false, false, false local tpConn, freecamRenderLoop, inputStart, inputEnded, flyLoop, noclipLoop local userSpeed, userJump = 16, 50 local function refresh() for _, c in ipairs(list:GetChildren()) do if c:IsA("TextButton") then c:Destroy() end end for _, p in ipairs(Players:GetPlayers()) do if p ~= lp then local b = Instance.new("TextButton", list) b.Size = UDim2.new(1, -12, 0, 26) b.BackgroundColor3 = Color3.fromRGB(35, 35, 35) b.TextColor3 = Color3.fromRGB(225, 225, 225) b.Font = Enum.Font.Gotham b.TextSize = 12 b.Text = p.Name b.BorderSizePixel = 0 Instance.new("UICorner", b).CornerRadius = UDim.new(0, 5) local bStr = Instance.new("UIStroke", b) bStr.Color = Color3.fromRGB(45, 45, 45) b.MouseButton1Click:Connect(function() if p.Character and p.Character:FindFirstChildOfClass("Humanoid") then cam.CameraSubject = p.Character:FindFirstChildOfClass("Humanoid") end end) end end end local function updateHumanoidStats() local char = lp.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum.WalkSpeed = userSpeed if hum.UseJumpPower then hum.JumpPower = userJump else hum.JumpHeight = userJump end end end lp.CharacterAdded:Connect(function() task.wait(0.5) updateHumanoidStats() end) -- ESP CORE LOGIC local espEnabled = false local function applyESP(p) if p == lp or not p.Character then return end if p.Character:FindFirstChild("ESP") then return end local h = Instance.new("Highlight") h.Name = "ESP" h.Parent = p.Character local head = p.Character:FindFirstChild("Head") if head and not head:FindFirstChild("Tag") then local bb = Instance.new("BillboardGui") bb.Name = "Tag" bb.Size = UDim2.new(0, 100, 0, 20) bb.StudsOffset = Vector3.new(0, 2, 0) bb.AlwaysOnTop = true bb.Parent = head local t = Instance.new("TextLabel") t.Size = UDim2.new(1, 0, 1, 0) t.BackgroundTransparency = 1 t.Text = p.Name t.TextColor3 = Color3.new(1, 1, 1) t.TextScaled = true t.Font = Enum.Font.GothamBold t.Parent = bb end end local function removeESP(p) if p.Character then if p.Character:FindFirstChild("ESP") then p.Character.ESP:Destroy() end local head = p.Character:FindFirstChild("Head") if head and head:FindFirstChild("Tag") then head.Tag:Destroy() end end end local function setESP(v) esp = v; espEnabled = v if v then for _, p in ipairs(Players:GetPlayers()) do applyESP(p) p.CharacterAdded:Connect(function() task.wait(0.5) if espEnabled then applyESP(p) end end) end Players.PlayerAdded:Connect(function(p) p.CharacterAdded:Connect(function() task.wait(0.5) if espEnabled then applyESP(p) end end) end) else for _, p in ipairs(Players:GetPlayers()) do removeESP(p) end end end local function setSpectate(v) spectate = v; list.Visible = v; if v then refresh() else cam.CameraSubject = lp.Character and lp.Character:FindFirstChildOfClass("Humanoid") end end local function setTP(v) tp = v; if v then tpConn = mouse.Button1Down:Connect(function() if not tp then return end; local c = lp.Character if c and c:FindFirstChild("HumanoidRootPart") then c.HumanoidRootPart.CFrame = CFrame.new(mouse.Hit.Position + Vector3.new(0, 3, 0)) end end) else if tpConn then tpConn:Disconnect(); tpConn = nil end end end local origBrightness, origAmbient, origOutdoorAmbient, origShadows local function setFullbright(v) fullbrightActive = v if v then origBrightness = Lighting.Brightness; origAmbient = Lighting.Ambient; origOutdoorAmbient = Lighting.OutdoorAmbient; origShadows = Lighting.GlobalShadows Lighting.Brightness = 2; Lighting.Ambient = Color3.fromRGB(255, 255, 255); Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255); Lighting.GlobalShadows = false else if origBrightness then Lighting.Brightness = origBrightness; Lighting.Ambient = origAmbient; Lighting.OutdoorAmbient = origOutdoorAmbient; Lighting.GlobalShadows = origShadows end end end local function setFreecam(active) freecamActive = active if freecamActive then local targetCFrame = cam.CFrame; local currentCFrame = cam.CFrame; local cameraRot = Vector2.new(cam.CFrame:ToEulerAnglesYXZ()) local char = lp.Character if char and char:FindFirstChild("HumanoidRootPart") then char.HumanoidRootPart.Anchored = true end cam.CameraType = Enum.CameraType.Scriptable local activeInputs = {} inputStart = UIS.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.W or input.KeyCode == Enum.KeyCode.A or input.KeyCode == Enum.KeyCode.S or input.KeyCode == Enum.KeyCode.D or input.KeyCode == Enum.KeyCode.E or input.KeyCode == Enum.KeyCode.Q or input.KeyCode == Enum.KeyCode.LeftShift then activeInputs[input.KeyCode] = true end end) inputEnded = UIS.InputEnded:Connect(function(input) if activeInputs[input.KeyCode] then activeInputs[input.KeyCode] = nil end end) freecamRenderLoop = RunService.RenderStepped:Connect(function(dt) if UIS:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then UIS.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition local delta = UIS:GetMouseDelta() cameraRot = cameraRot + Vector2.new(-delta.Y * 0.004, -delta.X * 0.004) else UIS.MouseBehavior = Enum.MouseBehavior.Default end local moveVector = Vector3.new() if activeInputs[Enum.KeyCode.W] then moveVector = moveVector + Vector3.new(0, 0, -1) end if activeInputs[Enum.KeyCode.S] then moveVector = moveVector + Vector3.new(0, 0, 1) end if activeInputs[Enum.KeyCode.A] then moveVector = moveVector + Vector3.new(-1, 0, 0) end if activeInputs[Enum.KeyCode.D] then moveVector = moveVector + Vector3.new(1, 0, 0) end if activeInputs[Enum.KeyCode.E] then moveVector = moveVector + Vector3.new(0, 1, 0) end if activeInputs[Enum.KeyCode.Q] then moveVector = moveVector - Vector3.new(0, 1, 0) end local speed = activeInputs[Enum.KeyCode.LeftShift] and 80 or 30 targetCFrame = CFrame.new(targetCFrame.Position) * CFrame.fromEulerAnglesYXZ(cameraRot.X, cameraRot.Y, 0) targetCFrame = targetCFrame * CFrame.new(moveVector * speed * dt) currentCFrame = currentCFrame:Lerp(targetCFrame, math.clamp(dt * 12, 0, 1)) cam.CFrame = currentCFrame end) else if freecamRenderLoop then freecamRenderLoop:Disconnect() end if inputStart then inputStart:Disconnect() end if inputEnded then inputEnded:Disconnect() end UIS.MouseBehavior = Enum.MouseBehavior.Default local char = lp.Character if char and char:FindFirstChild("HumanoidRootPart") then char.HumanoidRootPart.Anchored = false end cam.CameraType = Enum.CameraType.Custom if char and char:FindFirstChildOfClass("Humanoid") then cam.CameraSubject = char:FindFirstChildOfClass("Humanoid") end end end local function setFly(active) flyActive = active if flyActive then local char = lp.Character; local root = char and char:FindFirstChild("HumanoidRootPart"); local hum = char and char:FindFirstChildOfClass("Humanoid") if not root or not hum then flyActive = false return end local bv = Instance.new("BodyVelocity", root) bv.Name = "FlyBV"; bv.MaxForce = Vector3.new(1e5, 1e5, 1e5); bv.Velocity = Vector3.new(0, 0, 0) flyLoop = RunService.RenderStepped:Connect(function() local moveVector = Vector3.new() if UIS:IsKeyDown(Enum.KeyCode.W) then moveVector = moveVector + cam.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then moveVector = moveVector - cam.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then moveVector = moveVector - cam.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then moveVector = moveVector + cam.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.E) then moveVector = moveVector + Vector3.new(0, 1, 0) end if UIS:IsKeyDown(Enum.KeyCode.Q) then moveVector = moveVector - Vector3.new(0, 1, 0) end local speed = UIS:IsKeyDown(Enum.KeyCode.LeftShift) and userSpeed * 2.5 or userSpeed bv.Velocity = moveVector.Magnitude > 0 and moveVector.Unit * speed or Vector3.new(0, 0, 0) end) else if flyLoop then flyLoop:Disconnect() end local char = lp.Character; local root = char and char:FindFirstChild("HumanoidRootPart") if root and root:FindFirstChild("FlyBV") then root.FlyBV:Destroy() end end end local function setNoclip(active) noclipActive = active if noclipActive then noclipLoop = RunService.Stepped:Connect(function() if not noclipActive then return end local char = lp.Character if char then for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide then part.CanCollide = false end end end end) else if noclipLoop then noclipLoop:Disconnect() end end end -- INTERFACE MAP INITIALIZATION local specBtn = btn("Spectate") specBtn.MouseButton1Click:Connect(function() setSpectate(not spectate) if coordMenu.Visible and spectate then coordMenu.Visible = false coordsOpen = false cordBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 35) end specBtn.BackgroundColor3 = spectate and Color3.fromRGB(75, 40, 40) or Color3.fromRGB(35, 35, 35) end) local espBtn = btn("ESP") espBtn.MouseButton1Click:Connect(function() setESP(not esp); espBtn.BackgroundColor3 = esp and Color3.fromRGB(75, 40, 40) or Color3.fromRGB(35, 35, 35) end) local tpBtn = btn("Click TP") tpBtn.MouseButton1Click:Connect(function() setTP(not tp); tpBtn.BackgroundColor3 = tp and Color3.fromRGB(75, 40, 40) or Color3.fromRGB(35, 35, 35) end) local fcBtn = btn("Freecam") fcBtn.MouseButton1Click:Connect(function() setFreecam(not freecamActive); fcBtn.BackgroundColor3 = freecamActive and Color3.fromRGB(75, 40, 40) or Color3.fromRGB(35, 35, 35) end) local cordBtn = btn("Location TP") cordBtn.MouseButton1Click:Connect(function() coordsOpen = not coordsOpen; coordMenu.Visible = coordsOpen if list.Visible and coordsOpen then list.Visible = false spectate = false specBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 35) end cordBtn.BackgroundColor3 = coordsOpen and Color3.fromRGB(75, 40, 40) or Color3.fromRGB(35, 35, 35) end) local fbBtn = btn("Fullbright") fbBtn.MouseButton1Click:Connect(function() setFullbright(not fullbrightActive); fbBtn.BackgroundColor3 = fullbrightActive and Color3.fromRGB(75, 40, 40) or Color3.fromRGB(35, 35, 35) end) local flyBtn = btn("Fly") flyBtn.MouseButton1Click:Connect(function() setFly(not flyActive); flyBtn.BackgroundColor3 = flyActive and Color3.fromRGB(75, 40, 40) or Color3.fromRGB(35, 35, 35) end) local ncBtn = btn("Noclip") ncBtn.MouseButton1Click:Connect(function() setNoclip(not noclipActive); ncBtn.BackgroundColor3 = noclipActive and Color3.fromRGB(75, 40, 40) or Color3.fromRGB(35, 35, 35) end) local killBtn = btn("Kill") killBtn.MouseButton1Click:Connect(function() local char = lp.Character if char then char:BreakJoints() end end) btn("Sit").MouseButton1Click:Connect(function() local c = lp.Character; local h = c and c:FindFirstChildOfClass("Humanoid"); if h then h.Sit = true end end) createInputRow("Speed Limit", userSpeed, function(val) userSpeed = val updateHumanoidStats() end) createInputRow("Jump Height", userJump, function(val) userJump = val updateHumanoidStats() end)