Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How do I make a custom character?

Asked by 3 years ago

I'm new to the scripting/developing community. How do I make accounts that join my game become a certain model? It's not an avatar editor, either. All one model, too. Much appreciated!

2 answers

Log in to vote
1
Answered by 3 years ago

Make sure you have a avatar model with at least a Humanoid object 3 parts named "Head", "Torso", and "HumanoidRootPart". Then set the models primary part to the HumanoidRootPart and name the model "StarterCharacter". Finally put the model inside the StarterPlayer and you should have a working starter character.

Ad
Log in to vote
0
Answered by
Necro_las 412 Moderation Voter
3 years ago
Edited 3 years ago

You can create any model that has a Humanoid Instance inside. But to move it, it must have motor6 rigs and proper animations to it. If your new character has an humanoid shape, you can just edit a blank Dummy, but if you want to make a dog or snake, you will have to create Motor6D rigs and correctly place in the char to create the animable joints. There are some mods to help with rigging, i like the "RigEditor" by @goro7, and some tricky rules with these joints. Like they will be destroyed if you move or scale a part of the model, and then the parts will fall off when you play the game.

After all this being done, and you had set up the characters animations in script, you can define a players char in a script, but this cant be done if the char is already loaded, so you disable autoload like:

Players.CharacterAutoLoads = false

Players.PlayerAdded:Connect(function(Player)

    Player.Character = Model_X:Clone()

    Player:LoadCharacter()

end)

Other option is putting a model inside StarterPlayer named "StarterCharacter", it will automatically loads that char as the main character. You can put a model in the starter character everytime a character is loaded, like:

Players.CharacterAutoLoads = false

Players.PlayerAdded:Connect(function(Player)

    -- Check if there is old StarterCharacter and destroy:
    for i, v in pairs (game.StarterPlayer:GetChildren()) do
        if v.Name == "StarterCharacter" then
            v:Destroy()
        end
    end

    Model_X:Clone().Parent = game.StarterPlayer
    Model_X.Name = "StarterCharacter"

    Player:LoadCharacter()

end)

I dont remember if this works on client side, possibly not, but you can try.

Answer this question