Contract Request (Premium)

Last updated Sep 18, 2026

Contract Request (Premium)

Gives players a random quest paper on demand. Requires the random generator to be on (random-generator.yml).

New here? Start with Set up a contract NPC.

Players open the contract board from:

  1. A Citizens NPC set with /sq npc broker <npc-id|name> [message]
  2. /sq contract [difficulty] (alias: /sq request)
  3. The Get a Contract button in the quest browser

On the board they pick a difficulty (fee shown per option), then Confirm to pay and receive the paper. Cancel closes with no charge.

Settings live in contract-request.yml. Board layout lives in gui.yml under contract-request:.


How it works for players

  1. Open the board (NPC / command / browser).
  2. Select a difficulty — each option shows its cost from cost / cost-by-difficulty.
  3. Click Confirm — the plugin checks permission, cooldown, and active-contract limit, charges the fee, rolls a temporary quest for that difficulty, and gives the paper.
  4. Click Cancel — nothing is charged.

/sq contract hard opens the board with Hard already selected.

Temporary contracts are removed from the generator file after the reward is claimed. If a quest cannot be created, nothing is charged. If the paper cannot be given after payment, the fee is refunded.


Contract NPCs

/sq npc broker <npc-id|name> [message]
/sq npc brokers
/sq npc unbroker <npc-id|name>
  • Cap how many contract NPCs you allow with max-broker-npcs (default 5).
  • An NPC cannot be both a fixed quest giver (/sq npc link) and a contract NPC.
  • Right-click opens the contract board (not an instant purchase).
  • /sq npc brokers lists every registered contract NPC and the current count.

Per-NPC cooldown, cost, difficulty list, and greeting message go under brokers in contract-request.yml. The optional [message] on /sq npc broker is saved there for you.

Full walkthrough: Set up a contract NPC.


Permissions

Permission Default Purpose
soapsquest.contract true Open the board / take contracts
soapsquest.contract.bypass-cooldown op Skip the wait between contracts
soapsquest.contract.bypass-cost op Skip the fee

Notes

  • /sq generate is still staff-only. It creates quest definitions and does not hand papers to players. Use optional filters to pin objective, amount, difficulty, tier, or material — see Random Quest Generator.
  • To release a contract paper, press Q to drop it (same as any quest). Progress stays on the instance; lock-to-player means only you can pick it back up. Your active-contract limit still counts the instance until it is voided or adopted by another player.
  • /sq reload reloads contract-request.yml and keeps saved cooldowns.

Premium only — Version 1.0.5