Avatar Joint Upgrade for Physically-Simulated Character Movement is Now Live!

Hello Creators!

We are thrilled to announce that the Avatar Joint Upgrade is officially graduating from Studio Beta and is now available for use in your published, live experiences!


With the upgrade, parts driven by Animation can interact physically with the environment, rather than rigidly following predetermined Animation transforms. This can produce emergent behavior, like the arms and legs swinging above.

As a reminder, this upgrade introduces force and torque-limited AnimationConstraints to R15 character joints. This makes it significantly easier to create realistic, physics-driven movements and interactions, such as fully simulated limbs and powered ragdolls.

Use Cases

Easy Avatar Ragdolls

The Avatar Joint Upgrade adds BallSocketConstraints into avatars, so you can easily make them physically tumble by disabling or weakening their AnimationConstraints. You can copy the Physically Simulated Characters Demo to see this in action.


By disabling CharacterBreakJointsOnDeath, you can transition characters into a realistic ragdoll state immediately upon death.

Physical Animations

This release also includes the general availability of AnimationConstraints, separate from avatar joints. AnimationConstraints can move parts to follow Animations, but can be limited by their MaxForce and MaxTorque properties. This lets you create animated objects that interact physically with your world.


Kinematic (left) vs. Physical (right) Behavior: When IsKinematic set to True, the joint is locked to its animation and lifts the heavy anchor effortlessly. When IsKinematic is set to False the joint lacks the necessary MaxForce to overcome the anchor’s weight, resulting in more realistic pulling.

Note: AnimationConstraints are available for general use to all experiences today, regardless of whether they’ve opted-into the Avatar Joint Upgrade or not.

How to Enable the Upgrade

The Avatar Joint Upgrade is being introduced as part of a standard three-phase rollout plan to ensure a smooth transition and give you all control over when to adopt the new behavior.

You can enable this feature today by setting StarterPlayer.AvatarJointUpgrade to Enabled.

  • What changes: When enabled, R15 characters will spawn with AnimationConstraints and BallSocketConstraints instead of Motor6Ds.
  • Important Note on IsKinematic: To prevent unintended breaking changes, all avatar joint AnimationConstraints are set to IsKinematic = True by default.
    • AnimationConstraints, outside of the Avatar Joint Upgrade, spawn with IsKinematic = False by default.
  • Unlocking Physics: To achieve the new force and torque-based behavior where joints “strive” to reach their animatable Transform property, you must set IsKinematic = False for the respective joints. When IsKinematic is false, the joints are no longer “locked” to the animation and will instead react dynamically to the physics world based on the forces you allow.

Phased Rollout Plan for Avatar Joint Upgrade

This upgrade follows our standard three-phase rollout for potentially breaking changes introduced via a non-scriptable property; StarterPlayer.AvatarJointUpgrade:

Phase StarterPlayer.AvatarJointUpgrade Default Value Creator Impact Opt-Out Available?
Phase 1 (Current) Maps to Disabled No breaking change; creators can opt-in by setting StarterPlayer.AvatarJointUpgrade to Enabled. Yes (Keep as Default)
Phase 2 (Target: H2 2026) Maps to Enabled Breaking Change. Experiences depending on the old Motor6D behavior will break. Creators can quickly revert by setting to Disabled and re-publishing.

Note: Opting out should be a temporary measure until you migrate your experiences. At this point, we will announce the Phase 3 timeline.
Yes (Set to Disabled)
Phase 3 (ETA: TBD) Property is removed altogether All places are forced into the new AvatarJointUpgrade behavior. The old behavior is no longer accessible. No

AnimationConstraints do everything Motor6Ds can do and more. Motor6Ds will continue to work as they do today, but will not see improvements as they are legacy JointInstances. We will invest more in improving Constraint tooling and functionality. In the coming weeks, Motor6Ds will be marked deprecated in favor of AnimationConstraints.

Known Issues / Limitations

  • In some situations, players can see choppy physics replication on other characters. This happens because clients play Animations and replicated physics on slightly different timelines. Animations apply to kinematic joints immediately, but the CFrames of physically simulated parts are delayed and interpolated. This is most prominent when the character you’re viewing has a mix of kinematic and physically-driven joints and plays an animation that moves their torso. We’re working on improving our replication systems to fix this.
  • The AvatarJointUpgrade does not affect R6 characters. You can use scripts to add BallSocketConstraints + AnimationConstraints to R6 characters yourself, but we do not currently plan to support this through the AvatarJointUpgrade.

Next Steps

We intend to move to Phase 2 (where the upgrade becomes the default) in the second half of 2026. We will update this post once we have a specific date for the Phase 2 transition.


For a complete overview of the technical details, features, and in-depth usage examples, please check out the original Studio Beta announcement post.

We can’t wait to see the realistic and dynamic interactions you bring to life with this. Please share them in the comments!

Happy Building,

Roblox Physics Team


[Updated January 26th, 2026] FAQ

Will enabling the joint upgrade change or break my experience? Do I need to update my scripts?
  • In most cases, your experience should behave the same. The AnimationConstraints in spawned players have IsKinematic set to True by default, so they will match Motor6D behavior. However, if your scripts access specific Motor6D properties, you may need to update them.

    • Scripts checking instance:IsA(“Motor6D”) will not detect AnimationConstraints.
    • Setting C0, C1, Part0, or Part1 properties will error. AnimationConstraints use Attachments instead.

    You can Ctrl + Shift + F search your codebase for references to these properties and update them to use Attachments.

    Before:

    After:

Are upgraded joints applied to all characters including NPCs?
  • Upgraded joints are only added to characters from the Player spawning flow and character-creation flows, like from HumanoidDescription. Upgraded joints will not be added to existing character Models, like NPCs already in your place.
Does enabling the joint upgrade impact performance?
  • No, the base joint upgrade has little to no effect on performance. Further explanation in this reply.
232 Likes

This topic was automatically opened after 10 minutes.

Thank you for the physics team for adding more physics to our physics engine. Love to see it.

64 Likes

So what about this?
https://devforum.roblox.com/t/animation-compositor/4296403/11

8 Likes

image

Well that sucks, I was really lookin forward to test it out on R6. Is there an underlying reason why R6 is not getting support for it?

39 Likes

Probably because R6 is old and I doubt engineers wish to spend time and resources prioritizing or implementing features for it.

10 Likes

madness wall of death

madness wall of death

6 Likes

I get that just feels like R6 is getting neglected on features so they can sunset it in the future, which I don’t think anyone wants.

24 Likes

time to start migrating my games to support this when it eventually becomes the default

(only real changes I will have to do is make the scripts depending on being able to disable Motor6Ds to be able to disable AnimationConstraints)

Update

ok a lot will have to change with my realism pack so.. a lot of my games will actually break because of this. Hopefully this doesn’t become an issue.

I would like to ask how to do something like the camera-facing head system I currently do for Motor6Ds and it doesn’t appear that you will still be able to set C0 to accommodate this… This actually might break a lot of games.

6 Likes

Would it be possible for Roblox to make a tool that helps transition Motor6d’s into the new system? For pre-existing morphs that use Motor6D

10 Likes

I played the demo and noticed that when I land, I bounce. Also, when I do emotes, it seems the camera starts swaying. Is this the default settings? The physics seem pretty wacky to be practical. Pretty cool nonetheless.

1 Like

R6 is legacy technology and shouldn’t be used for new work.

8 Likes

Unless you’re making a game meant to be played exclusively in R6

21 Likes

Why? MANY MANY games uses R6, why make a decision to exclude these games?

Many of them are Front page games too

17 Likes

I wish they would add this for R6…

8 Likes

Does this mean R6 is slowly going to be removed? If so is there any date for that?

I don’t wanna be the guy to say this but supporting R6 as a default rig causes many issues for UGC Bundles, Layeres clothing and PBR Accessories. I would really like to know whenever or not it will be removed, in case that will ever happen

7 Likes

We tried adding support to R6 and found it was actually quite complicated. R6 and R15 have a lot of significant technical differences - CharacterMeshes, joint rotations, lack of RigAttachments, significantly different spawning sequences… We want to make huge improvements to avatar performance, quality and features, and we can do a better job at that if we focus on a single target for avatar tech.

We also don’t want to disrupt R6 games as we roll this feature out. Creators who choose R6 are often intentionally choosing to opt-out of new avatar features. That’s fine - we want to respect that. Anyone who wants this feature in their R6 experience can add AnimationConstraints and BallSocketConstraints with a Script in StarterCharacter.

59 Likes

on that note, is there a way to opt OUT of this for R15 to maintain existing code functionality?

1 Like

Can we at least get a short tutorial AND/OR example for this?

Understandable

6 Likes

Do you know if adaptive R6 is still being worked on? Sorry if it’s wrong department

2 Likes