A customisable server welcome message that can be separated for new players who first join, and/or returning players logging back in. Even an option for a timed repeatable server message for everyone. Full Minecraft formatting and colour codes supported.
This mod introduces clean, customizable join messages that can be configured for new players and/or existing players logging back in. It also included timed auto-repeating announcements for the server.
All messages can be customised with Minecraft colour and formatting codes, add clickable links + hover text, and manage everything in-game with /wwm commands or edit via config.

Ever played on a Bucket or Spigot server? Remember the plugins that let you add customisable welcome messages for new players or for existing players? As well as timed announcements? I sure do. But when searching for a FORGE alternative, it seemed like you can get one or the other but nothing that combines everything into one mod. Well, now you can! Get most of the same functionality on FORGE modded servers!
First-join welcome messages for new players.
Returning player greetings for existing players logging in.
Timed announcements that repeat every customer number of minutes.
All text supports Minecraft formatting codes (&a, &b, &l, etc.) and {player} expands to the joining player’s name. You can also define named links (click actions) and hover text that attach to words in your messages - or just drop full URLs and they’ll auto-link. (Also supports Unicode Symbols.
Community servers that want friendly, branded, separate welcomes for both new and existing players.
SMPs with rotating announcements (rules, Discord, Dynmap, events)
Admins who prefer commands over config files (but a TOML is included)
/wwm root command (short & conflict-free)
First Join and Returning Player message sets with separate content.
Timed announcements with per-timer repeat minutes
Clickable links and hover tooltips (per set and per timer)


Autolink: paste a full http(s)://… URL and it becomes clickable
Formatting: all standard & codes (&0…&f, &l, &n, &o, &k, &r)
Placeholders: {player} → online name (works at login & previews)

Works on Forge 1.20.1
Server-side, clients don’t need the mod.
Permission: server operator (typical Forge command level).
/wwm first addline
/wwm first show Preview the current first-join message (all lines).
/wwm first clear Remove all lines.
/wwm set first link <Name> <URL> Define a named link. Any occurrence of <Name> in your lines becomes clickable (and keeps bold/formatting).
/wwm set first hover <Name> <Hover text> Define hover text attached to <Name> words in your lines.
/wwm first addline &6⭐ &aWelcome, &b&l{player}&r&a! /wwm set first link Discord https://discord.gg/yourinvite /wwm set first hover Discord &7Click to join our &bDiscord
Same subcommands as first:
/wwm returning addline
/wwm returning show
/wwm returning clear
/wwm set returning link <Name> <URL>
/wwm set returning hover <Name> <Hover text>
/wwm timed on · /wwm timed off · /wwm timed status
/wwm timed add
/wwm timed list Shows ID, repeat interval, and the first line (truncated) for each timer.
/wwm timed
/wwm timed
/wwm timed
/wwm timed
/wwm timed
/wwm timed remove
/wwm timed add 1 &eVote for rewards! // => Timer #1 /wwm timed 1 addline &7Our map: Dynmap /wwm timed 1 link Dynmap http://map.example.com /wwm timed 1 hover Dynmap &7Open our live map /wwm timed list
Use & color/format codes just like server MOTDs: &a, &b, &c… · &l (bold) · &n (underline) · &o (italic) · &r (reset)
Bold sticks even on linked words—e.g., &b&lDynmap remains bold when a link/hover is applied.
Autolink: paste a full URL (https://…) and it becomes clickable without a named link.
Named links: set … link <Name> <URL> makes every standalone occurrence of <Name> in the set clickable.
Named hovers: set … hover <Name> <Hover text> attaches tooltip text to that word.
Tip: If a name is part of a larger word, use spacing or punctuation to keep it as a standalone token.
Here is a list of all Minecraft formatting codes: https://minecraft.fandom.com/wiki/Formatting_codes
File: config/ww_message.toml
The config is updated automatically by commands; you generally don’t need to edit it by hand.
nextId = 3
timedEnabled = true
firstJoinMessage = "&6⚡ &aHI &b&l{player}! &aWELCOME TO &e&lSERVER! &6⚡\\n&6🔔 &aJoin our &b&lDiscord &6🔔\\n&6⭐ &aExplore the &b&lDynmap &6⭐"
returningMessage = "&6⚡ &aWelcome back to &e&lSERVER &b&l{player}! &6⚡"
[timers]
[timers.1]
minutes = 300
text = "&6🔔 &aDon't forget to join the &b&lDiscord&b! &6🔔"
[timers.1.links]
Discord = "URL"
[timers.1.hovers]
Discord = "&7Click to open our &bDiscord"
[timers.2]
minutes = 400
text = "&6⭐ &aExplore our &b&lDynmap&b! &6⭐"
[timers.2.links]
Dynmap = "URL"
[timers.2.hovers]
Dynmap = "&7Click to open the live &bDynmap"
[links]
returning = {}
[links.first]
Dynmap = "URL"
Discord = "URL"
[hovers]
returning = {}
[hovers.first]
Dynmap = "&7Click to open the live &bDynmap"
Discord = "&7Click to open our &bDiscord"
Forge 1.20.1 server (Tested on the latest build of 47.4.8).
Drop the mod JAR into mods/.
Start the server once, then run commands in-game: /wwm first addline ... etc.
Code: MIT License
Found an edge case (e.g., a word not autolinking)? Let us know. Join the server to feel free to ask any questions: https://discord.gg/5U5wMhmSSs.
Need a Fabric/NeoForge or 1.21.x line? We are looking at expanding compatibility with other versions, but it depends on how much interest the mod has.
Conversation