Character physics controllers behave unexpectedly & fling characters when root motor6D is modified

Currently, as of 5/24/24, the character physics controllers behave unexpectedly & fling characters when their root motor6D has its CFrame modified. This is pretty game-breaking!

To reproduce:

  1. Open the place file (attached to this bug report)
  2. Run a playsolo test. Observe that the character moves around normally with its basic character controller
  3. Select LowerTorso.Root in the explorer. Modify its C0.Orientation property to a value of 45,0,45.
  4. Enter the blue tube next to the spawn. Observe that the character randomly flings at high speeds.

Repro place file : ControllerManager_Motor6DFling_Repro.rbxl (3.5 MB)

Repro video:

Expected behavior

It is expected that visually rotating the character via its root Motor6D would not affect the charactercontroller’s physics calculations.

Interestingly, this only occurs with certain kinds of avatars (non-blocky body, taller body scale). I had a hard time reproducing this with my crimson claw avatar when it was short, but was able to reproduce it consistently when it was taller.

5 Likes

We believe this is caused by the same underlying issue as for Character Controller Slope Physics Inconsistent. We will circle back when the fix for that other bug is enabled.

4 Likes

We have enabled the fix for Mac, PC, and RCC; other platforms will soon follow. Are you still encountering this bug?

2 Likes

Hi @choconatto! I can try to reproduce it in a few hours, let me get back to you :slight_smile:

@choconatto This issue still occurs, it isn’t fixed.

@Noble_Draconian I see. The controller seems much less likely to fling the character now, but indeed, we were able to repro the flinging after many more attempts. We will continue working on this.

1 Like

@choconatto Heya! Will there be a fix for this soon? We’ve disabled some game features that were triggering this flinging behavior, but we’re still getting player reports about flinging when hitting sloped surfaces at certain speeds in the air.

We still don’t understand the root cause of the issue. However, a temporary workaround, if it suffices for your use case, is to set the mesh parts to massless so that the only massive part in the assembly is the HumanoidRootPart.

1 Like

Alright, we’ll give that a try!