DynamicMOTD is a powerful, feature-rich MOTD rotation plugin for Paper 1.21.x that changes your server's MOTD on every ping — no restarts required.
✨ Features
🎯 MOTD Rotation Modes
| Mode |
Description |
| Random |
Picks a random MOTD from your list on each ping |
| Sequential |
Cycles through MOTDs in order |
| Weighted |
Higher-weight MOTDs appear more often |
| Time-Based |
Shows different MOTDs based on time of day (morning / afternoon / evening / night) |
| Date-Based |
Seasonal MOTDs for Christmas, New Year, Halloween with custom date ranges |
🖼️ Server Icon Rotation
- Load PNG icons from a configurable folder
- Random or Sequential selection
- Auto-resizes non-64×64 images using bilinear interpolation
- Auto-creates folder if it doesn't exist
🎨 Advanced Text Formatting
- Legacy color codes —
&0–&f, &k–&r
- Hex colors —
&#RRGGBB format (1.16+)
- Gradient text —
<gradient:#color1:#color2>text</gradient>
- Multi-line MOTDs — use
\n for line breaks
📊 Custom Max Players
- Default — uses server default
- Increase — adds 100
- Decrease — subtracts 50 (min 1)
- Custom — fixed value
- Random — random between min/max (default 10–500)
- Per-MOTD — map specific values to specific MOTDs
🧩 Placeholder Support
Internal placeholders (no dependencies):
| Placeholder |
Description |
%online% |
Online player count |
%max% |
Server max players |
%time% |
Current server time |
%date% |
Current server date |
%tps% |
Server TPS (1-min avg) |
%uptime% |
Server uptime |
%year% |
Current year |
%motd-index% |
Currently selected MOTD index |
%motd% |
The MOTD text itself |
- PlaceholderAPI integration — use any PAPI placeholders from other plugins (
%essentials_online%, %server_name%, etc.)
🛡️ Maintenance Mode
- Overrides all MOTDs with a single maintenance MOTD
- Custom kick message
- Bypass permission (
dynamicmotd.bypass)
- Player whitelist
🎬 Animated MOTDs
- Cycle through frames at configurable FPS
- Overrides other selection when enabled
🚫 Protocol Version Control
- Block clients below a protocol version
- Block clients above a protocol version
- Custom kick message
- Control which Minecraft versions can see your server
👆 Hover Text
- Customizable hover lines when hovering over the player count
- Supports
%online% and %max% placeholders
🖥️ Server Brand Customization
- Custom server brand name shown in the server list
🔄 Proxy Support
- Works with BungeeCord and Velocity
%player% placeholder for proxy environments
⌨️ Commands
| Command |
Permission |
Description |
/motd list |
dynamicmotd.use |
List all configured MOTDs |
/motd preview <index> |
dynamicmotd.preview |
Preview a specific MOTD |
/motd reload |
dynamicmotd.admin |
Reload config & messages |
/motd test <text> |
dynamicmotd.admin |
Test/render custom MOTD text |
/motd info |
dynamicmotd.admin |
Show plugin info & status |
/motd add <text> |
dynamicmotd.admin |
Add a new MOTD to the list |
/motd remove <index> |
dynamicmotd.admin |
Remove a MOTD by index |
Aliases: /dmotd, /dynamicmotd
🔐 Permissions
| Permission |
Default |
Description |
dynamicmotd.* |
OP |
All permissions |
dynamicmotd.admin |
OP |
Admin commands |
dynamicmotd.use |
TRUE |
Basic commands |
dynamicmotd.preview |
TRUE |
Preview MOTDs |
dynamicmotd.bypass |
OP |
Bypass maintenance mode |
dynamicmotd.update |
OP |
Update notifications |
⚙️ Config Highlights
- Rotation —
RANDOM, SEQUENTIAL, WEIGHTED, TIME_BASED, DATE_BASED
- Max Players —
DEFAULT, INCREASE, DECREASE, CUSTOM, RANDOM, PER_MOTD
- Icons — toggle, folder path, random/sequential
- Hover — toggle, customizable lines
- Maintenance — toggle, MOTD, kick message, bypass, whitelist
- Protocol — toggle, block-below, block-above, kick message
- Animated — toggle, FPS, frames
- Placeholders — time format, date format, PAPI toggle
- Update Checker — toggle, notify permission
- Metrics — bStats toggle
- Debug Mode — verbose logging
- Fallback — fallback MOTD & max players
📋 Requirements
- Paper 1.21.x (or compatible fork)
- Java 21+
- PlaceholderAPI (optional — for external placeholder support)
🔗 Links