Upgrades and tickets
The five axes
Section titled “The five axes”Every spawner type has five independent upgrade axes, defined in spawners.yml:
| Axis | What it changes |
|---|---|
range |
How close a player must be for the spawner to run. |
delay |
Ticks between one production cycle and the next. |
amount |
Kills produced each cycle, before the stack multiplies it. |
capacity |
How much of one drop the store holds, before the stack multiplies it. |
xp |
How much experience the store holds, before the stack multiplies it. |
Each axis is levelled from 1 up to its own max-level. A level’s value is:
value = base + (level - 1) × increaseincrease may be negative — delay’s is, so a higher level means a shorter
wait. Level 1 always costs nothing; every level from 2 upward is priced by
that axis’s price, either a formula or a fixed list of per-level prices.
Formula pricing
Section titled “Formula pricing”A price formula can use + - * / ^, brackets, and three placeholders:
<level> (the level being bought), <max> (the axis’s max-level), and
<stack> (how many spawners the block holds). The shipped types omit
<stack>, so buying a level once raises every spawner in the block for one
price — stacking is rewarded, and it is cheaper for the server to run than
charging per spawner. See spawners.yml
for the full syntax and an example that does charge per spawner.
Buying an upgrade
Section titled “Buying an upgrade”Buy a level from the spawner’s own menu (right-click it, atlasspawner.mine
grants nothing here — opening needs the OPEN right; see
Whitelist and ownership), or
spend a ticket on it — a permanent upgrade bought as an item instead. Both
paths raise the same level in the same way; a ticket does not behave
differently from a menu purchase once applied.
config.yml’s upgrades.enabled is the master switch: off, the menu squares
are not drawn, and a ticket used on a spawner is refused — but a spawner’s
existing levels keep working. Each axis also has its own switch
(upgrades.range, upgrades.delay, upgrades.amount, upgrades.capacity,
upgrades.xp); turning one off removes just that square, for every type.
Tickets
Section titled “Tickets”A ticket, defined in
boosters.yml, names one axis
(RANGE, DELAY, AMOUNT, CAPACITY, XP) or ANY, which lets the player
choose the axis when they use it, and a number of levels. Right-clicking a
spawner with a ticket raises that axis by as many levels as fit under the
type’s max-level.
What happens with levels left over is the ticket’s overflow setting:
REFUND— raises what fits, and hands back a smaller ticket for the rest. Nothing bought is lost.PARTIAL— raises what fits, and spends the whole ticket regardless.REFUSE— does nothing, and says how many levels are left over.
Capacity and xp, switched off
Section titled “Capacity and xp, switched off”capacity and xp are upgrade axes like the other three, but they also
gate what a spawner’s store holds when they are off. With upgrades.capacity
off, every spawner’s item store falls back to the flat
output.virtual.capacity from config.yml, whatever level the type’s
capacity axis would otherwise give it. upgrades.xp off does the same for
experience, against experience.virtual.capacity. Level 1 of each axis is set
to match those two config values by default, so turning the axis off changes
nothing already placed.