Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Players = game:GetService("Players")
- local Input = game:GetService("UserInputService")
- local LocalPlayer = Players.LocalPlayer
- local Mouse = LocalPlayer:GetMouse()
- local Camera = workspace.CurrentCamera
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local function GetWeaponTable()
- return ReplicatedStorage.GunModules:GetChildren()
- end
- local function GetWeaponNames()
- local names = { }
- for k, v in pairs(GetWeaponTable()) do
- names[tostring(v)] = tostring(v)
- end
- return names
- end
- local Type = {
- Number = 1,
- String = 2,
- Bool = 3,
- Angle = 4,
- CFrame = 5,
- Vector = 6,
- Enum = 7
- }
- local CurrentGun = ""
- local CurrentGunTable = { }
- local StatInfos = {
- name = { Name = "Name", Type = Type.String },
- --type = { Name = "Type", Type = Type.Enum, Enum = {"SNIPER", "DMR", "LMG", "PISTOL", "KNIFE", "ASSAULT", "REVOLVER", "SHOTGUN", "Grenade"} },
- description={ Name = "Description", Type = Type.String },
- zoom = { Name = "Zoom", Type = Type.Number, Min = 1, Max = 20 },
- magnifyspeed = { Name = "Zoom speed", Type = Type.Number, Min = 1, Max = 50 },
- firerate = { Name = "Firerate", Type = Type.Number, Min = 1, Max = 2000 },
- walkspeed = { Name = "Walk speed", Type = Type.Number, Min = 1, Max = 32 },
- sprintspeed={ Name = "Sprint speed", Type = Type.Number, Min = 1, Max = 32 },
- swayspeed = { Name = "Sway speed", Type = Type.Number, Min = 0, Max = 5},
- swayamp = { Name = "Sway amplifier", Type = Type.Number, Min = 0, Max = 50},
- firevolume ={ Name = "Fire sound volume", Type = Type.Number, Min = 0, Max = 5},
- firepitch = { Name = "Fire sound pitch", Type = Type.Number, Min = 0, Max = 5},
- suppression={ Name = "Suppression", Type = Type.Number, Min = 0, Max = 1},
- chamber = { Name = "Additional chamber bullet", Type = Type.Bool},
- magsize = { Name = "Magazine size", Type = Type.Number, Min = 1, Max = 360},
- sparerounds={ Name = "Spare rounds", Type = Type.Number, Min = 1, Max = 360},
- crosssize = { Name = "Crosshair size", Type = Type.Number, Min = 0, Max = 100},
- crossexpansion = { Name = "Crosshair expansion", Type = Type.Number, Min = 0, Max = 1000},
- crossspeed ={ Name = "Crosshair recover speed", Type = Type.Number, Min = 0, Max = 100},
- crossdamper={ Name = "Crosshair recover damper", Type = Type.Number, Min = 0, Max = 1},
- hipfirespread = { Name = "Hipfire spread", Type = Type.Number, Min = 0, Max = 1},
- hipfirestability = { Name = "Hipfire stability", Type = Type.Number, Min = 0, Max = 1},
- hipfirespreadrecover = { Name = "Hipfire spread recover", Type = Type.Number, Min = 1, Max = 100},
- camkickspeed = { Name = "Camera kick speed", Type = Type.Number, Min = 0, Max = 100},
- aimcamkickspeed = { Name = "Aim camera kick speed", Type = Type.Number, Min = 0, Max = 100},
- aimkickmult = { Name = "Aim camera kick multiplicator", Type = Type.Number, Min = 0, Max = 1},
- aimwalkspeedmult = { Name = "Aim camera walk speed multiplicator", Type = Type.Number, Min = 0, Max = 3},
- aimspeed = { Name = "Aim speed", Type = Type.Number, Min = 0, Max = 100},
- cameraspeed = { Name = "Camera speed", Type = Type.Number, Min = 0, Max = 100},
- modelkickspeed = { Name = "Model kick speed", Type = Type.Number, Min = 0, Max = 100},
- modelrecoverspeed = { Name = "Model kick recover speed", Type = Type.Number, Min = 0, Max = 100},
- modelkickdamper = { Name = "Model kick recover speed", Type = Type.Number, Min = 0, Max = 1},
- aimzdist = { Name = "Scope size", Type = Type.Number, Min = 0, Max = 10},
- bolttime = { Name = "Bolting time", Type = Type.Number, Min = 0, Max = 5},
- equipspeed ={ Name = "Equip speed", Type = Type.Number, Min = 0, Max = 100},
- rotkickmin ={ Name = "Minimum recoil rotation", Type = Type.Vector},
- rotkickmax ={ Name = "Maximum recoil rotation", Type = Type.Vector},
- transkickmin = { Name = "Minimum recoil displacement", Type = Type.Vector},
- transkickmax = { Name = "Maximum recoil displacement", Type = Type.Vector},
- camkickmin ={ Name = "Minimum camera kick", Type = Type.Vector},
- camkickmax ={ Name = "Maximum camera kick", Type = Type.Vector},
- aimrotkickmin = { Name = "Minimum aim recoil rotation", Type = Type.Vector},
- aimrotkickmax = { Name = "Maximum aim recoil rotation", Type = Type.Vector},
- aimtranskickmin = { Name = "Minimum aim recoil displacement", Type = Type.Vector},
- aimtranskickmax = { Name = "Maximum aim recoil displacement", Type = Type.Vector},
- aimcamkickmin = { Name = "Minimum aim camera kick", Type = Type.Vector},
- aimcamkickmax = { Name = "Maximum aim camera kick", Type = Type.Vector},
- }
- getgenv().StatControls = { }
- local StatControls = getgenv().StatControls
- function InitUI()
- local library = loadstring(game:HttpGet("https://pastebin.com/raw/qwdPKKDN"))()
- _G.ui = library.new("AOSHax Phantom Forces v0.2.8")
- local AimbotPage = _G.ui:addPage("Aimbot", 2772096931)
- local ESPPage = _G.ui:addPage("ESP", 2772096931)
- local GunPage = _G.ui:addPage("Gun mods", 2772096931)
- local OtherPage = _G.ui:addPage("Other", 2772096931)
- _G.gunsect = GunPage:addSection("Weapon mods")
- _G.gunsect:addDropdown("Weapon", GetWeaponNames(), function(text)
- spawn(function()
- CurrentGun = text
- CurrentGunTable = require(ReplicatedStorage.GunModules:FindFirstChild(text))
- UpdateControls()
- end)
- end)
- _G.AimbotSettings = { Enabled = false, FOV = 30, AimPart = "Head", Autofire = false, Smooth = 0 }
- local AimbotSettings = _G.AimbotSettings
- local AimbotSection = AimbotPage:addSection("Aimbot")
- AimbotSection:addToggle("Enabled", AimbotSettings.Enabled, function(bool) AimbotSettings.Enabled = bool end)
- AimbotSection:addSlider("FOV", AimbotSettings.FOV, 0, 180, function(int) AimbotSettings.FOV = int end)
- AimbotSection:addSlider("Smoothing", AimbotSettings.Smooth, 0, 100, function(int) AimbotSettings.Smooth = int end)
- AimbotSection:addDropdown("Aim Bone", { "Head", "Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg" }, function(str) AimbotSettings.AimPart = str end)
- AimbotSection:addToggle("Autofire", AimbotSettings.Autofire, function(bool) AimbotSettings.Autofire = bool end)
- _G.KnifeAuraSettings = { Enabled = false, Distance = 25, Cooldown = 0, ForceBackstab = false, Headshots = false }
- local KnifeAuraSettings = _G.KnifeAuraSettings
- local KnifeSection = AimbotPage:addSection("Knife Aura")
- KnifeSection:addToggle("Enabled", KnifeAuraSettings.Enabled, function(bool) KnifeAuraSettings.Enabled = bool end)
- KnifeSection:addSlider("Distance", KnifeAuraSettings.Distance, 1, 25, function(int) KnifeAuraSettings.Distance = int end)
- KnifeSection:addSlider("Cooldown", KnifeAuraSettings.Cooldown, 0, 10, function(int) KnifeAuraSettings.Cooldown = int end)
- KnifeSection:addToggle("Headshots", KnifeAuraSettings.Headshots, function(bool) KnifeAuraSettings.Headshots = bool end)
- _G.ESPSettings = { Enabled = false, Chams = { Enabled = false, ViewportFrame } }
- local ESPSettings = _G.ESPSettings
- local GUI = Instance.new("ScreenGui", game:GetService("CoreGui"))
- GUI.IgnoreGuiInset = true
- local ViewportFrame = Instance.new("ViewportFrame", GUI)
- ViewportFrame.Size = UDim2.new(1, 0, 1, 0)
- ViewportFrame.CurrentCamera = workspace.CurrentCamera
- ViewportFrame.BackgroundTransparency = 1
- ViewportFrame.ImageTransparency = 0.25
- ViewportFrame.ImageColor3 = Color3.new(1, 1, 1)
- ESPSettings.Chams.ViewportFrame = ViewportFrame
- local ChamsSection = ESPPage:addSection("Chams")
- ChamsSection:addToggle("Enabled", ESPSettings.Chams.Enabled, function(bool) ESPSettings.Chams.Enabled = bool end)
- ChamsSection:addColorPicker("Color", ESPSettings.Chams.ViewportFrame.ImageColor3, function(color) ESPSettings.Chams.ViewportFrame.ImageColor3 = color end)
- ChamsSection:addSlider("Transparency", ESPSettings.Chams.ViewportFrame.ImageTransparency * 100, 0, 100, function(number) ESPSettings.Chams.ViewportFrame.ImageTransparency = number / 100 end)
- _G.OtherSettings = { ThirdSlot = false, SpotAll = false, FragAura = false, DespawnOnDanger = false, DespawnHealth = 15 }
- local OtherSettings = _G.OtherSettings
- local OtherSection = OtherPage:addSection("Other")
- OtherSection:addToggle("Third weapon slot for dropped weapons", OtherSettings.ThirdSlot, function(bool) OtherSettings.ThirdSlot = bool end)
- OtherSection:addToggle("Spot everyone", OtherSettings.SpotAll, function(bool) OtherSettings.SpotAll = bool end)
- OtherSection:addToggle("Frag aura", OtherSettings.FragAura, function(bool) OtherSettings.FragAura = bool end)
- OtherSection:addToggle("Despawn on danger", OtherSettings.DespawnOnDanger, function(bool) OtherSettings.DespawnOnDanger = bool end)
- OtherSection:addSlider("Danger health", OtherSettings.DespawnHealth, 1, 100, function(number) OtherSettings.DespawnHealth = number end)
- OtherSection:addKeybind("Menu Keybind", Enum.KeyCode.P, function()
- _G.ui:toggle()
- end)
- end
- local OtherSettings
- local ESPSettings
- local KnifeAuraSettings
- local AimbotSettings
- local ui
- local GunSection
- CurrentGun = "AK12"
- CurrentGunTable = require(ReplicatedStorage.GunModules.AK12)
- function CreateVectorControl(id, name, vec)
- local tbl = { }
- tbl[1] = GunSection:addSlider(name.." X", vec.X, 0, 5, function(val)
- vec.X = val
- end)
- tbl[2] = GunSection:addSlider(name.." Y", vec.Y, 0, 5, function(val)
- vec.Y = val
- end)
- tbl[3] = GunSection:addSlider(name.." Z", vec.Z, 0, 5, function(val)
- vec.Z = val
- end)
- StatControls[id] = tbl
- end
- function UpdateVectorControl(tbl, name, vec)
- GunSection:updateSlider(tbl[1], name.." X", vec.X, 0, 5)
- GunSection:updateSlider(tbl[2], name.." Y", vec.Y, 0, 5)
- GunSection:updateSlider(tbl[3], name.." Z", vec.Z, 0, 5)
- end
- function UpdateControls()
- for k,v in pairs(StatInfos) do
- if v.Type == Type.Number then
- if StatControls[k] == nil then
- StatControls[k] = GunSection:addSlider(v.Name, tonumber(CurrentGunTable[k]) or 0, v.Min, v.Max, function(val)
- CurrentGunTable[k] = val
- end)
- else
- GunSection:updateSlider(StatControls[k], v.Name, tonumber(CurrentGunTable[k]) or 0, v.Min, v.Max)
- end
- elseif v.Type == Type.String then
- if StatControls[k] == nil then
- StatControls[k] = GunSection:addTextbox(v.Name, CurrentGunTable[k] or "", function(val)
- CurrentGunTable[k] = val
- end)
- else
- GunSection:updateTextbox(StatControls[k], v.Name, CurrentGunTable[k] or "")
- end
- elseif v.Type == Type.Bool then
- if StatControls[k] == nil then
- StatControls[k] = GunSection:addToggle(v.Name, CurrentGunTable[k] or false, function(val)
- CurrentGunTable[k] = val
- end)
- else
- GunSection:updateToggle(StatControls[k], v.Name, CurrentGunTable[k] or false)
- end
- elseif v.Type == Type.Enum then
- if StatControls[k] == nil then
- StatControls[k] = GunSection:addDropdown(v.Name, v.Enum, function(val)
- CurrentGunTable[k] = val
- end)
- else
- GunSection:updateDropdown(StatControls[k], v.Name, v.Enum, function(val)
- CurrentGunTable[k] = val
- end)
- end
- --[[elseif v.Type == Type.Vector then
- if StatControls[k] == nil then
- StatControls[k] = CreateVectorControl(k, v.Name, CurrentGunTable[k] or Vector3.new())
- else
- UpdateVectorControl(StatControls[k], v.Name, CurrentGunTable[k] or Vector3.new())
- end]]--
- end
- end
- end
- function InvertTable(t)
- local s = { }
- for k,v in pairs(t) do
- s[v] = k
- end
- return s
- end
- local function FindModule(fingerprints)
- local found = nil
- for k,gco in pairs(getgc()) do
- if type(gco) == "function" then
- for i,v in pairs(getupvalues(gco)) do
- if type(v) == "table" then
- local valid = true
- if type(fingerprints) == "table" then
- for fk, fv in pairs(fingerprints) do
- if rawget(v, fv) == nil then valid = false end
- end
- elseif type(fingerprints) == "string" then
- if rawget(v, fingerprints) == nil then valid = false end
- else
- error("Invalid fingerprints!")
- valid = false
- end
- if valid then found = v end
- end
- end
- end
- end
- if found == nil then
- error("Could not find this module!")
- else
- return found
- end
- end
- local Modules = { }
- local PFTables = { }
- Modules.ModuleCache = FindModule("_cache")
- Modules.RagdollOwnerFinder = FindModule({"getplayerhit", "removecharacterhash"})
- do
- local function GetCachedModule(name)
- if Modules.ModuleCache._cache[name] == nil then
- error("Module ".. name .." is not cached!")
- end
- return Modules.ModuleCache._cache[name].module
- end
- Modules.Character = GetCachedModule("char")
- Modules.Hud = GetCachedModule("hud")
- Modules.Physics = GetCachedModule("physics")
- Modules.Effects = GetCachedModule("effects")
- Modules.Network = GetCachedModule("network")
- Modules.Camera = GetCachedModule("camera")
- Modules.Vector = GetCachedModule("vector")
- Modules.CFrame = GetCachedModule("cframe")
- Modules.Replication = GetCachedModule("replication")
- end
- function GetBulletDrop(pos)
- local offset = Vector3.new()
- local acceleration = Vector3.new(0, -196.2, 0)
- return Modules.Physics.trajectory(workspace.CurrentCamera.CFrame.p,
- offset,
- acceleration,
- pos,
- offset,
- offset,
- PFTables.WeaponInfo.currentgun.data.bulletspeed)
- end
- function SetCameraLookVector(ang, p38, p39)
- local v1 = Modules.Camera
- if p38 and p39 then
- local v31 = math.cos(tick());
- local v32 = math.sin(tick());
- p38 = v31 * p38 - v32 * p39;
- p39 = v32 * p38 + v31 * p39;
- end;
- local v33, v34 = Modules.Vector.toanglesyx(ang);
- local v35 = v33 + (p38 or 0);
- local l__y__36 = v1.angles.y;
- local v37 = Vector3.new(
- v1.maxangle < v35
- and v1.maxangle
- or (v35 < v1.minangle and v1.minangle or v35),
- (v34 + (p39 or 0)
- + math.pi - l__y__36)
- % (2 * math.pi)
- - math.pi + l__y__36, 0);
- v1.delta = Vector3.new() -- (v37 - v1.angles) / 0.016666666666666666;
- v1.angles = v37;
- end;
- PFTables.WeaponInfo = debug.getupvalue(Modules.Character.setsprint, 1)
- function GetCurWeaponModel()
- for k,v in pairs(workspace.CurrentCamera:GetChildren()) do
- if tostring(v) ~= "Left Arm" and tostring(v) ~= "Right Arm" then
- return v
- end
- end
- return nil
- end
- PFTables.RagdollOwners = debug.getupvalue(Modules.RagdollOwnerFinder.getplayerhit, 1)
- function CamAngleTo(Position)
- local cam = workspace.CurrentCamera
- local dVec = (Position - cam.CFrame.p).unit
- return math.deg(math.acos(cam.CFrame.LookVector:Dot(dVec)))
- end
- function CamAngleToPart(part)
- return CamAngleTo(part.CFrame.p)
- end
- function GetWindows()
- local wnd = { }
- for k,v in pairs(game:GetService("Workspace").Map:GetChildren()) do
- if v.Name == "Window" then table.insert(wnd, v) end
- end
- return wnd
- end
- function CanSeeOrPenetrate(Part, owner)
- local cam = workspace.CurrentCamera
- local Ray = Ray.new(cam.CFrame.p, (Part.Position - cam.CFrame.p) * 1.1)
- local Ignore = {LocalPlayer, cam, GetCurWeaponModel(), game:GetService("Workspace").Ignore}
- local part = workspace:FindPartOnRayWithIgnoreList(Ray,Ignore)
- if part == Part then
- return true
- elseif owner ~= nil and part ~= nil and part:IsDescendantOf(owner) then
- return true
- end
- return false
- end
- local CachedPositions = { }
- local wasShootingLastFrame = false
- getgenv().AimbotLogic = function(ft)
- if PFTables.WeaponInfo.currentgun == nil or PFTables.WeaponInfo.currentgun.shoot == nil then return end
- if wasShootingLastFrame then
- PFTables.WeaponInfo.currentgun:shoot(false)
- wasShootingLastFrame = false
- end
- if not AimbotSettings.Enabled then
- return
- end
- local aimpart = AimbotSettings.AimPart
- for _,v in pairs(Input:GetMouseButtonsPressed()) do
- if v.UserInputType == Enum.UserInputType.MouseButton2 then
- if PFTables.WeaponInfo.currentgun == nil then
- break
- end
- local function FindNearestPlayer(fov, aimpart)
- local nearest, bestdist = nil, fov
- for k, v in pairs(PFTables.RagdollOwners) do
- if v ~= LocalPlayer
- and v.Team ~= LocalPlayer.Team
- and k:FindFirstChild(aimpart) ~= nil
- then
- local part = k:FindFirstChild(aimpart)
- if part ~= nil
- and (workspace.CurrentCamera.CFrame.Position - part.Position).magnitude < 5000
- and CanSeeOrPenetrate(part, k) then
- local dist = CamAngleToPart(part)
- if dist < bestdist or fov == 0 then
- bestdist = dist
- nearest = k
- end
- end
- end
- end
- return nearest
- end
- local nearest = FindNearestPlayer(AimbotSettings.FOV, aimpart)
- if nearest == nil then break end
- local bone = nearest:FindFirstChild(aimpart)
- if bone == nil then break end
- local vel = Vector3.new(0, 0, 0)
- if CachedPositions[nearest] ~= nil then
- vel = (CachedPositions[nearest].pos - nearest:FindFirstChild("Torso").Position) / (CachedPositions[nearest].time - tick()) -- So somehow... Its a directional vector.
- end
- local weapon = GetCurWeaponModel()
- local shootPart = weapon[
- PFTables.WeaponInfo.currentgun.isaiming()
- and PFTables.WeaponInfo.currentgun.data.sightpart
- or PFTables.WeaponInfo.currentgun.data.barrel
- ]
- local traveltime = (bone.Position - workspace.CurrentCamera.CFrame.p).magnitude / PFTables.WeaponInfo.currentgun.data.bulletspeed
- local bulletdrop = GetBulletDrop(bone.Position)
- local v3aimpos = bone.Position + bulletdrop
- local aimdir =
- (
- v3aimpos
- - workspace.CurrentCamera.CFrame.p
- + vel
- - CFrame.new(workspace.CurrentCamera.CFrame.p, workspace.CurrentCamera.CFrame.p - shootPart.CFrame.p).LookVector
- ).unit
- local fullaimdir = aimdir + (workspace.CurrentCamera.CFrame.LookVector
- - shootPart.CFrame.LookVector)
- if AimbotSettings.Smooth == 0 then
- SetCameraLookVector(fullaimdir)
- else
- local orgAngles = Modules.Camera.angles
- SetCameraLookVector(Modules.Vector.anglesyx(orgAngles.x, orgAngles.y):Lerp(fullaimdir, AimbotSettings.Smooth / 100 * ft))
- end
- local cam = Modules.Camera
- cam.swayspring.d = math.huge
- cam.swayspeed.d = math.huge
- cam.swayspring.d = math.huge
- cam.shakespring.d = math.huge
- if AimbotSettings.Autofire then
- PFTables.WeaponInfo.currentgun:shoot(true)
- wasShootingLastFrame = true
- end
- break
- end
- end
- for k, v in pairs(PFTables.RagdollOwners) do
- if v ~= LocalPlayer
- and v.Team ~= LocalPlayer.Team
- and k:FindFirstChild("Torso") ~= nil
- then
- CachedPositions[k] = { pos = k:FindFirstChild("Torso").Position, time = tick() }
- end
- end
- end
- function SyncCFrames(src, dst)
- for PartName, Part in pairs(src:GetChildren()) do
- local ClonePart = dst:FindFirstChild(Part.Name)
- if ClonePart ~= nil then
- if (Part:IsA("Part") or Part:IsA("MeshPart")) then
- ClonePart.CFrame = Part.CFrame
- end
- SyncCFrames(Part, ClonePart)
- end
- end
- end
- local RagdollChamsModels = { }
- _G.UpdateChams = function()
- local Players = PFTables.RagdollOwners
- local Ragdolls = InvertTable(PFTables.RagdollOwners)
- for m, cm in pairs(RagdollChamsModels) do
- if Players[m] == nil or not ESPSettings.Chams.Enabled then
- RagdollChamsModels[m]:Remove()
- RagdollChamsModels[m] = nil
- end
- end
- if ESPSettings.Chams.Enabled then
- for ply, ragdoll in pairs(Ragdolls) do
- if RagdollChamsModels[ragdoll] == nil then
- ragdoll.Archivable = true
- local Clone = ragdoll:Clone()
- if Clone ~= nil then
- Clone.Parent = ESPSettings.Chams.ViewportFrame
- RagdollChamsModels[ragdoll] = Clone
- end
- end
- if RagdollChamsModels[ragdoll] ~= nil then
- SyncCFrames(ragdoll, RagdollChamsModels[ragdoll])
- end
- end
- end
- end
- local auraCD = 0
- _G.KnifeAuraLogic = function(ft)
- auraCD = math.clamp(auraCD - ft, 0, KnifeAuraSettings.Cooldown)
- if not KnifeAuraSettings.Enabled or auraCD > 0 then return end
- local bestdist = KnifeAuraSettings.Distance
- local bestply, bestrag
- for ply, ragdoll in pairs(InvertTable(PFTables.RagdollOwners)) do
- if ply.Team ~= LocalPlayer.Team then
- local root = ragdoll:FindFirstChild('HumanoidRootPart')
- if root ~= nil then
- local dist = (workspace.CurrentCamera.CFrame.p - root.CFrame.p).magnitude
- if bestdist > dist then
- bestdist = dist
- bestply = ply
- bestrag = ragdoll
- end
- end
- end
- end
- if bestply ~= nil then
- Modules.Network:send("knifehit", bestply, tick(),
- KnifeAuraSettings.Headshots
- and bestrag.Head
- or bestrag.HumanoidRootPart)
- auraCD = KnifeAuraSettings.Cooldown
- Modules.Hud:firehitmarker(KnifeAuraSettings.Headshots)
- end
- end
- local spotCD = 0
- _G.SpotAll = function(ft)
- stopCD = math.clamp(spotCD - ft, 0, 1)
- if not OtherSettings.SpotAll or spotCD > 0 then return end
- local players = { }
- for ply, ragdoll in pairs(InvertTable(PFTables.RagdollOwners)) do
- if ply.Team ~= LocalPlayer.Team then
- table.insert(players, ply)
- end
- end
- if #players > 0 then
- Modules.Network:send("spotplayers", players)
- spotCD = 1
- end
- end
- _G.DespawnOnDanger = function()
- if not OtherSettings.DespawnOnDanger or Modules.Character.health == 0 then return end
- if Modules.Character.health < OtherSettings.DespawnHealth then
- Modules.Character:despawn()
- end
- end
- _G.FragAura = function(orgt)
- if not OtherSettings.FragAura then return orgt end
- local bestdist = 25
- local bestply, bestrag
- for ply, ragdoll in pairs(InvertTable(PFTables.RagdollOwners)) do
- if ply.Team ~= LocalPlayer.Team then
- local root = ragdoll:FindFirstChild('HumanoidRootPart')
- if root ~= nil then
- local dist = (workspace.CurrentCamera.CFrame.p - root.CFrame.p).magnitude
- if bestdist < dist then
- bestdist = dist
- bestply = ply
- bestrag = ragdoll
- end
- end
- end
- end
- if bestply == nil then return orgt end
- local tbl = {
- curi = 1,
- time = tick(),
- blowuptime = 0,
- frames = {
- {
- t0 = 0,
- p0 = bestrag.Head.CFrame.p,
- v0 = Vector3.new(0, -1, 0),
- offset = Vector3.new(),
- a = Vector3.new(),
- rot0 = CFrame.new(workspace.CurrentCamera.CFrame.p, Vector3.new(0, -1, 0)),
- rotv = Vector3.new(0, -1, 0),
- glassbreaks = {}
- }
- }
- };
- return tbl
- end
- if getgenv().AOSRUN == nil then
- InitUI()
- end
- GunSection = _G.gunsect
- ui = _G.ui
- AimbotSettings = _G.AimbotSettings
- ESPSettings = _G.ESPSettings
- OtherSettings = _G.OtherSettings
- KnifeAuraSettings = _G.KnifeAuraSettings
- if getgenv().AOSRUN == nil then
- UpdateControls()
- game:GetService("RunService").RenderStepped:Connect(function(ft)
- getgenv().AimbotLogic(ft)
- _G.KnifeAuraLogic(ft)
- _G.SpotAll(ft)
- _G.DespawnOnDanger()
- _G.UpdateChams()
- end)
- _G.orgsend = hookfunction(Modules.Network.send, function(net, name, ...)
- if OtherSettings.ThirdSlot and name == "swapgun" then
- local tbl = {...}
- if tostring(tbl[1]) == "Dropped" then
- tbl[2] = 3
- return _G.orgsend(net, name, unpack(tbl))
- end
- end
- if OtherSettings.FragAura and name == "newgrenade" then
- local tbl = {...}
- tbl[2] = _G.FragAura(tbl[2])
- return _G.orgsend(net, name, unpack(tbl))
- end
- return _G.orgsend(net, name, ...)
- end)
- end
- getgenv().AOSRUN = true
- ui:SelectPage(ui.pages[1], true)
Add Comment
Please, Sign In to add comment