Easier way to create custom characters

  1. What do you want to achieve? Keep it simple and clear!
    An easier way to create a rig as in replacing default body parts with custom parts.
  2. What is the issue? Include screenshots / videos if possible!
    I am making a character design using custom parts that are welded inside the character. It works but there are too many blocks in character. How do I replace the default body parts with custom ones.
    Rig
  3. What solutions have you tried so far? Did you look for solutions on the Developer Hub?

local Player = game.Players.LocalPlayer

local rightfoot = game.ReplicatedStorage.FootChar:Clone()
local rightupperleg = game.ReplicatedStorage.UpperLegChar:Clone()
local rightlowerleg = game.ReplicatedStorage.LowerLegChar:Clone()


local leftfoot = game.ReplicatedStorage.FootChar:Clone()
local leftupperleg = game.ReplicatedStorage.UpperLegChar:Clone()
local leftlowerleg = game.ReplicatedStorage.LowerLegChar:Clone()

local uppertorso = game.ReplicatedStorage.UpTorso:Clone()
local lowertorso = game.ReplicatedStorage.LowTorso:Clone()

local head = game.ReplicatedStorage.HeadChar:Clone()

local weldConRightFoot = Instance.new("WeldConstraint")
local weldConRightUpperLeg = Instance.new("WeldConstraint")
local weldConRightLowerLeg = Instance.new("WeldConstraint")

local weldConLeftFoot = Instance.new("WeldConstraint")
local weldConLeftUpperLeg = Instance.new("WeldConstraint")
local weldConLeftLowerLeg = Instance.new("WeldConstraint")

local weldConUpTorso = Instance.new("WeldConstraint")
local weldConLowTorso = Instance.new("WeldConstraint")

local weldConHead = Instance.new("WeldConstraint")
--Set Parents
rightfoot.Parent = Player.Character
rightupperleg.Parent = Player.Character
rightlowerleg.Parent = Player.Character

leftfoot.Parent = Player.Character
leftupperleg.Parent = Player.Character
leftlowerleg.Parent = Player.Character

uppertorso.Parent = Player.Character
lowertorso.Parent = Player.Character

head.Parent = Player.Character
--Weld
--Right leg
weldConRightFoot.Parent = rightfoot
weldConRightUpperLeg.Parent = rightupperleg
weldConRightLowerLeg.Parent = rightlowerleg

weldConRightFoot.Part0 = rightfoot
weldConRightUpperLeg.Part0 = rightupperleg
weldConRightLowerLeg.Part0 = rightlowerleg

weldConRightFoot.Part1 = Player.Character.RightFoot
weldConRightUpperLeg.Part1 = Player.Character.RightUpperLeg
weldConRightLowerLeg.Part1 = Player.Character.RightLowerLeg
--Left leg
weldConLeftFoot.Parent = leftfoot
weldConLeftUpperLeg.Parent = leftupperleg
weldConLeftLowerLeg.Parent = leftlowerleg

weldConLeftFoot.Part0 = leftfoot
weldConLeftUpperLeg.Part0 = leftupperleg
weldConLeftLowerLeg.Part0 = leftlowerleg

weldConLeftFoot.Part1 = Player.Character.LeftFoot
weldConLeftUpperLeg.Part1 = Player.Character.LeftUpperLeg
weldConLeftLowerLeg.Part1 = Player.Character.LeftLowerLeg
--Torsos
weldConUpTorso.Parent = uppertorso
weldConLowTorso.Parent = lowertorso

weldConUpTorso.Part0 = uppertorso
weldConLowTorso.Part0 = lowertorso

weldConUpTorso.Part1 = Player.Character.UpperTorso
weldConLowTorso.Part1 = Player.Character.LowerTorso

--Head
weldConHead.Parent = head

weldConHead.Part0 = head

weldConHead.Part1 = Player.Character.Head
--Position and Orientation
--Right leg
rightfoot.Position = Player.Character.RightFoot.Position
rightfoot.Orientation = Player.Character.RightFoot.Orientation

rightupperleg.Position = Player.Character.RightUpperLeg.Position
rightupperleg.Orientation = Player.Character.RightUpperLeg.Orientation

rightlowerleg.Position = Player.Character.RightLowerLeg.Position
rightlowerleg.Orientation = Player.Character.RightLowerLeg.Orientation
--Left leg
leftfoot.Position = Player.Character.LeftFoot.Position
leftfoot.Orientation = Player.Character.LeftFoot.Orientation

leftupperleg.Position = Player.Character.LeftUpperLeg.Position
leftupperleg.Orientation = Player.Character.LeftUpperLeg.Orientation

leftlowerleg.Position = Player.Character.LeftLowerLeg.Position
leftlowerleg.Orientation = Player.Character.LeftLowerLeg.Orientation
--Torsos
uppertorso.Position = Player.Character.UpperTorso.Position
uppertorso.Orientation = Player.Character.UpperTorso.Orientation

lowertorso.Position = Player.Character.LowerTorso.Position
lowertorso.Orientation = Player.Character.LowerTorso.Orientation
--Head
head.Position = Player.Character.Head.Position
head.Orientation = Player.Character.Head.Orientation
--Transparency
--Right Leg
Player.Character.RightFoot.Transparency = 1
Player.Character.RightUpperLeg.Transparency = 1
Player.Character.RightLowerLeg.Transparency = 1
--Left Leg
Player.Character.LeftFoot.Transparency = 1
Player.Character.LeftUpperLeg.Transparency = 1
Player.Character.LeftLowerLeg.Transparency = 1
--Torsos
Player.Character.UpperTorso.Transparency = 1
Player.Character.LowerTorso.Transparency = 1
--Head
Player.Character.Head.Transparency = 1
``` As you can see, it clones parts from replicated storage and welds the parts to their corresponding body part.
3 Likes

Hi. You could insert the custom character as a Model named “StarterCharacter” inside StarterPlayer service. This will automatically replace the whole default character with the model you created, so there will be less lag!

4 Likes

I was wondering about this too. Would you have to label the arms as “LeftArm” and “RightArm”

1 Like

Yeah, what would you named the parts. Also, how would it know if it was R6 or R15

2 Likes

Rig
Example

Didn’t work as expected

1 Like

Try anchoring them? I really don’t know.

1 Like

Un-anchor all your parts in the character model. Set canCollide to false. Weld all parts (limbs, etc) to the character’s HumanoidRootPart.

2 Likes

When you mean by weld, do you mean Weld or WeldConstraint?

1 Like

I use Welds. WeldConstraints are identical.

1 Like

I used WeldConstraints, un-anchored all the parts, canCollide to false and got this

Everything is stuck in the HumanoidRootPart

1 Like

Instead of welds, it might be better to use Motor6Ds. You can edit the C0 and C1 of each limb to fit your needs.

2 Likes
5 Likes

This was mentioned as literally the first post. Rig in StarterPlayer isn’t enough, also has to be named StarterCharacter.

O, I didn’t see that thanks for telling me. Yeah, I meant starterCharacter.

1 Like