-- ModuleScript AimAssist (via decompile) local Players_upv_1 = game:GetService("Players") local UserInputService_upv_1 = game:GetService("UserInputService") local Workspace_upv_1 = game:GetService("Workspace") local ReplicatedStorage_1 = game:GetService("ReplicatedStorage") local ActionService_upv_1 = require(script:FindFirstAncestor("App").Modules.Input.ActionService) local GangConfig_1 = require(ReplicatedStorage_1.App.Config.GangConfig) local ViewState_upv_1 = require(ReplicatedStorage_1.App.Modules.Character.ViewState) local WeaponMath_upv_1 = require(ReplicatedStorage_1.App.Modules.Weapon.WeaponMath) local attributes_upv_1 = GangConfig_1.attributes local u1 = nil local u2 = 0 local u3 = RaycastParams.new() u3.FilterType = Enum.RaycastFilterType.Exclude u3.RespectCanCollide = true u3.IgnoreWater = true local tbl_1 = {} local function isTouch() --[[ name: isTouch line: 47 upvalues: ActionService_upv_1 (copy, index: 1) UserInputService_upv_1 (copy, index: 2) ]] if ActionService_upv_1.preferredInput() ~= "Touch" then return UserInputService_upv_1.TouchEnabled and (not UserInputService_upv_1.KeyboardEnabled) end return true end local function crewIdOf(a1) --[[ name: crewIdOf line: 54 upvalues: attributes_upv_1 (copy, index: 1) ]] local v1 = a1:GetAttribute(attributes_upv_1.id) if type(v1) ~= "string" then return "" end return v1 end local function clear() --[[ name: clear line: 59 upvalues: u1 (ref, index: 1) u2 (ref, index: 2) ]] u1 = nil u2 = 0 end local function visibleTo(a1, a2, a3, a4, a5) --[[ name: visibleTo line: 64 upvalues: u3 (copy, index: 1) Workspace_upv_1 (copy, index: 2) ]] local v2 = a3.Position - a2 if v2.Magnitude < 0.2 then return true end u3.FilterDescendantsInstances = {a4, a5, a1} local v3 = Workspace_upv_1:Raycast(a2, v2, u3) == nil return v3 end function tbl_1.sample(a1) --[[ name: sample line: 75 upvalues: ViewState_upv_1 (copy, index: 1) ActionService_upv_1 (copy, index: 2) UserInputService_upv_1 (copy, index: 3) u1 (ref, index: 4) u2 (ref, index: 5) Players_upv_1 (copy, index: 6) attributes_upv_1 (copy, index: 7) u3 (copy, index: 8) Workspace_upv_1 (copy, index: 9) WeaponMath_upv_1 (copy, index: 10) ]] local state_1 = ViewState_upv_1.state local v4 = ((ActionService_upv_1.preferredInput() == "Touch") and true) or (UserInputService_upv_1.TouchEnabled and (not UserInputService_upv_1.KeyboardEnabled)) if v4 and state_1.weaponOut and not state_1.cursorFree and not state_1.sprinting and not state_1.rolling then local LocalPlayer_1 = Players_upv_1.LocalPlayer local Character_1 = LocalPlayer_1.Character if Character_1 then local Position_1 = a1.CFrame.Position local v5 = a1.ViewportSize local v6 = Vector2.new(v5.X * 0.5, v5.Y * 0.5) local v7 = math.min(v5.X, v5.Y) * 0.17 if not (v7 < 8) then local v8 = LocalPlayer_1:GetAttribute(attributes_upv_1.id) if type(v8) ~= "string" then v5 = "" else v5 = v8 end local v9 = 0 local v10 = nil local v11 = v9 local v12 = nil local v13 = nil for _, value_1 in Players_upv_1:GetPlayers() do if value_1 == LocalPlayer_1 then continue end if v5 == "" then v13 = value_1.Character if not (v13) then continue end local v14 = v13:FindFirstChildOfClass("Humanoid") local Head_1 = v13:FindFirstChild("Head") if not (v14) or v14.Health <= 0 or not (Head_1) then continue end local v15 = Head_1:IsA("BasePart") if not (v15) then continue end local Magnitude_1 = (Head_1.Position - Position_1).Magnitude if Magnitude_1 < 6 or Magnitude_1 > 90 then continue end local v16, v17 = a1:WorldToViewportPoint(Head_1.Position) if not (v17) or v16.Z <= 0 then continue end local Magnitude_2 = (Vector2.new(v16.X, v16.Y) - v6).Magnitude if v7 < Magnitude_2 then continue end local v18 = Head_1.Position - Position_1 if v18.Magnitude < 0.2 then v12 = true else u3.FilterDescendantsInstances = {Character_1, v13, a1} v12 = Workspace_upv_1:Raycast(Position_1, v18, u3) == nil end if not (v12) then continue end v13 = 1 - Magnitude_2 / v7 Magnitude_1 = v13 * v13 * (1 - math.clamp((Magnitude_1 - 18) / 72, 0, 1)) if v11 < Magnitude_1 then v10 = Head_1 end else local v19 = value_1:GetAttribute(attributes_upv_1.id) if type(v19) ~= "string" then v13 = "" else v13 = v19 end if v13 == v5 then continue end v13 = value_1.Character if not (v13) then continue end local v14 = v13:FindFirstChildOfClass("Humanoid") local Head_1 = v13:FindFirstChild("Head") if not (v14) or v14.Health <= 0 or not (Head_1) then continue end local v15 = Head_1:IsA("BasePart") if not (v15) then continue end local Magnitude_1 = (Head_1.Position - Position_1).Magnitude if Magnitude_1 < 6 or Magnitude_1 > 90 then continue end local v16, v17 = a1:WorldToViewportPoint(Head_1.Position) if not (v17) or v16.Z <= 0 then continue end local Magnitude_2 = (Vector2.new(v16.X, v16.Y) - v6).Magnitude if v7 < Magnitude_2 then continue end local v18 = Head_1.Position - Position_1 if v18.Magnitude < 0.2 then v12 = true else u3.FilterDescendantsInstances = {Character_1, v13, a1} v12 = Workspace_upv_1:Raycast(Position_1, v18, u3) == nil end if not (v12) then continue end v13 = 1 - Magnitude_2 / v7 Magnitude_1 = v13 * v13 * (1 - math.clamp((Magnitude_1 - 18) / 72, 0, 1)) if v11 < Magnitude_1 then v10 = Head_1 end end end if v10 and not (v11 <= 0) then local v20 = v10.Position - Position_1 if v20.Magnitude < 0.001 then u1 = nil u2 = 0 return nil else local Unit_1 = v20.Unit u1 = v10.Position u2 = v11 v10 = v11 * 4.3 + 1.5 local v21 = ((math.abs(state_1.recoilPitch) + math.abs(state_1.recoilYaw) > 0.008) and ((((state_1.aiming) and (v10 + 1.3)) or v10) + 2.6)) or v10 local tbl_2 = {} tbl_2.friction = (v11 * 0.34) + 0.18 tbl_2.magnetRate = v21 tbl_2.yaw = WeaponMath_upv_1.yawOf(Unit_1) tbl_2.pitch = math.asin(math.clamp(Unit_1.Y, -1, 1)) return tbl_2 end end end end end u1 = nil u2 = 0 return nil end function tbl_1.pull(a1, a2) --[[ name: pull line: 181 upvalues: u1 (ref, index: 1) u2 (ref, index: 2) ]] local v22 = u1 local v23 = u2 if v22 and not (v23 <= 0) then local v24 = v22 - a1 if v24.Magnitude < 0.001 then return a2 end local Unit_2 = v24.Unit local Unit_3 = a2.Unit local v25 = math.acos(math.clamp(Unit_3:Dot(Unit_2), -1, 1)) if v25 > 0.11344640137963143 then return a2 end return Unit_3:Lerp(Unit_2, ((1 - (v25 / 0.11344640137963143)) * 0.42) * v23).Unit end return a2 end return tbl_1