--[[ v1.1.20 Changes - Fixed for Phantom Forces (kinda) - Universal Aimbot will now prompt you that you need to put a bypass script in your autoexec folder. - Bypass script made by Spoorloos UI Changes - No UI changes ]] local VERSION = "v1.1.20" if not getgenv().AimbotSettings then getgenv().AimbotSettings = { TeamCheck = true, -- Press ] to toggle VisibleCheck = true, IgnoreTransparency = true, -- if enabled, visible check will automatically filter transparent objects IgnoredTransparency = 0.5, -- all parts with a transparency greater than this will be ignored (IgnoreTransparency has to be enabled) RefreshRate = 10, -- how fast the aimbot updates (milliseconds) Keybind = "MouseButton2", ToggleKey = "RightShift", MaximumDistance = 300, -- Set this to something lower if you dont wanna lock on some random person across the map AlwaysActive = false, Aimbot = { Enabled = true, TargetPart = "Head", Use_mousemoverel = true, Strength = 100, -- 1% - 200% AimType = "Hold", -- "Hold" or "Toggle" AimAtNearestPart = false }, AimAssist = { Enabled = false, MinFov = 15, MaxFov = 80, DynamicFov = true, ShowFov = false, -- Shows Min & Max fov Strength = 55, -- 1% - 100% SlowSensitivity = true, SlowFactor = 1.75, -- 1% - 10% RequireMovement = true }, FovCircle = { Enabled = true, Dynamic = true, Radius = 100, Transparency = 1, Color = Color3.fromRGB(255,255,255), NumSides = 64, }, TriggerBot = { Enabled = false, Delay = 60, -- how long it waits before clicking (milliseconds) Spam = true, -- for semi-auto weapons ClicksPerSecond = 10, -- set this to 0 to get anything higher than 37 cps UseKeybind = false, -- if enabled, your keybind must be held to use trigger bot }, Crosshair = { Enabled = false, Transparency = 1, TransparencyKeybind = 1, -- when the keybind is held, the crosshair's transparency will be changed to this Color = Color3.fromRGB(255, 0, 0), RainbowColor = false, Length = 15, Thickness = 2, Offset = 0 }, Prediction = { Enabled = false, Strength = 2 }, Priority = {}, Whitelisted = {}, -- Username or User ID WhitelistFriends = true, -- Automatically adds friends to the whitelist Ignore = {} -- Raycast Ignore } end if not AimbotSettings.IgnoredTransparency then local bind = Instance.new("BindableFunction") bind.OnInvoke = function() setclipboard("https://pastebin.com/raw/nwqE7v07") end game:GetService("StarterGui"):SetCore("SendNotification",{ Title = "Universal Aimbot", Text = "Please update your script!", Duration = 5, Button1 = "Get Latest Script", Callback = bind }) return end local players = game:GetService("Players") local player = players.LocalPlayer local camera = workspace.CurrentCamera local uis = game:GetService("UserInputService") local RunService = game:GetService("RunService") local mousemoverel = mousemoverel local mouse1press = mouse1press or mouse1down local mouse1release = mouse1release or mouse1up local Drawingnew = Drawing.new local Fonts = Drawing.Fonts local tableinsert = table.insert local WorldToViewportPoint = camera.WorldToViewportPoint local CFramenew = CFrame.new local Vector2new = Vector2.new local fromRGB = Color3.fromRGB local fromHSV = Color3.fromHSV local mathfloor = math.floor local mathclamp = math.clamp local mathhuge = math.huge local lower = string.lower local mouse = uis:GetMouseLocation() local osclock = os.clock local RaycastParamsnew = RaycastParams.new local taskwait = task.wait local taskspawn = task.spawn local GameId = game.GameId local ss = getgenv().AimbotSettings local Aimbot = ss.Aimbot local AimAssist = ss.AimAssist local FovCircle = ss.FovCircle local Trigger = ss.TriggerBot local Mouse = player:GetMouse() if GameId == (111958650 or 115797356 or 147332621) then -- arsenal, counter blox, typical colors 2 ss.Ignore = {workspace.Ray_Ignore} elseif GameId == 833423526 then -- strucid ss.Ignore = {workspace.IgnoreThese} elseif GameId == 1168263273 then -- bad business do end elseif GameId == 2162282815 then -- rush point ss.Ignore = {camera, player.Character, workspace.RaycastIgnore, workspace.DroppedWeapons, workspace.MapFolder.Map.Ramps, workspace.MapFolder.Map.Walls.MapWalls} elseif workspace:FindFirstChild("Ignore") then tableinsert(ss.Ignore, workspace.Ignore) elseif workspace:FindFirstChild("RaycastIgnore") then tableinsert(ss.Ignore, workspace.RaycastIgnore) end if UAIM then UAIM:Destroy() end local bodyparts = { "Head","UpperTorso","LowerTorso","LeftUpperArm","LeftLowerArm","LeftHand","RightUpperArm","RightLowerArm","RightHand","LeftUpperLeg","LeftLowerLeg","LeftFoot","RightUpperLeg","RightLowerLeg","RightFoot", "Torso","Left Arm","Right Arm","Left Leg","Right Leg", "Chest","Hips","LeftArm","LeftForearm","RightArm","RightForearm","LeftLeg","LeftForeleg","RightLeg","RightForeleg" } local ads = false local olddelta = uis.MouseDeltaSensitivity local triggering = false local mousedown = false local Ignore = {camera} local gids = { -- game ids ['arsenal'] = 111958650, ['pf'] = 113491250, ['pft'] = 115272207, -- pf test place ['pfu'] = 1256867479, -- pf unstable branch ['bb'] = 1168263273, ['rp'] = 2162282815, -- rush point ['mm2'] = 66654135 } local getEntry, raycast, ts, characters, teams, rp if (GameId == gids.pf) or (GameId == gids.pft) or (GameId == gids.pfu) then local require = rawget(getrenv().shared, "require") if require == nil then setclipboard('loadstring(game:HttpGet("https://raw.githubusercontent.com/Spoorloos/scripts/main/pf-actor-bypass.lua"))()') local a = Instance.new("Message", game.CoreGui) a.Text = "-- Universal Aimbot Notice --\n\nA script has been copied to your clipboard.\nPlease put this script in your exploit's autoexec folder and rejoin the game.\n(this script is required to bypass the new update)\n\nbypass was created by Spoorloos" return end local _cache = rawget(debug.getupvalue(require, 1), "_cache") local ReplicationInterface = rawget(rawget(_cache, "ReplicationInterface"), "module") getEntry = rawget(ReplicationInterface, "getEntry") elseif GameId == gids.bb then for _,v in next, getgc(true) do if typeof(v) == "table" and rawget(v, "InitProjectile") and rawget(v, "TS") then ts = rawget(v, "TS") characters = ts.Characters teams = ts.Teams end end elseif GameId == gids.rp then rp = true -- CREDIT TO THIS DUDE FOR CRASH FIX https://v3rmillion.net/showthread.php?pid=8248169#pid8248169 --loadstring(game:HttpGet("https://raw.githubusercontent.com/Github-Account-39021832/Rush-Point-Fix-Crash/main/src.lua"))() end local rootpart = (getchar and "Torso") or (ts and "Chest") or "HumanoidRootPart" local setidentity = setidentity or setthreadidentity or set_thread_identity or setthreadcontext or set_thread_context or (syn and syn.set_thread_identity) or nil function safecall(func, env, ...) if not setidentity then return func(...) end local suc, env = pcall(getsenv, env) return coroutine.wrap(function(...) setidentity(2) if suc then setfenv(0, env) setfenv(1, env) end return func(...) end)(...) end local oldfuncs = {} function IsAlive(plr) local char = plr.Character local humanoid = char and char:FindFirstChild("Humanoid") if humanoid and humanoid.Health > 0 then return char end return false end function GetChar(plr) return plr.Character end function GetTeam(plr) return plr.Team end function IsFFA() local t = {} for _,v in next, players:GetPlayers() do local team = GetTeam(v) if team == nil then return true end team = team.Name or team if t[team] then return true else tableinsert(t, team) end end return #t == 1 end function ClosestPlayer() mouse = uis:GetMouseLocation() local plr = nil local closest = mathhuge local myteam = GetTeam(player) for _,v in next, ss.Priority do v = players:FindFirstChild(v) if v and IsAlive(v) and InFov(v) then return v end end for _,v in next, players:GetPlayers() do if v ~= player then local char = GetChar(v) if char ~= nil then local cf = char:GetPivot() local vector, inViewport = WorldToViewportPoint(camera, cf.Position) if inViewport then local mag = (Vector2new(mouse.X, mouse.Y) - Vector2new(vector.X, vector.Y)).Magnitude local team = GetTeam(v) if mag < closest and ((team ~= nil and team ~= myteam) or team == nil or not ss.TeamCheck) then plr = v closest = mag end end end end end return plr end local params = RaycastParamsnew() params.FilterType = Enum.RaycastFilterType.Blacklist params.IgnoreWater = true function IsVisible(plr, character, mycharacter, cf, targetpos, valid) local char = character or GetChar(plr) if ss.VisibleCheck and (valid or IsAlive(plr) and char:FindFirstChild(Aimbot.TargetPart)) then local mychar = mycharacter or GetChar(player) tableinsert(Ignore, mychar) params.FilterDescendantsInstances = Ignore local cf = cf or camera.CFrame.Position local targetpos = targetpos or char[Aimbot.TargetPart].Position local result = workspace:Raycast(cf, (targetpos - cf).Unit * 500, params) if result then local ins = result.Instance local isdes = ins:IsDescendantOf(char) local model = ins:FindFirstAncestorOfClass("Model") if ss.IgnoreTransparency then if ins.Transparency > ss.IgnoredTransparency and not (model ~= nil and model:FindFirstChildOfClass("Humanoid")) and not isdes then tableinsert(Ignore, ins) return IsVisible(plr, char, mychar, cf, targetpos, true) elseif isdes then return true end elseif isdes then return true end end elseif not ss.VisibleCheck and IsAlive(plr) then return true end return false end task.spawn(function() -- update ignore list (i have no idea if i even need this but whatever) while true do if ss ~= nil and typeof(ss.Ignore) == "table" then for _,v in next, ss.Ignore do tableinsert(Ignore, v) end end taskwait(3) end end) local fov function InFov(plr,Fov) mouse = uis:GetMouseLocation() if IsAlive(plr) then local char = GetChar(plr) if ts and char:FindFirstChild("Body") then char = char.Body end local target = char:FindFirstChild(Aimbot.TargetPart) if target then local _, inViewport = WorldToViewportPoint(camera, target.Position) if (FovCircle.Enabled or AimAssist.Enabled) and inViewport then for _,v in next, char:GetChildren() do if table.find(bodyparts, v.Name) and v.ClassName:find("Part") then local vector2, inViewport2 = WorldToViewportPoint(camera, v.Position) if inViewport2 and (Vector2new(mouse.X, mouse.Y) - Vector2new(vector2.X, vector2.Y)).Magnitude <= (Fov or fov.Radius or FovCircle.Radius) then return true end end end elseif not FovCircle.Enabled and IsAlive(plr) then return true end else return false end end return false end do -- compatibility if getEntry then -- phantom forces local playercache = {} local function GetPlayerObject(plr) local cached = playercache[plr] if cached then return cached end local obj = getEntry(plr) playercache[plr] = obj return obj end GetChar = function(plr) if plr == player then return nil end local obj = GetPlayerObject(plr) if obj ~= nil then local thirdPersonObject = obj._thirdPersonObject if thirdPersonObject then return thirdPersonObject:getCharacterHash().head.Parent end end return nil end IsAlive = GetChar end if ts then -- bad business hookfunction(PluginManager, error) -- prevent crash GetChar = function(plr) return characters:GetCharacter(plr) end IsAlive = GetChar GetTeam = function(plr) return teams:GetPlayerTeam(plr, plr) end end if GameId == gids.arsenal then -- arsenal local ffa = game:GetService("ReplicatedStorage"):WaitForChild("wkspc"):WaitForChild("FFA") IsFFA = function() return ffa.Value end end if rp then -- rush point local mapfolder = workspace:WaitForChild("MapFolder") local playerfolder = mapfolder:WaitForChild("Players") local gamestats = mapfolder:WaitForChild("GameStats") GetChar = function(plr) return playerfolder:FindFirstChild(plr.Name) end IsAlive = GetChar GetTeam = function(plr) local char = GetChar(plr) if not char then return "" end local team = char:FindFirstChild("Team") if not team then return "" end return team.Value end IsFFA = function() return gamestats.GameMode.Value == "Deathmatch" end end if GameId == gids.mm2 then local sheriff = nil local murderer = nil GetTeam = function(plr) local backpack = plr.Backpack local char = GetChar(plr) if (backpack and backpack:FindFirstChild("Gun")) or (char and char:FindFirstChild("Gun")) then sheriff = plr return "Sheriff" elseif (backpack and backpack:FindFirstChild("Knife")) or (char and char:FindFirstChild("Knife")) then murderer = plr return "Murderer" end return sheriff == player and "Sheriff" or "Innocent" end end end oldfuncs.alive = IsAlive oldfuncs.character = GetChar oldfuncs.team = GetTeam oldfuncs.ffa = IsFFA oldfuncs.closest = ClosestPlayer oldfuncs.visible = IsVisible oldfuncs.fov = InFov function IsWhitelisted(plr) if table.find(ss.Whitelisted, (plr.Name or plr.UserId)) then return true end return false end local uit = Enum.UserInputType local kc = Enum.KeyCode local mb1 = uit.MouseButton1 local conn1 = uis.InputBegan:Connect(function(i,gp) if gp then return end local a = ss.Keybind:find("Mouse") and uit[ss.Keybind] or kc[ss.Keybind] local b = kc[ss.ToggleKey] ~= nil and kc[ss.ToggleKey] if i.UserInputType == a or i.KeyCode == a then if Aimbot.AimType == "Toggle" then ads = not ads else ads = true end elseif i.KeyCode == b then Aimbot.Enabled = not Aimbot.Enabled fov.Visible = Aimbot.Enabled AimAssist.Enabled = not AimAssist.Enabled end if i.UserInputType == mb1 then mousedown = true end end) local conn2 = uis.InputEnded:Connect(function(i,gp) if gp then return end local a = ss.Keybind:find("Mouse") and uit[ss.Keybind] or kc[ss.Keybind] if (i.UserInputType == a or i.KeyCode == a) and Aimbot.AimType == "Hold" then ads = false end if i.UserInputType == mb1 then mousedown = false end end) fov = Drawingnew("Circle") fov.Visible = true fov.Transparency = 1 fov.Color = fromRGB(255,255,255) fov.Thickness = 1 fov.NumSides = 64 fov.Radius = 100 fov.Filled = false -- aim assist fov circles and labels local fov1, fov2, label1, label2 = Drawingnew("Circle"), Drawingnew("Circle"), Drawingnew("Text"), Drawingnew("Text") do for _,v in next, {fov1, fov2} do v.Visible = false v.Transparency = 1 v.Thickness = 1 v.NumSides = 64 v.Radius = 100 v.Filled = false end fov1.Color = fromRGB(255,0,0) fov2.Color = fromRGB(0, 0, 255) for _,v in next, {label1,label2} do v.Visible = false v.Transparency = 1 v.Size = 32 v.Center = true v.Outline = true v.OutlineColor = fromRGB(0,0,0) v.Font = Fonts.UI end label1.Color = fromRGB(255,255,255) label1.Text = "Aim Assist only works when the player is outside the Red circle and inside the Blue circle" label2.Color = fromRGB(255,0,0) label2.Text = "You cannot use Aimbot and Aim Assist at the same time!" end function removefov() fov:Remove() fov1:Remove() fov2:Remove() label1:Remove() label2:Remove() end -- crosshair local t, b, r, l, chdestroyed = Drawingnew("Line"), Drawingnew("Line"), Drawingnew("Line"), Drawingnew("Line"), false for _,v in next, {t, b, r, l} do pcall(function() v.ZIndex = 100 end) end function updatecrosshair(s) for _,v in next, {t, b, r, l} do v.Visible = s.Enabled end if chdestroyed or not s.Enabled then return end local center = camera.ViewportSize / 2 center = Vector2new(mathfloor(center.X), mathfloor(center.Y)) local length = s.Length local offset = s.Offset for _,v in next, {t, b, r, l} do v.Transparency = ads and s.TransparencyKeybind or s.Transparency v.Color = s.RainbowColor and fromHSV(tick() % 5 / 5, 1, 1) or s.Color v.Thickness = s.Thickness end t.From = Vector2new(center.X, center.Y - offset) t.To = Vector2new(center.X, center.Y - offset - length) b.From = Vector2new(center.X, center.Y + offset) b.To = Vector2new(center.X, center.Y + offset + length) r.From = Vector2new(center.X + offset, center.Y) r.To = Vector2new(center.X + offset + length, center.Y) l.From = Vector2new(center.X - offset, center.Y) l.To = Vector2new(center.X - offset - length, center.Y) end function removecrosshair() t:Remove() b:Remove() r:Remove() l:Remove() chdestroyed = true end local defaultcrosshair = { Enabled = false, Transparency = 1, TransparencyKeybind = 1, Color = fromRGB(255, 0, 0), RainbowColor = false, Length = 15, Thickness = 2, Offset = 0 } updatecrosshair(ss.Crosshair or defaultcrosshair) local lastupdate = osclock() function update() ss.RefreshRate = mathclamp(ss.RefreshRate, 0, mathhuge) if osclock() - lastupdate < (ss.RefreshRate / 1000) then return end lastupdate = osclock() mouse = uis:GetMouseLocation() local min, max, dyn, size = AimAssist.MinFov, AimAssist.MaxFov, AimAssist.DynamicFov, camera.ViewportSize local bot, assist = Aimbot.Enabled, AimAssist.Enabled local plr = ClosestPlayer() local s = (bot and not assist and Aimbot) or (assist and not bot and AimAssist) or nil if plr ~= nil and s ~= nil then local char, mychar = GetChar(plr), GetChar(player) local cf, ccf = char:GetBoundingBox(), camera.CFrame local dist = (ccf.Position - cf.Position).Magnitude if (ads or ss.AlwaysActive) and dist <= ss.MaximumDistance then if IsVisible(plr) and not IsWhitelisted(plr) then local str = mathclamp(s.Strength, 1, (bot and 200) or (assist and 100)) local target = Aimbot.TargetPart if ts and char:FindFirstChild("Body") then char = char.Body end if s.AimAtNearestPart then mouse = uis:GetMouseLocation() local closest = mathhuge for _,v in next, bodyparts do local part = char:FindFirstChild(v) if part then local vector = WorldToViewportPoint(camera, part.Position) local mag = (mouse - Vector2new(vector.X, vector.Y)).Magnitude if mag < closest then closest = mag target = part end end end else target = char:FindFirstChild(target) end if bot then if InFov(plr) and target then local position = target.Position if ss.Prediction.Enabled then local str = mathclamp(ss.Prediction.Strength, 1, 20) / 10 position += target.Velocity * str * (ccf.Position - target.Position).Magnitude / 100 end local vector = WorldToViewportPoint(camera, position) if Aimbot.Use_mousemoverel then str /= 100 mousemoverel((vector.X - mouse.X) * str, (vector.Y - mouse.Y) * str) else camera.CFrame = CFramenew(ccf.Position, char[target.Name].Position) end end end if assist then local inmaxfov = InFov(plr, max) if not InFov(plr, min) and inmaxfov then local factor = AimAssist.SlowFactor if AimAssist.SlowSensitivity then factor = mathclamp(factor, 1, 10) uis.MouseDeltaSensitivity = (inmaxfov and (olddelta / factor)) or olddelta end if (AimAssist.RequireMovement and mychar:FindFirstChild("Humanoid") and mychar.Humanoid.MoveDirection.Magnitude > 0) or not AimAssist.RequireMovement or getchar then local body = WorldToViewportPoint(camera, char[rootpart].Position) local head = WorldToViewportPoint(camera, char.Head.Position) local vector = body if (mouse - Vector2new(head.X, head.Y)).Magnitude < (mouse - Vector2new(body.X, body.Y)).Magnitude then vector = head end -- distance based strength local mag = (ccf.Position - char[rootpart].Position).Magnitude local mult = (mag <= 20 and 2) or (mag <= 40 and 1.4) or 1 if ads then mult /= 1.8 end if AimAssist.SlowSensitivity then mult *= factor end str *= mult str /= 1000 mousemoverel((vector.X - mouse.X) * str, (vector.Y - mouse.Y) * str * 1.2) end elseif assist and not inmaxfov then uis.MouseDeltaSensitivity = olddelta end end elseif assist and not InFov(plr, max) then uis.MouseDeltaSensitivity = olddelta end end local target = Mouse.Target local usebind = Trigger.UseKeybind if not triggering and Trigger.Enabled and target ~= nil and target:IsDescendantOf(char) and not mousedown then taskspawn(function() triggering = true if Trigger.Delay > 0 then taskwait(Trigger.Delay / 1000) end target = Mouse.Target if target ~= nil and target:IsDescendantOf(char) then triggering = true local cps = Trigger.ClicksPerSecond local spam = Trigger.Spam if cps > 37 then cps = 0 end local waitamount = cps == 0 and 0 or 1 / cps if (usebind and ads or not usebind) then mouse1press() end taskwait(waitamount) repeat target = Mouse.Target if spam and (usebind and ads or not usebind) and not mousedown then mouse1press() end taskwait(waitamount) until char == nil or Mouse.Target == nil or not Mouse.Target:IsDescendantOf(char) mouse1release() triggering = false else triggering = false end end) end end if FovCircle.Enabled then fov.Position = mouse fov.NumSides = FovCircle.NumSides fov.Radius = FovCircle.Radius fov.Transparency = FovCircle.Transparency fov.Color = FovCircle.Color if FovCircle.Dynamic then fov.Radius = FovCircle.Radius / (camera.FieldOfView / 80) end else fov.Transparency = 0 end local showfov = AimAssist.ShowFov max = (dyn and not ads and max) or (dyn and ads and max / (camera.FieldOfView / 100)) or max fov1.Visible = showfov fov2.Visible = showfov label1.Visible = showfov label2.Visible = bot and assist if showfov then fov1.Position = mouse fov1.Radius = min fov2.Position = mouse fov2.Radius = max label1.Position = Vector2new(size.X / 2, (size.Y / 2) + max + 10) end if bot and assist then label2.Position = Vector2new(size.X / 2, (size.Y / 2) + max + 42) return end updatecrosshair(ss.Crosshair or defaultcrosshair) end --local conn3 = RunService.RenderStepped:Connect(update) local name = "" for _ = 1, math.random(16, 24) do name ..= string.char(math.random(97, 122)) end RunService:BindToRenderStep(name, 0, update) local conn4 = players.PlayerAdded:Connect(function(plr) if ss.WhitelistFriends and player:IsFriendsWith(plr.UserId) then tableinsert(ss.Whitelisted, plr.UserId) end end) if typeof(ss.Keybind) == "EnumItem" then ss.Keybind = ss.Keybind.Name end if typeof(ss.ToggleKey) == "EnumItem" then ss.ToggleKey = ss.ToggleKey.Name end local aimbot = {Version = VERSION} local destroyed = false function ValidType(type) return type == "Other" or ss[type] ~= nil end function ValidOption(type,option) return (type == "Other" and ss[option] ~= nil) or ss[type][option] ~= nil end function aimbot:Toggle(type) assert(ValidType(type),"Universal Aimbot: bad argument to #1 'Toggle' (Invalid Type)") if type == ("Whitelisted" or "Ignore") then ss[type] = not ss[type] else ss[type].Enabled = not ss[type].Enabled end end function aimbot:Get(type,option) assert(ValidType(type),"Universal Aimbot: bad argument to #1 'Get' (Invalid Type)") assert(ValidOption(type,option),"Universal Aimbot: bad argument to #2 'Get' (Invalid Option)") if type == "Other" then return ss[option] end return ss[type][option] end function aimbot:Set(type,option,value) assert(ValidType(type),"Universal Aimbot: bad argument to #1 'Set' (Invalid Type)") assert(ValidOption(type,option),"Universal Aimbot: bad argument to #2 'Set' (Invalid Option)") assert(value ~= nil,"Universal Aimbot: bad argument to #3 'Set'") if type == "Other" then ss[option] = value else ss[type][option] = value end end function aimbot:SetFunction(a,f) assert(typeof(a) == "string",("Universal Aimbot: bad argument to #1 'SetFunction' (string expected, got %s)"):format(typeof(a))) assert(typeof(f) == "function",("Universal Aimbot: bad argument to #2 'SetFunction' (function expected, got %s)"):format(typeof(f))) a = lower(a) if a == "alive" then IsAlive = f elseif a == "character" then GetChar = f elseif a == "team" then GetTeam = f elseif a == "ffa" then IsFFA = f elseif a == "closest" then ClosestPlayer = f elseif a == "visible" then IsVisible = f end end function aimbot:ResetFunction(a) assert(typeof(a) == "string",("Universal Aimbot: bad argument to #1 'ResetFunction' (string expected, got %s)"):format(typeof(a))) a = lower(a) assert(oldfuncs[a] ~= nil,"Universal Aimbot: bad argument to #1 'ResetFunction' (invalid function)") local f = oldfuncs[a] if a == "alive" then IsAlive = f elseif a == "character" then GetChar = f elseif a == "team" then GetTeam = f elseif a == "ffa" then IsFFA = f elseif a == "closest" then ClosestPlayer = f elseif a == "visible" then IsVisible = f end end function aimbot:Destroy() if destroyed then return end conn1:Disconnect() conn2:Disconnect() --conn3:Disconnect() conn4:Disconnect() RunService:UnbindFromRenderStep(name) removefov() removecrosshair() uis.MouseDeltaSensitivity = olddelta destroyed = true end getgenv().UAIM = aimbot return aimbot