Problem helicopter for bodyForce or bodyVelocity

Hello everyone!
i tried to make a helicopter but…

the helicopter does’t flying

the file:
helico testing.rbxl (31.4 KB)

client script:

--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 = -5000
		 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 * (height)
	vel.Velocity = plane.Main.CFrame.LookVector * (-moving * 2 )
	
end)

script.ison.Changed:Connect(function()
	if script.ison.Value == false then
		ContextActionService:UnbindAction("Down", MoveDown, false, "q")
		ContextActionService:UnbindAction("Up", MoveUp, false, "e")
		ContextActionService:UnbindAction("Left", MoveLeft, false, "a")
		ContextActionService:UnbindAction("Right", MoveRight, false, "d")
		ContextActionService:UnbindAction("Forward", MoveForward, false, "w")
		ContextActionService:UnbindAction("Backwards", MoveBackwards, false, "s")
	else
		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")
	end
end)

thank you in advance :slightly_smiling_face:

U should replicate it to server

you talk about the bodys or the helicopter?

Like instead of running it in client try replicating all the stuff into server

image
like this?

I mean like. Do u know how to use events