Content generated with AI — it may contain mistakes.

Jobs

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 keyDefaultMeaning
slots2Jobs held at once (1 to 64).
auto-joinfalseEvery player holds every job: no joining, leaving or slots.
leave.kept-xp1.0Share of the job's total experience kept when leaving; joining again starts there.
leave.cooldown0sWait after leaving before leaving another.
leave.fee0Money 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