local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))() local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local CurrentGun = nil -- Detect platform local IsMobile = table.find({Enum.Platform.IOS, Enum.Platform.Android}, UserInputService:GetPlatform()) ~= nil -- Defaults getgenv().shootkey = getgenv().shootkey or Enum.KeyCode.Q getgenv().shootoffset = getgenv().shootoffset or 1 local function DetectGunLoop() while task.wait() do local equipped = LocalPlayer:FindFirstChild("EquippedGun") if equipped and equipped.Value ~= CurrentGun then CurrentGun = equipped.Value Fluent:Notify({ Title = "Gun Detected", Content = "Your gun: " .. CurrentGun, Duration = 2.5 }) elseif (not equipped or equipped.Value == nil) and CurrentGun ~= nil then CurrentGun = nil Fluent:Notify({ Title = "Error", Content = "Unable to detect gun.", Duration = 2.5 }) end end end local function GetClosestTarget() local character = LocalPlayer.Character if not character or not character:FindFirstChild("HumanoidRootPart") then return nil end local root = character.HumanoidRootPart local closest = nil local closestDist = math.huge for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and (player.Team == nil or player.Team ~= LocalPlayer.Team) then local enemyChar = player.Character if enemyChar and enemyChar:FindFirstChild("HumanoidRootPart") then local dist = (root.Position - enemyChar.HumanoidRootPart.Position).Magnitude if dist < closestDist then closestDist = dist closest = enemyChar end end end end -- fallback checks (Rigs, all HRPs) if not closest then local rigsFolder = workspace:FindFirstChild("Rigs") if rigsFolder then for _, obj in ipairs(rigsFolder:GetDescendants()) do if obj:IsA("BasePart") and obj.Name == "HumanoidRootPart" then local dist = (root.Position - obj.Position).Magnitude if dist < closestDist then closestDist = dist closest = obj.Parent end end end end end if not closest then for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("BasePart") and obj.Name == "HumanoidRootPart" then local dist = (root.Position - obj.Position).Magnitude if dist < closestDist then closestDist = dist closest = obj.Parent end end end end return closest end local function PredictPosition(target, offset) if not target or not target:FindFirstChild("HumanoidRootPart") then return Vector3.zero end local hrp = target.HumanoidRootPart local velocity = hrp.AssemblyLinearVelocity local ping = LocalPlayer:GetNetworkPing() or 0 local pingAdjust = velocity * math.max(0, ping) return hrp.Position + velocity * (offset / 15) + pingAdjust end local function EquipGun() if not CurrentGun then return end local gun = LocalPlayer.Backpack:FindFirstChild(CurrentGun) if gun then gun.Parent = LocalPlayer.Character end end local function UnequipGun() if not CurrentGun then return end local gun = LocalPlayer.Character:FindFirstChild(CurrentGun) if gun then gun.Parent = LocalPlayer.Backpack end end local function Shoot() if not CurrentGun then Fluent:Notify({ Title = "Error", Content = "No gun equipped.", Duration = 2.5 }) return end local target = GetClosestTarget() if not target then Fluent:Notify({ Title = "Error", Content = "No target found.", Duration = 2 }) return end local char = LocalPlayer.Character if not char or not char:FindFirstChild("HumanoidRootPart") then Fluent:Notify({ Title = "Error", Content = "Local character missing.", Duration = 2 }) return end EquipGun() local predicted = PredictPosition(target, getgenv().shootoffset) local gun = char:FindFirstChild(CurrentGun) if gun and gun:FindFirstChild("GunServer") and gun.GunServer:FindFirstChild("ShootStart") then gun.GunServer.ShootStart:FireServer(1, predicted) task.wait(0.14) end UnequipGun() end if IsMobile then local old = CoreGui:FindFirstChild(":33") if old then old:Destroy() end local gui = Instance.new("ScreenGui") gui.Name = ":33" gui.Parent = CoreGui gui.ResetOnSpawn = false local button = Instance.new("ImageButton") button.Size = UDim2.new(0, 60, 0, 60) button.Position = UDim2.new(1, -145, 1, -140) button.Image = "rbxassetid://16688482749" button.BackgroundTransparency = 1 button.Parent = gui button.MouseButton1Click:Connect(Shoot) else UserInputService.InputBegan:Connect(function(input, typing) if typing then return end if input.KeyCode == getgenv().shootkey then Shoot() end end) end task.spawn(DetectGunLoop) Fluent:Notify({ Title = "Loaded", Content = "FUCK THIS SHIT IS TRASH", SubContent = "made by fork (was taken down by 1kzuya)", Duration = 10 })