Skip to content

Channel Chat ​

Create channels to separate conversations by group. To use this feature, set features.channelChat.enabled to true in config.yml.

Creating a Channel ​

/lc channel create <channelId> <name> [description] [isPrivate]
  • channelId: A unique identifier for the channel (alphanumeric, _, - only, 3-30 characters)
  • name: The display name of the channel
  • description: A description of the channel (optional)
  • isPrivate: Set to true to make the channel private (default: false)

The creator automatically becomes the owner.

Joining and Leaving Channels ​

/lc channel join <channelId>    # Join a channel
/lc channel leave               # Leave the active channel
/lc channel switch <channelId>  # Switch the active channel

Joining a private channel requires an invitation from the owner or a moderator. An invitation does not add the player by itself: they accept it with /lc channel join <channelId> within 5 minutes.

Active Channel ​

Players can join multiple channels, but only one channel can be active at a time. Chat messages are sent to the active channel. Use /lc channel switch to change the active channel.

/lc channel status    # Display the current active channel and list of joined channels

Sending to Global Chat (! Prefix) ​

While a channel is active, your chat goes to that channel. Prefixing a message with ! sends that one message to global chat instead, without leaving or switching the channel.

!Hello everyone      # Goes to global chat even while a channel is active

The ! and any space following it are stripped before the message is sent, so it never appears in the message itself. A message consisting of only ! is discarded and nothing is sent.

NOTE

The prefix is handled by the chat listener, which is only registered when channel chat, cross-server global chat, or Japanese conversion is enabled. If all three are disabled, a leading ! stays in the message exactly as typed.

Roles and Permissions ​

Channels have three roles.

RolePermissions
OWNERDelete the channel, manage moderators, transfer ownership, manage members
MODERATORInvite, kick, ban/unban members (kicks and bans reach only lower roles)
MEMBERParticipate in chat, view channel information

Moderator Management (Owner Only) ​

/lc channel mod <playerName>         # Grant/revoke moderator permissions
/lc channel ownership <playerName>   # Transfer ownership

Member Management (Owner / Moderator) ​

/lc channel invite <playerName>   # Invite a player
/lc channel kick <playerName>     # Kick a player
/lc channel ban <playerName>      # Ban a player
/lc channel unban <playerName>    # Unban a player

Limit Settings ​

You can set channel limits in config.yml (set to 0 for unlimited).

Setting KeyDescription
maxChannelsPerServerMaximum number of channels per server
maxMembersPerChannelMaximum number of members per channel
maxMembershipPerPlayerMaximum number of channels a player can join

Message Logging ​

Channel messages can be logged in NDJSON format. Files are rotated daily, and a new file with a suffix is created when maxFileSizeMB is exceeded.

json
{"timestamp":"2026-04-05T14:23:45.123Z","playerId":"550e8400-...","playerName":"Steve","channelId":"general","message":"Hello!"}

See the features.channelChat.messageLogging section on the Configuration page for logging settings.

Bypass Permission ​

Players with the lunaticchat.channelbypass permission (default: op) are protected from kicks and bans, and can force-delete channels.

Spy Mode ​

Channel messages are not private from administrators. Players with the lunaticchat.spy permission (default: op) also receive channel messages, excluding the sender and the channel's own members. See Spy Mode for details.

Message Format ​

The display format for channel messages can be customized via messageFormat.channelMessageFormat in config.yml. See Message Format for details.