Discord module
Twitch notifications
A stream announcement has a very short shelf life.
No Administrator permission required. Set it up in the web dashboard.
What this is for
Whoever reads it once the stream is long over will not click, and next time they will not even read it. That is exactly where announcing by hand falls apart: you are in the game, in a conversation, in the zone, and nobody thinks about typing a line into Discord at that moment. The bot takes over that one small job and does it reliably. It checks whether your Twitch channel is on air and puts out the message while it is still worth something, with the title and the game that is actually running.
What it looks like day to day
You store your Twitch name, pick the Discord channel for the message and enter who should be pinged when you go live: a role ID, @everyone, @here or nobody. From then on it runs without you. Every three minutes the bot asks Twitch, and as soon as a stream is running the message is in the channel. Stream title, game and viewer count come into the embed through placeholders: {streamer}, {title}, {game}, {viewers}. Add to that the streamer avatar as the small picture, the stream preview as the large one and a button leading straight to the channel. Change game or title mid-stream and the bot updates the message it already posted instead of sending a second one.
Commands in this module
/social
What you can configure
- Twitch channel
- Discord channel for live alert
- Role mention
- Text above the embed
- Embed title
- Embed description
- Footer
- Embed color
- Thumbnail (streamer avatar)
- Large preview image (stream)
- Show timestamp
- "Watch on Twitch" button
- Auto-update on title/game change
What to watch out for
The most important point is not in the dashboard: Twitch only answers if credentials for the Twitch interface are stored server-side. Without them the bot finds nothing and stays quiet. /social status tells you plainly whether they are there. Second, the mention: @everyone for every stream is the shortest path to people muting the channel. A role people pick up themselves reaches exactly those who want to hear it. Third, the cadence: the check runs every three minutes, so the message may arrive a few minutes after you switch on. That is by design, not a fault. Do not also announce by hand, or both end up sitting there. And fourth: if your connection drops mid-stream and you restart, Twitch counts that as its own stream. The bot then posts a second time, because it sees a new stream ID. One last small thing with a large effect: if either of the two required fields is missing (Twitch name or target channel), the module does nothing at all, and it does not complain about it either.
How the module works
Your Twitch username (or the channel URL). The bot checks every few minutes whether this channel is live.
Choose the channel where the live notification is posted (dropdown once channels are loaded).
Free text above the embed (the role mention is prepended automatically). See placeholders below.
Empty = automatic title. Placeholders: {streamer} {title} {game} {viewers}
Placeholders: {streamer} {title} {game} {viewers} {url} {thumbnail}
Set up in three steps
- Turn on the “Twitch” module in the dashboard and enter your Twitch name or channel URL.
- Pick the Discord channel for the live message: a text or announcement channel the bot may write in.
- Set the mention: type a role ID, @everyone or @here and confirm with Enter, or leave the field empty.
- Adjust the embed to taste and fire one trial run with /social test → Twitch Live.
Frequently asked questions
Run /social status. If it says the Twitch credentials are missing, the bot cannot even ask Twitch; those are set server-side by whoever runs the instance, not by you in the dashboard. If your name and the target channel show up instead, check that it is a text or announcement channel and that the bot may write there.
The bot asks Twitch every three minutes. In the worst case just under three minutes pass between the start and the message. It does not get quicker, but it happens every single time without you lifting a finger.
Yes. Title, description, footer and the text above the embed are free; with {streamer}, {title}, {game}, {viewers}, {url} and {thumbnail} you pull the real stream data in. Colour, timestamp, avatar, preview image and the button can each be switched on or off. Leave title and description empty and the bot inserts its own version.
Nothing. The bot defuses mentions in values that come from outside, and the stream title is one of them. An @everyone in there stays readable but triggers no notification. The only thing that pings is what you entered as the mention yourself.
Why is there no message even though I am live?
Run /social status. If it says the Twitch credentials are missing, the bot cannot even ask Twitch; those are set server-side by whoever runs the instance, not by you in the dashboard. If your name and the target channel show up instead, check that it is a text or announcement channel and that the bot may write there.
How fast is the message after switching on?
The bot asks Twitch every three minutes. In the worst case just under three minutes pass between the start and the message. It does not get quicker, but it happens every single time without you lifting a finger.
Can I write the whole text myself?
Yes. Title, description, footer and the text above the embed are free; with {streamer}, {title}, {game}, {viewers}, {url} and {thumbnail} you pull the real stream data in. Colour, timestamp, avatar, preview image and the button can each be switched on or off. Leave title and description empty and the bot inserts its own version.
What happens if a ping sits in the stream title?
Nothing. The bot defuses mentions in values that come from outside, and the stream title is one of them. An @everyone in there stays readable but triggers no notification. The only thing that pings is what you entered as the mention yourself.