Sueta

LPC Minimessage - Chat Formatter

4.4.0

A chat formatting with Minimessage Support plugin for LuckPerms.

·Plugin

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 ✅

Similar projects

Plugin →