Current roster
Overview
Bot status, competitions and connections.
0 finalized
Readings waiting for review
Recent competitions
Connections
⌘Recent activity
Members
Add members here, in Discord, or in the Members sheet tab.
Members detected in screenshots
Approve a new person, correct the detected spelling, or link the username to an existing member. Saved scores import automatically. Review names before approving to avoid duplicate people.
| Member | All known usernames | Discord user ID | Status | Played | Avg. position |
|---|
Only server owners and administrators can link or unlink Discord accounts. Username changes retain the existing link.
Inactive members retain their competition history. Averages use finalized competitions with a recorded result.
Competitions
Submit screenshots in Discord. Review and correct results here.
Competition workspace
No competition selected
| Position | Member | Name in screenshot | Points | Reading |
|---|
Command access
Choose who may run each command. Server owners and administrators always retain access.
Default keeps the normal command rules; moderation defaults to admins only. Selected roles grants access to any listed role. Stats privacy, bot permissions, and role hierarchy still apply. Dashboard access and Discord account linking always require an administrator.
Choose Selected roles, then tick roles by name. Use search to find a role. Server roles load from Discord when the bot is connected. Commands may remain visible in Discord even when access is denied. Discord Server Settings → Integrations may further restrict command visibility.
Guide & commands
Start here, then use the command reference below.
Your competition workflow
/comp start name:recycle date:2026-10-15opens the active competition. No competition number is needed.- Run
/comp upload, then mention @exohelper in the same channel with screenshots selected together. Send within 10 minutes; wait for processing before another batch. - Review detected names in Members or use
/member suggestions. Link renamed players individually, then use/member approveallfor the remaining new people. - Use
/comp review. Correct uncertain scores with/result set. Review proposed active/inactive changes. /comp finalizecloses the competition and includes results in averages. Complete competitions mark absent members inactive; partial ones keep missing members unchanged.
Screenshot titles are ignored. Your entered name identifies the competition. Overlapping rows count once per member. You can begin with an empty roster.
Permissions and setup
Owners and Discord Administrators manage the dashboard. Command access lets them delegate individual commands to selected server roles. Account linking and member suggestion approvals stay admin-only. Stats privacy in Connections still applies.
Admins link Discord accounts to game members with /member link. Personal /stats includes total points; admin /stats overview:true shows average positions and participation without points. Add include_inactive:true to include everyone.
Add to another server opens Discord’s installation screen. Choose the server there, then return here and select it. Configure its own OpenAI key, Google Sheet and permissions. The stop button affects only the selected server.
Welcome and auto-role events require Server Members Intent enabled by the host. Moderation and polls require their corresponding bot permissions and role hierarchy. No need to grant the bot Administrator.
| Command / example | What it does | Access |
|---|
Use slash commands through Discord’s option fields. Advanced optional competition selectors are available for history; ordinary commands use the active competition. Dashboard selection is the easiest way to reopen an older event.
If something goes wrong
Unknown names: check member suggestions. Conflicting scores: use result set and review. Sheets sync failure: use comp sync before editing the Members tab. Missing commands: refresh Discord. A restarted bot clears upload sessions; run comp upload again. Only finalized recorded results count in averages, and a missing result never becomes last place.
Connections
Credentials and the spreadsheet are separate for each Discord server.
Stop this server’s bot before changing connections. Blank secret fields retain the saved value.
