Forces "stall" when moving dense objects or force magnitude is small


#1

Hi, folks! So I’ve been working on a space game with a newtonian flight model, etc etc… and I realised that objects that apply force (in my case a VectorForce) tend to “stall” when moving an object with high enough density and the force is set small enough. By this, I mean the object begins to move, but promptly stops instead of continuing to accelerate as I would expect.

Decreasing the object’s density or increasing VectorForce.Force allows the VectorForce to work as would be expected; the object continues to accelerate as long as a force is provided.

Steps to reproduce:

  1. Set Workspace.Gravity to 0, Insert a 4x4x4 Part, add an Attachment and a VectorForce inside the part, setting the VectorForce’s Attachment0 to the Attachment.
  2. Start a test server. Set VectorForce.Force to a relatively low value on one axis (I set it to 0,0,40).
  3. Observe as the part moves slightly and then stops in its tracks.

Interestingly, the force is taken into account if the object is already in motion - if you set the force to oppose the object’s motion, it will slow it; however, if the force is small enough, it won’t begin to accelerate the other way after it stops.

This issue is irritating because I either have to manually set all the parts of my ships to a lower density, or I have to add a multiplier to the thruster force, which eliminates the possibility of fine manoeuvering as the minimum force to actually work is too much and sends the ship careening through space.


#2

My guess is that it’s moving slowly enough that the part “falls asleep”, which is a performance optimization where rigid bodies basically get turned off if they’re not doing anything.


#3

Yeah, I originally thought it was the parts not waking up to begin with, until I tested further and found slightly stronger forces than I was originally using moved the part for a short while before it stopped. Not sure if I should request a change to the sleep threshold in this thread or create a new one in suggestions.


#4

I believe people have talked about this before. It would be nice if we could force a part to not sleep.