Create Companion
# Configuration Notes
This plugin only includes the companion below; the rest need to be customized by you
Now the fun part begins! Create your own custom companions!
Creating custom companions is very simple. If you understand this guide, one companion takes only about 5 minutes to finish.
# Sharing Platform
This is a companion configuration sharing platform made specifically for this plugin. Everyone is welcome to use it and contribute more companions.
Click to view (opens new window)
# Configuration Preview
- First, use your preferred editor to open the
companions/companions.ymlfile in the plugin folder (you can also create separate yml files for different companions inside thecompanionsfolder)! - I personally prefer using vscode
- I will use the example below to explain
# Config type, defaults to default
type: "default"
companions:
# Companion shop view permission, format: companions.buy.reaper
# companions.buy.all means shop view permission for all companions
# Companion auto-grant permission, format: companions.have.reaper
reaper:
# Companion name (internal variables allowed, companion level: ${level})
name: "&8&lReaper"
# Name visible, true to show
nameVisible: true
# Appearance: choose one of skull texture, virtual mob, ModelEngine model
# Skull texture
playerSkull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTM5YjVkMmU2MjRjMTQ3ZWZlNDdiMTMwZTFjZGRiOGEzNzdjZGIzZTc3NDJiZDJjZjRkZGRmNjlhNjg5MjcyIn19fQ=="
# Virtual mob example: mob: "parrot"
# ModelEngine model example: modelEngine: "example_model"
# Virtual mob scale, only effective for mob
# mobScale: 0.5
# This uses custom model data; if not set to NONE it overrides the player skull. To use it, "MATERIAL:DATA", e.g. CLOCK:15 for a clock material with nbt data value 15
customModelData: "NONE"
# If you don't want a weapon, set to NONE
weapon: "STONE_HOE"
# Whether to show the weapon (for equipping companion equipment without displaying it, defaults to true)
showWeapon: true
# Configure multiple abilities line by line; use abilityList: [] when no ability is needed
abilityList:
- "INCREASE_DAMAGE"
# Max level cap for this companion; if not set, uses settings.maxAbilityLevel from config.yml
maxAbilityLevel: 3
# Level upgrade cost for this companion; if not set, uses up.price from upgrade.yml
upPrice: '${level * 10000}'
# Attributes
attribute:
- '&ePhysical Damage: ${level * 1}'
# Random attributes, rolled and saved when the companion is obtained
randomAttribute:
- '&ePhysical Damage: ${10~50}'
- '&eMagic Damage: ${5~30}'
# Attribute discount for an unused companion, defaults to 1; set an empty string to read the main config's discountRate
discountRate: 1
# Chestplate equipment, NONE for none
chestplate: "LEATHER_CHESTPLATE"
# Leather color
leatherColor:
red: 32
green: 32
blue: 32
# Armor trim, effective on 1.19.4+
armorTrim:
material: amethyst
pattern: coast
# To get POSE angles, visit this link: https://haselkern.com/Minecraft-ArmorStand/
rightArmPose:
angle1: 360
angle2: 270
angle3: 286
leftArmPose:
angle1: 0
angle2: 0
angle3: 0
headPose:
angle1: 0
angle2: 0
angle3: 0
bodyPose:
angle1: 37
angle2: 0
angle3: 0
placement:
x: 0
y: 1.5
z: 0
yaw: 180
GUI:
shop:
type: COMPANION_SKULL
amount: 1
name: "&6&lReaper"
isEnchant: false
tooltipStyle: ""
itemModel: ""
price: 12000
description:
- " "
- "&7The Reaper who controls death,"
- "&7has become your companion."
- " "
- "&6Ability -"
- "&e➩ Damage Boost"
- ""
- "&6Price: &e%price%"
open:
type: COMPANION_SKULL
amount: 1
name: "&6&lReaper"
isEnchant: false
tooltipStyle: ""
itemModel: ""
description:
- " "
- "&7The Reaper who controls death,"
- "&7has become your companion."
- " "
- "&6Ability -"
- "&e➩ Damage Boost"
- ""
- "&6&lClick to set"
# Configuration Notes
- reaper: - This config header determines the purchase permission node companions.buy.reaper; it is the companion key, and multiple instances of the same companion share this config.
- type: - The
typeat the top of the file is used for mystery box draw categories, defaults todefault; thetypeinside a companion node can override the file type. - name: - Companion name, supports color codes.
- nameVisible: - Whether to show the companion name.
- playerSkull: - The texture value for the companion's head
Choose one of
playerSkull,mob,modelEngineas the companion appearance.
- mob: - Sets the virtual mob type, supports servers 1.20.5–1.21.11 and 26.1; the Ender Dragon is not supported.
- mobScale: - Sets the virtual mob scale, defaults to
0.5, only effective formob. For captured companion scaling, see Mob Capture (opens new window). - modelEngine: - Sets the ModelEngine model name; requires ModelEngine R4 and a 1.19.4+ server.
You can also use this link to create your own texture — just find the custom head you want, scroll to the bottom and copy its texture ID.
player-heads (opens new window)
- weapon: - Sets the default weapon held when the companion is purchased.
- abilityList: - Configures potion abilities/custom abilities as a list, see Companion Abilities (opens new window) for details. The legacy
abilitysemicolon format is still compatible, but usingabilityListconsistently is recommended to avoid configuring both. - attribute - Companion attributes, see Companion Attributes (opens new window) for details.
- randomAttribute - Random attribute pool, rolled and saved according to the quality config when the companion is obtained, see Companion Attributes (opens new window) for details.
- discountRate - In global attribute mode, the attribute discount for an unused companion; use
${discountRate}in the attribute formula. Defaults to1when not configured; onlydiscountRate: ""reads the main config value. - chestplate: - Sets the companion's chestplate.
- leatherColor: - If the companion wears a leather chestplate, set the leather chestplate's RGB color.
- armorTrim: - Sets the companion chestplate's armor trim (1.4.0+).
- rightArmPose: - Sets the companion's right arm pose.
- leftArmPose: - Sets the companion's left arm pose.
- headPose: - Sets the companion's head pose.
- bodyPose: - Sets the companion's body pose.
You can use this online armor stand editor to set poses.
- GUI.shop.type / GUI.open.type: - Sets the GUI icon material;
COMPANION_SKULLshows the companion's skull. Virtual mob companions show the corresponding spawn egg when no material is specified or this value is used. - amount: - Sets the item stack amount.
- name: - Sets the item's display name in the shop GUI.
- isEnchant: - Whether to show the enchant glow, defaults to
false. - tooltipStyle: - Sets the item tooltip style, effective on 1.21.2+, optional.
- itemModel: - Sets the item model, effective on 1.21.2+, optional.
- price: - Sets the purchase price; the currency used requires the corresponding economy plugin.
- description: - Sets the companion's description.
GUI.shopis the companion icon in the shop, andGUI.openis the icon when opening the warehouse with an owned companion.descriptionsupports the${attribute},${randomAttribute},${level},${quality}and%price%variables. The shop shows the random attribute range, while the warehouse shows the rolled result for that instance.
Weapons, chestplates and armor stand poses are for skull/item appearances; virtual mob and ModelEngine appearances do not display these armor stand parts.
price notes
- price: 1000 means it costs 1000 coins to purchase
- price: 1000C means it costs 1000 companion coins to purchase
- price: 1000P means it costs 1000 points to purchase
- price: "ply_money:10000" means it costs 10000 of the ply plugin's money currency
Companion permission notes
- Companion shop view permission, format: companions.buy.reaper
- companions.buy.all means shop view permission for all companions
- Companion auto-grant permission (1.2.4+), format: companions.have.reaper, requires
isHavePermission: truein the main config - reaper is the corresponding companion key
Companion armor trim notes
| Armor Trim Material | Description |
|---|---|
| quartz | Quartz |
| iron | Iron |
| netherite | Netherite |
| redstone | Redstone |
| copper | Copper |
| gold | Gold |
| emerald | Emerald |
| diamond | Diamond |
| lapis | Lapis Lazuli |
| amethyst | Amethyst |
| Armor Trim Pattern | Description |
|---|---|
| sentry | Sentry |
| dune | Dune |
| coast | Coast |
| wild | Wild |
| ward | Ward |
| eye | Eye |
| vex | Vex |
| tide | Tide |
| snout | Snout |
| rib | Rib |
| spire | Spire |
| wayfinder | Wayfinder |
| shaper | Shaper |
| silence | Silence |
| raiser | Raiser |
| host | Host |
| flow | Flow |
| bolt | Bolt |