
KeylessUniversal

local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Teams = game:GetService("Teams")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
if CoreGui:FindFirstChild("AimBotSmooth") then CoreGui.AimBotSmooth:Destroy() end
local Settings = {
Aimlock = false,
LockTeam = false,
Highlights = false,
Tracers = false,
PlayerInfo = false,
LockDist = 500,
WalkSpeed = 16,
Smoothness = 0.5,
WhitelistedTeams = {},
WhitelistedPlayers = {},
UI_Visible = true,
Theme = {
BG = Color3.fromRGB(10, 10, 15),
Accent = Color3.fromRGB(0, 255, 200),
Text = Color3.fromRGB(255, 255, 255),
DarkText = Color3.fromRGB(150, 150, 150),
ButtonOff = Color3.fromRGB(25, 25, 30),
Safe = Color3.fromRGB(0, 180, 80),
TeamBlue = Color3.fromRGB(60, 120, 255)
}
}
local DrawingLines = {}
local CameraDragging = false
UserInputService.InputBegan:Connect(function(input, gp)
if not gp and (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton2) then
CameraDragging = true
end
end)
UserInputService.InputEnded:Connect(function(input, gp)
if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton2 then
CameraDragging = false
end
end)
local function GetClosestPlayer()
local target, closestDist = nil, math.huge
local screenCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
for _, v in pairs(Players:GetPlayers()) do
if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health > 0 then
local dist = (LocalPlayer.Character.HumanoidRootPart.Position - v.Character.HumanoidRootPart.Position).Magnitude
if dist > Settings.LockDist then continue end
if not Settings.LockTeam and v.Team == LocalPlayer.Team then continue end
if v.Team and Settings.WhitelistedTeams[v.Team.Name] then continue end
if Settings.WhitelistedPlayers[v.Name] then continue end
local pos, onScreen = Camera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
if onScreen then
local screenDist = (Vector2.new(pos.X, pos.Y) - screenCenter).Magnitude
if screenDist < closestDist then closestDist = screenDist; target = v.Character end
end
end
end
return target
end
local Gui = Instance.new("ScreenGui", CoreGui)
Gui.Name = "AimBotSmooth"
local function EnableDrag(obj)
local dragStart, startPos, dragging
obj.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true; dragStart = input.Position; startPos = obj.Position
input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
obj.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
end
-- Floating Toggle
local MiniBtn = Instance.new("TextButton", Gui)
MiniBtn.Size = UDim2.new(0, 55, 0, 55); MiniBtn.Position = UDim2.new(0, 50, 0, 150)
MiniBtn.BackgroundColor3 = Settings.Theme.Accent; MiniBtn.Text = "AS"; MiniBtn.Font = Enum.Font.GothamBold; MiniBtn.TextSize = 22; MiniBtn.TextColor3 = Color3.fromRGB(0,0,0)
Instance.new("UICorner", MiniBtn).CornerRadius = UDim.new(1, 0)
EnableDrag(MiniBtn)
-- Main Frame
local Main = Instance.new("Frame", Gui)
Main.Size = UDim2.new(0, 310, 0, 480); Main.Position = UDim2.new(0.5, -155, 0.5, -240)
Main.BackgroundColor3 = Settings.Theme.BG; Main.BorderSizePixel = 0; Main.ClipsDescendants = true
Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 12)
EnableDrag(Main)
MiniBtn.MouseButton1Click:Connect(function() Settings.UI_Visible = not Settings.UI_Visible; Main.Visible = Settings.UI_Visible end)
local Title = Instance.new("TextLabel", Main)
Title.Size = UDim2.new(1, 0, 0, 45); Title.Text = "AimBotSmooth PRO"; Title.TextColor3 = Settings.Theme.Accent; Title.Font = Enum.Font.GothamBold; Title.TextSize = 18; Title.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
local Scroll = Instance.new("ScrollingFrame", Main)
Scroll.Size = UDim2.new(1, -20, 1, -60); Scroll.Position = UDim2.new(0, 10, 0, 55); Scroll.BackgroundTransparency = 1; Scroll.ScrollBarThickness = 0
local List = Instance.new("UIListLayout", Scroll); List.Padding = UDim.new(0, 8)
-- [[ LIST WINDOW GENERATOR ]] --
local function CreateSubWindow(title, posOffset)
local frame = Instance.new("Frame", Gui)
frame.Size = UDim2.new(0, 240, 0, 320); frame.Position = UDim2.new(0.5, posOffset, 0.5, -160)
frame.BackgroundColor3 = Settings.Theme.BG; frame.Visible = false; frame.BorderSizePixel = 0
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10)
EnableDrag(frame)
local tLabel = Instance.new("TextLabel", frame)
tLabel.Size = UDim2.new(1, 0, 0, 35); tLabel.Text = title; tLabel.TextColor3 = Settings.Theme.Accent; tLabel.Font = Enum.Font.GothamBold; tLabel.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
Instance.new("UICorner", tLabel)
local sc = Instance.new("ScrollingFrame", frame)
sc.Size = UDim2.new(1, -15, 1, -45); sc.Position = UDim2.new(0, 10, 0, 40); sc.BackgroundTransparency = 1; sc.ScrollBarThickness = 2
local ly = Instance.new("UIListLayout", sc); ly.Padding = UDim.new(0, 5)
return frame, sc
end
local PListFrame, PListScroll = CreateSubWindow("PLAYER WHITELIST", 170)
local TListFrame, TListScroll = CreateSubWindow("TEAM WHITELIST", -420)
-- [[ REFRESH LOGIC ]] --
local function RefreshPlayerList()
for _, c in pairs(PListScroll:GetChildren()) do if c:IsA("TextButton") then c:Destroy() end end
for _, p in pairs(Players:GetPlayers()) do
if p ~= LocalPlayer then
local btn = Instance.new("TextButton", PListScroll)
btn.Size = UDim2.new(1, -5, 0, 30); btn.BackgroundColor3 = Settings.WhitelistedPlayers[p.Name] and Settings.Theme.Safe or Settings.Theme.ButtonOff
btn.Text = " " .. p.Name; btn.TextColor3 = Color3.new(1,1,1); btn.Font = Enum.Font.GothamBold; btn.TextSize = 12; btn.TextXAlignment = Enum.TextXAlignment.Left; Instance.new("UICorner", btn)
btn.MouseButton1Click:Connect(function() Settings.WhitelistedPlayers[p.Name] = not Settings.WhitelistedPlayers[p.Name]; RefreshPlayerList() end)
end
end
end
local function RefreshTeamList()
for _, c in pairs(TListScroll:GetChildren()) do if c:IsA("TextButton") then c:Destroy() end end
for _, t in pairs(Teams:GetTeams()) do
local btn = Instance.new("TextButton", TListScroll)
btn.Size = UDim2.new(1, -5, 0, 30); btn.BackgroundColor3 = Settings.WhitelistedTeams[t.Name] and Settings.Theme.TeamBlue or Settings.Theme.ButtonOff
btn.Text = " " .. t.Name; btn.TextColor3 = Color3.new(1,1,1); btn.Font = Enum.Font.GothamBold; btn.TextSize = 12; btn.TextXAlignment = Enum.TextXAlignment.Left; Instance.new("UICorner", btn)
btn.MouseButton1Click:Connect(function() Settings.WhitelistedTeams[t.Name] = not Settings.WhitelistedTeams[t.Name]; RefreshTeamList() end)
end
end
-- [[ UI ELEMENTS ]] --
local function CreateToggle(name, key)
local btn = Instance.new("TextButton", Scroll); btn.Size = UDim2.new(1, 0, 0, 40); btn.BackgroundColor3 = Settings.Theme.ButtonOff; btn.Text = " " .. name .. " [OFF]"; btn.TextColor3 = Settings.Theme.DarkText; btn.Font = Enum.Font.GothamBold; btn.TextXAlignment = Enum.TextXAlignment.Left; Instance.new("UICorner", btn)
btn.MouseButton1Click:Connect(function() Settings[key] = not Settings[key]; btn.TextColor3 = Settings[key] and Settings.Theme.BG or Settings.Theme.DarkText; btn.BackgroundColor3 = Settings[key] and Settings.Theme.Accent or Settings.Theme.ButtonOff; btn.Text = " " .. name .. (Settings[key] and " [ON]" or " [OFF]") end)
end
local function CreateInput(name, key, default)
local frame = Instance.new("Frame", Scroll); frame.Size = UDim2.new(1, 0, 0, 40); frame.BackgroundTransparency = 1
local label = Instance.new("TextLabel", frame); label.Size = UDim2.new(0.5, 0, 1, 0); label.Text = " " .. name; label.TextColor3 = Settings.Theme.Text; label.Font = Enum.Font.GothamBold; label.TextXAlignment = Enum.TextXAlignment.Left; label.BackgroundTransparency = 1
local input = Instance.new("TextBox", frame); input.Size = UDim2.new(0.45, 0, 0.8, 0); input.Position = UDim2.new(0.5, 0, 0.1, 0); input.BackgroundColor3 = Settings.Theme.ButtonOff; input.Text = tostring(default); input.TextColor3 = Settings.Theme.Accent; input.Font = Enum.Font.GothamBold; Instance.new("UICorner", input)
input.FocusLost:Connect(function() Settings[key] = tonumber(input.Text) or default end)
end
CreateToggle("Aimlock Head", "Aimlock")
CreateToggle("Lock Your Team", "LockTeam")
local TeamBtn = Instance.new("TextButton", Scroll)
TeamBtn.Size = UDim2.new(1, 0, 0, 40); TeamBtn.BackgroundColor3 = Color3.fromRGB(40, 70, 120); TeamBtn.Text = " MANAGE TEAM WHITELIST"; TeamBtn.TextColor3 = Color3.new(1,1,1); TeamBtn.Font = Enum.Font.GothamBold; TeamBtn.TextXAlignment = Enum.TextXAlignment.Left; Instance.new("UICorner", TeamBtn)
TeamBtn.MouseButton1Click:Connect(function() TListFrame.Visible = not TListFrame.Visible; if TListFrame.Visible then RefreshTeamList() end end)
local PlayBtn = Instance.new("TextButton", Scroll)
PlayBtn.Size = UDim2.new(1, 0, 0, 40); PlayBtn.BackgroundColor3 = Color3.fromRGB(80, 40, 120); PlayBtn.Text = " MANAGE PLAYER WHITELIST"; PlayBtn.TextColor3 = Color3.new(1,1,1); PlayBtn.Font = Enum.Font.GothamBold; PlayBtn.TextXAlignment = Enum.TextXAlignment.Left; Instance.new("UICorner", PlayBtn)
PlayBtn.MouseButton1Click:Connect(function() PListFrame.Visible = not PListFrame.Visible; if PListFrame.Visible then RefreshPlayerList() end end)
CreateToggle("Highlights (Chams)", "Highlights")
CreateToggle("Body Tracers (Line)", "Tracers")
CreateToggle("Player Info (ESP)", "PlayerInfo")
CreateInput("Lock Distance", "LockDist", 500)
CreateInput("Smooth Aim (0.1-1)", "Smoothness", 0.5)
CreateInput("WalkSpeed Boost", "WalkSpeed", 16)
-- [[ MAIN LOOP ]] --
RunService.RenderStepped:Connect(function()
if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
LocalPlayer.Character.Humanoid.WalkSpeed = Settings.WalkSpeed
end
if Settings.Aimlock and not CameraDragging then
local t = GetClosestPlayer()
if t and t:FindFirstChild("Head") then
Camera.CFrame = Camera.CFrame:Lerp(CFrame.lookAt(Camera.CFrame.Position, t.Head.Position), Settings.Smoothness)
end
end
for _, l in pairs(DrawingLines) do l:Remove() end; DrawingLines = {}
for _, v in pairs(Players:GetPlayers()) do
if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Humanoid") then
local char = v.Character
local isW = Settings.WhitelistedPlayers[v.Name] or (v.Team and Settings.WhitelistedTeams[v.Team.Name])
local color = isW and Settings.Theme.Safe or v.TeamColor.Color
-- Highlights (AlwaysOnTop = ทะลุสิ่งกีดขวาง)
local hl = char:FindFirstChild("EliteHighlight") or Instance.new("Highlight", char)
hl.Name = "EliteHighlight"; hl.FillColor = color; hl.Enabled = Settings.Highlights
hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
-- Fixed ESP Info
local info = char:FindFirstChild("EliteInfo")
if Settings.PlayerInfo and char.Humanoid.Health > 0 then
if not info then
info = Instance.new("BillboardGui", char)
info.Name = "EliteInfo"; info.Size = UDim2.new(0, 100, 0, 50); info.Adornee = char:FindFirstChild("Head")
info.AlwaysOnTop = true; info.ExtentsOffset = Vector3.new(0, 3, 0)
local txt = Instance.new("TextLabel", info)
txt.Size = UDim2.new(1, 0, 1, 0); txt.BackgroundTransparency = 1; txt.Font = Enum.Font.GothamBold; txt.TextSize = 12; txt.TextStrokeTransparency = 0
end
local dist = math.floor((LocalPlayer.Character.HumanoidRootPart.Position - char.HumanoidRootPart.Position).Magnitude)
info.TextLabel.Text = string.format("%s\n%d HP | %dm", v.Name, math.floor(char.Humanoid.Health), dist)
info.TextLabel.TextColor3 = color; info.Enabled = true
elseif info then info.Enabled = false end
-- Tracers
if Settings.Tracers and char.Humanoid.Health > 0 then
local _, onScreen = Camera:WorldToViewportPoint(char.HumanoidRootPart.Position)
if onScreen then
local myP, _ = Camera:WorldToViewportPoint(LocalPlayer.Character.HumanoidRootPart.Position)
local taP, _ = Camera:WorldToViewportPoint(char.HumanoidRootPart.Position)
local l = Drawing.new("Line"); l.From = Vector2.new(myP.X, myP.Y); l.To = Vector2.new(taP.X, taP.Y); l.Color = color; l.Thickness = 1.5; l.Visible = true; table.insert(DrawingLines, l)
end
end
end
end
end)
![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)


probably best esp for mobile devices but aimbot doesn't work. anyway thank you for really good esp
@moovik yo it's sometime like some Map that didn't idk why to maybe some lag or camera setting that map
@moovik fix complete
how to run it?