Levels and slots
Experience curves, milestone rewards, joining and leaving, slots and auto-join.
Levels
Experience needed for a level comes from the job's curve (Jobs and actions), at least 1. Each level reached fires JobLevelUpEvent, plays the level-up effect and gives that level's milestone rewards (rewards: in the job file, ExyliaLib rewards; what does not fit in the inventory is queued and claimed on join). At max level the experience stops. income-bonus and xp-bonus apply per level above 1.
A milestone pays once per player per job: leaving, kept experience and prestige never repeat it. With milestones.repeat-after-prestige: true they pay again on the climb after a prestige.
Joining and leaving
A player holds jobs up to their slots. Joining is instant. With every slot taken, the plugin does not refuse: with one job held it asks "Leaves X first, keeps N% experience?", and with several it asks which one goes, then confirms and does both in one step. Leaving always asks first.
config.yml key | Default | Meaning |
|---|---|---|
slots | 2 | Jobs held at once (1 to 64). |
auto-join | false | Every player holds every job: no joining, leaving or slots. |
leave.kept-xp | 1.0 | Share of the job's total experience kept when leaving; joining again starts there. |
leave.cooldown | 0s | Wait after leaving before leaving another. |
leave.fee | 0 | Money charged to leave, in the default currency; recorded as a sink. |
exyliajobs.slots.<n> raises the slots (the highest one wins and never lowers the configured value). A leave blocked by the cooldown or an unaffordable fee is a real rule and is refused with the time or amount. JobJoinEvent and JobLeaveEvent can be cancelled.
A disabled job (enabled: false) cannot be joined and pays nothing, but levels are kept.
Top lists
/jobs top <job> ranks players by prestige, then level, then experience. The list is read again every storage.top-refresh (1 minute). Progress is written every storage.flush-interval (30 seconds) and when a player leaves.
Something missing on this page? Tell us on Discord