Alright thanks @Jaycbee05! I found the solution I wanted and so I’ve been messing around with code so I got it to work like Jailbreak! THANKS VERY MUCH LIFE SAVER.
Now when I throttle its normal when I stop holding W it automatically stops instead of slowing down until stops. How would I make it slowdown when I stop holding W (the forward button)?
Would I use for loops like for i = 1,10 loops?
Full code i’ve been messing around with:
--Localscript
local ContextActionService = game:GetService("ContextActionService")
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local plane = script.Obj.Value
local RunService = game:GetService("RunService")
local height = 0
local turn = 0
local moving = 0
local Tilt = 0
local MoveRightKeyDown = false
local MovetLeftKeyDown =false
local vel = plane.Main.BodyVelocity
local tru = plane.Main.BodyForce
local BodyGyro = plane.Main.BodyGyro
local speed = 20
function MoveUp(action_name, action_state)
if action_state == Enum.UserInputState.Begin then
height = 50
end
if action_state == Enum.UserInputState.End then
height = 0
end
end
function MoveDown(action_name, action_state)
if action_state == Enum.UserInputState.Begin then
height = -50
end
if action_state == Enum.UserInputState.End then
height = 0
end
end
function MoveLeft(action_name, action_state)
MovetLeftKeyDown = false
if action_state == Enum.UserInputState.Begin then
MovetLeftKeyDown = true
while MovetLeftKeyDown do
wait(0.1)
turn = turn + 5
end
elseif action_state == Enum.UserInputState.End then
MovetLeftKeyDown = false
end
end
function MoveRight(action_name, action_state)
MoveRightKeyDown = false
if action_state == Enum.UserInputState.Begin then
MoveRightKeyDown = true
while MoveRightKeyDown do
wait(0.1)
turn = turn - 5
end
elseif action_state == Enum.UserInputState.End then
MoveRightKeyDown = false
end
end
function MoveForward(action_name, action_state)
if action_state == Enum.UserInputState.Begin then
moving = -2500
Tilt = -10
end
if action_state == Enum.UserInputState.End then
moving = 0
Tilt = 0
end
end
function MoveBackwards(action_name, action_state)
if action_state == Enum.UserInputState.Begin then
moving = 5000
Tilt = 10
end
if action_state == Enum.UserInputState.End then
moving = 0
Tilt = 0
end
end
RunService:BindToRenderStep("Update", Enum.RenderPriority.Input.Value, function()
BodyGyro.CFrame = CFrame.Angles(0, math.rad(turn), 0) * CFrame.Angles(math.rad(Tilt), 0, 0)
tru.Force = plane.Main.CFrame.LookVector * (-moving * 2 )
vel.Velocity = Vector3.new(0,height,0)
end)
ContextActionService:BindAction("Down", MoveDown, false, "q")
ContextActionService:BindAction("Up", MoveUp, false, "e")
ContextActionService:BindAction("Left", MoveLeft, false, "a")
ContextActionService:BindAction("Right", MoveRight, false, "d")
ContextActionService:BindAction("Forward", MoveForward, false, "w")
ContextActionService:BindAction("Backwards", MoveBackwards, false, "s")
The move forward line function:
function MoveForward(action_name, action_state)
if action_state == Enum.UserInputState.Begin then
moving = -2500
Tilt = -10
end
if action_state == Enum.UserInputState.End then
moving = 0
Tilt = 0
end
end
When Enum UserInputState ends I set moving back to 0 means my heli instantly stops instead of slowing down until it stops.
UPDATE:
I found a fix! The controls are priotizing the helicopter controls instead of player controls. So I Unbind every action that the controls are involved inside the heli.
example:
ContextActionService:UnbindAction("ActionNameHere")