Skip to content

Creating Cosmetics with REPOLib SDK

NOTE

This guide assumes you have a REPOLib Unity project set up for REPOLib modding.
If not, follow Getting Started first.

1. Create a Cosmetic Prefab

Create a Unity prefab for your cosmetic. Use vanilla cosmetics as reference if needed.

Vanilla Cosmetics are located in Assets/REPO/Game/Resources/cosmetics. You can simply copy a prefab to your mod folder.

2. Create the REPOLib Cosmetic Asset

  1. Right-click in your mod folder (or subfolder), and choose Create > REPOLib > Cosmetic.
  2. Configure all properties:
    • Asset Id: A unique ID for this cosmetic. Avoid conflicts with other mods by using a format like modname:hat1. Must not start with vanilla:.
    • Asset: Reference to your Vanilla Cosmetic Asset (Follow steps 1 & 2 from the next section).
    • Prefab: Reference to your Cosmetic prefab (drag-and-drop, can be located outside mod folder).
    • Prefab Ref: Reference to your Cosmetic prefab (drag-and-drop, can be located outside mod folder).

      NOTE

      Prefab Ref is preferred over Prefab as it reduces in-game RAM usage. If using this, leave the Prefab property empty and add your prefab to the Mod asset under Extra Bundle Files.

3. Create the Vanilla Cosmetic Asset

  1. Right-click in your mod folder (or subfolder), and choose Create > Cosmetics > Cosmetic Asset.
  2. Configure the following properties:
    • Asset Name: Display name (e.g., "Big Hat").
    • Type: The type of the cosmetic, that determines which category it will appear under in the Customize menu.
    • Rarity: The rarity of the cosmetic.
    • Custom Type List: Custom types:
      Custom Type List (click to expand):
      TypePurpose
      Enemy_SlowMouth
      Player_Crown
      Player_DeathHead
      HeadTopMesh_Shape_Big
      FootRight_Shape_Long
      FootLeft_Shape_Long
      FootRight_Shape_Normal
      FootLeft_Shape_Normal
      FootRight_Shape_Short
      FootLeft_Shape_Short
      BodyTop_Overlap_HeadBottom
      HeadBottom_Overlap_BodyTop
      HeadBottom_OverrideFlat
      BodyTop_OverrideFlat
      HeadTopMesh_Shape_Default
      HeadTopMesh_Shape_Tiny
      EyeRight_DisableDisables the right eye.
      EyeLeft_DisableDisables the left eye.
      BodyTop_Overlap_BodyBottom_Front
      BodyTop_Overlap_BodyBottom_Back
      BodyBottom_ProtrudeFront
      BodyBottom_Protrude
      Hat_Shape_Wide
      BodyTop_State_Flat
      HeadBottom_State_Flat
      Player_LookDown_Restrict
      Eyewear_Shape_VeryTall_Inner
      Eyewear_Shape_Tall
      Hat_Overlap_FaceTop
      Hat_Overlap_FaceBottom
      Eyewear_Overlap_FaceTop
      Eyewear_Overlap_FaceBottom
      FaceBottom_Protrude
      Eyewear_Overlap_FaceBottom_Protrude
      FaceTop_Shape_Huge
      FaceTop_Shape_Tall
      BodyTopMesh_Shape_Default
      BodyTopMesh_Shape_Big
      BodyTopMesh_Shape_Tiny
      BodyBottomMesh_Shape_Default
      BodyBottomMesh_Shape_Big
      BodyBottomMesh_Shape_Tiny
      ArmRightMesh_Shape_Default
      ArmRightMesh_Shape_Big
      ArmRightMesh_Shape_Tiny
      ArmLeftMesh_Shape_Default
      ArmLeftMesh_Shape_Big
      ArmLeftMesh_Shape_Tiny
      LegRightMesh_Shape_Default
      LegRightMesh_Shape_Big
      LegRightMesh_Shape_Tiny
      LegLeftMesh_Shape_Default
      LegLeftMesh_Shape_Big
      LegLeftMesh_Shape_Tiny
      FootRight_Protrude
      FootLeft_Protrude
      HeadTop_Covered_TopMiddle
      HeadTopMesh_Shape_Unchanged
      HeadBottomMesh_Shape_Unchanged
      HeadBottomMesh_Shape_Default
      HeadBottomMesh_Shape_Big
      HeadBottomMesh_Shape_Tiny
      BodyTopMesh_Shape_Unchanged
      BodyBottomMesh_Shape_Unchanged
      ArmRightMesh_Shape_Unchanged
      ArmLeftMesh_Shape_Unchanged
      LegRightMesh_Shape_Unchanged
      LegLeftMesh_Shape_Unchanged
      Ears_Shape_Tall
      FaceBottom_Overlap_HeadBottom
      FaceTop_Shape_VeryTall
      ArmRightMesh_Shape_BigUpper
      ArmLeftMesh_Shape_BigUpper
      ArmRightMesh_Shape_BigLower
      ArmLeftMesh_Shape_BigLower
      HeadTopMesh_Shape_MissingRight
      FaceTop_Covered_Middle
      FaceTop_Covered_Left
      FaceTop_Covered_Right
      Eyewear_Shape_EyesRight
      Eyewear_Shape_EyesLeft
      Eyewear_Shape_EyesBoth
      Eyewear_Shape_VeryTall_Outer
      EyeLidRightMesh_Protrude
      EyeLidLeftMesh_Protrude
      FaceTop_Overlap_FaceBottom
      HeadBottom_Protrude
    • Tintable: Whether the cosmetic can be colored by the player.
    • Default Color: The default color of the cosmetic in the Customize menu, and when it's equipped for the first time.