Skip to main content

How to make a Job

How to add jobs

Each job is its own config file, placed in the /jobs/ folder, and you can add or remove them as you please. There's an example config called _example.yml to help you out!

The ID of the Job is the file name. This is what you use in commands, effects and placeholders. ID's must be lowercase letters, numbers, and underscores only.

Example Job Config

name: "&6Miner"
description: "&8&oLevel up by mining blocks"
icon: player_head texture:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODU3MDVjZjg2NGRmMmMxODJlMzJjNDg2YjcxNDdjYmY3ODJhMGFhM2RmOGE2ZDYxNDUzOTM5MGJmODRmYjE1ZCJ9fX0="
unlocked-by-default: true
reset-on-quit: false

join-price:
value: 0
type: coins
display: "&a$%value%"

join-lore: []

join-effects:
- id: broadcast
args:
message: "&8» &a%player% &8joined the &6Miner &8job!"

leave-price:
value: 20000
type: coins
display: "&a$%value%"

leave-effects:
- id: send_message
args:
message: "&8» &8You left the &6Miner &8job!"

leave-lore:
- " &8» This will cost %leave_price%"

xp-requirements:
- 50
- 125
- 200
- 300
- 500
- 750
- 1000
- 1500
- 2000
- 3500
- 5000
- 7500
- 10000

xp-gain-methods:
- trigger: mine_block
multiplier: 0.5
conditions: [ ]
filters:
items:
- "*wooden_pickaxe"
- "*stone_pickaxe"
- "*iron_pickaxe"
- "*golden_pickaxe"
- "*diamond_pickaxe"
- "*netherite_pickaxe"

level-placeholders:
- id: "money"
value: "%level% * 0.4"
- id: "blocks"
value: "ceil(10 - %level% / 10)"

effects-description:
1:
- "&8» &8Earn &a$%money%&8 for each &a%blocks%&8 blocks mined"

rewards-description:
1:
- "&8» &8Earn &a$%money%&8 for each &a%blocks%&8 blocks mined"

level-up-messages:
1:
- "&8» &8Earn &a$%money%&8 for each &a%blocks%&8 blocks mined"

level-up-effects:
- id: give_item
args:
items:
- diamond
every: 5
require: "%level% = 5"

effects:
- id: give_money
args:
every: "ceil(10 - %level% / 10)"
amount: "0.4 * %level%"
filters:
items:
- "*wooden_pickaxe"
- "*stone_pickaxe"
- "*iron_pickaxe"
- "*golden_pickaxe"
- "*diamond_pickaxe"
- "*netherite_pickaxe"
triggers:
- mine_block

conditions: [ ]

Understanding all the sections

The Job Info Section

name: "&6Miner" # The display name of the job
description: "&8&oLevel up by mining blocks" # The description of the job
# The icon in GUIs: https://plugins.auxilor.io/the-item-lookup-system
icon: player_head texture:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODU3MDVjZjg2NGRmMmMxODJlMzJjNDg2YjcxNDdjYmY3ODJhMGFhM2RmOGE2ZDYxNDUzOTM5MGJmODRmYjE1ZCJ9fX0="
unlocked-by-default: true # If the job should be unlocked by default
reset-on-quit: false # If job progress should be reset when quitting

The Joining & Leaving Section

# The price to join this job (set to 0 to disable)
# Read here for more: https://plugins.auxilor.io/all-plugins/prices
join-price:
value: 0
type: coins
display: "&a$%value%"

# Lore shown when clicking on the job icon to join it
# Reference with %join_lore%
join-lore: []

# A list of effects to run when the player joins the job.
# Read https://plugins.auxilor.io/effects/configuring-an-effect
join-effects:
- id: broadcast
args:
message: "&8» &a%player% &8joined the &6Miner &8job!"

# The price to leave this job (set to 0 to disable)
# Read here for more: https://plugins.auxilor.io/all-plugins/prices
leave-price:
value: 20000
type: coins
display: "&a$%value%"

# A list of effects to run when the player leaves the job.
# Read https://plugins.auxilor.io/effects/configuring-an-effect
leave-effects:
- id: send_message
args:
message: "&8» &8You left the &6Miner &8job!"

# Lore shown on the confirm leave button
# Reference with %leave_lore%
leave-lore:
- " &8» This will cost %leave_price%"

The Progression Section

XP Requirements

There are two ways to specify level XP requirements:

  1. A formula to calculate for infinite levels
xp-formula: (2 ^ %level%) * 25 # The formula to calculate XP requirements for each level, where %level% is the level to calculate for. See here for math https://plugins.auxilor.io/all-plugins/math
max-level: 100 # (Optional) The max level, if not specified, there is no max level
  1. A list of XP requirements for each level
xp-requirements: # The XP required to reach each level, from Level 1. The length of the list is the max level.
- 50 # XP required to reach level 1
- 125 # XP required to reach level 2
- 200
- 300
- 500
- 750
- 1000
- 1500
- 2000
- 3500
- 5000
- 7500
- 10000

XP Gain Methods

# An XP gain method takes a trigger, a multiplier, conditions, and filters.
# The 'multiplier' takes the value produced by the trigger and multiplies it
# Alternatively, you can use 'value' to count a specific number and not a multiplier
xp-gain-methods:
- trigger: mine_block
multiplier: 0.5 # You can also use "value" here (see above comment)
conditions: [ ]
filters:
items:
- "*wooden_pickaxe"
- "*stone_pickaxe"
- "*iron_pickaxe"
- "*golden_pickaxe"
- "*diamond_pickaxe"
- "*netherite_pickaxe"

The Additional Options Section

# Custom placeholders to be used in descriptions,
# Don't add % to the IDs, this is done automatically
# The value takes a %level% placeholder and is a mathematical expression
level-placeholders:
- id: "money"
value: "%level% * 0.4"
- id: "blocks"
value: "ceil(10 - %level% / 10)"

# The text shown with the %effects% placeholder
# The number dictates the minimum level for this text to show for
# Adding new levels will override this text on those levels or above
effects-description:
1:
- "&8» &8Earn &a$%money%&8 for each &a%blocks%&8 blocks mined"

# Same as above, but for %rewards%
rewards-description:
1:
- "&8» &8Earn &a$%money%&8 for each &a%blocks%&8 blocks mined"

The Level Up Section

# The message sent when the player levels up
level-up-messages:
1:
- "&8» &8Earn &a$%money%&8 for each &a%blocks%&8 blocks mined"

# Effects to run when the job levels up
# %level% is the level the job leveled up to.
# If you want to restrict this to certain levels, you can use
# require: %level% = 20, or require: %level% < 50, etc.
# If you want a reward to run every x levels, you can use
# every: 1, or every: 12, etc
level-up-effects:
- id: give_item
args:
items:
- diamond
every: 5 # Gives the reward every 5 levels
require: "%level% = 5" # Requires level 5 before receiving rewards

The Effects Section

# The effects for the job (i.e. the functionality)
# See here: https://plugins.auxilor.io/effects/configuring-an-effect
effects:
- id: give_money
args:
every: "ceil(10 - %level% / 10)"
amount: "0.4 * %level%"
filters:
items:
- "*wooden_pickaxe"
- "*stone_pickaxe"
- "*iron_pickaxe"
- "*golden_pickaxe"
- "*diamond_pickaxe"
- "*netherite_pickaxe"
triggers:
- mine_block

# The conditions required for the effects to activate
conditions: [ ]

The effects section is the core functionality of the job. You can configure effects, conditions, filters, mutators and triggers in this section to run whilst the job is active.

Check out Configuring an Effect to understand how to configure this section correctly.

For more advanced users or setups, you can configure chains in this section to string together different effects under one trigger. Check out Configuring an Effect Chain for more info.

Internal Placeholders

PlaceholderValue
%level%The player's job level. Useful for creating scaling effects
%level_numeral%The player's job level shown in Roman Numerals
%level_x%The player's job level, +/- a value. eg. %level_-1% is current level-1
%level_x_numeral%The player's job level, +/- a value, shown as Numerals

Default configs

The default configs can be found here.
You can find additional user-created configs on lrcdb.