Skip to main content

Overview

A counter is a channel whose name shows a live value, like πŸ‘₯ Members: 1,234. Petto makes it locked (everyone sees it, nobody can join or write) and changes its name when the value changes. A counter can also be a category’s name, or the topic of a text channel.
!counter (alias !counters) is a prefix command and needs Manage Channels. Petto needs Manage Channels too, to make and rename the channels. The dashboard has the same under Integrations β†’ Counters.
The Counters page of Petto Land with 6 counters, 1,840 members, the members chart of 30 days, the packs and the first counters

Dashboard β†’ Integrations β†’ Counters: the numbers now, member growth, the packs and the counters of the server.

Quick setup

Example
!counter setup [pack] makes a β€πŸ“Š Server stats” category with a ready set of counters: What the server already counts is skipped, and the pack stops at the counter limit of the server.
liam runs !counter setup and Petto answers that the server stats are ready with three counter channels

In Discord: !counter setup makes the "πŸ“Š Server stats" category with members, humans and bots.

liam runs !counter setup online and Petto makes three counters: online, online and in voice

In Discord: the online pack, in its own category.

liam runs !counter setup goal 2000 and Petto makes a goal counter that shows 1,840/2,000

In Discord: a goal pack with the goal written after it.

liam runs !counter setup clock Europe/Madrid and Petto makes a clock and a date counter

In Discord: the clock pack in a time zone: the time and the date.

liam runs !counter setup basic and Petto answers that the server already counts everything in that pack

In Discord: a pack whose counters the server already has is not made again.

Commands

  • !counter create makes a new locked voice channel, or turns a channel you already have into a counter with --channel #channel.
  • !counter list (the default of !counter) shows what each counter shows now and any problem it has.
  • !counter types lists every type with its value right now.
  • !counter delete deletes the counter and its channel; keep keeps the channel.
  • !counter refresh updates the counters now, within Discord’s limit.
  • Short names: add, new for create; remove, rm for delete; sync for refresh; preset, pack for setup.
liam runs !counter list and Petto lists six counters: members, humans, online, boosts, a goal of 2,000 and a clock

In Discord: !counter list shows what each counter shows now and when it changes next.

liam runs !counter create members and Petto answers with the new channel and the name it shows

In Discord: a new counter in a locked voice channel.

liam creates a counter of the Staff role named πŸ›‘οΈ Staff: {count} and it shows 4

In Discord: a role counter with a name of its own.

liam types !counter create memberz and Petto answers that the type is unknown

In Discord: a type Petto does not know points to !counter types.

Petto lists every counter type of Petto Land with its value, like 1,840 members and 412 online

In Discord: every type with its value right now.

liam deletes the clock counter and Petto confirms that the channel was removed

In Discord: the counter and its channel are deleted.

liam runs !counter delete on the boosts counter with keep and Petto says the channel was kept

In Discord: with keep, the channel stays and only the counter stops.

liam runs !counter refresh: 2 renamed now, 1 waiting for the rename limit, 3 already right

In Discord: what was renamed now, what waits for Discord and what was already right.

Toby types !counter create members and Petto answers that the manage_channels permission is missing

In Discord: a member without Manage Channels cannot use !counter.

!counterconfig (needs Manage Server) shows what the server has set for counters and milestone announcements, and every !counter command.
liam runs !counterconfig: the six counters with their type and state, the milestone announcements and the list of !counter commands

In Discord: !counterconfig, the settings of the module and its commands.

Types

The days of messages_today follow the time of Petto. A clock moves in steps of five minutes, because a channel can only be renamed twice every 10 minutes.

Names and formats

The name of a counter is any text with {count}. New counters get a ready name in the language of the server. These placeholders are only for counter names. The usual variables like {server_name} don’t work here, write the text yourself.

Name ideas

The format can be plain (1234), grouped (1,234, or 1.234 in Spanish and Portuguese) or compact (1.2k). Old counters keep their names, and {value}, {remaining} and {option} still work in them.

Where the value shows

--kind chooses what the counter changes:
  • voice (the default), text or stage: the name of a channel. Text channels have no spaces or capitals in Discord, so voice looks best.
  • category: the name of a category.
  • topic: the topic of a text channel, which keeps its name (up to 1,024 characters). A new one is a locked #server-stats channel, or use one you have with --channel #general.
!counter edit #channel kind topic or kind name switches a text channel between the two.
liam runs !counter create boosts --channel #general --kind topic and Petto says #general now shows πŸ’Ž Boosts: 9

In Discord: --kind topic turns #general into a counter that changes its topic.

Change a counter

!counter edit <channel> <setting> <value> changes one thing: template (the name), format, type, role, goal, timezone, category, kind, prefix, suffix, interval or enabled.
Example
liam changes the template of the members counter and Petto shows the preview 🌸 1,840 members

In Discord: a new name, with a preview of what it shows.

liam sets the members counter to the compact format and the preview shows πŸ‘₯ Members: 1.8k

In Discord: the compact format writes 1,840 as 1.8k.

liam changes the goal to 2500 and the preview shows 🎯 Goal: 1,840/2,500

In Discord: a new goal for a goal counter.

liam moves the clock counter to Asia/Tokyo and the preview shows the time in GMT+9

In Discord: the clock in another time zone.

liam turns the members counter off with enabled false and Petto confirms the change

In Discord: enabled false stops the updates and keeps the counter.

Updates

Discord lets a channel be renamed twice every 10 minutes, and Petto never asks for more. A member joining or leaving, a boost, a new channel or role updates the counter at once when that budget allows; otherwise one rename is planned for when it is allowed again, with the value of that moment. Nothing is renamed when the name would not change, and the budget is kept across restarts. When many counters change at once (a raid, the clocks of every server at the same minute), Petto spreads the renames over a short time instead of sending them together.

Milestone announcements

!counter announce sends a message when the server reaches the goal of a goal counter, and if you want every so many members.
The text takes {count} (members now), {goal} or {milestone} (the number reached) and {server}, with numbers grouped like 1,000. A saved embed uses {counter.count}, {counter.goal} and {counter.server}, plus the usual variables of the server. With !counter announce message πŸŽ‰ We just hit {goal} members in {server}! the server reads πŸŽ‰ We just hit 1,000 members in Cozy Corner! The same number is never announced twice: not after a restart, and not when members leave and join again around it. Turning it on starts from the members of that moment.
Petto shows the milestone announcements on, in #general, every 100 members, last announced 1,800 and next 1,900

In Discord: the settings of the announcements, the last number announced and the next one.

liam sets #general as the channel and Petto saves the announcements, with the next one at 2,000

In Discord: setting the channel turns the announcements on.

liam sets the message πŸŽ‰ We are {count} in {server}! and Petto shows it in the settings

In Discord: a text of your own with {count} and {server}.

liam picks the saved embed milestone and Petto shows Saved embed: milestone

In Discord: a saved embed instead of the text.

liam runs !counter announce every 100 and Petto shows Every 100 members with the next at 1,900

In Discord: an announcement every 100 members.

liam runs !counter announce goals off and the settings show goals of goal counters off

In Discord: the goals of goal counters are no longer announced.

liam runs !counter announce off and Petto shows the milestone announcements off

In Discord: the announcements stop and keep their settings.

liam runs !counter announce on and Petto shows the announcements on, with nothing announced yet and the next at 1,900

In Discord: the announcements back on, from the members of now.

liam runs !counter announce test in #staff and Petto says the test was sent to #general

In Discord: a test is sent to the channel of the announcements.

Petto posts πŸŽ‰ We are 1,840 in Petto Land! in #general

In Discord: the message in #general, as a milestone sends it.

Dashboard

Dashboard β†’ Integrations β†’ Counters shows every counter with a live preview of its name, when it was last updated and when it updates next.
  • Packs: the same packs as !counter setup, in a gallery with the names they will show.
  • Order: drag the counters (or use the arrows) and Petto moves the channels in Discord to match, inside their category.
  • Rename: click a counter’s name to edit it with a live preview; Enter saves.
  • Announcements: the same settings as !counter announce, with a preview.
  • A small chart shows the members of the last 30 days.
6 of 25 counters, 6 working, 1,840 members, 412 online and a line of the members of the last 30 days

Dashboard β†’ Integrations β†’ Counters: the counters, how many work, the members and the online members now, and the members of the last 30 days.

The five packs: basic stats, boosts, who is online, goal to 2,000 and clock, each with Add pack

Dashboard β†’ Integrations β†’ Counters: the packs, with what the server already counts crossed out.

The six counters of Petto Land, each with its name, state, last update and next update

Dashboard β†’ Integrations β†’ Counters: the counters with their handle and arrows to change the order.

The members counter with its name open for editing and the preview πŸ‘₯ Members: 1,840

Dashboard β†’ Integrations β†’ Counters: a click on the name opens it for editing, with the live preview under it.

The editor of the members counter: what it shows, the name, the number format, the category and the preview

Dashboard β†’ Integrations β†’ Counters: Edit opens every setting of a counter with its preview.

The Milestone announcements card with the channel, every N members, goals, saved embed, message and preview

Dashboard β†’ Integrations β†’ Counters: the milestone announcements, with a preview of the message.

The New counter card with the types by group, the name, the number format, the channel and the preview

Dashboard β†’ Integrations β†’ Counters: a new counter: the type, the name, the format, the channel and a preview.

Members with a role that was given access to the Automation part can use this page too, see Dashboard access.

Limits

A Free server can have 25 counters and a Premium server 50. !counter create, !counter setup and the dashboard say when the limit is reached; see Premium.
liam runs !counter create bots and Petto answers that the server has the most counters it can have for free, 25

In Discord: a Free server with 25 counters cannot make another one.

Common issues

It is waiting for Discord’s limit of two renames every 10 minutes. !counter list and the dashboard say when it changes next.
Online counts need the presences of the members. On a very big server Discord may not send every member; the counter says so.
The channel was deleted, so the counter turned itself off. Delete the counter and make a new one.
Petto lists five counters; the online one cannot be renamed for lack of Manage Channels and the goal one lost its channel

In Discord: !counter list shows the problem of each counter.

Give Petto Manage Channels (in the channel and its category). The problem is reported once and shown on the counter until it is fixed.