A cooperative counting channel: members count up together, one number at a time. Mokito watches one designated channel, validates every message against the expected next value, and keeps the chain honest. Ten game modes, an alternation rule, edit/delete detection, milestones, pin numbers, a counting goal, and a /count-leaderboard command to see the top contributors.
Counting is one of the five mini-games in the XP & Levels category, which is Mokito Premium-only. The server owner or a manager picks one channel as the counting channel, chooses a sequence mode (whole numbers, binary, Roman numerals, and seven more), and configures the rules that govern what breaks the chain. Members then take turns posting the next number; Mokito reacts with a ✓ on a correct answer and posts an error message when someone breaks the chain.
Unlike Coin Flip and Daily, Counting does not award XP per correct answer — it is a cooperative social game, not a wager or a bonus claim. The scoreboard tracks participation (how many correct counts each member posted and how many goals they reached), not XP.
For how XP and levels work in general, see XP & Leveling. For the other mini-games, see the Mini-Games page.
The entire XP & Levels category is Premium-only. In a server without Premium, the Counting page is not accessible — the owner or manager is redirected to the Premium page. The /count-leaderboard slash command returns an ephemeral "XP & Levels is a Mokito Premium feature" reply visible only to the caller. No counting channel is watched, no reactions are posted, and no scoreboard is kept.
If a server loses Premium after configuring Counting, the stored settings are preserved. The game goes dormant (no reactions, no chain validation) but the configuration is retained so a seamless re-upgrade restores everything exactly as it was.
When a member posts the expected next number and passes every rule check, Mokito:
The member's message is not deleted — it stays in the channel so the conversation reads naturally.
Any of the following breaks the chain and resets the count to 0:
When the chain breaks, Mokito posts the configured error message to the channel. The wrong message is not deleted — members can see what they typed wrong. The count resets to 0, so the next correct answer must be the first number in the sequence.
The "Allow consecutive counts" toggle controls whether the same member may count twice in a row:
The rule compares the author of the current message against the author of the previous message. It only applies when the count is greater than 0 — the very first number in a fresh chain can always be posted by anyone.
Counting supports 10 sequence modes. Each mode defines how an integer step index is rendered to the string the user is expected to type. Changing the mode (or the counting channel) resets the chain to 0 — the previous count is meaningless in a new mode.
| Mode | Sequence example |
|---|---|
| Whole numbers | 1, 2, 3, 4 … |
| Decimals | 0.1, 0.2, 0.3 … (N ÷ 10) |
| Binary | 0001, 0010, … 1111, 10000, 10001 … (4-digit padded up to 15, then grows) |
| Letters (spreadsheet-style) | a, b, … z, aa, ab, … zz, aaa … |
| Hexadecimal | 1, 2, … 3c, 3e, 3f … |
| 2s | 2, 4, 6, 8 … (N × 2) |
| 5s | 5, 10, 15, 20 … (N × 5) |
| 10s | 10, 20, 30, 40 … (N × 10) |
| 100s | 100, 200, 300, 400 … (N × 100) |
| Roman numerals | I, II, III, IV, V … (1–3999; above 3999 falls back to Arabic so the chain never dead-ends) |
When "Accept word numbers" is ON (Whole mode only), members type the English word for each number instead of digits: "one, two, three" instead of "1, 2, 3". Supported for 1–1000; above 1000 the chain falls back to digits so it never dead-ends. The parser accepts both the canonical form ("twenty-one") and a relaxed form ("twenty one"), with or without "and" in compound hundreds ("one hundred and one" or "one hundred one"). Digits also remain valid even when the toggle is on — a member can type either shape.
The toggle is silently ignored for every non-Whole mode. The settings page disables it server-side when a non-Whole mode is selected, so the stored value never conflicts with the active mode.
Counting can detect when the most recent correct counting message is edited or deleted and respond with a configurable behavior. This prevents members from cheating by editing their number to match a later expected value, or deleting a wrong answer and pretending it never happened.
Detection only applies to the single most recent correct counting message — older messages are not tracked. Both detection toggles are off by default.
Both toggles are independent — you can detect edits but not deletes, or both, or neither. The behavior is shared: whichever toggle fires, the same edit/delete behavior applies.
When detection fires, Mokito applies one of three configured behaviors:
| Behavior | What happens |
|---|---|
| Reset the count to 0 and post an error message (default) | The chain resets to 0 and the error message template is posted (with "{user}" replaced by "a member"). The count starts over from 1. |
| Re-post the correct number (count keeps going) | Mokito re-posts the expected number so the chain visually continues. The count does not reset — the next expected value remains the same. This is useful when a member edits by accident and you don't want to punish the whole channel. |
| Delete the offending message (count keeps going) | Mokito deletes the edited message. The count keeps going. This only applies to edits — a deleted message is already gone, so the behavior is effectively a no-op for the delete-detection path. The count keeps going and last_message_id is cleared so a subsequent edit/delete event on the same id is ignored. |
Optional. When the count reaches the configured goal number, Mokito posts a win message to the channel:
🏆 BippyMiester just reached the goal of 100! The count resets to 0 — start from 1.
The member who posted the final number gets a goal point on the scoreboard (a secondary metric used as a tiebreaker), and the chain resets to 0 so a new round can begin. Leave the goal field blank to disable — the chain will count indefinitely.
The goal is checked after the correct-count bump and the milestone/pin triggers, so a goal number that is also a milestone or a pin number will fire all three in the same turn.
Optional. A comma-separated list of counts (e.g. 10, 100, 500). When the chain reaches any of these numbers, Mokito pins the member's message to the channel. This is a celebration marker — it highlights milestone-worthy counts without resetting the chain.
Pin numbers are de-duplicated and sorted server-side. Non-numeric entries are rejected at save time with a validation error.
Optional. When "Milestone interval" is set, Mokito posts a milestone message every time the count hits a multiple of that interval. For example, an interval of 100 posts a message at 100, 200, 300, and so on. The message uses the milestone message template, which supports tags like {user} and {count}.
Leave the interval blank to disable milestones. The milestone is posted in addition to the ✓ reaction — it does not replace it.
Two templates are configurable: the milestone message (posted on milestone hits) and the error message (posted when someone breaks the chain). Both support template tags and have a 2000-character limit. Leave either blank to use the default.
| Template | Default | Max |
|---|---|---|
| Milestone message | 🎉 {user} just hit {count}! Great work, everyone! | 2000 chars |
| Error message | ❌ {user} broke the chain! The count was reset to 0. Start from 1. | 2000 chars |
Both templates support the following tags. Tags are case-sensitive; unknown tags (typos) are left in place so you can spot them.
| Tag | What it inserts |
|---|---|
{count} | The count just reached (milestones) or the count before the reset (errors). |
{expected} | The number the user was supposed to type (error template only; empty in milestone messages). |
{user} | The Discord username of the member who triggered the event. |
{guild} | The server name. |
The Counting configuration page lives at XP & Levels → Counting in the guild dashboard. It is accessible only to the server owner, managers, and Mokito admins. The page has a prominent enable/disable banner at the top, a current-count status card (shown only when counting is on and a channel is picked), and a single form with all the settings below. The save button is at the bottom of the form only.
| Field | What it means | Default |
|---|---|---|
| Enable toggle | Master ON/OFF switch (prominent banner at the top of the page). | OFF |
| Counting channel | The one channel Mokito watches. Only text and announcement channels are listed. Changing the channel resets the chain to 0. | — |
| Game mode | One of the 10 modes (dropdown). Changing the mode resets the chain to 0. | Whole numbers |
| Accept word numbers | Toggle (Whole mode only; disabled for other modes). Members type "one, two, three" instead of "1, 2, 3" (1–1000; falls back to digits above 1000). | OFF |
| Allow consecutive counts | Same member may count twice in a row. OFF = second consecutive by same user breaks the chain. | OFF |
| Allow images / attachments | OFF = a message with an attachment breaks the chain. | OFF |
| Allow extra text | OFF = message must contain only the number (whitespace fine). ON = Mokito extracts the number from anywhere in the message. | OFF |
| Detect edited messages | ON = editing the most recent correct counting message triggers the edit/delete behavior. | OFF |
| Detect deleted messages | ON = deleting the most recent correct counting message triggers the edit/delete behavior. | OFF |
| Edit/delete behavior | What happens when the last correct message is edited or deleted (radio): Reset to 0 + error / Re-post the correct number (count keeps going) / Delete the offending message (count keeps going). | Reset to 0 + error |
| Counting goal | When the count reaches this number, a win message posts, the count resets to 0, and the final poster gets a goal point. Blank = no goal. | — (1–1,000,000) |
| Pin these numbers | Comma-separated counts; when the chain reaches any, the user's message gets pinned to the channel. | — (e.g. "10, 100, 500") |
| Milestone interval | Post a milestone message every N correct counts. Blank = disabled. | — (1–1,000,000) |
| Milestone message template | Template, up to 2000 chars. Leave blank for the default. | 🎉 {user} just hit {count}! Great work, everyone! |
| Error message template | Posted when someone breaks the chain, up to 2000 chars. Leave blank for the default. | ❌ {user} broke the chain! The count was reset to 0. Start from 1. |
Every member's counting score tracks two counters:
The leaderboard ranks by correct counts (descending), with goals reached as the tiebreaker. Members with zero in both are excluded from the leaderboard.
The /count-leaderboard slash command shows the current state of the counting channel and the top 5 contributors. It takes no arguments. The response is an ephemeral embed — only the caller sees it, so it doesn't clutter the counting channel.
/count-leaderboard
🔢 Counting Leaderboard (cyan embed, ephemeral) Current count: 42 Next number: 43 Mode: Whole numbers (1, 2, 3) Top Contributors 🥇 BippyMiester — 28 correct · 1 goal 🥈 Sarah — 22 correct 🥉 DevBot — 15 correct ▸ Mike — 10 correct ▸ Lisa — 7 correct Counting · Mokito Test Server
If counting is not enabled or no counting channel is configured, the command returns an ephemeral "Counting is not enabled in this server" reply with a pointer to the dashboard page.
The member dashboard (the view a regular member sees when they open the guild panel) includes a Counting leaderboard under the Leaderboards area. It shows the top contributors with the same correct-counts + goals-reached ranking. Members can check their own rank without running a Discord command.
| Area | Detail |
|---|---|
| Premium gate | The entire XP & Levels category is Premium-only. Without Premium, the page redirects to the Premium page and /count-leaderboard returns an ephemeral "Premium required" reply. |
| Who can configure | Server owner, managers, and Mokito admins. Moderators and support team cannot access the Counting page. |
| One channel only | Mokito watches exactly one configured channel. Messages in every other channel are ignored, even if they contain the expected number. |
| Bot messages ignored | Messages from bots (including Mokito itself) never count and never break the chain. |
| Channel or mode change resets | Switching the counting channel or the game mode clears the current count and starts a fresh chain from 0. |
| Wrong message not deleted | When a member breaks the chain, their message is left in place so everyone can see what went wrong. Only the edit/delete "Delete the offending message" behavior removes a message. |
| Correct message not deleted | A correct counting message stays in the channel. The only exception is the "Delete the offending message" edit/delete behavior, which deletes an edited correct message. |
| Roman numeral ceiling | Roman numerals are supported for 1–3999. Above 3999 the chain falls back to Arabic digits so it never dead-ends. |
| Word-numbers ceiling | Word numbers are supported for 1–1000. Above 1000 the chain falls back to digits. |
| Goal + milestone + pin overlap | If the goal number is also a milestone multiple or a pin number, all three fire in the same turn. The goal resets the chain afterward. |
| Reactions are best-effort | If Discord is rate-limiting reactions, the ✓ may not appear. The chain still advances and the scoreboard still updates. |
| Scoreboard retention | Scoreboard rows are never deleted, even if a member leaves the server or the game is disabled. This preserves participation history. |
| Premium lapse | If Premium lapses, the game goes dormant (no reactions, no validation) but the configuration is preserved. Re-upgrading restores everything as-is. |