WelcomeStyler replaces boring vanilla join/leave messages with fully customizable styles your players can pick themselves through a clean GUI menu. Each style supports gradient colors (MiniMessage), join sounds, particle effects, and PlaceholderAPI variables. Player choices are saved in SQLite, so they persist across restarts. Lock premium styles behind permissions to give your VIP/donor ranks real value.
FEATURES
Per-Player Style Selection
Players open a GUI menu (/welcomestyler) and pick their own join/leave style. The selected style is marked, and a live preview shows exactly how their message will look.
MiniMessage & Legacy Color Support
Full gradient and rainbow support via MiniMessage (gradient, rainbow, bold...), while still accepting classic &a color codes. Use either — or both in the same message.
Sounds & Particles
Each style can play a custom sound and spawn particles when the player joins. Fully configurable per style — pick any Bukkit sound and particle.
Permission-Locked Styles
Restrict premium styles to specific permissions (e.g. welcomestyler.style.vip). Locked styles still appear in the menu (shown as locked), encouraging players to rank up or donate to unlock them.
Persistent SQLite Storage
Every player's chosen style is saved to a local SQLite database. No external database setup required — it just works, and choices survive server restarts.
PlaceholderAPI Support
Use any PAPI placeholder in your messages — show rank prefixes (%luckperms_prefix%), online count, world name, and more. Soft-dependency: works with or without PAPI installed.
Fully Configurable
Admins define all styles in config.yml — display name, icon, join/leave message, sound, particle, and permission. No coding needed.
Live Reload
/welcomestyler reload reloads the config instantly — no server restart required.
COMMANDS
/welcomestyler — Opens the style selection GUI (permission: welcomestyler.use)
/welcomestyler reload — Reloads the configuration (permission: welcomestyler.admin)
Aliases: /ws, /wstyle
PERMISSIONS
welcomestyler.use — Allows opening the style menu (default: everyone)
welcomestyler.admin — Allows /welcomestyler reload (default: op)
welcomestyler.style.<id> — Allows selecting a specific locked style (default: op)
INSTALLATION
1. Download the .jar and drop it into your plugins/ folder.
2. (Optional) Install PlaceholderAPI for rank prefixes and extra placeholders.
3. Restart your server.
4. Edit plugins/WelcomeStyler/config.yml to customize your styles.
5. Run /welcomestyler reload to apply changes.
Requirements: Paper/Spigot 1.21.x · Java 21
Optional: PlaceholderAPI (for placeholders), LuckPerms (for rank prefixes)
EXAMPLE CONFIG
styles:
default:
display-name: "&7Default"
icon: PAPER
join-message: "&7%player% joined the server."
quit-message: "&7%player% left the server."
vip:
display-name: "&bVIP"
icon: DIAMOND
join-message: "%luckperms_prefix%<gradient:#00FFA3:#00A3FF><bold>%player%</bold></gradient> <gray>joined!"
quit-message: "&b* &3%player% &bleft. &7(VIP)"
permission: "welcomestyler.style.vip"
sound: ENTITY_PLAYER_LEVELUP
particle: HEART
═══════════════════════════════
QUICK START (works out of the box)
1. Stop your server.
2. Drop WelcomeStyler.jar into your plugins/ folder.
3. Start your server.
4. Type /welcomestyler (or /ws) in-game to open the style menu.
That's it. The plugin works immediately — messages, the GUI, styles, sounds and particles all work with no other plugin installed.
Requirements: Paper or Spigot 1.21.x, Java 21. Paper is recommended (gradient colors require Paper).
OPTIONAL: RANK PREFIXES & PLACEHOLDERS
The plugin works fine without these. You only need them for rank prefixes (like [VIP]) or the online player count.
1. Install PlaceholderAPI (and LuckPerms for rank prefixes).
2. Run in console:
papi ecloud download Player
papi ecloud download LuckPerms
papi reload
3. You should see "2 placeholder hook(s) registered!" in the console.
To set up a VIP rank with a prefix in LuckPerms:
lp creategroup vip
lp group vip meta setprefix "&b[VIP] "
lp group vip permission set welcomestyler.style.vip true
lp user <playername> parent add vip
Without PlaceholderAPI, placeholders are simply left blank — nothing breaks.
TROUBLESHOOTING
%luckperms_prefix% shows as raw text or is blank → PlaceholderAPI/expansions not installed. Install PlaceholderAPI + LuckPerms, run "papi ecloud download LuckPerms" and "papi reload".
%server_online% doesn't work → Run "papi ecloud download Player" then "papi reload".
Sounds/particles don't appear → Effects play only on join, only for the joining player. The default and minimal styles have no effects by design — try the VIP style.
Gradient colors not working → Gradients need Paper (MiniMessage). Use Paper 1.21.x, not plain Spigot.
Messages don't show → Another join/leave plugin may be conflicting. Disable it.
Style selection not saving → Make sure the server has write access to the plugins/WelcomeStyler/ folder.
SUPPORT
Found a bug or have a suggestion? Leave a review or message me directly — I actively maintain this plugin and respond quickly.
Players open a GUI menu (/welcomestyler) and pick their own join/leave style. The selected style is marked, and a live preview shows exactly how their message will look.
Full gradient and rainbow support via MiniMessage (gradient, rainbow, bold...), while still accepting classic &a color codes. Use either — or both in the same message.
Each style can play a custom sound and spawn particles when the player joins. Fully configurable per style — pick any Bukkit sound and particle.
Restrict premium styles to specific permissions (e.g. welcomestyler.style.vip). Locked styles still appear in the menu (shown as locked), encouraging players to rank up or donate to unlock them.
Every player's chosen style is saved to a local SQLite database. No external database setup required — it just works, and choices survive server restarts.
Use any PAPI placeholder in your messages — show rank prefixes (%luckperms_prefix%), online count, world name, and more. Soft-dependency: works with or without PAPI installed.
Admins define all styles in config.yml — display name, icon, join/leave message, sound, particle, and permission. No coding needed.
/welcomestyler reload reloads the config instantly — no server restart required.
/welcomestyler — Opens the style selection GUI (permission: welcomestyler.use)
/welcomestyler reload — Reloads the configuration (permission: welcomestyler.admin)
Aliases: /ws, /wstyle
welcomestyler.use — Allows opening the style menu (default: everyone)
welcomestyler.admin — Allows /welcomestyler reload (default: op)
welcomestyler.style.<id> — Allows selecting a specific locked style (default: op)
1. Download the .jar and drop it into your plugins/ folder.
2. (Optional) Install PlaceholderAPI for rank prefixes and extra placeholders.
3. Restart your server.
4. Edit plugins/WelcomeStyler/config.yml to customize your styles.
5. Run /welcomestyler reload to apply changes.
Requirements: Paper/Spigot 1.21.x · Java 21
Optional: PlaceholderAPI (for placeholders), LuckPerms (for rank prefixes)
styles:
default:
display-name: "&7Default"
icon: PAPER
join-message: "&7%player% joined the server."
quit-message: "&7%player% left the server."
vip:
display-name: "&bVIP"
icon: DIAMOND
join-message: "%luckperms_prefix%<gradient:#00FFA3:#00A3FF><bold>%player%</bold></gradient> <gray>joined!"
quit-message: "&b* &3%player% &bleft. &7(VIP)"
permission: "welcomestyler.style.vip"
sound: ENTITY_PLAYER_LEVELUP
particle: HEART
═══════════════════════════════
1. Stop your server.
2. Drop WelcomeStyler.jar into your plugins/ folder.
3. Start your server.
4. Type /welcomestyler (or /ws) in-game to open the style menu.
That's it. The plugin works immediately — messages, the GUI, styles, sounds and particles all work with no other plugin installed.
Requirements: Paper or Spigot 1.21.x, Java 21. Paper is recommended (gradient colors require Paper).
The plugin works fine without these. You only need them for rank prefixes (like [VIP]) or the online player count.
1. Install PlaceholderAPI (and LuckPerms for rank prefixes).
2. Run in console:
papi ecloud download Player
papi ecloud download LuckPerms
papi reload
3. You should see "2 placeholder hook(s) registered!" in the console.
To set up a VIP rank with a prefix in LuckPerms:
lp creategroup vip
lp group vip meta setprefix "&b[VIP] "
lp group vip permission set welcomestyler.style.vip true
lp user <playername> parent add vip
Without PlaceholderAPI, placeholders are simply left blank — nothing breaks.
%luckperms_prefix% shows as raw text or is blank → PlaceholderAPI/expansions not installed. Install PlaceholderAPI + LuckPerms, run "papi ecloud download LuckPerms" and "papi reload".
%server_online% doesn't work → Run "papi ecloud download Player" then "papi reload".
Sounds/particles don't appear → Effects play only on join, only for the joining player. The default and minimal styles have no effects by design — try the VIP style.
Gradient colors not working → Gradients need Paper (MiniMessage). Use Paper 1.21.x, not plain Spigot.
Messages don't show → Another join/leave plugin may be conflicting. Disable it.
Style selection not saving → Make sure the server has write access to the plugins/WelcomeStyler/ folder.
Found a bug or have a suggestion? Leave a review or message me directly — I actively maintain this plugin and respond quickly.
