Skip to content

2. Creating A Skin

LrgeAlvaro8882 edited this page Jan 11, 2026 · 6 revisions

Quick note

All of the classes are in ReplicatedStorage/Classes (e.g. Character & Ability). This is useful for type checking and for getting the default settings for each class.

It's also important to use Character.Create[TYPE]() to make sure that everything necessary is there and that nothing will break (almost) every time the engine is updated.

For assets (that aren't bound to the character's model) used in abilities, define them in Character.Config to be able to change them in skin definitions.

Making the script

Create a new script in ReplicatedStorage/Characters/Skins/(CHARACTERTYPE)/(CHARACTERNAME) with the skin's name as the script's name and the character that this skin will be for. Just like the character formatting, the name of the script should be formatted without spaces and preferably case-sensitive.

For example, I have a skin for Nullex called "Cyn" (yes, the Murder Drones character), so the script will be like so: ReplicatedStorage/Characters/Skins/Nullex Voyd/Cyn.luau.

The skin's model that'll be applied to the player will go in ReplicatedStorage/Assets/Characters/Skins/(CHARACTERTYPE)/(CHARACTERNAME) with the same name as the script. If it isn't named the same it won't work.

  • If you want to make sure a character model never gets leaked and is 100% secure, place it in ServerStorage/Assets/Characters/(CHARACTERTYPE)/(CHARACTERNAME) instead. This is useful for dev characters, as it will disable this character's preview on hover in the shop.

Writing the script

Making a skin is a lot simpler than making a character, as the abilities are already defined and only aesthetics have to be changed.

We have to copy the entire table of the root character from ReplicatedStorage/Characters/(CHARACTERTYPE) and change variables from the Config.

1SkinScript

  • We define the skin by copying the root character's table over and replace anything using Utils:DeepTableOverwrite(), which will overwrite any values in the original table that you set in the new one. The price will be for the skin and the quote will show up in the buy notification.
  • We simply return the skin table.

You shouldn't change GameplayConfig at all since that would make a skin P2W or P2L. Skins are supposed to be cosmetic.

Extra attributes

If the skin is supposed to be only for developers, add the Dev tag to the script in Studio and move it to ServerStorage/Assets/Characters/Skins/(CHARACTERTYPE)/(CHARACTERNAME).

If not, if the skin is a milestone, add the Milestone tag to the script in Studio and move it to ServerStorage/Assets/Characters/Skins/(CHARACTERTYPE)/(CHARACTERNAME).

Any skin that isn't purchasable in the shop should have negative price as the skins in the inventory are ordered by lowest to highest price.

Clone this wiki locally