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:
- A Citizens NPC set with
/sq npc broker <npc-id|name> [message] /sq contract [difficulty](alias:/sq request)- 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
- Open the board (NPC / command / browser).
- Select a difficulty — each option shows its cost from
cost/cost-by-difficulty. - 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.
- 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 brokerslists 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 generateis 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-playermeans 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 reloadreloadscontract-request.ymland keeps saved cooldowns.
Premium only — Version 1.0.5