config.yml configuration guide
The main config file is config.yml. You can configure your level-up actions and global level matchers, custom command aliases, language, leaderboards, and global rewards.
debug - If it is enabled (true), then the plugin will log additional information about what it is doing and what is happening. Only allow this if the developer asks you.
language - This will determine what language the plugin will use for command messages. If the file doesn't exist, a new one will be generated from the default English file.
prevent-creative-mode - Will prevent progression for players that are in creative mode if set to true. Default is true.
limit-progress-to-max-requirement - If set to true, players won't collect more items in a collection than the requirement of its last level, so progression stops once the collection is maxed. Default is false. This is not recommended unless you are not finished with your levels (beta testing server etc.), since the collected amounts are capped and won't count towards levels you add later.
You can override the base commands and every user subcommand to fit your language.
command-aliases:
collections: ["collections", "collection"]
progression: ["progression"]
Make sure to keep at least one alias always otherwise the plugin will break.
This is for more advanced templating. Currently, only rewards are supported for this.
display-components:
rewards:
title: " &7Rewards:&r"
line: " {reward}"
The title will be the first line in the item lore or level-up message. Every reward will be placed on the {reward} in its new line.
In every action, you will have access to {prev_level} , {prev_level_raw} ,{prev_level_formatted}placeholders, which defines the previous level. Every action can be disabled if you set the enabled field to false. PlaceholderAPI placeholders are also supported in every action. Similarly you have access to the current level and collection placeholders like category and collection name.
The level-up-message is sent when a player reaches a new level in a collection. If open-menu-when-clicked is true, players can click the message to open the progression menu of the collection.
The rewards display component is available here. If you have multiple rewards for the level it will show something like this:
...your message top...
Rewards:
some reward 1
some reward 2
...your message bottom...
level-up-message:
enabled: true
open-menu-when-clicked: true
message:
- "&3&m----------------------------------------&r"
- ' '
- " &f&l{collection_name} collection level up &6&l{level}&r"
- ' '
- "component:rewards"
- ' '
- "&3&m----------------------------------------"
Sent when a player reaches a percentage based category level defined in categories.yml. You can use {category_name}, {category_id}, {percent} and {player} here, and the rewards display component is available as well. If open-menu-when-clicked is true, clicking the message opens the category rewards menu.
category-level-up-message:
enabled: true
open-menu-when-clicked: true
message:
- "&3&m----------------------------------------&r"
- ' '
- " &f&l{category_name} milestone reached &6&l{percent}%&r"
- ' '
- "component:rewards"
- ' '
- "&3&m----------------------------------------"
Sent when a player collects the first item of a collection. The collection placeholders (like {collection_name}) are available here. Disabled by default.
discover-message:
enabled: false
open-menu-when-clicked: true
message:
- "&3&m----------------------------------------&r"
- ' '
- " &f&lCollection discovered&r"
- " &e&l{collection_name}&r"
- ' '
- "&3&m----------------------------------------"
The sound has to be a Minecraft sound key (like entity.player.levelup, the same format the /playsound command uses) as of now. level-up-sound is played on collection level up, discover-sound is played when a player discovers a new collection (disabled by default).
level-up-sound:
enabled: true
sound: "entity.player.levelup"
volume: 1
pitch: 1
discover-sound:
enabled: false
sound: "entity.player.levelup"
volume: 1
pitch: 1
Leaderboards are created for every collection and for every category (total collected items in the category). See Placeholders for the leaderboard placeholders.
# Changing leaderboard options requires a server restart
leaderboard:
# How many players to display on the leaderboard at all times.
# Papi placeholders will only be available for the top X.
cache-size: 10
# Minimum amount of items that need to be collected to be displayed on the leaderboard for each collection
min-items-collected: 10
In the global-level-matchers section you can define custom rewards for levels based on an interval globally (meaning you can use them in every on of your collections if you want).
These matchers are only used in collections that have use-global-level-matchers: true.
The matcher named default in the config by default will match every level, since it has an interval of 1, meaning every level, since every level can be divided by 1.
The priority system ensures, that if you have a matcher for example that matches every fifth level, then if it has higher priority than the default, it will be selected instead of the default. This way you can define matchers for every 5, 10, 20 etc levels.
You can read about how to define rewards at Rewards. The name of the rewards can be anything valid YAML.
global-level-matchers:
default:
interval: 1
priority: 0
rewards:
my-money-reward:
type: money
formula: "1000 * {level_raw}^2 - 1000 * {level_raw} + 2000"
display: "&8+&a{value_formatted}"
every5:
interval: 5
# Optional - start from this level and count up with interval
start: 5
# Optional - stop when this level + 1 reached
stop: 100
priority: 1
# This is optional
inherits-from: [ default ]
rewards:
my-aurora-levels-reward:
type: levels_xp
formula: "ceil(5 + 5 * ({level_raw} - 1) * (log(1 + {level_raw}) / log(2)))"
display: "&8+&b{value_formatted} Global XP"
We have 2 matchers here. Default which will match every level and one named every5 which will match every 5th level. Since every5 has higher priority than default it will always be selected in every level that is divisible by 5 instead of the default one. (eg.: 5, 10, 15, 20, 25, 30, 35, 40, and so on). This way you can define a flexible system, that gives more and bigger rewards at certain intervals.
Because every5 is inherits from default it means that on every 5 levels you will also get the default matchers rewards.