
KeylessUniversal

--================= SERVIÇOS =================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local UIS = game:GetService("UserInputService")
--================= ESTADOS =================
local AIMBOT = false
local ESP = false
local FOV_ON = false
local ESP_NAME = false
local ESP_LINE = false
local ESP_DISTANCE = false
--================= CONFIG =================
local FOV_MIN = 40
local FOV_MAX = 220
local FOV_RADIUS = 120
local AIM_SMOOTHNESS = 0.25
local ESP_COLOR = Color3.fromRGB(255,255,255)
--================= FOV =================
local FOV = Drawing.new("Circle")
FOV.Visible = false
FOV.Radius = FOV_RADIUS
FOV.Thickness = 2
FOV.NumSides = 100
FOV.Filled = false
FOV.Color = Color3.fromRGB(255,80,80)
--================= FUNÇÕES =================
local function IsAlive(plr)
return plr.Character
and plr.Character:FindFirstChild("Humanoid")
and plr.Character.Humanoid.Health > 0
end
local function WorldToScreen(pos)
local s, v = Camera:WorldToViewportPoint(pos)
return Vector2.new(s.X, s.Y), v
end
local function GetClosestHead()
local closest, dist = nil, FOV_RADIUS
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer and IsAlive(plr) then
local head = plr.Character:FindFirstChild("Head")
if head then
local pos, vis = WorldToScreen(head.Position)
if vis then
local mag = (pos - FOV.Position).Magnitude
if mag < dist then
dist = mag
closest = head
end
end
end
end
end
return closest
end
--================= ESP =================
local ESP_Objects = {}
local function CreateESP(plr)
if plr == LocalPlayer then return end
local box = Drawing.new("Square")
box.Visible = false
box.Color = ESP_COLOR
box.Thickness = 1.3
box.Filled = false
local name = Drawing.new("Text")
name.Visible = false
name.Color = ESP_COLOR
name.Size = 13
name.Center = true
name.Outline = true
local dist = Drawing.new("Text")
dist.Visible = false
dist.Color = ESP_COLOR
dist.Size = 12
dist.Center = true
dist.Outline = true
local line = Drawing.new("Line")
line.Visible = false
line.Color = ESP_COLOR
line.Thickness = 1
ESP_Objects[plr] = {Box=box,Name=name,Dist=dist,Line=line}
end
for _,p in ipairs(Players:GetPlayers()) do CreateESP(p) end
Players.PlayerAdded:Connect(CreateESP)
Players.PlayerRemoving:Connect(function(p)
if ESP_Objects[p] then
for _,v in pairs(ESP_Objects[p]) do v:Remove() end
ESP_Objects[p] = nil
end
end)
--================= UI =================
local gui = Instance.new("ScreenGui", game.CoreGui)
-- BOTÃO FLUTUANTE
local openBtn = Instance.new("TextButton", gui)
openBtn.Size = UDim2.fromOffset(55,55)
openBtn.Position = UDim2.new(0,15,0.5,-25)
openBtn.Text = "≡"
openBtn.TextSize = 26
openBtn.BackgroundColor3 = Color3.fromRGB(255,80,80)
openBtn.TextColor3 = Color3.new(1,1,1)
openBtn.BorderSizePixel = 0
Instance.new("UICorner", openBtn).CornerRadius = UDim.new(1,0)
-- PAINEL
local panel = Instance.new("Frame", gui)
panel.Size = UDim2.fromOffset(280,440)
panel.Position = UDim2.new(0.5,-140,0.5,-220)
panel.BackgroundColor3 = Color3.fromRGB(25,25,25)
panel.BorderSizePixel = 0
panel.Visible = false
Instance.new("UICorner", panel).CornerRadius = UDim.new(0,12)
openBtn.Activated:Connect(function()
panel.Visible = not panel.Visible
end)
-- TITULO (DRAG DO PAINEL)
local title = Instance.new("TextLabel", panel)
title.Size = UDim2.new(1,0,0,40)
title.Text = "DESTROYR MOBILE"
title.TextColor3 = Color3.new(1,1,1)
title.TextSize = 14
title.BackgroundColor3 = Color3.fromRGB(20,20,20)
title.BorderSizePixel = 0
Instance.new("UICorner", title).CornerRadius = UDim.new(0,12)
local draggingPanel = false
local dragStart, startPos
title.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.Touch then
draggingPanel = true
dragStart = i.Position
startPos = panel.Position
end
end)
UIS.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.Touch then
draggingPanel = false
end
end)
UIS.InputChanged:Connect(function(i)
if draggingPanel and i.UserInputType == Enum.UserInputType.Touch then
local delta = i.Position - dragStart
panel.Position = startPos + UDim2.fromOffset(delta.X, delta.Y)
end
end)
--================= ABAS =================
local function Tab(text,x)
local b = Instance.new("TextButton", panel)
b.Size = UDim2.fromOffset(85,28)
b.Position = UDim2.fromOffset(x,45)
b.Text = text
b.TextSize = 12
b.BackgroundColor3 = Color3.fromRGB(40,40,40)
b.TextColor3 = Color3.new(1,1,1)
b.BorderSizePixel = 0
Instance.new("UICorner", b).CornerRadius = UDim.new(0,8)
return b
end
local tabAim = Tab("AIM",10)
local tabESP = Tab("ESP",100)
local tabClose = Tab("EXIT",190)
-- FRAMES
local aimFrame = Instance.new("Frame", panel)
aimFrame.Position = UDim2.fromOffset(0,80)
aimFrame.Size = UDim2.new(1,0,1,-80)
aimFrame.BackgroundTransparency = 1
local espFrame = aimFrame:Clone()
espFrame.Parent = panel
espFrame.Visible = false
tabAim.Activated:Connect(function()
aimFrame.Visible = true
espFrame.Visible = false
end)
tabESP.Activated:Connect(function()
aimFrame.Visible = false
espFrame.Visible = true
end)
tabClose.Activated:Connect(function()
panel.Visible = false
end)
--================= BOTÕES =================
local function Btn(parent,text,y)
local b = Instance.new("TextButton", parent)
b.Size = UDim2.new(1,-20,0,34)
b.Position = UDim2.fromOffset(10,y)
b.Text = text
b.TextSize = 13
b.BackgroundColor3 = Color3.fromRGB(40,40,40)
b.TextColor3 = Color3.new(1,1,1)
b.BorderSizePixel = 0
Instance.new("UICorner", b).CornerRadius = UDim.new(0,8)
return b
end
--================= AIM =================
local aimBtn = Btn(aimFrame,"Aimbot: OFF",10)
local fovBtn = Btn(aimFrame,"FOV: OFF",50)
local fovTxt = Instance.new("TextLabel", aimFrame)
fovTxt.Position = UDim2.fromOffset(10,95)
fovTxt.Size = UDim2.fromOffset(200,18)
fovTxt.TextColor3 = Color3.new(1,1,1)
fovTxt.BackgroundTransparency = 1
fovTxt.TextSize = 12
local sliderBg = Instance.new("Frame", aimFrame)
sliderBg.Position = UDim2.fromOffset(10,120)
sliderBg.Size = UDim2.fromOffset(240,10)
sliderBg.BackgroundColor3 = Color3.fromRGB(50,50,50)
sliderBg.BorderSizePixel = 0
Instance.new("UICorner", sliderBg).CornerRadius = UDim.new(1,0)
local sliderFill = Instance.new("Frame", sliderBg)
sliderFill.BackgroundColor3 = Color3.fromRGB(255,80,80)
sliderFill.BorderSizePixel = 0
Instance.new("UICorner", sliderFill).CornerRadius = UDim.new(1,0)
local draggingSlider = false
local function UpdateFOV(p)
p = math.clamp(p,0,1)
sliderFill.Size = UDim2.fromScale(p,1)
FOV_RADIUS = math.floor(FOV_MIN + (FOV_MAX - FOV_MIN) * p)
FOV.Radius = FOV_RADIUS
fovTxt.Text = "FOV: "..math.floor(p*100).."%"
end
UpdateFOV(0.5)
sliderBg.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.Touch then
draggingSlider = true
end
end)
UIS.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.Touch then
draggingSlider = false
end
end)
UIS.InputChanged:Connect(function(i)
if draggingSlider and i.UserInputType == Enum.UserInputType.Touch then
local x = (i.Position.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X
UpdateFOV(x)
end
end)
aimBtn.Activated:Connect(function()
AIMBOT = not AIMBOT
aimBtn.Text = AIMBOT and "Aimbot: ON" or "Aimbot: OFF"
end)
fovBtn.Activated:Connect(function()
FOV_ON = not FOV_ON
FOV.Visible = FOV_ON
fovBtn.Text = FOV_ON and "FOV: ON" or "FOV: OFF"
end)
--================= ESP =================
local espBtn = Btn(espFrame,"ESP Box: OFF",10)
local espNameBtn = Btn(espFrame,"ESP Name: OFF",50)
local espLineBtn = Btn(espFrame,"ESP Line: OFF",90)
local espDistBtn = Btn(espFrame,"ESP distance : OFF",130)
espBtn.Activated:Connect(function()
ESP = not ESP
espBtn.Text = ESP and "ESP Box: ON" or "ESP Box: OFF"
end)
espNameBtn.Activated:Connect(function()
ESP_NAME = not ESP_NAME
espNameBtn.Text = ESP_NAME and "ESP Nome: ON" or "ESP Nome: OFF"
end)
espLineBtn.Activated:Connect(function()
ESP_LINE = not ESP_LINE
espLineBtn.Text = ESP_LINE and "ESP Linha: ON" or "ESP Linha: OFF"
end)
espDistBtn.Activated:Connect(function()
ESP_DISTANCE = not ESP_DISTANCE
espDistBtn.Text = ESP_DISTANCE and "ESP Distância: ON" or "ESP Distância: OFF"
end)
--================= LOOP =================
RunService.RenderStepped:Connect(function()
FOV.Position = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)
if AIMBOT and FOV_ON then
local head = GetClosestHead()
if head then
Camera.CFrame = Camera.CFrame:Lerp(
CFrame.new(Camera.CFrame.Position, head.Position),
AIM_SMOOTHNESS
)
end
end
for plr,esp in pairs(ESP_Objects) do
if ESP and IsAlive(plr) and plr.Character:FindFirstChild("HumanoidRootPart") then
local hrp = plr.Character.HumanoidRootPart
local pos,vis = WorldToScreen(hrp.Position)
if vis then
local dist = (Camera.CFrame.Position-hrp.Position).Magnitude
local size = math.clamp(1200/dist,22,110)
esp.Box.Size = Vector2.new(size/1.8,size)
esp.Box.Position = pos-esp.Box.Size/2
esp.Box.Visible = true
esp.Name.Text = plr.Name
esp.Name.Position = Vector2.new(pos.X,pos.Y-size/2-14)
esp.Name.Visible = ESP_NAME
esp.Dist.Text = math.floor(dist).."m"
esp.Dist.Position = Vector2.new(pos.X,pos.Y+size/2+2)
esp.Dist.Visible = ESP_DISTANCE
esp.Line.From = Vector2.new(Camera.ViewportSize.X/2,Camera.ViewportSize.Y)
esp.Line.To = pos
esp.Line.Visible = ESP_LINE
else
for _,v in pairs(esp) do v.Visible=false end
end
else
for _,v in pairs(esp) do v.Visible=false end
end
end
end)



Confirmed works, good script bro, did you know you have this as "Paid"? and it isn't. Just a heads up.
Pretty good