ControllerManager: Help regarding GroundController suspension

I’m trying to bypass ControllerManager.GroundController.GroundOffset to implement custom springy player suspension logic.

When setting GroundOffset = 0 and using a VectorForce (or external lift) to keep the player at ride height, it introduces a major side effect: the upward lift reduces the downward normal force on the root assembly, which strips away floor friction, and force… and breaks the GroundController’s horizontal grip/traction.

Now, because the vertical suspension logic and horizontal movement are tightly coupled into the native GroundController, there is seemingly no clean way to inject custom vertical spring physics without ruining movement responsiveness.

It would be immensely helpful to have:

  • A way to decouple the native vertical spring/offset force from the horizontal movement/traction calculations, OR
  • Exposing configurable stiffness and damping parameters directly on the GroundController so we don’t have to hack around it with a bunch of external forces.

Has anyone found a clean workaround for this, or, is this a limitation of the current controller architecture?

I’d like to add that the main reason I’m trying to do this is to fix an issue with trying to walk up stairs reliably.
In a lot of cases the default step-up force with the ControllerManager is NOT FAST ENOUGH to keep up with your character, which ends up making you keep bumping into stairs you’re trying to walk up.

Once again, it would be REALLY nice if you could at least adjust the value is which your character is lifted up.

I’d also like to share a little video showing how much of a problem this can be. Notice how when I go up the stairs, I can’t step up fast enough? There’s no way to change this.