Do you use StarterCharacter or manually build your character?
StarterCharacter then Motor my character on the torso
You use Motor6Ds and not Motors, right?
Motor
Joints are like this: foot connects to lower leg, lower leg connects to upper leg, upper leg connects to torso, etc with Part1 being foot and Part0 the lower leg, right?
Yes
Does the character model start off welded together in storage, and then you clone it to create new characters, or does it start off unwelded?
Starts off welded in storage. The only parts I motor myself are the spine and hips
If your character does not start welded together, how do you weld it? (If you have any generic weld code that you’re using that’s not really considered part of your game, can you post the source so my repro is as close to your game as possible?)
M.Joint = function(A, B, MC0, MC1, Parent)
local MR = Instance.new("Motor", A)
MR.Name = A.Name..":"..B.Name
MR.Part0, MR.Part1 = A, B
MR.C0, MR.C1 = MC0, MC1
if Parent then MR.Parent = Parent end
return MR
end
Do the character parts start off created and then you clone them, or do you create MeshParts through Instance.new() each time a character spawns?
Character is in ReplicatedStorage and cloned locally onto each torso. The server sees nothing but a torso and a humanoidrootpart and a head.
Are your characters parented to nil before they’re parented to workspace?
ReplicatedStorage
Are the characters finished being set up when they’re parented to workspace?
I just clone() them and parent them. I wait(math.random()) twice during loading
Where are your characters parented when you set their position?
They just spawn in spawnlocation in workspace.