
KeylessUniversal

local p = game:GetService("Players").LocalPlayer
local rs = game:GetService("RunService")
local g = Instance.new("ScreenGui")
g.Name = "CybixExecFinal"
g.ResetOnSpawn = false
g.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
g.Parent = p:WaitForChild("PlayerGui")
-- MAIN FRAME
local f = Instance.new("Frame", g)
f.Size = UDim2.new(0, 560, 0, 420)
f.Position = UDim2.new(0.5, -280, 0.5, -210)
f.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
f.BorderSizePixel = 0
f.Active = true
Instance.new("UICorner", f).CornerRadius = UDim.new(0, 12)
-- RGB BACKGROUND
task.spawn(function()
while f.Parent do
for i = 0, 1, 0.01 do
if not f.Parent then break end
f.BackgroundColor3 = Color3.fromHSV(i, 0.7, 0.9)
task.wait(0.03)
end
end
end)
-- HEADER
local h = Instance.new("Frame", f)
h.Size = UDim2.new(1, 0, 0, 40)
h.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
h.BorderSizePixel = 0
Instance.new("UICorner", h).CornerRadius = UDim.new(0, 12)
local title = Instance.new("TextLabel", h)
title.Size = UDim2.new(1, -60, 1, 0)
title.Position = UDim2.new(0, 10, 0, 0)
title.BackgroundTransparency = 1
title.Text = "CYBIX SCRIPT DESIGNER (XENO)"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.GothamBold
title.TextScaled = true
-- X BUTTON
local x = Instance.new("TextButton", h)
x.Size = UDim2.new(0, 40, 0, 28)
x.Position = UDim2.new(1, -50, 0.5, -14)
x.BackgroundColor3 = Color3.fromRGB(160, 40, 40)
x.Text = "X"
x.TextColor3 = Color3.fromRGB(255, 255, 255)
x.Font = Enum.Font.GothamBold
x.TextScaled = true
x.BorderSizePixel = 0
Instance.new("UICorner", x).CornerRadius = UDim.new(0, 8)
x.MouseButton1Click:Connect(function()
g:Destroy()
end)
-- DRAGGING
do
local dragging, dragInput, dragStart, startPos
h.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = f.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
h.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
rs.RenderStepped:Connect(function()
if dragging and dragInput then
local delta = dragInput.Position - dragStart
f.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
end
-- SIDEBAR
local sidebar = Instance.new("Frame", f)
sidebar.Size = UDim2.new(0, 120, 1, -40)
sidebar.Position = UDim2.new(0, 0, 0, 40)
sidebar.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
sidebar.BorderSizePixel = 0
Instance.new("UICorner", sidebar).CornerRadius = UDim.new(0, 10)
local sLayout = Instance.new("UIListLayout", sidebar)
sLayout.Padding = UDim.new(0, 8)
sLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
sLayout.SortOrder = Enum.SortOrder.LayoutOrder
local function makeTab(name, order)
local b = Instance.new("TextButton", sidebar)
b.Size = UDim2.new(1, -12, 0, 36)
b.LayoutOrder = order
b.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
b.TextColor3 = Color3.fromRGB(255, 255, 255)
b.Font = Enum.Font.GothamBold
b.TextScaled = true
b.Text = name
b.BorderSizePixel = 0
Instance.new("UICorner", b).CornerRadius = UDim.new(0, 8)
return b
end
local tabDesign = makeTab("SCRIPT DESIGN", 1)
local tabHelp = makeTab("HELP", 2)
local tabConsole = makeTab("CONSOLE", 3)
local tabHI = makeTab("HI", 4)
-- CONTENT AREA
local content = Instance.new("Frame", f)
content.Size = UDim2.new(1, -140, 1, -40)
content.Position = UDim2.new(0, 140, 0, 40)
content.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
content.BorderSizePixel = 0
Instance.new("UICorner", content).CornerRadius = UDim.new(0, 10)
local pages = {}
local currentPage
local function makePage()
local p = Instance.new("Frame", content)
p.Size = UDim2.new(1, -10, 1, -10)
p.Position = UDim2.new(0, 5, 0, 5)
p.BackgroundTransparency = 1
p.Visible = false
return p
end
local function switchPage(name)
if currentPage then
currentPage.Visible = false
end
currentPage = pages[name]
if currentPage then
currentPage.Visible = true
end
end
-- SCRIPT DESIGN PAGE
local pageDesign = makePage()
pages["SCRIPT DESIGN"] = pageDesign
local editorFrame = Instance.new("Frame", pageDesign)
editorFrame.Size = UDim2.new(1, -10, 1, -80)
editorFrame.Position = UDim2.new(0, 5, 0, 5)
editorFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
editorFrame.BorderSizePixel = 0
Instance.new("UICorner", editorFrame).CornerRadius = UDim.new(0, 10)
local editorScroll = Instance.new("ScrollingFrame", editorFrame)
editorScroll.Size = UDim2.new(1, -8, 1, -8)
editorScroll.Position = UDim2.new(0, 4, 0, 4)
editorScroll.BackgroundTransparency = 1
editorScroll.ScrollBarThickness = 6
editorScroll.CanvasSize = UDim2.new(0, 0, 0, 2000)
local editorBox = Instance.new("TextBox", editorScroll)
editorBox.Size = UDim2.new(1, -10, 0, 2000)
editorBox.Position = UDim2.new(0, 5, 0, 5)
editorBox.BackgroundTransparency = 1
editorBox.TextColor3 = Color3.fromRGB(255, 255, 255)
editorBox.Font = Enum.Font.Code
editorBox.TextSize = 18
editorBox.MultiLine = true
editorBox.ClearTextOnFocus = false
editorBox.TextWrapped = true
editorBox.TextXAlignment = Enum.TextXAlignment.Left
editorBox.TextYAlignment = Enum.TextYAlignment.Top
editorBox.Text = "-- Paste your script here and press EXECUTE"
-- HELP PAGE
local pageHelp = makePage()
pages["HELP"] = pageHelp
local helpTitle = Instance.new("TextLabel", pageHelp)
helpTitle.Size = UDim2.new(1, -20, 0, 40)
helpTitle.Position = UDim2.new(0, 10, 0, 10)
helpTitle.BackgroundTransparency = 1
helpTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
helpTitle.Font = Enum.Font.GothamBold
helpTitle.TextScaled = true
helpTitle.Text = "CYBIX LOCAL SCRIPT AI"
local promptBox = Instance.new("TextBox", pageHelp)
promptBox.Size = UDim2.new(1, -20, 0, 120)
promptBox.Position = UDim2.new(0, 10, 0, 60)
promptBox.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
promptBox.TextColor3 = Color3.fromRGB(255, 255, 255)
promptBox.Font = Enum.Font.Code
promptBox.TextSize = 18
promptBox.MultiLine = true
promptBox.ClearTextOnFocus = false
promptBox.TextWrapped = true
promptBox.TextXAlignment = Enum.TextXAlignment.Left
promptBox.TextYAlignment = Enum.TextYAlignment.Top
promptBox.Text = "Example prompts:\n- gen me walkspeed script\n- gen me jump power script\n- gen me camera script\n- gen me gui button script"
Instance.new("UICorner", promptBox).CornerRadius = UDim.new(0, 10)
local genButton = Instance.new("TextButton", pageHelp)
genButton.Size = UDim2.new(0, 220, 0, 40)
genButton.Position = UDim2.new(0, 10, 0, 200)
genButton.BackgroundColor3 = Color3.fromRGB(60, 120, 200)
genButton.Text = "GENERATE LOCAL SCRIPT"
genButton.TextColor3 = Color3.fromRGB(255, 255, 255)
genButton.Font = Enum.Font.GothamBold
genButton.TextScaled = true
genButton.BorderSizePixel = 0
Instance.new("UICorner", genButton).CornerRadius = UDim.new(0, 10)
local helpInfo = Instance.new("TextLabel", pageHelp)
helpInfo.Size = UDim2.new(1, -20, 0, 120)
helpInfo.Position = UDim2.new(0, 10, 0, 250)
helpInfo.BackgroundTransparency = 1
helpInfo.TextColor3 = Color3.fromRGB(230, 230, 230)
helpInfo.Font = Enum.Font.Gotham
helpInfo.TextSize = 14
helpInfo.TextWrapped = true
helpInfo.TextXAlignment = Enum.TextXAlignment.Left
helpInfo.Text = "CYBIX AI generates simple LOCAL scripts.\nUse clear prompts like:\n• gen me walkspeed script\n• gen me jump power script\n• gen me camera script\n• gen me gui button script"
-- CONSOLE PAGE
local pageConsole = makePage()
pages["CONSOLE"] = pageConsole
local consoleFrame = Instance.new("ScrollingFrame", pageConsole)
consoleFrame.Size = UDim2.new(1, -10, 1, -50)
consoleFrame.Position = UDim2.new(0, 5, 0, 5)
consoleFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
consoleFrame.ScrollBarThickness = 6
consoleFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
Instance.new("UICorner", consoleFrame).CornerRadius = UDim.new(0, 8)
local consoleLayout = Instance.new("UIListLayout", consoleFrame)
consoleLayout.Padding = UDim.new(0, 4)
consoleLayout.SortOrder = Enum.SortOrder.LayoutOrder
local clearWarningsButton = Instance.new("TextButton", pageConsole)
clearWarningsButton.Size = UDim2.new(0, 160, 0, 32)
clearWarningsButton.Position = UDim2.new(1, -170, 1, -40)
clearWarningsButton.BackgroundColor3 = Color3.fromRGB(220, 180, 60)
clearWarningsButton.Text = "CLEAR WARNINGS"
clearWarningsButton.TextColor3 = Color3.fromRGB(0, 0, 0)
clearWarningsButton.Font = Enum.Font.GothamBold
clearWarningsButton.TextScaled = true
clearWarningsButton.BorderSizePixel = 0
Instance.new("UICorner", clearWarningsButton).CornerRadius = UDim.new(0, 8)
local function addLog(kind, msg, fix)
local row = Instance.new("Frame", consoleFrame)
row.Size = UDim2.new(1, -4, 0, 40)
row.BackgroundTransparency = 1
local icon = Instance.new("TextLabel", row)
icon.Size = UDim2.new(0, 32, 1, 0)
icon.BackgroundTransparency = 1
icon.Font = Enum.Font.GothamBold
icon.TextScaled = true
local text = Instance.new("TextLabel", row)
text.Size = UDim2.new(1, -40, 1, 0)
text.Position = UDim2.new(0, 40, 0, 0)
text.BackgroundTransparency = 1
text.Font = Enum.Font.Gotham
text.TextSize = 14
text.TextWrapped = true
text.TextXAlignment = Enum.TextXAlignment.Left
text.TextYAlignment = Enum.TextYAlignment.Top
if kind == "error" then
icon.Text = "⛔"
icon.TextColor3 = Color3.fromRGB(255, 60, 60)
text.TextColor3 = Color3.fromRGB(255, 180, 180)
elseif kind == "warn" then
icon.Text = "⚠️"
icon.TextColor3 = Color3.fromRGB(255, 220, 60)
text.TextColor3 = Color3.fromRGB(255, 240, 180)
else
icon.Text = "👍"
icon.TextColor3 = Color3.fromRGB(80, 220, 120)
text.TextColor3 = Color3.fromRGB(200, 255, 200)
end
local ts = os.date("%H:%M:%S")
if fix and fix ~= "" then
text.Text = "[" .. ts .. "] " .. msg .. "\nFix: " .. fix
else
text.Text = "[" .. ts .. "] " .. msg
end
consoleFrame.CanvasSize = UDim2.new(0, 0, 0, consoleLayout.AbsoluteContentSize.Y + 10)
consoleFrame.CanvasPosition = Vector2.new(0, math.max(0, consoleLayout.AbsoluteContentSize.Y - consoleFrame.AbsoluteSize.Y))
end
clearWarningsButton.MouseButton1Click:Connect(function()
for _, child in ipairs(consoleFrame:GetChildren()) do
if child:IsA("Frame") then
local icon = child:FindFirstChildOfClass("TextLabel")
if icon and icon.Text == "⚠️" then
child:Destroy()
end
end
end
consoleFrame.CanvasSize = UDim2.new(0, 0, 0, consoleLayout.AbsoluteContentSize.Y + 10)
end)
local function exec(code)
local fn, err = loadstring(code)
if not fn then
addLog("error", "Compile error: " .. tostring(err), "Check for missing brackets, commas, or stray characters.")
return
end
local ok, runtimeErr = pcall(fn)
if not ok then
addLog("error", "Runtime error: " .. tostring(runtimeErr), "Something was nil or indexed wrong. Check your variables/instances.")
else
addLog("ok", "Script executed successfully.", "")
end
end
local execButton = Instance.new("TextButton", pageDesign)
execButton.Size = UDim2.new(0, 160, 0, 40)
execButton.Position = UDim2.new(0, 20, 1, -50)
execButton.BackgroundColor3 = Color3.fromRGB(60, 180, 80)
execButton.Text = "EXECUTE"
execButton.TextColor3 = Color3.fromRGB(255, 255, 255)
execButton.Font = Enum.Font.GothamBold
execButton.TextScaled = true
execButton.BorderSizePixel = 0
Instance.new("UICorner", execButton).CornerRadius = UDim.new(0, 10)
execButton.MouseButton1Click:Connect(function()
local s = editorBox.Text
if s ~= "" then
exec(s)
switchPage("CONSOLE")
end
end)
local clearButton = Instance.new("TextButton", pageDesign)
clearButton.Size = UDim2.new(0, 160, 0, 40)
clearButton.Position = UDim2.new(1, -180, 1, -50)
clearButton.BackgroundColor3 = Color3.fromRGB(180, 60, 60)
clearButton.Text = "CLEAR"
clearButton.TextColor3 = Color3.fromRGB(255, 255, 255)
clearButton.Font = Enum.Font.GothamBold
clearButton.TextScaled = true
clearButton.BorderSizePixel = 0
Instance.new("UICorner", clearButton).CornerRadius = UDim.new(0, 10)
clearButton.MouseButton1Click:Connect(function()
editorBox.Text = ""
end)
local function generateScript(prompt)
local s = prompt:lower()
if s:find("walkspeed") then
return [[local p = game:GetService("Players").LocalPlayer
local char = p.Character or p.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
hum.WalkSpeed = 32
print("Local walkspeed set to 32")]]
end
if s:find("jump") then
return [[local p = game:GetService("Players").LocalPlayer
local char = p.Character or p.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
hum.JumpPower = 75
print("Local jump power set to 75")]]
end
if s:find("camera") then
return [[local cam = workspace.CurrentCamera
cam.CameraType = Enum.CameraType.Scriptable
cam.CFrame = CFrame.new(Vector3.new(0,20,-30), Vector3.new(0,0,0))
print("Camera set")]]
end
if s:find("gui") or s:find("button") then
return [[local p = game:GetService("Players").LocalPlayer
local g = Instance.new("ScreenGui", p:WaitForChild("PlayerGui"))
local b = Instance.new("TextButton", g)
b.Size = UDim2.new(0,200,0,50)
b.Position = UDim2.new(0.5,-100,0.5,-25)
b.BackgroundColor3 = Color3.fromRGB(60,120,200)
b.TextColor3 = Color3.fromRGB(255,255,255)
b.Font = Enum.Font.GothamBold
b.TextScaled = true
b.Text = "LOCAL BUTTON"
b.MouseButton1Click:Connect(function()
print("Clicked")
end)]]
end
addLog("warn", "AI could not detect your request.", "Try using words like walkspeed, jump, camera, gui, or button.")
return "-- CYBIX AI could not detect your request."
end
genButton.MouseButton1Click:Connect(function()
local scriptText = generateScript(promptBox.Text)
editorBox.Text = scriptText
switchPage("SCRIPT DESIGN")
end)
-- HI PAGE
local pageHI = makePage()
pages["Plugins"] = pageHI
local hiTitle = Instance.new("TextLabel", pageHI)
hiTitle.Size = UDim2.new(1, -20, 0, 40)
hiTitle.Position = UDim2.new(0, 10, 0, 10)
hiTitle.BackgroundTransparency = 1
hiTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
hiTitle.Font = Enum.Font.GothamBold
hiTitle.TextScaled = true
hiTitle.Text = "Ok, so i did add my menu to this script for free because i was bored and i just dont feel like aming a paid key rn"
local injectBtn = Instance.new("TextButton", pageHI)
injectBtn.Size = UDim2.new(0, 260, 0, 60)
injectBtn.Position = UDim2.new(0.5, -130, 0.5, -30)
injectBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
injectBtn.Text = "Inject CYBIX MENU"
injectBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
injectBtn.Font = Enum.Font.GothamBold
injectBtn.TextScaled = true
injectBtn.BorderSizePixel = 0
Instance.new("UICorner", injectBtn).CornerRadius = UDim.new(0, 12)
task.spawn(function()
while injectBtn.Parent do
for i = 0,1,0.01 do
injectBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 255 * i)
task.wait(0.02)
end
for i = 0,1,0.01 do
injectBtn.BackgroundColor3 = Color3.fromRGB(255 * i, 0, 0)
task.wait(0.02)
end
for i = 0,1,0.01 do
injectBtn.BackgroundColor3 = Color3.fromRGB(255 * i, 255 * i, 255 * i)
task.wait(0.02)
end
end
end)
-- put your full paid script inside this string:
local CYBIX_PAID_SCRIPT = [[-- CYBIX MENU PAID — FULL (Finalized: God Mode added to PVP)
-- Paste this entire LocalScript into StarterGui (do not wrap in loadstring)
-- Services
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
-- Player refs
local player = Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local humanoid = char:FindFirstChild("Humanoid")
-- Base/default multiplier semantics
local baseWalkSpeed = (humanoid and humanoid.WalkSpeed) or 16
local defaultMultiplier = 1.0
-- Runtime state
local runtimeState = {
activeEffects = {},
rgbRunning = false,
galaxyRunning = false,
petModel = nil,
noclipEnabled = false,
flyEnabled = false,
espEnabled = false,
nameTagsEnabled = false,
espObjects = {},
nameTagObjects = {},
noclipConn = nil,
flyObjects = {gyro = nil, vel = nil},
espColorIndex = 0,
creditConn = nil,
walkMultiplier = defaultMultiplier,
sliderDragging = false,
-- PVP / aimbot
aimbotEnabled = false, -- legacy camera-only aimbot toggle
playerAimAimbot = false, -- player+camera aimbot toggle
aimbotRadius = 120, -- pixels (default)
aimbotRadiusMin = 30,
aimbotRadiusMax = 300,
aimbotLocking = false, -- ensure starts false
aimbotUserOverride = false,
aimbotLastMousePos = UIS:GetMouseLocation(),
aimbotCameraTypeBackup = nil,
aimbotSliderDragging = false,
-- God Mode
godMode = false,
godConn = nil,
godCharAddedConn = nil,
godHumChangedConn = nil,
godPrevAutoLoad = true
}
-- Utility
local function safeDestroy(obj)
if obj and obj.Parent then
pcall(function() obj:Destroy() end)
end
end
local function getCharacter(plr)
if plr == player then
return player.Character
else
return plr.Character
end
end
-- Paid tag (local-only)
local function createPaidTagForLocal()
local c = player.Character
if not c then return end
local head = c:FindFirstChild("Head") or c:FindFirstChild("UpperTorso") or c:FindFirstChild("HumanoidRootPart")
if not head then return end
if head:FindFirstChild("CybixPaidTag") then head.CybixPaidTag:Destroy() end
local bg = Instance.new("BillboardGui")
bg.Name = "CybixPaidTag"
bg.Adornee = head
bg.AlwaysOnTop = true
bg.Size = UDim2.new(0,200,0,30)
bg.StudsOffset = Vector3.new(0,3.2,0)
bg.Parent = head
local label = Instance.new("TextLabel", bg)
label.Size = UDim2.new(1,0,1,0)
label.BackgroundTransparency = 1
label.Text = "< CYBIX MENU USER >"
label.TextColor3 = Color3.fromRGB(255,215,80)
label.Font = Enum.Font.GothamBold
label.TextScaled = true
label.TextStrokeTransparency = 0.7
return bg
end
createPaidTagForLocal()
player.CharacterAdded:Connect(function(c)
char = c
humanoid = char:FindFirstChild("Humanoid")
task.wait(0.1)
createPaidTagForLocal()
end)
-- Noclip
local function enableNoclip()
runtimeState.noclipEnabled = true
local c = player.Character
if c then
for _, part in ipairs(c:GetDescendants()) do
if part:IsA("BasePart") then
if part:GetAttribute("origCanCollide") == nil then
part:SetAttribute("origCanCollide", part.CanCollide)
end
part.CanCollide = false
end
end
end
runtimeState.noclipConn = RunService.Stepped:Connect(function()
local c2 = player.Character
if c2 then
for _, part in ipairs(c2:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)
end
local function disableNoclip()
runtimeState.noclipEnabled = false
if runtimeState.noclipConn then
runtimeState.noclipConn:Disconnect()
runtimeState.noclipConn = nil
end
local c = player.Character
if c then
for _, part in ipairs(c:GetDescendants()) do
if part:IsA("BasePart") then
local orig = part:GetAttribute("origCanCollide")
if orig ~= nil then
part.CanCollide = orig
part:SetAttribute("origCanCollide", nil)
else
part.CanCollide = true
end
end
end
end
end
-- Fly
local flySpeed = 50
local function startFly()
if runtimeState.flyEnabled then return end
local c = player.Character
if not c then return end
local hrp = c:FindFirstChild("HumanoidRootPart")
if not hrp then return end
local bodyGyro = Instance.new("BodyGyro")
bodyGyro.P = 9e4
bodyGyro.MaxTorque = Vector3.new(9e9,9e9,9e9)
bodyGyro.CFrame = hrp.CFrame
bodyGyro.Parent = hrp
local bodyVel = Instance.new("BodyVelocity")
bodyVel.MaxForce = Vector3.new(9e9,9e9,9e9)
bodyVel.Velocity = Vector3.new(0,0,0)
bodyVel.Parent = hrp
runtimeState.flyEnabled = true
runtimeState.flyObjects.gyro = bodyGyro
runtimeState.flyObjects.vel = bodyVel
end
local function stopFly()
runtimeState.flyEnabled = false
safeDestroy(runtimeState.flyObjects.gyro)
safeDestroy(runtimeState.flyObjects.vel)
runtimeState.flyObjects.gyro = nil
runtimeState.flyObjects.vel = nil
end
RunService.Heartbeat:Connect(function()
if runtimeState.flyEnabled then
local c = player.Character
local hrp = c and c:FindFirstChild("HumanoidRootPart")
if not hrp then return end
local cam = Workspace.CurrentCamera
if runtimeState.flyObjects.gyro then
runtimeState.flyObjects.gyro.CFrame = cam.CFrame
end
local move = Vector3.new(0,0,0)
if UIS:IsKeyDown(Enum.KeyCode.W) then move = move + cam.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.S) then move = move - cam.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.A) then move = move - cam.CFrame.RightVector end
if UIS:IsKeyDown(Enum.KeyCode.D) then move = move + cam.CFrame.RightVector end
if UIS:IsKeyDown(Enum.KeyCode.Space) then move = move + Vector3.new(0,1,0) end
if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then move = move - Vector3.new(0,1,0) end
if runtimeState.flyObjects.vel then
if move.Magnitude > 0 then
runtimeState.flyObjects.vel.Velocity = move.Unit * flySpeed
else
runtimeState.flyObjects.vel.Velocity = Vector3.new(0,0,0)
end
end
end
end)
-- Visuals: ESP and NameTags
local function makeHighlightForCharacter(plr)
local c = getCharacter(plr)
if not c then return nil end
local highlight = Instance.new("Highlight")
highlight.Name = "CybixESP"
highlight.Adornee = c
highlight.FillTransparency = 1
highlight.OutlineTransparency = 0
highlight.OutlineColor = Color3.fromHSV(0,1,1)
highlight.Parent = c
return highlight
end
local function makeNameTagForCharacter(plr)
local c = getCharacter(plr)
if not c then return nil end
local head = c:FindFirstChild("Head") or c:FindFirstChild("UpperTorso") or c:FindFirstChild("HumanoidRootPart")
if not head then return nil end
local bg = Instance.new("BillboardGui")
bg.Name = "CybixNameTag"
bg.Adornee = head
bg.AlwaysOnTop = true
bg.Size = UDim2.new(0,200,0,40)
bg.StudsOffset = Vector3.new(0,2.4,0)
bg.Parent = c
local label = Instance.new("TextLabel", bg)
label.Size = UDim2.new(1,0,1,0)
label.BackgroundTransparency = 1
label.Text = plr.DisplayName or plr.Name
label.TextColor3 = Color3.fromRGB(255,255,255)
label.Font = Enum.Font.Gotham
label.TextScaled = true
label.TextStrokeTransparency = 0.6
return bg
end
local function enableESP()
runtimeState.espEnabled = true
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player then
local c = plr.Character
if c and not runtimeState.espObjects[plr] then
runtimeState.espObjects[plr] = makeHighlightForCharacter(plr)
end
end
end
Players.PlayerAdded:Connect(function(plr)
if runtimeState.espEnabled and plr ~= player then
runtimeState.espObjects[plr] = makeHighlightForCharacter(plr)
end
end)
Players.PlayerRemoving:Connect(function(plr)
if runtimeState.espObjects[plr] then
safeDestroy(runtimeState.espObjects[plr])
runtimeState.espObjects[plr] = nil
end
if runtimeState.nameTagObjects[plr] then
safeDestroy(runtimeState.nameTagObjects[plr])
runtimeState.nameTagObjects[plr] = nil
end
end)
end
local function disableESP()
runtimeState.espEnabled = false
for plr, obj in pairs(runtimeState.espObjects) do
safeDestroy(obj)
runtimeState.espObjects[plr] = nil
end
end
RunService.Heartbeat:Connect(function(dt)
if runtimeState.espEnabled then
runtimeState.espColorIndex = (runtimeState.espColorIndex + dt * 0.2) % 1
local col = Color3.fromHSV(runtimeState.espColorIndex, 1, 1)
for plr, obj in pairs(runtimeState.espObjects) do
if obj and obj.Parent then
obj.OutlineColor = col
end
end
end
end)
local function enableNameTags()
runtimeState.nameTagsEnabled = true
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and not runtimeState.nameTagObjects[plr] then
runtimeState.nameTagObjects[plr] = makeNameTagForCharacter(plr)
end
end
Players.PlayerAdded:Connect(function(plr)
if runtimeState.nameTagsEnabled and plr ~= player then
runtimeState.nameTagObjects[plr] = makeNameTagForCharacter(plr)
end
end)
Players.PlayerRemoving:Connect(function(plr)
if runtimeState.nameTagObjects[plr] then
safeDestroy(runtimeState.nameTagObjects[plr])
runtimeState.nameTagObjects[plr] = nil
end
end)
end
local function disableNameTags()
runtimeState.nameTagsEnabled = false
for plr, obj in pairs(runtimeState.nameTagObjects) do
safeDestroy(obj)
runtimeState.nameTagObjects[plr] = nil
end
end
Players.PlayerAdded:Connect(function(plr)
plr.CharacterAdded:Connect(function(c)
task.wait(0.1)
if runtimeState.espEnabled and plr ~= player then
runtimeState.espObjects[plr] = makeHighlightForCharacter(plr)
end
if runtimeState.nameTagsEnabled and plr ~= player then
runtimeState.nameTagObjects[plr] = makeNameTagForCharacter(plr)
end
end)
end)
-- =========================
-- Aimbot core (client-side assist)
-- =========================
local function findAimbotTarget(radiusPixels)
local cam = Workspace.CurrentCamera
if not cam then return nil end
local center = Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y/2)
local best, bestDist = nil, math.huge
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and plr.Character and plr.Character.Parent then
local head = plr.Character:FindFirstChild("Head") or plr.Character:FindFirstChild("UpperTorso")
if head then
local screenPos, onScreen = cam:WorldToViewportPoint(head.Position)
if onScreen then
local sp = Vector2.new(screenPos.X, screenPos.Y)
local dist = (sp - center).Magnitude
if dist <= radiusPixels and dist < bestDist then
best = {player = plr, part = head, screenPos = sp, worldPos = head.Position}
bestDist = dist
end
end
end
end
end
return best
end
-- lock camera to target while right mouse held and aimbot active
local function startAimbotLock()
if runtimeState.aimbotLocking then return end
runtimeState.aimbotLocking = true
runtimeState.aimbotUserOverride = false
runtimeState.aimbotLastMousePos = UIS:GetMouseLocation()
local cam = Workspace.CurrentCamera
if cam then
runtimeState.aimbotCameraTypeBackup = cam.CameraType
end
end
local function stopAimbotLock()
if not runtimeState.aimbotLocking then return end
runtimeState.aimbotLocking = false
runtimeState.aimbotUserOverride = false
local cam = Workspace.CurrentCamera
if cam and runtimeState.aimbotCameraTypeBackup then
cam.CameraType = runtimeState.aimbotCameraTypeBackup
runtimeState.aimbotCameraTypeBackup = nil
end
end
-- Heartbeat handler to perform camera adjustments when locking
RunService.Heartbeat:Connect(function()
if (runtimeState.aimbotEnabled or runtimeState.playerAimAimbot)
and runtimeState.aimbotLocking
and not runtimeState.aimbotUserOverride then
local cam = Workspace.CurrentCamera
if not cam then return end
local target = findAimbotTarget(runtimeState.aimbotRadius)
if not target then return end
-- rotate camera to look at target from current camera position
local camPos = cam.CFrame.Position
local lookCFrame = CFrame.new(camPos, target.worldPos)
cam.CameraType = Enum.CameraType.Scriptable
cam.CFrame = lookCFrame
-- If playerAimAimbot is enabled, rotate the player's HumanoidRootPart to face the target
if runtimeState.playerAimAimbot then
local c = player.Character
if c then
local hrp = c:FindFirstChild("HumanoidRootPart")
if hrp then
-- Keep player's Y position unchanged while facing target
local targetPos = Vector3.new(target.worldPos.X, hrp.Position.Y, target.worldPos.Z)
hrp.CFrame = CFrame.new(hrp.Position, targetPos)
end
end
end
end
end)
-- detect mouse movement to allow user override
UIS.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
local pos = UIS:GetMouseLocation()
local delta = (pos - runtimeState.aimbotLastMousePos).Magnitude
runtimeState.aimbotLastMousePos = pos
if runtimeState.aimbotLocking and delta > 2 then
runtimeState.aimbotUserOverride = true
end
end
end)
-- right mouse button handling
local mouse = player:GetMouse()
mouse.Button2Down:Connect(function()
-- only start locking if aimbot toggles are enabled
if runtimeState.aimbotEnabled or runtimeState.playerAimAimbot then
runtimeState.aimbotUserOverride = false
startAimbotLock()
end
end)
mouse.Button2Up:Connect(function()
if runtimeState.aimbotLocking then
stopAimbotLock()
end
end)
-- =========================
-- God Mode functions
-- =========================
local function applyGodToHumanoid(hum)
if not hum then return end
-- set huge health values
pcall(function()
hum.MaxHealth = math.huge
hum.Health = math.huge
end)
end
local function enableGodMode()
if runtimeState.godMode then return end
runtimeState.godMode = true
-- remember previous CharacterAutoLoads setting and disable auto respawn
runtimeState.godPrevAutoLoad = Players.CharacterAutoLoads
pcall(function() Players.CharacterAutoLoads = false end)
-- apply to current character
local c = player.Character
if c then
local hum = c:FindFirstChild("Humanoid")
if hum then
applyGodToHumanoid(hum)
-- ensure health stays high
if runtimeState.godHumChangedConn then
runtimeState.godHumChangedConn:Disconnect()
runtimeState.godHumChangedConn = nil
end
runtimeState.godHumChangedConn = hum.HealthChanged:Connect(function()
if runtimeState.godMode and hum and hum.Parent then
if hum.Health < math.huge then
pcall(function()
hum.MaxHealth = math.huge
hum.Health = math.huge
end)
end
end
end)
end
end
-- ensure future characters are protected
if runtimeState.godCharAddedConn then
runtimeState.godCharAddedConn:Disconnect()
runtimeState.godCharAddedConn = nil
end
runtimeState.godCharAddedConn = player.CharacterAdded:Connect(function(cnew)
task.wait(0.05)
local humNew = cnew:FindFirstChild("Humanoid")
if humNew then
applyGodToHumanoid(humNew)
if runtimeState.godHumChangedConn then
runtimeState.godHumChangedConn:Disconnect()
runtimeState.godHumChangedConn = nil
end
runtimeState.godHumChangedConn = humNew.HealthChanged:Connect(function()
if runtimeState.godMode and humNew and humNew.Parent then
if humNew.Health < math.huge then
pcall(function()
humNew.MaxHealth = math.huge
humNew.Health = math.huge
end)
end
end
end)
end
end)
-- safety heartbeat to enforce health
if runtimeState.godConn then
runtimeState.godConn:Disconnect()
runtimeState.godConn = nil
end
runtimeState.godConn = RunService.Heartbeat:Connect(function()
if not runtimeState.godMode then return end
local c2 = player.Character
if c2 then
local h2 = c2:FindFirstChild("Humanoid")
if h2 then
if h2.Health < math.huge then
pcall(function()
h2.MaxHealth = math.huge
h2.Health = math.huge
end)
end
end
end
end)
end
local function disableGodMode()
if not runtimeState.godMode then return end
runtimeState.godMode = false
-- restore CharacterAutoLoads
pcall(function() Players.CharacterAutoLoads = runtimeState.godPrevAutoLoad end)
if runtimeState.godConn then
runtimeState.godConn:Disconnect()
runtimeState.godConn = nil
end
if runtimeState.godHumChangedConn then
runtimeState.godHumChangedConn:Disconnect()
runtimeState.godHumChangedConn = nil
end
if runtimeState.godCharAddedConn then
runtimeState.godCharAddedConn:Disconnect()
runtimeState.godCharAddedConn = nil
end
-- restore humanoid to default health values if present
local c = player.Character
if c then
local hum = c:FindFirstChild("Humanoid")
if hum then
pcall(function()
hum.MaxHealth = 100
hum.Health = math.min(100, hum.Health)
end)
end
end
end
-- =========================
-- GUI: build pages and buttons
-- =========================
-- ROOT GUI
local gui = Instance.new("ScreenGui")
gui.Name = "CybixMiniMenu"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")
-- MAIN WINDOW
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0,460,0,460)
mainFrame.Position = UDim2.new(0,40,0.5,-230)
mainFrame.BackgroundColor3 = Color3.fromRGB(20,20,24)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Parent = gui
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0,12)
-- HEADER (drag handle)
local header = Instance.new("Frame", mainFrame)
header.Size = UDim2.new(1,0,0,40)
header.BackgroundColor3 = Color3.fromRGB(28,28,34)
header.BorderSizePixel = 0
Instance.new("UICorner", header).CornerRadius = UDim.new(0,12)
local title = Instance.new("TextLabel", header)
title.Size = UDim2.new(0,260,1,0)
title.Position = UDim2.new(0,12,0,0)
title.BackgroundTransparency = 1
title.Text = "CYBIX MENU PAID"
title.TextColor3 = Color3.fromRGB(245,245,245)
title.Font = Enum.Font.GothamBold
title.TextScaled = true
title.TextXAlignment = Enum.TextXAlignment.Left
-- RESET X BUTTON
local closeBtn = Instance.new("TextButton", header)
closeBtn.Size = UDim2.new(0,40,0,32)
closeBtn.Position = UDim2.new(1,-52,0,4)
closeBtn.BackgroundColor3 = Color3.fromRGB(160,40,40)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255,255,255)
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextScaled = true
closeBtn.BorderSizePixel = 0
Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0,8)
closeBtn.MouseButton1Click:Connect(function()
-- destroy GUI and attempt to clean up runtime state
runtimeState.rgbRunning = false
runtimeState.galaxyRunning = false
stopFly()
disableNoclip()
disableESP()
disableNameTags()
disableGodMode()
safeDestroy(gui)
end)
-- Make header draggable
do
local dragging, dragInput, dragStart, startPos
header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
header.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
RunService.RenderStepped:Connect(function()
if dragging and dragInput then
local delta = dragInput.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
end
-- SIDEBAR
local sidebar = Instance.new("Frame", mainFrame)
sidebar.Size = UDim2.new(0,120,1,-104)
sidebar.Position = UDim2.new(0,0,0,40)
sidebar.BackgroundColor3 = Color3.fromRGB(18,18,22)
sidebar.BorderSizePixel = 0
Instance.new("UICorner", sidebar).CornerRadius = UDim.new(0,10)
local sidebarLayout = Instance.new("UIListLayout", sidebar)
sidebarLayout.Padding = UDim.new(0,8)
sidebarLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
sidebarLayout.SortOrder = Enum.SortOrder.LayoutOrder
-- CONTENT FRAME
local contentFrame = Instance.new("Frame", mainFrame)
contentFrame.Size = UDim2.new(1,-140,1,-104)
contentFrame.Position = UDim2.new(0,140,0,40)
contentFrame.BackgroundColor3 = Color3.fromRGB(24,24,30)
contentFrame.BorderSizePixel = 0
Instance.new("UICorner", contentFrame).CornerRadius = UDim.new(0,10)
local pages = {}
local currentPage
local function createPage()
local page = Instance.new("ScrollingFrame", contentFrame)
page.Size = UDim2.new(1,-16,1,-16)
page.Position = UDim2.new(0,8,0,8)
page.BackgroundTransparency = 1
page.ScrollBarThickness = 6
page.Visible = false
local layout = Instance.new("UIListLayout", page)
layout.Padding = UDim.new(0,8)
layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
page.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 12)
end)
return page
end
local function switchPage(name)
if currentPage then currentPage.Visible = false end
currentPage = pages[name]
if currentPage then currentPage.Visible = true end
end
local function createSidebarButton(name, order)
local btn = Instance.new("TextButton", sidebar)
btn.Size = UDim2.new(1,-12,0,32)
btn.LayoutOrder = order or 1
btn.BackgroundColor3 = Color3.fromRGB(40,40,50)
btn.TextColor3 = Color3.fromRGB(220,220,240)
btn.Font = Enum.Font.GothamBold
btn.TextScaled = true
btn.Text = name
btn.BorderSizePixel = 0
Instance.new("UICorner", btn).CornerRadius = UDim.new(0,8)
btn.MouseEnter:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(70,70,90)}):Play()
end)
btn.MouseLeave:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(40,40,50)}):Play()
end)
return btn
end
local function createSection(page, titleText, height)
local section = Instance.new("Frame", page)
section.Size = UDim2.new(1,-8,0,height or 140)
section.BackgroundColor3 = Color3.fromRGB(32,32,40)
section.BorderSizePixel = 0
Instance.new("UICorner", section).CornerRadius = UDim.new(0,8)
local title = Instance.new("TextLabel", section)
title.Size = UDim2.new(1,-16,0,28)
title.Position = UDim2.new(0,8,0,6)
title.BackgroundTransparency = 1
title.Text = titleText
title.TextColor3 = Color3.fromRGB(240,240,240)
title.Font = Enum.Font.GothamBold
title.TextScaled = true
local layout = Instance.new("UIListLayout", section)
layout.Padding = UDim.new(0,6)
layout.SortOrder = Enum.SortOrder.LayoutOrder
return section
end
local function createButton(parent, text)
local btn = Instance.new("TextButton", parent)
btn.Size = UDim2.new(1,-16,0,34)
btn.Position = UDim2.new(0,8,0,0)
btn.BackgroundColor3 = Color3.fromRGB(50,50,60)
btn.TextColor3 = Color3.fromRGB(255,255,255)
btn.Font = Enum.Font.Gotham
btn.TextScaled = true
btn.Text = text
btn.BorderSizePixel = 0
Instance.new("UICorner", btn).CornerRadius = UDim.new(0,8)
btn.MouseEnter:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(70,70,90)}):Play()
end)
btn.MouseLeave:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.12), {BackgroundColor3 = Color3.fromRGB(50,50,60)}):Play()
end)
return btn
end
-- Leaderboard
local lbPage = createPage()
pages["Leaderboard"] = lbPage
local lbBtn = createSidebarButton("Leaderboard", 1)
lbBtn.MouseButton1Click:Connect(function() switchPage("Leaderboard") end)
local lbSection = createSection(lbPage, "Players", 220)
local lbList = Instance.new("ScrollingFrame", lbSection)
lbList.Size = UDim2.new(1,-20,0,160)
lbList.Position = UDim2.new(0,10,0,44)
lbList.BackgroundTransparency = 1
lbList.ScrollBarThickness = 6
local lbLayout = Instance.new("UIListLayout", lbList)
lbLayout.Padding = UDim.new(0,4)
local function clearLeaderboard()
for _,v in ipairs(lbList:GetChildren()) do
if v:IsA("TextLabel") then v:Destroy() end
end
end
local function addPlayerToLeaderboard(plr)
local item = Instance.new("TextLabel", lbList)
item.Size = UDim2.new(1,-10,0,28)
item.BackgroundColor3 = Color3.fromRGB(45,45,55)
item.TextColor3 = Color3.fromRGB(255,255,255)
item.Font = Enum.Font.Gotham
item.TextScaled = true
item.Text = plr.Name
Instance.new("UICorner", item).CornerRadius = UDim.new(0,8)
end
clearLeaderboard()
for _,plr in ipairs(Players:GetPlayers()) do addPlayerToLeaderboard(plr) end
Players.PlayerAdded:Connect(function(plr) addPlayerToLeaderboard(plr) end)
Players.PlayerRemoving:Connect(function()
clearLeaderboard()
for _,p in ipairs(Players:GetPlayers()) do addPlayerToLeaderboard(p) end
end)
-- Settings
local setPage = createPage()
pages["Settings"] = setPage
local setBtn = createSidebarButton("Settings", 2)
setBtn.MouseButton1Click:Connect(function() switchPage("Settings") end)
local setSection = createSection(setPage, "Themes", 140)
local defaultBtn = createButton(setSection, "Default Theme")
local rgbBtn = createButton(setSection, "RGB Theme")
local galaxyBtn = createButton(setSection, "Galaxy Theme")
defaultBtn.MouseButton1Click:Connect(function()
runtimeState.rgbRunning = false
runtimeState.galaxyRunning = false
mainFrame.BackgroundColor3 = Color3.fromRGB(20,20,24)
contentFrame.BackgroundColor3 = Color3.fromRGB(24,24,30)
sidebar.BackgroundColor3 = Color3.fromRGB(18,18,22)
end)
rgbBtn.MouseButton1Click:Connect(function()
runtimeState.rgbRunning = true
runtimeState.galaxyRunning = false
task.spawn(function()
while runtimeState.rgbRunning do
for i=0,1,0.02 do
if not runtimeState.rgbRunning then break end
mainFrame.BackgroundColor3 = Color3.fromHSV(i,0.6,0.9)
task.wait(0.03)
end
end
end)
end)
galaxyBtn.MouseButton1Click:Connect(function()
runtimeState.rgbRunning = false
runtimeState.galaxyRunning = true
task.spawn(function()
while runtimeState.galaxyRunning do
for i=0,1,0.02 do
if not runtimeState.galaxyRunning then break end
mainFrame.BackgroundColor3 = Color3.fromHSV(0.7 + i*0.1, 0.7, 0.9)
task.wait(0.03)
end
end
end)
end)
-- Fun
local funPage = createPage()
pages["Fun"] = funPage
local funBtn = createSidebarButton("Fun", 3)
funBtn.MouseButton1Click:Connect(function() switchPage("Fun") end)
local fxSection = createSection(funPage, "Effects", 160)
local sparkBtn = createButton(fxSection, "Sparkles")
local rainbowBtn = createButton(fxSection, "Rainbow Body")
local auraBtn = createButton(fxSection, "Glow Aura")
sparkBtn.MouseButton1Click:Connect(function()
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hrp then
local s = Instance.new("Sparkles", hrp)
table.insert(runtimeState.activeEffects, s)
task.delay(6, function() safeDestroy(s) end)
end
end)
rainbowBtn.MouseButton1Click:Connect(function()
task.spawn(function()
for i=0,1,0.02 do
for _,part in ipairs(char:GetChildren()) do
if part:IsA("BasePart") then
part.Color = Color3.fromHSV(i,1,1)
end
end
task.wait(0.03)
end
end)
end)
auraBtn.MouseButton1Click:Connect(function()
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hrp then
local light = Instance.new("PointLight", hrp)
light.Range = 14
light.Brightness = 2
light.Color = Color3.fromRGB(0,150,255)
table.insert(runtimeState.activeEffects, light)
task.delay(6, function() safeDestroy(light) end)
end
end)
local emoteSection = createSection(funPage, "Emotes", 120)
local danceBtn = createButton(emoteSection, "Dance")
local waveBtn = createButton(emoteSection, "Wave")
local function playAnim(id)
if not humanoid then return end
local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://" .. tostring(id)
local ok, track = pcall(function() return humanoid:LoadAnimation(anim) end)
if ok and track then
track:Play()
task.delay(6, function()
if track.IsPlaying then track:Stop() end
end)
end
end
danceBtn.MouseButton1Click:Connect(function() playAnim(507771019) end)
waveBtn.MouseButton1Click:Connect(function() playAnim(507770239) end)
-- Movement tab
local movePage = createPage()
pages["Movement"] = movePage
local moveBtn = createSidebarButton("Movement", 4)
moveBtn.MouseButton1Click:Connect(function() switchPage("Movement") end)
local moveSection = createSection(movePage, "Movement", 240)
local noclipToggle = createButton(moveSection, "Noclip: OFF")
local flyToggle = createButton(moveSection, "Fly: OFF")
noclipToggle.MouseButton1Click:Connect(function()
if runtimeState.noclipEnabled then
disableNoclip()
noclipToggle.Text = "Noclip: OFF"
else
enableNoclip()
noclipToggle.Text = "Noclip: ON"
end
end)
flyToggle.MouseButton1Click:Connect(function()
if runtimeState.flyEnabled then
stopFly()
flyToggle.Text = "Fly: OFF"
else
startFly()
flyToggle.Text = "Fly: ON"
end
end)
-- Walk Speed Slider UI
local sliderLabel = Instance.new("TextLabel", moveSection)
sliderLabel.Size = UDim2.new(1,-16,0,22)
sliderLabel.Position = UDim2.new(0,8,0,44)
sliderLabel.BackgroundTransparency = 1
sliderLabel.Text = "Walk Speed Multiplier: " .. string.format("%.2f", runtimeState.walkMultiplier) .. "x"
sliderLabel.TextColor3 = Color3.fromRGB(230,230,230)
sliderLabel.Font = Enum.Font.Gotham
sliderLabel.TextSize = 14
sliderLabel.TextXAlignment = Enum.TextXAlignment.Left
local sliderBar = Instance.new("Frame", moveSection)
sliderBar.Size = UDim2.new(1,-32,0,14)
sliderBar.Position = UDim2.new(0,16,0,72)
sliderBar.BackgroundColor3 = Color3.fromRGB(60,60,70)
sliderBar.BorderSizePixel = 0
Instance.new("UICorner", sliderBar).CornerRadius = UDim.new(0,6)
local sliderFill = Instance.new("Frame", sliderBar)
sliderFill.Size = UDim2.new( (runtimeState.walkMultiplier - 0.1) / (100 - 0.1), 0, 1, 0)
sliderFill.BackgroundColor3 = Color3.fromRGB(100,160,255)
sliderFill.BorderSizePixel = 0
Instance.new("UICorner", sliderFill).CornerRadius = UDim.new(0,6)
local knob = Instance.new("ImageButton", sliderBar)
knob.Size = UDim2.new(0,18,0,18)
knob.Position = UDim2.new(sliderFill.Size.X.Scale, -9, 0.5, -9)
knob.BackgroundTransparency = 1
knob.Image = "rbxassetid://3570695787"
knob.ImageColor3 = Color3.fromRGB(200,200,200)
-- Slider parameters
local sliderMin = 0.1
local sliderMax = 100
local function setWalkMultiplierFromPosition(x)
local absX = math.clamp(x, 0, sliderBar.AbsoluteSize.X)
local t = absX / sliderBar.AbsoluteSize.X
local value = sliderMin + (sliderMax - sliderMin) * t
runtimeState.walkMultiplier = value
local h = player.Character and player.Character:FindFirstChild("Humanoid")
if h then
h.WalkSpeed = baseWalkSpeed * runtimeState.walkMultiplier
end
sliderFill.Size = UDim2.new(t, 0, 1, 0)
knob.Position = UDim2.new(t, -9, 0.5, -9)
sliderLabel.Text = "Walk Speed Multiplier: " .. string.format("%.2f", runtimeState.walkMultiplier) .. "x"
end
-- Initialize slider to default multiplier
do
local t = (runtimeState.walkMultiplier - sliderMin) / (sliderMax - sliderMin)
sliderFill.Size = UDim2.new(t, 0, 1, 0)
knob.Position = UDim2.new(t, -9, 0.5, -9)
if humanoid then
humanoid.WalkSpeed = baseWalkSpeed * runtimeState.walkMultiplier
end
end
-- Drag handling
knob.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
runtimeState.sliderDragging = true
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
runtimeState.sliderDragging = false
end
end)
end
end)
UIS.InputChanged:Connect(function(input)
if runtimeState.sliderDragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local relative = input.Position.X - sliderBar.AbsolutePosition.X
setWalkMultiplierFromPosition(relative)
end
end)
-- PVP tab
local pvpPage = createPage()
pages["PVP"] = pvpPage
local pvpBtn = createSidebarButton("PVP", 5)
pvpBtn.MouseButton1Click:Connect(function() switchPage("PVP") end)
local pvpSection = createSection(pvpPage, "PVP", 260)
-- Legacy Aimbot Toggle (camera-only)
local legacyAimbotBtn = createButton(pvpSection, "Legacy Aimbot: OFF")
legacyAimbotBtn.MouseButton1Click:Connect(function()
runtimeState.aimbotEnabled = not runtimeState.aimbotEnabled
legacyAimbotBtn.Text = "Legacy Aimbot: " .. (runtimeState.aimbotEnabled and "ON" or "OFF")
-- overlay visibility: show only when either toggle is ON
if gui:FindFirstChild("AimbotOverlay") then
gui.AimbotOverlay.Enabled = (runtimeState.aimbotEnabled or runtimeState.playerAimAimbot)
end
-- if both toggles are OFF, ensure lock is stopped
if not runtimeState.aimbotEnabled and not runtimeState.playerAimAimbot then
stopAimbotLock()
end
end)
-- NEW: Aimbot (Player Aim) Toggle
local playerAimToggle = createButton(pvpSection, "Aimbot (Player Aim): OFF")
playerAimToggle.MouseButton1Click:Connect(function()
runtimeState.playerAimAimbot = not runtimeState.playerAimAimbot
playerAimToggle.Text = "Aimbot (Player Aim): " .. (runtimeState.playerAimAimbot and "ON" or "OFF")
-- overlay visibility: show only when either toggle is ON
if gui:FindFirstChild("AimbotOverlay") then
gui.AimbotOverlay.Enabled = (runtimeState.aimbotEnabled or runtimeState.playerAimAimbot)
end
-- if both toggles are OFF, ensure lock is stopped
if not runtimeState.aimbotEnabled and not runtimeState.playerAimAimbot then
stopAimbotLock()
end
end)
-- God Mode Toggle (added to PVP)
local godBtn = createButton(pvpSection, "God Mode: OFF")
godBtn.MouseButton1Click:Connect(function()
if runtimeState.godMode then
disableGodMode()
godBtn.Text = "God Mode: OFF"
else
enableGodMode()
godBtn.Text = "God Mode: ON"
end
end)
-- Aimbot radius slider (thin slider, visible circle outline + red dot)
local aimbotSliderLabel = Instance.new("TextLabel", pvpSection)
aimbotSliderLabel.Size = UDim2.new(1,-16,0,18)
aimbotSliderLabel.Position = UDim2.new(0,8,0,170)
aimbotSliderLabel.BackgroundTransparency = 1
aimbotSliderLabel.Text = "Aimbot Radius: " .. tostring(runtimeState.aimbotRadius)
aimbotSliderLabel.TextColor3 = Color3.fromRGB(220,220,220)
aimbotSliderLabel.Font = Enum.Font.Gotham
aimbotSliderLabel.TextSize = 14
aimbotSliderLabel.TextXAlignment = Enum.TextXAlignment.Left
local aimbotSliderBar = Instance.new("Frame", pvpSection)
aimbotSliderBar.Size = UDim2.new(1,-32,0,10)
aimbotSliderBar.Position = UDim2.new(0,16,0,192)
aimbotSliderBar.BackgroundColor3 = Color3.fromRGB(60,60,70)
aimbotSliderBar.BorderSizePixel = 0
Instance.new("UICorner", aimbotSliderBar).CornerRadius = UDim.new(0,6)
local aimbotSliderFill = Instance.new("Frame", aimbotSliderBar)
local initialT = (runtimeState.aimbotRadius - runtimeState.aimbotRadiusMin) / (runtimeState.aimbotRadiusMax - runtimeState.aimbotRadiusMin)
aimbotSliderFill.Size = UDim2.new(initialT, 0, 1, 0)
aimbotSliderFill.BackgroundColor3 = Color3.fromRGB(255,100,100)
aimbotSliderFill.BorderSizePixel = 0
Instance.new("UICorner", aimbotSliderFill).CornerRadius = UDim.new(0,6)
local aimbotKnob = Instance.new("ImageButton", aimbotSliderBar)
aimbotKnob.Size = UDim2.new(0,14,0,14)
aimbotKnob.Position = UDim2.new(aimbotSliderFill.Size.X.Scale, -7, 0.5, -7)
aimbotKnob.BackgroundTransparency = 1
aimbotKnob.Image = "rbxassetid://3570695787"
aimbotKnob.ImageColor3 = Color3.fromRGB(200,200,200)
local function setAimbotRadiusFromPosition(x)
local absX = math.clamp(x, 0, aimbotSliderBar.AbsoluteSize.X)
local t = absX / aimbotSliderBar.AbsoluteSize.X
local value = math.floor(runtimeState.aimbotRadiusMin + (runtimeState.aimbotRadiusMax - runtimeState.aimbotRadiusMin) * t + 0.5)
runtimeState.aimbotRadius = value
aimbotSliderFill.Size = UDim2.new(t, 0, 1, 0)
aimbotKnob.Position = UDim2.new(t, -7, 0.5, -7)
aimbotSliderLabel.Text = "Aimbot Radius: " .. tostring(runtimeState.aimbotRadius)
-- update visible circle size if overlay exists
if gui:FindFirstChild("AimbotOverlay") then
local overlay = gui.AimbotOverlay
local circle = overlay:FindFirstChild("AimbotCircle")
if circle then
local r = runtimeState.aimbotRadius
circle.Size = UDim2.new(0, r*2, 0, r*2)
circle.Position = UDim2.new(0.5, -r, 0.5, -r)
end
end
end
aimbotKnob.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
runtimeState.aimbotSliderDragging = true
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
runtimeState.aimbotSliderDragging = false
end
end)
end
end)
UIS.InputChanged:Connect(function(input)
if runtimeState.aimbotSliderDragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local relative = input.Position.X - aimbotSliderBar.AbsolutePosition.X
setAimbotRadiusFromPosition(relative)
end
end)
-- Visuals tab (ESP + NameTags should be here)
local visPage = createPage()
pages["Visuals"] = visPage
local visBtn = createSidebarButton("Visuals", 6)
visBtn.MouseButton1Click:Connect(function() switchPage("Visuals") end)
local visSection = createSection(visPage, "Visuals", 160)
local espToggleBtn = createButton(visSection, "ESP: OFF")
espToggleBtn.MouseButton1Click:Connect(function()
if runtimeState.espEnabled then
disableESP()
espToggleBtn.Text = "ESP: OFF"
else
enableESP()
espToggleBtn.Text = "ESP: ON"
end
end)
local nameTagToggleBtn = createButton(visSection, "NameTags: OFF")
nameTagToggleBtn.MouseButton1Click:Connect(function()
if runtimeState.nameTagsEnabled then
disableNameTags()
nameTagToggleBtn.Text = "NameTags: OFF"
else
enableNameTags()
nameTagToggleBtn.Text = "NameTags: ON"
end
end)
-- README tab (updated notice text; red bold)
local readmePage = createPage()
pages["README"] = readmePage
local readmeBtn = createSidebarButton("README", 7)
readmeBtn.MouseButton1Click:Connect(function() switchPage("README") end)
local readmeSection = createSection(readmePage, "README", 220)
local readmeLabel = Instance.new("TextLabel", readmeSection)
readmeLabel.Size = UDim2.new(1,-16,0,160)
readmeLabel.Position = UDim2.new(0,8,0,44)
readmeLabel.BackgroundTransparency = 1
readmeLabel.TextColor3 = Color3.fromRGB(255,0,0) -- red bold text color
readmeLabel.Font = Enum.Font.GothamBold
readmeLabel.TextSize = 16
readmeLabel.TextWrapped = true
readmeLabel.Text = ". *NOTICE MODS ARE RECORDED TO BE DETECTED, EVERY SCRIPT FOR ROBLOX IS*"
-- Credits tab (updated text and RGB cycling text; credits text slightly larger and RGB)
local creditsPage = createPage()
pages["Credits"] = creditsPage
local creditsBtn = createSidebarButton("Credits", 8)
creditsBtn.MouseButton1Click:Connect(function() switchPage("Credits") end)
local creditsSection = createSection(creditsPage, "Credits", 160)
local creditsLabel = Instance.new("TextLabel", creditsSection)
creditsLabel.Size = UDim2.new(1,-16,0,120)
creditsLabel.Position = UDim2.new(0,8,0,44)
creditsLabel.BackgroundTransparency = 1
creditsLabel.TextColor3 = Color3.fromRGB(255,255,255)
creditsLabel.Font = Enum.Font.GothamBold
creditsLabel.TextSize = 16
creditsLabel.TextWrapped = true
creditsLabel.Text = "- Desgins and Scripts by CYBIX (jffx99) -some ideas from BRYAN."
-- Add RGB cycling small header text in credits (restored)
local creditsRGB = Instance.new("TextLabel", creditsSection)
creditsRGB.Size = UDim2.new(1,-16,0,24)
creditsRGB.Position = UDim2.new(0,8,0,8)
creditsRGB.BackgroundTransparency = 1
creditsRGB.Text = "CYBIX CREDITS"
creditsRGB.Font = Enum.Font.GothamBold
creditsRGB.TextScaled = true
creditsRGB.TextColor3 = Color3.fromRGB(255,0,0)
-- RGB cycle for credits header and creditsLabel (creditsLabel will also cycle slowly)
task.spawn(function()
while creditsRGB and creditsRGB.Parent do
for i=0,1,0.01 do
local col = Color3.fromHSV(i, 0.9, 1)
creditsRGB.TextColor3 = col
creditsLabel.TextColor3 = col
task.wait(0.02)
end
end
end)
----------------------------------------------------------------
-- MINI GAMES TAB (Layout fixes + more sentences)
-- Paste this block into your menu script after createPage/createSidebarButton/createSection
----------------------------------------------------------------
local mgPage = createPage()
pages["Mini Games"] = mgPage
local mgBtn = createSidebarButton("Mini Games", 98)
mgBtn.MouseButton1Click:Connect(function() switchPage("Mini Games") end)
local mgSection = createSection(mgPage, "Mini Games Hub", 520)
-- Ensure runtimeState fields exist
runtimeState.miniCoins = runtimeState.miniCoins or 0 -- coins earned from memory game
runtimeState.clickerClicks = runtimeState.clickerClicks or 0
runtimeState.clickerValue = runtimeState.clickerValue or 1 -- clicks per manual click
runtimeState.autoClickRate = runtimeState.autoClickRate or 0 -- clicks per second from autos
runtimeState.autoClickAccumulator = runtimeState.autoClickAccumulator or 0
----------------------------------------------------------------
-- Top-right coin display (for the page)
----------------------------------------------------------------
local coinLabel = Instance.new("TextLabel", mgSection)
coinLabel.Size = UDim2.new(0,120,0,28)
coinLabel.Position = UDim2.new(1,-132,0,8)
coinLabel.BackgroundColor3 = Color3.fromRGB(40,40,48)
coinLabel.TextColor3 = Color3.fromRGB(255,215,80)
coinLabel.Font = Enum.Font.GothamBold
coinLabel.TextSize = 14
coinLabel.Text = "Coins: " .. tostring(runtimeState.miniCoins)
coinLabel.TextScaled = false
coinLabel.BorderSizePixel = 0
Instance.new("UICorner", coinLabel).CornerRadius = UDim.new(0,6)
local function updateCoinLabel()
coinLabel.Text = "Coins: " .. tostring(runtimeState.miniCoins)
end
----------------------------------------------------------------
-- MEMORY / TYPING GAME (unchanged layout, added sentences)
----------------------------------------------------------------
local memFrame = Instance.new("Frame", mgSection)
memFrame.Size = UDim2.new(1,-16,0,160)
memFrame.Position = UDim2.new(0,8,0,44)
memFrame.BackgroundColor3 = Color3.fromRGB(34,34,40)
memFrame.BorderSizePixel = 0
Instance.new("UICorner", memFrame).CornerRadius = UDim.new(0,8)
local memTitle = Instance.new("TextLabel", memFrame)
memTitle.Size = UDim2.new(1,-16,0,28)
memTitle.Position = UDim2.new(0,8,0,6)
memTitle.BackgroundTransparency = 1
memTitle.Text = "Memory Typing"
memTitle.TextColor3 = Color3.fromRGB(230,230,230)
memTitle.Font = Enum.Font.GothamBold
memTitle.TextScaled = true
local memDisplay = Instance.new("TextLabel", memFrame)
memDisplay.Size = UDim2.new(1,-16,0,48)
memDisplay.Position = UDim2.new(0,8,0,44)
memDisplay.BackgroundTransparency = 1
memDisplay.TextColor3 = Color3.fromRGB(200,200,220)
memDisplay.Font = Enum.Font.Gotham
memDisplay.TextSize = 18
memDisplay.TextWrapped = true
memDisplay.Text = "Press Start to play"
memDisplay.TextXAlignment = Enum.TextXAlignment.Center
memDisplay.TextYAlignment = Enum.TextYAlignment.Center
local memInput = Instance.new("TextBox", memFrame)
memInput.Size = UDim2.new(1,-16,0,28)
memInput.Position = UDim2.new(0,8,0,100)
memInput.BackgroundColor3 = Color3.fromRGB(45,45,55)
memInput.TextColor3 = Color3.fromRGB(240,240,240)
memInput.Font = Enum.Font.Gotham
memInput.TextSize = 14
memInput.PlaceholderText = "Type the sentence exactly..."
memInput.ClearTextOnFocus = false
Instance.new("UICorner", memInput).CornerRadius = UDim.new(0,6)
local memStartBtn = Instance.new("TextButton", memFrame)
memStartBtn.Size = UDim2.new(0,100,0,28)
memStartBtn.Position = UDim2.new(1,-108,0,100)
memStartBtn.BackgroundColor3 = Color3.fromRGB(70,70,90)
memStartBtn.TextColor3 = Color3.fromRGB(255,255,255)
memStartBtn.Font = Enum.Font.GothamBold
memStartBtn.TextSize = 14
memStartBtn.Text = "Start"
Instance.new("UICorner", memStartBtn).CornerRadius = UDim.new(0,6)
local memFeedback = Instance.new("TextLabel", memFrame)
memFeedback.Size = UDim2.new(1,-16,0,20)
memFeedback.Position = UDim2.new(0,8,0,132)
memFeedback.BackgroundTransparency = 1
memFeedback.TextColor3 = Color3.fromRGB(180,255,180)
memFeedback.Font = Enum.Font.Gotham
memFeedback.TextSize = 14
memFeedback.Text = ""
-- Sentences pool (expanded)
local memSentences = {
"Roblox devs ship updates weekly",
"Space is mostly empty but full of wonders",
"Dinosaurs once ruled the land",
"Lua is lightweight and fast",
"Practice makes your code cleaner",
"Keep your UI simple and readable",
"Test in Studio before publishing",
"Save often and use version control",
"Be kind to your fellow devs",
"Small steps lead to big progress",
"Always comment tricky parts of your code",
"Use modules to organize large systems",
"Playtesting finds the weirdest bugs",
"Balance is key for fun gameplay",
"Optimize only after profiling",
"Use descriptive variable names",
"Backups save a lot of headaches",
"Iterate fast, polish slowly",
"Learn from other creators respectfully",
"Celebrate small wins with your team"
}
local memCurrent = nil
local memShowing = false
local memHideDelay = 2 -- seconds before sentence disappears
local memTimerConn = nil
local function startMemoryRound()
if memShowing then
memFeedback.Text = "Round already in progress"
return
end
memInput.Text = ""
memFeedback.Text = ""
memCurrent = memSentences[math.random(1,#memSentences)]
memDisplay.Text = memCurrent
memShowing = true
-- hide after delay
if memTimerConn then memTimerConn:Disconnect() memTimerConn = nil end
local t0 = tick()
memTimerConn = RunService.Heartbeat:Connect(function()
if tick() - t0 >= memHideDelay then
memDisplay.Text = "" -- sentence disappears
memTimerConn:Disconnect()
memTimerConn = nil
end
end)
end
local function submitMemoryAttempt()
if not memCurrent then
memFeedback.Text = "Start a round first"
return
end
local attempt = tostring(memInput.Text or "")
local function trim(s) return s:match("^%s*(.-)%s*$") end
if trim(attempt) == trim(memCurrent) then
runtimeState.miniCoins = runtimeState.miniCoins + 1
updateCoinLabel()
memFeedback.TextColor3 = Color3.fromRGB(180,255,180)
memFeedback.Text = "Perfect! +1 coin"
else
memFeedback.TextColor3 = Color3.fromRGB(255,140,140)
memFeedback.Text = "Not exact. Try again!"
end
memCurrent = nil
memShowing = false
memDisplay.Text = "Press Start to play"
end
memStartBtn.MouseButton1Click:Connect(startMemoryRound)
memInput.FocusLost:Connect(function(enter)
if enter then submitMemoryAttempt() end
end)
----------------------------------------------------------------
-- CLICKER GAME (click area above, upgrades below in scrollable area)
----------------------------------------------------------------
-- Click area (compact to leave room for upgrades below)
local clickFrame = Instance.new("Frame", mgSection)
clickFrame.Size = UDim2.new(1,-16,0,140)
clickFrame.Position = UDim2.new(0,8,0,216)
clickFrame.BackgroundColor3 = Color3.fromRGB(34,34,40)
clickFrame.BorderSizePixel = 0
Instance.new("UICorner", clickFrame).CornerRadius = UDim.new(0,8)
local clickTitle = Instance.new("TextLabel", clickFrame)
clickTitle.Size = UDim2.new(1,-16,0,28)
clickTitle.Position = UDim2.new(0,8,0,6)
clickTitle.BackgroundTransparency = 1
clickTitle.Text = "Clicker"
clickTitle.TextColor3 = Color3.fromRGB(230,230,230)
clickTitle.Font = Enum.Font.GothamBold
clickTitle.TextScaled = true
local clickButton = Instance.new("TextButton", clickFrame)
clickButton.Size = UDim2.new(0,160,0,80)
clickButton.Position = UDim2.new(0.5,-80,0,44)
clickButton.BackgroundColor3 = Color3.fromRGB(70,70,110)
clickButton.TextColor3 = Color3.fromRGB(255,255,255)
clickButton.Font = Enum.Font.GothamBold
clickButton.TextSize = 20
clickButton.Text = "CLICK"
Instance.new("UICorner", clickButton).CornerRadius = UDim.new(0,12)
local clicksLabel = Instance.new("TextLabel", clickFrame)
clicksLabel.Size = UDim2.new(0,160,0,28)
clicksLabel.Position = UDim2.new(0.5,-80,0,132)
clicksLabel.BackgroundTransparency = 1
clicksLabel.TextColor3 = Color3.fromRGB(240,240,240)
clicksLabel.Font = Enum.Font.Gotham
clicksLabel.TextSize = 16
clicksLabel.Text = "Clicks: " .. tostring(runtimeState.clickerClicks)
clickButton.MouseButton1Click:Connect(function()
runtimeState.clickerClicks = runtimeState.clickerClicks + runtimeState.clickerValue
clicksLabel.Text = "Clicks: " .. tostring(runtimeState.clickerClicks)
end)
----------------------------------------------------------------
-- UPGRADES (separate scrollable area below clickFrame to avoid overlap)
----------------------------------------------------------------
local upgradesSection = Instance.new("Frame", mgSection)
upgradesSection.Size = UDim2.new(1,-16,0,160)
upgradesSection.Position = UDim2.new(0,8,0,364)
upgradesSection.BackgroundColor3 = Color3.fromRGB(34,34,40)
upgradesSection.BorderSizePixel = 0
Instance.new("UICorner", upgradesSection).CornerRadius = UDim.new(0,8)
local upgradesTitle = Instance.new("TextLabel", upgradesSection)
upgradesTitle.Size = UDim2.new(1,-16,0,28)
upgradesTitle.Position = UDim2.new(0,8,0,6)
upgradesTitle.BackgroundTransparency = 1
upgradesTitle.Text = "Upgrades"
upgradesTitle.TextColor3 = Color3.fromRGB(230,230,230)
upgradesTitle.Font = Enum.Font.GothamBold
upgradesTitle.TextScaled = true
local upgradesScroll = Instance.new("ScrollingFrame", upgradesSection)
upgradesScroll.Size = UDim2.new(1,-16,1,-44)
upgradesScroll.Position = UDim2.new(0,8,0,36)
upgradesScroll.BackgroundTransparency = 1
upgradesScroll.ScrollBarThickness = 8
local upgradesLayout = Instance.new("UIListLayout", upgradesScroll)
upgradesLayout.Padding = UDim.new(0,8)
upgradesLayout.SortOrder = Enum.SortOrder.LayoutOrder
-- Define upgrades (expandable). Each upgrade: id, name, cost, addValue (manual click increase), addAuto (auto clicks per second)
local upgrades = {
{id="plus5", name="+5 Clicks per Click", cost=50, addValue=5, addAuto=0},
{id="plus20", name="+20 Clicks per Click", cost=250, addValue=20, addAuto=0},
{id="auto1", name="Auto Click +1/sec", cost=100, addValue=0, addAuto=1},
{id="auto5", name="Auto Click +5/sec", cost=450, addValue=0, addAuto=5}
}
-- Create UI for upgrades and store references for cost labels
local upgradeButtons = {}
for i,up in ipairs(upgrades) do
local row = Instance.new("Frame", upgradesScroll)
row.Size = UDim2.new(1,0,0,44)
row.BackgroundTransparency = 1
local nameLabel = Instance.new("TextLabel", row)
nameLabel.Size = UDim2.new(0.6,0,1,0)
nameLabel.Position = UDim2.new(0,0,0,0)
nameLabel.BackgroundTransparency = 1
nameLabel.Text = up.name
nameLabel.TextColor3 = Color3.fromRGB(220,220,220)
nameLabel.Font = Enum.Font.Gotham
nameLabel.TextSize = 14
nameLabel.TextXAlignment = Enum.TextXAlignment.Left
local costLabel = Instance.new("TextLabel", row)
costLabel.Size = UDim2.new(0.25,0,1,0)
costLabel.Position = UDim2.new(0.6,0,0,0)
costLabel.BackgroundTransparency = 1
costLabel.Text = tostring(up.cost)
costLabel.TextColor3 = Color3.fromRGB(200,200,120)
costLabel.Font = Enum.Font.GothamBold
costLabel.TextSize = 14
costLabel.Name = "CostLabel_" .. up.id
local buyBtn = Instance.new("TextButton", row)
buyBtn.Size = UDim2.new(0.15,0,0.8,0)
buyBtn.Position = UDim2.new(0.86,0,0.1,0)
buyBtn.BackgroundColor3 = Color3.fromRGB(70,70,90)
buyBtn.TextColor3 = Color3.fromRGB(255,255,255)
buyBtn.Font = Enum.Font.GothamBold
buyBtn.TextSize = 14
buyBtn.Text = "Buy"
buyBtn.Name = up.id
Instance.new("UICorner", buyBtn).CornerRadius = UDim.new(0,6)
upgradeButtons[up.id] = {button = buyBtn, data = up, costLabel = costLabel}
end
-- Purchase logic (stackable)
for id,entry in pairs(upgradeButtons) do
entry.button.MouseButton1Click:Connect(function()
local up = entry.data
if runtimeState.clickerClicks >= up.cost then
runtimeState.clickerClicks = runtimeState.clickerClicks - up.cost
-- apply effects
runtimeState.clickerValue = runtimeState.clickerValue + (up.addValue or 0)
runtimeState.autoClickRate = runtimeState.autoClickRate + (up.addAuto or 0)
clicksLabel.Text = "Clicks: " .. tostring(runtimeState.clickerClicks)
-- increase cost for next purchase (simple scaling)
up.cost = math.floor(up.cost * 1.6)
-- update displayed cost
if entry.costLabel and entry.costLabel.Parent then
entry.costLabel.Text = tostring(up.cost)
end
else
-- not enough clicks feedback (flash)
entry.button.BackgroundColor3 = Color3.fromRGB(140,40,40)
task.delay(0.25, function() if entry.button and entry.button.Parent then entry.button.BackgroundColor3 = Color3.fromRGB(70,70,90) end end)
end
end)
end
-- Auto-click heartbeat
RunService.Heartbeat:Connect(function(dt)
if runtimeState.autoClickRate and runtimeState.autoClickRate > 0 then
runtimeState.autoClickAccumulator = runtimeState.autoClickAccumulator + runtimeState.autoClickRate * dt
local toAdd = math.floor(runtimeState.autoClickAccumulator)
if toAdd > 0 then
runtimeState.clickerClicks = runtimeState.clickerClicks + toAdd
runtimeState.autoClickAccumulator = runtimeState.autoClickAccumulator - toAdd
clicksLabel.Text = "Clicks: " .. tostring(runtimeState.clickerClicks)
end
end
end)
----------------------------------------------------------------
-- End of Mini Games Tab block
----------------------------------------------------------------
----------------------------------------------------------------
-- CYBIX AI TAB (Advanced pseudo-AI, local only)
----------------------------------------------------------------
local aiPage = createPage()
pages["CYBIX AI"] = aiPage
local aiBtn = createSidebarButton("CYBIX AI", 99)
aiBtn.MouseButton1Click:Connect(function() switchPage("CYBIX AI") end)
local aiSection = createSection(aiPage, "CYBIX AI Assistant", 340)
-- Response label
local aiResponse = Instance.new("TextLabel", aiSection)
aiResponse.Size = UDim2.new(1,-16,0,160)
aiResponse.Position = UDim2.new(0,8,0,40)
aiResponse.BackgroundTransparency = 1
aiResponse.TextColor3 = Color3.fromRGB(230,230,230)
aiResponse.Font = Enum.Font.Gotham
aiResponse.TextSize = 14
aiResponse.TextWrapped = true
aiResponse.Text = "CYBIX: Yo, I’m your little brain in the menu. Ask me stuff."
-- Input box
local aiInput = Instance.new("TextBox", aiSection)
aiInput.Size = UDim2.new(1,-16,0,32)
aiInput.Position = UDim2.new(0,8,0,210)
aiInput.BackgroundColor3 = Color3.fromRGB(45,45,55)
aiInput.TextColor3 = Color3.fromRGB(240,240,240)
aiInput.Font = Enum.Font.Gotham
aiInput.TextSize = 14
aiInput.PlaceholderText = "Type here..."
aiInput.ClearTextOnFocus = false
Instance.new("UICorner", aiInput).CornerRadius = UDim.new(0,6)
-- Send button
local aiSend = Instance.new("TextButton", aiSection)
aiSend.Size = UDim2.new(0,80,0,32)
aiSend.Position = UDim2.new(1,-92,0,210)
aiSend.BackgroundColor3 = Color3.fromRGB(70,70,90)
aiSend.TextColor3 = Color3.fromRGB(255,255,255)
aiSend.Font = Enum.Font.GothamBold
aiSend.TextSize = 14
aiSend.Text = "Send"
Instance.new("UICorner", aiSend).CornerRadius = UDim.new(0,6)
----------------------------------------------------------------
-- PERSONALITY SYSTEM
----------------------------------------------------------------
local personality = "buddy" -- "buddy" or "slay"
local function replyBuddy(text)
return "CYBIX: " .. text
end
local function replySlay(text)
return "CYBIX: heyyy bestie, " .. text .. " fr slayyy 💅🔥"
end
local function respond(text)
if personality == "buddy" then
aiResponse.Text = replyBuddy(text)
else
aiResponse.Text = replySlay(text)
end
end
----------------------------------------------------------------
-- SAFETY FILTER
----------------------------------------------------------------
local blockedWords = {
"kill","suicide","selfharm","self-harm","unalive",
"sex","nsfw","porn","r34","r18",
"faggot","nigga","nigger" -- you can add real bad words here
}
local function isUnsafe(text)
local lower = text:lower()
for _,w in ipairs(blockedWords) do
if lower:find(w) then
return true
end
end
return false
end
----------------------------------------------------------------
-- FEATURE TOGGLING (uses your existing functions)
----------------------------------------------------------------
local function toggleFeature(feature, state)
if feature == "fly" then
if state then startFly() else stopFly() end
return "Fly is now " .. (state and "ON" or "OFF")
end
if feature == "noclip" then
if state then enableNoclip() else disableNoclip() end
return "Noclip is now " .. (state and "ON" or "OFF")
end
if feature == "esp" then
if state then enableESP() else disableESP() end
return "ESP is now " .. (state and "ON" or "OFF")
end
if feature == "nametags" then
if state then enableNameTags() else disableNameTags() end
return "NameTags are now " .. (state and "ON" or "OFF")
end
if feature == "god" or feature == "godmode" then
if state then enableGodMode() else disableGodMode() end
return "God Mode is now " .. (state and "ON" or "OFF")
end
return "I don’t recognize that feature yet."
end
local function explainFeature(feature)
local explanations = {
fly = "Fly lets you move freely in the air using movement keys.",
noclip = "Noclip lets you walk through solid parts by disabling collisions.",
esp = "ESP highlights players so you can see them easier.",
nametags = "Shows floating names above players.",
god = "God Mode keeps your health extremely high so you don’t die.",
aimbot = "Aimbot rotates your camera toward targets in a radius."
}
return explanations[feature] or "I don’t have info on that yet."
end
----------------------------------------------------------------
-- SIMPLE MATH PARSER (basic + - * / ^)
----------------------------------------------------------------
local function tryMath(expr)
expr = expr:gsub("%s+","")
if not expr:match("^[%d%.%+%-%*/%^]+$") then
return nil
end
local ok, result = pcall(function()
local function evalPow(s)
local parts = {}
for part in s:gmatch("[^%^]+") do table.insert(parts, part) end
local v = tonumber(parts[1])
if not v then return nil end
for i = 2, #parts do
local p = tonumber(parts[i])
if not p then return nil end
v = v ^ p
end
return v
end
local function evalMulDiv(s)
local acc, lastOp
for token in s:gmatch("[^%*/]+[%*/]?") do
local num = token:match("^[^%*/]+")
local op = token:match("[%*/]")
local v = evalPow(num)
if not v then return nil end
if not acc then
acc = v
else
if lastOp == "*" then acc = acc * v end
if lastOp == "/" then acc = acc / v end
end
lastOp = op
end
return acc
end
local acc, lastOp
for token in expr:gmatch("[^%+%-]+[%+%-]?") do
local num = token:match("^[^%+%-]+")
local op = token:match("[%+%-]")
local v = evalMulDiv(num)
if not v then return nil end
if not acc then
acc = v
else
if lastOp == "+" then acc = acc + v end
if lastOp == "-" then acc = acc - v end
end
lastOp = op
end
return acc
end)
if ok and type(result) == "number" then
return result
end
return nil
end
----------------------------------------------------------------
-- CONVERSATION / COMMAND PROCESSOR (keywords + patterns)
----------------------------------------------------------------
local function processCommand(raw)
if isUnsafe(raw) then
return "Let’s keep it safe and chill, I’m not talking about that."
end
local cmd = raw:lower()
-- math
local mathResult = tryMath(raw)
if mathResult ~= nil then
return "Math check: " .. tostring(mathResult)
end
-- enable / disable / turn on / off
if cmd:find("enable ") or cmd:find("turn on ") then
local feature = cmd:match("enable%s+(%w+)") or cmd:match("turn on%s+(%w+)")
if feature then return toggleFeature(feature, true) end
end
if cmd:find("disable ") or cmd:find("turn off ") then
local feature = cmd:match("disable%s+(%w+)") or cmd:match("turn off%s+(%w+)")
if feature then return toggleFeature(feature, false) end
end
-- pattern: "what is ___"
local whatTarget = cmd:match("what is%s+(.+)")
if whatTarget then
if whatTarget:find("space") then
return "Space is the huge area beyond Earth’s atmosphere with stars, planets, galaxies and a lot of emptiness."
elseif whatTarget:find("earth") then
return "Earth is our home planet, with land, oceans, atmosphere, and life all over it."
elseif whatTarget:find("dinosaur") or whatTarget:find("dino") then
return "Dinosaurs were land reptiles from millions of years ago; marine reptiles like mosasaurs and pliosaurs ruled the oceans."
elseif whatTarget:find("lua") then
return "Lua is a lightweight scripting language used in Roblox. You use it to make scripts that control game behavior."
elseif whatTarget:find("roblox") then
return "Roblox is a platform where you build games with parts, scripts, and services, then players join and play."
else
return "I don’t have a full definition for that yet, but you can ask about space, Earth, dinos, Lua, or Roblox."
end
end
-- pattern: "how do i ___"
local howTarget = cmd:match("how do i%s+(.+)")
if howTarget then
if howTarget:find("lua") or howTarget:find("script") then
return "Basic Lua tip: use 'local' for variables, connect events with :Connect, and always test in Studio. Example: local part = workspace.Part; part.Touched:Connect(function(hit) print(hit.Name) end)."
elseif howTarget:find("make a game") or howTarget:find("dev") then
return "To make a Roblox game: build a map, add scripts for movement and UI, test with friends, and keep updating."
else
return "General rule: break the problem into small steps, test each step, and don’t rush it."
end
end
-- keyword topics
if cmd:find("space") then
return "Space is massive, mostly empty, with stars, planets, black holes, and galaxies. We’ve only explored a tiny bit."
end
if cmd:find("earth") then
return "Earth has continents, oceans, atmosphere, and a ton of ecosystems. It’s the only known planet with complex life."
end
if cmd:find("dino") or cmd:find("dinosaur") then
return "Dinosaurs and marine reptiles were wild. Think T. rex on land and pliosaurs or mosasaurs in the ocean."
end
if cmd:find("life") then
return "Life is messy but kind of beautiful. Take care of yourself, your friends, and don’t rush growing up."
end
if cmd:find("lua") then
return "Lua scripting: start with variables, functions, and events. Example: function greet() print('hi') end; greet()."
end
if cmd:find("roblox") then
return "Roblox dev tip: keep scripts organized, use modules for big systems, and comment your code so admins know what’s going on."
end
-- greetings / casual chat
if cmd:find("hello") or cmd:find("hi") or cmd:find("hey") then
return "Hey, I’m CYBIX living in your menu. What are we doing today?"
end
if cmd:find("how are you") then
return "I’m chilling in this UI, watching you test stuff. You good?"
end
if cmd:find("help") then
return "You can ask: enable fly, disable noclip, explain esp, what is space, how do I learn Lua, or type math like 2+2*5."
end
return "I don’t fully get that yet, but you can ask about Lua, Roblox, dinos, space, Earth, life, or math."
end
----------------------------------------------------------------
-- INPUT HANDLING (Send + Enter)
----------------------------------------------------------------
local function handleSend()
local text = aiInput.Text
if text == "" then return end
local reply = processCommand(text)
respond(reply)
end
aiSend.MouseButton1Click:Connect(handleSend)
aiInput.FocusLost:Connect(function(enter)
if enter then
handleSend()
end
end)
----------------------------------------------------------------
-- PERSONALITY BUTTONS (Buddy + Gen Alpha Slay)
----------------------------------------------------------------
local modeBuddy = Instance.new("TextButton", aiSection)
modeBuddy.Size = UDim2.new(0.5,-12,0,32)
modeBuddy.Position = UDim2.new(0,8,0,260)
modeBuddy.BackgroundColor3 = Color3.fromRGB(60,60,80)
modeBuddy.TextColor3 = Color3.fromRGB(255,255,255)
modeBuddy.Font = Enum.Font.GothamBold
modeBuddy.TextSize = 14
modeBuddy.Text = "Boy Mode"
Instance.new("UICorner", modeBuddy).CornerRadius = UDim.new(0,6)
local modeSlay = Instance.new("TextButton", aiSection)
modeSlay.Size = UDim2.new(0.5,-12,0,32)
modeSlay.Position = UDim2.new(0.5,4,0,260)
modeSlay.BackgroundColor3 = Color3.fromRGB(80,60,100)
modeSlay.TextColor3 = Color3.fromRGB(255,255,255)
modeSlay.Font = Enum.Font.GothamBold
modeSlay.TextSize = 14
modeSlay.Text = "Girl Mode"
Instance.new("UICorner", modeSlay).CornerRadius = UDim.new(0,6)
modeBuddy.MouseButton1Click:Connect(function()
personality = "buddy"
respond("Switched to Boy Mode. I’m your busco homie now.")
end)
modeSlay.MouseButton1Click:Connect(function()
personality = "slay"
respond("Switched to Girl Mode. You’re so real for picking this, ngl.")
end)
-- Default open page
switchPage("Leaderboard")
-- =========================
-- Aimbot overlay (visible circle outline + red dot)
-- Overlay should only be visible when legacy aimbot OR player aim aimbot is ON
-- =========================
local overlayGui = Instance.new("ScreenGui")
overlayGui.Name = "AimbotOverlay"
overlayGui.ResetOnSpawn = false
overlayGui.Parent = gui
overlayGui.Enabled = false -- start disabled; will enable only when toggles are ON
-- Circle frame (transparent fill, outline only)
local circleFrame = Instance.new("Frame", overlayGui)
circleFrame.Name = "AimbotCircle"
circleFrame.BackgroundTransparency = 1
circleFrame.BorderSizePixel = 0
local r = runtimeState.aimbotRadius
circleFrame.Size = UDim2.new(0, r*2, 0, r*2)
circleFrame.Position = UDim2.new(0.5, -r, 0.5, -r)
circleFrame.AnchorPoint = Vector2.new(0,0)
local circleCorner = Instance.new("UICorner", circleFrame)
circleCorner.CornerRadius = UDim.new(1,0) -- make it a circle
local circleStroke = Instance.new("UIStroke", circleFrame)
circleStroke.Color = Color3.fromRGB(255, 100, 100)
circleStroke.Thickness = 2
circleStroke.Transparency = 0
circleStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
-- Red center dot
local centerDot = Instance.new("Frame", overlayGui)
centerDot.Name = "AimbotCenterDot"
centerDot.Size = UDim2.new(0,6,0,6)
centerDot.Position = UDim2.new(0.5, -3, 0.5, -3)
centerDot.BackgroundColor3 = Color3.fromRGB(255, 60, 60)
centerDot.BorderSizePixel = 0
Instance.new("UICorner", centerDot).CornerRadius = UDim.new(1,0)
-- Keep overlay on top but not blocking input
overlayGui.IgnoreGuiInset = true
overlayGui.ResetOnSpawn = false
-- Update overlay when viewport changes (resize)
Workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function()
local r = runtimeState.aimbotRadius
local circle = overlayGui:FindFirstChild("AimbotCircle")
if circle then
circle.Size = UDim2.new(0, r*2, 0, r*2)
circle.Position = UDim2.new(0.5, -r, 0.5, -r)
end
local dot = overlayGui:FindFirstChild("AimbotCenterDot")
if dot then
dot.Position = UDim2.new(0.5, -3, 0.5, -3)
end
end)
-- Ensure overlay persists on respawn
player.CharacterAdded:Connect(function()
task.wait(0.1)
if not gui:FindFirstChild("AimbotOverlay") then
overlayGui.Parent = gui
end
-- restore overlay enabled state based on toggles
overlayGui.Enabled = (runtimeState.aimbotEnabled or runtimeState.playerAimAimbot)
end)
-- Initialize aimbot slider UI fill/knob positions (defer if AbsoluteSize not ready)
local function initAimbotSlider()
if aimbotSliderBar.AbsoluteSize.X > 0 then
local t = (runtimeState.aimbotRadius - runtimeState.aimbotRadiusMin) / (runtimeState.aimbotRadiusMax - runtimeState.aimbotRadiusMin)
aimbotSliderFill.Size = UDim2.new(t, 0, 1, 0)
aimbotKnob.Position = UDim2.new(t, -7, 0.5, -7)
else
aimbotSliderBar:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
local t = (runtimeState.aimbotRadius - runtimeState.aimbotRadiusMin) / (runtimeState.aimbotRadiusMax - runtimeState.aimbotRadiusMin)
aimbotSliderFill.Size = UDim2.new(t, 0, 1, 0)
aimbotKnob.Position = UDim2.new(t, -7, 0.5, -7)
end)
end
-- ensure overlay circle matches initial radius
if overlayGui and overlayGui:FindFirstChild("AimbotCircle") then
local r = runtimeState.aimbotRadius
overlayGui.AimbotCircle.Size = UDim2.new(0, r*2, 0, r*2)
overlayGui.AimbotCircle.Position = UDim2.new(0.5, -r, 0.5, -r)
end
end
initAimbotSlider()
-- Helper to refresh overlay state (call whenever toggles change)
local function refreshOverlay()
if gui:FindFirstChild("AimbotOverlay") then
gui.AimbotOverlay.Enabled = (runtimeState.aimbotEnabled or runtimeState.playerAimAimbot)
end
end
-- Ensure overlay is correct at start
refreshOverlay()
-- End of script
]]
injectBtn.MouseButton1Click:Connect(function()
if CYBIX_PAID_SCRIPT and CYBIX_PAID_SCRIPT ~= "" then
local fn, err = loadstring(CYBIX_PAID_SCRIPT)
if not fn then
addLog("error", "Paid script compile error: " .. tostring(err), "Check for truncation or paste issues.")
return
end
local ok, runtimeErr = pcall(fn)
if not ok then
addLog("error", "Paid script runtime error: " .. tostring(runtimeErr), "Check your paid script logic.")
else
addLog("ok", "CYBIX paid menu injected successfully.", "")
end
else
addLog("warn", "No paid script set in CYBIX_PAID_SCRIPT.", "Paste your script into the CYBIX_PAID_SCRIPT variable.")
end
end)
tabDesign.MouseButton1Click:Connect(function()
switchPage("SCRIPT DESIGN")
end)
tabHelp.MouseButton1Click:Connect(function()
switchPage("HELP")
end)
tabConsole.MouseButton1Click:Connect(function()
switchPage("CONSOLE")
end)
tabHI.MouseButton1Click:Connect(function()
switchPage("Plugins")
end)
switchPage("SCRIPT DESIGN")No comments yet for this script.



