JoinLeaveMessages | [GUI Controlled | Sounds | Titles | Mult
5.0Join, first join & leave messages, titles & sounds, all in game | Hex, gradients & PlaceholderAPI
- Tested MC versions
- 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 26.1, 26.2, 26.3
One jar for every Minecraft version from 1.8 to 26.3
Spigot, Paper & Folia · Java 8 or newer · Full documentation: plugins.someonesson.xyz/joinleavemessages
Everything is set up in game: just run /jlconfig
Click a setting, type or pick the new value, and it applies straight away. You never have to edit config.yml.

JoinLeaveMessages puts everything about players joining and leaving in one place. Set the message, title, subtitle and sound players get when they join, plus the leave message, without digging through config files. Open /jlconfig, click what you want to change and type the new value in chat. It applies straight away.

- Custom join and leave messages with colour codes (&a, &l and the rest), hex colours and gradients
- A separate first join message for brand new players (can be turned off)
- A welcome title and subtitle when a player joins
- A join sound, picked from a menu of 33 sounds with a preview (sounds your server version doesn't have are grayed out), or any other sound typed in chat. Names from any Minecraft version work (NOTE_PLING, BLOCK_NOTE_PLING or BLOCK_NOTE_BLOCK_PLING)
- Set everything in game: click an option in /jlconfig and type the new value in chat (type cancel to stop, or none to leave it empty)
- Placeholders: %player_name% and %player_count%, plus every PlaceholderAPI placeholder
- Silent joins: staff with jl.silent (or hidden by a vanish plugin) join and leave without a message
- Six languages, switchable in game
- Reset the whole config from the menu, with a confirm step so it can't happen by accident
- Turn the plugin on or off from the menu without removing it
- Turn the join sound on or off with one click (the jukebox in /jlconfig > Configure Join Sound)
- Every setting change is logged to the console, showing who changed what
- One jar for Minecraft 1.8 to 26.3, on Spigot, Paper and Folia

You don't need any of these commands. Just run /jlconfig, click the setting you want to change and type the new value in chat. The commands below are optional shortcuts that do the same thing, and are handy from the console.
- /jlconfig (or /joinleaveconfig) - Opens the configuration menu (in game). Permission: jl.config
- /jlreload (or /jlr) - Opens the reload menu. From the console it reloads straight away. Permission: jl.config
- /jlmsetjoinmessage <message> (or /jlmjm) - Sets the join message. Permission: jl.config
- /jlmsetfirstjoinmessage <message> (or /jlmfjm) - Sets the first join message. Permission: jl.config
- /jlmsetleavemessage <message> (or /jlmlm) - Sets the leave message. Permission: jl.config
- /jlmsettitle <title> (or /jlmst) - Sets the join title. Permission: jl.config
- /jlmsetsubtitle <subtitle> (or /jlmsbt) - Sets the join subtitle. Permission: jl.config
- /jlmsetsound <sound> (or /jlmss) - Sets the join sound and plays a preview. Permission: jl.config
- /jlhelp (or /joinleavemessages) - Shows the command list. Permission: everyone
- /jldocs (or /joinleavedocs) - Gets the documentation link. Permission: everyone
- /jlchangelog (or /joinleavechangelog) - Opens the changelog menu (in game). Permission: everyone

jl.config - Lets a player use /jlconfig, /jlreload and the /jlmset commands. Operators have it by default.
jl.silent - The player joins and leaves without a join or leave message (handy for staff). They still get the title and sound. Nobody has it by default, not even operators. Staff hidden by a vanish plugin (SuperVanish, PremiumVanish, Essentials, CMI) are silent automatically.
Example with LuckPerms: /lp user <name> permission set jl.config true

Everything is in /jlconfig:
- Join Title, Join Subtitle, Leave Message - click one and type the new value in chat. Your answer is hidden from other players.
- Configure Join Message - opens the join message menu: Set Join Message, Set First Join Message (sent instead of the join message the first time someone joins) and a First Join Message On/Off switch.
- Configure Join Sound - opens the join sound menu: Join Sound On/Off (the jukebox) switches the sound on or off with one click and shows whether it is on, and Set Join Sound opens the sound picker: a button for each of 33 sounds (click one to use it and hear a preview). Sounds your server version doesn't have are grayed out and marked "Not available on this server version". Custom Sound at the top lets you type any other sound in chat.
- Plugin Status - turn join and leave messages, titles and sounds on or off.
- Reload Plugin - reload config.yml after editing it by hand.
- Set Plugin Language - pick one of the six languages.
- Reset Config (top left) - puts every setting back to its default. A second menu asks you to confirm, because this cannot be undone.
- Need Help? - shows the documentation and support link.

Open /jlconfig > Configure Join Sound > Set Join Sound and click a sound. It plays as a preview and is used from the next join.
- Note blocks: Pling, Harp, Bass, Bass Drum, Snare, Hat, Guitar, Bell, Chime, Xylophone, Flute
- Players and items: Level Up, Experience Orb, Item Pickup, Arrow Hit
- Blocks: Button Click, Chest Open, Chest Close, Anvil Land, Anvil Use, Portal Travel
- Mobs: Villager Yes, Villager No, Enderman Teleport, Chicken Egg, Cat Meow, Wolf Howl, Ender Dragon Growl, Wither Spawn
- Fireworks and more: Firework Launch, Firework Blast, Firework Twinkle, Explosion
Sounds your server version doesn't have are grayed out. For anything else, click Custom Sound and type the name, or use /jlmsetsound <sound>.

English, Norwegian (Norsk), German, Spanish, French and Chinese.
Change it with the Set Plugin Language button in /jlconfig, or set language in config.yml. It applies right away, no restart needed.

- Click Download Now.
- Put the .jar in your server's
pluginsfolder. - Restart the server.
- Run /jlconfig in game to set everything up.

Found at plugins/JoinLeaveMessages/config.yml. You never need to edit this file: every setting here can be changed in game with /jlconfig. Editing it by hand and running /jlreload is an alternative.
configuration:
enablePlugin: 'True' #If you don't want the plugin to work, like if you are configuring it.
enableJoinSound: 'True' # 'False' turns off the join sound. Also in /jlconfig > Configure Join Sound (the jukebox)
language: 'English' # Codes: English, Norsk, German, Spanish, French, Chinese
joinMessage: '&2&l+ &6%player_name% &7Connected'
enableFirstJoinMessage: 'True' # 'False' gives new players the normal joinMessage. Also in /jlconfig > Configure Join Message
firstJoinMessage: '&d&l+ &6%player_name% &7joined for the first time. Welcome!' # Sent instead of joinMessage the first time a player joins
leaveMessage: '&4&l- &6%player_name% &7Disconnected'
joinTitle: 'Welcome, &b%player_name%!' # If you wish to not have a title, just get rid of the text, but leave the 2 ''
joinSubtitle: 'There is currently &e%player_count% people online' # Subtitle is below the main title
joinSound: 'BLOCK_NOTE_BLOCK_PLING'
# joinSound works on every version: names from 1.8 (NOTE_PLING), 1.9-1.12 (BLOCK_NOTE_PLING)
# and 1.13+ (BLOCK_NOTE_BLOCK_PLING) are translated automatically for common sounds.
# You can also use a sound key such as 'minecraft:block.note_block.pling'.
# Placeholders:
# %player_name% - Gets players name who joined/left
# %player_count% - Gets players who are on the server
# PlaceholderAPI placeholders (like %luckperms_prefix%) work too when PlaceholderAPI is installed.
#
# Colours: &a, &l and the other & codes work everywhere.
# On 1.16+ you can also use hex colours (&#ff8800 or <#ff8800>) and gradients:
# <gradient:#ff5555:#5555ff>Welcome!</gradient> (add more :#colours for more steps)
# Older servers show the closest normal colour instead.
#
# Silent joins: players with the jl.silent permission (or hidden by a vanish plugin)
# join and leave without a message. They still get the title and sound.
# Need help? Documentation and support: https://plugins.someonesson.xyz/

- %player_name% - the name of the player who joined or left.
- %player_count% - players online. In the leave message it counts only the players still online.
- PlaceholderAPI - with PlaceholderAPI installed, any of its placeholders work too, for example %luckperms_prefix% or %vault_eco_balance%. They work in the join, first join and leave messages, the title and the subtitle.

- Classic colours - &a green, &6 gold, &l bold, &o italic, &r reset. Every version.
- Hex colours -
&#ff8800Textor<#ff8800>Text. 1.16 and newer. - Gradients -
<gradient:#ff5555:#5555ff>Welcome!</gradient>. Add more :#colour steps for a rainbow, and use &l inside for bold. 1.16 and newer.
On 1.8 to 1.15, hex colours and gradients show the closest of the 16 classic colours. Try them in the playground on the documentation page.

Full documentation, a live preview of your messages and every sound name: plugins.someonesson.xyz/joinleavemessages
Still stuck? Ask in the Discord and include your server version and anything the console printed about JoinLeaveMessages.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
26.2MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.9MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
4.7MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta
