Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Project-Phantom v1.0.0
- IF YOUR SCREEN SHAKES WHEN YOU AIM LOCK ON SOMEONE, INCREASE THE SMOOTHNESS!
- IF YOUR SCREEN SHAKES WHEN YOU AIM LOCK ON SOMEONE, INCREASE THE SMOOTHNESS!
- IF YOUR SCREEN SHAKES WHEN YOU AIM LOCK ON SOMEONE, INCREASE THE SMOOTHNESS!
- IF YOUR SCREEN SHAKES WHEN YOU AIM LOCK ON SOMEONE, INCREASE THE SMOOTHNESS!
- IF YOUR SCREEN SHAKES WHEN YOU AIM LOCK ON SOMEONE, INCREASE THE SMOOTHNESS!
- IF YOUR SCREEN SHAKES WHEN YOU AIM LOCK ON SOMEONE, INCREASE THE SMOOTHNESS!
- IF YOUR SCREEN SHAKES WHEN YOU AIM LOCK ON SOMEONE, INCREASE THE SMOOTHNESS!
- This is a open source project made by PotatoScripts development team, we will be updating this regularly.
- So check the loadstring for new updates.
- After Phantom Forces did some clever anti cheat that makes player.Character return nil, they patched regular Project-P.
- So I bring you this Phantom Forces Exclusive Project-"Phantom" that works just as well as it use to :)
- Also bullet drop and bullet prediction is inverted, less = more lol. You need some skills to setup the aimbot correctly for each game/gun.
- But I do asure you that with the right settings this aimbot is will hit 9/10 shots.
- READ THIS
- A lot of the comments are wrong right now because I've made a lot of changes so keep that in mind,
- I will be rewriting all the comments in the next update or so.
- Changelogs:
- ! Fixed aimbot on Phantom Forces.
- ! Cleaned up some code.
- Note:
- hi =)
- ]]--
- --Decent settings for Phantom Forces
- _G.Settings = {
- AimEnable = true,
- AimAutoShoot = false, --not working (removed the part that do this cuz it wasn't good enough)
- AimTeamCheck = true,
- AimSmoothness = 3.75, --IF YOUR SCREEN SHAKES WHEN YOU AIM LOCK ON SOMEONE, INCREASE THE SMOOTHNESS!
- AimFOV = 5,
- AimDrawFOV = true,
- AimWallCheck = false, --not working (removed the part that do this cuz it wasn't good enough)
- AimBulletDrop = 145,
- AimAimKey = Enum.UserInputType.MouseButton2,
- AimBulletPrediction = 2,
- --AimHitBox = "Head" -- /"HumanoidRootPart"/"Right Leg"/"Left Leg"/"Right Arm"/"Left Arm"/"Torso"/"Head"/
- }
- --Variables.
- local userIS = game:GetService("UserInputService")
- local Camera = game:GetService('Workspace').Camera
- local Players = game:GetService("Players")
- local LocalPlayer = Players.LocalPlayer
- local Mouse = game:GetService("Players").LocalPlayer:GetMouse()
- local IsKeyDown = false
- local module = {};
- local drawings = {};
- local MenuPos = Vector2.new(0, 0)
- --Functions.
- function module:DrawNew(name,type,props)
- drawings[name] = Drawing.new(type)
- for i,v in pairs(props) do
- drawings[name][i] = v
- end
- return drawings[name]
- end
- function DrawText(name,text,size,color,position)
- module:DrawNew(name,"Text",{
- Text = text,
- Size = size,
- Color = color,
- Position = position + MenuPos,
- Visible = true
- });
- end
- function isVisible(character)
- local Ray = Ray.new(Camera.CFrame.p, (character.Head.Position - Camera.CFrame.p).unit * 2048)
- local part = workspace:FindPartOnRayWithIgnoreList(Ray, {LocalPlayer.Character})
- if part:IsDescendantOf(character) then return true else return false end
- end
- function Calculate(distance)
- return (1.01*math.pow(distance,4)+0.002*math.pow(distance,3)-0.07*math.pow(distance,2)+0.8*distance-2.05)
- end
- function WorldToScreen(Position)
- return Camera:WorldToViewportPoint(Position)
- end
- function IsOnScreen(part)
- local vector, onscreen = WorldToScreen(part.Position)
- return (vector.Z > 0)
- end
- function IsInFov(part)
- if part then
- if IsOnScreen(part) then
- local pos = WorldToScreen(part.Position)
- local dist = (Vector2.new(Mouse.X, Mouse.Y) - Vector2.new(pos.X, pos.Y)).magnitude
- if dist <= workspace.CurrentCamera.ViewportSize.X / (90 / _G.Settings.AimFOV) and dist < math.huge then return true end
- end
- end
- end
- function MyTeam()
- if "Bright blue" == tostring(game.Players.LocalPlayer.TeamColor) then return "Phantoms" else return "Ghosts" end
- end
- function GetClosestPhantom()
- local TargetDistance = math.huge
- local Target = nil
- for i, v in pairs(game.Workspace.Players:GetDescendants()) do
- if v.Name == "Player" and v:FindFirstChild('HumanoidRootPart') then
- local TargetScreenPos = WorldToScreen(v.HumanoidRootPart.Position)
- local mag = (Vector2.new(TargetScreenPos.X, TargetScreenPos.Y) - Vector2.new(userIS:GetMouseLocation().X, userIS:GetMouseLocation().Y)).magnitude
- --local mag = (TargetScreenPos - userIS:GetMouseLocation()).magnitude
- if IsInFov(v:FindFirstChild("Head")) then
- if _G.Settings.AimTeamCheck then
- if v.Parent.Name ~= MyTeam() then
- if mag < TargetDistance then
- TargetDistance = mag
- Target = v
- end
- end
- elseif mag < TargetDistance then
- TargetDistance = mag
- Target = v
- end
- end
- end
- end
- return Target
- end
- userIS.InputBegan:Connect(function(Input)
- if Input.UserInputType == _G.Settings.AimAimKey and _G.Settings.AimEnable then
- IsKeyDown = true
- end
- end)
- userIS.InputEnded:Connect(function(Input)
- if Input.UserInputType == _G.Settings.AimAimKey then
- IsKeyDown = false
- end
- end)
- local target = nil
- local function aimbot()
- target = GetClosestPhantom()
- if target ~= nil then
- local BulletPrediction = target.HumanoidRootPart.Velocity * (game:GetService('Players').LocalPlayer.Character.HumanoidRootPart.Position - target.HumanoidRootPart.Position).magnitude / 1200 / _G.Settings.AimBulletPrediction
- local aimAt, visible = WorldToScreen(target.Head.Position + Vector3.new(0,Calculate((game:GetService('Players').LocalPlayer.Character.HumanoidRootPart.Position - target.HumanoidRootPart.Position).magnitude / _G.Settings.AimBulletDrop) / _G.Settings.AimBulletDrop,0) + BulletPrediction)
- mousemoverel((aimAt.X - userIS:GetMouseLocation().X) / _G.Settings.AimSmoothness, (aimAt.Y - userIS:GetMouseLocation().Y) / _G.Settings.AimSmoothness)
- print(target:GetFullName())
- end
- end
- --FOV Circle.
- module:DrawNew("Circle","Circle",{
- Transparency = 1,
- Thickness = 1.5,
- NumSides = 16,
- Filled = false,
- Color = Color3.fromRGB(255,0,0),
- Visible = false
- });
- game:GetService("RunService").RenderStepped:connect(function()
- if IsKeyDown then
- aimbot()
- end
- drawings.Circle.Position = userIS:GetMouseLocation()
- end)
- --Disable Arrow keys.
- local ContextActionService = game:GetService("ContextActionService")
- ContextActionService:BindActionAtPriority("DisableArrowKeys", function()
- return Enum.ContextActionResult.Sink
- end, false, Enum.ContextActionPriority.High.Value, Enum.KeyCode.Up, Enum.KeyCode.Down, Enum.KeyCode.Left, Enum.KeyCode.Right)
- --Menu background.
- module:DrawNew("MenuBackground","Square",{
- Transparency = 0.3,
- Size = Vector2.new(215, 235),
- Color = Color3.fromRGB(40,40,40),
- Position = Vector2.new(15, 317) + MenuPos,
- Thickness = 0,
- Filled = true,
- Visible = true
- });
- --CreditsText
- DrawText("CreditsText","Project-P by PotatoScripts development team",16,Color3.fromRGB(255,255,255),Vector2.new(215, 5))
- --Aimbot title.
- DrawText("AimTitle","Aim assist",24,Color3.fromRGB(255,255,255),Vector2.new(30, 320))
- --Aimbot Enable.
- DrawText("AimEnable","Enable:",24,Color3.fromRGB(255,255,255),Vector2.new(45, 345))
- DrawText("AimEnableValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(103, 345))
- --Aimbot Auto shoot.
- DrawText("AimAutoShoot","Auto shoot:",24,Color3.fromRGB(155,155,155),Vector2.new(45, 365))
- DrawText("AimAutoShootValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(134, 365))
- --Aimbot Team check.
- DrawText("AimTeamCheck","Team check:",24,Color3.fromRGB(255,255,255),Vector2.new(45, 385))
- DrawText("AimTeamCheckValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(141, 385))
- --Aimbot Smoothness.
- DrawText("AimSmoothness","Smoothness:",24,Color3.fromRGB(255,255,255),Vector2.new(45, 405))
- DrawText("AimSmoothnessValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(141, 405))
- --Aimbot FOV.
- DrawText("AimFOV","FOV:",24,Color3.fromRGB(255,255,255),Vector2.new(45, 425))
- DrawText("AimFOVValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(81, 425))
- --Aimbot DrawFOV.
- DrawText("AimDrawFOV","Draw FOV:",24,Color3.fromRGB(255,255,255),Vector2.new(45, 445))
- DrawText("AimDrawFOVValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(127, 445))
- --Aimbot WallCheck.
- DrawText("AimWallCheck","Wall check:",24,Color3.fromRGB(155,155,155),Vector2.new(45, 465))
- DrawText("AimWallCheckValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(133, 465))
- --Aimbot BulletDrop.
- DrawText("AimBulletDrop","Bullet Drop:",24,Color3.fromRGB(255,255,255),Vector2.new(45, 485))
- DrawText("AimBulletDropValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(136, 485))
- --Aimbot AimKey.
- DrawText("AimAimKey","Aim key:",24,Color3.fromRGB(255,255,255),Vector2.new(45, 505))
- DrawText("AimAimKeyValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(112, 505))
- --Aimbot AimKey.
- DrawText("AimBulletPrediction","Bullet Prediction:",24,Color3.fromRGB(255,255,255),Vector2.new(45, 525))
- DrawText("AimBulletPredictionValue",nil,24,Color3.fromRGB(255,255,255),Vector2.new(176, 525))
- --Arrow Marker.
- DrawText("SelectedText",">",24,Color3.fromRGB(255,0,0),Vector2.new(30, 345))
- --Okay here the code starts to get messy again.
- spawn(function()
- while wait() do
- if _G.Settings.AimEnable then
- drawings.AimEnableValue.Color = Color3.fromRGB(0,255,0)
- drawings.AimEnableValue.Text = "true"
- else
- drawings.AimEnableValue.Color = Color3.fromRGB(255,0,0)
- drawings.AimEnableValue.Text = "false"
- end
- if _G.Settings.AimAutoShoot then
- drawings.AimAutoShootValue.Color = Color3.fromRGB(0,255,0)
- drawings.AimAutoShootValue.Text = "true"
- else
- drawings.AimAutoShootValue.Color = Color3.fromRGB(255,0,0)
- drawings.AimAutoShootValue.Text = "false"
- end
- if _G.Settings.AimTeamCheck then
- drawings.AimTeamCheckValue.Color = Color3.fromRGB(0,255,0)
- drawings.AimTeamCheckValue.Text = "true"
- else
- drawings.AimTeamCheckValue.Color = Color3.fromRGB(255,0,0)
- drawings.AimTeamCheckValue.Text = "false"
- end
- drawings.AimFOVValue.Text = tostring(_G.Settings.AimFOV)
- drawings.AimSmoothnessValue.Text = tostring(_G.Settings.AimSmoothness)
- if _G.Settings.AimDrawFOV then
- drawings.AimDrawFOVValue.Color = Color3.fromRGB(0,255,0)
- drawings.AimDrawFOVValue.Text = "true"
- drawings.Circle.Visible = true
- else
- drawings.AimDrawFOVValue.Color = Color3.fromRGB(255,0,0)
- drawings.AimDrawFOVValue.Text = "false"
- drawings.Circle.Visible = false
- end
- drawings.Circle.Radius = workspace.CurrentCamera.ViewportSize.X / (90 / _G.Settings.AimFOV)
- if _G.Settings.AimWallCheck then
- drawings.AimWallCheckValue.Color = Color3.fromRGB(0,255,0)
- drawings.AimWallCheckValue.Text = "true"
- else
- drawings.AimWallCheckValue.Color = Color3.fromRGB(255,0,0)
- drawings.AimWallCheckValue.Text = "false"
- end
- drawings.AimBulletDropValue.Text = tostring(_G.Settings.AimBulletDrop)
- if _G.Settings.AimAimKey == Enum.UserInputType.MouseButton1 then
- drawings.AimAimKeyValue.Text = "Mouse1"
- else
- drawings.AimAimKeyValue.Text = "Mouse2"
- end
- drawings.AimBulletPredictionValue.Text = tostring(_G.Settings.AimBulletPrediction)
- if _G.Settings.AimBulletPrediction > 200 then
- _G.SEttings.AimBulletPrediction = 999999
- drawings.AimBulletPredictionValue.Text = "off (kinda)"
- end
- end
- end)
- local pos = 1
- local ArrowPos = {
- Vector2.new(30, 345) + MenuPos,
- Vector2.new(30, 365) + MenuPos,
- Vector2.new(30, 385) + MenuPos,
- Vector2.new(30, 405) + MenuPos,
- Vector2.new(30, 425) + MenuPos,
- Vector2.new(30, 445) + MenuPos,
- Vector2.new(30, 465) + MenuPos,
- Vector2.new(30, 485) + MenuPos,
- Vector2.new(30, 505) + MenuPos,
- Vector2.new(30, 525) + MenuPos
- }
- local function ArrowNextPos()
- pos = math.clamp(pos + 1,1,#ArrowPos)
- end
- local function ArrowPrevPos()
- pos = math.clamp(pos - 1,1,#ArrowPos)
- end
- userIS.InputBegan:Connect(function(Input)
- if Input.KeyCode == Enum.KeyCode.Up then
- ArrowPrevPos()
- drawings.SelectedText.Position = ArrowPos[pos]
- end
- end)
- userIS.InputBegan:Connect(function(Input)
- if Input.KeyCode == Enum.KeyCode.Down then
- ArrowNextPos()
- drawings.SelectedText.Position = ArrowPos[pos]
- end
- end)
- local IsMenuOpen = true
- userIS.InputBegan:Connect(function(Input)
- if Input.KeyCode == Enum.KeyCode.Insert then
- if IsMenuOpen then
- IsMenuOpen = false
- for i,v in pairs(drawings) do
- drawings[i].Visible = false
- end
- else
- IsMenuOpen = true
- for i,v in pairs(drawings) do
- drawings[i].Visible = true
- end
- end
- end
- end)
- userIS.InputBegan:Connect(function(Input)
- if Input.KeyCode == Enum.KeyCode.Left or Input.KeyCode == Enum.KeyCode.Right then
- if ArrowPos[pos] == Vector2.new(30, 345) + MenuPos then
- if _G.Settings.AimEnable then
- _G.Settings.AimEnable = false
- else
- _G.Settings.AimEnable = true
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 365) + MenuPos then
- if _G.Settings.AimAutoShoot then
- _G.Settings.AimAutoShoot = false
- else
- _G.Settings.AimAutoShoot = true
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 385) + MenuPos then
- if _G.Settings.AimTeamCheck then
- _G.Settings.AimTeamCheck = false
- else
- _G.Settings.AimTeamCheck = true
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 445) + MenuPos then
- if _G.Settings.AimDrawFOV then
- _G.Settings.AimDrawFOV = false
- else
- _G.Settings.AimDrawFOV = true
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 465) + MenuPos then
- if _G.Settings.AimWallCheck then
- _G.Settings.AimWallCheck = false
- else
- _G.Settings.AimWallCheck = true
- end
- end
- end
- if Input.KeyCode == Enum.KeyCode.Left then
- if ArrowPos[pos] == Vector2.new(30, 405) + MenuPos then
- if _G.Settings.AimSmoothness >= 1.25 then
- _G.Settings.AimSmoothness = _G.Settings.AimSmoothness - 0.25
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 425) + MenuPos then
- if _G.Settings.AimFOV >= 2 then
- _G.Settings.AimFOV = _G.Settings.AimFOV - 1
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 485) + MenuPos then
- if _G.Settings.AimBulletDrop >= 3 then
- _G.Settings.AimBulletDrop = _G.Settings.AimBulletDrop - 1
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 505) + MenuPos then
- if _G.Settings.AimAimKey == Enum.UserInputType.MouseButton1 then
- _G.Settings.AimAimKey = Enum.UserInputType.MouseButton2
- elseif _G.Settings.AimAimKey == Enum.UserInputType.MouseButton2 then
- _G.Settings.AimAimKey = Enum.UserInputType.MouseButton1
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 525) + MenuPos then
- if _G.Settings.AimBulletPrediction >= 0.1 then
- _G.Settings.AimBulletPrediction = _G.Settings.AimBulletPrediction - 0.1
- end
- end
- end
- if Input.KeyCode == Enum.KeyCode.Right then
- if ArrowPos[pos] == Vector2.new(30, 405) + MenuPos then
- if _G.Settings.AimSmoothness <= 29.75 then
- _G.Settings.AimSmoothness = _G.Settings.AimSmoothness + 0.25
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 425) + MenuPos then
- if _G.Settings.AimFOV <= 29 then
- _G.Settings.AimFOV = _G.Settings.AimFOV + 1
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 485) + MenuPos then
- if _G.Settings.AimBulletDrop <= 200 then
- _G.Settings.AimBulletDrop = _G.Settings.AimBulletDrop + 1
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 505) + MenuPos then
- if _G.Settings.AimAimKey == Enum.UserInputType.MouseButton2 then
- _G.Settings.AimAimKey = Enum.UserInputType.MouseButton1
- elseif _G.Settings.AimAimKey == Enum.UserInputType.MouseButton1 then
- _G.Settings.AimAimKey = Enum.UserInputType.MouseButton2
- end
- end
- if ArrowPos[pos] == Vector2.new(30, 525) + MenuPos then
- if _G.Settings.AimBulletPrediction <= 9.9 then
- _G.Settings.AimBulletPrediction = _G.Settings.AimBulletPrediction + 0.1
- end
- end
- end
- end)
- messagebox("successfully loaded.", "Project-Phantom remastered v1.0.0", 0)
RAW Paste Data