HomeJavaModsmMotd
mMotd

mMotd

Fast, cached server-list profiles with schedules, maintenance controls, and privacy-first analytics.

Paper Purpur Folia

GitHub Modrinth Discord

bStats Release Java 25 Minecraft 26.2

Features

The ping handler never reads files, queries a database, resolves DNS, invokes PlaceholderAPI, or reads world state. It only selects an already-rendered immutable entry and updates an optional bounded in-memory counter.

Requirements and installation

  1. Put mMotd-1.1.0.jar in the server's plugins directory.
  2. Start the server once.
  3. Edit plugins/mMotd/config.yml.
  4. Run /mmotd reload.

English is the default. Set language: ru_RU and reload to switch all command feedback to Russian. Existing language files automatically receive newly added default keys.

Profiles

motd:
  entries:
    - id: default
      weight: 3
      audience: ANY
      hosts: []
      protocol: { min: -1, max: -1 }
      line1: "<gradient:#00FF87:#60EFFF><bold>SERVER</bold></gradient>"
      line2: "<gray>Online: <white>{online}/{max}</white> · Event in {countdown}"
      text: "Welcome"

    - id: events
      weight: 1
      audience: RETURNING
      hosts: ["events.example.com", "*.event.example.com"]
      protocol: { min: -1, max: -1 }
      line1: "<gold><bold>EVENT NETWORK</bold>"
      line2: "<gray>Join the next event in <white>{countdown}</white>"

  schedule:
    - days: [FRIDAY, SATURDAY]
      time: "18:00-02:00"
      entry: events
      priority: 100

A global ANY entry without hostname or protocol limits is required as a safe fallback. Invalid entries and schedules are reported individually; a reload with no valid fallback is rejected without replacing the live cache.

Supported placeholders are {online}, {max}, {tps}, {version}, {time}, {date}, {unique_players}, {motd_line}, {countdown}, {countdown_days}, {countdown_hours}, {countdown_minutes}, and {countdown_seconds}.

Set countdown.target to an ISO-8601 value with an offset, for example 2026-12-31T18:00:00+03:00. Set time-zone to system or an IANA zone such as Europe/Moscow.

Icons, player display, and safety

Icon paths are relative to plugins/mMotd, must resolve inside that directory even through symlinks, and must point to valid 64×64 PNG files. Missing or invalid files are skipped while the rest of the profile remains usable.

Configuration input is bounded: entries, schedules, hover lines, text length, weights, protocol ranges, hostname patterns, IP whitelist, and analytics cache size all have safe limits. Dynamic command error text is inserted as unparsed MiniMessage data.

{unique_players} is deliberately refreshed less often than online count and TPS because loading the offline-player list can be expensive. Change cache.unique-player-refresh-seconds if needed.

Commands and permissions

Command Permission Description
/mmotd preview mmotd.command.preview Show the current fallback preview
/mmotd reload mmotd.command.reload Validate configuration and atomically replace the cache
/mmotd maintenance on|off mmotd.command.maintenance Persistently toggle maintenance mode
/mmotd stats mmotd.command.stats Show local ping and conversion statistics

mmotd.admin grants every command permission and mmotd.maintenance.bypass.

Local analytics and telemetry

Local ping analytics are disabled by default. When enabled, client addresses are immediately transformed into salted SHA-256 hashes, retained only in memory, bounded by analytics.max-unique-addresses, and removed after analytics.address-ttl-minutes. Raw addresses and hashes are never persisted or sent externally. Restarting the server resets the salt and all local statistics.

mMotd separately uses anonymous bStats metrics. No IP addresses, hashes, MOTD text, hostnames, or player identifiers are collected. Disable bStats with metrics.enabled: false.

The update checker only reads public Modrinth version metadata. It never downloads or replaces JAR files and can be disabled with updates.enabled: false.

Build

./gradlew clean build

Licensed under the MIT License.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more