You are on page 1of 2

----------------------------------------------------

--- A redistribution of https://wearedevs.net/ ---


----------------------------------------------------

-- Made by gamermanaway
-- Game: https://www.roblox.com/games/292439477/Phantom-Forces

--[[
Controls:

F - Toggle On/Off
LeftShift - Faster/Slower
W - Forward
A - Left
S -Backward
D - Right
LeftControl - Down
Space - Up
]]--

local Players = game:GetService("Players")


local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local CurrentCamera = workspace.CurrentCamera

local LocalPlayer = Players.LocalPlayer

local Boolean = false


local Speed = 50
local MovementTable = {
0,
0,
0,
0,
0,
0
}
local KeyCodeTable = {
[Enum.KeyCode.W] = 1,
[Enum.KeyCode.A] = 2,
[Enum.KeyCode.S] = 3,
[Enum.KeyCode.D] = 4,
[Enum.KeyCode.LeftControl] = 5,
[Enum.KeyCode.Space] = 6
}

UserInputService.InputBegan:Connect(function(Input, ...)
if Input.KeyCode == Enum.KeyCode.F then
if Boolean then
Boolean = false
else
Boolean = true
end
elseif Input.KeyCode == Enum.KeyCode.LeftShift then
Speed = 100
elseif KeyCodeTable[Input.KeyCode] then
MovementTable[KeyCodeTable[Input.KeyCode]] = 1
end
end)

UserInputService.InputEnded:Connect(function(Input, ...)
if Input.KeyCode == Enum.KeyCode.LeftShift then
Speed = 50
elseif KeyCodeTable[Input.KeyCode] then
MovementTable[KeyCodeTable[Input.KeyCode]] = 0
end
end)

local GetMass = function(Model)


local Mass = 0
for _, Value in pairs(Model:GetDescendants()) do
if Value:IsA("BasePart") then
Mass = Mass + Value:GetMass()
end
end
return Mass * workspace.Gravity
end

RunService.RenderStepped:Connect(function(...)
local Character = LocalPlayer.Character
if Character then
local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
local Mass = GetMass(Character)
if HumanoidRootPart then
local BodyVelocity =
HumanoidRootPart:FindFirstChildOfClass("BodyVelocity")
if BodyVelocity then
if Boolean then
BodyVelocity.MaxForce = Vector3.new(Mass * Speed,
Mass * Speed, Mass * Speed)
BodyVelocity.Velocity =
CurrentCamera.CFrame.LookVector * Speed * (MovementTable[1] - MovementTable[3]) +
CurrentCamera.CFrame.RightVector * Speed * (MovementTable[4] - MovementTable[2]) +
CurrentCamera.CFrame.UpVector * Speed * (MovementTable[6] - MovementTable[5])
else
BodyVelocity.MaxForce = Vector3.new(0, 0, 0)
BodyVelocity.Velocity = Vector3.new(0, 2, 0)
end
end
end
end
end)

You might also like