Skip to content

Creating Custom Cosmetics

File14 edited this page Sep 18, 2024 · 70 revisions

If you are a developer, please read this as you can create all cosmetic types when using the API.

Creating Cosmetics

You can currently create your own cosmetics for Balloons, Music, and Statuses with just some configuration knowledge.

Creating Balloons

There are two types of balloons you can create, entity- or block-based. This tutorial will show both but let's start by creating an entity-based.

Entity-based Balloon

Available entities: BAT, BLAZE, BOAT, CAVE_SPIDER, CHICKEN, COW, CREEPER, ENDER_DRAGON, ENDERMAN, IRON_GOLEM, MAGMA_CUBE, GUARDIAN, GUARDIAN_ELDER, HORSE, HORSE_DONKEY, MUSHROOM_COW, OCELOT, PIG_ZOMBIE, RABBIT, SHEEP, SLIME, SILVERFISH, SKELETON, SKELETON_WITHER, SNOWMAN, SPIDER, SQUID, VILLAGER, ENDERMITE, WITCH, WITHER, WOLF, ZOMBIE

1. Pick an entity from the list above. In our example, we will make a cave spider balloon.
2. Copy the format for a pre-made balloon (for example, the calf)

calf:
  enable: true
  name: "&bCalf Balloon"
  can-be-found: true
  purchasable: true
  cost: 2000
  rarity: COMMON
  entity: COW
  baby: true
  material: MILK_BUCKET
  amount: 1
  slot: 10
  page: 1
  displayname: "%name%"
  lore:
    - ""
    - "&7Free milk for everyone!"

3. It is very important that you change the header (in our example, calf) as they must be unique for every cosmetic in each category. Consider using small letters without any spaces between the words, for example server-owner.
4. Replace the entity name with the one you selected above. Keep in mind that not all entities are available in baby form. As we chose to make a cave spider we must set baby to false as cave spider babies do not currently exist in Minecraft.
5. Do not forget to change the slot and page to one that is available.
6. When you are done with your editing it should look something like this:

cave-spider:
  enable: true
  name: "&bCave Spider Balloon"
  can-be-found: true
  purchasable: true
  cost: 5000
  rarity: RARE
  entity: CAVE_SPIDER
  baby: false
  material: SPIDER_EYE
  amount: 1
  slot: 10
  page: 2
  displayname: "%name%"
  lore:
    - ""
    - "&7Don't get bitten!"
  1. Make sure that you save the config file and restart your server. The permission node in our example would be: procosmetics.balloons.cave-spider.

Block-based Balloon

The following example will show how to create a balloon with your head on.
1. Copy the format for a pre-made balloon (for example, the beachball)

beachball:
  enable: true
  name: "&bBeachball Balloon"
  can-be-found: true
  purchasable: true
  cost: 2000
  rarity: RARE
  entity: ARMOR_STAND
  baby: false
  texture: "5a5ab05ea254c32e3c48f3fdcf9fd9d77d3cba04e6b5ec2e68b3cbdcfac3fd"
  material: PLAYER_HEAD
  amount: 1
  slot: 28
  page: 1
  displayname: "%name%"
  lore:
    - ""
    - "&7Summer memories last forever."

2. It is very important you change the header (in our example, beachball) as they must be unique for every cosmetic in each category.
3. Do not forget to change the slot and page to one that is available.
4. You need the texture of the head. Go to NameMC and grab the UUID by entering your username. Copy the UUID without the dashes.
5. Paste your UUID after the following URL https://sessionserver.mojang.com/session/minecraft/profile/.
Example: https://sessionserver.mojang.com/session/minecraft/profile/6aa0723551e64ca9ac901cff44302ee8

6. Copy the long value.
7. Go to Base64Decode, insert the value, and press decode. It should look something like this:
8. Copy the skin value after the textures.minecraft.net domain. In our case, it would be: 64e047a6cd7cbcb96053716037d32cd2b99cbe9e19b5af53eabdb422627e0280.
9. Insert the texture data into the config file where it says texture.
10. When you are done with your editing it should look something like this:

server-owner:
  enable: true
  name: "&bServer Owner Balloon"
  can-be-found: false
  purchasable: false
  cost: 0
  rarity: RARE
  entity: ARMOR_STAND
  baby: false
  texture: "64e047a6cd7cbcb96053716037d32cd2b99cbe9e19b5af53eabdb422627e0280"
  material: PLAYER_HEAD
  amount: 1
  slot: 11
  page: 2
  displayname: "%name%"
  lore:
    - ""
    - "&7Who wouldn't want the server owner as a balloon!?"

11. Make sure that you save the config file and restart your server. The permission node in our example would be: procosmetics.balloons.server-owner.

If you wish to create balloons with other textures you can use Minecraft-Heads.com to find the one you are looking for. The texture is given directly at the bottom of the website.

Creating Music

Music Bundle

There is a music bundle you can download that contains many songs configured with a ready music.yml file. However, these songs are copy-righted. Use them at your own risk. Click here to download

Add your own songs

In order to add a song, you must have the NBS file for it. You can either create your own song in NoteBlockStudio or download one that is already created. There are a few websites I have linked down below to download songs from:

1. Once you have downloaded the song in the NBS format, place it procosmetics/songs/. Make sure the file is in lowercase. Example: all-star.nbs
2. Copy the format for a pre-made song (for example, the "africa" song)

africa:
  enable: true
  name: "&bAfrica"
  can-be-found: true
  purchasable: true
  cost: 2000
  rarity: COMMON
  material: PAPER
  amount: 1
  slot: 10
  page: 1
  displayname: "%name%"
  lore:
    - ""
    - "&7Old one, but good!"

2. It is very important you change the header (in our example, africa) as they must be unique for every cosmetic in each category. Make sure it is the same name as the file name so in this example it should be "all-star".
3. Do not forget to change the slot and page to one that is available.
4. When you are done with your editing it should look something like this:

all-star:
  enable: true
  name: "&bAll Star"
  can-be-found: true
  purchasable: true
  cost: 1000
  rarity: COMMON
  material: PAPER
  amount: 1
  slot: 12
  page: 1
  displayname: "%name%"
  lore:
    - ""
    - "&7This song is in the Shrek movie."

5. Make sure that you save the config file and restart your server. The permission node in our example would be: procosmetics.music.all-star

Creating Statuses

The statuses support placeholders from PlaceholderAPI so there are many statuses you can create such as online time, kills, ranks, and much more. In our example, we will create a status to display the server website.
1. Copy the format for a pre-made status (for example, the "just chilling" status)

just-chilling:
  enable: true
  name: "&aJust Chilling"
  can-be-found: true
  purchasable: true
  cost: 2000
  rarity: COMMON
  tag-text: "&aJust Chilling"
  material: NAME_TAG
  amount: 1
  slot: 10
  page: 1
  displayname: "%name%"
  lore:
    - ""
    - "&7Let someone know you're chilling."

2. It is very important you change the header (in our example, just-chilling) as they must be unique for every cosmetic in each category. Consider using small letters without any spaces between the words, for example server-owner.
3. Do not forget to change the slot and page to one that is available.
4. When you are done with your editing it should look something like this:

server-website:
  enable: true
  name: "&bServer IP"
  can-be-found: true
  purchasable: true
  cost: 1000
  rarity: COMMON
  tag-text: "&eWebsite &eMC.Example.Net"
  material: NAME_TAG
  amount: 1
  slot: 10
  page: 2
  displayname: "%name%"
  lore:
    - ""
    - "&7Remind users of our website."

5. Make sure that you save the config file and restart your server. The permission node in our example would be procosmetics.statuses.server-website.