Docs

Levels

levels.yml defines independent leveling tracks, as many as you want: player level, mining mastery, event level. Each track has its own experience, formula, sources and rewards.

Configurationlevels.yml
Command/levels (aliases /level, /lvl, /niveles)
Modulealways on

Configuration

yaml
tracks:
  player:
    enabled: true
    name: "Player Level"
    color: "&b"
    max-level: 500
    permission: ""               # permission to earn experience, empty = everyone
    announce-level-up: true
    exp-multiplier: 1.0
    formula:
      type: exponential          # exponential, linear or polynomial
      base: 250
      growth: 1.08
      step: 100
    sources:
      blocks:
        default: 1               # experience per mined block
        materials:
          DIAMOND_ORE: 10
          EMERALD_ORE: 15
      currencies:
        tokens: 0.05             # experience per token earned while mining
    rewards:
      levels:
        "10":
          - "[give] tokens 1000"
          - "[title] &b&lLEVEL 10;&7You earned 1,000 tokens"
        "50":
          - "[give] gems 25"
          - "[broadcast] &b{player} &7reached player level &f50&7!"
      every:
        "5":
          - "[give] shards 5"
          - "[sound] ENTITY_PLAYER_LEVELUP 1 1.2"

Formulas

Experience to go from level N to N+1:

TypeFormulaUse
exponentialbase × growth ^ (N - 1)Every level costs a percentage more
linearbase + step × (N - 1)Every level costs the same plus a fixed extra
polynomialbase × N ^ growthSmooth growth, like the pickaxe

Experience sources

  • Blocks: sources.blocks.default and per material values. Extra blocks from enchants, bombs and drills count.
  • Currencies: sources.currencies gives experience per unit of currency earned while mining.
  • Custom enchants: the level-exp effect.
  • Actions: [exp] <track> <amount> from any reward.
  • Command: /levels give.

Experience is multiplied by exp-multiplier and by the level-exp and level-exp:<track> stats.

Rewards

  • rewards.levels: actions when reaching an exact level.
  • rewards.every: actions every N levels.

Placeholders: {player}, {level}, {track} and {track_name}. When several levels are gained at once, the rewards of each one run.

Commands

CommandPermissionDoes
/levels [player]everyoneLevel and progress in every track
/levels top [track]everyoneLeaderboard
/levels give <player> <track> <amount>pulseprison.levels.adminGives experience
/levels set <player> <track> <level>pulseprison.levels.adminSets a level
/levels reloadpulseprison.levels.adminReloads levels.yml

Placeholders

PlaceholderReturns
%pulseprison_level_<track>%Level
%pulseprison_level_<track>_exp%Current experience
%pulseprison_level_<track>_required%Experience for the next level
%pulseprison_level_<track>_progress%Percentage
%pulseprison_level_<track>_bar%Progress bar
%pulseprison_level_<track>_max%Max level
%pulseprison_level_<track>_name%Name with color

Milestones can require levels with type: level:<track>. Event for addons: PlayerLevelUpEvent.

Levels | PulsePrison Core Docs