Skip to content

Cosmetics

Carsten23455 edited this page May 5, 2026 · 2 revisions

Cosmetics

There's currently 5 cosmetic types:

  • Hats
  • Visors
  • Pets
  • Backpacks
  • Nameplates

Each one can be synced across every client.

By default the API registers 5 or so Nameplates and a No X option for each cosmetic type.

Nameplates

The Nameplates show on the meeting board and player list.

They can be registered with this method:

NameplateRegistery.Register(string modName, string nameplateName, Sprite sprite)

So it would look like:

public static void RegisterNamePlate()
{
     NameplateRegistery.Register("MessHallAPI", "Infection Plate", infection_plate)
}

Custom Models in Unity

Anything from this section onward will require you to have made a custom model (or I guess load one from base game)

Pets

When a player selects a pet these things will happen.

  • It follows them around using MessHallNetworkTransform
  • hangs around the body if the player dies.
  • follows the player into the vent.
  • if the player stands still for 3s it offsets to the right of the player.

currently the pet system only supports the model (at least until I figure out how to Unity's animation system works.)

The method to register the Pet is:

public static void RegisterPet(string modId, string petId, GameObject prefab)

So you would need to do:

public static void RegisterCustomPet()
{
   CustomPetManager.RegisterPet("MessHallAPI", "My Custom Pet", CustomPetObj)
}

Visors

Visors are cosmetics that live on the Player's visor (hence the name...), id you want an example think of Among Us (2D)'s visor cosmetics.

They are attached onto the Owner's Player Model and the game handles anything under the player model root automatically.

The method to register Visors looks like:

public static void RegisterVisor(string modName, string visorName, GameObject prefab)

So to register it you would do:

public static void RegisterCustomVisor()
{
   CustomVisorManager.RegisterVisor("MessHallAPI", "ExampleCustomVisor", CustomVisorOBJ)
}

Hats

Hats are well... Self explanatory, They live on the player models head and their position's are synced across all clients with the API.

The method for Registering the Custom Hat(s) is:

public static void RegisterHat(string modName, string hatName, GameObject prefab)

So you Do:

public static void RegisterCustomPet()
{
   CustomHatMamager.RegisterHat("MessHallAPI", "Custom Hat", CustomHatObj)
}

Backpacks

Backpacks are a Custom cosmetic type they live on the back of the PlayerModel, take the Wraith Scythe for example.

You can Register the backpacks Via this method:

public static void RegisterBackpack(string modName, string backpackName, GameObject prefab)

and a method would look like

public static void RegisterCustomPet()
{
   CustomBackpackManager.RegisterBackpack("MessHallAPI", "My Custom Backpack", CustomBackpackObj)
}

Clone this wiki locally