AssemblyLinearVelocity Doesn't work while player is in a seat?

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!
    I’m testing out AssemblyLinearVelocity with making a rocket, it works perfect when the player is not sitting on the rocket but doesn’t work while the player is!

  2. What is the issue? Include screenshots / videos if possible!
    image

  3. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    Searched Devforum and google and cannot find anybody else have this issue before.

Here is part of the code that launches the rocket

while thruster == false and debounce == false do
	wait(0.2)
	if thruster == true then
		debounce = true
		aircraft.RocketThruster.Engine:Play()
		wait(5)
		aircraft.RocketThruster.LiftOffSFX:Play()
		while thruster == true do
			wait(0.2)
			thrusters.AssemblyLinearVelocity += Vector3.new(0,50,0)
		end
	end
end

This seems either like a bug or something intentional but stupid.
As for a fix, maybe get the last position of the player, the deltaTime between now and when that position is from, then calculate your own velocity like this:

velocity = (lastPosition-currentPosition)/deltaTime
We can test an example to make sure this is working.
Say we moved from (0, 0, 25) to (50, 0, 0) in 0.5 seconds, the distance would be (50, 0, -25), and since it was done it 0.5 seconds, we should move double that in one second. So, testing the equation:
velocity = (Vector3.new(50, 0, 0)-Vector3.new(0, 0, 25))/.5
velocity = Vector3.new(50, 0, -25)/.5
velocity = Vector3.new(100, 0, -50)

We get the velocity in one second because that’s what AssemblyLinearVelocity actually is, the distance your character will move in one second.