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.

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
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.