COWMODSКаталог модов

LPC Minimessage - Chat Formatter

A chat formatting with Minimessage Support plugin for LuckPerms.

Автор: Ayont92,3 тыс.82обновлён 5 июл. 2026 г.
ДекорОбщение

Описание

LPC Banner

Available on Modrinth

Discord Build Status Latest Release

LPC – LuckPerms Chat Formatter ✨

A flexible chat formatting plugin with MiniMessage support for LuckPerms

Modern chat formatting powered by MiniMessage, full LuckPerms metadata support, group/track formats, and PlaceholderAPI.


🧩 Compatibility

Minecraft26.1.2
ServerPaper (recommended) or Spigot
Java25+

🔧 Requirements


✅ Features

Formatting

  • Full MiniMessage support, with group- and track-specific formats
  • Optional PlaceholderAPI integration and [item] placeholder (hover tooltip on Paper)
  • Per-rank message styling and per-rank gradient names ({gradient-name})
  • Per-world toggle via disabled-worlds

Social (on by default)

  • @Mention pings – highlight online names + sound/action-bar ping (Paper)
  • Emoji shortcuts – e.g. :heart: → ❤ (fully configurable)
  • Clickable links – URLs become openUrl links on Paper, coloured on Spigot

Moderation (off by default)

  • Anti-spam cooldown, repeated-message blocker, caps filter, profanity mask, anti-advertising
  • Per-player mute (/lpc mute) + LuckPerms mute node for punishment plugins

Server messages (off by default)

  • MiniMessage join / quit / first-join / death messages

Quality of life

  • /lpc reload · version · help · mute · unmute with tab completion
  • Built-in Modrinth update checker
  • Safe by design – player messages can never inject click/hover/command components
  • Works on both Paper (Adventure rendering) and Spigot (legacy fallback)

⌨️ Commands

CommandPermissionDescription
/lpc reloadlpc.reloadReload the configuration
/lpc version–Show the installed version
/lpc help–List available commands
/lpc mute <player> [duration]lpc.muteMute a player (e.g. 10m, 2h; omit for permanent)
/lpc unmute <player>lpc.muteUnmute a player

🧑‍💼 Permissions

PermissionDefaultDescription
lpc.reloadopReload the configuration
lpc.chatcolorfalseUse colour codes & cosmetic MiniMessage tags in chat
lpc.itemplaceholderfalseUse the [item] placeholder in chat
lpc.updateopReceive an update notification on join
lpc.emojitrueUse emoji shortcuts (only enforced if emoji.require-permission)
lpc.chatlinkstrueHave URLs turned into clickable links
lpc.mention.exemptfalseOpt out of receiving mention pings
lpc.muteopUse /lpc mute and /lpc unmute
lpc.mutedfalseMarks a player as muted (usually set by a punishment plugin)
lpc.bypass.spam / .repeat / .caps / .profanity / .advertopBypass the matching moderation filter

ℹ️ Even with lpc.chatcolor, only cosmetic tags (colours, decorations, and optionally gradients/rainbow) are honoured in player messages. Interactive tags (click, hover, insertion, …) are always stripped.


⚙️ Configuration (config.yml)

# Main chat format (MiniMessage!)
chat-format: "{prefix}{name}<dark_gray> »<reset> {message}"

# Per-group formats (optional)
group-formats:
#  default: "<gray>[User]</gray> {name}<dark_gray> »<reset> {message}"
#  admin: "<red>[Admin]</red> {name}<dark_gray> »<reset> {message}"

# Per-track formats (optional) – groups take priority over tracks
track-formats:
#  staff_track: "<gold>[Staff]</gold> {name}<dark_gray> »<reset> {message}"

# Enable the [item] placeholder
use-item-placeholder: true

# Allow <gradient> / <rainbow> for players with lpc.chatcolor
allow-gradient-tags: true

# Worlds where LPC does NOT format chat
disabled-worlds: []

# Check Modrinth for updates on startup
update-checker: true

# Reload message
reload-message: "<green>Reloaded LPC configuration!"

🪄 Available Placeholders

PlaceholderDescription
{message}The chat message (inserted safely, never re-parsed)
{name}Player's name
{displayname}Display name / nickname
{world}Player's current world
{prefix} / {suffix}Highest priority prefix / suffix
{prefixes} / {suffixes}All prefixes / suffixes, highest priority first
{username-color} / {message-color}Colour values from LuckPerms meta

ℹ️ All colour values (prefix, suffix, etc.) must be in MiniMessage format – no legacy codes (&a, §b).


🚀 Installation

  1. Stop your server
  2. Drop LPC-<version>.jar into your /plugins folder
  3. Start the server to generate config.yml
  4. Edit the config to your liking
  5. Run /lpc reload to apply changes ✅

🛠️ Building

./gradlew shadowJar
# output: build/libs/LPC-<version>.jar

Requires JDK 25.


📌 Notes

  • Not affiliated with LuckPerms – please do not contact the LuckPerms author for support.
  • Legacy version available at: GitHub Legacy LPC

📸 Previews

Chat Format Example
Chatformat

[ITEM] Placeholder Example
Item Placeholder


🚀 Installation

  1. Stop your server
  2. Place the LPC.jar into your /plugins folder
  3. Start the server to generate configuration files
  4. Edit the config.yml to your liking
  5. Use /lpc reload to apply your changes ✅

Галерея

[ITEM] PlaceholderChat Format PreviewLPC

Последние версии

Все версии →
release

LPC Minimessage - Chat Formatter 4.4.0

4.4.0
5 июл. 2026 г.28,3 тыс.Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Скачать
Что нового
## LPC 4.4.0 — one jar for everything No more picking the right build. LPC 4.4.0 ships a **single universal jar** that runs on **Paper 1.21.x (incl. 1.21.11) AND Paper 26.2**. Just download `LPC-4.4.0.jar` and it works on your server, whatever the version. ### Why one jar works Compiled once against Paper 1.21 / Adventure 4 / Java 21 (`api-version: 1.21`): - `api-version: 1.21` is accepted by Paper 26.2 (forward-compatibility) - Java 21 bytecode runs on Java 25 - the Adventure APIs LPC uses stay binary-compatible across Adventure 4 → 5 A new `crossCompatTest` CI task proves this every build by running the Adventure-4-compiled tests against an Adventure 5 runtime — the exact thing a Paper 26.2 server does. (It already caught and fixed one real incompatibility.) ### 🐛 [item] permission fix `[item]` needs the `lpc.itemplaceholder` permission — which previously defaulted to `false`, tripping up users (even admins) who only enabled the config. Now: - `lpc.itemplaceholder` defaults to **`op`** → ops can use `[item]` immediately - players who type `[item]` without the permission get a friendly **in-chat hint** - to enable `[item]` for everyone: `/lp group default permission set lpc.itemplaceholder true` ### Platform detection - startup log: `Running on Paper (API 1.21-R0.1) on Java 21 [Paper/Adventure chat]` - `/lpc version` now shows the build target **and** the live runtime (API + Java) — great for support ### Still includes - the 4.2.0 chat click/hover/insertion exploit fix (defence-in-depth sanitizer) - MiniMessage chat formatting, LuckPerms group/track formats, PlaceholderAPI, @mentions, emojis, clickable links, [item], moderation toolkit ### Requirements - [LuckPerms](https://luckperms.net/) (required) · [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) (optional) - Paper 1.21.x – 26.2, Folia or Spigot · Java 21+ **Full changelog:** https://github.com/Ayont/LPC-with-minimessage/compare/4.3.0...4.4.0
release

LPC Minimessage - Chat Formatter 4.3.0

4.3.0-legacy
4 июл. 2026 г.701Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, folia, paper, purpur, spigot
Скачать
Что нового
## LPC 4.3.0 — Multi-version support (Paper 1.21.x **and** 26.2) This release ships **two jars** so LPC runs on both old and new servers. Pick the one for your platform on the [Modrinth download page](https://modrinth.com/plugin/lpc-chat) (Modrinth's game-version filter shows the right one automatically): | Build | Minecraft | Java | Adventure | api-version | |---|---|---|---|---| | **`LPC-4.3.0.jar`** *(default)* | 26.2 | 25 | 5.2.0 | 26.2 | | **`LPC-4.3.0-legacy.jar`** | 1.21.x *(incl. 1.21.11)* | 21 | 4.23.0 | 1.21 | ### Why two jars? Adventure 4 (bundled by Paper 1.21) and Adventure 5 (bundled by Paper 26.2) are **binary-incompatible** — a single jar cannot reliably run on both. The same LPC source now compiles + passes all tests against **both** Adventure versions; the Gradle `-Ptarget=modern|legacy` switch selects the platform. ### 🔒 Still includes the 4.2.0 security fix The defence-in-depth `ComponentSanitizer` (strips click/hover/insertion from player & item-name output) is in **both** builds. ### Bug fixes & UX - Fixes the recurring **\"Unsupported API version\"** / **\"plugin won't load on 1.21.11\"** reports — use the `-legacy` jar on Paper 1.21.x / Java 21. - `/lpc version` now reports the **build target** (e.g. `Build: Minecraft 1.21.x · Java 21 · Adventure 4.23.0 (legacy)`) so support can tell which jar you installed. - `build.yml` CI runs a modern + legacy matrix on every PR. ### Installation - **Paper 26.2 / Java 25** → download `LPC-4.3.0.jar` - **Paper 1.21.x / Java 21** (incl. 1.21.11) → download `LPC-4.3.0-legacy.jar` Requires [LuckPerms](https://luckperms.net/). [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) optional. **Full changelog:** https://github.com/Ayont/LPC-with-minimessage/compare/4.2.0...4.3.0
release

LPC Minimessage - Chat Formatter 4.3.0

4.3.0
4 июл. 2026 г.204Minecraft: 26.2bukkit, folia, paper, purpur, spigot
Скачать
Что нового
## LPC 4.3.0 — Multi-version support (Paper 1.21.x **and** 26.2) This release ships **two jars** so LPC runs on both old and new servers. Pick the one for your platform on the [Modrinth download page](https://modrinth.com/plugin/lpc-chat) (Modrinth's game-version filter shows the right one automatically): | Build | Minecraft | Java | Adventure | api-version | |---|---|---|---|---| | **`LPC-4.3.0.jar`** *(default)* | 26.2 | 25 | 5.2.0 | 26.2 | | **`LPC-4.3.0-legacy.jar`** | 1.21.x *(incl. 1.21.11)* | 21 | 4.23.0 | 1.21 | ### Why two jars? Adventure 4 (bundled by Paper 1.21) and Adventure 5 (bundled by Paper 26.2) are **binary-incompatible** — a single jar cannot reliably run on both. The same LPC source now compiles + passes all tests against **both** Adventure versions; the Gradle `-Ptarget=modern|legacy` switch selects the platform. ### 🔒 Still includes the 4.2.0 security fix The defence-in-depth `ComponentSanitizer` (strips click/hover/insertion from player & item-name output) is in **both** builds. ### Bug fixes & UX - Fixes the recurring **\"Unsupported API version\"** / **\"plugin won't load on 1.21.11\"** reports — use the `-legacy` jar on Paper 1.21.x / Java 21. - `/lpc version` now reports the **build target** (e.g. `Build: Minecraft 1.21.x · Java 21 · Adventure 4.23.0 (legacy)`) so support can tell which jar you installed. - `build.yml` CI runs a modern + legacy matrix on every PR. ### Installation - **Paper 26.2 / Java 25** → download `LPC-4.3.0.jar` - **Paper 1.21.x / Java 21** (incl. 1.21.11) → download `LPC-4.3.0-legacy.jar` Requires [LuckPerms](https://luckperms.net/). [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) optional. **Full changelog:** https://github.com/Ayont/LPC-with-minimessage/compare/4.2.0...4.3.0
release

LPC 4.2.0 — Minecraft 26.2 / Adventure 5 / Veylor-Development

4.2.0
1 июл. 2026 г.1 тыс.Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Скачать
Что нового
### Security (important — fixes chat click-command exploit) - **Defence-in-depth sanitizer** against chat click / hover / insertion exploits. A new `ComponentSanitizer` recursively strips `clickEvent` / `hoverEvent` / `insertion` from **player message** and **item-name** output. - Closes the exploit reported on Discord where players could type `<click:run_command:…>` that executes when clicked. The restricted cosmetic parser already rejected these tags; the sanitizer is a belt-and-suspenders guarantee that no interactive event can ever reach chat — even via nested children or a crafted anvil-renamed item. - Cosmetic styling (colours, decorations) is preserved. Legacy/Spigot output is inherently safe (serializes to `§`-codes that cannot carry events). - Tests: 43 (incl. 7 new sanitizer cases), 0 failures. ### Platform - **Minecraft 26.2** (Paper 26.2), `api-version: 26.2` - **Adventure 5.2.0** — the version Paper 26.2 bundles (Paper 26.1 shipped Adventure 4.x, so 4.2.0 requires Paper 26.2+) - **Java 25** > ⚠️ If you get `Unsupported API version 26.2` or the plugin won't load: update to **Paper 26.2 + Java 25**. Older servers (1.21.x / Java 21) cannot run this build. ### Dependency updates (folds in the open Renovate PRs) - LuckPerms `5.4 → 5.5`, PlaceholderAPI `2.11.6 → 2.12.2`, Gson `2.13.2 → 2.14.0`, JUnit `5.11.4 → 5.14.4`, Gradle `8.14 → 8.14.5`, `actions/setup-java v5`, `gradle/actions v6` ### Build & CI - **New `build.yml`** runs `clean build` on every push/PR (there was no CI before). - Fixed `publish.yml`: Gradle 8.14 cannot run on Java 25 (its Groovy rejects class file major 69), so Gradle now runs on **Java 21** and compiles via the **Java 25 toolchain** (auto-provisioned by the new `foojay-resolver-convention`). ### Branding & UX - Author rebranded **Varilx-Development → Veylor-Development** (the team behind veylor.net — free plugins on Modrinth). - `/lpc version` now reports the detected platform + target (MC 26.2 · Java 25 · Adventure 5). - README: compatibility table + "Unsupported API version" guidance + a direct answer to "can players use MiniMessage in chat?". ### Issues closed - #22 (PlaceholderAPI placeholder in `chat-format` crashing) — fixed by the 2.0 pipeline. - #26 (non-op parsing placeholders) — fixed; player messages are never passed through PlaceholderAPI. - #37 (/msg question) — answered; LPC is a chat formatter, pair it with EssentialsX/HuskChat. **Full changelog:** https://github.com/Ayont/LPC-with-minimessage/compare/4.1.0...4.2.0
release

LPC Minimessage - Chat Formatter 4.1.0

4.1.0
16 июн. 2026 г.4,6 тыс.Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, folia, paper, purpur, spigot
Скачать
Что нового
![Banner](https://github.com/Ayont/LPC-with-minimessage/releases/download/4.1.0/banner-4.1.0.png) ## 4.1.0 — Folia Support **Minecraft:** 26.1.2 · **Java:** 25 · **API version:** 26.1.2 Native Folia support with region-aware scheduling while retaining full Paper/Spigot compatibility. ### Added - `folia-supported: true` in `plugin.yml`. - Cross-platform scheduler abstraction in `de.ayont.lpc.scheduler`: - `Scheduler` interface with `run`, `runAsync`, `runDelayed` and `runOnEntity`. - `PaperSchedulerImpl` using `GlobalRegionScheduler`, `AsyncScheduler` and `EntityScheduler`. - `BukkitSchedulerImpl` fallback for plain Spigot/Bukkit. - Runtime platform detection via `Schedulers.create(...)`. - Folia detection in `LPC` with dedicated log output. - `onDisable` cancels all scheduled tasks cleanly. ### Changed - `UpdateChecker` now schedules its network request via `plugin.getScheduler().runAsync(...)`. - `MentionService.pingAll` now schedules per-target pings via `plugin.getScheduler().runOnEntity(...)`. ### Compatibility - Verified on Folia 26.1.2 build 8. - Paper/Spigot fallback remains intact. > **Note:** LPC itself is now Folia-compatible, but LuckPerms must also be a Folia-compatible build, otherwise Folia will refuse to load the dependency.
release

LPC Minimessage - Chat Formatter 4.0.0

4.0.0
15 июн. 2026 г.649Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, paper, purpur, spigot
Скачать
Что нового
# Changelog ## 4.0.0 **Released:** 2026-06-15 **Minecraft:** 26.1.2 · **Java:** 25 · **API version:** 26.1.2 Major rewrite release with a new MiniMessage chat formatter, an integrated moderation toolkit, and a much more flexible configuration. ### Added - **New MiniMessage chat formatter** with a clear separation between trusted format strings and player messages. - **Group & track formats** per LuckPerms group or track (`group-formats`, `track-formats`). - **`[item]` placeholder** – shows the held item in chat (hover tooltip on Paper). - **Placeholder support:** `{prefix}`, `{suffix}`, `{prefixes}`, `{suffixes}`, `{world}`, `{displayname}`, `{username-color}`, `{message-color}`, and `{gradient-name}`. - **Optional PlaceholderAPI integration** for formats. - **@Mentions** with highlighting, sound + action-bar ping on Paper (Spigot gets highlighting only). - **Emoji replacement** via configurable shortcuts like `:heart:` → ❤. - **Clickable links** in chat (`openUrl`, clickable on Paper, colored/underlined on Spigot). - **Per-rank message styles** – groups/tracks can get their own message coloring without needing MiniMessage permissions. - **Gradient names** via LuckPerms meta or per group (`{gradient-name}`). - **Join / quit / first-join / death messages** in MiniMessage format, individually toggleable. - **Integrated moderation toolkit** (all toggleable): - Anti-spam cooldown - Repeat-message filter - Caps filter (BLOCK or LOWERCASE) - Profanity filter (BLOCK or MASK) - Anti-advertising / anti-IP (BLOCK or REDACT) - **Mute system** with `/lpc mute <player> [duration]` and `/lpc unmute <player>`, plus support for external mute permission nodes. - **Modrinth update checker** with in-game notification for players with `lpc.update`. - **Paper & Spigot compatibility** with automatic fallback to legacy rendering. - **Unit tests** for emoji replacement, legacy colors, mentions, player messages, URL linkification, moderation text checks, and version comparison. ### Changed - Complete rewrite of chat rendering: player messages are inserted as pre-built components and are never re-parsed. - Interactive tags (`click`, `hover`, `insertion`, …) in player messages are always stripped. - Default config bumped to `config-version: 3`. ### Security - Player messages cannot inject MiniMessage tags or PlaceholderAPI placeholders. - Prefix/suffix values and format strings are parsed in a trusted context. - Gradient specifications are validated against an allowed character set. ### Permissions - `lpc.reload`, `lpc.chatcolor`, `lpc.itemplaceholder`, `lpc.update` - `lpc.emoji`, `lpc.chatlinks`, `lpc.mention.exempt` - `lpc.mute`, `lpc.muted` - `lpc.bypass.spam`, `lpc.bypass.repeat`, `lpc.bypass.caps`, `lpc.bypass.profanity`, `lpc.bypass.advert` ### Known Limitations - Legacy color codes (`&a`, `§b`) in prefixes/suffixes are not supported – use MiniMessage.
release

LPC Minimessage - Chat Formatter 3.7.0

3.7.0
17 окт. 2025 г.37,2 тыс.Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10bukkit, paper, purpur, spigot
Скачать
Что нового
# 1.21.10 SUPPORT! >
release

LPC Minimessage - Chat Formatter 3.6.9

3.6.9
12 мая 2025 г.12,5 тыс.Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5bukkit, paper, purpur, spigot
Скачать
Что нового
# SPIGOT SUPPORT (BETA) and **1.21.5** Support! - Updated to the newest Gradle #8 ### Important: Hoverevent with the **Spigot** is at the moment not working! ![LPC CHAT Formatter](https://github.com/user-attachments/assets/dfff4e6f-75f9-4dc7-8ea9-a6710898c215)
release

LPC Minimessage - Chat Formatter 3.6.8

3.6.8
30 дек. 2024 г.2,7 тыс.Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4paper, purpur
Скачать
Что нового
# [3.6.8 UPDATE 1.21.4 SUPPORT](https://modrinth.com/plugin/lpc-minimessage-chat-formatter/changelog) ### - Some Fixes and 1.21.4 Supprot! **Support my New Project: https://dev.varilx.de/**
release

LPC Minimessage - Chat Formatter 3.6.8

3.6.8
30 дек. 2024 г.409Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4paper, purpur
Скачать
Что нового
# [3.6.8 UPDATE 1.21.4 SUPPORT](https://modrinth.com/plugin/lpc-minimessage-chat-formatter/changelog) ### - Some Fixes and 1.21.4 Supprot! *Support my New Project: https://dev.varilx.de/