Stats Channels

Live server statistics as voice-channel names

Stats Channels turn locked voice channels into live information boards: member counts, online presence, boosts, role and channel totals — automatically refreshed every 10 minutes. The renderer skips channels whose value didn't change, so we only spend Discord's strict 2-renames-per-10-minutes budget on channels that actually need it. Custom bots use their own rate-limit budget and scale independently.

Overview

The Stats Channels tab in the dashboard manages a set of locked voice channels that display live numbers in their name. Each channel is bound to a stat type (e.g. members, online, boosts) and a name template like '👥 Members: {value}'. A background worker picks up changes from a Redis signal and a 10-minute tick, so values stay current without manual refreshes.

Quick setup in 30 seconds

If you don't want to configure every channel manually, click Quick setup on the Stats Channels page. The bot will:

  1. Create a category named '📊 Server Stats' at the top of your channel list
  2. Create 5 locked voice channels: total members, online members, humans, bots, and server boosts
  3. Render the live values within the next 10 minutes and start the auto-update cycle
After Quick setup you can rename, reorder, or delete any of the auto-created channels. The bot only manages the channels that are configured in the dashboard — anything else stays untouched.

Available stat types

You can mix and match up to 10 stat channels per server from the following stat types:

StatDescription
Total membersEvery member of the server, including bots.
Online membersMembers currently online (status: online, idle, or dnd). Requires the Presence intent — see below.
HumansMember count excluding bots.
BotsNumber of bot accounts in the server.
Server boostsActive Nitro boosts contributing to the server's boost level.
RolesTotal number of roles in the server (excluding @everyone).
ChannelsTotal number of channels including categories, text, voice, and stages.
New members todayMembers who joined since 00:00 in the server's timezone.
Top XP memberUsername of the highest-ranking member from the Leveling module. Requires Leveling to be enabled.

Custom name templates

Each channel name is rendered from a template that contains the placeholder {value}. The renderer substitutes the live number, formats it (e.g. 1234 → 1,234), and writes the result as the channel name.

A few examples:

'👥 Members: {value}' → 👥 Members: 1,234'
'Online ▸ {value}' → Online ▸ 87'
'🚀 Boosts {value}' → 🚀 Boosts 12'

Channel names are capped at 100 characters after rendering — the Discord limit. The dashboard shows a live preview while you edit the template.

Presence intent (for Online counter)

The Online stat type relies on Discord's Presence intent. This is a privileged intent — bots that serve more than 100 servers need explicit approval from Discord, but TeraOne already runs with Presence approved.

How often values update

Stats Channels follow Discord's per-channel rate limit of 2 renames every 10 minutes. The worker therefore runs on a fixed 10-minute tick:

  1. Every 10 minutes the worker evaluates all configured channels for the server
  2. For each channel it computes the current value and the rendered name
  3. If the rendered name matches the last one (skip-when-unchanged), the channel is left alone — no API call is made
  4. Otherwise the channel is renamed via the Discord REST API
Skip-when-unchanged means an idle server with stable values uses zero rate-limit budget. Channels that haven't changed simply don't get touched.

Limits

A few hard limits apply:

  • Up to 10 stat channels per server
  • Channel names are capped at 100 characters after rendering
  • Update interval is fixed at 10 minutes (Discord rate limit)
  • Templates must include the {value} placeholder

Troubleshooting

Most issues come down to permissions or the Presence intent. Work through the cases below first.
Channel name doesn't update
Check that TeraOne (or your custom bot) has the Manage Channels permission for the channel. Without it, the Discord API rejects the rename and the worker logs an error.
Online counter is stuck at 0
Enable the Presence intent in the Discord Developer Portal (Bot → Privileged Gateway Intents → Server Members Intent + Presence Intent). For TeraOne the intent is already on; for custom bots you need to enable it yourself.
I renamed a channel manually and it switched back
That's intentional. The worker overwrites manual renames every 10 minutes to keep values consistent with the configured template. To stop overwriting, delete the channel from the Stats Channels dashboard tab — the bot will leave it alone after that.
Quick setup says category already exists
If you previously deleted the channels but kept the '📊 Server Stats' category, the setup will try to reuse it. Either delete the category in Discord first, or rename it — the bot only auto-creates if no category with that exact name exists.

Frequently asked questions

Why is the update interval fixed at 10 minutes?
Discord limits voice-channel renames to 2 per 10 minutes per channel. Updating more often would mean dropped renames or rate-limit errors. 10 minutes is the safest cadence for stable values without burning rate-limit budget.
Do stat channels count toward Discord's channel limit?
Yes. Each stat channel is a regular voice channel. Discord allows up to 500 channels per server, so 10 stat channels is a tiny fraction.
Can members join the stat voice channels?
No. Quick setup creates them with @everyone Connect denied, so they're display-only. You can change this manually if you want, but it's usually not what you want for stat channels.
Does this work with a custom bot?
Yes. Stats Channels respect custom-bot precedence — if your server has a custom bot configured, the renames are issued under its token and rate-limit budget. This means a custom bot at scale doesn't share TeraOne's rate-limit pool.
What happens if my server has no Leveling module enabled but I added a Top XP channel?
The channel name will fall back to a placeholder ('—'). Once you enable Leveling and accumulate some XP, the value populates automatically on the next tick.
Stats Channels · TeraOne Docs · TeraOne