Skip to content

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


Configuration Preview ​

  1. First, use your preferred editor to open the companions/companions.yml file in the plugin folder (you can also create separate yml files for different companions inside the companions folder)!
  2. I personally prefer using vscode
  3. I will use the example below to explain
yaml
# 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 type at the top of the file is used for mystery box draw categories, defaults to default; the type inside 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, modelEngine as 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 for mob. For captured companion scaling, see Mob Capture.
  • 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

mineSkin

  • weapon: - Sets the default weapon held when the companion is purchased.
  • abilityList: - Configures potion abilities/custom abilities as a list, see Companion Abilities for details. The legacy ability semicolon format is still compatible, but using abilityList consistently is recommended to avoid configuring both.
  • attribute - Companion attributes, see Companion Attributes for details.
  • randomAttribute - Random attribute pool, rolled and saved according to the quality config when the companion is obtained, see Companion Attributes for details.
  • discountRate - In global attribute mode, the attribute discount for an unused companion; use ${discountRate} in the attribute formula. Defaults to 1 when not configured; only discountRate: "" 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.

ArmorStand

  • GUI.shop.type / GUI.open.type: - Sets the GUI icon material; COMPANION_SKULL shows 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.shop is the companion icon in the shop, and GUI.open is the icon when opening the warehouse with an owned companion. description supports 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

  1. price: 1000 means it costs 1000 coins to purchase
  2. price: 1000C means it costs 1000 companion coins to purchase
  3. price: 1000P means it costs 1000 points to purchase
  4. price: "ply_money:10000" means it costs 10000 of the ply plugin's money currency

Companion permission notes

  1. Companion shop view permission, format: companions.buy.reaper
  2. companions.buy.all means shop view permission for all companions
  3. Companion auto-grant permission (1.2.4+), format: companions.have.reaper, requires isHavePermission: true in the main config
  4. reaper is the corresponding companion key

Companion armor trim notes

Armor Trim MaterialDescription
quartzQuartz
ironIron
netheriteNetherite
redstoneRedstone
copperCopper
goldGold
emeraldEmerald
diamondDiamond
lapisLapis Lazuli
amethystAmethyst
Armor Trim PatternDescription
sentrySentry
duneDune
coastCoast
wildWild
wardWard
eyeEye
vexVex
tideTide
snoutSnout
ribRib
spireSpire
wayfinderWayfinder
shaperShaper
silenceSilence
raiserRaiser
hostHost
flowFlow
boltBolt