Skip to Content

Broadcast

platforms.yml decides what a platform sends. Every block is independent, so Twitch can show a bossbar while YouTube does not.

platforms.yml
advertisement: twitch: enabled: true broadcast: chat: { } sound: { } title: { } actionbar: { } bossbar: { }

Any section with enabled: false is skipped.

Chat

Two layouts. layout: "head" renders the streamer’s head beside the text, anything else uses lines.

platforms.yml
chat: enabled: true layout: "head" head: skin: "%player%" fallback-skin: "c06f8906-4c8a-4911-9c29-ea1dbd1aab82" rows: - "<hd>" - "<hd> &#9146FF&lTWITCH" - "<hd>" - "<hd> &#9146FFStreamer &7» &f%player%" - "<hd> &#9146FFLink &7» %button_link%" - "<hd> &#9146FFServer &7» %button_server%" - "<hd> &#9146FFOnline &7» &#54ADF4%server_online%/%server_max_players%" - "<hd>" lines: - " " - "<center>&#9146FF&lTWITCH</center>" - "<center>&#54ADF4%player% &fis now &#9146FFLIVE</center>" - "<center>%button_twitch%</center>" - " "
KeyWhat it does
layouthead uses rows, anything else uses lines
head.skinWhose skin to render
head.fallback-skinUUID used when the skin cannot be fetched
head.rowsEight lines, one per head row

A head is eight pixels tall, so rows needs eight entries. Text after <hd> prints beside that row. <center> centers a line in chat.

Title, actionbar, bossbar and sound

platforms.yml
sound: enabled: true id: "ENTITY_PLAYER_LEVELUP" volume: 1 pitch: 1 title: enabled: true up: "&#9146FF&lTWITCH" down: "&#54ADF4%player% &fis live on &#9146FF&lTWITCH" fade-in: 500 stay: 3000 fade-out: 500 actionbar: enabled: true text: "&#9146FF&lTWITCH &7» &#54ADF4%player% &fis now live" duration: 5 bossbar: enabled: true text: "&#9146FF&lTWITCH &7» &#54ADF4%player% &fis now live" color: "PURPLE" style: "PROGRESS" progress: 1.0 duration: 8
KeyUnitNotes
title.fade-in, stay, fade-outmilliseconds
actionbar.durationseconds
bossbar.colorPINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE
bossbar.progress0.0 to 1.0How full the bar starts
bossbar.durationseconds

Buttons

Buttons are shared and inserted with %button_<id>%.

platforms.yml
buttons: link: text: "&#54ADF4(Click to Open)" hover: - "&fOpen the live stream" - "&#54ADF4%url%" click: type: "url" value: "%url%" server: text: "&#54ADF4%server% &7(Click to join)" hover: - "&fClick to join this server" click: type: "server" value: "%server%"
click.typeWhat it does
urlOpens the link
serverSends the player to that server, proxy only

link and server are generic. kick, twitch and youtube are the branded ones.

%button_<platform>% falls back to the link button when that platform has no block of its own, so a new platform still gets a clickable announcement.

Placeholders

PlaceholderValue
%player%Streamer
%url%The link they sent
%server%server-name, or the proxy server they are on
%server_online%Players online
%server_max_players%Slots
%button_<id>%A button from buttons

PlaceholderAPI placeholders work too when it is installed.

Last updated: September 2, 2026 bySenkexinfbd1677