Modomation module
Modomation is a moderation and automation toolkit. It posts chat messages when viewers redeem Channel Point rewards and when channel events fire (follows, subs, gifts, cheers, hype trains, polls, predictions, raids, and more), counts redemptions per viewer, manages VIP status, shouts out a curated list of viewers when they chat, and uses AI to suggest AutoMod tuning improvements.
Chat messages Modomation sends honor your channel’s bot identity (your own account, the shared @StreamerCatalyst bot, or your custom bot — chosen in Chatters → Bot Setup).
Available on the Free tier and above. See Module access by tier.
Nothing in Modomation runs until you set it up: each feature has its own rule or switch, and every one starts off. The Twitch event subscriptions each feature needs are set up for you as you save rules and flip switches — there is no subscribe step. If a rule or feature stays quiet, check the module’s health card under Settings.
At a glance
Section titled “At a glance”| Dashboard tab | What it does |
|---|---|
| Channel Redemptions | A chat message when a viewer redeems a chosen Channel Point reward, with per-viewer redemption counts |
| Redemption Tracking | Count redemptions per viewer without sending anything, with a leaderboard |
| Channel Events | Chat messages for stream online/offline, title/category changes, ad breaks, incoming raids and shoutouts; the Snooze next ad on raid switch |
| Follows, Subs & Bits | Chat messages for new followers, subs, gifted subs, resub messages, cheers and hype trains |
| Polls & Predictions | Chat messages at each phase of a poll or prediction |
| User Management | VIP automation: chat commands, auto-grant on subscribe, timed and stream-limited VIPs, auto-removal, audit log |
| Auto Shoutouts | Shout out the viewers you list when they chat, with optional native Twitch shoutouts |
| AutoMod Suggestions | Capture moderation events and get AI suggestions for tuning AutoMod |
Channel point redemption automations
Section titled “Channel point redemption automations”Define rules that fire when a viewer redeems a specific Channel Point reward. Each rule sends a chat message, up to 500 characters, with these variables:
| Variable | Substituted with |
|---|---|
$(user) |
Viewer’s display name |
$(count) |
How many times this viewer has redeemed this specific reward |
Setup:
- Open Modomation → Channel Redemptions and click + Add Rule.
- Pick a Channel Point reward from your channel’s list (shown with its cost). There’s one rule per reward, so rewards that already have a rule aren’t offered.
- Write the message — for example
@$(user) has redeemed this $(count) time(s)!— and save. - Redemptions now trigger the message in real time.
Each rule card has an on/off toggle, Edit, Delete, and a Counts panel listing the top 100 redeemers of that reward with their count and when they last redeemed it. A rule with an empty message still counts redemptions but sends nothing.
Redemptions are deduplicated on Twitch’s redemption id, so a redemption that reaches Modomation more than once — for example when a reward has both a rule and redemption tracking — is counted and announced once.
Your plan includes 3 redemption rules on Free, 10 on Affiliate, and unlimited on Partner and above (see Tier comparison). If your tier drops, enabled rules beyond the new allowance are switched off automatically; the oldest stay on.
Redemption tracking
Section titled “Redemption tracking”Independent of rules, the Redemption Tracking tab counts how many times each viewer redeems rewards, without sending a chat message.
- Tracking enabled turns counting on; the tab shows when tracking first started.
- Mode — Selective counts only the rewards you add under Tracked Rewards (each shows when its tracking began; remove one with Remove). All counts every Channel Point redemption on your channel.
- Leaderboard — the top 50 redeemers, either for one reward or aggregated across all rewards, with each viewer’s count and last redemption.
Channel event automations
Section titled “Channel event automations”Event rules post a chat message when a channel event fires — one rule per event type, each with an on/off toggle and a message up to 500 characters. Twenty event types are split across three tabs, and the rule form shows the variables available for the event you pick. A rule with an empty message sends nothing, and a variable Twitch didn’t provide renders as an empty string.
| Tab | Event (dashboard label) | Variables |
|---|---|---|
| Channel Events | Stream Online | $(type) — the stream type Twitch reports (e.g. live) |
| Stream Offline | none | |
| Channel Update | $(title), $(category) |
|
| Ad Break Begin | $(duration) — length in seconds |
|
| Channel Raid (incoming) | $(from_user), $(viewers) |
|
| Shoutout Given | $(to_user) — the channel you shouted out |
|
| Follows, Subs & Bits | New Follower | $(user), $(login) |
| New Subscription | $(user), $(tier), $(is_gift) (true/false) |
|
| Gift Subscription | $(user), $(total), $(tier), $(cumulative_total) |
|
| Resub Message | $(user), $(tier), $(message), $(cumulative_months), $(streak_months), $(duration_months) |
|
| Bits Cheer | $(user), $(bits), $(message) |
|
| Hype Train Start / Hype Train Progress | $(type), $(level), $(total), $(goal), $(top_user), plus the record variables below |
|
| Hype Train End | $(type), $(level), $(total), $(top_user), plus the record variables below |
|
| Polls & Predictions | Poll Started, Poll Ended, Prediction Started / Progress / Locked / Ended | See Polls & Predictions |
Anonymous gifters and cheerers render as “Anonymous” in $(user).
$(tier) renders the tier as a label — Tier 1 / Tier 2 / Tier 3 — not as Twitch’s internal plan code, so “thanks for the $(tier) sub” reads the way you wrote it. Writing the word yourself (“Tier $(tier)”) is fine too; it will not double up. Twitch reports a Prime sub as Tier 1.
Twitch often delivers a single title or category change more than once; identical back-to-back Channel Update deliveries post one message. An incoming raid is acted on once, even when the raiding channel also uses StreamerCatalyst.
New follower announcements
Section titled “New follower announcements”A New Follower rule ($(user) / $(login)) is the one way to greet follows in chat without setting up an Events reward — write the message, enable the rule, done. It needs the moderator:read:followers permission, which every login already requests, so no re-authorization is involved.
Follows are the one event here a single viewer can fire over and over, so each follower is announced once per 24 hours — unfollowing and re-following will not repeat the message. That is a re-follow guard, not a follow-bot defence: a bot flood arrives from thousands of distinct accounts, and the answer to that is Twitch’s own follower-mode and account-verification settings. If you are being follow-botted, switch the rule off until it passes.
Hype trains
Section titled “Hype trains”Hype train rules can fire at the start, on each progress update, and at the end.
$(type)— the train’s type as Twitch reports it (regularunless Twitch names a special type).$(level),$(total),$(goal)— the current level, points so far, and points needed for the next level ($(goal)isn’t available at the end).$(top_user)— the display name of the first top contributor Twitch lists.- Record variables —
$(all_time_high_level)and$(all_time_high_total)are your channel’s hype train record;$(all_time_high_percent)is this train’s total as a percentage of that record (it can pass 100 when you break it);$(shared_all_time_high_level)and$(shared_all_time_high_total)are your Shared Chat hype train record. Each is empty when the record isn’t known.
These events need the channel:read:hype_train permission, which every login already requests.
Polls & Predictions
Section titled “Polls & Predictions”Poll and prediction rules are informational chat announcements: when the event fires, the rule posts your message. Modomation takes no moderation action and never creates, resolves, or cancels a poll or prediction itself — it only announces Twitch’s own lifecycle events.
| Event type | Dashboard label | Variables |
|---|---|---|
channel.poll.begin |
Poll Started | $(title), $(choices) |
channel.poll.end |
Poll Ended | $(title), $(winner), $(winner_votes), $(results), $(choices), $(total_votes), $(status) |
channel.prediction.begin |
Prediction Started | $(title), $(outcomes) |
channel.prediction.progress |
Prediction Progress | $(title), $(outcomes), $(top_outcome) |
channel.prediction.lock |
Prediction Locked | $(title), $(outcomes), $(top_outcome) |
channel.prediction.end |
Prediction Ended | $(title), $(winner), $(status) |
How the derived variables are computed:
$(choices)— comma-joined list of the poll’s choice titles. Available on both Poll Started and Poll Ended.$(results)(poll end) — every choice title with its vote count, sorted highest-first, e.g.Red: 40, Blue: 25. The count is that choice’s total votes as Twitch reports it (including Channel Points and Bits votes). With no votes, every choice shows0.$(winner)(poll) — the choice with the most votes; empty if the poll ended with zero votes, so write templates that tolerate a blank winner. On a tie, the first-listed of the tied choices wins.$(winner_votes)(poll end) — the winning choice’s total vote count;0when the poll ended with no votes.$(total_votes)— the sum of every choice’s votes (0when there were none).$(outcomes)(prediction start) — comma-joined outcome titles only.$(outcomes)(prediction progress/lock) — comma-joined outcome titles, each annotated with how many viewers picked it, e.g.Yes (12), No (3).$(top_outcome)— the outcome with the most Channel Points staked so far.$(winner)(prediction end) — the winning outcome’s title; empty if the prediction was canceled.$(status)— Twitch’s raw status string:completed/terminated/archivedfor polls,resolved/canceledfor predictions.
The poll and prediction variables don’t overlap: $(choices), $(results), $(winner_votes), and $(total_votes) are poll-only, while $(outcomes) and $(top_outcome) are prediction-only. $(winner) exists on both Poll Ended and Prediction Ended. An unknown token (e.g. a poll variable in a prediction template) is left untouched and rendered literally, so keep each template to its own event’s variables.
These events need the channel:read:polls and channel:read:predictions permissions, which every login already requests — see Modomation — Authentication & permissions.
Snooze ads on raid
Section titled “Snooze ads on raid”When your channel is raided, StreamerCatalyst can automatically snooze your next scheduled Twitch ad so incoming raiders aren’t immediately shown an ad break.
How to enable: Modomation → Channel Events → toggle Snooze next ad on raid on. This works on its own — you don’t need a Channel Raid rule.
Requirements and caveats:
- Needs the
channel:manage:adspermission. It isn’t requested at sign-in: when the broadcaster turns the switch on and the permission is missing, the dashboard sends them to Twitch to approve it, then back. If a moderator turns it on, they’re told the broadcaster has to authorize it. - Only works while you are live with an ad scheduled — Twitch’s snooze does nothing otherwise, and nothing visibly happens.
- Snoozes only the single next ad per raid and uses one of Twitch’s limited daily snoozes. Back-to-back raids each trigger one snooze.
- If Twitch’s daily snooze limit is reached, further raids that day won’t snooze — this is a Twitch-side cap.
VIP automation
Section titled “VIP automation”The User Management tab turns Twitch VIP status into an automated reward system. You can hand out VIP by chat command, from the dashboard, or automatically the moment a viewer subscribes — and Modomation can take VIP back when a timed grant expires or when the viewer stops meeting the conditions you set. Every grant and removal is written to an audit log.
VIP rotation is part of the Affiliate plan and above — see Tier comparison.
Getting started: turn on Enable VIP commands in chat on the User Management tab. That switch:
- turns on the
!addvip-family chat commands; - asks for the
channel:manage:vipspermission, which Modomation needs to add and remove VIPs on Twitch — the broadcaster is sent to Twitch to approve it (a moderator flipping the switch is told the broadcaster has to authorize it); - enables the daily expiry and auto-removal checks and the stream-limited countdown, which only run while it’s on.
Show settings on the same card opens the rest: command mode, Mods can use VIP commands, the three auto-removal rules, and Auto-grant VIP at sub tier.
At a glance
Section titled “At a glance”| Capability | What it does |
|---|---|
| Auto-grant on subscribe | Gives VIP to anyone who subscribes at or above a tier you choose |
| Chat commands | Grant/remove VIP live from chat (!addvip, !addtempvip, !addpermvip, !removevip) |
| Dashboard grants | Grant VIP to any Twitch user with a chosen duration |
| Timed VIP | VIP that is removed after a set time (seconds up to 365 days) |
| Stream-limited VIP | VIP that lasts a set number of streams |
| Auto-removal | Remove VIP when a viewer unfollows, unsubscribes, or their sub tier drops |
| Audit log | A record of every grant, expiry, and removal |
VIP grant durations
Section titled “VIP grant durations”| Duration | Behaviour |
|---|---|
| Permanent | Never expires on its own. Removed only by hand or by the tier-drop rule (for VIPs granted on subscribe). |
| Timed | Has an expiry time, up to 365 days out. Removed at the first daily check (06:00 UTC) after it expires. |
| Stream-limited | Lasts a set number of streams. The count drops by one each time your stream ends; once it reaches zero the VIP is removed at the next daily check. |
Auto-grant VIP on subscribe
Section titled “Auto-grant VIP on subscribe”- Open Modomation → User Management and click Show settings.
- Tick Auto-grant VIP at sub tier.
- Pick the minimum tier that qualifies: Tier 1 (default), Tier 2, or Tier 3.
When a viewer subscribes at or above that tier, Modomation grants them VIP (as a permanent grant) and records it in the audit log with the reason sub_threshold. Viewers who already have an active VIP record are skipped, so re-subs never create duplicates.
To take subscriber VIPs back when the viewer lapses, also tick Remove VIP when sub tier drops: it removes VIPs granted this way once the viewer’s tier falls below your threshold — including when they stop subscribing altogether. (Remove VIP when user unsubscribes doesn’t apply to these, because they’re permanent grants.)
VIP chat commands
Section titled “VIP chat commands”The broadcaster and moderators can manage VIP straight from chat. Commands come in two layouts, chosen with the Command mode setting:
Unified mode (default):
| Command | Effect |
|---|---|
!addvip @username |
Grants VIP with no expiry. If Twitch already lists them as a VIP, the bot says so. |
!removevip @username |
Removes VIP and marks the record removed. |
Split mode — separate commands for temporary vs permanent:
| Command | Effect |
|---|---|
!addtempvip @username <duration> |
Grants a timed or stream-limited VIP, e.g. !addtempvip @viewer 3d or !addtempvip @viewer 2stm. |
!addpermvip @username |
Grants a permanent VIP. |
!removevip @username |
Removes VIP. |
In each mode, the other mode’s add commands are ignored. Durations are a whole number followed by a unit — s (seconds), m (minutes), h (hours), d (days), w (weeks), or stm (streams) — up to 365 days. Always include the duration with !addtempvip.
The bot replies in chat to confirm each action — for a timed grant it names the expiry date in your channel’s time zone, for a stream-limited one the number of streams — or to say what went wrong: user not found, already VIP, not a VIP, an invalid duration, or that VIP can’t be granted to the broadcaster. A command with no username gets a usage reply.
Who can run VIP commands:
- The broadcaster — always.
- A Lead Moderator — always.
- A regular moderator — only when Mods can use VIP commands is turned on.
Unauthorized users are ignored silently. A command is acted on once even if Twitch delivers the message more than once.
Grant VIP from the dashboard
Section titled “Grant VIP from the dashboard”User Management → + Grant VIP grants VIP to any Twitch username with a duration you pick — Permanent, Timed (a number plus seconds, minutes, hours, days or weeks, up to 365 days), or Streams (a number of streams). Use the viewer’s Twitch login (the name in their channel URL), not their display name. A viewer who already has an active VIP record can’t be granted again until it ends.
The VIPs list has a filter for Active, Expired, Removed, or All. The Active view shows both managed VIPs (granted through StreamerCatalyst) and external VIPs (added directly on Twitch or by another tool), each with whether they currently subscribe (and at what tier) and whether they follow you, so you can see who still meets your conditions. If Twitch can’t be reached, a note says so and the Sub and Follower columns stay empty. Each row also shows the grant type, duration or expiry, status, and who granted it. You can Remove any active or external VIP from the list.
Auto-removal of VIP
Section titled “Auto-removal of VIP”A daily job (06:00 UTC) reviews active managed VIPs and removes the ones that no longer qualify. It runs only while Enable VIP commands in chat is on. Removal reasons are recorded in the audit log.
Always active:
- Timed VIPs whose expiry time has passed → removed (
duration_expired). - Stream-limited VIPs that have run out of streams → removed (
streams_expired).
Optional rules (under Show settings):
| Setting | Removes VIP when… |
|---|---|
| Remove VIP when user unfollows | The viewer no longer follows the channel. |
| Remove VIP when user unsubscribes | The viewer no longer subscribes. |
| Remove VIP when sub tier drops | A VIP granted by Auto-grant VIP at sub tier is now below your threshold tier, or no longer subscribed (requires auto-grant to be on). |
The unfollow and unsubscribe checks only apply to non-permanent VIPs granted after you first turned on VIP automation, so VIPs you set up before turning the feature on — and any permanent grants — are never swept up unexpectedly. If Twitch can’t confirm a viewer’s status on a given day (a temporary error or a missing permission), that viewer is skipped and re-checked on the next run rather than being removed on bad data.
Audit log
Section titled “Audit log”Every VIP action — grant, expiry, and removal — is recorded with the user, the action, the reason, and who performed it: cron for automatic expiry and removal, system for auto-grant on subscribe, or the moderator’s or broadcaster’s login for manual actions. The Audit Log card on the User Management tab shows the most recent 100 entries.
Required permissions
Section titled “Required permissions”channel:manage:vips— grant and revoke VIP. Requested when you turn on Enable VIP commands in chat (see above).channel:read:subscriptions— receive subscriptions for auto-grant, and check subscriber status for tier-drop and unsubscribe removal and the VIP list’s Sub column. Requested at every sign-in.moderator:read:followers— check follower status for unfollow removal. Requested at every sign-in.
See Modomation — Authentication & permissions.
Auto-shoutout
Section titled “Auto-shoutout”Automatically shout out specific viewers when they chat — fellow streamers, community pillars, regular raiders. Auto-shoutout works from a curated list you manage under Modomation → Auto Shoutouts: only people you’ve added are ever shouted out. Turn it on with Enable auto-shoutouts.
Sending a shoutout by hand as a mod? See How to shout out someone on Twitch as a mod.
Add people with + Add user using their Twitch login (validated against Twitch). You can’t add yourself, and each person can only be on the list once. Each entry can be edited or removed.
Message variants
Section titled “Message variants”The shoutout message adapts to the chatter’s own live status and last-played game, which Modomation looks up at send time from their channel (not yours). Four fields cover the combinations, each up to 500 characters:
| When the chatter is… | Field | Falls back to |
|---|---|---|
| Live, last game known | When they’re live → Shoutout message (primary) | — |
| Live, last game unknown | When they’re live → Message when their last game is unknown | primary |
| Offline, last game known | When they’re offline → Shoutout message | primary |
| Offline, last game unknown | When they’re offline → Message when their last game is unknown | live unknown game message, then primary |
A blank field inherits from its fallback, so filling in only the primary message covers all four cases. The example text shown in empty fields is only a placeholder — if every field that applies is blank, no shoutout is sent.
Variables
Section titled “Variables”| Variable | Substituted with |
|---|---|
$(user) / $(touser) |
The chatter’s display name (both resolve to the same value) |
$(login) |
The chatter’s username (safe inside twitch.tv/ links) |
$(url) |
twitch.tv/<login> |
$(game) |
The chatter’s last-played category |
$(status) |
live or offline |
Because live/game status is probed from the chatter’s channel at send time, $(game) and $(status) describe the person being shouted out. Example primary message: $(user) is live right now playing $(game)! Go show them love at $(url) 💜.
Cooldown
Section titled “Cooldown”The Default cooldown is Once per stream (the default — resets each time you go live), or every 5 minutes, every 15 minutes, or hourly. Turning auto-shoutouts on starts a fresh “once per stream” window.
Per-user overrides
Section titled “Per-user overrides”Any listed user can override:
- Message — a custom message that replaces every variant, live or offline. Untick Use default message to write one.
- Cooldown — inherit the default, once per stream, or a custom interval from 1 second to 24 hours.
- Native Twitch shoutout — inherit the default, force on, or force off.
Native Twitch shoutout
Section titled “Native Twitch shoutout”Optionally fire Twitch’s built-in shoutout in addition to the chat message — set the Native Twitch shoutout default and, per user, inherit / force on / force off. It is best-effort: a native failure never suppresses the chat message. It only works while you are live and requires the moderator:manage:shoutouts permission. That permission is requested at sign-in, so a channel that connected recently already has it. If you connected before it was added, native shoutouts stay quiet until you authorize again — use the Reconnect button that appears beside the toggle. See Modomation — Authentication & permissions.
Twitch only accepts one native shoutout every ~2 minutes, so an auto-shoutout that can’t fire right away joins the shoutout queue instead of being dropped. It’s the same queue Chatters’ !so uses, so the two features don’t knock each other out, and it drains in order as the cooldown allows. Check it in chat with !soq — see Shoutout queue. If the queue is switched off in Chatters or can’t be reached, the native shoutout is attempted immediately instead and quietly skipped if Twitch says it’s too soon.
Duplicate chat deliveries are ignored, and cooldowns are tracked per user, so a chatty friend is greeted exactly as often as you configured.
AutoMod suggestions (Partner and above)
Section titled “AutoMod suggestions (Partner and above)”The AutoMod Suggestions tab uses AI to propose AutoMod tuning, based on what actually happens in your chat.
- Turn on Capture AutoMod events into the suggestion pipeline. Modomation starts recording 12 kinds of moderation event: AutoMod holds and their outcomes, AutoMod settings and term-list changes, deleted messages, the chatter-side notices of held messages and their outcomes, moderator actions (bans, timeouts, deletions, warnings and more), warnings sent and acknowledged, and suspicious-user messages and updates. Turning capture on asks for the
moderator:manage:automodpermission — the broadcaster is sent to Twitch to approve it if it’s missing. - While capture is on, the card shows how many events were captured in the last 7 days against the 20-event minimum, and when suggestions last ran.
- Once a day (06:00 UTC), if at least 20 events were captured in the last 7 days, AI reviews them alongside your current AutoMod settings and blocked terms and proposes changes: raising or lowering a category level, adding or removing a blocked term, or enabling or disabling a moderation feature. Ideas below 60% confidence are dropped, and the same suggestion isn’t added twice.
Each suggestion shows its kind, target, the current → suggested value, the reasoning (expand long ones with show more), and how long ago it was made. Suggestions are advisory — apply a change yourself using the Twitch settings ↗ link, then Snooze the suggestion (1, 7, or 30 days) or Dismiss it. The Snoozed and Dismissed views list those, each with Restore; a snoozed suggestion also returns to Pending on its own when the snooze ends.
Capture can be switched on at any tier, but suggestions are generated only on Partner and above. Each run uses your channel’s daily AI token allowance (shared with the AI module and other AI features) and is skipped on a day the allowance is used up, or when your AutoMod settings can’t be read. Captured events and dismissed suggestions are deleted after 30 days.
Search
Section titled “Search”Redemption rules and channel event rules appear in the dashboard command palette (Cmd/Ctrl-K) under Modomation · Redemptions and Modomation · Events, matched on the reward or event name and the message text.
Configuration
Section titled “Configuration”Open Modomation in the dashboard sidebar:
- Channel Redemptions — redemption rules and per-rule counts.
- Redemption Tracking — tracking switch, mode, tracked rewards, leaderboard.
- Channel Events — the Snooze next ad on raid switch and stream/channel event rules.
- Follows, Subs & Bits — follower, sub, gift, resub, cheer and hype train rules.
- Polls & Predictions — poll and prediction rules.
- User Management — VIP commands switch and settings, VIP list, Grant VIP, audit log.
- Auto Shoutouts — enable switch, native shoutout default, message variants, default cooldown, the user list and per-user overrides.
- AutoMod Suggestions — capture switch and suggestion review.
Who can change what: the broadcaster and Lead Mods can change everything; regular moderators can view every tab but not change settings. In chat, regular moderators can use the VIP commands only when Mods can use VIP commands is on.
API and endpoint reference
Section titled “API and endpoint reference”See Modomation — API endpoints for the full list of HTTP endpoints.
Auth reference
Section titled “Auth reference”See Modomation — Authentication & permissions for the OAuth scopes this module uses and the EventSub subscriptions it registers.
Share Feedback
Need help or want to chat? Join our Discord to get support, report bugs, and talk with other streamers.▸ What we're sending
| Module | — |
| Page | — |
| Browser | — |
| Screen | — |
| Channel | anonymous |
| Submitted | — |