Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Creators
Details
🌟 Welcome Mod
A simple, configurable Fabric server-side mod that greets players when they join — publicly, privately, or both.
Lightweight: MidnightLib is bundled inside the JAR (jar-in-jar), so no external dependency required.
Table of Contents
- Features
- Installation
- Configuration
- Usage
- Manifest / mod metadata (example)
- Technical Details
- Development & Contributing
- Author & Contact
- License
Features
- 💬 Broadcast Welcome Messages to everyone on the server.
- 👋 Personal Welcome Messages sent directly to the joining player.
- 🔔 Optional overlay display for broadcast messages.
- 🧩 Custom placeholders for player/server info.
- ⚙️ Edit config in-game via MidnightLib GUI or directly edit the JSON file.
- 🚫 No external dependencies — MidnightLib and other required parts are included inside the mod JAR.
Installation
- Download the
welcome-mod.jar(from your build or release). - Place
welcome-mod.jarinto your server'smods/folder. - Start (or restart) your Fabric server.
- Configure via in-game MidnightLib config GUI or edit the config file at
config/welcome-mod.json.
Configuration
You can update the mod configuration either in-game (MidnightLib GUI) or by directly editing the JSON config file in your server's config/ folder. Changes should apply without a server restart where midnightlib supports live config updates.
Default config (JSON)
{
"enableBroadcastWelcomeMessage": true,
"enablePersonalWelcomeMessage": true,
"broadcastWelcomeOverlay": true,
"broadcastMessage": "§fEveryone welcome §a%player§f to §a%server§r!",
"personalMessage": "Welcome §9%player§r, to §a%server§r!"
}
Note: Minecraft color codes (e.g.
§a,§f,§9,§r) are supported in the messages.
Update config in-game or via file
- In-game: Open MidnightLib's config commands, find the welcome-mod entry, and edit the fields. Pressing enter will update the running configuration.
- Config file: Edit
config/welcome-mod.jsonand save. If the server/mod supports live reloads, the changes will take effect immediately. Otherwise, restart the server.
Placeholders
Use these placeholders in broadcastMessage and personalMessage. The mod will replace them automatically at runtime:
placeholders.put("%player", player.getDisplayName().getString());
placeholders.put("%server", server.getName());
placeholders.put("%permission", String.valueOf(player.getPermissionLevel()));
placeholders.put("%max", String.valueOf(server.getMaxPlayerCount()));
placeholders.put("%cur", String.valueOf(server.getCurrentPlayerCount()));
| Placeholder | Description | Example output |
|---|---|---|
%player |
Player display name | Notch |
%server |
Server name | My Awesome Server |
%permission |
Player permission level (op level) | 4 |
%max |
Max player count configured on server | 100 |
%cur |
Current online player count | 12 |
Example message using placeholders:
"broadcastMessage": "Welcome %player to %server! There are %cur/%max players online."
Usage
-
When a player joins:
- If
enablePersonalWelcomeMessageistrue, the player receivespersonalMessage. - If
enableBroadcastWelcomeMessageistrue, the server broadcastsbroadcastMessageto everyone. - If
broadcastWelcomeOverlayistrue, the broadcast will show as an overlay (where supported).
- If
-
Messages support Minecraft formatting codes. Use
§rto reset formatting.
Manifest / mod metadata (example)
Save this as fabric.mod.json (or include in your build output). This example matches the mod schema you provided:
{
"schemaVersion": 1,
"id": "welcome-mod",
"version": "${version}",
"name": "Welcome Mod",
"description": "A simple, server-side mod to greet new players. Configure a custom message to be broadcast server-wide, sent directly to the player, or both.",
"authors": [
"Ben L Martin"
],
"contact": {
"email": "ben@lmartin.dev",
"sources": "https://github.com/tsunddev/welcome-mod"
},
"license": "MIT",
"icon": "assets/welcome-mod/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"dev.lmartin.Main"
]
},
"mixins": [
"welcome-mod.mixins.json"
],
"depends": {
"fabricloader": ">=0.17.3",
"minecraft": "~1.21.10",
"java": ">=21",
"fabric-api": "*"
},
"suggests": {}
}
Technical Details
- Mod ID:
welcome-mod - Entry point (main):
dev.lmartin.Main - Built for: Fabric Loader (see manifest for version constraints)
- Java: Requires Java 21 or newer (as specified in manifest)
- Config storage: JSON file under
config/welcome-mod.json, exposed through MidnightLib GUI.
Development & Contributing
Contributions welcome! Typical workflow:
- Fork the repository.
- Create a feature branch.
- Make changes and update tests (if any).
- Open a PR with a clear description of your changes.
If you add features that change config format or placeholders, update the README and bump the schema/version accordingly.
Author & Contact
Ben L Martin
- Email: ben@lmartin.dev
- Source: https://github.com/tsunddev/welcome-mod
License
This project is released under the MIT License. See LICENSE for details.
🪶 “A warm welcome goes a long way — even in Minecraft.”
— Welcome Mod



