1,966 views
Description
Key is "XIRO".
Offers a wide variety of features with a friendly user interface.
Features
- + Aimbot
- + Show FOV
- + Visible check
- + Team check
- + Smoothness
- + FOV changer
- + ESP (2D box, name, health, healthbar, tracers, skeleton & head)
- + Noclip
- + Velocity fly
- + Spinbot
- + Walkspeed
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local camera = workspace.CurrentCamera
local mouse = player:GetMouse()
-- Key System
local correctKey = "XIRO"
local keyVerified = false
-- Loading Animation
local loadingFrame = Instance.new("Frame")
loadingFrame.Size = UDim2.new(0, 200, 0, 100)
loadingFrame.Position = UDim2.new(0.5, -100, 0.5, -50)
loadingFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
loadingFrame.BorderSizePixel = 0
loadingFrame.Visible = true
local loadingText = Instance.new("TextLabel")
loadingText.Size = UDim2.new(1, 0, 0, 30)
loadingText.Position = UDim2.new(0, 0, 0, 0)
loadingText.BackgroundTransparency = 1
loadingText.TextColor3 = Color3.fromRGB(255, 255, 255)
loadingText.Text = "KEY IS XIRO"
loadingText.Font = Enum.Font.SourceSansBold
loadingText.TextSize = 20
loadingText.Parent = loadingFrame
local keyBox = Instance.new("TextBox")
keyBox.Size = UDim2.new(0.8, 0, 0, 30)
keyBox.Position = UDim2.new(0.1, 0, 0.4, 0)
keyBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
keyBox.TextColor3 = Color3.fromRGB(255, 255, 255)
keyBox.PlaceholderText = "Enter Key ur NIGGA KEY"
keyBox.Font = Enum.Font.SourceSans
keyBox.TextSize = 16
keyBox.Parent = loadingFrame
local submitButton = Instance.new("TextButton")
submitButton.Size = UDim2.new(0.6, 0, 0, 25)
submitButton.Position = UDim2.new(0.2, 0, 0.75, 0)
submitButton.BackgroundColor3 = Color3.fromRGB(60, 60, 120)
submitButton.TextColor3 = Color3.fromRGB(255, 255, 255)
submitButton.Text = "Submit"
submitButton.Font = Enum.Font.SourceSans
submitButton.TextSize = 16
submitButton.Parent = loadingFrame
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CustomMenu"
screenGui.Parent = playerGui
loadingFrame.Parent = screenGui
submitButton.MouseButton1Click:Connect(function()
if keyBox.Text == correctKey then
keyVerified = true
loadingFrame.Visible = false
-- Main menu will be shown later
else
keyBox.Text = ""
keyBox.PlaceholderText = "Wrong Key! Try Again"
end
end)
-- Features
local Features = {
Aimbot = false,
FOV = false,
VisibleCheck = false,
TeamCheck = false,
BoxESP = false,
NameESP = false,
HealthESP = false,
HealthBar = false,
Tracers = false,
Snaplines = false,
SkeletonESP = false,
HeadCircle = false,
VelocityFly = false,
NoClip = false,
Spinbot = false
}
local AimbotMode = "Camera" -- "Mouse" oder "Camera"
local TracerOrigin = "Bottom" -- "Bottom", "Middle", "Top"
local Smoothness = 0.15
local FOVSize = 150
local FlySpeed = 50
local WalkSpeed = 16
local FlyKeybind = Enum.KeyCode.F
local NoclipKeybind = Enum.KeyCode.V
local SpinbotKeybind = Enum.KeyCode.C
-- FOV Circle
local FOVCircle = Drawing.new("Circle")
FOVCircle.Visible = false
FOVCircle.Radius = FOVSize
FOVCircle.Thickness = 2
FOVCircle.Filled = false
FOVCircle.Color = Color3.fromRGB(255, 255, 255)
FOVCircle.Transparency = 1
-- ESP SETTINGS
local settings = {
defaultcolor = Color3.fromRGB(255,0,0),
teamcheck = false,
teamcolor = true,
boxColor = Color3.fromRGB(255, 0, 0),
nameColor = Color3.fromRGB(255, 255, 255),
healthColor = Color3.fromRGB(0, 255, 0),
healthBarColor = Color3.fromRGB(0, 255, 0),
tracerColor = Color3.fromRGB(255, 255, 0),
snaplineColor = Color3.fromRGB(0, 255, 255),
skeletonColor = Color3.fromRGB(0, 0, 255),
headCircleColor = Color3.fromRGB(255, 0, 0)
}
-- services
local runService = game:GetService("RunService");
local players = game:GetService("Players");
-- variables
local localPlayer = players.LocalPlayer;
local camera = workspace.CurrentCamera;
-- functions
local newVector2, newColor3, newDrawing = Vector2.new, Color3.new, Drawing.new;
local tan, rad = math.tan, math.rad;
local round = function(...) local a = {}; for i,v in next, table.pack(...) do a[i] = math.round(v); end return unpack(a); end;
local wtvp = function(...) local a, b = camera.WorldToViewportPoint(camera, ...) return newVector2(a.X, a.Y), b, a.Z end;
-- Skeleton connections
local SkeletonBones = {
{"Head","UpperTorso"},
{"UpperTorso","LowerTorso"},
{"UpperTorso","LeftUpperArm"},
{"LeftUpperArm","LeftLowerArm"},
{"LeftLowerArm","LeftHand"},
{"UpperTorso","RightUpperArm"},
{"RightUpperArm","RightLowerArm"},
{"RightLowerArm","RightHand"},
{"LowerTorso","LeftUpperLeg"},
{"LeftUpperLeg","LeftLowerLeg"},
{"LeftLowerLeg","LeftFoot"},
{"LowerTorso","RightUpperLeg"},
{"RightUpperLeg","RightLowerLeg"},
{"RightLowerLeg","RightFoot"},
}
local espCache = {};
local function createEsp(player)
if espCache[player] then return end
local drawings = {};
-- Box ESP
drawings.box = newDrawing("Square");
drawings.box.Thickness = 1;
drawings.box.Filled = false;
drawings.box.Color = settings.boxColor;
drawings.box.Visible = false;
drawings.box.ZIndex = 2;
drawings.boxoutline = newDrawing("Square");
drawings.boxoutline.Thickness = 3;
drawings.boxoutline.Filled = false;
drawings.boxoutline.Color = newColor3();
drawings.boxoutline.Visible = false;
drawings.boxoutline.ZIndex = 1;
-- Name ESP
drawings.name = newDrawing("Text")
drawings.name.Text = player.Name
drawings.name.Size = 16
drawings.name.Center = true
drawings.name.Outline = true
drawings.name.Color = settings.nameColor
drawings.name.Visible = false
drawings.name.ZIndex = 3
-- Health ESP
drawings.health = newDrawing("Text")
drawings.health.Size = 14
drawings.health.Center = true
drawings.health.Outline = true
drawings.health.Color = settings.healthColor
drawings.health.Visible = false
drawings.health.ZIndex = 3
-- Health Bar
drawings.healthBar = newDrawing("Square")
drawings.healthBar.Thickness = 1
drawings.healthBar.Filled = true
drawings.healthBar.Color = settings.healthBarColor
drawings.healthBar.Visible = false
drawings.healthBar.ZIndex = 3
drawings.healthBarOutline = newDrawing("Square")
drawings.healthBarOutline.Thickness = 1
drawings.healthBarOutline.Filled = false
drawings.healthBarOutline.Color = newColor3(0, 0, 0)
drawings.healthBarOutline.Visible = false
drawings.healthBarOutline.ZIndex = 2
-- Tracers
drawings.tracer = newDrawing("Line")
drawings.tracer.Thickness = 1
drawings.tracer.Color = settings.tracerColor
drawings.tracer.Visible = false
drawings.tracer.ZIndex = 2
-- Snaplines
drawings.snapline = newDrawing("Line")
drawings.snapline.Thickness = 1
drawings.snapline.Color = settings.snaplineColor
drawings.snapline.Visible = false
drawings.snapline.ZIndex = 2
-- Skeleton ESP
drawings.skeleton = {}
-- Head Circle
drawings.headCircle = newDrawing("Circle")
drawings.headCircle.Thickness = 2
drawings.headCircle.Filled = false
drawings.headCircle.Color = settings.headCircleColor
drawings.headCircle.Visible = false
drawings.headCircle.ZIndex = 3
espCache[player] = drawings;
end
local function removeEsp(player)
if rawget(espCache, player) then
for _, drawing in next, espCache[player] do
if type(drawing) == "table" then
for _, line in pairs(drawing) do
if line and line.Remove then
line:Remove()
end
end
elseif drawing and drawing.Remove then
drawing:Remove();
end
end
espCache[player] = nil;
end
end
local function updateEsp(player, esp)
local character = player and player.Character;
if character and character:FindFirstChild("HumanoidRootPart") and character:FindFirstChild("Humanoid") then
local humanoid = character:FindFirstChild("Humanoid")
local rootPart = character:FindFirstChild("HumanoidRootPart")
local head = character:FindFirstChild("Head")
local cframe = rootPart and rootPart.CFrame;
local position, visible, depth = wtvp(cframe.Position);
-- Update visibility based on features
esp.box.Visible = visible and Features.BoxESP
esp.boxoutline.Visible = visible and Features.BoxESP
esp.name.Visible = visible and Features.NameESP
esp.health.Visible = visible and Features.HealthESP
esp.healthBar.Visible = visible and Features.HealthBar
esp.healthBarOutline.Visible = visible and Features.HealthBar
esp.tracer.Visible = visible and Features.Tracers
esp.snapline.Visible = visible and Features.Snaplines
esp.headCircle.Visible = visible and Features.HeadCircle and head ~= nil
-- Skeleton ESP
if Features.SkeletonESP then
-- Remove old skeleton lines
for _, line in pairs(esp.skeleton) do
if line and line.Remove then
line:Remove()
end
end
esp.skeleton = {}
-- Create new skeleton lines
for _, bone in pairs(SkeletonBones) do
local part0 = character:FindFirstChild(bone[1])
local part1 = character:FindFirstChild(bone[2])
if part0 and part1 then
local screen0, onScreen0 = camera:WorldToViewportPoint(part0.Position)
local screen1, onScreen1 = camera:WorldToViewportPoint(part1.Position)
if onScreen0 and onScreen1 then
local line = newDrawing("Line")
line.Color = settings.skeletonColor
line.Thickness = 2
line.From = newVector2(screen0.X, screen0.Y)
line.To = newVector2(screen1.X, screen1.Y)
line.Visible = true
line.ZIndex = 3
table.insert(esp.skeleton, line)
end
end
end
else
-- Remove skeleton lines if disabled
for _, line in pairs(esp.skeleton) do
if line and line.Remove then
line:Remove()
end
end
esp.skeleton = {}
end
if cframe and visible then
local scaleFactor = 1 / (depth * tan(rad(camera.FieldOfView / 2)) * 2) * 1000;
local width, height = round(4 * scaleFactor, 5 * scaleFactor);
local x, y = round(position.X, position.Y);
-- Box ESP
esp.box.Size = newVector2(width, height);
esp.box.Position = newVector2(round(x - width / 2, y - height / 2));
esp.box.Color = settings.teamcolor and player.TeamColor.Color or settings.boxColor;
esp.boxoutline.Size = esp.box.Size;
esp.boxoutline.Position = esp.box.Position;
-- Name ESP
esp.name.Position = newVector2(x, y - height / 2 - 20)
esp.name.Color = settings.teamcolor and player.TeamColor.Color or settings.nameColor
-- Health ESP
esp.health.Text = "HP: " .. math.floor(humanoid.Health)
esp.health.Position = newVector2(x, y + height / 2 + 10)
-- Health color based on percentage
local healthPercent = humanoid.Health / humanoid.MaxHealth
esp.health.Color = Color3.new(1 - healthPercent, healthPercent, 0)
-- Health Bar
if Features.HealthBar then
local barWidth = 40
local barHeight = 3
local barX = x - barWidth / 2
local barY = y - height / 2 - 10
esp.healthBarOutline.Size = newVector2(barWidth, barHeight)
esp.healthBarOutline.Position = newVector2(barX, barY)
esp.healthBar.Size = newVector2(barWidth * healthPercent, barHeight)
esp.healthBar.Position = newVector2(barX, barY)
esp.healthBar.Color = Color3.new(1 - healthPercent, healthPercent, 0)
end
-- Tracers
if Features.Tracers then
local fromPoint
if TracerOrigin == "Bottom" then
fromPoint = newVector2(camera.ViewportSize.X / 2, camera.ViewportSize.Y)
elseif TracerOrigin == "Middle" then
fromPoint = newVector2(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
else -- Top
fromPoint = newVector2(camera.ViewportSize.X / 2, 0)
end
esp.tracer.From = fromPoint
esp.tracer.To = newVector2(x, y + height / 2)
esp.tracer.Color = settings.teamcolor and player.TeamColor.Color or settings.tracerColor
end
-- Snaplines
if Features.Snaplines then
esp.snapline.From = newVector2(camera.ViewportSize.X / 2, 0)
esp.snapline.To = newVector2(x, y - height / 2)
esp.snapline.Color = settings.teamcolor and player.TeamColor.Color or settings.snaplineColor
end
-- Head Circle
if Features.HeadCircle and head then
local headPos = camera:WorldToViewportPoint(head.Position)
if headPos then
esp.headCircle.Position = newVector2(headPos.X, headPos.Y)
esp.headCircle.Radius = 10
esp.headCircle.Color = settings.teamcolor and player.TeamColor.Color or settings.headCircleColor
end
end
end
else
esp.box.Visible = false;
esp.boxoutline.Visible = false;
esp.name.Visible = false
esp.health.Visible = false
esp.healthBar.Visible = false
esp.healthBarOutline.Visible = false
esp.tracer.Visible = false
esp.snapline.Visible = false
esp.headCircle.Visible = false
-- Remove skeleton lines
for _, line in pairs(esp.skeleton) do
if line and line.Remove then
line:Remove()
end
end
esp.skeleton = {}
end
end
-- Initialize ESP for players
for _, player in next, players:GetPlayers() do
if player ~= localPlayer then
createEsp(player);
end
end
players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
wait(0.5) -- Wait for character to fully load
createEsp(player);
end)
end);
players.PlayerRemoving:Connect(function(player)
removeEsp(player);
end)
-- Handle character respawns
for _, player in next, players:GetPlayers() do
if player ~= localPlayer then
player.CharacterAdded:Connect(function()
wait(0.5) -- Wait for character to fully load
if not espCache[player] then
createEsp(player)
end
end)
end
end
runService:BindToRenderStep("esp", Enum.RenderPriority.Camera.Value, function()
for player, drawings in next, espCache do
if Features.TeamCheck and player.Team == localPlayer.Team then
drawings.box.Visible = false
drawings.boxoutline.Visible = false
drawings.name.Visible = false
drawings.health.Visible = false
drawings.healthBar.Visible = false
drawings.healthBarOutline.Visible = false
drawings.tracer.Visible = false
drawings.snapline.Visible = false
drawings.headCircle.Visible = false
-- Remove skeleton lines
for _, line in pairs(drawings.skeleton) do
if line and line.Remove then
line:Remove()
end
end
drawings.skeleton = {}
continue;
end
if drawings and player ~= localPlayer then
updateEsp(player, drawings);
end
end
end)
-- VELOCITY FLY
local flying = false
local flyBodyVelocity = nil
local flyBodyGyro = nil
local function enableFly()
if flying then return end
local character = player.Character
if not character then return end
local humanoid = character:FindFirstChild("Humanoid")
local rootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoid or not rootPart then return end
flying = true
-- Create fly parts
flyBodyVelocity = Instance.new("BodyVelocity")
flyBodyVelocity.Velocity = Vector3.new(0, 0, 0)
flyBodyVelocity.MaxForce = Vector3.new(10000, 10000, 10000)
flyBodyVelocity.P = 10000
flyBodyVelocity.Parent = rootPart
flyBodyGyro = Instance.new("BodyGyro")
flyBodyGyro.MaxTorque = Vector3.new(10000, 10000, 10000)
flyBodyGyro.P = 10000
flyBodyGyro.D = 100
flyBodyGyro.Parent = rootPart
humanoid.PlatformStand = true
-- Fly control loop
local flyConnection
flyConnection = runService.Heartbeat:Connect(function()
if not flying or not rootPart or not flyBodyVelocity or not flyBodyGyro then
flyConnection:Disconnect()
return
end
flyBodyGyro.CFrame = camera.CFrame
local direction = Vector3.new()
if UserInputService:IsKeyDown(Enum.KeyCode.W) then
direction = direction + (camera.CFrame.LookVector * FlySpeed)
end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then
direction = direction - (camera.CFrame.LookVector * FlySpeed)
end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then
direction = direction - (camera.CFrame.RightVector * FlySpeed)
end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then
direction = direction + (camera.CFrame.RightVector * FlySpeed)
end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
direction = direction + (Vector3.new(0, 1, 0) * FlySpeed)
end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
direction = direction - (Vector3.new(0, 1, 0) * FlySpeed)
end
flyBodyVelocity.Velocity = direction
end)
end
local function disableFly()
if not flying then return end
flying = false
local character = player.Character
if not character then return end
local humanoid = character:FindFirstChild("Humanoid")
local rootPart = character:FindFirstChild("HumanoidRootPart")
if humanoid then
humanoid.PlatformStand = false
end
if flyBodyVelocity then
flyBodyVelocity:Destroy()
flyBodyVelocity = nil
end
if flyBodyGyro then
flyBodyGyro:Destroy()
flyBodyGyro = nil
end
end
-- NO CLIP
local noclip = false
local noclipConnection = nil
local function enableNoclip()
if noclip then return end
noclip = true
local character = player.Character
if not character then return end
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
noclipConnection = character.DescendantAdded:Connect(function(part)
if part:IsA("BasePart") then
part.CanCollide = false
end
end)
end
local function disableNoclip()
if not noclip then return end
noclip = false
local character = player.Character
if not character then return end
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
-- SPINBOT
local spinning = false
local spinbotConnection = nil
local function enableSpinbot()
if spinning then return end
spinning = true
local character = player.Character
if not character then return end
local rootPart = character:FindFirstChild("HumanoidRootPart")
if not rootPart then return end
spinbotConnection = runService.Heartbeat:Connect(function()
if not spinning or not rootPart then
spinbotConnection:Disconnect()
return
end
rootPart.CFrame = rootPart.CFrame * CFrame.Angles(0, math.rad(20), 0)
end)
end
local function disableSpinbot()
if not spinning then return end
spinning = false
if spinbotConnection then
spinbotConnection:Disconnect()
spinbotConnection = nil
end
end
-- WALKSPEED
local function setWalkSpeed()
local character = player.Character
if not character then return end
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
humanoid.WalkSpeed = WalkSpeed
end
end
-- Apply walkspeed when character is added
player.CharacterAdded:Connect(function()
wait(0.5)
setWalkSpeed()
end)
-- Apply walkspeed initially
if player.Character then
setWalkSpeed()
end
-- Keybinds
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
-- Fly toggle
if input.KeyCode == FlyKeybind then
if Features.VelocityFly then
if flying then
disableFly()
else
enableFly()
end
end
end
-- Noclip toggle
if input.KeyCode == NoclipKeybind then
if Features.NoClip then
if noclip then
disableNoclip()
else
enableNoclip()
end
end
end
-- Spinbot toggle
if input.KeyCode == SpinbotKeybind then
if Features.Spinbot then
if spinning then
disableSpinbot()
else
enableSpinbot()
end
end
end
end)
-- UI CODE
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 400, 0, 300)
frame.Position = UDim2.new(0.5, -200, 0.5, -150)
frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
frame.BorderSizePixel = 0
frame.Visible = false
frame.Parent = screenGui
-- Drag
local dragging, dragInput, dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
-- Header
local header = Instance.new("TextLabel")
header.Size = UDim2.new(1, 0, 0, 25)
header.BackgroundColor3 = Color3.fromRGB(40, 40, 120)
header.TextColor3 = Color3.fromRGB(255, 255, 255)
header.Text = "CHEAT INTERNAL"
header.Font = Enum.Font.SourceSansBold
header.TextSize = 18
header.Parent = frame
-- Close button
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.new(0, 25, 0, 25)
closeButton.Position = UDim2.new(1, -25, 0, 0)
closeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
closeButton.Text = "X"
closeButton.Font = Enum.Font.SourceSansBold
closeButton.TextSize = 16
closeButton.Parent = frame
closeButton.MouseButton1Click:Connect(function()
frame.Visible = false
end)
-- Left Tabs
local leftPanel = Instance.new("Frame")
leftPanel.Size = UDim2.new(0, 120, 1, -25)
leftPanel.Position = UDim2.new(0, 0, 0, 25)
leftPanel.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
leftPanel.BorderSizePixel = 0
leftPanel.Parent = frame
-- Right Panel
local rightPanel = Instance.new("Frame")
rightPanel.Size = UDim2.new(1, -120, 1, -25)
rightPanel.Position = UDim2.new(0, 120, 0, 25)
rightPanel.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
rightPanel.BorderSizePixel = 0
rightPanel.Parent = frame
-- Tabs
local tabs = {}
local function createTab(name, y)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -10, 0, 35)
btn.Position = UDim2.new(0, 5, 0, y)
btn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
btn.BorderSizePixel = 0
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Text = name
btn.Font = Enum.Font.SourceSansBold
btn.TextSize = 16
btn.Parent = leftPanel
tabs[name] = Instance.new("ScrollingFrame")
tabs[name].Size = UDim2.new(1, 0, 1, 0)
tabs[name].BackgroundTransparency = 1
tabs[name].ScrollBarThickness = 4
tabs[name].CanvasSize = UDim2.new(0, 0, 2, 0)
tabs[name].Parent = rightPanel
tabs[name].Visible = false
btn.MouseButton1Click:Connect(function()
for _, f in pairs(tabs) do
f.Visible = false
end
tabs[name].Visible = true
end)
return btn, tabs[name]
end
local aimbotBtn, aimbotTab = createTab("Aimbot", 10)
local visualsBtn, visualsTab = createTab("Visuals", 55)
local extrasBtn, extrasTab = createTab("Extras", 100)
-- Toggle Menu with Q
UserInputService.InputBegan:Connect(function(input, gp)
if not gp and input.KeyCode == Enum.KeyCode.Q and keyVerified then
frame.Visible = not frame.Visible
end
end)
-- Checkbox helper
local function createCheckbox(parent, text, y, key)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, 18, 0, 18)
btn.Position = UDim2.new(0, 15, 0, y)
btn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
btn.BorderSizePixel = 0
btn.Text = ""
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Font = Enum.Font.SourceSansBold
btn.TextSize = 16
btn.Parent = parent
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0, 180, 0, 18)
lbl.Position = UDim2.new(0, 40, 0, y)
lbl.BackgroundTransparency = 1
lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
lbl.Text = text
lbl.Font = Enum.Font.SourceSans
lbl.TextSize = 14
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = parent
btn.MouseButton1Click:Connect(function()
Features[key] = not Features[key]
btn.Text = Features[key] and "✓" or ""
-- Special handling for certain features
if key == "VelocityFly" and not Features[key] and flying then
disableFly()
elseif key == "NoClip" and not Features[key] and noclip then
disableNoclip()
elseif key == "Spinbot" and not Features[key] and spinning then
disableSpinbot()
elseif key == "teamcolor" then
settings.teamcolor = Features[key]
elseif key == "TeamCheck" then
settings.teamcheck = Features[key]
end
end)
end
-- Dropdown helper
local function createDropdown(parent, text, y, options, default, callback)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0, 150, 0, 18)
lbl.Position = UDim2.new(0, 15, 0, y)
lbl.BackgroundTransparency = 1
lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
lbl.Text = text
lbl.Font = Enum.Font.SourceSans
lbl.TextSize = 14
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = parent
local dropdown = Instance.new("TextButton")
dropdown.Size = UDim2.new(0, 100, 0, 20)
dropdown.Position = UDim2.new(0, 170, 0, y)
dropdown.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
dropdown.BorderSizePixel = 0
dropdown.TextColor3 = Color3.fromRGB(255, 255, 255)
dropdown.Text = default
dropdown.Font = Enum.Font.SourceSans
dropdown.TextSize = 14
dropdown.Parent = parent
dropdown.MouseButton1Click:Connect(function()
local currentIndex = table.find(options, dropdown.Text) or 1
local nextIndex = currentIndex % #options + 1
dropdown.Text = options[nextIndex]
callback(options[nextIndex])
end)
return dropdown
end
-- Sliders
local function createSlider(parent, text, y, minVal, maxVal, defaultVal, callback)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0, 180, 0, 18)
lbl.Position = UDim2.new(0, 15, 0, y)
lbl.BackgroundTransparency = 1
lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
lbl.Text = text .. ": " .. defaultVal
lbl.Font = Enum.Font.SourceSans
lbl.TextSize = 14
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = parent
local slider = Instance.new("TextButton")
slider.Size = UDim2.new(0, 180, 0, 8)
slider.Position = UDim2.new(0, 15, 0, y + 22)
slider.BackgroundColor3 = Color3.fromRGB(0, 50, 150)
slider.BorderSizePixel = 0
slider.Text = ""
slider.Parent = parent
local fill = Instance.new("Frame")
fill.Size = UDim2.new((defaultVal - minVal) / (maxVal - minVal), 0, 1, 0)
fill.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
fill.BorderSizePixel = 0
fill.Parent = slider
local function update(inputX)
local rel = math.clamp((inputX - slider.AbsolutePosition.X) / slider.AbsoluteSize.X, 0, 1)
local val = math.floor(minVal + (maxVal - minVal) * rel)
fill.Size = UDim2.new(rel, 0, 1, 0)
lbl.Text = text .. ": " .. val
callback(val)
end
slider.MouseButton1Down:Connect(function()
update(UserInputService:GetMouseLocation().X)
local moveConn, releaseConn
moveConn = UserInputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
update(UserInputService:GetMouseLocation().X)
end
end)
releaseConn = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
moveConn:Disconnect()
releaseConn:Disconnect()
end
end)
end)
end
-- Keybind selector
local function createKeybindSelector(parent, text, y, defaultKey, callback)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0, 150, 0, 18)
lbl.Position = UDim2.new(0, 15, 0, y)
lbl.BackgroundTransparency = 1
lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
lbl.Text = text
lbl.Font = Enum.Font.SourceSans
lbl.TextSize = 14
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = parent
local keyBtn = Instance.new("TextButton")
keyBtn.Size = UDim2.new(0, 40, 0, 20)
keyBtn.Position = UDim2.new(0, 170, 0, y)
keyBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
keyBtn.BorderSizePixel = 0
keyBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
keyBtn.Text = defaultKey.Name
keyBtn.Font = Enum.Font.SourceSans
keyBtn.TextSize = 14
keyBtn.Parent = parent
local listening = false
keyBtn.MouseButton1Click:Connect(function()
if not listening then
listening = true
keyBtn.Text = "..."
keyBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
local connection
connection = UserInputService.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
keyBtn.Text = input.KeyCode.Name
keyBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
callback(input.KeyCode)
listening = false
connection:Disconnect()
end
end)
end
end)
return keyBtn
end
-- Color picker helper
local function createColorPicker(parent, text, y, defaultColor, callback)
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0, 150, 0, 18)
lbl.Position = UDim2.new(0, 15, 0, y)
lbl.BackgroundTransparency = 1
lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
lbl.Text = text
lbl.Font = Enum.Font.SourceSans
lbl.TextSize = 14
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = parent
local colorBtn = Instance.new("TextButton")
colorBtn.Size = UDim2.new(0, 40, 0, 20)
colorBtn.Position = UDim2.new(0, 170, 0, y)
colorBtn.BackgroundColor3 = defaultColor
colorBtn.BorderSizePixel = 0
colorBtn.Text = ""
colorBtn.Parent = parent
-- Simple color picker UI
local colorPickerFrame = Instance.new("Frame")
colorPickerFrame.Size = UDim2.new(0, 150, 0, 150)
colorPickerFrame.Position = UDim2.new(0, 220, 0, y)
colorPickerFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
colorPickerFrame.BorderSizePixel = 0
colorPickerFrame.Visible = false
colorPickerFrame.Parent = parent
-- Color spectrum
local colorSpectrum = Instance.new("ImageButton")
colorSpectrum.Size = UDim2.new(0, 130, 0, 130)
colorSpectrum.Position = UDim2.new(0, 10, 0, 10)
colorSpectrum.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
colorSpectrum.Image = "rbxassetid://2615689005" -- Color spectrum image
colorSpectrum.Parent = colorPickerFrame
-- Close button for color picker
local closeColorPicker = Instance.new("TextButton")
closeColorPicker.Size = UDim2.new(0, 20, 0, 20)
closeColorPicker.Position = UDim2.new(1, -20, 0, 0)
closeColorPicker.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
closeColorPicker.TextColor3 = Color3.fromRGB(255, 255, 255)
closeColorPicker.Text = "X"
closeColorPicker.Font = Enum.Font.SourceSansBold
closeColorPicker.TextSize = 14
closeColorPicker.Parent = colorPickerFrame
colorBtn.MouseButton1Click:Connect(function()
colorPickerFrame.Visible = not colorPickerFrame.Visible
end)
closeColorPicker.MouseButton1Click:Connect(function()
colorPickerFrame.Visible = false
end)
colorSpectrum.MouseButton1Click:Connect(function()
-- This is a simplified color picker
-- In a real implementation, you would calculate the color based on mouse position
local newColor = Color3.new(math.random(), math.random(), math.random())
colorBtn.BackgroundColor3 = newColor
callback(newColor)
colorPickerFrame.Visible = false
end)
return colorBtn
end
-- Aimbot Tab
createCheckbox(aimbotTab, "Aimbot", 20, "Aimbot")
createCheckbox(aimbotTab, "Enable FOV", 50, "FOV")
createCheckbox(aimbotTab, "Visible Check", 80, "VisibleCheck")
createCheckbox(aimbotTab, "Team Check", 110, "TeamCheck")
createDropdown(aimbotTab, "Aimbot Mode", 140, {"Camera"}, AimbotMode, function(mode)
AimbotMode = mode
end)
createSlider(aimbotTab, "Smoothing", 170, 0, 100, 15, function(val)
Smoothness = val / 100
end)
createSlider(aimbotTab, "FOV Size", 210, 50, 300, 150, function(val)
FOVSize = val
FOVCircle.Radius = val
end)
-- Visuals Tab
createCheckbox(visualsTab, "2D Box ESP", 20, "BoxESP")
createCheckbox(visualsTab, "Name ESP", 50, "NameESP")
createCheckbox(visualsTab, "Health ESP", 80, "HealthESP")
createCheckbox(visualsTab, "Health Bar", 110, "HealthBar")
createCheckbox(visualsTab, "Tracers", 140, "Tracers")
createDropdown(visualsTab, "Tracer Origin", 170, {"Bottom", "Middle", "Top"}, TracerOrigin, function(origin)
TracerOrigin = origin
end)
createCheckbox(visualsTab, "Snaplines", 200, "Snaplines")
createCheckbox(visualsTab, "Skeleton ESP", 230, "SkeletonESP")
createCheckbox(visualsTab, "Head Circle", 260, "HeadCircle")
-- Color pickers for ESP
createColorPicker(visualsTab, "Box Color", 290, settings.boxColor, function(color)
settings.boxColor = color
end)
createColorPicker(visualsTab, "Name Color", 320, settings.nameColor, function(color)
settings.nameColor = color
end)
createColorPicker(visualsTab, "Tracer Color", 350, settings.tracerColor, function(color)
settings.tracerColor = color
end)
createColorPicker(visualsTab, "Snapline Color", 380, settings.snaplineColor, function(color)
settings.snaplineColor = color
end)
createColorPicker(visualsTab, "Skeleton Color", 410, settings.skeletonColor, function(color)
settings.skeletonColor = color
end)
createColorPicker(visualsTab, "Head Circle Color", 440, settings.headCircleColor, function(color)
settings.headCircleColor = color
end)
-- Extras Tab
createCheckbox(extrasTab, "Team Check", 20, "TeamCheck")
createCheckbox(extrasTab, "Team Color", 50, "teamcolor")
createCheckbox(extrasTab, "Velocity Fly", 80, "VelocityFly")
createKeybindSelector(extrasTab, "Fly Keybind", 110, FlyKeybind, function(key)
FlyKeybind = key
end)
createSlider(extrasTab, "Fly Speed", 140, 10, 200, 50, function(val)
FlySpeed = val
end)
createCheckbox(extrasTab, "NoClip", 170, "NoClip")
createKeybindSelector(extrasTab, "Noclip Keybind", 200, NoclipKeybind, function(key)
NoclipKeybind = key
end)
createCheckbox(extrasTab, "Spinbot", 230, "Spinbot")
createKeybindSelector(extrasTab, "Spinbot Keybind", 260, SpinbotKeybind, function(key)
SpinbotKeybind = key
end)
createSlider(extrasTab, "WalkSpeed", 290, 16, 100, 16, function(val)
WalkSpeed = val
setWalkSpeed()
end)
-- By XIRO Text
local creditText = Instance.new("TextLabel")
creditText.Size = UDim2.new(0, 100, 0, 20)
creditText.Position = UDim2.new(0, 10, 1, -30)
creditText.BackgroundTransparency = 1
creditText.TextColor3 = Color3.fromRGB(255, 255, 255)
creditText.Text = "By XIRO"
creditText.Font = Enum.Font.SourceSansBold
creditText.TextSize = 16
creditText.TextXAlignment = Enum.TextXAlignment.Left
creditText.Parent = screenGui
-- AIMBOT LOGIC
RunService.RenderStepped:Connect(function()
FOVCircle.Position = Vector2.new(mouse.X, mouse.Y + 36)
FOVCircle.Visible = Features.FOV
if Features.Aimbot and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
local closest, dist = nil, math.huge
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and plr.Character and plr.Character:FindFirstChild("Head") then
if Features.TeamCheck and plr.Team == player.Team then
continue
end
if Features.VisibleCheck then
-- Simple visible check (you can enhance this with raycasting)
local head = plr.Character.Head
local headPos, onScreen = camera:WorldToViewportPoint(head.Position)
if not onScreen then
continue
end
end
local head = plr.Character.Head
local headPos, onScreen = camera:WorldToViewportPoint(head.Position)
if onScreen then
local diff = Vector2.new(mouse.X, mouse.Y) - Vector2.new(headPos.X, headPos.Y)
local mag = diff.Magnitude
if Features.FOV and mag > FOVSize then
continue
end
if mag < dist then
dist, closest = mag, head
end
end
end
end
if closest then
-- Camera aimbot (rotate camera)
if Smoothness > 0 then
camera.CFrame = camera.CFrame:Lerp(CFrame.new(camera.CFrame.Position, closest.Position), Smoothness)
else
camera.CFrame = CFrame.new(camera.CFrame.Position, closest.Position)
end
end
end
end)
Script worked? 🚀 Boost it to #1 so others find it too.
Similar Scripts
678
2 days ago
Free
Universal
EZ hub ( script izheven ) Advanced script hub
1,635
5 days ago
Free
Universal
Blueberry Client 3.5 script | Animator, Modules
1,896
7 days ago
Free
Universal
Astro Universal script with Custom Char support (Keyless)
1,484
7 days ago
Free
Universal
Unified Speed & Jump Controller Menu (Draggable)
1,467
7 days ago
Free
Universal
Modern Character Freeze / Anchor Script
1,738
7 days ago
Free
Universal
Movement Master script keyless (Fly, Jump, Teleport)
🚀
Log in to boost
Boosting rockets this script to #1 on the homepage. A free account takes 30 seconds.
Log in
🚀
Out of boosts!
Grab boosts and rocket your favorite scripts to the top — plus join the booster wall with the RGB ring.
⚡ Go Pro — 10 boosts/month + zero ads
🚀
Boost this script?
It jumps to #1 in Recent Scripts and your avatar joins the booster wall.
🚀
Boosted! You're awesome 💜
Comments (0)
Log in to add a comment.