DCI Counting Docs

Everything you need to set up, configure, and get the most out of DCI Counting โ€” the competitive counting bot for Discord.

โ— v3.0 Live ๐Ÿ›ก๏ธ AC v2 5 Gamemodes Public API
โšก
Quick Setup

Get counting in your server in under 2 minutes.

๐ŸŽฎ
Gamemodes

Speed Round, Boss Battle, Relay, Reverse, Skip Count.

๐Ÿ’Ž
Premium

Saves, gamemodes, custom AC, and full API access.

๐Ÿ”—
Public API

Pull leaderboard and server data programmatically.

What is DCI Counting?

DCI Counting is a Discord bot that turns counting into a competitive, community-driven activity. Servers count together in a dedicated channel โ€” one number at a time โ€” while the bot tracks streaks, enforces rules, and ranks servers globally.

It includes a built-in Anti-Cheat system (AC v2) that silently detects and blocks automation, rate abuse, and number pre-computing. Premium servers unlock gamemodes, configurable AC settings, a web-based guild portal, and full API access.

Quick Setup

Get DCI Counting running in your server in a few steps.

โ„น๏ธ
Permissions Required

The bot needs Send Messages, Read Messages, Add Reactions, Manage Messages, and Moderate Members in the counting channel.

1
Invite the bot
Visit dcicounting.com and click Invite. Authorize with the default permissions.
2
Set a counting channel
Run /setchannel #your-channel. Only messages in this channel are counted.
3
Start counting
Send 1 in the counting channel. The bot reacts โœ… for correct and โŒ for wrong. A mistake resets the count to 0.
4
(Optional) Set a goal
Run /setgoal 100. The bot celebrates when you hit it.
5
(Optional) Use the portal
Visit panel.dcicounting.com, log in with Discord, and manage settings from the web.

How Counting Works

The core rules that govern every count.

Basic Rules

RuleDetail
One number at a timeMessages must be a single integer. "100 nice" or "100!" are rejected.
SequentialEach count must be exactly 1 more than the previous (or follow gamemode rules).
No double countingYou cannot count twice in a row. Someone else must go between your turns.
Wrong number = resetAny wrong count resets the count to 0. The next number is 1.
Reactionsโœ… = correct count. โŒ = wrong count or rule violation.

On a wrong count

When someone sends the wrong number: the message gets a โŒ reaction, the bot replies naming who ruined it and what score was reached, and the current count, streak, and saves all reset to 0.

๐Ÿ’ก
Premium: Saves

Premium servers can have saves โ€” wrong counts use a save instead of resetting if saves remain. Configure save limit (1โ€“10) in the guild portal or with /setsaves.

Global tracking

Every correct count contributes to two global leaderboards โ€” one ranked by highest count reached per server, and one ranked by total counts submitted per user. Both update in real time and are visible via /leaderboard and the public API.

General Commands

Available to all server members.

๐Ÿ”
/ping
Check the bot's API latency and round-trip response time.
Free
/countinfo
Shows current count, last counter, streak, best streak, goal progress bar, and save status for this server.
Free
/streak
Displays current streak with a visual burn bar, tier label (Warming Up โ†’ Godlike), and comparison to the server's best streak.
Free
/leaderboard
View the global leaderboard. Choose Servers (highest count) or Users (total counts). Shows your rank in the footer.
Free
/whois [user]
View a user's global counting profile โ€” total counts, best streak, tags, and server info. Defaults to yourself.
Free
/serverinfo
Server stats including members, boosts, current count, best streak, goal progress, tags, and premium description.
Free
/stats
Global bot analytics โ€” total servers, total counts, uptime, ping, and version.
Free
/help
Full command list grouped by permission level.
Free
/invite
Get the bot invite and community server link as clickable buttons.
Free
/premium check
Check whether this server has premium enabled.
Free

Admin Commands

Require Manage Server or Manage Channels permission.

โš ๏ธ
Permission Required

These commands require Manage Server or Manage Channels. Server owners always have access.

/setchannel #channel
Sets the counting channel. Required before counting can start. Only messages here are treated as counts.
Admin
/setnumber [num]
Manually sets the current count. Useful for correcting mistakes or resuming after an outage.
Admin
/setgoal [number]
Sets a counting goal. Bot celebrates when reached. Use 0 to clear.
Admin
/setsaves [1โ€“10]
Sets max saves allowed per run. Premium servers only. Saves refill on each reset.
Premium
/integrity [userId]
Check the AC flag log for a user. Shows total flags and the 5 most recent incidents. Ephemeral.
Admin

Owner Commands

Restricted to bot owner IDs hardcoded in the source.

๐Ÿ”’
Owner Only

These are not accessible to server admins. They are controlled by the bot developers.

Slash Commands

/eval [code]
Execute arbitrary JavaScript server-side. Returns the result in an embed. Supports async/await.
Owner
/resetscore [user]
Wipes a user's global count statistics back to 0.
Owner
/premium add [guildId]
Grants premium status to a specific guild by ID. Takes effect immediately.
Owner
/tag-manager server
Assign a tag (Premium, Partner, War-Eligible, Verified) to a server.
Owner
/tag-manager user
Assign a global tag (Beta-Tester, Bug-Hunter, Staff, Donator) to a user. Shows in /whois and /leaderboard.
Owner

Prefix Commands (!)

!reload [command]
Hot-reloads a command file without restarting the bot. Example: !reload ping
Owner
!clearflags [userId]
Deletes all AC flags for a user and removes them from the ignore list.
Owner
!unignore [userId]
Lifts the silent ignore without clearing flag history.
Owner
!startboss
Manually starts the Boss Battle timer. Only works when Boss gamemode is active.
Owner

Gamemodes

Premium servers can activate special counting modes that change the rules.

๐Ÿ’Ž
Premium Only

Configure gamemodes at panel.dcicounting.com under the Gamemode section.

โšก
Speed Round

Race to a configurable target number as fast as possible. The bot records elapsed time and announces it on completion.

Config: target (10โ€“10,000)
๐Ÿ”„
Relay

Each user can only count once per round, forcing everyone to participate. No single player can carry the count.

No config needed
๐Ÿ‘น
Boss Battle

Count to the boss HP before the timer expires. Running out of time or a wrong count triggers a boss attack and resets progress.

Config: HP + timer (minutes)
โฌ‡๏ธ
Reverse

Count backwards from a set number down to zero. The sequence decrements โ€” the next expected number goes down instead of up.

Config: start (10โ€“10,000)
๐Ÿฆ˜
Skip Count

Count by a multiplier instead of 1. ร—2: count 2, 4, 6, 8... ร—5: count 5, 10, 15... All AC rules still apply.

Config: multiplier (ร—2, ร—5, ร—10)

Enabling a Gamemode

1
Open the Guild Portal
Go to panel.dcicounting.com and log in with Discord.
2
Select your server
Click on the server. You need Manage Server permission.
3
Choose a gamemode
Select from the Gamemode dropdown, configure it, and click Save.
4
Start counting
Takes effect immediately. The channel now enforces the new rules.

Anti-Cheat

AC v2 silently detects and blocks automated counting without disrupting legitimate users.

Checks

CheckWhat it detectsDefault
Rate limitMessages faster than the minimum cooldown450ms between counts
Burst detectionToo many counts in a short window4 counts in 5 seconds
Double countSame user counting twice in a rowAlways blocked
Number skipSending a future number (pre-computing)Any number above expected

Flags and ignoring

Each violation writes a timestamped entry to the user's flag log with the guild ID and reason. After 5 session flags (default), the user is silently ignored โ€” their messages are deleted with no feedback. Check logs with /integrity [userId].

๐Ÿ’Ž
Premium: Configurable AC

Adjust rate limit cooldown (100โ€“2000ms), burst threshold (2โ€“10), and auto-ignore threshold (1โ€“20) from the guild portal. AC can also be disabled entirely.

Managing flags

ActionCommand
View flag log/integrity [userId]
Clear flags + remove ignore!clearflags [userId] (owner)
Remove from ignore only!unignore [userId] (owner)

Streaks & Goals

Track momentum and set targets to work towards.

Streaks

The streak increments on every correct count and resets on any mistake. Best streak is stored separately and never resets.

TierStreak
๐Ÿ’€ Dead0
๐ŸŒฑ Warming Up1โ€“9
๐Ÿ”ฅ On Fire10โ€“49
โšก Electric50โ€“99
๐ŸŒŸ Legendary100โ€“499
๐Ÿ‘‘ Godlike500+

Goals

Set a target with /setgoal [number]. When reached, the bot sends a celebration embed and clears the goal. Use /setgoal 0 to clear manually.

๐Ÿ’Ž
Premium: Custom Celebration Message

Set a custom message that replaces the default celebration embed when a goal is reached. Configure in the portal under Premium Settings.

Leaderboards

Two global leaderboards โ€” one for servers, one for users.

Server leaderboard

Servers ranked by highest count ever reached. This score never decreases. The current server is marked with โ—„.

User leaderboard

Users ranked by total correct counts submitted across all servers. Lifetime cumulative. Tags appear next to names.

Commands

/leaderboard                   โ€” defaults to server leaderboard
/leaderboard type:Servers      โ€” top 10 servers by highest count
/leaderboard type:Users        โ€” top 10 users by total counts

The footer shows your rank and score even if outside the top 10. Also accessible via GET /api/v1/leaderboard.

Premium

Unlock the full feature set of DCI Counting for your server.

Free
Always free
  • โœ“ Counting engine
  • โœ“ Anti-Cheat v2
  • โœ“ Streaks & goals
  • โœ“ Global leaderboard
  • โœ“ All general commands
  • โœ“ API (10 req/min, 3 endpoints)
  • โœ— Saves
  • โœ— Gamemodes
  • โœ— Custom AC settings
  • โœ— Server description
  • โœ— Custom goal messages
  • โœ— Full API access
๐Ÿ’Ž Premium
Contact DCI Studios
  • โœ“ Everything in Free
  • โœ“ Saves (1โ€“10 per run)
  • โœ“ All 5 gamemodes
  • โœ“ Configurable AC thresholds
  • โœ“ AC on/off toggle
  • โœ“ Server description
  • โœ“ Custom goal messages
  • โœ“ Guild portal
  • โœ“ API (120 req/min, all endpoints)
๐Ÿ“ฉ
How to get Premium

Join the community at dcicounting.com/redirect and contact a staff member, or reach out to carter.accs directly.

Guild Portal

A web dashboard for server admins to manage all settings without touching Discord.

๐Ÿ”—
Access

panel.dcicounting.com โ€” Log in with Discord. Manage Server permission required.

Available settings

SettingTierDescription
Counting channelFreeSet or change via dropdown
Counting goalFreeSet or clear the server goal
Reset countFreeWipe count back to 0
Max savesPremiumSaves per run (1โ€“10)
Server descriptionPremiumShown in /serverinfo
Goal celebration messagePremiumCustom message on goal reached
GamemodePremiumEnable and configure any of 5 gamemodes
AC rate limitPremiumCooldown between counts (100โ€“2000ms)
AC burst thresholdPremiumCounts in 5s before flagged (2โ€“10)
AC ignore thresholdPremiumFlags before auto-ignore (1โ€“20)
AC on/offPremiumToggle Anti-Cheat entirely
API keyPremiumGenerate/revoke API key

Public API

Access DCI Counting data programmatically.

Base URL

https://panel.dcicounting.com/api/v1

Authentication

# Via header (recommended)
X-API-Key: dci_your_key_here

# Via query param

GET /api/v1/bot?api_key=dci_your_key_here

Rate limits

TierRequests/minEndpoints
Free103 (bot, leaderboard, guild)
Premium120All endpoints
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 118
X-RateLimit-Reset: 1713456789

Error codes

StatusMeaning
401Missing or invalid API key
403Endpoint requires premium tier
404Guild or user not found
429Rate limit exceeded
500Internal server error

API Endpoints

Full reference for all endpoints.

Free Endpoints

GET/api/v1/botBot statistics
{ "name": "DCI Counting", "id": "...", "version": "v3.0",
  "guilds": 42, "totalCounts": 158392, "totalUsers": 891,
  "flaggedUsers": 7, "ping": 43,
  "uptime": { "seconds": 86400, "human": "24h 0m 0s" } }
GET/api/v1/leaderboard?limit=10Global leaderboard

Free: limit 10. Premium: limit 100.

{ "servers": [{ "rank": 1, "guildId": "...", "name": "The Bread Club", "score": 4521 }],
  "users":   [{ "rank": 1, "userId": "...", "totalCounts": 2891, "bestStreak": 450 }],
  "limit": 10, "generatedAt": "2026-04-18T15:00:00.000Z" }
GET/api/v1/guild/:guildIdPublic guild stats
{ "guildId": "...", "name": "The Bread Club", "memberCount": 312,
  "currentCount": 3891, "streak": 142, "bestStreak": 450,
  "isPremium": true, "tags": ["Premium"], "goal": 5000,
  "globalRank": 1, "description": "We count bread." }

Premium Endpoints

GET/api/v1/user/:userIdUser profile
{ "userId": "...", "username": "carter", "totalCounts": 2891,
  "bestStreak": 450, "tags": ["Staff"], "flagged": false, "flagCount": 0 }
GET/api/v1/guild/:guildId/leaderboard?limit=10Per-guild user leaderboard

Top users within a specific guild. Max limit: 50.

GET/api/v1/guild/:guildId/flagsAC flag log

All flagged users in a guild with flag count and recent incidents.

GET/api/v1/user/:userId/guildsUser's guilds

All guilds the bot is in where this user has counted.

POST/api/v1/guild/:guildId/announceSend announcement
// Request body
{ "message": "Optional plain text",
  "embed": { "title": "Title", "description": "Body", "color": "#38bdf8", "footer": "Footer" } }

// Response
{ โ€œokโ€: true, โ€œguildIdโ€: โ€œโ€ฆโ€, โ€œchannelIdโ€: โ€œโ€ฆโ€ }

API Keys

How to generate and manage your API key.

1
Log into the Guild Portal
Visit panel.dcicounting.com and authenticate with Discord.
2
Open your server's settings
Select the server. You need Manage Server permission.
3
Generate the key
Scroll to API Access and click Generate Key. The key is shown once โ€” copy it immediately.
4
Use the key
Pass it via X-API-Key header. Keys start with dci_.
โš ๏ธ
Keep your key secret

Do not commit it to public repos. If compromised, regenerate from the portal โ€” the old key is invalidated instantly.

Key format

dci_a3f8c2e1b9d47f6a2c8e1b3d7f9a2c4e6b8d0f2a4c6e8b0d2f4a6c8e0b2d4f6

Programmatic generation

POST /api/v1/keys/generate
Content-Type: application/json
{ "guildId": "your_guild_id" }

// Response
{ โ€œokโ€: true, โ€œapiKeyโ€: โ€œdci_โ€ฆโ€, โ€œissuedโ€: โ€œ2026-04-18T15:00:00.000Zโ€,
โ€œtierโ€: โ€œpremiumโ€, โ€œlimitsโ€: { โ€œrequestsPerMinuteโ€: 120 },
โ€œwarningโ€: โ€œStore this key securely. It will not be shown again.โ€ }

Revoking

In the portal under API Access, click Revoke. Apps using the old key will immediately receive 401 errors.