Voxel Shop beta is live. Expect occasional bugs. Learn more
Custom Join/Leave Messages for Each Player with Fully Customizable Configuration

A Personal Note
Â
NewJoinMessage is a lightweight way to replace plain join and leave notices with personal messages, colors, icons, sounds, and a simple in-game editor.
Version 6.0 brings **11 major plugin integrations** - all as soft dependencies that activate automatically when the plugin is installed.
What you can customize
NEW: 11 Plugin Integrations
All integrations are soft dependencies - they work if the plugin is installed, and gracefully do nothing if not.
| PlaceholderAPI | All PAPI placeholders (%player_health%, %server_tps%, %vault_eco_balance%, etc.) |
| LuckPerms | %luckperms_prefix%, %luckperms_suffix%, %luckperms_group% |
| EssentialsX | %essentials_nickname%, %essentials_displayname%, %essentials_vanished%, %essentials_afk% |
| Citizens | %citizens_is_npc%, %citizens_npc_name% |
| ProtocolLib | Advanced packet manipulation for custom join/leave packets |
| WorldGuard | %worldguard_regions%, %worldguard_region% - disable/force messages in specific regions |
| Multiverse-Core | %multiverse_world%, %multiverse_world_alias%, %multiverse_world_colored% |
| DiscordSRV | %discordsrv_verified% - send join/leave messages to Discord |
| HolographicDisplays | Temporary holograms at player location on join/leave |
| MiniMessage (Adventure) | Full MiniMessage syntax: text, text, text |
| MVdWPlaceholderAPI | All MVdW placeholders for broader compatibility |
Made to be managed in game
Players can edit their own settings from the GUI. Staff with permission get an admin panel for browsing players and managing their messages. You can also preview a result immediately instead of reconnecting after every change.
Useful placeholders
Commands
Aliases: /mjm, /modernjoinmessage, and /newjoinmessage.
Main permissions
Set allow-all-players: true if everyone should be able to customize messages without individual set permissions.
Showcase
[SPOILER=Click to view showcase screenshots]













[/SPOILER]
Compatibility
The single jar is designed for Spigot/Paper/Folia-compatible servers from Minecraft 1.8 through 26.2. The release jar was tested at both ends of that range: Spigot 1.8.8 on Java 8 and Paper 26.2 on Java 25.
Modern Paper may call it a "legacy plugin" because the jar intentionally does not declare a modern api-version. That warning is harmless and is what allows the same file to load on 1.8-1.12.
Installing or updating
[LIST=1]Back up your current plugin folder.Replace the old jar with the new jar.Restart the server. Do not use /reload for a jar update.
[/LIST]
If NewJoinMessage has no player data yet and finds an older plugins/ModernJoinMessage/data.yml, it imports those messages once during startup.
Found a real problem? Send the server version, Java version, and full relevant console error in the discussion thread or on Discord. I would rather see the log and fix the cause than guess.