Skip to content

Channel Operator Manual

This manual covers the day-to-day management of trivia games for channel operators. It assumes that an administrator has already completed initial setup and activated the network. If you are setting up Inquisitor for the first time, refer to the Administrator Manual instead.


The Operator Role

Operators are users who have been granted one or more elevated permission levels by a network administrator. Three tiers of operator permissions exist:

Permission Role What it enables
START Game runner Start and stop games
MODERATE Game moderator Skip questions, manage the question pool, adjust configuration, switch question sets
MANAGE Content manager Add, edit, and delete questions and question sets

Permissions are cumulative via hierarchy: MANAGE implies MODERATE, which implies START, which implies PLAY. A user with MANAGE permission can do everything a MODERATE user can do.

Permissions are per-network: having MODERATE on one IRC network does not grant any permissions on another network.

An administrator grants permissions with:

@grant alice MODERATE

Starting and Stopping Games

@trivia is a toggle command — run it once to start, again to stop.

Starting a game:

@trivia

When the game starts:

  • The bot displays a version banner (e.g., Inquisitor v0.6.0-beta.1 "Plato")
  • The active question set is announced
  • The first question is delivered

Stopping a game:

@trivia

When stopped, the bot displays a session summary with top scorers.

One game per channel

Only one game can run per channel at a time. Multiple channels on the same network can run simultaneously.

Automatic continuation

Games continue delivering questions until manually stopped. When the question pool is exhausted it reshuffles silently and continues without announcement.


Game Management Commands

These commands are available during an active game.

@recall
Repeat the current question with the latest hint state and remaining time. No permission required. Useful when the question has scrolled off-screen.
@skip
Permission: PLAY. Vote to skip the current question. When a majority of active players (those who answered in the last 5 questions) vote to skip, the question is skipped, the answer is revealed, and the next question begins.
@poolstatus
Show how many questions remain in the current pool (standard and KAOS pools listed separately) and how many have been asked this session. No permission required.
@poolreset [standard|kaos]
Permission: MODERATE. Reset the question pool so all questions are eligible again. Optionally specify standard or kaos to reset only one pool. If omitted, both pools are reset.

Configuration

Inquisitor uses a three-tier hierarchy: channel settings override network settings, which override global defaults. The @config family of commands manages these settings.

Viewing Settings

@config list

Lists all settings with their current values and scope indicators:

  • C — value set at channel scope
  • N — value inherited from network scope
  • G — value inherited from global scope

Filter by namespace:

@config list game
@config list scoring
@config list kaos
@config list scramble

View a single setting with scope detail:

@config get game.hintDelay

Changing Settings

@config set game.hintDelay 20

Sets the value at channel scope. Changes take effect for the next question.

Boolean settings accept: true/false, yes/no, 1/0, on/off (case-insensitive).

Admin-only settings

Some settings require ADMIN permission: scoring.timezone, all permissions.* settings, and debug.verbose. Attempting to set these as a MODERATE user produces a permission error.

Resetting Settings

@config reset game.hintDelay

Removes the channel-level override. The setting falls back to the network setting, or global default if no network setting exists.

Exporting and Importing

@config export

Exports current settings as a compact JSON string. Sent as a private notice if over 400 characters.

@config import {"game.hintDelay":"20","game.questionTimeout":"90"}

Permission: ADMIN. Imports settings from JSON. All settings are validated before any changes are applied.

Common Operator Settings

Setting Type Default Description
game.hintDelay int 15 Seconds between hints for standard questions
game.questionTimeout int 60 Seconds before a question times out
game.questionDelay int 10 Seconds between questions
scoring.minPoints int 10 Minimum point value for a question
scoring.maxPoints int 50 Maximum point value for a question
kaos.frequency int 10 KAOS question every N questions (0 = disabled, -1 = KAOS only)
kaos.hintDelay int 20 Seconds between KAOS hints
scramble.hintDelay int 15 Seconds between scramble hints
scramble.questionTimeout int 60 Seconds before a scramble question times out

Question Set Management

A question set is a named collection of questions. Each network has one active question set at a time.

Switching the Active Set

@setquestionset Science

Permission: MODERATE. Switches the active question set for this network. Blocked if any game is currently running on the network — stop all games first.

Case-insensitive lookup

Question set names are looked up case-insensitively. @setquestionset general and @setquestionset General both work.

Browsing Sets

@questionset list

Lists all available question sets with question counts and active/inactive status. No permission required.

@questionset stats
@questionset stats Science

Shows statistics for the active set or a named set: total questions, type breakdown (standard/kaos/scramble), number of categories, questions asked, and questions answered. No permission required.

Creating and Renaming Sets

@questionset add Science

Permission: MANAGE. Creates a new empty question set.

@questionset rename OldName NewName

Permission: MANAGE. Renames a question set. The active question set reference updates automatically.

Browsing Categories

@category list
@category list --set Science

Lists all categories within the active set, or within a named set if --set is specified, with question counts per category. No permission required.


Question Management

Viewing Questions

@question show 42

View full details of a question by ID: text, primary answer, alternatives, category, type, point value, and times asked/answered. Permission: MANAGE.

@question list --set General
@question list --set General --page 3

Paginated question list (20 per page by default). Question text truncated at 50 characters. Permission: MANAGE. Supports optional --category, --type, and --limit flags.

@question search "color sky"

Fuzzy search with relevance scores. Rate-limited to one search per 8 seconds. Permission: MANAGE. Supports optional --set, --category, --type, and --page flags.

Adding Questions

@question add "What color is the sky?" "blue" --set General
@question add "What color is the sky?" "blue" --set General --category Science --alternatives "Blue,the sky is blue"

Permission: MANAGE. The first two positional arguments are the question text and primary answer (in quotes). Use --set to specify the question set (required), and optional flags --category, --type (standard/kaos/scramble), and --alternatives (comma-separated).

Validation applied automatically:

  • Question text must be at least 10 characters
  • Duplicate detection at 85% fuzzy similarity threshold
  • Empty answers are rejected

Use --force to bypass validation and duplicate checks:

@question add "Short?" "yes" --set General --force

Editing Questions

@question edit 42 --text "What color is the ocean?"
@question edit 42 --answer blue
@question edit 42 --type scramble
@question edit 42 --category Geography
@question edit 42 --alternatives "azure,cerulean"

Permission: MANAGE. Valid flags: --text, --answer, --category, --type, --alternatives. Multiple flags can be combined in one command. The bot shows a verbose diff after each edit:

text: 'What color is the sky?' -> 'What color is the ocean?'

Deleting Questions

Destructive operation

Question deletion is permanent and cannot be undone.

@question delete 42

Permission: MANAGE. Shows a preview of the question and requires confirmation:

@confirm

The confirmation expires after 5 minutes.


Bulk Operations

Admin permission required

Bulk operations require ADMIN permission. They are noted here for transparency — operators with MANAGE permission should contact an administrator for bulk changes.

@question bulkmove --from-set "Source" --to-set "Target"
Move all questions from one set to another. Requires @confirm.
@question bulkdelete --set "SetName" [--category "Cat"]
Delete all questions in a set (optionally filtered by category). Shows a preview and requires @confirm. Permanent and irreversible.

Common Operator Tasks

Quick Reference

Start a game: @trivia

Stop a game: @trivia

Skip current question: @skip

Repeat current question: @recall

Change hint timing: @config set game.hintDelay 20

Change question timeout: @config set game.questionTimeout 90

Check point range: @config get scoring.minPoints and @config get scoring.maxPoints

Switch question set: @setquestionset Science

Check pool status: @poolstatus

Reset question pool: @poolreset

Add a question: @question add "What is the capital of France?" "Paris" --set MySet

Search questions: @question search "capital France"

List question sets: @questionset list