There's a nonzero amount of VRChat players on tumblr and a very nonzero amount of freaks on tumblr. And also people who might just want this for funsies? I can't tell you what to use this for.
I would like to tell you how to let people both grab your limbs and tear them off. Big ass tutorial under the break. Please don't be intimidated by how much I wrote, I'm just very thorough. Doing this takes like 2 hours max and mostly consists of renaming things.
First, create a backup of your model's fbx. Do not just back up the project, back up the fbx specifically. For the first bit, you will want to go into Blender. I promise this is simpler than you think, stay with me here.
Now, before anything, if you want your limbs to be removable, you will need to separate them from your body's mesh. I'm not the person who actually did this part of model creation and it was done like 4 years ago, so I can't give advice here. I do remember it being pretty simple though, so look up some tutorials. My model was also created with removable limbs in the first place however, so I have no idea how easy it is to do it after you're already boned up, but it was done on a pre-existing base so probably not that hard. If you don't want them to be removable, or you just can't figure out what to do here, you can still make them grabbable!
Go into Blender and import your model. It's stored as an fbx in your avatar project's folder. You should have already backed it up, but if you haven't, back it up. Once you have your fbx loaded up in Blender, find the arm bones and the leg bones in the armature. You will want to be in edit mode for this. Select all of the arm bones and all of the leg bones and duplicate them with shift+D. The arms should be parented to the shoulders and the legs should be parented to the hips. Do not duplicate the shoulders or the hips, just what's under them.
Once you've duplicated your bones, go into object mode and make sure that they have no meshes by rotating them a bit. You just want the bones. Undo the rotations once you verify that there are no meshes. If there are meshes, go back into edit mode and just delete them from the hierarchy, then return to object mode. At this point you will want to rename all of your arm bones and all of your leg bones, both sets. My naming scheme looks something like "arm_r_ghost" and "arm_r_visible", but as long as you know which is which it doesn't matter. Once all your bones are renamed, export the model as an fbx and save over your original fbx. This is why you made a backup. Please tell me you made a backup. From this point on, I will be referring to the bones without meshes as "ghost bones" and the ones with meshes as "visible bones".
Now, open up your avatar's unity project. Your avatar may be in a weird crouching position in the scene, this is fine, we will fix it. Go to the file explorer which is by default located at the bottom of the Unity UI. Find your fbx and select it. Then, go to the inspector which is located on the right side of the Unity UI by default. You should see 4 option, Model, Rig, Animation, and Materials. Select Rig if it isn't already selected. Make sure that the Animation Type drop down says "Humanoid" and that the Avatar Definition drop down says "Create from this model".
Once you've ensured that the rig is humanoid and is being created from the correct source, click "Configure..." to see a screen that looks far more intimidating than it actually is. Your arms and legs will be highlighted in red unless you opted not to rename the original bones in Blender. You will want to go through any red or gray nodes on your arms or legs and assign them the ghost bones, the ones without any meshes. Your avatar may have twist bones - those aren't part of the rig, but we will be doing something with them later if they're there. Once you've gone through and assigned all the arm and leg bones, you're going to go to that diagram of the body and click on "Right hand" in the bottom left corner. Assign all of the appropriate bones and then do the same for "Left hand".
Right now you want to go and build your avatar as a test and pop on your headset. Go into your action menu (the circle) and go to options and then avatar, and then avatar overlay. Select contacts and go look at yourself in a mirror. If you've done everything correctly up to this point, your avatar's visible arms and legs will be stuck in either a reference pose, but moving your IRL limbs should show the contacts on them moving. If this is not happening, I'm afraid you'll have to figure out what you did wrong.
Once you've verified that you've correctly set everything up to this point, you will want to go back into Unity and then go to each of your visible bones in the hierarchy which is located on the left hand side of the Unity UI by default. Hit add component in the inspector for each visible bone and add a Parent Constraint. I forget if it's in a submenu or not, but if it is, the submenu will be called VRC. Once you've added the parent constraint, add a source by clicking the + and then drag and drop the corresponding ghost bone into the source. Once you've done this, click the zero button. Once you do this, the "Is Active" box should be checked. Once you have done this for each bone, you will once more build this avatar as a test and put your headset on. This time when you look in the mirror, your visible arms and legs should match your IRL movements without any lag.
Now that you have successfully gained a second set of limbs, it's time to make them grabbable! Go back to any of the visible bones that you want to be grabbable and add another component to them, this time selecting VRC Phys Bone. For me, I have them on the upper arms, lower arms, upper legs, lower legs, and feet. Warning: do not add these physbones to your hands or fingers unless you play with self-interact turned off. You will want to go into the "Endpoint Position" parameter and adjust it until the phys bone length looks right. Generally this will be achieved with a positive Y value. For forces, you want the integration type to be simplified, you want the pull to be 1, you want the spring to be 0, you want immobile to be 1, and you want gravity to be 0. Next, you'll want to edit the collision size of the phys bones until the size looks right.
After all that, you should go to the Grab & Pose parameters. You want "Allow Grabbing" to be checked and you want "Allow Posing" to be unchecked. You will want Grab Movement to be set to 1. If you want your limbs to be removable, you will want Max Stretch to be more than 0, but not too much more. You will have to experiment with the Max Stretch. Fiddle with it until you get something you're comfortable with, a lower number will result in less deformation when your limb is grabbed and a higher number will allow your limbs to be stretched further before breaking off.
Now, if you've followed all that, and if my memory serves me correctly, you're actually good to go with the limb grabbing. You can build a test avatar and grab one of your arms with the other to see if it works well. You might also want to test this bit with an uploaded avatar and a friend, just to make sure everything's working. I do remember some wonkiness with some extremely out of sync movements during my testing and I don't remember exactly why, so if you also experience wonkiness, it's time to make an animation. The wonkiness was related to an animation and I don't remember if it was because I did or did not have an animation. I am not going to give a detailed guide on creating an animation here, you can find those pretty easily on youtube and all you're doing is making an animation that disables parent constraints on the visible bones and an animation that enables parent constraints on the visible bones. Next, in your animation controller, you want to set it so that when a limb is grabbed, the parent constraints for it are disabled and when the limb is released, the parent constraints for it are enabled. It's been over a year since I did this and I can't open Unity right now, so I can't give precise instructions, but if you know even half of what you're doing, it should be pretty easy.
Note that after being grabbed, especially if you grabbed them yourself, your limbs will usually move slightly out of sync with your IRL limbs in your view. This can be fixed by going to options, going to OSC, and toggling it off and on. This will reload your avatar. This can also be done by resetting your avatar, but that will set any of your toggles to their default state.
Next up is limb removal! If you didn't edit the meshes at the start of this, you will have to go back and do that now. If you did edit them and your limbs are separate objects from your body, this one's a super simple animation! For each limb, you want to create an animation that enables the object and an animation that disables the object. Then, in your controller, you will want to set it so that if your limb reaches its maximum stretch length, the disable animation plays. You can then set up a system that drops the limbs in world and other people can stick them back on you via contacts or you can just have a menu toggle to bring them back. I recommend also having a toggle that enables and disables other player's ability to remove your limbs, since people will find it very funny and will steal your limbs. It's also not uncommon for people to accidentally tear them off.












