I’m currently working on what should be a pretty simple boat system for terrain water, though I’m encountering some trouble with getting the boat to have desired statistics for how fast it accelerates and its max speed.
Theoretically, I should be able to calculate the required force easily – get the mass of the entire boat, and multiply it by the number of studs I want to accelerate per second. Then apply this to the forward direction of a VectorForce.
But for whatever reason, this is not working at all. The force calculated through this method only gives the boat a miniscule amount of speed and absolutely zero acceleration. I only start to get the boat to move when I multiple the force by 30-60, though it still doesn’t experience proper acceleration and the velocity it ends up with seems very arbitrary. One of my main goals is to be able to give a specific max speed, and a specific acceleration, and have the script properly handle that. And I can’t seem to do that.
Just in case it matters, I’m also using BodyAngularVelocity and BodyGyro to manage turning and keeping the boat from flipping, though both have no influence over the axes I’m touching.
I’ve tried multiple other methods – like BodyVelocity – and they just encounter similar/identical problems with the force, leading me to conclude that I’m mistaken in some way in how Roblox’s physics solver handles Force in this context and need help.
I’ve considered TweenService, but would prefer that as only a last resort.
So how do I use constraints (and/or BodyMovers) to get a vehicle – boat in this case – with a set acceleration and a set max speed?