RexWelcome Documentation
RexWelcome is a powerful welcome message plugin for Minecraft servers with randomized titles, first-join tracking, and PlaceholderAPI integration.
Requirements: Java 21 (Required), Minecraft 1.20.4+ (Supported), Paper/Spigot/Folia compatible
Features
- Randomized Welcome Titles - Multiple title variations for variety
- First-Join Detection - Different messages for new vs returning players
- Join Number Tracking - Track who was 1st, 2nd, 3rd player to join
- First-Join Commands - Execute commands when players join for the first time
- Broadcast System - Announce first-time joins to all players
- PlaceholderAPI Integration - Custom placeholders for other plugins
- Advanced Color Support - Legacy codes, hex colors, MiniMessage
- Join Sounds - Customizable sounds when players join
- Chat Clearing - Optional chat clear before welcome messages
- Folia Support - Full compatibility with Folia multi-threaded servers
- Hot Reload - Reload configuration without restarting
Installation
- Download the latest
RexWelcome.jarfrom GitHub Releases - Place the jar file in your server's
pluginsfolder - (Optional) Install PlaceholderAPI
- Restart your server
- Configure the plugin in
plugins/RexWelcome/config.yml - Use
/rw reloadto apply changes without restarting
Commands
| Command | Aliases | Description | Permission |
|---|---|---|---|
/rexwelcome |
/rw |
Main plugin command | - |
/rw reload |
- | Reload configuration | rexwelcome.reload |
/rw info |
- | Show plugin information | - |
/rw help |
- | Show help message | - |
Permissions
| Permission | Description | Default |
|---|---|---|
rexwelcome.reload |
Reload plugin configuration | op |
rexwelcome.info |
View plugin information | op |
rexwelcome.help |
View help message | op |
Placeholders
PlaceholderAPI Placeholders
Use these in any plugin that supports PlaceholderAPI:
| Placeholder | Description | Example Output |
|---|---|---|
%rexwelcome_playernumber% |
Player's join number | 42 |
%rexwelcome_totalplayers% |
Total unique players | 150 |
%rexwelcome_player_<N>% |
Name of Nth player | Steve |
Example Usage:
# In DeluxeChat, EssentialsX, or any PAPI-compatible plugin
format: "&7[#%rexwelcome_playernumber%] &f{USERNAME}: {MESSAGE}"
message: "&aYou are player #%rexwelcome_playernumber%!"
message: "&7First player: %rexwelcome_player_1%"
Internal Placeholders
Use these inside RexWelcome's config.yml:
| Placeholder | Description |
|---|---|
%player% |
Player's name |
%displayname% |
Player's display name |
%prefix% |
Plugin prefix (from config) |
%online% |
Online player count |
%max_players% |
Maximum players |
%total_players% |
Total unique players |
%joincount% |
Alias for %total_players% |
Color Formats
RexWelcome supports multiple color formats:
Legacy Color Codes
message: "&aGreen &bAqua &cRed &eYellow"
Hex Colors
message: "&#ff5733Orange text"
message: "#ff5733This also works"
MiniMessage Format
message: "<color:#ff5733>Orange</color>"
message: "<gradient:#ff0000:#00ff00>Gradient text</gradient>"
message: "<bold><#FFD700>Bold gold text</bold>"
Randomized Titles
RexWelcome can display random titles from a list each time a player joins:
Returning Players
returning-player:
titles:
- title: "&#FFD700WELCOME BACK!"
subtitle: "&fWe missed you, &e%player%&f!"
- title: "&#FF6B6BYOU'RE BACK!"
subtitle: "&7Good to see you again!"
- title: "�FF7FBACK AGAIN?"
subtitle: "&fOf course you are!"
First-Time Players
first-join:
titles:
- title: "�BFFF✨ WELCOME!"
subtitle: "&fThis is your first time here!"
- title: "&#FFD700🌟 FIRST TIME!"
subtitle: "&eYou're player #%total_players%!"
- title: "&#FF69B4WELCOME NEWBIE!"
subtitle: "&fEnjoy your stay!"
First-Join Features
First-Join Commands
Execute commands automatically when a player joins for the first time:
first-join:
enabled: true
commands:
- "give %player% diamond 5"
- "eco give %player% 1000"
- "advancement grant %player% only story/mine_diamond"
First-Join Messages
first-join:
messages:
- "&7"
- "%prefix%�BFFF✨ Welcome &f%player%&b!"
- "&7• &fYou are player #&#f75634%total_players%"
- "&7• &fVisit: &#f75634https://rexsystems.cc"
- "&7• &fRead the rules: &#f75634/rules"
- "&7"
Broadcast System
Announce when someone joins for the first time:
broadcast:
enabled: true
message: "%prefix%&#f75634%player% &fhas joined for the first time! &7(Player #&e%joincount%&7)"
Join Sounds
Play a sound when players join:
sounds:
join:
enabled: true
sound: "ENTITY_PLAYER_LEVELUP"
volume: 1.0
pitch: 1.0
Sound Names: See Bukkit Sound Documentation for all available sounds.
Player Data Storage
Player data is stored in plugins/RexWelcome/playerdata.yml:
players:
550e8400-e29b-41d4-a716-446655440000:
join-number: 1
name: "Steve"
first-join: 1673472000000
550e8400-e29b-41d4-a716-446655440001:
join-number: 2
name: "Alex"
first-join: 1673472100000
This tracks:
- join-number - Order in which players joined (1st, 2nd, 3rd, etc.)
- name - Player's username
- first-join - Timestamp of first join
Full Configuration
Here's the complete config.yml with all available options:
# ╔══════════════════════════════════════════════════════════════════════════════╗
# ║ RexWelcome ║
# ║ Advanced Welcome Message Plugin ║
# ║ by RexSystems.cc ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# ═══════════════════════════════════════════════════════════════════════════════
# COLOR FORMAT SUPPORT:
# - Legacy: &a, &b, &c, &l, &o, etc.
# - Hex #1: &#a96eee (ampersand + hex)
# - Hex #2: #a96eee (plain hex)
# - MiniMessage: <color:#a96eee>, <gradient:#ff0000:#00ff00>, <bold>, <italic>
# ═══════════════════════════════════════════════════════════════════════════════
# General Messages
messages:
prefix: "&7[&#f75634RexWelcome&7] "
no-permission: "%prefix%&cYou don't have permission to use this command."
reload-success: "%prefix%&aConfiguration reloaded successfully!"
command-not-found: "%prefix%&cCommand not found. Use /rexwelcome help"
reload-usage: "%prefix%&fUsage: /%cmd% reload"
player-only: "%prefix%&cThis command can only be used by players!"
# ═══════════════════════════════════════════════════════════════════════════════
# RETURNING PLAYER SETTINGS
# ═══════════════════════════════════════════════════════════════════════════════
returning-player:
# Multiple titles - one will be randomly selected each time!
titles:
- title: "&#FFD700WELCOME BACK!"
subtitle: "&fWe missed you, &e%player%&f!"
- title: "&#FF6B6BYOU'RE BACK!"
subtitle: "&7Good to see you again, %player%!"
- title: "�FF7FBACK AGAIN?"
subtitle: "&fOf course you are, &a%player%&f!"
- title: "⒚DBLOOK WHO'S HERE!"
subtitle: "&d%player% &fhas returned!"
- title: "&#FF4500HEY THERE!"
subtitle: "&fWelcome back, &6%player%&f!"
# Messages sent to returning players
messages:
- "&7"
- "%prefix%&#f75634Welcome back, &f%player%&f!"
- "&7• &fOnline Players: &#f75634%online%/%max_players%"
- "&7• &fVisit our store: &#f75634store.rexsystems.cc"
- "&7• &fJoin our Discord: &#f75634discord.rexsystems.cc"
- "&7"
# ═══════════════════════════════════════════════════════════════════════════════
# FIRST-TIME PLAYER SETTINGS
# ═══════════════════════════════════════════════════════════════════════════════
first-join:
enabled: true
# Multiple titles for first-time players - randomly selected!
titles:
- title: "�BFFF✨ WELCOME!"
subtitle: "&fThis is your first time here!"
- title: "&#FF69B4WELCOME NEWBIE!"
subtitle: "&fEnjoy your stay, &d%player%&f!"
- title: "CFC00HELLO, &f%player%&a!"
subtitle: "&fWelcome to our server!"
- title: "&#FFD700🌟 FIRST TIME!"
subtitle: "&eYou're player #%total_players%!"
- title: "&#FF6347GREETINGS!"
subtitle: "&fWe hope you enjoy your stay!"
# Commands to execute when a player joins for the first time
# Placeholders: %player%, %joincount%, %online%, etc.
# These run as console commands!
commands:
- "give %player% diamond 1"
# Messages sent to first-time players
messages:
- "&7"
- "%prefix%�BFFF✨ Welcome &f%player% &7for the first time!"
- "&7• &fYou are player number &#f75634#%total_players%"
- "&7• &fVisit our website: &#f75634https://rexsystems.cc"
- "&7• &fJoin our Discord: &#f75634discord.rexsystems.cc"
- "&7• &fRead the rules: &#f75634/rules"
- "&7"
# ═══════════════════════════════════════════════════════════════════════════════
# BROADCAST SETTINGS
# ═══════════════════════════════════════════════════════════════════════════════
# Broadcast when someone joins for the first time
broadcast:
enabled: true
message: "%prefix%&#f75634%player% &fhas joined for the first time! &7(Player #&e%joincount%&7)"
# ═══════════════════════════════════════════════════════════════════════════════
# WELCOME SETTINGS
# ═══════════════════════════════════════════════════════════════════════════════
welcome-messages:
enabled: true
# Clear chat before sending welcome messages? (Sends 100 empty lines)
clear-chat: true
# Title settings (applies to both first-join and returning)
title:
enabled: true
fade-in: 10 # Ticks (20 ticks = 1 second)
stay: 70 # Ticks
fade-out: 20 # Ticks
# ═══════════════════════════════════════════════════════════════════════════════
# SOUND SETTINGS
# ═══════════════════════════════════════════════════════════════════════════════
sounds:
join:
enabled: true
# Sound names: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
sound: "ENTITY_PLAYER_LEVELUP"
volume: 1.0
pitch: 1.0
# ═══════════════════════════════════════════════════════════════════════════════
# COMMAND SETTINGS
# ═══════════════════════════════════════════════════════════════════════════════
commands:
rexwelcome:
enabled: true
command: "rexwelcome"
aliases: ["rw"]
permission: "rexwelcome.reload"
usage: "%prefix%&fUsage: /rexwelcome reload"