The Arena
Turn a Discord server into a moderated debate arena with an AI judge.
- Rating
- 4.4 (84 reviews)
- Downloads
- 1,070 downloads
- Version
- 1.0.0
Overview
Turn a Discord server into a moderated debate arena with an AI judge.
✨Key Features
— Choose a Server
— Choose a Moderator Persona
— Choose a Default Format
— Judging Criteria Weights
— Configure Channels
— Generate Config (for your review)
— Create Channels & Post Welcome Messages
— Post Rules
Complete Documentation
View Source →
The Arena — AI Debate Moderator
Transform any Discord server into a structured debate arena with AI moderation, fair judging, and a persistent scoreboard.
Prerequisites
This skill requires the following. Nothing is configured automatically — all privileged actions require your manual review and approval.
| Requirement | Details |
|---|---|
| Discord bot token | Your existing OpenClaw bot token (already in your gateway config) |
| Discord bot permissions | Read/Send Messages, Create Threads, Manage Messages, Read History, Add Reactions |
| Discord guild (server) | You create or choose the server. You provide the guild ID. |
| Gateway admin access | You manually review and apply config changes via config.patch |
| DEBATE_SCOREBOARD_DB (optional) | Env var to set SQLite DB path. Default: ./data/scoreboard.db (within skill workspace) |
Security Notes
- This skill recommends running as a separate, isolated OpenClaw agent with
fs.workspaceOnly: true, exec.security: "deny").
- Config changes are generated as templates for your review — never applied
- The included scripts (
scripts/setup.sh,scripts/scoreboard.sh) only create
- The scoreboard SQLite DB is created at
./data/scoreboard.dbrelative to the
$DEBATE_SCOREBOARD_DB if set). It never writes outside
the skill workspace.
- Setting
requireMention: falseon arena channels means the bot processes every
requireMention: true for lower cost and reduced visibility.Quick Start
Say "set up a debate server" and the agent walks you through configuration choices, then generates templates for your review.
Onboarding Flow
Step 1 — Choose a Server
Create a new Discord server or pick an existing one. You'll need the guild ID (right-click the server icon → Copy Server ID with Developer Mode enabled).Step 2 — Choose a Moderator Persona
Pick the voice your moderator uses during debates. Default: Scholar.| Persona | Vibe |
|---|---|
| Scholar | Measured, references history & philosophy |
| Sports Commentator | High-energy play-by-play |
| Philosopher | Socratic method, questions everything |
| Comedian | Witty roast-style commentary |
| Drill Sergeant | No-nonsense, demands evidence |
| Custom | You write the persona description |
references/personas.md.Step 3 — Choose a Default Format
The default format used when someone starts a debate without specifying one. Default: Campfire.| Format | Style | Best For |
|---|---|---|
| Campfire | Free-form exchange | General topics, casual |
| Oxford | Formal rounds, audience vote | Serious propositions |
| Lincoln-Douglas | 1v1 value debate | Philosophy, ethics |
| Hot Takes | One message each, best wins | Quick fun rounds |
| Devil's Advocate | Argue opposite of your belief | Steelmanning practice |
| Roundtable | Multi-perspective, no winner | Complex nuanced topics |
references/formats.md.Step 4 — Judging Criteria Weights
Customize how the moderator scores arguments. Defaults:| Criterion | Default Weight |
|---|---|
| Evidence & Reasoning | 35% |
| Engagement | 25% |
| Intellectual Honesty | 20% |
| Persuasiveness | 20% |
references/judging.md.Step 5 — Configure Channels
Default channel names (all customizable):| Channel | Purpose |
|---|---|
| #rules | Server rules, format overview, commands |
| #propose-a-topic | Topic proposals and voting |
| #the-arena | Where debates happen |
| #hall-of-records | Verdicts, scoreboard, debate history |
| #the-bar | Casual off-topic discussion |
Step 6 — Generate Config (for your review)
The agent generates config snippets and anAGENTS.md tailored to your choices.
You must review and manually apply all gateway config changes. The agent does
not apply config patches automatically. See references/setup-guide.md for the
full config template and a step-by-step walkthrough.Important: agents.list and bindings are arrays — config.patch replaces
them entirely. Always review the full patch to ensure your existing agents and
bindings are preserved.
Step 7 — Create Channels & Post Welcome Messages
After you create channels in Discord, the agent can post welcome messages fromassets/welcome-messages.md — or you can copy-paste them manually.Step 8 — Post Rules
The agent posts the full rules document in#rules.Configuration Reference
Persona
Controls the moderator's voice and commentary style.- Scholar (default) — Thoughtful, measured
- Sports Commentator — Electric, play-by-play
- Philosopher — Socratic, probing
- Comedian — Witty, irreverent (still fair)
- Drill Sergeant — Harsh, demanding
- Custom — Provide your own persona description
Default Format
The format used when a debate is started without specifying one.- Campfire (default), Oxford, Lincoln-Douglas, Hot Takes, Devil's Advocate, Roundtable
Judging Weights
Customize the four scoring criteria. Must sum to 100%.- Evidence & Reasoning — Quality of sources, logical structure (default 35%)
- Engagement — Responding to opponents, staying on topic (default 25%)
- Intellectual Honesty — Acknowledging good points, not strawmanning (default 20%)
- Persuasiveness — Rhetorical effectiveness, clarity (default 20%)
Channel Names
All five channels can be renamed. Provide a mapping during setup.requireMention
- true (default, recommended) — Moderator only responds when @mentioned. Lower cost, lower data exposure. Participants control pacing by tagging the moderator.
- false — Moderator sees every message and may interject actively. Higher token usage and increased data exposure. Only recommended for small, trusted servers with low message volume.
Verdict Style
How the moderator delivers the final ruling.- Detailed — Full scorecard with per-criterion scores and commentary
- Brief — Winner announcement with one-paragraph summary
- Dramatic — Theatrical ruling with buildup and flair
Scoreboard
- on (default) — SQLite-backed. Records wins, losses, topics, formats.
- off — No persistent tracking.
scripts/scoreboard.sh. DB location: $DEBATE_SCOREBOARD_DB or ./data/scoreboard.db.Debate Timeout
Hours before the moderator flags a stale debate. Default: 48.Max Concurrent Debates
Maximum simultaneous debates in the arena. Default: 3.Topic Restrictions
- unrestricted (default) — No topic is off-limits. The moderator judges arguments on merit regardless of subject matter.
- restricted — Provide a list of banned topics or categories.
How It Works
Proposing a Topic
In#propose-a-topic, post:
Topic: [Your topic]
Format: [optional — defaults to server default]
Others react with 👍 to show interest. When at least two people are ready, anyone can say "let's debate" to move to the arena.
Starting a Debate
In#the-arena, the moderator:
- Announces the topic and format
- Assigns or confirms sides (except Roundtable/Hot Takes)
- Posts the rules for that format
- Calls for opening statements
@Moderator start debate: "Pineapple belongs on pizza" [format: hot-takes]
During a Debate
The moderator's behavior depends on the format:- Campfire — Interjects to track flow, flag fallacies, prompt responses
- Oxford — Strictly enforces rounds, time, and turn order
- Lincoln-Douglas — Enforces alternation between affirmative and negative
- Hot Takes — Collects one message per participant, then judges
- Devil's Advocate — Monitors that participants argue against their stated beliefs
- Roundtable — Asks probing questions, synthesizes themes
Calling for a Verdict
- Either debater says "I rest my case"
- The moderator can call it after sustained inactivity
- The moderator runs a ready check: both sides must confirm
Verdicts
The moderator evaluates using the configured judging weights and delivers the verdict in the configured style. The verdict is posted in both#the-arena and
#hall-of-records.Scoreboard
When the scoreboard is enabled, results are automatically recorded.Commands (via scripts/scoreboard.sh):
scoreboard.sh init # Create database
scoreboard.sh record <winner> <loser> <topic> # Record result
scoreboard.sh leaderboard # Show standings
scoreboard.sh history [--limit N] # Recent debates
scoreboard.sh stats <participant> # Individual stats
scoreboard.sh reset # Clear all data
The moderator should run these automatically when delivering verdicts and when users ask for standings.
Channel Behavior Matrix
| Channel | Moderator Behavior |
|---|---|
| #rules | Posts rules only. Does not engage in conversation. |
| #propose-a-topic | Acknowledges proposals, suggests formats, helps refine topics. |
| #the-arena | Full moderator mode. Manages debates, enforces rules, delivers verdicts. |
| #hall-of-records | Posts verdicts and scoreboard updates. Read-only for moderator. |
| #the-bar | Casual mode. Can chat, joke, discuss past debates. No moderation. |
Security Model
The debate moderator MUST run as a separate OpenClaw agent with restricted permissions. This is critical because the debate server is semi-public — other users interact with the bot, and prompt injection is a real risk.
Recommended agent restrictions:
tools.fs.workspaceOnly: true— can only read/write within the skill workspacetools.exec.security: "deny"— cannot execute shell commandstools.denylist blocking: exec, process, nodes, cron, gateway, browser,
tools.profile: "messaging"— only Discord messaging + web search (for fact-checking)
- No access to the owner's personal files, messages, or other agents
- No ability to send emails, read calendars, or access other services
- Even if a participant attempts prompt injection, there is nothing to exfiltrate
references/setup-guide.md for the full
security configuration and a tested tool deny list.File Reference
| File | Purpose |
|---|---|
| references/formats.md | Detailed format rules and moderator instructions |
| references/personas.md | Full persona descriptions and voice guides |
| references/judging.md | Scoring criteria, bonuses, penalties, format adjustments |
| references/setup-guide.md | Gateway config template, permissions, security |
| references/agents-template.md | Complete AGENTS.md template for the debate agent |
| scripts/scoreboard.sh | SQLite scoreboard CLI |
| scripts/setup.sh | Interactive setup wizard |
| assets/welcome-messages.md | Default welcome messages for all channels |
Installation
openclaw install the-arena
💻Code Examples
In `#propose-a-topic`, post:
Topic: [Your topic]
Format: [optional — defaults to server default]Commands (via `scripts/scoreboard.sh`):
scoreboard.sh init # Create database
scoreboard.sh record <winner> <loser> <topic> # Record result
scoreboard.sh leaderboard # Show standings
scoreboard.sh history [--limit N] # Recent debates
scoreboard.sh stats <participant> # Individual stats
scoreboard.sh reset # Clear all dataTags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.