Overview
VMSC integrates with Twitch through the EventSub system, providing real-time notifications for 24 distinct event types. Authentication is handled entirely through OAuth using VMSC's own registered Twitch application — you never need to create a Twitch Developer account, register an application, or manage Client IDs.
Once connected, VMSC automatically maintains your session across launches with token refresh, detects your live/offline status, and surfaces connection health on the dashboard.
VMSC uses its own built-in Twitch application for authentication. You do not need to create a Twitch Developer application, generate Client IDs, or configure redirect URIs. Just click "Login with Twitch" and you are ready to go.
Prerequisites
- A Twitch account (the account you stream from or want to monitor events for)
- VMSC installed and running on your machine
No additional software, API keys, or tokens are required.
Step-by-Step Connection
- Open VMSC and navigate to the Sources panel from the sidebar
- Locate the Twitch source card and click it to expand the settings
- Click the "Login with Twitch" button
- A browser window opens with the Twitch OAuth authorization page
- Review the permissions requested and click "Authorize" to grant VMSC access
- The browser redirects back and VMSC confirms the connection with a success message
- The Twitch status card on the dashboard updates to show Connected
After the initial login, VMSC stores your OAuth tokens securely and refreshes them automatically. You will not need to log in again unless you explicitly revoke access or your tokens are invalidated.
Auto-Connect on Launch
Once you have logged in at least once, VMSC automatically reconnects to Twitch every time you launch the application. The stored OAuth token is refreshed silently in the background, and all EventSub subscriptions are re-established without any user interaction.
If the token refresh fails (for example, if you changed your Twitch password), VMSC prompts you to log in again.
Supported EventSub Events
VMSC subscribes to 24 EventSub event types, covering the full range of stream interactions. Each event can be used as a trigger in your rules and actions.
| Event | Description | Key Data |
|---|---|---|
| Chat Message | A message is sent in your Twitch chat | Username, message text, badges, emotes |
| Follow | A user follows your channel | Username, timestamp |
| Subscribe | A user subscribes to your channel | Username, tier (1/2/3), message |
| Subscription Gift | A user gifts subscriptions to the community | Gifter, total gifts, tier, recipient count |
| Bits / Cheer | A user cheers with Bits | Username, bit amount, message |
| Raid | Another broadcaster raids your channel | Raider username, viewer count |
| Channel Point Redeem | A viewer redeems a channel point reward | Username, reward name, user input, cost |
| Poll Start | A poll begins on your channel | Poll title, choices, duration |
| Poll Progress | Votes are cast on an active poll | Current vote counts per choice |
| Poll End | A poll concludes | Final results, winning choice |
| Prediction Start | A prediction begins | Title, outcomes, lock window |
| Prediction Progress | Users place prediction bets | Point totals per outcome, participant count |
| Prediction Lock | Prediction entries are locked | Final point totals, locked outcomes |
| Prediction End | A prediction is resolved | Winning outcome, payout information |
| Hype Train Start | A Hype Train begins on your channel | Level, goal, contributors |
| Hype Train Progress | The Hype Train advances | Current level, progress toward next level |
| Hype Train End | The Hype Train concludes | Final level reached, top contributors |
| Ad Break | An ad break starts on your channel | Duration (seconds), scheduled vs. manual |
| Shoutout Create | You send a shoutout to another broadcaster | Target broadcaster, viewer count |
| Shoutout Receive | Another broadcaster sends you a shoutout | Source broadcaster, viewer count |
| Ban | A user is banned or timed out in your channel | Username, moderator, reason, duration |
| Charity Donation | A viewer donates to your active charity campaign | Username, amount, currency, campaign name |
| Stream Online | Your stream goes live | Stream title, game, timestamp |
| Stream Offline | Your stream ends | Timestamp |
Channel Point Rewards
When configuring a rule triggered by a Channel Point Redeem event, VMSC provides a searchable dropdown of all your channel point rewards. This list is fetched from your Twitch channel when you connect and is kept up to date automatically.
Simply start typing the reward name in the dropdown to filter results, then select the specific reward you want to trigger on. This eliminates the need to type reward names manually and prevents errors from typos or case mismatches.
Per-Event Structured Settings
Many Twitch events support additional filters that let you narrow down exactly which occurrences trigger your rules. These filters are configured per-event within each rule.
| Event | Available Filters |
|---|---|
| Subscribe | Tier filter (Tier 1, Tier 2, Tier 3, or any) |
| Bits / Cheer | Minimum amount, maximum amount |
| Raid | Minimum viewer count, maximum viewer count |
| Subscription Gift | Minimum gift count, maximum gift count, tier filter |
| Channel Point Redeem | Specific reward selection (searchable dropdown) |
| Charity Donation | Minimum amount, maximum amount |
For example, you could create a rule that only fires when someone cheers 500 or more Bits, or only when a Tier 3 subscription occurs. These filters are optional — leaving them blank matches all occurrences of that event.
Live / Offline Detection
VMSC monitors your stream status through the Stream Online and Stream Offline EventSub events. This provides accurate, real-time detection of when your stream starts and ends.
When EventSub is active but your stream is not live, the dashboard displays a "Waiting for stream" state. This indicates that the connection to Twitch is healthy and VMSC is ready to process events as soon as you go live.
| Status | Indicator | Meaning |
|---|---|---|
| Disconnected | Gray | Not connected to Twitch. Click "Login with Twitch" to connect. |
| Waiting for stream | Yellow | Connected to Twitch EventSub, but your stream is not currently live. |
| Live | Green (pulsing) | Your stream is live and VMSC is receiving events. |
| Error | Red | Connection failed. Check the error message for details. |
Dashboard Status Card
The Twitch connection is represented by a dedicated status card on the VMSC dashboard. This card displays:
- Current connection state (Disconnected, Waiting, Live, Error)
- Your Twitch username and profile image
- Stream title and game category (when live)
- Number of active EventSub subscriptions
- Uptime since the current connection was established
The status card updates in real-time and provides a quick visual overview of your Twitch integration health.
Troubleshooting
OAuth Login Fails or Times Out
- Make sure your default browser is not blocking pop-ups from VMSC
- Check that you are logged into the correct Twitch account in your browser
- If the authorization page does not load, try clearing your browser cache and attempting again
Connected But Missing Events
- Verify that your stream is live — most events only fire during an active broadcast
- Check the dashboard status card to confirm the EventSub subscription count matches expectations
- Some events (like Hype Train) require specific channel conditions to trigger
Token Refresh Errors
- If VMSC cannot refresh your token, you may need to re-authorize by clicking "Login with Twitch" again
- Revoking VMSC's access from your Twitch Settings > Connections page will invalidate all tokens
Twitch enforces limits on the number of concurrent EventSub subscriptions per application. If you encounter subscription errors, check that no other tools are consuming your EventSub quota.
Next Steps
With Twitch connected, you can begin creating rules that respond to your stream events:
- First Setup — Create your first rules and actions
- Rules & Actions — Full event type reference and configuration
- In-App Tutorial — Let V.I.T.R.O. walk you through everything