--// TROLL AIMBOT FP + AUTO FIRE (PERMANENTE / SNAP) --// LocalScript | First Person | Stable | Draggable UI local Players = game:GetService("Players") local RunService = game:GetService("RunService") local VirtualInput = game:GetService("VirtualInputManager") local LP = Players.LocalPlayer local Camera = workspace.CurrentCamera Camera.CameraType = Enum.CameraType.Custom ------------------------------------------------ -- PREMIUM CHECK (CONECTA TU Lร“GICA AQUร) ------------------------------------------------ local HasPremium = true -- ๐Ÿ‘† reemplaza por tu variable real ------------------------------------------------ -- STATE ------------------------------------------------ local aimbotEnabled = false local autoFireEnabled = false local conn local currentTarget local switchAt = 0 local justSwitched = false local lastShot = 0 local fireCooldown = 0.11 -- ajusta a tu arma ------------------------------------------------ -- UI ------------------------------------------------ local gui = Instance.new("ScreenGui") gui.Name = "TrollAimbotMenu" gui.ResetOnSpawn = false gui.Parent = LP:WaitForChild("PlayerGui") local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 290, 0, 215) frame.Position = UDim2.new(0.5, -145, 0.6, -107) frame.BackgroundColor3 = Color3.fromRGB(18,18,28) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 14) local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1,0,0,36) title.Text = "๐Ÿคก TROLL AIMBOT FP" title.Font = Enum.Font.GothamBold title.TextSize = 15 title.TextColor3 = Color3.fromRGB(255,90,90) title.BackgroundTransparency = 1 local aimBtn = Instance.new("TextButton", frame) aimBtn.Size = UDim2.new(0, 230, 0, 36) aimBtn.Position = UDim2.new(0.5, -115, 0, 50) aimBtn.Text = "๐ŸŽฏ Activar Aimbot" aimBtn.Font = Enum.Font.Gotham aimBtn.TextSize = 14 aimBtn.TextColor3 = Color3.new(1,1,1) aimBtn.BackgroundColor3 = Color3.fromRGB(45,45,65) aimBtn.BorderSizePixel = 0 Instance.new("UICorner", aimBtn) local fireBtn = Instance.new("TextButton", frame) fireBtn.Size = UDim2.new(0, 230, 0, 36) fireBtn.Position = UDim2.new(0.5, -115, 0, 95) fireBtn.Text = HasPremium and "๐Ÿ’Ž Auto Disparo (OFF)" or "๐Ÿ”’ Auto Disparo (1999R$)" fireBtn.Font = Enum.Font.Gotham fireBtn.TextSize = 14 fireBtn.TextColor3 = Color3.new(1,1,1) fireBtn.BackgroundColor3 = HasPremium and Color3.fromRGB(70,45,25) or Color3.fromRGB(40,40,40) fireBtn.BorderSizePixel = 0 Instance.new("UICorner", fireBtn) local close = Instance.new("TextButton", frame) close.Size = UDim2.new(0, 230, 0, 30) close.Position = UDim2.new(0.5, -115, 0, 150) close.Text = "โŒ Cerrar" close.BackgroundColor3 = Color3.fromRGB(70,30,30) close.TextColor3 = Color3.new(1,1,1) close.BorderSizePixel = 0 Instance.new("UICorner", close) ------------------------------------------------ -- TARGET SELECTION (SOLO FRENTE) ------------------------------------------------ local function getTarget() local camPos = Camera.CFrame.Position local camLook = Camera.CFrame.LookVector local best, bestDot = nil, 0.8 for _,plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local head = plr.Character:FindFirstChild("Head") local hum = plr.Character:FindFirstChild("Humanoid") if head and hum and hum.Health > 0 then local dir = (head.Position - camPos).Unit local dot = camLook:Dot(dir) if dot > bestDot then bestDot = dot best = head end end end end return best end ------------------------------------------------ -- AUTO FIRE ------------------------------------------------ local function autoFire() if tick() - lastShot < fireCooldown then return end lastShot = tick() VirtualInput:SendMouseButtonEvent(0,0,0,true,game,0) task.wait(0.015) VirtualInput:SendMouseButtonEvent(0,0,0,false,game,0) end ------------------------------------------------ -- MAIN LOOP (SNAP + MICRO AJUSTE) ------------------------------------------------ local function start() conn = RunService.RenderStepped:Connect(function() if not currentTarget or tick() > switchAt then currentTarget = getTarget() switchAt = tick() + 1 justSwitched = true end if not currentTarget then return end local camPos = Camera.CFrame.Position -- troll offset MUY leve local offset = Vector3.new( math.sin(tick()*3) * 0.18, math.cos(tick()*2) * 0.12, 0 ) local desired = CFrame.lookAt(camPos, currentTarget.Position + offset) -- SNAP inmediato al objetivo if justSwitched then Camera.CFrame = desired justSwitched = false else -- micro correcciรณn suave (casi imperceptible) Camera.CFrame = Camera.CFrame:Lerp(desired, 0.35) end if autoFireEnabled then autoFire() end end) end local function stop() if conn then conn:Disconnect() conn = nil end currentTarget = nil end ------------------------------------------------ -- BUTTONS ------------------------------------------------ aimBtn.MouseButton1Click:Connect(function() aimbotEnabled = not aimbotEnabled aimBtn.Text = aimbotEnabled and "๐Ÿ›‘ Desactivar Aimbot" or "๐ŸŽฏ Activar Aimbot" if aimbotEnabled then start() else stop() end end) fireBtn.MouseButton1Click:Connect(function() if not HasPremium then return end autoFireEnabled = not autoFireEnabled fireBtn.Text = autoFireEnabled and "๐Ÿ’Ž Auto Disparo (ON)" or "๐Ÿ’Ž Auto Disparo (OFF)" end) close.MouseButton1Click:Connect(function() stop() gui:Destroy() end)