Roblox Phantom Forces Script Pastebin Hacks
Introduction
Roblox Phantom Forces Script Pastebin Hacks 2023 will let you ace the game better than other players. These weapons are allowed to acquire by any player. Once you need to have a weapon, you will need Phantom Forces Script. Qnnit proudly presents Phantom Forces Scripts with Pastebin Phantom Forces Hack Download. These scripts will give you a range of features in the game.
Phantom Forces is perhaps the best gun-shooting game. It is a proud presentation by “Stylis Studio”. The game possesses a huge fan base all over the world due to its interesting features. All you have to do is aim and shoot your opponents with your polished skills. For this, you need special guns, rifles, and grenades.
What is Phantom Forces Script?
Phantom Forces Script is a string of code mainly represented by the URL in a few cases. Players get the Phantom Forces Graphic User Interface with any equipment or weapon they want after the execution of the script. Ski Hub is one of the examples offering Fly, Silent Aim, Xray, Break all Glass, and Walkspeed.
Phantom Forces Roblox is quite a famous shooting game that is played in teams, just like the Call of Duty game. Although the user interface might trick you into thinking that it’s a simple game but in reality, it is quite a complex game. Gamers would have to be vigilant of their surroundings and particular locations, handling of equipment & weapons.
Once you get used to the game, then there is no going; such is the interest level of Phantom Forces. The game is not just a good time pass to sharpen your reflexes in real life which might help you perform better on the job or in business. The race to get better in the game has gone beyond control so much that the demand for codes and scripts has skyrocketed.
How to Use Phantom Forces Scripts
So far, we have come to know that Phantom Forces scripts are quite useful, but now we will learn how to use these scripts effectively.
Just follow these steps:
Step 1
- Download the “Phantom Forces Scripts”
Step 2
- Open the file and “copy the script”
Step 3
- Initiate “Roblox Executor” and “Paste”
Step 4
- Press the “Execute” button and start the game
So these were the steps through which you may easily run the Phantom Forces hack Cheats.
Roblox Phantom Forces Script Pastebin Hacks
A range of Phantom Forces scripts are available in the market, but we have compiled the most effective ones for just the sake of our readers. Simply copy and paste the scripts that we have shared in detail, and you will be good to go. Now let`s move on to the actual Phantom Forces Scripts:
Script 1:
Phantom Forces Bunny Hop Script:
local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") getgenv().bhop = true local game_client = {} do -- Client Collector local garbage = getgc(true) for i = 1, #garbage do local v = garbage[i] if typeof(v) == "table" then if rawget(v, "getCharacterObject") then -- Used for sending LocalPlayer Character Data to Server game_client.character_interface = v elseif rawget(v, "getController") then -- Weapon Detection game_client.weapon_controller_interface = v end end end end RunService.RenderStepped:Connect(function() if getgenv().bhop and UserInputService:IsKeyDown(Enum.KeyCode.Space) then local character_object = game_client.character_interface.getCharacterObject() local weapon_controller = game_client.weapon_controller_interface.getController() local power = 4 -- This is the hardcoded value for jumping if character_object and weapon_controller then if character_object._floorMaterial == Enum.Material.Air then return end local active_weapon = weapon_controller:getActiveWeapon() if active_weapon:getWeaponType() == "Melee" then power = power * 1.15 end local velocity_y = character_object._rootPart.Velocity.y power = power and (2 * game.Workspace.Gravity * power) ^ 0.5 or 40 local jump_power = power if velocity_y < 0 then jump_power = power --else --jump_power = (velocity_y * velocity_y + power * power) ^ 0.5 end -- Skip the else cause its gay and will stack velocity when you're near walls for some reason if character_object._movementMode == "prone" or character_object._movementMode == "crouch" then character_object:setMovementMode("stand") return end if active_weapon:getWeaponType() == "Firearm" and active_weapon:isAiming() then character_object._humanoid.JumpPower = jump_power character_object._humanoid.Jump = true return true end --if character_object._speed > 5 and character_object._velocity.z < 0 and character_object:parkourDetection() then --character_object:parkour() --else character_object._humanoid.JumpPower = jump_power character_object._humanoid.Jump = true --end -- Skipping parkour detection cause its cringe end end end) |
Script 2:
Phantom Forces Third Person Script:
-- Services local uis = game:GetService("UserInputService") local rs = game:GetService("RunService") local plrs = game:GetService("Players") local ws = game:GetService("Workspace") -- Local local plr = plrs.LocalPlayer local fake_rep_object = nil local game_client = {} do -- Client Collector local garbage = getgc(true) local loaded_modules = getloadedmodules() for i = 1, #garbage do local v = garbage[i] if typeof(v) == "table" then if rawget(v, "send") and rawget(v, "fetch") then -- Networking Module game_client.network = v elseif rawget(v, "getCharacterObject") then -- Used for sending LocalPlayer Character Data to Server game_client.character_interface = v elseif rawget(v, "updateReplication") and rawget(v, "getThirdPersonObject") then -- This represents a "Player" separate from their character game_client.replication_object = v elseif rawget(v, "getController") then -- Weapon Detection game_client.weapon_controller_interface = v elseif rawget(v, "getCharacterModel") and rawget(v, 'popCharacterModel') then -- Used for Displaying other Characters game_client.third_person_object = v end end end for i = 1, #loaded_modules do local v = loaded_modules[i] if v.Name == "ActiveLoadoutUtils" then game_client.active_loadout = require(v) elseif v.Name == "GameClock" then game_client.game_clock = require(v) elseif v.Name == "PlayerDataStoreClient" then game_client.player_data = require(v) elseif v.Name == "ContentDatabase" then game_client.content_database = require(v) end end end local old_send = game_client.network.send local old_new_index local library = {} local utility = {} local shared = { drawings = {}, connections = {}, hidden_connections = {}, pointers = {}, theme = { inline = Color3.fromRGB(6, 6, 6), dark = Color3.fromRGB(24, 24, 24), text = Color3.fromRGB(255, 255, 255), section = Color3.fromRGB(150, 150, 150), accent = Color3.fromRGB(0, 102, 255) }, accents = {}, moveKeys = { ["Movement"] = { ["Up"] = "Up", ["Down"] = "Down" }, ["Action"] = { ["Return"] = "Enter", ["Left"] = "Left", ["Right"] = "Right" } }, allowedKeyCodes = {"Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Z","X","C","V","B","N","M","One","Two","Three","Four","Five","Six","Seveen","Eight","Nine","0","Insert","Tab","Home","End","LeftAlt","LeftControl","LeftShift","RightAlt","RightControl","RightShift","CapsLock","Return","Up","Down","Left","Right"}, allowedInputTypes = {"MouseButton1","MouseButton2","MouseButton3"}, shortenedInputs = {["MouseButton1"] = "MB1", ["MouseButton2"] = "MB2", ["MouseButton3"] = "MB3", ["Insert"] = "Ins", ["LeftAlt"] = "LAlt", ["LeftControl"] = "LCtrl", ["LeftShift"] = "LShift", ["RightAlt"] = "RAlt", ["RightControl"] = "RCtrl", ["RightShift"] = "RShift", ["CapsLock"] = "Caps"}, colors = {Color3.fromRGB(255, 0, 0), Color3.fromRGB(255, 100, 0), Color3.fromRGB(255, 200, 0), Color3.fromRGB(210, 255, 0), Color3.fromRGB(110, 255, 0), Color3.fromRGB(10, 255, 0), Color3.fromRGB(0, 255, 90), Color3.fromRGB(0, 255, 190), Color3.fromRGB(0, 220, 255), Color3.fromRGB(0, 120, 255), Color3.fromRGB(0, 20, 255), Color3.fromRGB(80, 0, 255), Color3.fromRGB(180, 0, 255), Color3.fromRGB(255, 0, 230), Color3.fromRGB(255, 0, 130), Color3.fromRGB(255, 255, 255), Color3.fromRGB(0, 0, 0)}, toggleKey = {Enum.KeyCode.Home, true}, unloadKey = {Enum.KeyCode.End, true}, windowActive = true } -- Utility Functions do function utility:Create(instanceType, instanceProperties) local instance = Drawing.new(instanceType) local parent -- if instanceProperties["Parent"] or instanceProperties["parent"] then parent = instanceProperties["Parent"] or instanceProperties["parent"] -- instanceProperties["parent"] = nil instanceProperties["Parent"] = nil end -- for property, value in pairs(instanceProperties) do if property and value then if property == "Size" or property == "Size" then if instanceType == "Text" then instance.Size = value else local xSize = (value.X.Scale * ((parent and parent.Size) or ws.CurrentCamera.ViewportSize).X) + value.X.Offset local ySize = (value.Y.Scale * ((parent and parent.Size) or ws.CurrentCamera.ViewportSize).Y) + value.Y.Offset -- instance.Size = Vector2.new(xSize, ySize) end elseif property == "Position" or property == "position" then if instanceType == "Text" then local xPosition = ((((parent and parent.Position) or Vector2.new(0, 0)).X) + (value.X.Scale * ((typeof(parent.Size) == "number" and parent.TextBounds) or parent.Size).X)) + value.X.Offset local yPosition = ((((parent and parent.Position) or Vector2.new(0, 0)).Y) + (value.Y.Scale * ((typeof(parent.Size) == "number" and parent.TextBounds) or parent.Size).Y)) + value.Y.Offset -- instance.Position = Vector2.new(xPosition, yPosition) else local xPosition = ((((parent and parent.Position) or Vector2.new(0, 0)).X) + value.X.Scale * ((parent and parent.Size) or ws.CurrentCamera.ViewportSize).X) + value.X.Offset local yPosition = ((((parent and parent.Position) or Vector2.new(0, 0)).Y) + value.Y.Scale * ((parent and parent.Size) or ws.CurrentCamera.ViewportSize).Y) + value.Y.Offset -- instance.Position = Vector2.new(xPosition, yPosition) end elseif property == "Color" or property == "color" then if typeof(value) == "string" then instance["Color"] = shared.theme[value] -- if value == "accent" then shared.accents[#shared.accents + 1] = instance end else instance[property] = value end else instance[property] = value end end end -- shared.drawings[#shared.drawings + 1] = instance -- return instance end -- function utility:Update(instance, instanceProperty, instanceValue, instanceParent) if instanceProperty == "Size" or instanceProperty == "Size" then local xSize = (instanceValue.X.Scale * ((instanceParent and instanceParent.Size) or ws.CurrentCamera.ViewportSize).X) + instanceValue.X.Offset local ySize = (instanceValue.Y.Scale * ((instanceParent and instanceParent.Size) or ws.CurrentCamera.ViewportSize).Y) + instanceValue.Y.Offset -- instance.Size = Vector2.new(xSize, ySize) elseif instanceProperty == "Position" or instanceProperty == "position" then local xPosition = ((((instanceParent and instanceParent.Position) or Vector2.new(0, 0)).X) + (instanceValue.X.Scale * ((typeof(instanceParent.Size) == "number" and instanceParent.TextBounds) or instanceParent.Size).X)) + instanceValue.X.Offset local yPosition = ((((instanceParent and instanceParent.Position) or Vector2.new(0, 0)).Y) + (instanceValue.Y.Scale * ((typeof(instanceParent.Size) == "number" and instanceParent.TextBounds) or instanceParent.Size).Y)) + instanceValue.Y.Offset -- instance.Position = Vector2.new(xPosition, yPosition) elseif instanceProperty == "Color" or instanceProperty == "color" then if typeof(instanceValue) == "string" then instance.Color = shared.theme[instanceValue] -- if instanceValue == "accent" then shared.accents[#shared.accents + 1] = instance else if table.find(shared.accents, instance) then table.remove(shared.accents, table.find(shared.accents, instance)) end end else instance.Color = instanceValue end end end -- function utility:Connection(connectionType, connectionCallback) local connection = connectionType:Connect(connectionCallback) shared.connections[#shared.connections + 1] = connection -- return connection end -- function utility:RemoveConnection(connection) for index, con in pairs(shared.connections) do if con == connection then shared.connections[index] = nil con:Disconnect() end end -- for index, con in pairs(shared.hidden_connections) do if con == connection then shared.hidden_connections[index] = nil con:Disconnect() end end end -- function utility:Lerp(instance, instanceTo, instanceTime) local currentTime = 0 local currentIndex = {} local connection -- for i,v in pairs(instanceTo) do currentIndex[i] = instance[i] end -- local function lerp() for i,v in pairs(instanceTo) do instance[i] = ((v - currentIndex[i]) * currentTime / instanceTime) + currentIndex[i] end end -- connection = rs.RenderStepped:Connect(function(delta) if currentTime < instanceTime then currentTime = currentTime + delta lerp() else connection:Disconnect() end end) end -- function utility:Unload() for i,v in pairs(shared.drawings) do v:Remove() end -- for i,v in pairs(shared.connections) do v:Disconnect() end -- shared.drawings = nil shared.connections = nil -- local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local character_model = third_person_object:popCharacterModel() character_model:Destroy() fake_rep_object:despawn() end -- shared = nil utility = nil library = nil end -- function utility:Toggle() shared.toggleKey[2] = not shared.toggleKey[2] -- for index, drawing in pairs(shared.drawings) do if getmetatable(drawing).__type == "Text" then utility:Lerp(drawing, {Transparency = shared.toggleKey[2] and 1 or 0}, 0.15) else utility:Lerp(drawing, {Transparency = shared.toggleKey[2] and 1 or 0}, 0.25) end end end -- function utility:ChangeAccent(accentColor) shared.theme.accent = accentColor -- for index, drawing in pairs(shared.accents) do drawing.Color = shared.theme.accent end end -- function utility:Object(type, properties) local object = Instance.new(type) for i,v in next, properties do object[i] = v end return object end -- function utility:Round(n, scale) return tonumber(string.format("%." .. (typeof(scale) == "number" and scale or 2) .. "f", n)) end end -- Library Functions do function library:Window(windowProperties) -- // Variables local window = { current = nil, currentindex = 1, content = {}, pages = {} } local windowProperties = windowProperties or {} -- local windowName = windowProperties.name or windowProperties.Name or "New Window" -- // Functions function window:Movement(moveAction, moveDirection) if moveAction == "Movement" then window.content[window.currentindex]:Turn(false) -- if window.content[moveDirection == "Down" and window.currentindex + 1 or window.currentindex - 1] then window.currentindex = moveDirection == "Down" and window.currentindex + 1 or window.currentindex - 1 else window.currentindex = moveDirection == "Down" and 1 or #window.content end -- window.content[window.currentindex]:Turn(true) else window.content[window.currentindex]:Action(moveDirection) end end -- function window:ChangeKeys(keyType, moveDirection, newKey) for i,v in pairs(shared.moveKeys[keyType]) do if tostring(v) == tostring(moveDirection) then shared.moveKeys[keyType][i] = nil shared.moveKeys[keyType][newKey] = moveDirection end end end -- // Main local windowFrame = utility:Create("Square", { Visible = true, Filled = true, Thickness = 0, Color = shared.theme.inline, Size = UDim2.new(0, 280, 0, 19), Position = UDim2.new(0, 50, 0, 80) }) -- local windowInline = utility:Create("Square", { Parent = windowFrame, Visible = true, Filled = true, Thickness = 0, Color = shared.theme.dark, Size = UDim2.new(1, -2, 1, -4), Position = UDim2.new(0, 1, 0, 3) }) -- local windowAccent = utility:Create("Square", { Parent = windowFrame, Visible = true, Filled = true, Thickness = 0, Color = "accent", Size = UDim2.new(1, 0, 0, 2), Position = UDim2.new(0, 0, 0, 0) }) -- local windowText = utility:Create("Text", { Parent = windowAccent, Visible = true, Text = windowName, Center = true, Outline = true, Font = 2, Color = shared.theme.text, Size = 13, Position = UDim2.new(0.5, 0, 0, 3) }) -- // Connections utility:Connection(uis.InputBegan, function(Input) if shared.toggleKey[2] and Input.KeyCode then if shared.moveKeys["Movement"][Input.KeyCode.Name] then window:Movement("Movement", shared.moveKeys["Movement"][Input.KeyCode.Name]) elseif shared.moveKeys["Action"][Input.KeyCode.Name] then window:Movement("Action", shared.moveKeys["Action"][Input.KeyCode.Name]) end end -- if Input.KeyCode and Input.KeyCode == shared.toggleKey[1] then utility:Toggle() end end) -- // Nested Functions function window:ChangeName(newName) windowText.Text = newName end -- function window:Refresh() window.content = {} local contentCount = 0 -- for index, page in pairs(window.pages) do page:Position(19 + (contentCount * 17)) window.content[#window.content + 1] = page contentCount = contentCount + 1 -- if page.open then for index, section in pairs(page.sections) do section:Position(19 + (contentCount * 17)) contentCount = contentCount + 1 -- for index, content in pairs(section.content) do content:Position(19 + (contentCount * 17)) if not content.noaction then window.content[#window.content + 1] = content end contentCount = contentCount + 1 end end end end -- utility:Update(windowFrame, "Size", UDim2.new(0, 280, 0, 23 + (contentCount * 17))) utility:Update(windowInline, "Size", UDim2.new(1, -2, 1, -4), windowFrame) end -- function window:Page(pageProperties) -- // Variables local page = {open = false, sections = {}} local pageProperties = pageProperties or {} -- local pageName = pageProperties.name or pageProperties.Name or "New Page" -- // Functions -- // Main local pageText = utility:Create("Text", { Parent = windowFrame, Visible = true, Text = "[+] "..pageName, Outline = true, Font = 2, Color = (#window.content == 0 and shared.theme.accent or shared.theme.text), Size = 13, Position = UDim2.new(0, 5, 0, 19 + ((#window.content) * 17)) }) -- // Nested Functions function page:Turn(state) if state then utility:Update(pageText, "Color", "accent") else utility:Update(pageText, "Color", "text") end end -- function page:Position(yAxis) utility:Update(page.text, "Position", UDim2.new(0, 5, 0, yAxis), windowFrame) end -- function page:Open(state, externalOpen) if not externalOpen then local ind = 0 for index, other_page in pairs(window.pages) do if other_page == page then ind = index else if other_page.open then other_page:Open(false, true) end end end -- window.currentindex = ind end -- page.open = state pageText.Text = (page.open and "[-] " or "[+] ") .. pageName -- for index, section in pairs(page.sections) do section:Open(page.open) end -- window:Refresh() end -- function page:Action(action) if action == "Enter" then page:Open(not page.open) elseif action == "Right" and not page.open then page:Open(true) elseif action == "Left" and page.open then page:Open(false) end end -- function page:Section(sectionProperties) -- // Variables local section = {content = {}} local sectionProperties = sectionProperties or {} -- local sectionName = sectionProperties.name or sectionProperties.Name or "New Section" -- // Functions -- // Main local sectionText = utility:Create("Text", { Visible = false, Text = "["..sectionName.."]", Outline = true, Font = 2, Color = shared.theme.section, Size = 13 }) -- // Nested Functions function section:Open(state) section.text.Visible = state -- for index, content in pairs(section.content) do content:Open(state) end end -- function section:Position(yAxis) utility:Update(section.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function section:Label(labelProperties) -- // Variables local label = {noaction = true} local labelProperties = labelProperties or {} -- local labelName = labelProperties.name or labelProperties.Name or "New Label" -- // Functions -- // Main local labelText = utility:Create("Text", { Visible = false, Text = labelName, Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function label:Turn(state) if state then utility:Update(label.text, "Color", "accent") else utility:Update(label.text, "Color", "text") end end -- function label:Position(yAxis) utility:Update(label.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function label:Open(state) label.text.Visible = state end -- function label:Action(action) end -- // Returning + Other label.name = labelName label.text = labelText -- section.content[#section.content + 1] = label -- return label end -- function section:Button(buttonProperties) -- // Variables local button = {} local buttonProperties = buttonProperties or {} -- local buttonName = buttonProperties.name or buttonProperties.Name or "New Button" local buttonConfirm = buttonProperties.confirm or buttonProperties.Confirm or false local buttonCallback = buttonProperties.callback or buttonProperties.Callback or buttonProperties.CallBack or buttonProperties.callBack or function() end -- // Functions -- // Main local buttonText = utility:Create("Text", { Visible = false, Text = buttonName, Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function button:Turn(state) if state then utility:Update(button.text, "Color", "accent") else utility:Update(button.text, "Color", "text") end end -- function button:Position(yAxis) utility:Update(button.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function button:Open(state) button.text.Visible = state end -- function button:Action(action) if buttonConfirm and button.text.Text ~= "confirm?" then button.text.Text = "confirm?" task.delay(3, function() if button.text.Text == "confirm?" then button.text.Text = buttonName end end) return end -- button.text.Text = "<"..buttonName..">" -- buttonCallback() -- wait(0.2) button.text.Text = buttonName end -- // Returning + Other button.name = buttonName button.text = buttonText -- section.content[#section.content + 1] = button -- return button end -- function section:Toggle(toggleProperties) local toggle = {} local toggleProperties = toggleProperties or {} -- local toggleName = toggleProperties.name or toggleProperties.Name or "New Toggle" local toggleDefault = toggleProperties.default or toggleProperties.Default or toggleProperties.def or toggleProperties.Def or false local togglePointer = toggleProperties.pointer or toggleProperties.Pointer or toggleProperties.flag or toggleProperties.Flag or nil local toggleCallback = toggleProperties.callback or toggleProperties.Callback or toggleProperties.CallBack or toggleProperties.callBack or function() end -- // Functions -- // Main local toggleText = utility:Create("Text", { Visible = false, Text = toggleName .. " -> " .. (toggleDefault and "ON" or "OFF"), Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function toggle:Turn(state) if state then utility:Update(toggle.text, "Color", "accent") else utility:Update(toggle.text, "Color", "text") end end -- function toggle:Position(yAxis) utility:Update(toggle.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function toggle:Open(state) toggle.text.Visible = state end -- function toggle:Action(action) toggle.current = not toggle.current toggle.text.Text = toggle.name .. " -> " .. (toggle.current and "ON" or "OFF") -- toggleCallback(toggle.current) end -- // Returning + Other toggle.name = toggleName toggle.text = toggleText toggle.current = toggleDefault -- section.content[#section.content + 1] = toggle -- if togglePointer then local pointer = {} -- function pointer:Get() return toggle.current end -- function pointer:Set(value) if typeof(value) == "bool" then toggle.current = value toggle.text.Text = toggle.name .. " -> " .. (toggle.current and "ON" or "OFF") -- toggleCallback(toggle.current) end end -- shared.pointers[togglePointer] = pointer end -- return toggle end -- function section:Slider(sliderProperties) local slider = {} local sliderProperties = sliderProperties or {} -- local sliderName = sliderProperties.name or sliderProperties.Name or "New Toggle" local sliderDefault = sliderProperties.default or sliderProperties.Default or sliderProperties.def or sliderProperties.Def or 1 local sliderMax = sliderProperties.max or sliderProperties.Max or sliderProperties.maximum or sliderProperties.Maximum or 10 local sliderMin = sliderProperties.min or sliderProperties.Min or sliderProperties.minimum or sliderProperties.Minimum or 1 local sliderDigits = sliderProperties.digits or sliderProperties.Digits or sliderProperties.scale or sliderProperties.Scale or 1 local sliderTick = sliderProperties.tick or sliderProperties.Tick or sliderProperties.decimals or sliderProperties.Decimals or 1 local sliderPointer = sliderProperties.pointer or sliderProperties.Pointer or sliderProperties.flag or sliderProperties.Flag or nil local sliderCallback = sliderProperties.callback or sliderProperties.Callback or sliderProperties.CallBack or sliderProperties.callBack or function() end -- // Functions -- // Main local sliderText = utility:Create("Text", { Visible = false, Text = sliderName .. " -> " .. "<" .. tostring(sliderDefault) .. "/" .. tostring(sliderMax) .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function slider:Turn(state) if state then utility:Update(slider.text, "Color", "accent") else utility:Update(slider.text, "Color", "text") end end -- function slider:Position(yAxis) utility:Update(slider.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function slider:Open(state) slider.text.Visible = state end -- function slider:Action(action) slider.current = math.clamp(action == "Left" and (slider.current - slider.tick) or (slider.current + slider.tick), slider.min, slider.max) slider.text.Text = sliderName .. " -> " .. "<" .. utility:Round(slider.current, slider.digits) .. "/" .. utility:Round(slider.max, slider.digits) .. ">" -- sliderCallback(slider.current) end -- // Returning + Other slider.name = sliderName slider.text = sliderText slider.current = sliderDefault slider.max = sliderMax slider.min = sliderMin slider.digits = sliderDigits slider.tick = sliderTick -- section.content[#section.content + 1] = slider -- if sliderPointer then local pointer = {} -- function pointer:Get() return slider.current end -- function pointer:Set(value) if typeof(value) == "number" then slider.current = value slider.text.Text = sliderName .. " -> " .. "<" .. utility:Round(slider.current, slider.digits) .. "/" .. utility:Round(slider.max, slider.digits) .. ">" -- sliderCallback(slider.current) end end -- shared.pointers[sliderPointer] = pointer end -- return slider end -- function section:List(listProperties) local list = {} local listProperties = listProperties or {} -- local listName = listProperties.name or listProperties.Name or "New Toggle" local listEnter = listProperties.enter or listProperties.Enter or listProperties.comfirm or listProperties.Comfirm or false local listDefault = listProperties.default or listProperties.Default or listProperties.def or listProperties.Def or 1 local listOptions = listProperties.options or listProperties.Options or {"Option 1", "Option 2", "Option 3"} local listPointer = listProperties.pointer or listProperties.Pointer or listProperties.flag or listProperties.Flag or nil local listCallback = listProperties.callback or listProperties.Callback or listProperties.CallBack or listProperties.callBack or function() end -- // Functions -- // Main local listText = utility:Create("Text", { Visible = false, Text = listName .. " -> " .. "<" .. tostring(listOptions[listDefault]) .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function list:Turn(state) if state then utility:Update(list.text, "Color", "accent") else utility:Update(list.text, "Color", "text") end end -- function list:Position(yAxis) utility:Update(list.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function list:Open(state) list.text.Visible = state end -- function list:Action(action) if (listEnter and action == "Enter") then listCallback(list.options[list.current]) else list.current = ((list.options[action == "Left" and list.current - 1 or list.current + 1]) and (action == "Left" and list.current - 1 or list.current + 1)) or (action == "Left" and #list.options or 1) -- list.text.Text = listName .. " -> " .. "<" .. tostring(list.options[list.current]) .. ">" -- if not listEnter then listCallback(list.options[list.current]) end end end -- // Returning + Other if listPointer then local pointer = {} -- function pointer:Get(cfg) if cfg then return list.current else return list.options[list.current] end end -- function pointer:Set(value) if typeof(value) == "number" and list.options[value] then list.current = value -- list.text.Text = listName .. " -> " .. "<" .. tostring(list.options[list.current]) .. ">" -- if not listEnter then listCallback(list.options[list.current]) end end end -- shared.pointers[listPointer] = pointer end -- list.name = listName list.text = listText list.current = listDefault list.options = listOptions -- section.content[#section.content + 1] = list -- return list end -- function section:MultiList(multiListProperties) local multiList = {} local multiListProperties = multiListProperties or {} -- local multiListName = multiListProperties.name or multiListProperties.Name or "New Toggle" local multiListDefault = multiListProperties.default or multiListProperties.Default or multiListProperties.def or multiListProperties.Def or 1 local multiListOptions = multiListProperties.options or multiListProperties.Options or {{"Option 1", false}, {"Option 2", false}, {"Option 3", false}} local multiListPointer = multiListProperties.pointer or multiListProperties.Pointer or multiListProperties.flag or multiListProperties.Flag or nil local multiListCallback = multiListProperties.callback or multiListProperties.Callback or multiListProperties.CallBack or multiListProperties.callBack or function() end -- // Functions -- // Main local multiListText = utility:Create("Text", { Visible = false, Text = multiListName .. " -> " .. "<" .. (multiListOptions[multiListDefault] and (tostring(multiListOptions[multiListDefault][1]) .. ":" .. ((multiListOptions[multiListDefault][2]) and "ON" or "OFF")) or "Nil") .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function multiList:Turn(state) if state then utility:Update(multiList.text, "Color", "accent") else utility:Update(multiList.text, "Color", "text") end end -- function multiList:Position(yAxis) utility:Update(multiList.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function multiList:Open(state) multiList.text.Visible = state end -- function multiList:Action(action) if action == "Enter" then multiList.options[multiList.current][2] = not multiList.options[multiList.current][2] -- multiList.text.Text = multiList.name .. " -> " .. "<" .. tostring(multiList.options[multiList.current][1]) .. ":" .. (multiList.options[multiList.current][2] and "ON" or "OFF") .. ">" -- multiListCallback(multiList.options) else multiList.current = ((multiList.options[action == "Left" and multiList.current - 1 or multiList.current + 1]) and (action == "Left" and multiList.current - 1 or multiList.current + 1)) or (action == "Left" and #multiList.options or 1) -- multiList.text.Text = multiList.name .. " -> " .. "<" .. tostring(multiList.options[multiList.current][1]) .. ":" .. (multiList.options[multiList.current][2] and "ON" or "OFF") .. ">" -- multiListCallback(multiList.options) end end -- // Returning + Other if multiListPointer then local pointer = {} -- function pointer:Get() return list.options end -- function pointer:Set(value) if typeof(value) == "table" and value[multiList.current] then multiList.options = value -- multiList.text.Text = multiList.name .. " -> " .. "<" .. tostring(multiList.options[multiList.current][1]) .. ":" .. (multiList.options[multiList.current][2] and "ON" or "OFF") .. ">" -- multiListCallback(multiList.options) end end -- shared.pointers[multiListPointer] = pointer end -- multiList.name = multiListName multiList.text = multiListText multiList.current = multiListDefault multiList.options = multiListOptions -- section.content[#section.content + 1] = multiList -- return multiList end -- function section:PlayerList(playerListProperties) local playerList = {} local playerListProperties = playerListProperties or {} -- local playerListName = playerListProperties.name or playerListProperties.Name or "New Toggle" local playerListEnter = playerListProperties.enter or playerListProperties.Enter or playerListProperties.comfirm or playerListProperties.Comfirm or false local playerListCallback = playerListProperties.callback or playerListProperties.Callback or playerListProperties.CallBack or playerListProperties.callBack or function() end local playerListOptions = {} -- // Functions for index, player in pairs(plrs:GetPlayers()) do if player ~= plr then playerListOptions[#playerListOptions + 1] = player end end -- utility:Connection(plrs.PlayerAdded, function(player) if player ~= plr then if not table.find(playerList.options, player) then playerList.options[#playerList.options + 1] = player end -- if #playerList.options == 1 then playerList.current = 1 -- playerList.text.Text = playerList.name .. " -> " .. "<" .. tostring(playerList.options[playerList.current].Name) .. ">" -- if not playerListEnter then playerListCallback(tostring(playerList.options[playerList.current])) end end end end) -- utility:Connection(plrs.PlayerRemoving, function(player) if player ~= plr then local index = table.find(playerList.options, player) local current = playerList.current local current_plr = playerList.options[current] -- if index then table.remove(playerList.options, index) end -- if #playerList.options == 0 then playerList.text.Text = playerList.name .. " -> " .. "<Nil>" else local oldCurrent = playerList.current -- if index and playerList.options[playerList.current] ~= current_plr and table.find(playerList.options, current_plr) then playerList.current = table.find(playerList.options, current_plr) end -- playerList.text.Text = playerList.name .. " -> " .. "<" .. tostring(playerList.options[playerList.current].Name) .. ">" -- if not playerListEnter then if oldCurrent ~= playerList.current then playerListCallback(tostring(playerList.options[playerList.current])) end end end end end) -- // Main local playerListText = utility:Create("Text", { Visible = false, Text = playerListName .. " -> " .. "<" .. (#playerListOptions >= 1 and tostring(playerListOptions[1].Name) or "Nil") .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function playerList:Turn(state) if state then utility:Update(playerList.text, "Color", "accent") else utility:Update(playerList.text, "Color", "text") end end -- function playerList:Position(yAxis) utility:Update(playerList.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function playerList:Open(state) playerList.text.Visible = state end -- function playerList:Action(action) if (playerListEnter and action == "Enter") then if #playerList.options >= 1 then playerListCallback(tostring(playerList.options[playerList.current])) end else if #playerList.options >= 1 then local oldCurrent = playerList.current -- playerList.current = ((playerList.options[action == "Left" and playerList.current - 1 or playerList.current + 1]) and (action == "Left" and playerList.current - 1 or playerList.current + 1)) or (action == "Left" and #playerList.options or 1) -- playerList.text.Text = playerList.name .. " -> " .. "<" .. tostring(playerList.options[playerList.current].Name) .. ">" -- if not playerListEnter then if oldCurrent ~= playerList.current then playerListCallback(tostring(playerList.options[playerList.current])) end end end end end -- // Returning + Other playerList.name = playerListName playerList.text = playerListText playerList.current = 1 playerList.options = playerListOptions -- section.content[#section.content + 1] = playerList -- return playerList end -- function section:Keybind(keybindProperties) -- // Variables local keybind = {} local keybindProperties = keybindProperties or {} -- local keybindName = keybindProperties.name or keybindProperties.Name or "New Keybind" local keybindDefault = keybindProperties.default or keybindProperties.Default or keybindProperties.def or keybindProperties.Def or Enum.KeyCode.B local keybindInputs = keybindProperties.inputs or keybindProperties.Inputs or true local keybindPointer = keybindProperties.pointer or keybindProperties.Pointer or keybindProperties.flag or keybindProperties.Flag or nil local keybindCallback = keybindProperties.callback or keybindProperties.Callback or keybindProperties.CallBack or keybindProperties.callBack or function() end -- // Functions function keybind:Shorten(string) for i,v in pairs(shared.shortenedInputs) do string = string.gsub(string, i, v) end -- return string end -- function keybind:Change(input) input = input or "..." local inputTable = {} -- if input.EnumType then if input.EnumType == Enum.KeyCode or input.EnumType == Enum.UserInputType then if table.find(shared.allowedKeyCodes, input.Name) or table.find(shared.allowedInputTypes, input.Name) then inputTable = {input.EnumType == Enum.KeyCode and "KeyCode" or "UserInputType", input.Name} -- keybind.current = inputTable keybind.text.Text = keybindName .. " -> " .. "<" .. (#keybind.current > 0 and keybind:Shorten(keybind.current[2]) or "...") .. ">" -- return true end end end -- return false end -- // Main local keybindText = utility:Create("Text", { Visible = false, Text = keybindName .. " -> " .. "<" .. "..." .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function keybind:Turn(state) if state then utility:Update(keybind.text, "Color", "accent") else utility:Update(keybind.text, "Color", "text") end end -- function keybind:Position(yAxis) utility:Update(keybind.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function keybind:Open(state) keybind.text.Visible = state end -- function keybind:Action(action) if not keybind.selecting then keybind.text.Text = keybindName .. " -> " .. "<" .. "..." .. ">" -- keybind.selecting = true -- local connection connection = utility:Connection(uis.InputBegan, function(Input) if connection then local inputProcessed = keybind:Change(Input.KeyCode.Name ~= "Unknown" and Input.KeyCode or (keybind.inputs and Input.UserInputType)) -- if inputProcessed then wait() keybind.selecting = false -- utility:RemoveConnection(connection) keybindCallback(Enum[keybind.current[1]][keybind.current[2]]) end end end) end end -- // Returning + Other if keybindPointer then local pointer = {} -- function pointer:Get(cfg) if cfg then return keybind.current else return Enum[keybind.current[1]][keybind.current[2]] end end -- function pointer:Set(value) if typeof(value) == "table" and value[1] and value[2] then local inputProcessed = keybind:Change(Enum[value[1]][value[2]]) -- if inputProcessed then keybindCallback(Enum[keybind.current[1]][keybind.current[2]]) end end end -- shared.pointers[keybindPointer] = pointer end -- keybind.name = keybindName keybind.text = keybindText keybind.current = {} keybind.inputs = keybindInputs keybind.selecting = false -- keybind:Change(keybindDefault) -- section.content[#section.content + 1] = keybind -- return keybind end -- function section:ColorList(colorListProperties) local colorList = {} local colorListProperties = colorListProperties or {} -- local colorListName = colorListProperties.name or colorListProperties.Name or "New Toggle" local colorListDefault = colorListProperties.default or colorListProperties.Default or colorListProperties.def or colorListProperties.Def or 1 local colorListPointer = colorListProperties.pointer or colorListProperties.Pointer or colorListProperties.flag or colorListProperties.Flag or nil local colorListCallback = colorListProperties.callback or colorListProperties.Callback or colorListProperties.CallBack or colorListProperties.callBack or function() end -- // Functions -- // Main -- local colorListText = utility:Create("Text", { Visible = false, Text = colorListName .. " -> " .. "< >", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- local colorListColor = utility:Create("Square", { Visible = false, Filled = true, Thickness = 0, Color = shared.colors[colorListDefault], Size = UDim2.new(0, 17, 0, 9), }) -- // Nested Functions function colorList:Turn(state) if state then utility:Update(colorList.text, "Color", "accent") else utility:Update(colorList.text, "Color", "text") end end -- function colorList:Position(yAxis) utility:Update(colorList.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) utility:Update(colorList.color, "Position", UDim2.new(0, 22 + colorList.text.TextBounds.X - 26, 0, yAxis + 3), windowFrame) end -- function colorList:Open(state) colorList.text.Visible = state colorList.color.Visible = state end -- function colorList:Action(action) colorList.current = ((colorList.options[action == "Left" and colorList.current - 1 or colorList.current + 1]) and (action == "Left" and colorList.current - 1 or colorList.current + 1)) or (action == "Left" and #colorList.options or 1) -- colorList.text.Text = colorListName .. " -> " .. "< >" colorList.color.Color = colorList.options[colorList.current] -- colorListCallback(colorList.options[colorList.current]) end -- // Returning + Other if colorListPointer then local pointer = {} -- function pointer:Get(cfg) if cfg then return colorList.current else return colorList.options[colorList.current] end end -- function pointer:Set(value) if typeof(value) == "number" then colorList.current = value -- colorList.text.Text = colorListName .. " -> " .. "< >" colorList.color.Color = colorList.options[colorList.current] -- colorListCallback(colorList.options[colorList.current]) end end -- shared.pointers[colorListPointer] = pointer end -- colorList.name = colorListName colorList.text = colorListText colorList.color = colorListColor colorList.current = colorListDefault colorList.options = shared.colors -- section.content[#section.content + 1] = colorList -- return colorList end -- // Returning + Other section.name = sectionName section.text = sectionText -- page.sections[#page.sections + 1] = section -- return section end -- // Returning + Other page.name = pageName page.text = pageText -- window.pages[#window.pages + 1] = page window:Refresh() -- return page end -- // Returning return window end end -- UI do local window = library:Window({name = "menu"}) local page_thirdperson = window:Page({name = "third person"}) local section_settings = page_thirdperson:Section({name = "third person settings"}) do -- third person section_settings:Toggle({name = "enabled", default = false, pointer = "third_person"}) section_settings:Slider({name = "third person x", default = 0, max = 10, min = -10, tick = 0.1, pointer = "third_person_x"}) section_settings:Slider({name = "third person y", default = 0, max = 10, min = -10, tick = 0.1, pointer = "third_person_y"}) section_settings:Slider({name = "third person z", default = 5, max = 10, min = -10, tick = 0.1, pointer = "third_person_z"}) end end do -- Hooks game_client.network.send = function(self, command, ...) local arguments = {...} if command == "stance" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local stance = arguments[1] third_person_object:setStance(stance) end end if command == "aim" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local aim = arguments[1] third_person_object:setAim(aim) end end if command == "equip" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local weapon_index = arguments[1] if weapon_index < 3 then third_person_object:equip(weapon_index) elseif weapon_index == 3 then third_person_object:equipMelee(weapon_index) end end end if command == "sprint" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local sprinting = arguments[1] third_person_object:setSprint(sprinting) end end if command == "stab" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then third_person_object:stab() end end if command == "spawn" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local character_model = third_person_object:popCharacterModel() character_model:Destroy() fake_rep_object:despawn() end local current_loadout = game_client.active_loadout.getActiveLoadoutData(game_client.player_data.getPlayerData()) fake_rep_object:spawn(nil, current_loadout) end if command == "forcereset" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local character_model = third_person_object._character character_model:Destroy() fake_rep_object:despawn() end end if command == "newbullets" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then third_person_object:kickWeapon() end end if command == "swapweapon" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local weapon_index = arguments[2] local weapon_dropped = arguments[1] if weapon_index < 3 then fake_rep_object._activeWeaponRegistry[weapon_index] = { weaponName = weapon_dropped.Gun.Value, weaponData = game_client.content_database.getWeaponData(weapon_dropped.Gun.Value), } else fake_rep_object._activeWeaponRegistry[weapon_index] = { weaponName = weapon_dropped.Knife.Value, weaponData = game_client.content_database.getWeaponData(weapon_dropped.Knife.Value), } end end end if command == "repupdate" then if shared.pointers["third_person"]:Get() and game_client.character_interface:isAlive() then local third_person_object = fake_rep_object:getThirdPersonObject() if not third_person_object then local weapon_controller = game_client.weapon_controller_interface.getController() fake_rep_object._activeWeaponRegistry[1] = { weaponName = weapon_controller._activeWeaponRegistry[1]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[1]._weaponData, attachmentData = weapon_controller._activeWeaponRegistry[1]._weaponAttachments, camoData = weapon_controller._activeWeaponRegistry[1]._camoList } fake_rep_object._activeWeaponRegistry[2] = { weaponName = weapon_controller._activeWeaponRegistry[2]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[2]._weaponData, attachmentData = weapon_controller._activeWeaponRegistry[2]._weaponAttachments, camoData = weapon_controller._activeWeaponRegistry[2]._camoList } fake_rep_object._activeWeaponRegistry[3] = { weaponName = weapon_controller._activeWeaponRegistry[3]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[3]._weaponData, camoData = weapon_controller._activeWeaponRegistry[3]._camoData } fake_rep_object._activeWeaponRegistry[4] = { weaponName = weapon_controller._activeWeaponRegistry[4]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[4]._weaponData } fake_rep_object._thirdPersonObject = game_client.third_person_object.new(fake_rep_object._player, nil, fake_rep_object) fake_rep_object._thirdPersonObject:equip(weapon_controller._activeWeaponIndex, true) fake_rep_object._alive = true end local clock_time = game_client.game_clock.getTime() local tick = tick() local velocity = Vector3.zero if fake_rep_object._receivedPosition and fake_rep_object._receivedFrameTime then velocity = (arguments[1] - fake_rep_object._receivedPosition) / (tick - fake_rep_object._receivedFrameTime); end local broken = false if fake_rep_object._lastPacketTime and clock_time - fake_rep_object._lastPacketTime > 0.5 then broken = true fake_rep_object._breakcount = fake_rep_object._breakcount + 1 end fake_rep_object._smoothReplication:receive(clock_time, tick, { t = tick, position = arguments[1], velocity = velocity, angles = arguments[2], breakcount = fake_rep_object._breakcount }, broken); fake_rep_object._updaterecieved = true fake_rep_object._receivedPosition = arguments[1] fake_rep_object._receivedFrameTime = tick fake_rep_object._lastPacketTime = clock_time fake_rep_object:step(3, true) else local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local character_model = third_person_object:popCharacterModel() character_model:Destroy() fake_rep_object:despawn() end end end return old_send(self, command, table.unpack(arguments)) end old_new_index = hookmetamethod(game, "__newindex", function(self, index, value) if checkcaller() then return old_new_index(self, index, value) end if game_client.character_interface:isAlive() and shared.pointers["third_person"]:Get() then if self == ws.CurrentCamera and index == "CFrame" then value *= CFrame.new(shared.pointers["third_person_x"]:Get(), shared.pointers["third_person_y"]:Get(), shared.pointers["third_person_z"]:Get()) end end return old_new_index(self, index, value) end) end do -- Third Person local player = Instance.new("Player") -- Create a new character to avoid the warn function fake_rep_object = game_client.replication_object.new(player) fake_rep_object._player = plr -- Set it to your localplayer player:Destroy() player = nil if game_client.character_interface:isAlive() and game_client.weapon_controller_interface.getController() then local weapon_controller = game_client.weapon_controller_interface.getController() fake_rep_object._activeWeaponRegistry[1] = { weaponName = weapon_controller._activeWeaponRegistry[1]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[1]._weaponData, attachmentData = weapon_controller._activeWeaponRegistry[1]._weaponAttachments, camoData = weapon_controller._activeWeaponRegistry[1]._camoList } fake_rep_object._activeWeaponRegistry[2] = { weaponName = weapon_controller._activeWeaponRegistry[2]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[2]._weaponData, attachmentData = weapon_controller._activeWeaponRegistry[2]._weaponAttachments, camoData = weapon_controller._activeWeaponRegistry[2]._camoList } fake_rep_object._activeWeaponRegistry[3] = { weaponName = weapon_controller._activeWeaponRegistry[3]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[3]._weaponData, camoData = weapon_controller._activeWeaponRegistry[3]._camoData } fake_rep_object._activeWeaponRegistry[4] = { weaponName = weapon_controller._activeWeaponRegistry[4]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[4]._weaponData } fake_rep_object._thirdPersonObject = game_client.third_person_object.new(fake_rep_object._player, nil, fake_rep_object) fake_rep_object._thirdPersonObject:equip(1, true) fake_rep_object._alive = true end end |
Script 3:
Phantom Forces Aim Bot & ESP Script:
-- Services local uis = game:GetService("UserInputService") local rs = game:GetService("RunService") local plrs = game:GetService("Players") local ws = game:GetService("Workspace") -- Local local plr = plrs.LocalPlayer local fake_rep_object = nil local game_client = {} do -- Client Collector local garbage = getgc(true) local loaded_modules = getloadedmodules() for i = 1, #garbage do local v = garbage[i] if typeof(v) == "table" then if rawget(v, "send") and rawget(v, "fetch") then -- Networking Module game_client.network = v elseif rawget(v, "getCharacterObject") then -- Used for sending LocalPlayer Character Data to Server game_client.character_interface = v elseif rawget(v, "updateReplication") and rawget(v, "getThirdPersonObject") then -- This represents a "Player" separate from their character game_client.replication_object = v elseif rawget(v, "getController") then -- Weapon Detection game_client.weapon_controller_interface = v elseif rawget(v, "getCharacterModel") and rawget(v, 'popCharacterModel') then -- Used for Displaying other Characters game_client.third_person_object = v end end end for i = 1, #loaded_modules do local v = loaded_modules[i] if v.Name == "ActiveLoadoutUtils" then game_client.active_loadout = require(v) elseif v.Name == "GameClock" then game_client.game_clock = require(v) elseif v.Name == "PlayerDataStoreClient" then game_client.player_data = require(v) elseif v.Name == "ContentDatabase" then game_client.content_database = require(v) end end end local old_send = game_client.network.send local old_new_index local library = {} local utility = {} local shared = { drawings = {}, connections = {}, hidden_connections = {}, pointers = {}, theme = { inline = Color3.fromRGB(6, 6, 6), dark = Color3.fromRGB(24, 24, 24), text = Color3.fromRGB(255, 255, 255), section = Color3.fromRGB(150, 150, 150), accent = Color3.fromRGB(0, 102, 255) }, accents = {}, moveKeys = { ["Movement"] = { ["Up"] = "Up", ["Down"] = "Down" }, ["Action"] = { ["Return"] = "Enter", ["Left"] = "Left", ["Right"] = "Right" } }, allowedKeyCodes = {"Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Z","X","C","V","B","N","M","One","Two","Three","Four","Five","Six","Seveen","Eight","Nine","0","Insert","Tab","Home","End","LeftAlt","LeftControl","LeftShift","RightAlt","RightControl","RightShift","CapsLock","Return","Up","Down","Left","Right"}, allowedInputTypes = {"MouseButton1","MouseButton2","MouseButton3"}, shortenedInputs = {["MouseButton1"] = "MB1", ["MouseButton2"] = "MB2", ["MouseButton3"] = "MB3", ["Insert"] = "Ins", ["LeftAlt"] = "LAlt", ["LeftControl"] = "LCtrl", ["LeftShift"] = "LShift", ["RightAlt"] = "RAlt", ["RightControl"] = "RCtrl", ["RightShift"] = "RShift", ["CapsLock"] = "Caps"}, colors = {Color3.fromRGB(255, 0, 0), Color3.fromRGB(255, 100, 0), Color3.fromRGB(255, 200, 0), Color3.fromRGB(210, 255, 0), Color3.fromRGB(110, 255, 0), Color3.fromRGB(10, 255, 0), Color3.fromRGB(0, 255, 90), Color3.fromRGB(0, 255, 190), Color3.fromRGB(0, 220, 255), Color3.fromRGB(0, 120, 255), Color3.fromRGB(0, 20, 255), Color3.fromRGB(80, 0, 255), Color3.fromRGB(180, 0, 255), Color3.fromRGB(255, 0, 230), Color3.fromRGB(255, 0, 130), Color3.fromRGB(255, 255, 255), Color3.fromRGB(0, 0, 0)}, toggleKey = {Enum.KeyCode.Home, true}, unloadKey = {Enum.KeyCode.End, true}, windowActive = true } -- Utility Functions do function utility:Create(instanceType, instanceProperties) local instance = Drawing.new(instanceType) local parent -- if instanceProperties["Parent"] or instanceProperties["parent"] then parent = instanceProperties["Parent"] or instanceProperties["parent"] -- instanceProperties["parent"] = nil instanceProperties["Parent"] = nil end -- for property, value in pairs(instanceProperties) do if property and value then if property == "Size" or property == "Size" then if instanceType == "Text" then instance.Size = value else local xSize = (value.X.Scale * ((parent and parent.Size) or ws.CurrentCamera.ViewportSize).X) + value.X.Offset local ySize = (value.Y.Scale * ((parent and parent.Size) or ws.CurrentCamera.ViewportSize).Y) + value.Y.Offset -- instance.Size = Vector2.new(xSize, ySize) end elseif property == "Position" or property == "position" then if instanceType == "Text" then local xPosition = ((((parent and parent.Position) or Vector2.new(0, 0)).X) + (value.X.Scale * ((typeof(parent.Size) == "number" and parent.TextBounds) or parent.Size).X)) + value.X.Offset local yPosition = ((((parent and parent.Position) or Vector2.new(0, 0)).Y) + (value.Y.Scale * ((typeof(parent.Size) == "number" and parent.TextBounds) or parent.Size).Y)) + value.Y.Offset -- instance.Position = Vector2.new(xPosition, yPosition) else local xPosition = ((((parent and parent.Position) or Vector2.new(0, 0)).X) + value.X.Scale * ((parent and parent.Size) or ws.CurrentCamera.ViewportSize).X) + value.X.Offset local yPosition = ((((parent and parent.Position) or Vector2.new(0, 0)).Y) + value.Y.Scale * ((parent and parent.Size) or ws.CurrentCamera.ViewportSize).Y) + value.Y.Offset -- instance.Position = Vector2.new(xPosition, yPosition) end elseif property == "Color" or property == "color" then if typeof(value) == "string" then instance["Color"] = shared.theme[value] -- if value == "accent" then shared.accents[#shared.accents + 1] = instance end else instance[property] = value end else instance[property] = value end end end -- shared.drawings[#shared.drawings + 1] = instance -- return instance end -- function utility:Update(instance, instanceProperty, instanceValue, instanceParent) if instanceProperty == "Size" or instanceProperty == "Size" then local xSize = (instanceValue.X.Scale * ((instanceParent and instanceParent.Size) or ws.CurrentCamera.ViewportSize).X) + instanceValue.X.Offset local ySize = (instanceValue.Y.Scale * ((instanceParent and instanceParent.Size) or ws.CurrentCamera.ViewportSize).Y) + instanceValue.Y.Offset -- instance.Size = Vector2.new(xSize, ySize) elseif instanceProperty == "Position" or instanceProperty == "position" then local xPosition = ((((instanceParent and instanceParent.Position) or Vector2.new(0, 0)).X) + (instanceValue.X.Scale * ((typeof(instanceParent.Size) == "number" and instanceParent.TextBounds) or instanceParent.Size).X)) + instanceValue.X.Offset local yPosition = ((((instanceParent and instanceParent.Position) or Vector2.new(0, 0)).Y) + (instanceValue.Y.Scale * ((typeof(instanceParent.Size) == "number" and instanceParent.TextBounds) or instanceParent.Size).Y)) + instanceValue.Y.Offset -- instance.Position = Vector2.new(xPosition, yPosition) elseif instanceProperty == "Color" or instanceProperty == "color" then if typeof(instanceValue) == "string" then instance.Color = shared.theme[instanceValue] -- if instanceValue == "accent" then shared.accents[#shared.accents + 1] = instance else if table.find(shared.accents, instance) then table.remove(shared.accents, table.find(shared.accents, instance)) end end else instance.Color = instanceValue end end end -- function utility:Connection(connectionType, connectionCallback) local connection = connectionType:Connect(connectionCallback) shared.connections[#shared.connections + 1] = connection -- return connection end -- function utility:RemoveConnection(connection) for index, con in pairs(shared.connections) do if con == connection then shared.connections[index] = nil con:Disconnect() end end -- for index, con in pairs(shared.hidden_connections) do if con == connection then shared.hidden_connections[index] = nil con:Disconnect() end end end -- function utility:Lerp(instance, instanceTo, instanceTime) local currentTime = 0 local currentIndex = {} local connection -- for i,v in pairs(instanceTo) do currentIndex[i] = instance[i] end -- local function lerp() for i,v in pairs(instanceTo) do instance[i] = ((v - currentIndex[i]) * currentTime / instanceTime) + currentIndex[i] end end -- connection = rs.RenderStepped:Connect(function(delta) if currentTime < instanceTime then currentTime = currentTime + delta lerp() else connection:Disconnect() end end) end -- function utility:Unload() for i,v in pairs(shared.drawings) do v:Remove() end -- for i,v in pairs(shared.connections) do v:Disconnect() end -- shared.drawings = nil shared.connections = nil -- local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local character_model = third_person_object:popCharacterModel() character_model:Destroy() fake_rep_object:despawn() end -- shared = nil utility = nil library = nil end -- function utility:Toggle() shared.toggleKey[2] = not shared.toggleKey[2] -- for index, drawing in pairs(shared.drawings) do if getmetatable(drawing).__type == "Text" then utility:Lerp(drawing, {Transparency = shared.toggleKey[2] and 1 or 0}, 0.15) else utility:Lerp(drawing, {Transparency = shared.toggleKey[2] and 1 or 0}, 0.25) end end end -- function utility:ChangeAccent(accentColor) shared.theme.accent = accentColor -- for index, drawing in pairs(shared.accents) do drawing.Color = shared.theme.accent end end -- function utility:Object(type, properties) local object = Instance.new(type) for i,v in next, properties do object[i] = v end return object end -- function utility:Round(n, scale) return tonumber(string.format("%." .. (typeof(scale) == "number" and scale or 2) .. "f", n)) end end -- Library Functions do function library:Window(windowProperties) -- // Variables local window = { current = nil, currentindex = 1, content = {}, pages = {} } local windowProperties = windowProperties or {} -- local windowName = windowProperties.name or windowProperties.Name or "New Window" -- // Functions function window:Movement(moveAction, moveDirection) if moveAction == "Movement" then window.content[window.currentindex]:Turn(false) -- if window.content[moveDirection == "Down" and window.currentindex + 1 or window.currentindex - 1] then window.currentindex = moveDirection == "Down" and window.currentindex + 1 or window.currentindex - 1 else window.currentindex = moveDirection == "Down" and 1 or #window.content end -- window.content[window.currentindex]:Turn(true) else window.content[window.currentindex]:Action(moveDirection) end end -- function window:ChangeKeys(keyType, moveDirection, newKey) for i,v in pairs(shared.moveKeys[keyType]) do if tostring(v) == tostring(moveDirection) then shared.moveKeys[keyType][i] = nil shared.moveKeys[keyType][newKey] = moveDirection end end end -- // Main local windowFrame = utility:Create("Square", { Visible = true, Filled = true, Thickness = 0, Color = shared.theme.inline, Size = UDim2.new(0, 280, 0, 19), Position = UDim2.new(0, 50, 0, 80) }) -- local windowInline = utility:Create("Square", { Parent = windowFrame, Visible = true, Filled = true, Thickness = 0, Color = shared.theme.dark, Size = UDim2.new(1, -2, 1, -4), Position = UDim2.new(0, 1, 0, 3) }) -- local windowAccent = utility:Create("Square", { Parent = windowFrame, Visible = true, Filled = true, Thickness = 0, Color = "accent", Size = UDim2.new(1, 0, 0, 2), Position = UDim2.new(0, 0, 0, 0) }) -- local windowText = utility:Create("Text", { Parent = windowAccent, Visible = true, Text = windowName, Center = true, Outline = true, Font = 2, Color = shared.theme.text, Size = 13, Position = UDim2.new(0.5, 0, 0, 3) }) -- // Connections utility:Connection(uis.InputBegan, function(Input) if shared.toggleKey[2] and Input.KeyCode then if shared.moveKeys["Movement"][Input.KeyCode.Name] then window:Movement("Movement", shared.moveKeys["Movement"][Input.KeyCode.Name]) elseif shared.moveKeys["Action"][Input.KeyCode.Name] then window:Movement("Action", shared.moveKeys["Action"][Input.KeyCode.Name]) end end -- if Input.KeyCode and Input.KeyCode == shared.toggleKey[1] then utility:Toggle() end end) -- // Nested Functions function window:ChangeName(newName) windowText.Text = newName end -- function window:Refresh() window.content = {} local contentCount = 0 -- for index, page in pairs(window.pages) do page:Position(19 + (contentCount * 17)) window.content[#window.content + 1] = page contentCount = contentCount + 1 -- if page.open then for index, section in pairs(page.sections) do section:Position(19 + (contentCount * 17)) contentCount = contentCount + 1 -- for index, content in pairs(section.content) do content:Position(19 + (contentCount * 17)) if not content.noaction then window.content[#window.content + 1] = content end contentCount = contentCount + 1 end end end end -- utility:Update(windowFrame, "Size", UDim2.new(0, 280, 0, 23 + (contentCount * 17))) utility:Update(windowInline, "Size", UDim2.new(1, -2, 1, -4), windowFrame) end -- function window:Page(pageProperties) -- // Variables local page = {open = false, sections = {}} local pageProperties = pageProperties or {} -- local pageName = pageProperties.name or pageProperties.Name or "New Page" -- // Functions -- // Main local pageText = utility:Create("Text", { Parent = windowFrame, Visible = true, Text = "[+] "..pageName, Outline = true, Font = 2, Color = (#window.content == 0 and shared.theme.accent or shared.theme.text), Size = 13, Position = UDim2.new(0, 5, 0, 19 + ((#window.content) * 17)) }) -- // Nested Functions function page:Turn(state) if state then utility:Update(pageText, "Color", "accent") else utility:Update(pageText, "Color", "text") end end -- function page:Position(yAxis) utility:Update(page.text, "Position", UDim2.new(0, 5, 0, yAxis), windowFrame) end -- function page:Open(state, externalOpen) if not externalOpen then local ind = 0 for index, other_page in pairs(window.pages) do if other_page == page then ind = index else if other_page.open then other_page:Open(false, true) end end end -- window.currentindex = ind end -- page.open = state pageText.Text = (page.open and "[-] " or "[+] ") .. pageName -- for index, section in pairs(page.sections) do section:Open(page.open) end -- window:Refresh() end -- function page:Action(action) if action == "Enter" then page:Open(not page.open) elseif action == "Right" and not page.open then page:Open(true) elseif action == "Left" and page.open then page:Open(false) end end -- function page:Section(sectionProperties) -- // Variables local section = {content = {}} local sectionProperties = sectionProperties or {} -- local sectionName = sectionProperties.name or sectionProperties.Name or "New Section" -- // Functions -- // Main local sectionText = utility:Create("Text", { Visible = false, Text = "["..sectionName.."]", Outline = true, Font = 2, Color = shared.theme.section, Size = 13 }) -- // Nested Functions function section:Open(state) section.text.Visible = state -- for index, content in pairs(section.content) do content:Open(state) end end -- function section:Position(yAxis) utility:Update(section.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function section:Label(labelProperties) -- // Variables local label = {noaction = true} local labelProperties = labelProperties or {} -- local labelName = labelProperties.name or labelProperties.Name or "New Label" -- // Functions -- // Main local labelText = utility:Create("Text", { Visible = false, Text = labelName, Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function label:Turn(state) if state then utility:Update(label.text, "Color", "accent") else utility:Update(label.text, "Color", "text") end end -- function label:Position(yAxis) utility:Update(label.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function label:Open(state) label.text.Visible = state end -- function label:Action(action) end -- // Returning + Other label.name = labelName label.text = labelText -- section.content[#section.content + 1] = label -- return label end -- function section:Button(buttonProperties) -- // Variables local button = {} local buttonProperties = buttonProperties or {} -- local buttonName = buttonProperties.name or buttonProperties.Name or "New Button" local buttonConfirm = buttonProperties.confirm or buttonProperties.Confirm or false local buttonCallback = buttonProperties.callback or buttonProperties.Callback or buttonProperties.CallBack or buttonProperties.callBack or function() end -- // Functions -- // Main local buttonText = utility:Create("Text", { Visible = false, Text = buttonName, Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function button:Turn(state) if state then utility:Update(button.text, "Color", "accent") else utility:Update(button.text, "Color", "text") end end -- function button:Position(yAxis) utility:Update(button.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function button:Open(state) button.text.Visible = state end -- function button:Action(action) if buttonConfirm and button.text.Text ~= "confirm?" then button.text.Text = "confirm?" task.delay(3, function() if button.text.Text == "confirm?" then button.text.Text = buttonName end end) return end -- button.text.Text = "<"..buttonName..">" -- buttonCallback() -- wait(0.2) button.text.Text = buttonName end -- // Returning + Other button.name = buttonName button.text = buttonText -- section.content[#section.content + 1] = button -- return button end -- function section:Toggle(toggleProperties) local toggle = {} local toggleProperties = toggleProperties or {} -- local toggleName = toggleProperties.name or toggleProperties.Name or "New Toggle" local toggleDefault = toggleProperties.default or toggleProperties.Default or toggleProperties.def or toggleProperties.Def or false local togglePointer = toggleProperties.pointer or toggleProperties.Pointer or toggleProperties.flag or toggleProperties.Flag or nil local toggleCallback = toggleProperties.callback or toggleProperties.Callback or toggleProperties.CallBack or toggleProperties.callBack or function() end -- // Functions -- // Main local toggleText = utility:Create("Text", { Visible = false, Text = toggleName .. " -> " .. (toggleDefault and "ON" or "OFF"), Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function toggle:Turn(state) if state then utility:Update(toggle.text, "Color", "accent") else utility:Update(toggle.text, "Color", "text") end end -- function toggle:Position(yAxis) utility:Update(toggle.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function toggle:Open(state) toggle.text.Visible = state end -- function toggle:Action(action) toggle.current = not toggle.current toggle.text.Text = toggle.name .. " -> " .. (toggle.current and "ON" or "OFF") -- toggleCallback(toggle.current) end -- // Returning + Other toggle.name = toggleName toggle.text = toggleText toggle.current = toggleDefault -- section.content[#section.content + 1] = toggle -- if togglePointer then local pointer = {} -- function pointer:Get() return toggle.current end -- function pointer:Set(value) if typeof(value) == "bool" then toggle.current = value toggle.text.Text = toggle.name .. " -> " .. (toggle.current and "ON" or "OFF") -- toggleCallback(toggle.current) end end -- shared.pointers[togglePointer] = pointer end -- return toggle end -- function section:Slider(sliderProperties) local slider = {} local sliderProperties = sliderProperties or {} -- local sliderName = sliderProperties.name or sliderProperties.Name or "New Toggle" local sliderDefault = sliderProperties.default or sliderProperties.Default or sliderProperties.def or sliderProperties.Def or 1 local sliderMax = sliderProperties.max or sliderProperties.Max or sliderProperties.maximum or sliderProperties.Maximum or 10 local sliderMin = sliderProperties.min or sliderProperties.Min or sliderProperties.minimum or sliderProperties.Minimum or 1 local sliderDigits = sliderProperties.digits or sliderProperties.Digits or sliderProperties.scale or sliderProperties.Scale or 1 local sliderTick = sliderProperties.tick or sliderProperties.Tick or sliderProperties.decimals or sliderProperties.Decimals or 1 local sliderPointer = sliderProperties.pointer or sliderProperties.Pointer or sliderProperties.flag or sliderProperties.Flag or nil local sliderCallback = sliderProperties.callback or sliderProperties.Callback or sliderProperties.CallBack or sliderProperties.callBack or function() end -- // Functions -- // Main local sliderText = utility:Create("Text", { Visible = false, Text = sliderName .. " -> " .. "<" .. tostring(sliderDefault) .. "/" .. tostring(sliderMax) .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function slider:Turn(state) if state then utility:Update(slider.text, "Color", "accent") else utility:Update(slider.text, "Color", "text") end end -- function slider:Position(yAxis) utility:Update(slider.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function slider:Open(state) slider.text.Visible = state end -- function slider:Action(action) slider.current = math.clamp(action == "Left" and (slider.current - slider.tick) or (slider.current + slider.tick), slider.min, slider.max) slider.text.Text = sliderName .. " -> " .. "<" .. utility:Round(slider.current, slider.digits) .. "/" .. utility:Round(slider.max, slider.digits) .. ">" -- sliderCallback(slider.current) end -- // Returning + Other slider.name = sliderName slider.text = sliderText slider.current = sliderDefault slider.max = sliderMax slider.min = sliderMin slider.digits = sliderDigits slider.tick = sliderTick -- section.content[#section.content + 1] = slider -- if sliderPointer then local pointer = {} -- function pointer:Get() return slider.current end -- function pointer:Set(value) if typeof(value) == "number" then slider.current = value slider.text.Text = sliderName .. " -> " .. "<" .. utility:Round(slider.current, slider.digits) .. "/" .. utility:Round(slider.max, slider.digits) .. ">" -- sliderCallback(slider.current) end end -- shared.pointers[sliderPointer] = pointer end -- return slider end -- function section:List(listProperties) local list = {} local listProperties = listProperties or {} -- local listName = listProperties.name or listProperties.Name or "New Toggle" local listEnter = listProperties.enter or listProperties.Enter or listProperties.comfirm or listProperties.Comfirm or false local listDefault = listProperties.default or listProperties.Default or listProperties.def or listProperties.Def or 1 local listOptions = listProperties.options or listProperties.Options or {"Option 1", "Option 2", "Option 3"} local listPointer = listProperties.pointer or listProperties.Pointer or listProperties.flag or listProperties.Flag or nil local listCallback = listProperties.callback or listProperties.Callback or listProperties.CallBack or listProperties.callBack or function() end -- // Functions -- // Main local listText = utility:Create("Text", { Visible = false, Text = listName .. " -> " .. "<" .. tostring(listOptions[listDefault]) .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function list:Turn(state) if state then utility:Update(list.text, "Color", "accent") else utility:Update(list.text, "Color", "text") end end -- function list:Position(yAxis) utility:Update(list.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function list:Open(state) list.text.Visible = state end -- function list:Action(action) if (listEnter and action == "Enter") then listCallback(list.options[list.current]) else list.current = ((list.options[action == "Left" and list.current - 1 or list.current + 1]) and (action == "Left" and list.current - 1 or list.current + 1)) or (action == "Left" and #list.options or 1) -- list.text.Text = listName .. " -> " .. "<" .. tostring(list.options[list.current]) .. ">" -- if not listEnter then listCallback(list.options[list.current]) end end end -- // Returning + Other if listPointer then local pointer = {} -- function pointer:Get(cfg) if cfg then return list.current else return list.options[list.current] end end -- function pointer:Set(value) if typeof(value) == "number" and list.options[value] then list.current = value -- list.text.Text = listName .. " -> " .. "<" .. tostring(list.options[list.current]) .. ">" -- if not listEnter then listCallback(list.options[list.current]) end end end -- shared.pointers[listPointer] = pointer end -- list.name = listName list.text = listText list.current = listDefault list.options = listOptions -- section.content[#section.content + 1] = list -- return list end -- function section:MultiList(multiListProperties) local multiList = {} local multiListProperties = multiListProperties or {} -- local multiListName = multiListProperties.name or multiListProperties.Name or "New Toggle" local multiListDefault = multiListProperties.default or multiListProperties.Default or multiListProperties.def or multiListProperties.Def or 1 local multiListOptions = multiListProperties.options or multiListProperties.Options or {{"Option 1", false}, {"Option 2", false}, {"Option 3", false}} local multiListPointer = multiListProperties.pointer or multiListProperties.Pointer or multiListProperties.flag or multiListProperties.Flag or nil local multiListCallback = multiListProperties.callback or multiListProperties.Callback or multiListProperties.CallBack or multiListProperties.callBack or function() end -- // Functions -- // Main local multiListText = utility:Create("Text", { Visible = false, Text = multiListName .. " -> " .. "<" .. (multiListOptions[multiListDefault] and (tostring(multiListOptions[multiListDefault][1]) .. ":" .. ((multiListOptions[multiListDefault][2]) and "ON" or "OFF")) or "Nil") .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function multiList:Turn(state) if state then utility:Update(multiList.text, "Color", "accent") else utility:Update(multiList.text, "Color", "text") end end -- function multiList:Position(yAxis) utility:Update(multiList.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function multiList:Open(state) multiList.text.Visible = state end -- function multiList:Action(action) if action == "Enter" then multiList.options[multiList.current][2] = not multiList.options[multiList.current][2] -- multiList.text.Text = multiList.name .. " -> " .. "<" .. tostring(multiList.options[multiList.current][1]) .. ":" .. (multiList.options[multiList.current][2] and "ON" or "OFF") .. ">" -- multiListCallback(multiList.options) else multiList.current = ((multiList.options[action == "Left" and multiList.current - 1 or multiList.current + 1]) and (action == "Left" and multiList.current - 1 or multiList.current + 1)) or (action == "Left" and #multiList.options or 1) -- multiList.text.Text = multiList.name .. " -> " .. "<" .. tostring(multiList.options[multiList.current][1]) .. ":" .. (multiList.options[multiList.current][2] and "ON" or "OFF") .. ">" -- multiListCallback(multiList.options) end end -- // Returning + Other if multiListPointer then local pointer = {} -- function pointer:Get() return list.options end -- function pointer:Set(value) if typeof(value) == "table" and value[multiList.current] then multiList.options = value -- multiList.text.Text = multiList.name .. " -> " .. "<" .. tostring(multiList.options[multiList.current][1]) .. ":" .. (multiList.options[multiList.current][2] and "ON" or "OFF") .. ">" -- multiListCallback(multiList.options) end end -- shared.pointers[multiListPointer] = pointer end -- multiList.name = multiListName multiList.text = multiListText multiList.current = multiListDefault multiList.options = multiListOptions -- section.content[#section.content + 1] = multiList -- return multiList end -- function section:PlayerList(playerListProperties) local playerList = {} local playerListProperties = playerListProperties or {} -- local playerListName = playerListProperties.name or playerListProperties.Name or "New Toggle" local playerListEnter = playerListProperties.enter or playerListProperties.Enter or playerListProperties.comfirm or playerListProperties.Comfirm or false local playerListCallback = playerListProperties.callback or playerListProperties.Callback or playerListProperties.CallBack or playerListProperties.callBack or function() end local playerListOptions = {} -- // Functions for index, player in pairs(plrs:GetPlayers()) do if player ~= plr then playerListOptions[#playerListOptions + 1] = player end end -- utility:Connection(plrs.PlayerAdded, function(player) if player ~= plr then if not table.find(playerList.options, player) then playerList.options[#playerList.options + 1] = player end -- if #playerList.options == 1 then playerList.current = 1 -- playerList.text.Text = playerList.name .. " -> " .. "<" .. tostring(playerList.options[playerList.current].Name) .. ">" -- if not playerListEnter then playerListCallback(tostring(playerList.options[playerList.current])) end end end end) -- utility:Connection(plrs.PlayerRemoving, function(player) if player ~= plr then local index = table.find(playerList.options, player) local current = playerList.current local current_plr = playerList.options[current] -- if index then table.remove(playerList.options, index) end -- if #playerList.options == 0 then playerList.text.Text = playerList.name .. " -> " .. "<Nil>" else local oldCurrent = playerList.current -- if index and playerList.options[playerList.current] ~= current_plr and table.find(playerList.options, current_plr) then playerList.current = table.find(playerList.options, current_plr) end -- playerList.text.Text = playerList.name .. " -> " .. "<" .. tostring(playerList.options[playerList.current].Name) .. ">" -- if not playerListEnter then if oldCurrent ~= playerList.current then playerListCallback(tostring(playerList.options[playerList.current])) end end end end end) -- // Main local playerListText = utility:Create("Text", { Visible = false, Text = playerListName .. " -> " .. "<" .. (#playerListOptions >= 1 and tostring(playerListOptions[1].Name) or "Nil") .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function playerList:Turn(state) if state then utility:Update(playerList.text, "Color", "accent") else utility:Update(playerList.text, "Color", "text") end end -- function playerList:Position(yAxis) utility:Update(playerList.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function playerList:Open(state) playerList.text.Visible = state end -- function playerList:Action(action) if (playerListEnter and action == "Enter") then if #playerList.options >= 1 then playerListCallback(tostring(playerList.options[playerList.current])) end else if #playerList.options >= 1 then local oldCurrent = playerList.current -- playerList.current = ((playerList.options[action == "Left" and playerList.current - 1 or playerList.current + 1]) and (action == "Left" and playerList.current - 1 or playerList.current + 1)) or (action == "Left" and #playerList.options or 1) -- playerList.text.Text = playerList.name .. " -> " .. "<" .. tostring(playerList.options[playerList.current].Name) .. ">" -- if not playerListEnter then if oldCurrent ~= playerList.current then playerListCallback(tostring(playerList.options[playerList.current])) end end end end end -- // Returning + Other playerList.name = playerListName playerList.text = playerListText playerList.current = 1 playerList.options = playerListOptions -- section.content[#section.content + 1] = playerList -- return playerList end -- function section:Keybind(keybindProperties) -- // Variables local keybind = {} local keybindProperties = keybindProperties or {} -- local keybindName = keybindProperties.name or keybindProperties.Name or "New Keybind" local keybindDefault = keybindProperties.default or keybindProperties.Default or keybindProperties.def or keybindProperties.Def or Enum.KeyCode.B local keybindInputs = keybindProperties.inputs or keybindProperties.Inputs or true local keybindPointer = keybindProperties.pointer or keybindProperties.Pointer or keybindProperties.flag or keybindProperties.Flag or nil local keybindCallback = keybindProperties.callback or keybindProperties.Callback or keybindProperties.CallBack or keybindProperties.callBack or function() end -- // Functions function keybind:Shorten(string) for i,v in pairs(shared.shortenedInputs) do string = string.gsub(string, i, v) end -- return string end -- function keybind:Change(input) input = input or "..." local inputTable = {} -- if input.EnumType then if input.EnumType == Enum.KeyCode or input.EnumType == Enum.UserInputType then if table.find(shared.allowedKeyCodes, input.Name) or table.find(shared.allowedInputTypes, input.Name) then inputTable = {input.EnumType == Enum.KeyCode and "KeyCode" or "UserInputType", input.Name} -- keybind.current = inputTable keybind.text.Text = keybindName .. " -> " .. "<" .. (#keybind.current > 0 and keybind:Shorten(keybind.current[2]) or "...") .. ">" -- return true end end end -- return false end -- // Main local keybindText = utility:Create("Text", { Visible = false, Text = keybindName .. " -> " .. "<" .. "..." .. ">", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- // Nested Functions function keybind:Turn(state) if state then utility:Update(keybind.text, "Color", "accent") else utility:Update(keybind.text, "Color", "text") end end -- function keybind:Position(yAxis) utility:Update(keybind.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) end -- function keybind:Open(state) keybind.text.Visible = state end -- function keybind:Action(action) if not keybind.selecting then keybind.text.Text = keybindName .. " -> " .. "<" .. "..." .. ">" -- keybind.selecting = true -- local connection connection = utility:Connection(uis.InputBegan, function(Input) if connection then local inputProcessed = keybind:Change(Input.KeyCode.Name ~= "Unknown" and Input.KeyCode or (keybind.inputs and Input.UserInputType)) -- if inputProcessed then wait() keybind.selecting = false -- utility:RemoveConnection(connection) keybindCallback(Enum[keybind.current[1]][keybind.current[2]]) end end end) end end -- // Returning + Other if keybindPointer then local pointer = {} -- function pointer:Get(cfg) if cfg then return keybind.current else return Enum[keybind.current[1]][keybind.current[2]] end end -- function pointer:Set(value) if typeof(value) == "table" and value[1] and value[2] then local inputProcessed = keybind:Change(Enum[value[1]][value[2]]) -- if inputProcessed then keybindCallback(Enum[keybind.current[1]][keybind.current[2]]) end end end -- shared.pointers[keybindPointer] = pointer end -- keybind.name = keybindName keybind.text = keybindText keybind.current = {} keybind.inputs = keybindInputs keybind.selecting = false -- keybind:Change(keybindDefault) -- section.content[#section.content + 1] = keybind -- return keybind end -- function section:ColorList(colorListProperties) local colorList = {} local colorListProperties = colorListProperties or {} -- local colorListName = colorListProperties.name or colorListProperties.Name or "New Toggle" local colorListDefault = colorListProperties.default or colorListProperties.Default or colorListProperties.def or colorListProperties.Def or 1 local colorListPointer = colorListProperties.pointer or colorListProperties.Pointer or colorListProperties.flag or colorListProperties.Flag or nil local colorListCallback = colorListProperties.callback or colorListProperties.Callback or colorListProperties.CallBack or colorListProperties.callBack or function() end -- // Functions -- // Main -- local colorListText = utility:Create("Text", { Visible = false, Text = colorListName .. " -> " .. "< >", Outline = true, Font = 2, Color = shared.theme.text, Size = 13 }) -- local colorListColor = utility:Create("Square", { Visible = false, Filled = true, Thickness = 0, Color = shared.colors[colorListDefault], Size = UDim2.new(0, 17, 0, 9), }) -- // Nested Functions function colorList:Turn(state) if state then utility:Update(colorList.text, "Color", "accent") else utility:Update(colorList.text, "Color", "text") end end -- function colorList:Position(yAxis) utility:Update(colorList.text, "Position", UDim2.new(0, 22, 0, yAxis), windowFrame) utility:Update(colorList.color, "Position", UDim2.new(0, 22 + colorList.text.TextBounds.X - 26, 0, yAxis + 3), windowFrame) end -- function colorList:Open(state) colorList.text.Visible = state colorList.color.Visible = state end -- function colorList:Action(action) colorList.current = ((colorList.options[action == "Left" and colorList.current - 1 or colorList.current + 1]) and (action == "Left" and colorList.current - 1 or colorList.current + 1)) or (action == "Left" and #colorList.options or 1) -- colorList.text.Text = colorListName .. " -> " .. "< >" colorList.color.Color = colorList.options[colorList.current] -- colorListCallback(colorList.options[colorList.current]) end -- // Returning + Other if colorListPointer then local pointer = {} -- function pointer:Get(cfg) if cfg then return colorList.current else return colorList.options[colorList.current] end end -- function pointer:Set(value) if typeof(value) == "number" then colorList.current = value -- colorList.text.Text = colorListName .. " -> " .. "< >" colorList.color.Color = colorList.options[colorList.current] -- colorListCallback(colorList.options[colorList.current]) end end -- shared.pointers[colorListPointer] = pointer end -- colorList.name = colorListName colorList.text = colorListText colorList.color = colorListColor colorList.current = colorListDefault colorList.options = shared.colors -- section.content[#section.content + 1] = colorList -- return colorList end -- // Returning + Other section.name = sectionName section.text = sectionText -- page.sections[#page.sections + 1] = section -- return section end -- // Returning + Other page.name = pageName page.text = pageText -- window.pages[#window.pages + 1] = page window:Refresh() -- return page end -- // Returning return window end end -- UI do local window = library:Window({name = "menu"}) local page_thirdperson = window:Page({name = "third person"}) local section_settings = page_thirdperson:Section({name = "third person settings"}) do -- third person section_settings:Toggle({name = "enabled", default = false, pointer = "third_person"}) section_settings:Slider({name = "third person x", default = 0, max = 10, min = -10, tick = 0.1, pointer = "third_person_x"}) section_settings:Slider({name = "third person y", default = 0, max = 10, min = -10, tick = 0.1, pointer = "third_person_y"}) section_settings:Slider({name = "third person z", default = 5, max = 10, min = -10, tick = 0.1, pointer = "third_person_z"}) end end do -- Hooks game_client.network.send = function(self, command, ...) local arguments = {...} if command == "stance" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local stance = arguments[1] third_person_object:setStance(stance) end end if command == "aim" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local aim = arguments[1] third_person_object:setAim(aim) end end if command == "equip" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local weapon_index = arguments[1] if weapon_index < 3 then third_person_object:equip(weapon_index) elseif weapon_index == 3 then third_person_object:equipMelee(weapon_index) end end end if command == "sprint" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local sprinting = arguments[1] third_person_object:setSprint(sprinting) end end if command == "stab" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then third_person_object:stab() end end if command == "spawn" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local character_model = third_person_object:popCharacterModel() character_model:Destroy() fake_rep_object:despawn() end local current_loadout = game_client.active_loadout.getActiveLoadoutData(game_client.player_data.getPlayerData()) fake_rep_object:spawn(nil, current_loadout) end if command == "forcereset" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local character_model = third_person_object._character character_model:Destroy() fake_rep_object:despawn() end end if command == "newbullets" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then third_person_object:kickWeapon() end end if command == "swapweapon" then local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local weapon_index = arguments[2] local weapon_dropped = arguments[1] if weapon_index < 3 then fake_rep_object._activeWeaponRegistry[weapon_index] = { weaponName = weapon_dropped.Gun.Value, weaponData = game_client.content_database.getWeaponData(weapon_dropped.Gun.Value), } else fake_rep_object._activeWeaponRegistry[weapon_index] = { weaponName = weapon_dropped.Knife.Value, weaponData = game_client.content_database.getWeaponData(weapon_dropped.Knife.Value), } end end end if command == "repupdate" then if shared.pointers["third_person"]:Get() and game_client.character_interface:isAlive() then local third_person_object = fake_rep_object:getThirdPersonObject() if not third_person_object then local weapon_controller = game_client.weapon_controller_interface.getController() fake_rep_object._activeWeaponRegistry[1] = { weaponName = weapon_controller._activeWeaponRegistry[1]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[1]._weaponData, attachmentData = weapon_controller._activeWeaponRegistry[1]._weaponAttachments, camoData = weapon_controller._activeWeaponRegistry[1]._camoList } fake_rep_object._activeWeaponRegistry[2] = { weaponName = weapon_controller._activeWeaponRegistry[2]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[2]._weaponData, attachmentData = weapon_controller._activeWeaponRegistry[2]._weaponAttachments, camoData = weapon_controller._activeWeaponRegistry[2]._camoList } fake_rep_object._activeWeaponRegistry[3] = { weaponName = weapon_controller._activeWeaponRegistry[3]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[3]._weaponData, camoData = weapon_controller._activeWeaponRegistry[3]._camoData } fake_rep_object._activeWeaponRegistry[4] = { weaponName = weapon_controller._activeWeaponRegistry[4]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[4]._weaponData } fake_rep_object._thirdPersonObject = game_client.third_person_object.new(fake_rep_object._player, nil, fake_rep_object) fake_rep_object._thirdPersonObject:equip(weapon_controller._activeWeaponIndex, true) fake_rep_object._alive = true end local clock_time = game_client.game_clock.getTime() local tick = tick() local velocity = Vector3.zero if fake_rep_object._receivedPosition and fake_rep_object._receivedFrameTime then velocity = (arguments[1] - fake_rep_object._receivedPosition) / (tick - fake_rep_object._receivedFrameTime); end local broken = false if fake_rep_object._lastPacketTime and clock_time - fake_rep_object._lastPacketTime > 0.5 then broken = true fake_rep_object._breakcount = fake_rep_object._breakcount + 1 end fake_rep_object._smoothReplication:receive(clock_time, tick, { t = tick, position = arguments[1], velocity = velocity, angles = arguments[2], breakcount = fake_rep_object._breakcount }, broken); fake_rep_object._updaterecieved = true fake_rep_object._receivedPosition = arguments[1] fake_rep_object._receivedFrameTime = tick fake_rep_object._lastPacketTime = clock_time fake_rep_object:step(3, true) else local third_person_object = fake_rep_object:getThirdPersonObject() if third_person_object then local character_model = third_person_object:popCharacterModel() character_model:Destroy() fake_rep_object:despawn() end end end return old_send(self, command, table.unpack(arguments)) end old_new_index = hookmetamethod(game, "__newindex", function(self, index, value) if checkcaller() then return old_new_index(self, index, value) end if game_client.character_interface:isAlive() and shared.pointers["third_person"]:Get() then if self == ws.CurrentCamera and index == "CFrame" then value *= CFrame.new(shared.pointers["third_person_x"]:Get(), shared.pointers["third_person_y"]:Get(), shared.pointers["third_person_z"]:Get()) end end return old_new_index(self, index, value) end) end do -- Third Person local player = Instance.new("Player") -- Create a new character to avoid the warn function fake_rep_object = game_client.replication_object.new(player) fake_rep_object._player = plr -- Set it to your localplayer player:Destroy() player = nil if game_client.character_interface:isAlive() and game_client.weapon_controller_interface.getController() then local weapon_controller = game_client.weapon_controller_interface.getController() fake_rep_object._activeWeaponRegistry[1] = { weaponName = weapon_controller._activeWeaponRegistry[1]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[1]._weaponData, attachmentData = weapon_controller._activeWeaponRegistry[1]._weaponAttachments, camoData = weapon_controller._activeWeaponRegistry[1]._camoList } fake_rep_object._activeWeaponRegistry[2] = { weaponName = weapon_controller._activeWeaponRegistry[2]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[2]._weaponData, attachmentData = weapon_controller._activeWeaponRegistry[2]._weaponAttachments, camoData = weapon_controller._activeWeaponRegistry[2]._camoList } fake_rep_object._activeWeaponRegistry[3] = { weaponName = weapon_controller._activeWeaponRegistry[3]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[3]._weaponData, camoData = weapon_controller._activeWeaponRegistry[3]._camoData } fake_rep_object._activeWeaponRegistry[4] = { weaponName = weapon_controller._activeWeaponRegistry[4]._weaponName, weaponData = weapon_controller._activeWeaponRegistry[4]._weaponData } fake_rep_object._thirdPersonObject = game_client.third_person_object.new(fake_rep_object._player, nil, fake_rep_object) fake_rep_object._thirdPersonObject:equip(1, true) fake_rep_object._alive = true end end |
Script 4:
Phantom Forces Silent Aim V2 Script:
getgenv().fov = 180 -- Any angle between 0-180 degrees getgenv().visibleCheck = false -- true, false getgenv().targetedPart = "Head" -- "Head", "Torso" or "Random" loadstring(game:HttpGet("https://raw.githubusercontent.com/Spoorloos/scripts/main/silent_aim_v2.lua"))() |
Script 5:
Phantom Forces Radar Hack Script:
getgenv().radar_hack = true local game_client = {} for i,v in next, getgc(true) do if typeof(v) == "table" then if rawget(v, 'goingLoud') and rawget(v, 'isInSight') then game_client.spotting = v elseif rawget(v, "getCharacterObject") then game_client.character_controller = v end end end local old_is_spotted = game_client.spotting.isSpotted game_client.spotting.isSpotted = function(character) if game_client.character_controller.isAlive() and getgenv().radar_hack then return true else return old_is_spotted(character) end end |
Script 6:
Phantom Forces Basic ESP & Wall Check Script:
-- // ESP CONFIGURATION \\ -- _G.sex = true --> true: ESP Enabled | false: ESP Disabled (Use the switch key) _G.switchKey = Enum.KeyCode.RightShift --> List: https://create.roblox.com/docs/reference/engine/enums/KeyCode -- // DONT TOUCH \\ -- loadstring(game:HttpGet('https://raw.githubusercontent.com/imvipp/roblox/main/shitware/phantomforces/basic_esp.lua'))() |
Script 7:
Phantom Forces Fast Animations Script:
https://raw.githubusercontent.com/The3Bakers4565/Spicy-Bagel/main/Other/Phantom_Forces/Fast_Animations.lua |
Script 8:
Phantom Hitbox Expander GUI Script:
https://raw.githubusercontent.com/The3Bakers4565/Spicy-Bagel/main/Other/Phantom_Forces/Hit_Box_Expander.lua |
Script 9:
Phantom Forces Actor Bypass Script:
for _, actor in next, getactors() do if tostring(actor) == "lol" then syn.run_on_actor(actor, [[ paste script here ]]) end end |
Script 10:
Phantom Forces Knife Aura – Auto Stab Script:
https://raw.githubusercontent.com/The3Bakers4565/Spicy-Bagel/main/Other/Phantom_Forces/Knife_Aura.lua |
Script 11:
Phantom Forces Auto Wall, Auto Shoot Script:
https://raw.githubusercontent.com/The3Bakers4565/Spicy-Bagel/main/Other/Phantom_Forces/Silent_Aim.lua |
Script 12:
Phantom Forces Speed Script:
game.Players.LocalPlayer.Character.Humanoid:Destroy() Instance.new('Humanoid').Parent = game.Players.LocalPlayer.Character game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 50 |
Script 13:
Phantom Forces Anti-Fall Damage Script:
game.Players.LocalPlayer.Character.Humanoid:Destroy() Instance.new('Humanoid').Parent = game.Players.LocalPlayer.Character |
Script 14:
Phantom Forces Pishy Pampor Script:
-- Settings -- getgenv().Settings = { Aimbot = true, Adjust_Bullet_Drop = true, Target_Prediction = true, Realistic_Aiming_Speed = true, Hitscan_Priority = "Head", -- Head, Torso, Closest Hitscans = { { "Head", true }, { "Body", true }, { "Limbs", false } }, Smoothing_Type = "Exponential", -- Exponential (For realistic aiming but isn't as good as Linear) / Linear Randomization = 1, Smoothing = 20, FOV = 8, FOVType = "Dynamic", -- Dynamic / Static Wallbang = true, MaxWalls = 2, ShowDebugMenu = true, DrawFOVCircle = true, FOVCircleSettings = { Color = Color3.fromRGB(255, 255, 255), Transparency = 1, Thickness = 1, } } loadstring(game:HttpGet("https://raw.githubusercontent.com/Nexilist/MyScripts/main/Pishy%20Pampor.lua", true))() |
Script 15:
Phantom Forces Strawhook Script:
https://raw.githubusercontent.com/VoidMasterX/strawhook/main/script.lua |
Script 16:
Phantom Forces Pastebin Hacks:
https://raw.githubusercontent.com/Yousuck780/phantom-forces-new/main/noob |
loadstring(game:HttpGet("https://raw.githubusercontent.com/VoidMasterX/strawhook/main/script.lua", true))() |
Script 17:
Phantom Forces Aimbot Script Pastebin 2023:
getgenv().S = { Legit = true, FOV = 250, WallCheck = true, Smooth = 0.1 } for i,v in pairs(game:GetChildren()) do getgenv()[v.ClassName] = v end local Player = Players.LocalPlayer local Mouse = Player:GetMouse() local Shoot = false function NotObstructing(i, v) if S.WallCheck then c = Workspace.CurrentCamera.CFrame.Position a = Ray.new(c, i - c) f = Workspace:FindPartOnRayWithIgnoreList(a, v) return f == nil else return true end end local GetClosestPlayerToCurser = function() local Target = nil local MaxDistance = math.huge for i,v in pairs(Workspace.Players:GetChildren()) do if v.Name ~= Player.TeamColor.Name then for i,v in pairs(v:GetChildren()) do if v:IsA("Model") then local OnPoint, OnScreen = Workspace.CurrentCamera:WorldToViewportPoint(v:GetModelCFrame().Position) if OnScreen and NotObstructing(v:GetModelCFrame().Position, {Player.Character, v}) then local Mag = (Vector2.new(Mouse.X, Mouse.Y) - Vector2.new(OnPoint.X, OnPoint.Y)).Magnitude if Mag < MaxDistance then Target = v MaxDistance = Mag end end end end end end return Target end local Return = function(A) return Workspace.CurrentCamera:WorldToScreenPoint(A) end UserInputService.InputBegan:Connect( function(v) if v.UserInputType == Enum.UserInputType.MouseButton2 then Shoot = true end end ) UserInputService.InputEnded:Connect( function(v) if v.UserInputType == Enum.UserInputType.MouseButton2 then Shoot = false end end ) RunService.Stepped:Connect(function() pcall(function() if not S.Legit or not Shoot then return end local SexPosition = Return(GetClosestPlayerToCurser():GetModelCFrame().Position) local MousePosition = Return(Mouse.Hit.Position) local OldX, OldY = (SexPosition.X - MousePosition.X), (SexPosition.Y - MousePosition.Y) mousemoverel(OldX * S.Smooth, OldY * S.Smooth) end) end) |
Script 18:
Phantom Forces Script Pastebin Hacks – OP GUI 2023:
https://raw.githubusercontent.com/The3Bakers4565/Spicy-Bagel/main/Other/Phantom_Forces/Hit_Box_Expander.lua |
Script 19:
Phantom Forces Script Pastebin Hacks – Free Chams:
function gs(serv) return game:GetService(serv) end local plrs = gs"Players" local lp = plrs.LocalPlayer local ws = gs"Workspace" function isEnemy(character) if character.Parent.Name == tostring(lp.TeamColor) then return false else return true end end function createChams(player) local newChams = Instance.new("Highlight") newChams.Parent = player end spawn(function() for i,v in pairs(ws.Players:GetDescendants()) do if isEnemy(v) and v.Name == "Player" then createChams(v) end end end) -- yes, ik i made a function, but for some reason it didnt work here spawn(function() ws.Players["Bright orange"].ChildAdded:connect(function(child) wait(1) if isEnemy(child) == true then local newChams = Instance.new("Highlight") newChams.Parent = child end end) end) spawn(function() ws.Players["Bright blue"].ChildAdded:connect(function(child) wait(1) if isEnemy(child) == true then local newChams = Instance.new("Highlight") newChams.Parent = child end end) end) spawn(function() ws.Ignore.DeadBody.ChildAdded:connect(function(child) if child:FindFirstChild("Highlight") then child.Highlight:Destroy() end end) end) |
Script 20:
Phantom Forces Script Pastebin Hacks – GUI 2022:
local library = loadstring(game:HttpGet(('https://raw.githubusercontent.com/bloodball/-back-ups-for-libs/main/wall%20v3')))() local ESP = loadstring(game:HttpGet("https://raw.githubusercontent.com/zekgt/lua/main/phantom%20forces/libraries/ESP.lua"))() ESP.Boxes = false ESP.Names = false local window = library:CreateWindow("Phantom Forces") local folder1 = window:CreateFolder("ESP") local folder2 = window:CreateFolder("Misc") local Ghosts = game.Workspace.Players['Bright orange'] local Phantoms = game.Workspace.Players['Bright blue'] ESP:AddObjectListener(Ghosts, { Recursive = true, Type = "Model", CustomName = " ", Color = Color3.fromRGB(255,165,0), Validator = function(obj) return obj:FindFirstChild("Torso") end, IsEnabled = "GhostsESP" }) ESP:AddObjectListener(Phantoms, { Recursive = true, Type = "Model", CustomName = " ", Color = Color3.fromRGB(0,0,233), Validator = function(obj) return obj:FindFirstChild("Torso") end, IsEnabled = "PhantomsESP" }) ESP.GhostsESP = false ESP.PhantomsESP = false folder1:Toggle("Enabled", function(v) if v then ESP:Toggle(true) else ESP:Toggle(false) end end) folder1:Toggle("Ghosts", function(v) -- so fucking sorry for adding this because i couldn't figure out teamcheck ESP.GhostsESP = v end) folder1:Toggle("Phantoms", function(v) -- so fucking sorry for adding this because i couldn't figure out teamcheck ESP.PhantomsESP = v end) folder1:Toggle("Boxes", function(v) if v then ESP.Boxes = true else ESP.Boxes = false end end) folder1:Toggle("Tracers", function(v) if v then ESP.Tracers = true else ESP.Tracers = false end end) folder1:Toggle("Distance", function(v) if v then ESP.Names = true else ESP.Names = false end end) folder2:Button("Rejoin Server", function() local ts = game:GetService("TeleportService") local p = game:GetService("Players").LocalPlayer ts:Teleport(game.PlaceId, p) end) local creditsTable = { "UI: Aika", "ESP: Kiriot22", "Script: ZekGT", } folder2:Dropdown("Credits", creditsTable, true, function() warn"" end) folder2:Slider("FPS Capacity",{ min = 10; max = 300; precise = false; }, function(v) setfpscap(v) end) print("ESP Loaded") |
Script 21:
Unlock All Guns 2023:
-- made by siper#9938 -- modules local network, char, loadgun, loadknife; do for _, object in next, getgc(true) do if (typeof(object) == "table") then if (rawget(object, "send")) then network = object; elseif (rawget(object, "setbasewalkspeed")) then char = object; end elseif (typeof(object) == "function") then local name = debug.getinfo(object).name; if (name == "loadgun") then loadgun = object; elseif (name == "loadknife") then loadknife = object; end end end end -- services local replicatedStorage = game:GetService("ReplicatedStorage"); -- cache local content = replicatedStorage:WaitForChild("Content"); local productionContent = content:WaitForChild("ProductionContent"); local attachmentModules = productionContent:WaitForChild("AttachmentModules"); local gunModules = productionContent:WaitForChild("GunModules"); -- stored data local gunIgnore = {"JUGGUN", "HK417Old", "PAINTBALL GUN", "RAILGUN OLD", "PPK12", "SVK12E", "MG42"}; local weaponData = {}; local attachmentData = {}; local primaryClasses = { "ASSAULT", "BATTLE", "CARBINE", "SHOTGUN", "PDW", "DMR", "LMG", "SNIPER" }; local generalClassData = { ["ASSAULT"] = "AK12", ["BATTLE"] = "AK12", ["CARBINE"] = "M4A1", ["SHOTGUN"] = "KSG 12", ["PDW"] = "MP5K", ["DMR"] = "INTERVENTION", ["LMG"] = "COLT LMG", ["SNIPER"] = "INTERVENTION", ["PISTOL"] = "M9", ["MACHINE PISTOL"] = "M9", ["REVOLVER"] = "M9", ["OTHER"] = "M9", ["FRAGMENTATION"] = "M67 FRAG", ["HIGH EXPLOSIVE"] = "M67 FRAG", ["IMPACT"] = "M67 FRAG", ["ONE HAND BLADE"] = "KNIFE", ["TWO HAND BLADE"] = "KNIFE", ["ONE HAND BLUNT"] = "MAGLITE CLUB", ["TWO HAND BLUNT"] = "HOCKEY STICK", }; local weapons = {}; -- hooks do local oldNetworkSend = network.send; network.send = function(self, name, ...) local args = {...}; if (name == "changewep") then weaponData[args[1]] = args[2]; args[2] = generalClassData[weapons[args[2]].type]; end if (name == "changeatt") then attachmentData[args[2]] = args[3]; return end return oldNetworkSend(self, name, unpack(args)); end local oldLoadgrenade = char.loadgrenade; char.loadgrenade = function(self, name, ...) name = weaponData["Grenade"] or name; return oldLoadgrenade(self, name, ...); end; local oldLoadknife; oldLoadknife = hookfunction(loadknife, function(name, ...) name = weaponData["Knife"] or name; return oldLoadknife(name, ...); end); local oldLoadgun; oldLoadgun = hookfunction(loadgun, function(name, magsize, sparerounds, attachments, ...) local gunData = weapons[name]; local newName = table.find(primaryClasses, gunData.type) and weaponData["Primary"] or weaponData["Secondary"]; name = (newName and newName or name); local attachs = attachmentData[name]; if (attachs) then attachments = attachs; end return oldLoadgun(name, magsize, sparerounds, attachments, ...); end); end -- init do for _, module in next, gunModules:GetChildren() do if (not table.find(gunIgnore, module.Name)) then local data = require(module); weapons[module.Name] = data; end end for _, module in next, attachmentModules:GetChildren() do local data = require(module); data.unlockkills = 0; end for _, module in next, gunModules:GetChildren() do if (not table.find(gunIgnore, module.Name)) then local data = require(module); data.unlockrank = 0; data.adminonly = false; data.supertest = false; data.exclusiveunlock = false; data.hideunlessowned = false; data.adminonly = false; end end end |
Script 22:
Rage, Legit, Invisible, Gun Mods, & AA Script:
https://www.mediafire.com/file/bscf71m7umuyccb/Phantom_Forces_22_HUB_-_FREE_TO_USE_-_AIMBOT_%2526_MORE%2521.txt/file |
Script 23:
Firerate Hacks Script 2023:
https://ehub.fun/uploads/firerate13.lua |
Script 24:
Phantom Forces Script Pastebin Hacks – OP 2023:
https://pastebin.com/ezRzS5gN |
Script 25:
Phantom Forces Script Pastebin Hacks – Raycast, Chams, Open Source:
local plr = game.Players.LocalPlayer local l_character = plr.Character or plr.CharacterAdded:wait() local f_team local e_team local e_plrlist local rs = game:GetService(“RunService”) local camera = workspace.CurrentCamera local pfId = 292439477 local pId = game.PlaceId local is_pf = pfId == pId local function geteplrlist() local t = {} if is_pf then local team_color_to_string = tostring(game.Players.LocalPlayer.TeamColor) if team_color_to_string == “Bright orange” then t = workspace.Players[“Bright blue”]:GetChildren() else t = workspace.Players[“Bright orange”]:GetChildren() end elseif not is_pf then if #game.Teams:GetChildren() > 0 then for i,v in next, game.Players:GetPlayers() do if v.Team~=game.Players.LocalPlayer.Team then table.insert(t,v) end end else for i,v in next, game.Players:GetPlayers() do if v ~= game.Players.LocalPlayer then table.insert(t,v) end end end end return t end rs.Stepped:Connect(function() e_plrlist = geteplrlist() end) local function check_for_esp(c_model) if not c_model then return else returnv = false for i,v in next, c_model:GetDescendants() do if v:IsA(“BoxHandleAdornment”) then returnv = true break end end return returnv end end local function remove_esp(c_model) for i,v in next, c_model:GetDescendants() do if v:IsA(“BoxHandleAdornment”) then v:Destroy() end end end local function cast_ray(body_part) local rp = RaycastParams.new() rp.FilterDescendantsInstances = l_character:GetDescendants() rp.FilterType = Enum.RaycastFilterType.Blacklist local rcr = workspace:Raycast(camera.CFrame.Position, (body_part.Position – camera.CFrame.Position).Unit * 15000,rp) if rcr and rcr.Instance:IsDescendantOf(body_part.Parent) then return true else return false end end local function create_esp(c_model) if not c_model then return else if check_for_esp(c_model) then for i,v in next, c_model:GetChildren() do if v:IsA(“BasePart”) and v:FindFirstChild(“BoxHandleAdornment”) then local walt = v:FindFirstChild(“BoxHandleAdornment”) if cast_ray(v) then walt.Color3 = Color3.fromRGB(0,255,0) else walt.Color3 = Color3.fromRGB(255,0,0) end end end else for i,v in next, c_model:GetChildren() do if v:IsA(“BasePart”) then local b = Instance.new(“BoxHandleAdornment”) b.Parent = v b.Adornee = v b.AlwaysOnTop = true b.Size = v.Size b.ZIndex = 2 b.Transparency = 0.5 end end end end end setfpscap(10000) rs.RenderStepped:Connect(function() for i,v in next, e_plrlist do if is_pf then create_esp(v) else create_esp(v.Character) end end end)
Script 26:
Phantom Forces Unfair Hub Script:
https://raw.githubusercontent.com/rblxscriptsnet/unfair/main/rblxhub.lua |
Script 27:
Phantom Forces Strawhook Script:
https://raw.githubusercontent.com/VoidMasterX/strawhook/main/script.lua |
Script 28:
Phantom Forces ESP, Wall Check, keybinds Script:
https://raw.githubusercontent.com/VoidMasterX/strawhook/main/script.lua |
Roblox Phantom Forces Script Features
Here is the salient feature of Phantom Forces Scripts:
- FOV Hack
- Silent Aim
- Instant Equip
- AIMBOT Hack
- Sleight of Hand
- No Recoil/Spread
- Visible Check Hack
- ESP Hack (Wallhack)
- Walkspeed set to 18
- Slightly increased fire
- No Hipfire Spread/Recoil
- Halved Melee Cooldown Time
FAQs
Here are the frequently asked questions (FAQs) Phantom Forces Script Pastebin Hacks:
Q1: Are the Phantom Forces Scripts safe to use?
Ans. Usually, these codes are safe to use, but it’s completely your own risk.
Q2: Are the Phantom Forces Scripts legally allowed to use?
Ans. This is a subjective matter, but many consider script usage an illegal practice. So, it is up to your ethical standards to use the hacks or not.
Q3: Could Script usage get you banned from Phantom Forces?
Ans. There are quite many chances that you might get banned. So, use at your risk.
Q4: Is it possible to alter the Phantom Forces Scripst to avoid detection?
Ans. In principle, modification is possible, but we do not recommend it. It is worth mentioning that the Phantom Forces developers frequently update the game software to detect and ban the hack users.
Q5: Is it legally allowed to use Pastebin scripts in the Phantom Forces Game?
Ans. Although many players consider the script usage legal, there are several scripts that might not fall under the legal grounds of terms of the Phantom Forces.
Conclusion
Roblox Phantom Forces Script Pastebin Hacks are quite helpful when it comes to adopting shortcuts to lead the competition. We have compiled these hacks to keep you ahead in the game and hope that these prove to be effective in the game. Phantom Forces Scripts can greatly improve your gameplay, but there are risks involved, as we have mentioned in the early sections.
We advise if any of the scripts is non-functional, then let us know as soon as possible. For more information regarding Roblox Scripts, keep visiting Qnnit.com. Or you may also check out Roblox Counter Blox Script Pastebin Hacks and Football Fusion 2 Script Pastebin Hacks.