Skip to content

Staff guide

Task Command Permission
Open the menu /dailies, /weeklies, /dailyresearch dailyresearch.command.use (everyone by default)
Check and reload tasks.json (future periods only) /dailyresearch reload dailyresearch.admin.reload (ops)
List every task pool, live or retired /dailyresearch tasks dailyresearch.admin.manage (ops)
Retire a task now, and replace it on cards already issued /dailyresearch disable <task> [reason] dailyresearch.admin.manage
Retire a task from the next period only /dailyresearch disable future <task> [reason] dailyresearch.admin.manage
Put a task back /dailyresearch enable <task> [reason] dailyresearch.admin.manage
Drop overrides for task ids that no longer exist /dailyresearch prune dailyresearch.admin.manage

Retiring a broken or exploitable task is the main staff tool. It works on every server at once, with no restart:

  • The retirement lives in the shared MariaDB table research_task_overrides, not in a file, so one command covers every backend. Other servers pick it up within 30 seconds; no restart and no per-server file edit.
  • disable also rewrites the assignments already issued. Without that, a retired task would sit on players' cards until midnight, or until Monday for a weekly, because each assignment row is a snapshot of the task as issued. Unfinished rows are replaced and their progress resets, since the replacement measures something else; rows already completed are left alone so nobody loses a reward they earned. Use disable future to leave the current period untouched.
  • The replacement is picked by the same deterministic selector used at issue time, over the pool that already excludes the retired task, so two backends doing this at once converge on the same replacement.
  • Retiring the last live task in a slot is refused. An empty slot cannot produce an assignment, and a player with no assignment has no menu at all. If a slot somehow ends up fully retired anyway, the pool falls back to the config-enabled tasks and then to the whole pool, logging a warning each time.
  • The override beats the config file in both directions, so enable always means enable. For a permanent change, set "enabled": false on the task in tasks.json; a schema upgrade preserves that flag.

On servers using CommandWhitelist, add dailies, weeklies and dailyresearch. Ops bypass CommandWhitelist, so test as a non-op.