A linked group brings together several channels, on any servers and any platforms: Discord, Fluxer, Stoat and Twitch chat. A message written in one of the channels shows up in all the others, with its author's name and avatar, as if they were there.
Linked channels are set up on the website only (your server's page, Linked channels menu) and in the Android app (same screens). There is no bot command.
Replaces the Twitch chat bridge
Linked channels replace the old Twitch chat bridge. Existing bridges were converted automatically: each one became a " ↔ " group of two channels, with the same direction, the same "live only" option and the same filters. You have nothing to redo.
An example
Corentin links in one group:
- the
#generalof his "Dispatch.IO Support" server on Discord; - the
#generalof the same server on Fluxer and on Stoat; - his channel's Twitch chat;
- the
#generalof "Les Pilotes", the Discord server of his friend Paul, who joined the group with an invite code.
Paul writes "Hi everyone" on Discord. Here is what the others see:
| Where | What shows up |
|---|---|
| Fluxer | "Paul · Discord", with Paul's avatar |
| Stoat | "Paul · Discord", with Paul's avatar |
| Corentin's Discord server | "Paul · Les Pilotes" (the name of Paul's server, see the FAQ) |
| Twitch chat | [Discord] Paul: Hi everyone |
When someone answers from Twitch, their message reaches the four servers as "Name · Twitch", with their Twitch profile picture.
Creating a group
- On the website (or in the app), open your server's page, then Linked channels › Create a group.
- Give the group a name and a description.
- Pick the channel of this server that will be part of the group.
- Set the options (see below). You can change them at any time.
The server that creates the group is its owner: its managers run the group, and its premium limits apply to the group (number of channels, file size).
The Linked channels list of your server shows the groups created and joined, the state of each channel and your quota.
Inviting servers
Other servers, yours or other people's, are added with an invite code. On the group's page, Invites part:
- create a code in the
XXXX-XXXXformat; - pick its duration (1 hour, 1 day, 7 days or never) and its number of uses;
- copy it and send it to the manager of the server to invite;
- you can revoke a code at any time.
Approval: with the group's "approval" option, a join request waits for the approval of the owner or of a group moderator. Pending requests show up in the Invites part, to accept or decline.
Tip
For a group between communities you don't know well, turn on approval and hand out single-use codes.
Joining, leaving, removing a server
Joining: a manager of the joining server opens Linked channels › Join with a code, enters the code, then picks the channel of their server. If the group requires approval, the channel is linked as soon as the request is accepted.
Leaving: a server can leave a group at any time, from the Linked channels list of its server. Its messages are no longer relayed, and it no longer receives the others'.
Removing a server: the owner can remove a server at any time from the Members part of the group's page.
If the owner leaves the group or removes the bot from their server, the group goes to the oldest moderator; if there is none, the group is deleted. The managers of the other servers get a notification.
Group options
| Option | Effect |
|---|---|
| Direction (per channel) | Sends and receives (default), receives only (handy for an announcements channel) or sends only |
| Live only (Twitch channel) | The Twitch chat is only linked during your streams, like the old bridge |
| Slowmode | A person can only get one message relayed every N seconds |
| Links | Allowed or blocked |
| Server invites | Blocked by default (Discord, Fluxer, Stoat invite links) |
| Files | Allowed or not (images and attachments) |
| NSFW | An NSFW group can only contain channels marked NSFW: a Twitch chat can't join it |
| Dispatch.IO filters | On by default: the banned words of the origin server are applied before sending, those of each destination server on arrival |
Each server also keeps its own sanctions and filters: a member under a sanction on their server is not relayed.
What messages look like
Each platform shows messages its own way. The displayed name is always "Name · Platform", so everyone knows where the message comes from.
| Discord | Fluxer | Stoat | Twitch | |
|---|---|---|---|---|
| Identity | The channel's webhook, author's name + avatar on each message | The channel's webhook, author's name + avatar | Bot message "masqueraded" with the author's name + avatar | Text: [Discord] Paul: message |
| Displayed name | Paul · Fluxer | Paul · Stoat | Paul · Discord | [Platform] prefix |
| Length | 2,000 characters, split into several messages | 2,000 | 2,000 | 500, split into 2 parts at most, then "…" |
| Images and files | Re-uploaded | Re-uploaded | Re-uploaded | A link |
| Replies | Quote line ↪ Paul: start of the message… + link | Quote line | Real reply | Real reply if the target message is in the chat, otherwise a quote |
| Edits | Followed | Followed | Followed | Ignored (Twitch can't edit a message) |
| Deletions | Followed | Followed | Followed | Followed |
| Reactions | Copied by the bot | Copied | Copied (if reactions aren't restricted in the channel) | None |
The name comes from the server nickname, otherwise the display name, otherwise the username. It is cut to fit the platform's limit (32 characters on Stoat, 80 on Discord and Fluxer).
The avatar is the author's avatar on their platform (or their Twitch profile picture). Without one, it is the default avatar of their platform.
Reactions: a copy only carries one bot reaction per emoji, without a count. The emoji is added on the copies as soon as someone puts it anywhere, and removed when nobody has it anywhere any more. Unicode emojis work everywhere; a custom emoji is only copied if the bot can use it on the destination platform.
Custom emojis in the text are kept if the bot can use them on the destination, otherwise they become :name:.
Files are re-uploaded (never a bare link, because Discord and Fluxer file links expire) if they fit in the group's limit and in the destination platform's. Otherwise a line replaces them: 📎 name.ext (12 MB) — too large to be relayed, with a link to the original message. Stickers are converted into an image.
A webhook can't reply to a message: a reply shows with a quote line above it (↪ Paul: start of the message… and a link to the quoted message). Discord also shows the APP badge next to the name (see the FAQ).
Like on Discord: the channel's webhook (the one of the message studio), replies as a quote line, app badge next to the name.
Copies are bot messages with a replacement name and avatar (Stoat's masquerade). Replies are real Stoat replies, and the bot edits or deletes its copy when the original changes.
Twitch chat has no per-message name or avatar: each copy is written by Dispatch.IO as [Discord] Paul: message, cut at 500 characters (2 parts at most, then "…"). Images and files become a link. Edits and reactions don't go through; deletions do, because the bot is a moderator of your channel.
What is never relayed
- messages from bots and webhooks, including the copies made by Dispatch.IO (this is what prevents loops);
- system messages: joins, pins, boosts;
- the embeds and components (buttons, menus) of a message. A link preview is generated again by the destination platform;
- messages from someone banned from the group or under a sanction on their server.
Mentions are neutralised: no copy can notify anyone.
@everyone,@hereand role mentions are disabled;- a user mention becomes plain-text
@Name; - a channel mention becomes
#name.
Moderation
Group roles:
- the owner: the managers of the server that created the group;
- the group's moderators, picked among Dispatch.IO accounts (Moderators and bans part of the group's page).
Group ban: from the log or the Moderators and bans part, with a reason and a duration. The banned person is no longer relayed, wherever they write in the group. If they have a Dispatch.IO account with several linked platforms (for example Discord and Twitch), the ban covers all their linked platforms.
Deleting a message:
| Who deletes | What disappears |
|---|---|
| The author deletes their message | Every copy |
| A moderator of a server deletes a copy on their server | Only that copy |
| A group moderator uses "Delete everywhere" in the log | The message everywhere |
Group log: the messages of the last 7 days (author, platform, server, excerpt), with Delete everywhere and Ban from the group. Each server can also receive the relay.* events in its logs (message deleted everywhere, ban, server added or removed): see Logs settings.
Anti-spam:
- beyond 5 messages in 5 seconds per person, their next messages are not relayed for 30 seconds;
- if a channel goes faster than a destination platform accepts (a Twitch chat, for example), messages are grouped, then dropped with a counter: "+12 messages not relayed".
Between different communities
Any server that has a code can come in. If a server comes to spam: remove it from the group, ban the authors, turn on slowmode and approval.
Bot permissions
The bot needs these permissions in the linked channel. If one is missing, the channel is paused (see the FAQ).
View Channel, Manage Webhooks, Send Messages, Attach Files, Add Reactions, Read Message History.
View Channel, Manage Webhooks, Send Messages, Attach Files, Add Reactions, Read Message History.
View Channel, Masquerade, Send Messages, Upload Files, React.
Dispatch.IO must be a moderator of your channel (/mod Dispatch.IO), as for its other moderation features: this is what lets it delete the copies when a message is deleted elsewhere. See Dispatch.IO on Twitch.
Free and Premium
Limits are counted per server (a Twitch channel counts as a server).
| Per server | Free | Premium |
|---|---|---|
| Groups created | 1 | 10 |
| Channels per group (owner's limit) | 3 | 25 |
| Groups joined | 2 | 10 |
| Max. size of a relayed file | 8 MB | 25 MB |
| Log | 7 days | 7 days |
A group whose owner loses premium keeps its channels, but no longer accepts new ones beyond the free limit. These limits replace those of the old Twitch chat bridge (1 free, 3 premium). See Premium plans and limits.
FAQ
Why do relayed messages have an "APP" badge?
On Discord and Fluxer, copies are sent by a webhook, and these platforms always show a badge ("APP" or "BOT") on webhook messages. On Stoat, a masqueraded message can be marked too. It can't be avoided, and it shows that the message is a copy.
Why do I see a server's name instead of "Discord"?
Discord refuses webhook names that contain "discord" (or "clyde"). A message coming from another Discord server therefore shows on Discord with its server's name: Paul · Les Pilotes instead of Paul · Discord. For the same reason, these words are slightly changed in usernames (d1scord). On Fluxer, Stoat and Twitch, the platform shows normally.
Why is my channel "paused"?
A channel is paused when it was deleted or when the bot no longer has the permissions it needs. Its messages are no longer relayed, the server's managers get a notification and the group's page shows the problem. Give the bot back the permissions of the "Bot permissions" section, or pick another channel.
Can someone pretend to be someone else?
A username can look like another, but the platform (or the server) is always shown next to the name, and copies carry the app badge. In case of abuse, ban the person from the group.
Is an edit made on Twitch relayed?
Twitch can't edit a message, so there is nothing to relay. An edit made elsewhere isn't carried over to Twitch either; a deletion is.
How long is my data kept?
Messages posted in a linked channel are copied to the other servers of the group, where they follow those servers' rules. Dispatch.IO keeps the author, platform, server and an excerpt of each message in the group's log for 7 days, for moderation. See the privacy policy.
Related pages
- Dispatch.IO on Twitch: add the bot to your channel and make it a moderator.
- Premium plans and limits: every limit per plan.
- Logs settings: receive the
relay.*events. - Anti-raid and security: each server's filters and sanctions.