Configuration
What lives in each configuration file.
On this page
File layout
config.yml # features, XP sources, sounds, theme, panel, permission remaps
levels.yml # the level curve, rewards and objectives
lang/messages.yml # every player-facing message
menus/players/levels.yml, claim-confirm.yml # the two menus
playerdata/ # runtime, one file per player
config.yml. What each level costs, and what it pays, is in levels.yml. Retuning one never needs a change to the other.Features
features:
xp-playtime: true
xp-player-kill: true
xp-mob-kill: true
level-up-broadcast: true
level-up-title: true
level-up-sound: true
| Key | Turns off |
|---|---|
xp-playtime / xp-player-kill / xp-mob-kill | That XP source completely. |
level-up-broadcast | The server-wide announcement. The claiming player still gets a message. |
level-up-title | The on-screen title on a claim. |
level-up-sound | The level-up sound. |
XP sources
The rates and anti-farm options are explained with their defaults on Levels and XP.
Sounds
sounds:
level-up: "ENTITY_PLAYER_LEVELUP"
prestige: "UI_TOAST_CHALLENGE_COMPLETE"
Any Bukkit Sound name. The menu's own open, navigate and deny sounds are in menus/players/levels.yml, and the confirmation menu has its own. An unknown name logs Unknown sound in config.yml and is skipped.
Theme
theme:
accent-hex: "#FF0000"
gradient-start: "#8B0000"
gradient-end: "#FF0000"
Every message, menu and config file supports MiniMessage directly. On top of that, any text coloured with accent-hex is upgraded to a real two-stop gradient from gradient-start to gradient-end everywhere, so authors write one flat hex instead of a gradient tag. Change the three values to recolour chat, menus and the startup banner. Run /leveladmin reload or restart.
The levels menu
menus/players/levels.yml is a single 54-slot catalog:
| Key | Meaning |
|---|---|
title, size | The menu title and its size. The shipped menu is 54 slots. |
tier-slots | The 45 slots (rows 1 to 5) used for level tiles. A 100-level cap needs 3 pages. Row 6 is navigation. |
navigation | Previous page (slot 45), close (49) and next page (53). |
sounds | open, navigate and deny. |
tier-item.heads | A base64 head texture for each of the four states: locked, in-progress, ready, claimed. |
locked, in-progress, ready, claimed | The name, lore and glow of a tile in that state. {objectives} in the lore expands to the level's objectives. |
milestone-marker-lore | The line added to a tile whose level hands out bonus items. |
Placeholders available in the tiles are listed on Placeholders, plus {previous_level} for the locked state.
The confirmation menu
menus/players/claim-confirm.yml is a 27-slot menu. The level icon sits at slot 13, the green confirm button at 11 and the red cancel button at 15, with {level} and {money} available in the text. Its sounds have open and cancel only, because a successful claim already plays the level-up sound.
Player data
One YAML file per player in playerdata/<uuid>.yml, holding the level, XP, prestige and the per-level kill counters. Data is loaded when a player joins and saved asynchronously, and the plugin waits up to 30 seconds for pending saves when the server stops.
Reload vs. restart
/leveladmin reload re-reads config.yml, levels.yml, the messages and both menus, and restarts the playtime XP timer. It does not load a new jar, so an update needs a full restart.