Overview
XyWelcome is a lightweight join, quit, and first join message system designed to give server owners full control over how players are welcomed into their server.
The plugin supports MiniMessage formatting, permission-based groups, priority handling, and optional visual features such as titles, actionbars, and sounds.
Getting Started
- Install the plugin into your /plugins folder
- Start or restart your server
- A default config.yml will be generated
- Edit the config to suit your server
- Run /xywelcome reload or restart the server
Basic Configuration
Join and quit messages can be enabled or disabled globally:
display:
join-enabled: true
quit-enabled: true
You can also disable messages in specific worlds:
settings:
disabled-worlds:
- world_nether
First Join
You can define a special message for first-time players:
first-join:
broadcast: "<player> has joined for the first time."
You can also run commands when a player joins for the first time:
commands:
- "give <player> bread 16"
Groups System
XyWelcome uses a permission-based group system.
Each group contains:
- a permission node
- a priority value
- join and quit messages
- optional title, actionbar, and sound settings
Example:
groups:
vip:
permission: "xywelcome.group.vip"
priority: 50
join: "<player> has joined as VIP."
Players with multiple permissions will use the group with the highest priority.
Permissions
xywelcome.admin
Allows use of admin commands
xywelcome.silent
Hides both join and quit messages
xywelcome.silentjoin
Hides join message only
xywelcome.silentquit
Hides quit message only
xywelcome.group.*
Configures permission to the group you intended to use the messages on.
Group permissions are fully configurable in the config.yml.
MiniMessage Formatting
XyWelcome uses MiniMessage format.
Examples:
<red>Hello</red>
gradient:#ff0000:#00ff00Player</gradient>
<player> → replaced with player name
If PlaceholderAPI is installed, additional placeholders will work automatically.
Titles, Actionbars & Sounds
Each group or global display can include:
title:
enabled: true
title: "Welcome"
subtitle: "<player> joined"
actionbar:
enabled: true
text: "Welcome <player>"
sound:
enabled: true
name: "entity.player.levelup"
These are optional and can be enabled or disabled per group.
Commands
/xywelcome reload
Reloads the plugin configuration
/xywelcome info
Displays plugin status and loaded configuration
Notes
- Groups are fully customizable
- You can add or remove groups freely
- Permissions can be changed to match your server setup
- The plugin is designed to remain lightweight and easy to configure
Troubleshooting
If join messages do not appear:
- Ensure join-enabled is set to true
- Check if another plugin is overriding join messages (e.g. DiscordSRV)
- Verify player permissions
- Check disabled worlds list
Support
For support or feedback, join the Discord server:
https://discord.gg/jZBsUj9d8E