Flectone Logo FlectonePulse

Twitch

Integration with Twitch

Allows:

  • sending messages from Hytale to Twitch
  • sending messages from Twitch to Hytale
  • subscribing to the start of a Twitch broadcast

twitch message
minecraft message

Message Types

Any module that sends a message also has its own type, which can be found here

TypeExplanation
ADVANCEMENTAdvancement message
DEATHDeath message
MESSAGE_CHAT_GLOBALMessage from global chat
MESSAGE_CHAT_LOCALMessage from local chat
SERVER_ENABLEServer enable message
SERVER_DISABLEServer disable message
......
Note

If you have your own chats with custom names, for example admin, you will need to specify MESSAGE_CHAT_ADMIN. If you have your own groups from the vanilla module, you need to specify their name


🌍 Localization

Path localizations → language.yml → integration.twitch
twitch:
  null_player: "This player does not exist"
  sender_name: "Twitch"
  format_reply: "<fcolor:4><hover:show_text:'<fcolor:4><reply_message>'>[Reply to @<reply_user>]</hover> "
  custom_command:
    ping: "<player>'s ping is <replacement:ping>"
  message_channel:
    INTEGRATION_TWITCH: "<fcolor:2><name> <fcolor:1>» <fcolor:4><reply><message>"
    MESSAGE_CHAT_GLOBAL: "<final_message>"
twitch:
  null_player: "Игрок не найден"
  sender_name: "Twitch"
  format_reply: "<fcolor:4><hover:show_text:'<fcolor:4><reply_message>'>[Ответ на @<reply_user>]</hover> "
  custom_command:
    ping: "Пинг игрока <player> равен <replacement:ping>"
  message_channel:
    INTEGRATION_TWITCH: "<fcolor:2><name> <fcolor:1>» <fcolor:4><hover:show_text:'<fcolor:4><reply><message>'"
    MESSAGE_CHAT_GLOBAL: "<final_message>"

null_player

Message shown if the player entered via custom_command is not found

sender_name

Name of sender (of integration itself), which will be used, for example, in another integration for placeholders

format_reply

The message format for the <reply> tag when a message is a reply to another one

custom_command

A list of custom integration commands, where the key is the command name and the value is its message format

Example
custom_command:
  tps:
    content: "<tps>"

A command to get the tps value on the server. Don't forget to define it in integration.yml

Placeholders

You can use all the placeholders that are used in the initial Hytale message.

Example for a ban message

There is a <reason> placeholder there, which means I can use <reason> inside Twitch messages.

There are also placeholders that are GUARANTEED to be replaced in any message:

  • <final_message> the message sent to Hytale
  • <final_clear_message> the message sent to Hytale without unicode emojis
  • <player> the nickname of the player who sent the message
  • <message> the raw message written by the player
  • <plain_message> the formatted message written by the player
  • <reply> the formatted reply message; it will be empty if the main message is not a reply
  • Obviously, all placeholders from PlaceholderAPI and FlectonePulse will also work

A message sent from Twitch to Hytale has its own placeholders:

PlaceholderWhat it returns
<name>Twitch user's nickname

message_channel

A list of messages with the final message format

If you want to add another message:

Take the name from the message types list

Insert it into message_channel

message_name: "<final_message>"

⚙️ Setting

Path integration.yml → twitch
twitch:
  enable: false
  client_id: ""
  token: ""
  custom_command:
    ping:
      need_player: true
      aliases:
      - "!ping"
  message_channel:
    INTEGRATION_TWITCH:
    - "faseri4ka"
    MESSAGE_CHAT_GLOBAL:
    - "faseri4ka"
  follow_channel:
    faseri4ka:
    - "stream start https://twitch.tv/faseri4ka"
  destination:
    type: "CHAT"
  sound:
    enable: false

enable

Enables or disables the functionality of the module

Warning
  • Before enabling, insert your Twitch token and client ID
  • After enabling, it is RECOMMENDED to restart the server, otherwise the plugin may cause a hang

client_id

User ID. Environment variables can be used, e.g., ${VALUE}

client id

token

User token for connection. Environment variables can be used, e.g., ${VALUE}

token

custom_command

A list of custom integration commands; the key is the command name and can be anything. Commands can ONLY be informational; they do not and will not execute anything on the server.

ParameterExplanation
need_playerWhether to check the first argument of the command for a player name, e.g., !ping TheFaser
aliasesA list of aliases for using the command
Example
custom_command:
  tps:
    need_player: false
    aliases:
      - "!tps"
      - "!tickpersecond"

A command to get the tps value on the server using !tps or !tickpersecond. Don't forget to create the message in the localization file

message_channel

A list of message types and Twitch channel names

For example, I want Hytale `/ban` command messages to be sent to Twitch

Copy the Twitch channel names where the message should be sent (faseri4ka)

Configure it:

message_channel:
  COMMAND_BAN:
    - "faseri4ka"

There can be any number of channels, as long as the connected account has access to them. Localization configuration is optional; by default, the message will be sent with the <final_message> format.

follow_channel

A list where the key is the channel name and the value is a list of commands to be executed when the broadcast starts

For example, I want to track the start of a stream for `faseri4ka` and write `stream start https://twitch.tv/faseri4ka`

Copy the channel name faseri4ka

Configure it:

follow_channel:
  faseri4ka:
    - "stream start [https://twitch.tv/faseri4ka](https://twitch.tv/faseri4ka)"
  • Up to 10 channels can be tracked simultaneously, as long as the connected account has access to them
  • There can be any number of commands triggered at the start of the broadcast

destination

Where the message will be sent

TypeExplanationRequires additional configuration?
ACTION_BARMessage above the player's inventoryYes
CHATMessage to chatNo
TITLEFullscreen messageYes
SUBTITLEFullscreen message (top line)Yes
TOASTNotification in the bottom right cornerYes

sound

Sound playback


🔐 Permissions

Path permission.yml → integration.twitch
twitch:
  name: "flectonepulse.module.integration.twitch"
  type: "TRUE"
  sound:
    name: "flectonepulse.module.integration.twitch.sound"
    type: "TRUE"

name

Permission name

type

Permission type

TypeExplanation
TRUEAvailable to any player
FALSEAvailable to no one, must be granted separately (e.g., using LuckPerms)
OPAvailable to server operators
NOT_OPAvailable to NON-operators of the server

sound

Permission to use the sound

Last updated on

Edit on GitHub

On this page

Authors of page