Convert R6 to R15 AND Maintain Compatibility!

As we all know, R6 has many bugs and quirks that many of us don’t like. Or maybe we just want layered clothing in our R6 games. I’ve personally experienced a bug where the ragdoll scripts sometimes do not make the character platform stand under certain circumstances.

Roblox’s beta adapter attempts to fix this, but is incompatible with:

  • Tools
  • Animations
  • Scaling
  • Every single thing you do with R6, like ragdolls and CFrame animations

Here’s a link to the “adapter” that does nothing:

I’ve made a community resource last year that attempts to address this issue:

What it does is basically combines R6 and R15 into one rig with all parts. It has 21 parts, which is why it is called the “R21 rig”.

I’ve improved it since then, and I’ve even added a complete compatibility layer that looks a lot like the “adapter” Roblox provided us with, but much better. It’s compatible with tools, most ragdoll systems, and R6 CFrame animations/poses.

The way it works is it uses the R21 rig, welds the R15 parts to the R6 ones, and applies the humanoid description that the player has. You only see the R15 parts, so it still looks quite ugly, but it’s usable. The HumanoidRigType is set to R15, but it maintains use of the R6 body parts through the animate script. For this reason, it supports things like layered clothing and maybe UGC heads and bodies, as well as dynamic heads.

This is intended to replace R6 or the adapter Roblox has added. Similar to the R21 Conversion Kit, it prioritizes compatibility over aesthetics.

This community resource is an example of what can be done with the R21 rig, which was purely made for futureproof compatibility reasons.

Here’s what it looks like:

There are three parts to this compatibility layer:

  • Compatibility server script (located in ServerScriptService)
  • Updated R21 rig (located in StarterPlayer)
  • Modified R6 animate script (located in StarterCharacterScripts)

These are included in the RBXL file:
R21V2.rbxl (76.6 KB)

Here is a version with MeshPart heads:
R21V2MeshPartHead.rbxl (94.5 KB)

Important note: Make sure your game settings set the avatar body type to 0% and the scale to the default values when installing. I’ve not tested body type scaling yet.

Please inform me of any compatibility issues you experience during gameplay. I hope this model suits your needs! I appreciate feedback.

21 Likes

yo thanks but how do I convert my r6 animation to r15 tho

It should automatically work using this model.

dynamic heads break and refuse to show up upon spawn
might have to do with heads in your version being specialmeshes as opposed to meshparts

Good to know. I’ll add a version with MeshPart heads.

Edit: it’s done.

The limbs kept disconnecting everytime I respawn
there’s no error in the output
I’m using the MeshPartHead version

Interesting. This may be due to one of many attachments inside of the R15 parts of the rig that are not used.

This only happened to me with the right leg R15 parts, but after deleting the problematic attachments inside of them it worked fine. Try deleting the problematic attachments inside the R15 parts. Here’s where they’re located:


If you delete all of them, I can guarantee you will run into problems. Just delete the ones for the body parts that are disconnecting.

I’m coming into the same issue and I’m using the mesh head version too. I’ve tried deleting the attachments to no avail. The right arm and head are going to another place. The strange part is it works fine in Roblox Studio but not in a live server.

Whats the point of a comment like this??

If you dont like this, then dont use it. Noone is stopping you from just using normal R6 (yet?)

This is actually useful since roblox is intentionally not updating R6 anymore.

me too, I’d rather go fall for that instead, wanna join me?

Hm, I’ve never tested it in a live server. Maybe it’s adding the attachments in the live server.

Try deleting them with this script:

--temporary fix, place in StarterCharacterScripts
for _, obj in script.Parent:GetDescendants() do
if obj.Name:match("RigAttachment") then
obj:Destroy()
end
end

I’m not sure if this will work or not, but it’s worth a try. Also, try checking if the NeckAttachment inside of Torso/UpperTorso exists or not in the live server (without the script after you delete it in studio). It should be deleted.

How would you install this? Cant seem to figure it out

You can install it into an existing place by inserting the following from either version into your place:

ServerScriptService.Appearance
StarterPlayer.StarterCharacter
StarterPlayer.StarterCharacterScripts.Animate

image
Simply copy these instances into the correct location in your place.

Im getting this issue. Am I doing something wrong?

https://streamable.com/vu0a00

It won’t let me upload more than 10mb so had to upload to streamable

This is a known issue in the system, so no, you’re not doing anything wrong.

Try this:

Don’t delete all of them, or it will cause issues. Delete all of the attachments except for the RootRigAttachment.

1 Like