The BattleBot AI tournament assistant is a natural-language interface for running and following Discord tournaments. Instead of looking up a slash command and its arguments, you type /ask — or its long form, /tournament_assistant — followed by what you want in ordinary English, and the bot answers from the live tournament data in your own server. It is part of BattleBot rather than a separate bot to install, it is free like the rest of the bot, and there is nothing to switch on: the moment BattleBot is in a server, every member can use it.
Replies are ephemeral, meaning only the person who asked can see them. Checking your next match in the middle of a busy channel costs nobody else a message, and an organiser can audit a bracket without narrating it to the whole server. If you are running more than one tournament at a time, both commands take an optional tournament_id so the answer is scoped to the bracket you meant.
It is not a general-purpose chatbot, and that is deliberate. The model is handed a fixed set of tournament tools — look up a match, list the players, explain the format, start a tournament — and it has to answer by calling one of them rather than by writing whatever it likes. Ask it for a poem and there is no tool for that, so it tells you it cannot help instead of trying.
Every member of the server can ask about the state of a tournament, and can sign themselves up or withdraw. That is the player tier, and it needs no role, no permission and no setup — if you can type in the channel, you can ask. The read side covers tournament status, which round is being played, pending and finished matches, who is still alive in the bracket, and any player’s record in the tournament.
It also answers questions about how things work rather than only what has happened. Ask how first-to-three decides a match, or how players advance, and it explains the format your tournament is actually using rather than a generic one. Tournament-wide statistics come the same way. If you have no idea where to start, ask “what can you do?” — the assistant has a tool for exactly that question and replies with its own list of capabilities.
You do not have to copy the phrasing below. The assistant reads intent, so “who’s next for me”, “what’s my next match” and “when do I play” all land on the same answer, and when a request is ambiguous — two players with similar names, say — it asks you to narrow it down instead of guessing.
Tournament admins can run the whole event by asking. Starting a tournament, restarting a match that went wrong, setting a winner by hand, disqualifying a no-show, registering another player, cancelling a tournament and sending a match reminder are all available in plain English, and each one does exactly what the equivalent admin slash command does — the assistant is a different way in, not a different set of powers.
Three kinds of person count as an admin: server ambassadors, the person who created the tournament, and BattleBot super users. The middle one is the distinction that matters — a tournament creator can only manage the tournaments they made themselves, and BattleBot re-checks that against the specific tournament every time an admin action runs. Asking to restart somebody else’s match is refused even for someone who is an admin elsewhere in the same server. The full list of the commands these map to is in the command reference.
The assistant can only ever do what the person asking is already allowed to do. Phrasing a request as a sentence does not widen what it reaches: the permissions are the same ones the slash commands use, checked in the same places, so an ordinary member who asks the bot to cancel a tournament gets a refusal rather than a cancelled tournament.
Access is tiered, and the tier is applied before the model sees anything. A player-tier request is handed a filtered tool list with the admin tools removed, so there is nothing for the model to reach for even if someone spends an afternoon trying to talk it into an admin action. Signing yourself up and withdrawing are the one exception, and they are restricted to the caller’s own account.
Permission is then verified again when the action runs, not only when the model picks it. That second check is per-tournament, which is what stops a tournament creator managing a bracket that is not theirs. Two independent layers have to agree before anything in your server changes.
Rate limits cap what any one person or server can spend: ten requests per member per hour and fifty per server per hour, with a global ceiling above both. Hitting one is a polite message telling you to try again later — it never touches the tournament itself, and the ordinary commands and buttons keep working regardless.
Finally, replies are checked before they are sent. Off-topic output is dropped rather than shown, and the text is scrubbed of anything that has no business in a Discord message — internal record IDs, file paths, keys and tokens. The assistant only ever sees tournament data from the server the request came from: it has no tool for reading your channels, your member list, or another server’s tournaments, so adding BattleBot does not put an AI in the middle of your community’s conversations.
BattleBot runs on large language models from Anthropic and other providers, selected server-side and swappable without a code change. Naming a specific model here would be out of date within a month, and it is not the part that matters: whichever model is behind it, its only job is to work out which tournament tool your sentence is asking for. BattleBot, not the model, decides whether you are allowed to use that tool, and fetches the data it answers from.
Every slash command the assistant mirrors, who can run it, and a worked example for each.
What the bot costs, how big a bracket can be, which formats exist, and how results get reported.
The full guide: planning, setup, match day, and what to do when something goes wrong.