Cosmetics
Official compatibility
| Element | Reference |
|---|---|
TypeWriter | Required. Use the official TypeWriter release supported by the extension release. |
| Related extensions | Install the related extensions listed on this page before using entries that depend on them. |
The Cosmetics Extension allows players to customize their appearance with various aesthetic items. It supports both "worn" cosmetics (like hats and backpacks) and item "skins" (changing the appearance of tools and weapons).
Features
- Slot-Based Cosmetics — Equip items to specific slots (Head, Back, Shoulders) that follow movement.
- Weapon Skins — Apply custom textures/models to vanilla items using
CustomModelData. - Integrated Menus — Built-in interactive GUIs for browsing and previewing cosmetics.
- Weapon Skins — Apply custom textures/models to vanilla items using
Entries
- Cosmetic Definition — Defines a singular cosmetic item (e.g., "Angel Wings").
- Skin Definition — Defines a set of skins for a specific tool/weapon type.
- Cosmetics Menu — Configures the main cosmetic browsing GUI.
- Skins Menu — Configures the skin selection interface.
User guide
- 1. Define — Add definition entries: cosmetic_definition, skin_definition. These define the structures, entities, or rules the extension operates on. → cosmetic_definition → skin_definition
- 2. Create Storage — Add artifact entries to persist data: player_cosmetics_artifact, player_skins_artifact. → player_cosmetics_artifact → player_skins_artifact
Commands
Player Commands
| Command | Description | Permission |
|---|---|---|
/cosmetics | Open the cosmetics management menu | cosmetics.use |
/skins | Open the skins menu for the item in hand | skins.use |
Admin Commands
| Command | Description | Permission |
|---|---|---|
/cosmetics give <player> <id> | Grant a cosmetic to a player | cosmetics.admin |
/cosmetics reset <player> | Clear all unlocked cosmetics for a player | cosmetics.admin |
/skins give <player> <id> | Grant a skin to a player | skins.admin |
Placeholders
All placeholders use the prefix %typewriter_%.
| Placeholder | Description |
|---|---|
%typewriter_cosmetics_total_unlocked% | Number of cosmetics the player owns |
%typewriter_cosmetics_total_available% | Total number of cosmetics defined on the server |
%typewriter_cosmetics_category_<cat>_unlocked% | Unlocked count in a specific category |
%typewriter_cosmetics_is_unlocked_<id>% | true/false if player owns a specific id |
%typewriter_cosmetics_active_<category>% | The ID of the currently equipped cosmetic in a category |
Permissions
| Permission | Description |
|---|---|
cosmetics.use | Use cosmetics. |
cosmetics.admin | Administrate cosmetics. |
skins.use | Use skins. |
skins.admin | Administrate skins. |
Dependencies
| Extension | Required | Usage |
|---|---|---|
| GUI Extension | Required | Menu rendering and layout system. |
| PlaceholderAPI | Optional | For @Placeholder fields. |
Troubleshooting
The extension is not visible
Check that the installed release matches the supported TypeWriter release and that the related extensions listed in the compatibility section are present.
An entry is missing
In the Typewriter Web panel, use the Search bar or the + button to find or create the entry with its exact identifier. Entry IDs and field names are case-sensitive; do not translate them.
The entry saves but nothing happens
Check that the entry is connected to the trigger, command, objective, event, or menu interaction required by its type. Test with optional permissions and criteria removed, then add them back one at a time.
An integration does not work
Verify the dependency and version shown in the extension card, then check the server log for the first error. Do not replace a missing dependency with a similarly named plugin unless the extension source explicitly supports it.