Load Character using a template character model

I’ve been looking around past threads on the best way to spawn players in as different characters, but none of them are ideal. The three different methods people seem to be using all have major drawbacks, and I’ve been unable to find a better method.

A) Using StarterCharacter in StarterPlayer - doesn’t work as different players need different characters.

B) Using Player:LoadCharacterWithHumanoidDescription - doesn’t work if I want to use something other than the default R15 rig.

C) Setting Player.Character - Well it works but using it with the default Roblox character scripts seems hacky at best. Notably your characters name will still appear above your head on your own screen. This is easily fixed, but would suggest that this is not really supported behaviour, and may be liable to break or produce more errors in future.

D) Deleting everything in the newly loaded character, and replacing it with a template character - Similar issue to above, this does work but has very questionable reliability and is also quite inefficient.

Being able to call Player:LoadCharacter with the character to load, working very similar to using a StarterCharacter but effectively allowing you to choose what is used as the StarterCharacter each time would neatly solve all of these issues.

16 Likes

To add on to the OP, using methods such as; ReplaceBodyPartR15 causes the character to die and not load properly on occasion. Happens often enough to cause serious issues, and to bypass this you need to set the death state of the humanoid which isn’t ideal and requires more hacky work-arounds itself.

Having a proper method to load characters and their respective parts, to specific meshes and etc… would be extremely beneficial.

Edit: Allowing us to specify the parts to be replaced with in-game objects with what OP is suggesting is what I’m referring to, Similar to how TweenService handles it.
Ex: {RightHand = workspace.HandObject;}

3 Likes

Yes, I had issues making a script that replaces the mesh parts of a characters rig as it caused quite a lot of weird bugs, like causing the players characters to fall apart on other clients.

1 Like

I know this is a topic over a year old, but…

I’m surprised this sort of thing has yet to be done yet. Now, understandably being able to do this on our own isn’t impossible, but it takes a lot of work and can be very buggy your first few attempts; an outright inconvenience to most (refer to the OP’s points). The only feasible way of doing this currently that I can think of is setting up a spawn queue and switching out the StarterCharacter (and maybe even things like their animation script and/or humanoid) every single time a user wants to change character models completely. It works, though might cause a slow-down in larger servers depending on your player base.

I’m not going to pretend that I know anything about Roblox’s internals, though if we have the ability to do this via the StarterCharacter, we already have a potential blueprint in place, right? Then we’d need a way to just have the scripts inside of it work like normal. This may not be a popular feature, but it is quite limiting for newer devs on the scene who’d like to try this sort of thing.

4 Likes