--================= 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)