-
-
Notifications
You must be signed in to change notification settings - Fork 2
Chat Channels
CroaBeast edited this page Nov 8, 2025
·
1 revision
SIR’s channel system lets you create layered chat experiences without editing code. Everything is managed from resources/modules/chat/channels.yml.
default-channel: {...}
channels:
default: {...}
vip: {...}
local-staff-channel: {...}-
default-channeldefines fallback values for every setting. -
channelslists each active channel. Entries inherit unspecified options fromdefault-channel. - A channel can also declare a
localsubsection to create a child channel that shares formatting but limits range.
default-channel is your safety net. Use it to decide:
- Whether channels are enabled by default (
enabled). - Base colour permissions (
color-options.normal,special,rgb). - Default radius (
0= global, anything above0limits chat to that many blocks). - Cooldown behaviour and warning message.
- Fallback message format.
Any channel that omits a property automatically pulls the value from this section.
- Add a new entry under
channels:(e.g.,staff:). - Configure optional fields:
-
permission: Who can join the channel. -
priority: Higher numbers take precedence when multiple channels compete. -
group: Require a specific permission-group name. -
prefix/suffix: Visual markers that wrap the player name. -
color: Default colour applied to{message}. -
color-options: Override which colour codes are allowed. -
hover: A list of lines that appears when players hover the chat line. -
click-action: Create suggest/run/URL actions (SUGGEST:/msg {player}etc.). -
format: Final render for the message. Available placeholders include{player},{message},{prefix},{suffix},{color}.
-
- Set
global: true(or omit it, because the default radius of0already makes the channel global). - Save the file and reload with
/sir reload.
You can either create a standalone local channel (global: false) or a local subchannel inside a global entry.
local-market:
global: false
permission: chat.market
radius: 100
access:
prefix: "!"
commands:
- /market
format: '[MARKET] &7{player}&8: {color}{message}'- Players type the prefix (e.g.,
!Hello) or use the/marketcommand to send to this channel. - If
radiusis omitted, the value fromdefault-channelis used.
vip:
permission: chat.vip
format: '{prefix} {player}: {color}{message}'
local:
permission: chat.vip.local
radius: 50
access:
prefix: "@"
commands:
- /viplocal
format: '[VIP-LOCAL] {prefix} {player}: {message}'- The local entry inherits all properties from its parent (
vip) unless you override them. - Useful for toggling between server-wide VIP chat and a nearby whisper with the same branding.
-
Permissions: Define
permissionon the channel and on any local variant to control membership separately. - Groups: Optional string that matches the player’s permission-group (handy when multiple permissions share the same tag).
- Priority: Ensures the highest-priority channel claims the message if multiple channels share the same prefix.
- Commands & prefixes: Give players multiple ways to access local channels. Commands appear in tab completion when registered.
-
World filters: Add a
worlds:list to restrict where the channel is available.
-
color-options.normaltoggles standard&0-&fcolours. -
color-options.specialtoggles&l,&o,&n,&m,&kformatting. -
color-options.rgbenables hex colours such as{#C0C0C0}. - Combine these with the
colorfield to provide a default tone while still letting players customise within limits.
- Use the global
default-channel.cooldownto apply a base delay between messages. - Override per channel if needed by adding a
cooldown:block to the channel entry. - The
{time}placeholder inside the cooldown message tells players how long they must wait.
-
Players see the wrong format: Ensure the target channel has the highest
priorityamong the channels they can access. -
Local prefixes not working: Double-check the
access.prefixvalue and confirmglobal: false(or the local child) is enabled. -
Hex colours ignored: Make sure
color-options.rgbistrueeither on the channel or inherited fromdefault-channel.
Design channels that match your community’s needs—SIR’s inheritance model keeps configurations tidy and predictable.