Hello,

I am working on a Plane System that is based off of Sleitnick’s Biplane. Currently I am working on the *Thrust* portion of the plane. After testing, it appears my plane doesn’t move until close to -43000 on the Z axis of the VectorForce. My issue is, once it crosses that mark, it accelerates super, super fast. Here are some code snippets that might help with figuring out the problem:

*Throttle*: A value between 0 and 1.

*PlaneWeight*: Total Mass of Plane Model, is currently around 400.

*MaxEngineForce*: Set to 300… not sure what to set it too with this issue.

## *Damping*: A module created by Sleitnick

```
local damping = Damping.new()
damping.P = NUMBER
damping.D = NUMBER
damping.Position = Vector3
damping.Goal = Vector3
damping:Update() [Returns Vector3 position]
velocity += P * ( (target - current) + D * -velocity );
current += velocity * dt;
Credit: http://www.gamedev.net/topic/561981-smooth-value-damping/
```

## Flyer:Update (called on Heartbeat)

```
function Flyer:Update(plrMouse)
local t = realThrottle
if (t > 0) then
t = math.max(0.05, (realThrottle - 0.5) * 2)
end
self.Mover.Force = V3(0,0, (t * self.PlaneWeight * -MAX_ENGINE_FORCE))
end
```

## Flyer:UpdateControlls (called on RenderStepped)

```
local lastControlUpdate = tick()
function Flyer:UpdateControls(plrMouse)
local now = tick()
local dt = (now - lastControlUpdate)
lastControlUpdate = now
throttleDamp.Goal = V3(self.Throttle, 0, 0)
local controlInputs = controlDamp:Update()
local throttleInput = throttleDamp:Update()
realThrottle = throttleInput.X
if (realThrottle < 0.001) then
realThrottle = 0
end
end
```

## ClientPlane:ReadInput (called on Heartbeat)

```
-- Update throttle:
throttle = ((w ~= s) and (w and 1 or -1) or 0)
if (throttle ~= 0) then
local t = flyer.Throttle + (throttle * dt * 0.2)
t = (t < 0.5 and 0.5 or t > 1 and 1 or t)
flyer.Throttle = t
planeGui:UpdateThrottle(t)
end
```

Note: My plane is scaled down to roughly the size of a character with the realistic workspace gravity settings. I am applying this VectorForce to a mass-less part within the plane.

You can test in person here: Plane Game - Roblox

Note: (W/S for Throttle, A/D for Rudder) - Drag and Lift aren’t implemented yet.

UI shows the Z Value of the Force and the Throttle.

If any more information is needed, feel free to let me know!

Thanks in advance!