Skip to content

How CivBot works

CivBot is a Discord bot that runs a Civilization V game from a button on the game panel to the game thread and the result. This page shows where cards and threads appear, who sees them, what the CivBot site shows and allows, and where to look for a game when its card has disappeared from the game gathering channel.

CivBot's role

A game passes through five places in Discord and on the site:

  • Game panel: a player presses “FFA” or “Duel” on it and privately chooses the game type.
  • Gathering card: appears in the game gathering channel. Players join, ban nations and press “Ready” on it.
  • Game thread: at the start, the gathering card disappears and a public game thread appears in the game history channel. In the thread, players pick nations and record the result with the /game finish command. On the server the site works with, you can also drop a save file in the thread. See Save in the game thread.
  • Leaderboard: a finished FFA game changes players' rating, and the leaderboard shows it after the next hourly update.
  • CivBot site: after you sign in with Discord, it shows the games of the server the site works with, the page of each game, and each player's profile. A player of the game can also finish the game, pick a nation and add a save on the site.
flowchart TD
    M(["Moderator"]) -- "sets it up with /moderator panel" --> P["Game panel"]
    G(["Player"]) -- "presses “FFA” or “Duel”" --> P
    P -- "opens a gathering" --> C["Gathering card"]
    C -- "a participant or moderator presses “Start…”" --> T["Game thread"]
    T -- "a participant or moderator runs /game finish" --> R["Result"]
    R -- "in FFA, changes" --> RT["Rating"]
    RT -- "hourly, goes to" --> L["Leaderboard"]
    T -- "the game appears on" --> S["CivBot site"]
    R -- "is shown on" --> S
    S -- "a player of the game finishes the game" --> R

The diagram shows only the main path of a game. It leaves out the notification channel, the event log and the bot's private replies.

What it includes

Place What you see there Who sets it up
Game panel The buttons “FFA”, “Duel”, “Player Stats” and “Info”, and the list of recent games A moderator, with the /moderator panel command
Game gathering channel Gathering cards with buttons A server admin, with the /guild config command
Game history channel A public thread for every game that has started A server admin, with the /guild config command
Game thread The game card, nation picks and the result. On the server the site works with, also the saves dropped into the thread The bot, when the game starts
Leaderboard channel The leaderboard of the current season A moderator, with the /leaderboard show command
Notification channel Notifications about gatherings that need more players A moderator, with the /guild notifications configure command
Event log Records of gathering and game events A moderator, with the /guild log_channel command
Private replies Menus and replies that only you see —
CivBot site “Overview”, “Games”, “Save inspector”, the game page and the player profile after you sign in with Discord —

Game panel

The game panel is the message every game starts from. A moderator puts it up with the /moderator panel command, and the panel appears in the channel where they ran the command. A server has one panel: a new command removes the previous one.

Anyone can use the panel's buttons. “FFA” and “Duel” create a game, and “Player Stats” privately shows the stats of the player you choose. “Info” privately shows a card with the lines “Games history channel: #…” and “Game collection channel: #…”.

Above the buttons is a list of up to 15 of the server's most recent games that have already started. A row shows the state icon, number, mode, type and players, and the “>>” mark leads to the game thread. The list refreshes every 5 minutes, and also after a game starts, finishes or is scrapped. See Game panel.

Game gathering channel and game history channel

When a player creates a game, the gathering card appears in the game gathering channel. If the panel is in another channel, the bot privately sends a link to the card, and it disappears after 60 seconds.

At the start, the gathering card disappears. The game gets a number, and its public thread appears in the game history channel with a name like “248 — FFA 6 Patch”. In the thread's first message the bot mentions all players, and Discord adds them to the thread. The thread stays in the game history channel after the game finishes or is scrapped. See Game thread.

Leaderboard, notifications and event log

A moderator puts up the leaderboard with the /leaderboard show command: it appears in the channel where they ran the command, and the previous one disappears. The bot refreshes the leaderboard every hour. It lists up to 15 server members with the highest rating among those who played at least one finished FFA game in the current season. See Leaderboard.

A moderator sets the notification channel with the /guild notifications configure command. Notifications that a gathering participant or a moderator sends with the “Notify gathering” button on the gathering card arrive there. A notification's title, for example “+3 FFA6 Gathering”, leads to the gathering card. See Gathering notification.

A moderator turns on the event log with the /guild log_channel command, naming a channel. The bot records game creation, players joining and leaving, kicks, cancelled gatherings and scrapped games, slot swaps, and gathering notifications there. Game starts and finishes don't go into the log. Who can read the log depends on that channel's permissions in Discord. See Event log.

CivBot site

The site shows games, keeps a page for each game and a profile for each player, and breaks down Civilization V saves. The home page is open without signing in: it shows a showcase of the site's screens and lets you view a save in short form. Without signing in, the games list, the game page and the player profile send you to sign in with Discord. Use the “Sign in with Discord” button: the site asks Discord only for basic account details, without your email or your list of servers. After you sign in, three sections become available:

  • “Overview”: the blocks “My recent games”, “Games in progress” and “Recent results”, plus “Your week”, “This month” and the season's “Leaderboard”;
  • “Games”: the server's games list, with player selection and a “My games” switch. See Games on the site;
  • “Save inspector”: a full breakdown of a .Civ5Save file with turn-by-turn charts.

The “Search players or a game number…” field in the header works on every page: the “/” key opens it. A game number leads to the game page, and a player's name leads to the profile.

Everyone who is signed in can see the game page and the player profile. Only a game's players, meaning those who have a seat in it, can change a game on the site: finish the game, pick a seat's nation, attach a save, match the save's players, and find the lobby in Steam. A moderator without a seat in the game can only view it on the site and manages it in Discord. See Game page, Finishing a game on the site and Game saves on the site.

“Overview” shows only the games of the server the site works with, and only those that have already started. See CivBot site.

How the site connects to Discord

This applies on the server the site works with. Under the game card in the thread there is an “On site” button (on the card of a finished game, “Results on site”) that leads to the game page. When a game is finished on the site, the bot redraws it in the thread. A server member's Apps menu has a “Profile on site” item: the bot privately sends a link to the player's profile. See Player profile.

How it connects

  • Game: goes from the gathering card to the game thread and the result. See Game.
  • Roles: moderators and admins set up the game panel, channels, leaderboard and log. See Players, moderators and admins.
  • Adding the bot: the gathering and history channels are set when the bot is added to a server. See Adding CivBot to a server.
  • Rating: a finished FFA game changes rating, and the leaderboard shows it. See How rating is calculated.

Rules

Everyone sees public messages, but only the recipient sees private replies

Everyone with access to their channel sees the game panel, the gathering card, the game thread, the leaderboard and notifications. The stats from the /stats show command are public too: they appear in the channel.

Only the person the bot sent it to sees a private reply. These arrive privately:

  • the “Choose game type” message after the “FFA” or “Duel” button;
  • the menus that the “Bans” and “Kick” buttons open;
  • replies to the “Player Stats” and “Info” buttons on the game panel;
  • refusals like “You are not allowed to perform this action.” and replies to /game finish.

Some private replies disappear by themselves: for example, the link to a new gathering card disappears after 60 seconds. See Limits and timers.

The bot writes public messages in the server's language

The bot writes cards, the game panel, the event log and notifications in the server's main language in Discord. What a person opens themselves arrives in the language of their Discord client: the “Choose game type” message, the menus of the “Bans” and “Kick” buttons, and the replies to the “Player Stats” and “Info” buttons. Refusals on the buttons of the gathering card and the game thread arrive in the server's language, for example “You are not allowed to perform this action.” or “This game has ended or was deleted. Create a new game.” The bot writes in Ukrainian, Russian and English, and when the language of the server or the Discord client is different, it writes in English.

Some labels are the same on every server: the leaderboard has the Russian title “Топ игроков” and the English column names “Rating”, “Wins” and “Games”, and /game finish replies in English with “Done!”. In the Ukrainian Discord client, only the names of /game finish and /game refresh are translated, and the other commands have English names only. The site has its own language menu with the items “English”, “Українська” and “Русский”. See Bot language.

What can go wrong

  • The gathering card disappeared from the game gathering channel. If the game started, look for its thread in the game history channel: the thread's name starts with the game number. If the gathering was cancelled or nobody pressed its buttons for 3 hours, create a new game on the game panel.
  • You don't know where the game gathering channel and the game history channel are. Press “Info” on the game panel: the private card names both channels.
  • The game thread disappeared from the channel list. A thread where nobody has written for a day is archived, and the game doesn't change because of that. Find it among the archived threads of the game history channel: the thread's name starts with the game number.
  • The leaderboard didn't change after the game. The leaderboard refreshes once an hour. Only finished FFA games change rating. A Duel game and a scrapped game don't.
  • The game isn't on the site. The site shows only the games of the server it works with, and only those that have already started. The “My recent games” block shows up to 3 of your newest games. “Games in progress” counts up to 20 games that started in the last 48 hours and are still going: the block shows 5 of them and labels the rest with a line like “3 more in progress”. “Recent results” shows up to 10 of the latest games that finished or were scrapped. “Overview” doesn't refresh by itself: reload the page to see a new game.

This page was translated with AI and checked against the bot's terms.