Skip to content

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.

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

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:

  1. Open Modomation → Channel Redemptions and click + Add Rule.
  2. 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.
  3. Write the message — for example @$(user) has redeemed this $(count) time(s)! — and save.
  4. 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.

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.

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.

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 train rules can fire at the start, on each progress update, and at the end.

  • $(type) — the train’s type as Twitch reports it (regular unless 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.

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 shows 0.
  • $(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; 0 when the poll ended with no votes.
  • $(total_votes) — the sum of every choice’s votes (0 when 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 / archived for polls, resolved / canceled for 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.

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:ads permission. 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.

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:vips permission, 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.

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
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.
  1. Open Modomation → User Management and click Show settings.
  2. Tick Auto-grant VIP at sub tier.
  3. 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.)

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.

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.

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.

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.

  • 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.

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.

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.

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) 💜.

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.

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.

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.

The AutoMod Suggestions tab uses AI to propose AutoMod tuning, based on what actually happens in your chat.

  1. 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:automod permission — the broadcaster is sent to Twitch to approve it if it’s missing.
  2. 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.
  3. 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.

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.

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.

See Modomation — API endpoints for the full list of HTTP endpoints.

See Modomation — Authentication & permissions for the OAuth scopes this module uses and the EventSub subscriptions it registers.