Guide 04

Counters

Track anything that happens more than once: deaths, hugs, redemptions. Choose how it's counted once, and the bot remembers forever.

01Counters: numbers that remember

at a glance One token, {counter:name}, adds 1 and shows the total. The count survives every stream.

A counter is a named number the bot remembers between streams. Write {counter:deaths} in a command's response, and every time the command runs, the bot adds 1 to a counter called "deaths" and shows the new total right there in its reply. No spreadsheet, no manual tally, just a token.

Two runs of the same !death command, one counter remembering both.

Counters need Loyalty Points Counters are stored by the Loyalty Points module. Switch it on first, or {counter:…} stays as literal text in chat.

02Four ways to count

at a glance Whole channel, per user, per command, or both. Pick one when you create the counter; it sticks.

Every counter has exactly one scope, chosen the moment it's created, and it stays that way for the counter's whole life. Scope answers one question: whose number is this?

ScopeChat wordWhat's counted
Whole channel(default)One shared total, everyone adds to the same number.
Per useruserEach viewer gets their own number.
Per command or rewardcommandOne shared total for a single command or reward, every viewer pooled together.
Per user + command or rewarduser+commandEach viewer gets a separate number for each command or reward.

Whole channel

Everyone bumps the same shared number. Perfect for a tally that belongs to the stream itself, not to any one viewer, like a running death count.

Doesn't matter who types !death, the channel's total keeps climbing.

Per user

Each viewer gets a private number, untouched by anyone else's. Good for personal streaks: how many hugs someone has given, how many times they've won a game against you.

Same command, two viewers, two totally separate counts.

Per command or reward

The newest scope: one pooled total for a single command or channel-point reward, with every viewer adding to the same number. Ideal for "how many times has this specific reward been redeemed, total?"

Two different viewers, the reward's own running total either way.

Per user + command or reward

Combines both: every viewer gets a separate number for each command or reward that shares this counter. Bind one counter to two commands and each viewer ends up with one bucket per command, not one shared bucket for both.

alex's count for !hug and their count for !highfive don't mix, even though both use the same counter.

Locked once created A counter's scope can't be changed afterward. Picked the wrong one? Delete it (!counter delete name, or the dashboard) and create it again; the old values don't carry over.

03Managing counters from chat

at a glance Create, bump, set, reset, delete, or just ask, all without leaving chat.

You and your moderators can create and manage counters without leaving chat, all under !counter:

CommandWhat it does
!counter create <name> [scope]Creates a counter. Scope word is user, command or user+command; leave it out for the whole channel.
!counter add <name> [amount]Adds 1, or the amount you give. Negative numbers subtract.
!counter set <name> <value>Sets the total outright.
!counter reset <name>Clears it back to zero. For per-user or per-command counters, this wipes every stored bucket.
!counter delete <name>Removes the counter entirely.
!counter listLists every counter on the channel and its scope.
!counter <name>Shows the current value, same as reading it in chat.
Creating and bumping a counter, start to finish, without touching the dashboard.

Command scope, from chat !counter create hydrations command makes a pooled per-command counter in one line, ready to drop into a command's response, or bind to a channel-point reward, as {counter:hydrations}.

04The dashboard, and channel-point rewards

at a glance The Counters page for hands-on control, and how a reward binds to one.

The Counters page lists every counter on your channel and lets you create, adjust, and delete them by clicking instead of typing.

  • Name: the same string you'd write inside {counter:…}.
  • Counts: the scope. Fixed once you create it.
  • A plain-language reminder of where counters get bumped from.
New counter panel: name it, pick a scope, done. Existing rows get +/- steppers for whole-channel counters, or a values table for the others.

Binding a counter to a channel-point reward

Every Channel Points reward can optionally keep a counter of its own, right from the reward's editor: type a counter name (new or existing), pick its scope, and every redemption bumps it. Use {counter} in the reward's chat reply to show the new total.

  • Off by default, most rewards don't need one.
  • Per user + reward is usually the right call: each viewer builds their own redemption count for this reward.
The reward editor's counter block: a toggle, a name, and the same four scopes.

Try it in the builder The command builder can walk you through naming a counter and picking its scope, then hands you the finished {counter:…} token. Open the command builder →