Extensions

Extend LioranBoard's functionality with our community made extensions.

Discord-Twitch Relay

Developed by:
Rating | Social | views

Overview

Discord Relay is an extension for LioranBoard capable of relaying messages between Twitch chat and Discord.

Features:

  1. Forwards all your Twitch chat channel messages to your selected Discord channel. Can display user profile pictures, badge and color name in the relayed messages. Forwarded messages can be displayed either as embed (with profile pictures shown) or text only.

  2. Forwards all Discord messages to your Twitch chat. You can select only specific Discord channels to listen to.

  3. Discord chat triggers - you can trigger buttons in LioranBoard via Discord channel messages. Discord roles can be converted to Twitch chat badges, so you can set up triggers for your mods, subs etc., all directly triggered from your Discord channel. Supports wild cards and Math:trigger pull command too.

  4. Custom emojis - retrieves your Discord custom emojis. You can match them to your Twitch emotes, and they will get automatically converted when relaying messages from Twitch to Discord.

5.Ignore list - choose which user messages will not be relayed at all. For example, you can exclude your bots.

You can choose to open the relay or it can just listen to your Discord messages for triggers without relaying them.

Stable and efficient, tested with over 800 relayed messages with 0 loses (assuming you have a stable internet connection).

How it works
The extension utilizes both Discord webhook and Discord websocket (which you connect to with a bot token). Your Discord websocket is listening to all Discord chat messages and tells the extension to relay them to your Twitch chat (by using the already existing connection in your Transmitter).
The extension listens to all Twitch chat messages, fires a Discord webhook every 2 seconds and posts them in your Discord channel as either embeds or plain text.
Since the Discord websocket already listens to all your Discord messages, I implemented a feature that automatically converts them to the same payload Twitch chat uses and sends them to LioranBoard. This means you can use chat triggers from Discord in your LioranBoard. You can also configure which Discord server roles correspond to specific Twitch badges (broadcaster, mod, subscriber, vip).
When the relay is open, it automatically starts storing and regularly updating all your current Twitch chatters profile image URLs. It can then display their icon in the relayed messages on Discord.
I have also set up a simple AWS API service which can retrieve all your Discord server emojis and save them into .ini file (this cannot be done from your Transmitter due to CORS and Cloudfare blocking the access). This helps the extension to convert Twitch emojis to Discord emojis and correctly display them when relaying messages from Twitch.


Special thanks goes to:
SteveLevesque and Djargic for their continued support on Github.
The Argamenmock, EndoSkull, Evan, Panic, DoctorFu, kurocha, Stephen, Ethan, griddark, Kenny, Mill, William, Paul, deaffrasier, Venge, PapaBear Does Stuff, TTarantox, Rodrigo, Harvey Toadface, Alchemy_03, REVAMPEDDRDTH37 Williams, RhinoMonsterGC, JimmyPotato, Bryan, my amazing Patrons!

If you would like to support me in creating more extensions for LioranBoard, you can navigate to the Donate section.

Need a custom tailored extension? Head to the Commissions section!

DISCLAIMER: The extension is provided as is. The developer has no obligation to provide maintenance and support services or handle any bug reports.
Feel free to edit the extension for your own use. You may not distribute, sell or publish it without the author’s permission.


Additional Information
Version 1.0 Requires LioranBoard 1.4^ Stream Platform Twitch/Discord Updated March 22, 2021
Setup
  1. Install the extension. You can follow the Extension Install Guide.
  2. You should see a new premade deck in your Receiver. We will need to edit all the values in the Set params button. Right click on the button - Edit commands:
    • Fill out your Twitch channel name (example: Dashducks)
      This is where all the Discord messages will be sent to. This is also the channel our relay will be listening to and relaying messages to Discord. You have to be already connected to it (use Twitch: Join Channel command if needed).
    • Enable developer mode in Discord:
      Open your Discord settings (the next to your name at the bottom left) and click on Appearance. There you will find Developer Mode. Click the toggle to enable it.
    • Retrieve your Discord server ID
      Right click on the sidebar icon of your server - copy ID and paste it in the dc_server value.
    • Create a webhook for the Discord channel you want to relay Twitch chat messages to
      Right click on channel - Edit channel - integrations - Create Webhook. Copy its URL and paste it in the dc_webhook value.
    • Create an application in Discord Developer Portal
    1. Open this link: https://discord.com/developers/applications.
    2. Click on ‘New Application’ button.
    3. Give it a name.
    4. After it is created, click on Bot in the left side menu. Click on Add Bot button and click on Yes, do it! button.
      If you get ‘Too many users have this username, please try another.’ error, try changing your application name to something less generic.
    5. Once your bot is created, click on Click to reveal token link, copy the token and paste it in the bot_token value in your Set params button. All other settings should be left at default.
    6. Click on ‘OAuth2’ in the side menu and check bot in the scopes list. This will open up a new menu below where you need to check Read Message History. Remember this is only for reading messages, so your bot does not need any other permissions.
    7. Scroll up a bit and click on Copy. Open the link in a new browser window and invite the bot to your Discord channel. You can restrict your bot to only see certain channels, otherwise it will be relaying messages from all the channels it can see on your server.
      • Click Done in your button commands screen and again Done in your deck
        You can now (optionally) modify roles and ignore button and retrieve your Discord emojis (read below). Once you’re done editing those, you can press the set params button. It should now be initiated every time you connect to the Transmitter, so you will only need to manually open the relay connection.

Roles
This button stores the relation between your Discord roles and Twitch badges (broadcaster, mod, sub etc.).
What is it for? This extension can convert your Discord posts to regular Twitch chat triggers you use in LioranBoard.
Right click on the button - Edit commands. There are already pre-filled values including broadcaster, mod, subscriber and vip. All you need to do is change the role ID. Do not modify anything else. You can retrieve your role ID by going to your Discord server settings - Roles, right clicking on the role name and pressing ‘Copy ID’ button. Replace the pre-filled ID with your own. Make sure to keep the formatting: badgename:ROLEID

Ignore
You can add any names you do not want to relay the messages from. For example, you might not want to relay messages from your bot accounts.

Discord Emojis
This button should retrieve all your custom Discord emojis and save them in DiscordEmojis.ini file in your Receiver folder. If your Twitch viewers use any of the same emojis in the Twitch chat, they will be auto converted and properly displayed in your relayed messages to Discord.
Do not edit anything in this button. Simply press it and it should do all the work for you. If you decide to make any changes in your .ini file, do not press the button again as it will override any changes you made.\

  • If your Twitch emojis do not match the Discord ones (= they have a different name), you can open the DiscordEmojis.ini file and manually edit the Twitch emojis part.
    For example, you have a subscriber emoji on Twitch called RamsreLord, but your Discord custom emoji’s name is RamsreFish. After pressing the button and opening the DiscordEmojis.ini file, the emoji will be stored as RamsreFish=RamsreFish:EMOJIID. You want to change the first RamsreFish to RamsreLord as this is the Twitch emoji name which the extension will look for to replace it with the Discord emoji ID.

IMPORTANT: The API cannot see Discord emojis you did not upload yourself manually. If your Discord server emojis come from linking your Discord to your Twitch channel, they will not show up in the list. You can fix this in two ways:

  1. Manually reupload all the externally linked emojis on your Discord server and press the Discord Emojis button again. They should now all show up in your DiscordEmojis.ini file.
  2. Manually change the DiscordEmojis.ini file to add your externally linked emojis. You can watch a video guide or follow the instructions below:
    1. In your Discord server, insert the emoji you want to add in the message window, type :\ before the emoji and hit enter. The emoji will be displayed as <:EMOJI_NAME:ID>.
    2. Add a new category (if it doesn’t exist already) [default_emojis] to your DiscordEmojis.ini file.
    3. Add a new line to your DiscordEmojis.ini file in this format: [number]="TWITCH_EMOJI_NAME=DISCORD_EMOJI_NAME:DISCORD_EMOJI_ID". (remember to start from 0)
    4. Add or change size to reflect the amount of new emojis you added. For example, size="1" if you have a single emoji.
    5. Save the file.
    6. Restart your Transmitter or press relay close, set params and open relay button again.
    7. Your newly added emojis should now be correctly displayed.

Relay Open
Pressing this button will connect you to Discord and start relaying messages between Discord and Twitch.
You should see a yellow notification message Connected to Discord! Listening to messages (you can also check the connection status in your Transmitter - Discord Relay tab).
Please note that you need to be already connected to Twitch chat with the channel you specified in your Set Params button. If you click on the button - Edit commands, you can edit the following values:

  • status - enable, disable, triggers only
  • oauth_token - your Twitch token. Should be already pre-filled, no need to change it.
  • discord_trigger - whether you want to enable Discord chat message triggers
  • discord_mode - pretty (each relayed Twitch chat message will be embed displaying the viewer’s profile picture and the sidebar will match the user’s Twitch color) vs. simple (all relayed messages are posted as plain text).

There’s a limit to how many messages and embeds the webhook can send. If your Twitch chat gets spammed with a lot of messages, it will automatically switch to simple mode to keep up.

Relay Close
Pressing this button will disconnect you from Discord and stop relaying messages.

Relay Trigger Only
Pressing this button will connect you to Discord and start listening to Discord chat triggers only (will not relay messages). These triggers will be converted to your regular Twitch chat triggers (including roles converted to badges, so you can make a button that only a ‘mod’ role can trigger). There is a ‘!test from Discord’ button to demonstrate how to use it. Just type !test in your Discord channel after pressing the button and it should trigger it. This acts like a regular Twitch chat trigger and supports both wild cards and Math: Trigger pull command.

If you use ‘Relay Open’ or ‘Relay Trigger only’ button, you should see your Discord bot online in your server. That means it is ready and listening to messages. You can restrict your bot to only see certain channels by manually removing its channel read permissions, otherwise it will be relaying messages from all the channels it can see.

Privacy Policy
This developer has disclosed that it will not collect or use your data.
Additional information provided by the developer

This extension uses a custom API to retrieve your Discord emoji and sends it back to LioranBoard. It does not store any of your data you share with it.


This developer declares that your data is:

  • Not being sold to third parties.
  • Not being used or transferred for purposes that are unrelated to the extension's core functionality
  • Not being used or transferred to determine creditworthiness or for lending purposes

Reviews

Coming soon!