XenoLevels

Experience Design

Plan EXP sources with events, conditions, and anti-abuse tools.

XenoLevels lets you award EXP from almost any activity. Map gameplay actions to expressions, then layer conditions and anti-abuse rules to keep the system fair.

Define your event sections

  • Configure sections inside exp-events.yml.
  • Reference the full Event Catalog for every expression, argument, and count policy.
  • Expressions follow the pattern EVENT[count]:ARG=value. Use :: or && for logical AND and || for OR segments.
  • [count] requirements depend on the event policy (NORMAL, EXCESSIVE, IGNORED, or NO_ARGS). Events with the EXCESSIVE policy can pay partial rewards when partial-excessive: true.
  • Set exp to a single number or a min, max range, and toggle creative access with apply.on-creative.

Layer conditions

  • Use conditions.yml to restrict EXP to specific worlds, times of day, permissions, or player states.
  • Combine economy requirements (min-balance, cost-per-exp) with booster or reward systems for monetised progression.
  • Enable AFK detection by setting player-states.afk-check to the number of idle seconds allowed.

Prevent abuse

  • Build targeted cooldowns and EXP caps in anti-abuse.yml.
  • Group similar events (mining, combat, farming) into separate modules so you can tune their timers independently.
  • Turn off anti-abuse.player-placed-blocks or require natural blocks to stop farm loops.

Test and iterate

  1. Update the YAML files for the relevant system.
  2. Run /xlv reload to apply changes.
  3. Monitor the console for syntax warnings and adjust expressions or filters as needed.

Pro tip

Keep your sections short and descriptive. It is easier to debug dragon-slayer or mining-dailies than a single giant block that mixes unrelated activities.

Last updated on