Paid Queue Slots
Players can buy extra queue slots on the queue page. Price tiers live in plugins/EmakiStation/queue_costs.yml, whose file name is given by queue.purchase.cost_file in config.yml.
This is a business data file: release_default_data releases it once when missing, and version upgrades never overwrite administrator content.
Three Switches
Any one of them being off prevents purchasing:
| Switch | Location |
|---|---|
queue.purchase.enabled | config.yml, server-wide master switch. |
queue.allow_purchase | stations/<id>.yml, whether this station sells slots. |
emakistation.purchase | Player permission, default true. |
Full Example
tiers:
- count_range: "1-2"
currency:
type: vault
amount: 5000
- count_range: "3-4"
currency:
type: vault
amount: 20000
- count_range: "5-6"
currency:
type: vault
amount: 50000
item:
source: "diamond"
amount: 8
fallback:
currency:
type: vault
amount: "100000 * 1.15 ^ (%count% - 7)"
max_amount: 500000000
batch:
enabled: true
options: [1, 2, 5]Fields
| Field | Description |
|---|---|
tiers[].count_range | Which slot numbers this tier covers, such as "1-2". |
tiers[].currency.type | vault or excellent. |
tiers[].currency.amount | Currency amount. |
tiers[].item.source | An additional item requirement, given as a CoreLib ItemSource token. |
tiers[].item.amount | Item amount. |
fallback.currency.type | Fallback currency type. |
fallback.currency.amount | Fallback amount; expressions are supported, where %count% is the ordinal of the slot being bought, evaluated by the CoreLib ExpressionEngine. |
fallback.max_amount | Price ceiling for a single queue slot. |
batch.enabled | Whether batch purchasing is allowed. |
batch.options | Selectable batch sizes. |
fallback.max_amount is required: when missing or non-positive the whole fallback tier is disabled and slots beyond tiers become unpurchasable. Its purpose is to stop an exponential expression from overflowing to Infinity.
Pricing Rules
When a player buys their Nth queue slot, the count_range containing N decides the price. N is that player's already-purchased count at this station plus one, counted independently per station. Earlier tiers win; unmatched numbers fall back to fallback.
Batch purchases are settled by pricing each slot and summing, not "unit price × quantity" — otherwise a player could buy a large batch entirely at the cheapest tier.
No price means refusal: when a slot matches neither a tier nor fallback, the purchase is refused rather than granted for free. When the file is missing or unusable as a whole, paid queue slots are disabled entirely.
Relationship to the Ceiling
Purchased slots stack on top of the base length or permission tier, but the result is still clamped by the station's queue.max_length. The plugin refuses purchases that would be swallowed by that clamp at quoting time, so a player never pays first and discovers the slot was useless afterwards.
When a queue entry is cancelled, currency already paid is refunded at the station's cancel_refund_rate, the same rate as materials.