Skip to content

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:

SwitchLocation
queue.purchase.enabledconfig.yml, server-wide master switch.
queue.allow_purchasestations/<id>.yml, whether this station sells slots.
emakistation.purchasePlayer permission, default true.

Full Example

yaml
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

FieldDescription
tiers[].count_rangeWhich slot numbers this tier covers, such as "1-2".
tiers[].currency.typevault or excellent.
tiers[].currency.amountCurrency amount.
tiers[].item.sourceAn additional item requirement, given as a CoreLib ItemSource token.
tiers[].item.amountItem amount.
fallback.currency.typeFallback currency type.
fallback.currency.amountFallback amount; expressions are supported, where %count% is the ordinal of the slot being bought, evaluated by the CoreLib ExpressionEngine.
fallback.max_amountPrice ceiling for a single queue slot.
batch.enabledWhether batch purchasing is allowed.
batch.optionsSelectable 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.