Communication
The communication module owns the server's "voice" — everything the server says to
players that isn't a private message. Join and quit lines, the rotating announcer,
info pages like /rules and /motd, chat control, and one-off broadcasts all live
here. It's driven by four HOCON sub-files under modules/communication/, and every
line of text is MiniMessage-formatted.
Connection Messages¶
The join/quit lines (and death and first-join lines) are templated in
join-quit.conf:
| Template | When it fires |
|---|---|
join |
A returning player logs in |
first-join |
A player joins for the very first time |
quit |
A player disconnects |
death |
A player dies |
Because they're MiniMessage templates with placeholders, you can colour them by rank, welcome first-timers differently, or make a death message name the killer.
The Rotating Announcer¶
The announcer posts messages to chat on a timer — tips, rules reminders, event
teasers. It's configured in announcer.conf:
announcements[]— the pool of messages.default-interval-seconds— how often to post.min-players— don't announce to an empty server.ordering— sequential or random rotation.
Staff manage it live with /announce:
| Command | Effect |
|---|---|
/announce editor |
Open the announcer editor GUI |
/announce list |
List the configured announcements |
/announce preview <id> |
Preview one message |
/announce toggle |
Turn the rotation on/off |
/announce reload |
Re-read the announcer config |
/announce is gated by uxmessentials.announce.admin. Players who'd rather not see
the rotation can opt out with /broadcasttoggle.
Info Pages¶
Info pages are static, paginated text screens. Three ship by default —
/info, /rules, and /motd — configured in info-pages.conf under
info-pages { info, rules, motd }, with motd-on-join deciding whether the MOTD
shows automatically on login.
Add your own pages, get a command for free
Define a new page in info-pages.conf and the module auto-registers a
/<name> command for it (gated by uxmessentials.communication.info.<name>).
Add a staffguide page and /staffguide exists instantly — no code, no restart
beyond a reload.
Chat Control¶
| Command | Aliases | Effect |
|---|---|---|
/clearchat |
chatclear |
Flush the chat window for everyone |
/togglechat |
mutechat |
Lock public chat for non-staff |
/me <action> |
— | Post a third-person action message |
uxmessentials.communication.clearchat.exempt lets a player's view survive a
/clearchat, and uxmessentials.communication.chat.bypass lets staff still speak
while chat is locked with /togglechat.
Broadcasts¶
For one-off announcements:
| Command | Aliases | Scope |
|---|---|---|
/broadcast <message> |
— | The whole server |
/broadcastworld <message> |
bcw |
Only players in your world |
These are immediate, MiniMessage-formatted messages — distinct from the timed announcer.
Achievement Notifications¶
The fourth file, advancements.conf (off by default), controls custom advancement /
achievement broadcasts — an allow/deny list of which advancements are announced, the
template used, and which channels they post to. Turn it on to celebrate milestones
in chat with your own wording instead of the vanilla toast alone.
Config at a Glance¶
| File | Owns |
|---|---|
join-quit.conf |
Join / quit / death / first-join templates |
announcer.conf |
The rotating announcer pool and timing |
info-pages.conf |
/info, /rules, /motd and custom pages |
advancements.conf |
Achievement broadcasts (off by default) |
Next Steps¶
- 💬 Chat & Messaging Commands — the full command reference
- 🎛️ Custom Menu Engine — how the announcer editor GUI is built
- 🧩 Per-Module Config — the four
communication/*.conffiles - 🔑 Permission Reference — the
uxmessentials.communication.*nodes