Перейти к содержимому
Mineforgian

CoreChatX

CoreChatX is a complete communication suite for Minecraft servers. It brings multiple chat-related features into one polished system.

Загрузки
315
Подписчики
2
Обновлён
26 июня 2026 г.
Лицензия
All-Rights-Reserved

Опубликован 6 мая 2026 г.

CoreChatX Feature List

CoreChatX is a complete communication suite for Minecraft servers. It brings chat, private messages, persistent nicknames, channels, mentions, pings, chat item previews, chat bubbles, moderation, player settings, locales, and external bridges into one polished system.

The idea is simple: server chat should feel like one product, not a stack of separate plugins that each need their own configuration, commands, and maintenance.

This page is a commercial-style feature overview. Exact config keys, defaults, limits, and operational details are documented at https://icewolf23x.github.io/CoreChatX-website/

Current release: 2026.2.4


Why CoreChatX

Many servers end up installing one plugin for chat, another for private messages, another for nicknames, another for mentions, another for channels, another for Discord, another for Telegram, another for chat bubbles, another for item previews, and then one more just to keep the whole setup consistent.

That works, technically. It also turns chat into a maintenance hobby.

CoreChatX is built for server owners who want the whole communication experience to feel consistent:

  • one visual language
  • one permission model
  • one player settings flow
  • one network-aware chat layer
  • one place to manage public chat, PMs, nicknames, channels, pings, bridges, moderation, and rich interactions

It is not trying to be "yet another chat plugin". It is trying to replace scattered chat-related plugin stacks with one clean, friendly, server-ready system.


Stats

CoreChatX Paper/Purpur Chart

CoreChatX Velocity Chart

Current State

CoreChatX currently:

  • supports Paper 1.21.11
  • targets Java 21
  • ships separate corechatx-paper and corechatx-velocity runtime jars
  • uses CoreChatX as the Paper plugin name
  • uses corechatx as the Velocity plugin id
  • works on standalone Paper servers
  • works on Velocity networks with one or more isolated CoreChatX proxy groups
  • supports group-local network chat, PMs, player settings, nicknames, runtime data, Discord links, and ChatItem snapshots
  • supports Discord inbound and outbound messages
  • supports Telegram inbound and outbound messages
  • supports Telegram forum topic routing
  • supports per-channel Discord and Telegram bridge format overrides
  • supports source-specific mention gates for Minecraft, Discord, and Telegram text
  • supports optional Discord-Minecraft account linking
  • supports Discord required-link-to-play and required-role-to-play gates
  • supports Discord nickname sync from Minecraft nicknames, with fallback to the real Minecraft player name
  • supports Discord connection, death, advancement, and server-status embeds
  • supports Discord console channels, player-list output, and channel description updates
  • supports Discord ChatItem PNG previews and item inspection menus
  • supports Discord custom emoji expansion from Minecraft messages
  • supports Discord inbound attachments as clickable Minecraft file links
  • supports legacy color and hex formatting conversion from trusted server-side values before rendering
  • includes optional chat bubbles above players
  • includes persistent CoreChatX nicknames with granular color, style, hex, and gradient permissions
  • supports local Paper or proxy-routed join, quit, and first-join announcements
  • has been tested on standalone Paper and Velocity network setups
  • documents proprietary CoreChatX code and external third-party libraries through LICENSE and THIRD-PARTY-NOTICES.md

One Suite, Not Ten Plugins

CoreChatX covers the core communication stack:

  • public chat
  • private messages
  • persistent nicknames
  • real-name lookup for nicknames
  • replies
  • channels
  • channel shortcuts
  • mentions
  • custom pings
  • interactive keywords
  • chat item previews
  • chat bubbles
  • moderation tools
  • player settings
  • locale support
  • Discord bridge
  • Telegram bridge
  • standalone and Velocity network setups

The value is not just the feature count. The value is that these features know about each other.

Channels can affect formatting, permissions, mention delivery, ChatItems, chat bubbles, and bridge export. Mentions can respect player settings and channel read permissions. Private messages can work with social spy and ignore rules. Network chat can carry rich Adventure components and ChatItem preview references. Bridges can follow channel routing instead of acting like a separate side project.

That is the difference between a chat system and separate plugins with overlapping commands and disconnected configuration.


Polished Public Chat

CoreChatX gives public chat the kind of foundation players actually notice:

  • clean chat formats
  • rank-aware layouts
  • channel-aware layouts
  • LuckPerms prefix support
  • PlaceholderAPI support in server-controlled templates
  • persistent nickname support
  • join, quit, and first-join messages
  • message cleanup and sanitization
  • safe conversion of legacy color codes and legacy hex color values in trusted server-side text
  • anti-repeat checks
  • anti-caps checks
  • word filtering

Player-written messages stay safe. Server-owned templates can use dynamic placeholders, while normal player input is kept under control before it becomes a rich chat component.


Kyori Adventure And MiniMessage

CoreChatX is built around Kyori Adventure and MiniMessage formatting. That means server owners can create modern chat components without being trapped in old color-code-only formatting.

MiniMessage support makes it easy to use:

  • colors
  • gradients
  • hover text
  • click actions
  • suggested commands
  • copy-to-clipboard actions
  • reusable formatting patterns
  • clean rich text across chat, messages, previews, bridge output, embeds, and command feedback

CoreChatX also handles legacy formatting returned by plugins such as PlaceholderAPI, LuckPerms, and Essentials-style nickname providers before building the final Adventure component. That helps server owners keep modern MiniMessage templates without breaking when another plugin still returns old color-code or hex-color output.

This gives CoreChatX a modern Paper-native feel instead of a legacy chat setup with richer formatting bolted on afterward.


PlaceholderAPI-Powered Interactions

CoreChatX can combine MiniMessage with PlaceholderAPI inside server-controlled templates.

That opens the door to fast, flexible interactions based on:

  • player data
  • ranks and groups
  • economy values
  • server stats
  • world data
  • progression systems
  • installed PlaceholderAPI expansions
  • custom server logic exposed through placeholders

CoreChatX also exposes useful PlaceholderAPI values to other plugins, including:

  • %corechatx_player_nickname%
  • %corechatx_first_join_date%
  • %corechatx_messages_count%

In practice, this means server owners can build dynamic chat interactions without extra glue just to make a hover line, bridge message, Discord channel description, or click action show something useful.

If PlaceholderAPI can expose it, CoreChatX can help turn it into part of the chat experience.

On Velocity, optional PAPIProxyBridge support can resolve PlaceholderAPI values for proxy-owned surfaces such as player list rows, Discord channel descriptions, join/quit messages, and fallback Discord formats. If a proxy placeholder lookup cannot complete in time, CoreChatX falls back instead of letting the message path wait indefinitely.


Persistent Nicknames

CoreChatX includes a full nickname layer instead of treating display names as a formatting afterthought.

Nickname features include:

  • /nick <nickname>
  • /nick off, /nick clear, and /nick reset
  • staff nickname edits for other online players
  • /realname <nickname> lookup
  • {player_name} for the real Minecraft username
  • {player_nickname} for the visible CoreChatX nickname, with fallback to the real username
  • optional nicknames.prefix shown only when a custom nickname exists
  • optional color-only mode through nicknames.change-only-colors
  • named colors, safe MiniMessage styles, hex colors, gradients, and legacy color-code input
  • per-color and per-style nickname permissions
  • duplicate nickname protection
  • proxy-group nickname synchronization

Nicknames are used across chat, PMs, social spy, broadcasts, join/quit/first-join messages, mentions, ChatItem preview titles, PlaceholderAPI output, and Discord account-linked identity where enabled.

The real player identity stays stable internally. Routing, ignore rules, replies, account links, and runtime state still use UUIDs and real Minecraft names, while the visible presentation can use the configured nickname.


Interactive Keywords

Interactive keywords let players type simple tokens such as:

  • [discord]
  • [rules]
  • [store]
  • [vote]
  • [map]

CoreChatX can turn those tokens into polished clickable chat elements.

They can include:

  • hover text
  • click commands
  • suggested commands
  • URLs
  • copied text
  • optional permissions
  • channel restrictions
  • optional PlaceholderAPI rendering

This is the kind of small feature that often becomes "add another plugin". Here, it is just part of the chat suite.


Mentions And Pings

Mentions and pings are built directly into the message flow.

They support:

  • player mentions
  • @Player and exact-name mention behavior
  • nickname-aware mention suggestions
  • custom ping triggers
  • sound notifications
  • actionbar notifications
  • per-player ping toggles
  • staff-friendly ping rules
  • cross-server mention awareness
  • mention formatting based on the mentioned player
  • channel read-permission checks before a target is pinged
  • source-specific mention gates for Minecraft, Discord, and Telegram
  • Discord role allow-lists for custom pings triggered from Discord

If a player cannot read the channel where they were mentioned, CoreChatX does not ping them and does not render their name as an @ mention.

Because mentions are part of CoreChatX itself, they can work with formatting, notifications, privacy choices, custom nicknames, channel permissions, and Velocity network presence instead of pretending every server is isolated.


Channels

CoreChatX supports multiple channel styles:

  • global chat
  • local chat
  • staff chat
  • network-wide chat
  • role-based chat spaces
  • custom server-defined channels

Channels can decide:

  • who can send
  • who can receive
  • which features are enabled
  • how messages look
  • whether chat bubbles are allowed
  • whether ChatItems are allowed
  • whether messages can be exported to Discord or Telegram
  • which Discord or Telegram target should receive bridge output
  • which per-channel bridge format override should be used
  • which sources are allowed to create mentions
  • which shortcut command should control the channel

Channel shortcuts can be configured per channel. For example, /ac can switch a player to adminchat, while /ac <message> can send a one-shot message to that channel without changing the player's currently selected active channel.

This keeps channel behavior centralized instead of scattered across several plugins with separate ideas of how chat should behave.


Private Messages

Private messaging is part of the same communication system as public chat.

Included tools:

  • direct messages
  • reply command
  • social spy
  • ignore controls
  • PM toggle
  • delivery feedback
  • cross-server private messages
  • group-local private messages on Velocity networks

The result is a PM system that understands the rest of the plugin: privacy, moderation, network routing, formatting, nicknames, and player settings all live in the same ecosystem.


Moderation Tools

CoreChatX includes the everyday moderation controls a real server needs:

  • player mute
  • unmute
  • global chat mute
  • clear chat
  • anti-repeat checks
  • anti-caps checks
  • word filtering
  • staff bypass permissions
  • mute-aware Discord account linking behavior
  • bridge-origin permission checks for linked Discord users

Moderation is handled inside the chat layer itself. That means it works naturally with channels, private messages, network behavior, Discord-linked users, and player settings.

This avoids making separate moderation and chat tools duplicate or guess each other's state.


Chat Item Previews

Players can share clickable previews for:

  • held items
  • shulker contents
  • armor
  • hotbar
  • inventory
  • ender chest

Supported chat tokens include:

  • [item]
  • [i]
  • [armor]
  • [hotbar]
  • [inventory]
  • [inv]
  • [enderchest]
  • [ender]
  • [ec]

ChatItem token formats can use:

  • {token}
  • {name}
  • {material}
  • {amount}

{name} uses the custom item name when present, then the item name, then the material fallback.

Multiple ChatItem tokens in the same message can reuse the same captured player state while still opening the correct view.

On a Velocity network, players on another backend can still click and open the preview through lightweight snapshot references and on-demand retrieval. That keeps network chat cleaner and avoids stuffing heavy item data into the main chat packet.

When Discord image rendering is enabled, Minecraft-to-Discord ChatItem messages can attach rendered PNG previews. Inventory-like renders can include dropdown menus, and Discord users can inspect individual items through ephemeral Minecraft-style tooltip panels with names, lore, enchantments, stored enchanted-book enchantments, potion effects, attributes, armor trims, and durability.

Expired Discord item inspection actions now return a clear expired or unavailable message instead of loading forever.

Admins can also warm the item render cache with:

  • /corechatx itemcache warmup
  • /corechatx itemcache status
  • /corechatx itemcache cancel

This helps make Discord item previews appear faster after the cache has been prepared.


Chat Bubbles

CoreChatX can show recent chat messages above player heads.

Bubble features include:

  • player toggle
  • channel rules
  • world rules
  • sneaking checks
  • invisibility checks
  • configurable duration
  • message wrapping
  • stacked recent messages
  • distance-based visibility
  • cleanup on quit, reload, and shutdown

Chat bubbles use the already processed message, so filtering, channels, mentions, nicknames, and keywords have already done their job.

On a network, bubbles stay local to the server where the sender is physically playing. That keeps the feature useful without pretending an overhead bubble can float across servers.


Player Controls

Players get direct control over important communication preferences:

  • settings menu
  • ping toggles
  • PM toggle
  • nickname management
  • channel switching
  • channel shortcuts
  • chat bubble toggle
  • locale selection
  • ignore list controls
  • Discord account link and unlink commands when enabled

This makes CoreChatX feel like a player-facing feature, not just an admin-side config file with a chat command attached.


Locale Support

CoreChatX includes a practical locale foundation:

  • per-player locale selection
  • locale override files
  • fallback to the main message file
  • cleaner control over player-facing wording

This is useful for multilingual communities and for servers that want every message to sound like it belongs to their brand.


Discord And Telegram Bridges

CoreChatX includes built-in bridge support.

Important disclosure: Discord and Telegram bridges are optional and only run when the server owner enables and configures them. When enabled, CoreChatX can send selected chat content, player display names, channel labels, rich message data, and related message formatting to the Discord or Telegram services configured by the server owner. Inbound bridge messages can also bring Discord or Telegram messages back into configured Minecraft channels.

Bridge features include:

  • Discord outbound messages
  • Discord inbound messages
  • Telegram outbound messages
  • Telegram inbound messages
  • Telegram forum topic routing
  • per-channel bridge targets
  • per-channel Discord and Telegram bridge format overrides
  • fully configurable Discord inbound format
  • Discord inbound attachment forwarding as clickable Minecraft file links
  • Discord ChatItem image attachments and item inspection menus for Minecraft-origin messages
  • Discord text channel description updates with internal placeholders and optional PlaceholderAPI values
  • Discord player-list text and slash commands
  • Discord console command channels for standalone Paper, backend console bots, and Velocity proxy commands
  • PlaceholderAPI and rank prefix support in Discord outbound format templates
  • Discord role names and role colors available to Minecraft chat formats
  • Discord custom emoji expansion for Minecraft-to-Discord messages
  • optional Discord account linking for Minecraft-backed inbound identity
  • optional Discord nickname sync from the Minecraft nickname or real player name
  • optional link-to-play enforcement with a Discord link code in the Minecraft denial or kick reason
  • optional Discord role gates for players joining the server
  • group-specific required-role gates on Velocity networks
  • route-level and channel-level account-link overrides
  • channel prefix support in Discord inbound format templates
  • source-specific mention gates for Minecraft, Discord, and Telegram inbound text
  • Discord role allow-lists for bridge-origin custom pings
  • connection, first-join, quit, death, and advancement embeds
  • server online and offline status embeds
  • rank prefix support in Telegram outbound format templates
  • channel-level bridge export control
  • config-load warnings for bad bridge placeholders or inbound MiniMessage syntax
  • global bridge master switch
  • cleaner reload and shutdown behavior
  • safe message length handling

Bridge formatting is sanitized where it matters. CoreChatX can strip MiniMessage, legacy, and hex formatting from identity/template fragments before sending to external services, while preserving the real player message content.

The bridge layer is treated as part of the chat system, not as a separate external pipe with unrelated routing rules.

That matters because channel rules, formatting, network behavior, and bridge routing should agree with each other. If they do not, players notice. Admins notice faster.


Velocity Network Support

CoreChatX supports both standalone Paper servers and Velocity networks.

In network mode, it can keep these features working across servers:

  • group-local network chat channels
  • group-local cross-server private messages
  • player communication settings
  • persistent nicknames
  • Velocity-owned runtime storage for proxy mode
  • player real-name and nickname suggestions
  • TAB entries where available
  • mentions and pings
  • group-local Discord account-link sync
  • interactive keyword behavior
  • ChatItem preview access
  • proxy-routed join, quit, and first-join announcements
  • Velocity-owned velocity-messages.yml formats for proxy join, quit, and first-join messages
  • proxy-routed group broadcasts
  • Discord player-list output for the matching group
  • Discord bridge export without duplicate network messages
  • Discord event embeds for accepted backend death and advancement events
  • Discord server-status embeds for proxy startup, proxy shutdown, and backend online/offline changes

In multi-channel mode, each Velocity network-channel value is an isolated CoreChatX group. Chat, PMs, player directory data, state sync, nicknames, mutes, Discord links, pending link codes, Discord image transfer, and ChatItem snapshot routing stay inside the matching group.

Velocity can also monitor backend servers listed in backend-groups.* and announce online/offline changes to Discord when discord.server-status is enabled.

When login gates are enabled, backend-groups.<server> lets Velocity resolve the target CoreChatX group before the player fully enters a backend. That allows required Discord link and role checks to happen at the proxy boundary instead of depending on a backend with an online carrier player.

This is where the "one suite" approach matters most. A network setup should not require a separate plugin stack on every backend just to make messages, toggles, mentions, nicknames, join/leave behavior, bridges, and PMs understand that players moved servers.


Commands

CoreChatX includes commands for:

  • plugin management
  • /corechatx root command
  • /ccx root command alias
  • /corechatx itemcache
  • /nick
  • /realname
  • /discord link
  • /discord unlink
  • /discord linked
  • private messages
  • replies
  • social spy
  • broadcast
  • nicknames
  • real-name lookup for custom nicknames
  • Discord account linking
  • ping controls
  • channel controls
  • channel shortcuts
  • ignore controls
  • PM toggle
  • settings menu
  • locale selection
  • mute and unmute
  • global chat mute
  • clear chat

The commands are designed around the same communication layer, so they feel connected instead of random.


Admin Experience

CoreChatX includes practical behavior for server owners:

  • clear startup information
  • version and author shown on startup
  • Paper or Velocity architecture shown on startup
  • CORECHATX startup banner
  • corechatx.* permission namespace
  • corechatx:main default network channel
  • safer config validation
  • default config key synchronization
  • cleaner failure handling
  • safer network message handling
  • bridge lifecycle handling on reload and shutdown
  • config regeneration support
  • Discord ChatItem render cache warmup
  • documented proprietary code and third-party dependency notices
  • no shaded runtime jars
  • Paper external runtime libraries declared through plugin.yml
  • Velocity external libraries downloaded into plugins/CoreChatX/libs with startup logs showing whether libraries were downloaded or already present
  • automatic missing-default restoration for Paper YAML files and Velocity YAML/properties files
  • runtime data ownership rules for standalone Paper and Velocity proxy deployments
  • explicit mixed-version warnings for Paper and Velocity jar pairs

These are not flashy player-facing features, but they make day-to-day operation much easier to trust and maintain.


Verified

The current project state has been tested through:

  • build and test passes
  • release packaging checks
  • standalone Paper startup
  • Velocity startup
  • Paper startup in network mode
  • command checks
  • config regeneration checks
  • Discord bridge checks
  • ChatItem rendering and cache checks
  • live Paper test environment checks
  • live Velocity network test environment checks

Future Direction

CoreChatX is designed to grow into a broader communication hub for common server social systems, such as:

  • clans and guilds
  • towns and settlements
  • lands and territories
  • parties and lightweight groups

The goal is to make chat aware of the communities players actually build, while keeping communication centralized, consistent, and pleasant to use.


Summary

CoreChatX gives a server:

  • polished public chat
  • Kyori Adventure MiniMessage formatting
  • PlaceholderAPI-powered dynamic templates
  • persistent nicknames
  • legacy formatting compatibility
  • interactive keywords
  • mentions and pings
  • channels and channel shortcuts
  • private messages
  • moderation tools
  • ChatItem previews
  • chat bubbles
  • player settings
  • locale support
  • Discord and Telegram bridges
  • Discord account linking and optional login gates
  • Discord connection, event, and server-status embeds
  • Discord ChatItem image rendering, player-list commands, console channels, channel descriptions, custom emoji, and attachment forwarding
  • standalone Paper support
  • Velocity network support

In short, CoreChatX is for servers that want communication to feel intentional.

If your chat setup needs several plugins, multiple bridge configs, and extra placeholder glue just to produce one consistent message, CoreChatX is built to make that experience simpler.

Also try


CoreToolsX logo
      CoreToolsX      


CoreArmorX logo
      CoreArmorX      


CoreChatX logo
      CoreChatX      


CoreCaseX logo
      CoreCaseX      


CoreExtractionX logo
   CoreExtractionX   

~~~~

Ченджлог

2026.2.5Релиз26.1, 26.1.1, 26.1.2 · 26 июня 2026 г.

CoreChatX 2026.2.5

Added

  • Added bStats metrics for Paper and Velocity.
  • Added configurable public-chat /ignore behavior through ignore.public-chat-mode and per-channel channels.<id>.ignore.public-chat-mode.

Fixed

  • Fixed public mention and custom-ping ignore handling so notifications-only blocks notifications from ignored players while keeping their public chat messages visible.
  • Fixed hide-message public-chat ignore mode so ignored players' public channel messages are not delivered to the viewer, including network and Discord bridge deliveries.
  • Fixed legacy formatting permission checks so denied nodes such as corechatx.format.color.aqua can reliably block matching & color codes.
  • Fixed denied legacy formatting codes being converted anyway after a second formatting pass.

Configuration

privacy.yml now supports:

ignore:
  public-chat-mode: "notifications-only"

channels.yml now supports per-channel overrides:

channels:
  global:
    ignore:
      public-chat-mode: "inherit"

Valid public-chat ignore modes are off, notifications-only and hide-message. Per-channel overrides also support inherit.

Permissions

  • Added corechatx.format.color, corechatx.format.color.*, corechatx.format.style and corechatx.format.style.* as group permission nodes for player-authored legacy formatting.

Technical

  • Paper and Velocity jars now include bStats' MIT-licensed single-file implementation and license notices without adding shaded external library jars.
2026.2.5Релиз26.1, 26.1.1, 26.1.2 · 26 июня 2026 г.

CoreChatX 2026.2.5

Added

  • Added bStats metrics for Paper and Velocity.
  • Added configurable public-chat /ignore behavior through ignore.public-chat-mode and per-channel channels.<id>.ignore.public-chat-mode.

Fixed

  • Fixed public mention and custom-ping ignore handling so notifications-only blocks notifications from ignored players while keeping their public chat messages visible.
  • Fixed hide-message public-chat ignore mode so ignored players' public channel messages are not delivered to the viewer, including network and Discord bridge deliveries.
  • Fixed legacy formatting permission checks so denied nodes such as corechatx.format.color.aqua can reliably block matching & color codes.
  • Fixed denied legacy formatting codes being converted anyway after a second formatting pass.

Configuration

privacy.yml now supports:

ignore:
  public-chat-mode: "notifications-only"

channels.yml now supports per-channel overrides:

channels:
  global:
    ignore:
      public-chat-mode: "inherit"

Valid public-chat ignore modes are off, notifications-only and hide-message. Per-channel overrides also support inherit.

Permissions

  • Added corechatx.format.color, corechatx.format.color.*, corechatx.format.style and corechatx.format.style.* as group permission nodes for player-authored legacy formatting.

Technical

  • Paper and Velocity jars now include bStats' MIT-licensed single-file implementation and license notices without adding shaded external library jars.
2026.2.4Релиз26.1, 26.1.1, 26.1.2 · 16 июня 2026 г.

CoreChatX 2026.2.4

Added

  • Added batched Discord console live logs for Paper and Velocity. CoreChatX now edits the latest bot log message until the configured size limit is reached, then sends a new silent message.
  • Added real Velocity proxy console live-log support through discord.console.live-log.
  • Added nicknames.allow-special-characters, default false, to keep /nick visible text limited to A-Z, a-z, 0-9 and _ unless explicitly enabled.
  • Added per-event Discord mirror overrides under discord.event-messages.events.death and discord.event-messages.events.advancement.
  • Added ChatItem snapshot references to cross-server private messages so /msg and /reply can carry inspectable ChatItem previews through Velocity.

Changed

  • Discord console live logs now use discord.console.live-log-format.* for max-message-chars, monospace, line-prefix, date-format and hour-format.
  • /msg and /reply now render configured ChatItem tokens such as [i], [item], [inv] and related aliases instead of sending them as plain text.
  • Discord item detail tooltips now resolve MiniMessage tags, including formatting and gradients, before the image renderer draws the tooltip text.
  • /msg tab completion now includes matching custom nicknames and avoids suggesting the sender's own real name or nickname.
  • Network chat completion entries now include plain custom nicknames, with support for @nickname completions.
  • Velocity Discord nickname sync now includes the configured Minecraft nickname prefix when the player has a custom nickname, while keeping the real-name fallback unprefixed.
  • Velocity third-party library logs now use the CoreChatX startup banner style and summarize present, missing and downloaded libraries without duplicate status lines.

Fixed

  • Fixed Discord inbound messages after a restart sometimes reaching Minecraft without the linked player's LuckPerms prefix. CoreChatX now waits for async LuckPerms user data before final delivery.
  • Fixed linked Discord inbound permission checks for offline linked players by resolving channel send permission and mute-chat bypass through async LuckPerms checks.
  • Fixed private-message target lookup so custom nicknames can resolve to the real Minecraft username before local or cross-server delivery.
  • Fixed Velocity private-message ChatItem routing so remote preview requests can be forwarded back to the backend that owns the original snapshot.
  • Fixed Discord ChatItem selected-item actions so expired or unavailable previews return a Discord message instead of leaving the interaction pending.
  • Fixed Velocity Discord inbound fanout so a message that cannot be delivered to any backend in the CoreChatX group returns a clear failure instead of failing silently.
  • Fixed Velocity Discord console command replies so commands with no output no longer send the debug-style Command executed. No command output was captured. message, and translatable Velocity command output such as !glist all is rendered as readable text instead of raw translation keys.
  • Fixed discord.connection-messages.channels fallback semantics so empty lists fall back to discord.default-channel-id, and the configured values are treated as Discord channel IDs.
  • Fixed Velocity Discord inbound handling so route dispatch runs through the Velocity scheduler when the proxy runtime is available.

Configuration

New or changed default keys:

  • config.yml -> nicknames.allow-special-characters
  • discord.yml -> discord.console.live-log-format.max-message-chars
  • discord.yml -> discord.console.live-log-format.monospace
  • discord.yml -> discord.console.live-log-format.line-prefix
  • discord.yml -> discord.console.live-log-format.date-format
  • discord.yml -> discord.console.live-log-format.hour-format
  • discord.yml -> discord.event-messages.events.death
  • discord.yml -> discord.event-messages.events.advancement
  • velocity-discord.yml -> discord.console.live-log-format.max-message-chars
  • velocity-discord.yml -> discord.console.live-log-format.monospace
  • velocity-discord.yml -> discord.console.live-log-format.line-prefix
  • velocity-discord.yml -> discord.console.live-log-format.date-format
  • velocity-discord.yml -> discord.console.live-log-format.hour-format
  • velocity-discord.yml -> discord.event-messages.events.death
  • velocity-discord.yml -> discord.event-messages.events.advancement

Compatibility

  • CoreChatX proxy protocol is now version 27; update Paper and Velocity jars together.
  • Velocity third-party libraries are expected under the lowercase plugin data folder path plugins/corechatx/libs.

Migration

  • If discord.connection-messages.channels is configured, keep Discord channel IDs in that list.
  • If you customized death-format, advancement-format, death-color, advancement-color, death-description or advancement-description, move those values into the matching discord.event-messages.events.<event> section.
  • Review discord.console.live-log-format.* if Discord console logging is enabled, especially if you do not want monospace code blocks or timestamp prefixes.
2026.2.4Релиз26.1, 26.1.1, 26.1.2 · 16 июня 2026 г.

CoreChatX 2026.2.4

Added

  • Added batched Discord console live logs for Paper and Velocity. CoreChatX now edits the latest bot log message until the configured size limit is reached, then sends a new silent message.
  • Added real Velocity proxy console live-log support through discord.console.live-log.
  • Added nicknames.allow-special-characters, default false, to keep /nick visible text limited to A-Z, a-z, 0-9 and _ unless explicitly enabled.
  • Added per-event Discord mirror overrides under discord.event-messages.events.death and discord.event-messages.events.advancement.
  • Added ChatItem snapshot references to cross-server private messages so /msg and /reply can carry inspectable ChatItem previews through Velocity.

Changed

  • Discord console live logs now use discord.console.live-log-format.* for max-message-chars, monospace, line-prefix, date-format and hour-format.
  • /msg and /reply now render configured ChatItem tokens such as [i], [item], [inv] and related aliases instead of sending them as plain text.
  • Discord item detail tooltips now resolve MiniMessage tags, including formatting and gradients, before the image renderer draws the tooltip text.
  • /msg tab completion now includes matching custom nicknames and avoids suggesting the sender's own real name or nickname.
  • Network chat completion entries now include plain custom nicknames, with support for @nickname completions.
  • Velocity Discord nickname sync now includes the configured Minecraft nickname prefix when the player has a custom nickname, while keeping the real-name fallback unprefixed.
  • Velocity third-party library logs now use the CoreChatX startup banner style and summarize present, missing and downloaded libraries without duplicate status lines.

Fixed

  • Fixed Discord inbound messages after a restart sometimes reaching Minecraft without the linked player's LuckPerms prefix. CoreChatX now waits for async LuckPerms user data before final delivery.
  • Fixed linked Discord inbound permission checks for offline linked players by resolving channel send permission and mute-chat bypass through async LuckPerms checks.
  • Fixed private-message target lookup so custom nicknames can resolve to the real Minecraft username before local or cross-server delivery.
  • Fixed Velocity private-message ChatItem routing so remote preview requests can be forwarded back to the backend that owns the original snapshot.
  • Fixed Discord ChatItem selected-item actions so expired or unavailable previews return a Discord message instead of leaving the interaction pending.
  • Fixed Velocity Discord inbound fanout so a message that cannot be delivered to any backend in the CoreChatX group returns a clear failure instead of failing silently.
  • Fixed Velocity Discord console command replies so commands with no output no longer send the debug-style Command executed. No command output was captured. message, and translatable Velocity command output such as !glist all is rendered as readable text instead of raw translation keys.
  • Fixed discord.connection-messages.channels fallback semantics so empty lists fall back to discord.default-channel-id, and the configured values are treated as Discord channel IDs.
  • Fixed Velocity Discord inbound handling so route dispatch runs through the Velocity scheduler when the proxy runtime is available.

Configuration

New or changed default keys:

  • config.yml -> nicknames.allow-special-characters
  • discord.yml -> discord.console.live-log-format.max-message-chars
  • discord.yml -> discord.console.live-log-format.monospace
  • discord.yml -> discord.console.live-log-format.line-prefix
  • discord.yml -> discord.console.live-log-format.date-format
  • discord.yml -> discord.console.live-log-format.hour-format
  • discord.yml -> discord.event-messages.events.death
  • discord.yml -> discord.event-messages.events.advancement
  • velocity-discord.yml -> discord.console.live-log-format.max-message-chars
  • velocity-discord.yml -> discord.console.live-log-format.monospace
  • velocity-discord.yml -> discord.console.live-log-format.line-prefix
  • velocity-discord.yml -> discord.console.live-log-format.date-format
  • velocity-discord.yml -> discord.console.live-log-format.hour-format
  • velocity-discord.yml -> discord.event-messages.events.death
  • velocity-discord.yml -> discord.event-messages.events.advancement

Compatibility

  • CoreChatX proxy protocol is now version 27; update Paper and Velocity jars together.
  • Velocity third-party libraries are expected under the lowercase plugin data folder path plugins/corechatx/libs.

Migration

  • If discord.connection-messages.channels is configured, keep Discord channel IDs in that list.
  • If you customized death-format, advancement-format, death-color, advancement-color, death-description or advancement-description, move those values into the matching discord.event-messages.events.<event> section.
  • Review discord.console.live-log-format.* if Discord console logging is enabled, especially if you do not want monospace code blocks or timestamp prefixes.
2026.2.3Релиз26.1, 26.1.1, 26.1.2 · 4 июня 2026 г.

CoreChatX 2026.2.3

Added

  • Added channel command shortcuts through channels.<id>.shortcut.
    • Running /shortcut switches the player to that CoreChatX channel.
    • Running /shortcut <message> sends one message to that channel without changing the player's active channel.
  • Added Discord nickname sync with account-linking.sync-mc-name for both Paper STANDALONE and Velocity PROXY. Linked Discord members can have their Discord nickname updated to the Minecraft nickname, falling back to the real player name when no custom nickname is set.
  • Added Discord event mirrors through discord.event-messages for death and advancement messages.
    • Paper STANDALONE can send the event embeds directly.
    • Velocity PROXY can send the accepted backend events once per CoreChatX group.
  • Added Discord server status embeds through discord.server-status.
    • Paper STANDALONE can announce clean server startup/shutdown.
    • Velocity PROXY can announce proxy startup/shutdown and backend online/offline state changes from backend-groups.*.
    • proxy, default, and servers.<id> entries can override channels, titles, descriptions, colors, and enabled flags.
  • Added /corechatx itemcache <warmup|status|cancel> with corechatx.command.itemcache to pre-render Discord ChatItem item icons into cache.
  • Added ChatItem token placeholders for in-game token formats: {token}, {name}, {material}, and {amount}. {name} uses custom_name, then item_name, then the material fallback.
  • Added LICENSE and THIRD-PARTY-NOTICES.md to document CoreChatX proprietary code and the third-party dependency notice summary.

Changed

  • Removed shaded jar packaging. Paper now declares external runtime libraries through plugin.yml libraries, while Velocity downloads its external third-party jars into plugins/CoreChatX/libs and logs whether libraries were downloaded or already present.
  • Discord ChatItem renders now default to discord-images.render.scale: 8, single-item-details-scale: 8, and single-item-details-icon-multiplier: 4.
  • Velocity PlaceholderAPI resolution through PAPIProxyBridge now times out after 3 seconds and falls back to the original text instead of waiting indefinitely.

Fixed

  • Fixed mentions and ping notifications for channels the target player cannot read. If the mentioned player cannot receive the channel, CoreChatX no longer pings them and no longer renders the name as an @ mention.
  • Fixed Discord selected-item inspection hanging forever when the selected snapshot expired or the selected item could not be rendered. Discord now receives the configured expired-message or unavailable-message.
  • Fixed intermittent missing Discord ChatItem previews in PROXY mode by sending preview packets on the server thread, allowing empty failure packets, retrying failed Discord image sends, and completing chunk transfers only once all chunks are available.
  • Fixed enchanted books in Discord item rendering by including stored enchantments from EnchantmentStorageMeta, so stored enchants can appear in tooltip data and trigger enchanted rendering.
  • Fixed Velocity Discord inbound delivery so backend plugin-message send failures are caught and logged per backend instead of silently breaking delivery.
  • Fixed Velocity connection-message routing so proxy join/quit fanout handles backend send failures and keeps group join tracking consistent.
  • Fixed Velocity YAML default synchronization for keys that existed with a null value, so missing defaults can be restored more consistently.

Configuration

New or changed default keys:

  • channels.<id>.shortcut
  • chatitems.yml -> tokens.item.token-format placeholders: {token}, {name}, {material}, {amount}
  • chatitems.yml -> discord-images.render.scale: 8
  • chatitems.yml -> discord-images.render.single-item-details-scale: 8
  • chatitems.yml -> discord-images.render.single-item-details-icon-multiplier: 4
  • account-linking.sync-mc-name
  • discord.event-messages
  • discord.server-status

plugin.yml now includes:

  • Paper runtime libraries
  • corechatx.command.itemcache

Migration

  • Review discord.connection-messages.channels if you enabled Discord join/quit mirrors. Values must now be Discord channel IDs, not CoreChatX channel IDs.
  • Review discord.server-status, discord.event-messages, and account-linking.sync-mc-name before enabling them, especially on Velocity networks.
  • Existing configs should receive missing default keys automatically, but server owners should still compare channels.yml, chatitems.yml, discord.yml, and velocity-discord.yml with the new defaults.
2026.2.3Релиз26.1, 26.1.1, 26.1.2 · 4 июня 2026 г.

CoreChatX 2026.2.3

Added

  • Added channel command shortcuts through channels.<id>.shortcut.
    • Running /shortcut switches the player to that CoreChatX channel.
    • Running /shortcut <message> sends one message to that channel without changing the player's active channel.
  • Added Discord nickname sync with account-linking.sync-mc-name for both Paper STANDALONE and Velocity PROXY. Linked Discord members can have their Discord nickname updated to the Minecraft nickname, falling back to the real player name when no custom nickname is set.
  • Added Discord event mirrors through discord.event-messages for death and advancement messages.
    • Paper STANDALONE can send the event embeds directly.
    • Velocity PROXY can send the accepted backend events once per CoreChatX group.
  • Added Discord server status embeds through discord.server-status.
    • Paper STANDALONE can announce clean server startup/shutdown.
    • Velocity PROXY can announce proxy startup/shutdown and backend online/offline state changes from backend-groups.*.
    • proxy, default, and servers.<id> entries can override channels, titles, descriptions, colors, and enabled flags.
  • Added /corechatx itemcache <warmup|status|cancel> with corechatx.command.itemcache to pre-render Discord ChatItem item icons into cache.
  • Added ChatItem token placeholders for in-game token formats: {token}, {name}, {material}, and {amount}. {name} uses custom_name, then item_name, then the material fallback.
  • Added LICENSE and THIRD-PARTY-NOTICES.md to document CoreChatX proprietary code and the third-party dependency notice summary.

Changed

  • Removed shaded jar packaging. Paper now declares external runtime libraries through plugin.yml libraries, while Velocity downloads its external third-party jars into plugins/CoreChatX/libs and logs whether libraries were downloaded or already present.
  • Discord ChatItem renders now default to discord-images.render.scale: 8, single-item-details-scale: 8, and single-item-details-icon-multiplier: 4.
  • Velocity PlaceholderAPI resolution through PAPIProxyBridge now times out after 3 seconds and falls back to the original text instead of waiting indefinitely.

Fixed

  • Fixed mentions and ping notifications for channels the target player cannot read. If the mentioned player cannot receive the channel, CoreChatX no longer pings them and no longer renders the name as an @ mention.
  • Fixed Discord selected-item inspection hanging forever when the selected snapshot expired or the selected item could not be rendered. Discord now receives the configured expired-message or unavailable-message.
  • Fixed intermittent missing Discord ChatItem previews in PROXY mode by sending preview packets on the server thread, allowing empty failure packets, retrying failed Discord image sends, and completing chunk transfers only once all chunks are available.
  • Fixed enchanted books in Discord item rendering by including stored enchantments from EnchantmentStorageMeta, so stored enchants can appear in tooltip data and trigger enchanted rendering.
  • Fixed Velocity Discord inbound delivery so backend plugin-message send failures are caught and logged per backend instead of silently breaking delivery.
  • Fixed Velocity connection-message routing so proxy join/quit fanout handles backend send failures and keeps group join tracking consistent.
  • Fixed Velocity YAML default synchronization for keys that existed with a null value, so missing defaults can be restored more consistently.

Configuration

New or changed default keys:

  • channels.<id>.shortcut
  • chatitems.yml -> tokens.item.token-format placeholders: {token}, {name}, {material}, {amount}
  • chatitems.yml -> discord-images.render.scale: 8
  • chatitems.yml -> discord-images.render.single-item-details-scale: 8
  • chatitems.yml -> discord-images.render.single-item-details-icon-multiplier: 4
  • account-linking.sync-mc-name
  • discord.event-messages
  • discord.server-status

plugin.yml now includes:

  • Paper runtime libraries
  • corechatx.command.itemcache

Migration

  • Review discord.connection-messages.channels if you enabled Discord join/quit mirrors. Values must now be Discord channel IDs, not CoreChatX channel IDs.
  • Review discord.server-status, discord.event-messages, and account-linking.sync-mc-name before enabling them, especially on Velocity networks.
  • Existing configs should receive missing default keys automatically, but server owners should still compare channels.yml, chatitems.yml, discord.yml, and velocity-discord.yml with the new defaults.
2026.2.2Релиз26.1, 26.1.1, 26.1.2 · 2 июня 2026 г.

CoreChatX 2026.2.2

Added

  • Added Discord image rendering for ChatItem tokens sent from Minecraft: [item], [i], [armor], [hotbar], [inventory], [inv], [enderchest], [ender], [ec], and shulker previews from [item].
    • In STANDALONE, Paper renders and sends the Discord attachment directly.
    • In PROXY, Paper renders the snapshot and Velocity sends the final Discord embed/attachment for the correct proxy group.
  • Added interactive Discord item inspection for non-[item] snapshots. Inventory-like renders can show dropdown menus; selecting an entry sends an ephemeral single-item preview to that Discord user. The menu expires with the same lifetime as the in-game ChatItem preview token.
  • Added Minecraft-style single item renders for Discord [item] previews. The generated image uses the Minecraft bitmap font, tooltip background, custom names, lore, enchantments, potion effects, attributes, armor trims, durability, and item icon rendering instead of plain Discord embed text.
  • Added Discord handling for inbound attachments. Discord images/files now appear in Minecraft as clickable [filename] components with hover text and an open-url click action; messages with only attachments are forwarded too.
  • Added Discord console support:
    • discord.console in Paper discord.yml can run a standalone or per-backend console bot.
    • discord.console in Velocity velocity-discord.yml can run proxy console commands from Discord.
    • command-prefix: "" is allowed and makes every message in the console channel execute as a command.
  • Added Discord player-list command support for both Paper STANDALONE and Velocity PROXY.
    • Text command default: !playerlist.
    • Slash command default: /playerlist.
    • Velocity resolves the target proxy group from discord.inbound.channel-routes.
  • Added Discord text channel description updates through discord.channel-description.
    • Paper STANDALONE: updates standalone channel topics.
    • Velocity PROXY: updates text channel topics per configured network-channel.
    • Internal placeholders: {online} and {online_in_group}.
    • PlaceholderAPI placeholders are supported on Paper; Velocity can resolve them through PAPIProxyBridge when installed.
  • Added Velocity-owned join/quit/first-join announcements for deployment.mode: PROXY.
    • Velocity now decides join/quit based on proxy group entry, group switch, and proxy disconnect.
    • Switching backend inside the same CoreChatX group does not announce join/quit.
    • Switching between groups sends quit to the old group and join to the new group.
  • Added group-wide broadcast routing in PROXY mode. Paper /broadcast <message> now fans out to the current Velocity group instead of only the local backend, and Velocity also provides /broadcast.
  • Added player head rendering support for name-only profile components such as minecraft:player_head[minecraft:profile="IceWolf23X"], in addition to heads that already contain texture properties.

Changed

  • ChatItem in-game previews now use more compact layouts for single/small snapshots:
    • [item] opens a 5-slot hopper preview with the item centered.
    • [armor] opens a 5-slot hopper preview with helmet, chestplate, leggings, boots, and offhand.
    • [inventory], [hotbar], [enderchest], and shulker previews keep their existing snapshot sizes.
  • Velocity Discord bridge output can resolve PlaceholderAPI placeholders through optional PAPIProxyBridge for Velocity-side formats such as player list rows, channel descriptions, join/quit messages, and fallback Discord formats.
  • Paper discord.yml is now clearly split by runtime responsibility:
    • STANDALONE owns Discord bridge, account linking, login gates, player list, channel descriptions, and console.
    • PROXY keeps bridge/account-linking/login gates on Velocity, while Paper can still run a console-only backend bot if configured.

Fixed

  • Fixed PlaceholderAPI placeholders staying unresolved in cross-server messages when the message had to be routed through Velocity.

  • Fixed proxy join/quit symptoms where quit messages could be missing, duplicated, or formatted differently depending on which backend still had players online.

  • Fixed Minecraft-to-Discord raw mention abuse. Players typing raw Discord mention syntax like <@...>, role mentions, @everyone, or @here can now be blocked from pinging Discord users/roles.

  • Fixed Discord inbound attachment forwarding so attachment-only Discord messages are no longer dropped before reaching Minecraft.

  • Fixed config synchronization behavior so missing default keys are added back to Paper YAML configs and Velocity YAML/properties configs instead of requiring a clean file for every new option.

Configuration

chatitems.yml now supports Discord image rendering and item menu configuration:

discord-images:
  enabled: true
  max-images-per-message: 3
  embed:
    title:
      item: "{item_name}"
      armor: "{player_nickname}'s armor"
      hotbar: "{player_nickname}'s hotbar"
      inventory: "{player_nickname}'s inventory"
      enderchest: "{player_nickname}'s ender chest"
      shulker: "{player_nickname}'s shulker"
    description:
      item:
        - "{enchantments}"
        - "{attributes}"
        - "{potion_effects}"
        - "{lore}"
        - "{armor_trim}"
        - "{banner_patterns}"
        - "{unbreakable}"
        - "{can_place_on}"
        - "{can_break}"
        - "{book_metadata}"
        - "{firework_data}"
        - "{durability_line}"
      armor: []
      hotbar: []
      inventory: []
      enderchest: []
      shulker: []
  item-menu:
    enabled: true
    placeholder: "Inspect an item"
    label-format: "Slot {slot}: {item_display_name}"
    description-format: "x{amount} - {material}"
    expired-message: "This ChatItem preview has expired."
    unavailable-message: "That item preview is unavailable."
  render:
    scale: 5
    single-item-details-scale: 5
    single-item-details-icon-multiplier: 3
  assets:
    minecraft-version: "auto"
    download-vanilla-assets: true
    resource-packs: []
  • discord-images.embed.title.*: controls Discord embed titles; for [item], the title is rendered into the PNG tooltip panel.
  • discord-images.embed.description.item: controls single-item tooltip details. Empty metadata placeholders are skipped, so missing lore/enchantments/durability do not leave unwanted blank detail sections.
  • discord-images.item-menu.*: controls the Discord dropdown menu shown under multi-item snapshots.
  • discord-images.render.scale: pixel scale for inventory-like renders.
  • discord-images.render.single-item-details-scale: pixel scale for the single-item tooltip text/background.
  • discord-images.render.single-item-details-icon-multiplier: multiplier applied only to the item icon in the single-item details panel.
  • discord-images.assets.resource-packs: optional resource pack zip/folder paths used before vanilla fallback assets.

discord.yml and velocity-discord.yml now include:

discord:
  prevent-mentions-from-minecraft: true
  connection-messages:
    enabled: false
    join-format: ""
    first-join-format: ""
    quit-format: ""
    embed:
      enabled: false
      join-color: "#57F287"
      first-join-color: "#57F287"
      quit-color: "#ED4245"
      join-description: ""
      first-join-description: ""
      quit-description: ""
  console:
    enabled: false
    channel-id: ""
    command-prefix: "!"
  player-list:
    enabled: false
    command: "!playerlist"
    register-slash-command: true
    slash-command-name: "playerlist"
  channel-description:
    enabled: false
    interval-seconds: 300
    triggers:
      on-connection: true
      on-disconnection: true
      event-debounce-seconds: 5
    entries: []

Velocity velocity-discord.yml also supports group-aware options:

account-linking:
  required-play-roles:
    groups:
      # corechatx:survival:
      #   enabled: true
      #   role-ids:
      #     - "123456789012345678"

discord:
  channel-description:
    triggers:
      on-group-change: true
    entries:
      # - channel-id: "123456789012345678"
      #   network-channel: "corechatx:survival"
      #   description: "Players {online_in_group}/{online}"
  inbound:
    channel-routes:
      # "123456789012345678":
      #   channel: "global"
      #   network-channel: "corechatx:survival"
      #   require-linked: inherit

New Velocity message file:

# velocity-messages.yml
nicknames:
  prefix: ""

first-join:
  enabled: true
  counter-enabled: true

join-quit:
  join-enabled: true
  quit-enabled: true
  join: "<dark_gray>[</dark_gray><green>+</green><dark_gray>]</dark_gray> <white>{player_nickname}</white>"
  quit: "<dark_gray>[</dark_gray><red>-</red><dark_gray>]</dark_gray> <white>{player_nickname}</white>"
  first-join: "<dark_gray>[</dark_gray><gradient:#79d6b8:#5aa9ff>Welcome</gradient><dark_gray>]</dark_gray> <white>{player_nickname}</white><gray> is joining for the first time as player </gray><white>#{count}</white><gray>.</gray>"

config.yml join/quit comments now clarify that join-quit.mode: NETWORK is Velocity-owned in PROXY mode and uses velocity-messages.yml.

Commands

  • Changed Paper /broadcast <message> in PROXY mode to route through Velocity to the backend group instead of sending only on the local backend.
  • Added Velocity /broadcast:
    • with one configured group: /broadcast <message>;
    • with multiple groups: /broadcast <group> <message>;
    • group can be all to broadcast to every CoreChatX group.
  • Added Discord !playerlist and /playerlist when discord.player-list.enabled: true.

Compatibility

  • Paper and Velocity must both be updated to 2026.2.2. The CoreChatX plugin-message protocol is 26 in this release and older proxy/backend builds are not compatible.
  • PAPIProxyBridge is optional on Velocity. Without it, CoreChatX still works, but Velocity-side PlaceholderAPI placeholders cannot be resolved and only CoreChatX internal placeholders such as {online} and {online_in_group} are available.
  • No vanilla Minecraft assets are bundled inside the plugin jar. Discord item rendering uses cached/downloaded vanilla assets and optional resource packs from chatitems.yml.

Safety

  • discord.prevent-mentions-from-minecraft: true prevents Minecraft players from triggering Discord user, role, @everyone, or @here pings through the bridge.
  • Discord console commands are controlled by discord.console.allowed-user-ids and discord.console.allowed-role-ids; empty lists mean anyone with write access to the console channel can run commands.
  • Discord channel description updates are interval-based and event-debounced to avoid excessive Discord channel metadata updates during mass joins/quits.

Migration

  • A clean config review is strongly recommended for 2026.2.2, especially chatitems.yml, discord.yml, velocity-discord.yml, and the new velocity-messages.yml.
  • Existing configs should receive missing default keys automatically, but server owners should still compare the new defaults because several Discord features are split between Paper STANDALONE and Velocity PROXY.
  • In PROXY mode, configure Discord bridge/account-linking/login gates/player-list/channel descriptions on Velocity. Paper discord.yml is still useful for standalone setups and optional backend console-only bots.
2026.2.2Релиз26.1, 26.1.1, 26.1.2 · 2 июня 2026 г.

CoreChatX 2026.2.2

Added

  • Added Discord image rendering for ChatItem tokens sent from Minecraft: [item], [i], [armor], [hotbar], [inventory], [inv], [enderchest], [ender], [ec], and shulker previews from [item].
    • In STANDALONE, Paper renders and sends the Discord attachment directly.
    • In PROXY, Paper renders the snapshot and Velocity sends the final Discord embed/attachment for the correct proxy group.
  • Added interactive Discord item inspection for non-[item] snapshots. Inventory-like renders can show dropdown menus; selecting an entry sends an ephemeral single-item preview to that Discord user. The menu expires with the same lifetime as the in-game ChatItem preview token.
  • Added Minecraft-style single item renders for Discord [item] previews. The generated image uses the Minecraft bitmap font, tooltip background, custom names, lore, enchantments, potion effects, attributes, armor trims, durability, and item icon rendering instead of plain Discord embed text.
  • Added Discord handling for inbound attachments. Discord images/files now appear in Minecraft as clickable [filename] components with hover text and an open-url click action; messages with only attachments are forwarded too.
  • Added Discord console support:
    • discord.console in Paper discord.yml can run a standalone or per-backend console bot.
    • discord.console in Velocity velocity-discord.yml can run proxy console commands from Discord.
    • command-prefix: "" is allowed and makes every message in the console channel execute as a command.
  • Added Discord player-list command support for both Paper STANDALONE and Velocity PROXY.
    • Text command default: !playerlist.
    • Slash command default: /playerlist.
    • Velocity resolves the target proxy group from discord.inbound.channel-routes.
  • Added Discord text channel description updates through discord.channel-description.
    • Paper STANDALONE: updates standalone channel topics.
    • Velocity PROXY: updates text channel topics per configured network-channel.
    • Internal placeholders: {online} and {online_in_group}.
    • PlaceholderAPI placeholders are supported on Paper; Velocity can resolve them through PAPIProxyBridge when installed.
  • Added Velocity-owned join/quit/first-join announcements for deployment.mode: PROXY.
    • Velocity now decides join/quit based on proxy group entry, group switch, and proxy disconnect.
    • Switching backend inside the same CoreChatX group does not announce join/quit.
    • Switching between groups sends quit to the old group and join to the new group.
  • Added group-wide broadcast routing in PROXY mode. Paper /broadcast <message> now fans out to the current Velocity group instead of only the local backend, and Velocity also provides /broadcast.
  • Added player head rendering support for name-only profile components such as minecraft:player_head[minecraft:profile="IceWolf23X"], in addition to heads that already contain texture properties.

Changed

  • ChatItem in-game previews now use more compact layouts for single/small snapshots:
    • [item] opens a 5-slot hopper preview with the item centered.
    • [armor] opens a 5-slot hopper preview with helmet, chestplate, leggings, boots, and offhand.
    • [inventory], [hotbar], [enderchest], and shulker previews keep their existing snapshot sizes.
  • Velocity Discord bridge output can resolve PlaceholderAPI placeholders through optional PAPIProxyBridge for Velocity-side formats such as player list rows, channel descriptions, join/quit messages, and fallback Discord formats.
  • Paper discord.yml is now clearly split by runtime responsibility:
    • STANDALONE owns Discord bridge, account linking, login gates, player list, channel descriptions, and console.
    • PROXY keeps bridge/account-linking/login gates on Velocity, while Paper can still run a console-only backend bot if configured.

Fixed

  • Fixed PlaceholderAPI placeholders staying unresolved in cross-server messages when the message had to be routed through Velocity.

  • Fixed proxy join/quit symptoms where quit messages could be missing, duplicated, or formatted differently depending on which backend still had players online.

  • Fixed Minecraft-to-Discord raw mention abuse. Players typing raw Discord mention syntax like <@...>, role mentions, @everyone, or @here can now be blocked from pinging Discord users/roles.

  • Fixed Discord inbound attachment forwarding so attachment-only Discord messages are no longer dropped before reaching Minecraft.

  • Fixed config synchronization behavior so missing default keys are added back to Paper YAML configs and Velocity YAML/properties configs instead of requiring a clean file for every new option.

Configuration

chatitems.yml now supports Discord image rendering and item menu configuration:

discord-images:
  enabled: true
  max-images-per-message: 3
  embed:
    title:
      item: "{item_name}"
      armor: "{player_nickname}'s armor"
      hotbar: "{player_nickname}'s hotbar"
      inventory: "{player_nickname}'s inventory"
      enderchest: "{player_nickname}'s ender chest"
      shulker: "{player_nickname}'s shulker"
    description:
      item:
        - "{enchantments}"
        - "{attributes}"
        - "{potion_effects}"
        - "{lore}"
        - "{armor_trim}"
        - "{banner_patterns}"
        - "{unbreakable}"
        - "{can_place_on}"
        - "{can_break}"
        - "{book_metadata}"
        - "{firework_data}"
        - "{durability_line}"
      armor: []
      hotbar: []
      inventory: []
      enderchest: []
      shulker: []
  item-menu:
    enabled: true
    placeholder: "Inspect an item"
    label-format: "Slot {slot}: {item_display_name}"
    description-format: "x{amount} - {material}"
    expired-message: "This ChatItem preview has expired."
    unavailable-message: "That item preview is unavailable."
  render:
    scale: 5
    single-item-details-scale: 5
    single-item-details-icon-multiplier: 3
  assets:
    minecraft-version: "auto"
    download-vanilla-assets: true
    resource-packs: []
  • discord-images.embed.title.*: controls Discord embed titles; for [item], the title is rendered into the PNG tooltip panel.
  • discord-images.embed.description.item: controls single-item tooltip details. Empty metadata placeholders are skipped, so missing lore/enchantments/durability do not leave unwanted blank detail sections.
  • discord-images.item-menu.*: controls the Discord dropdown menu shown under multi-item snapshots.
  • discord-images.render.scale: pixel scale for inventory-like renders.
  • discord-images.render.single-item-details-scale: pixel scale for the single-item tooltip text/background.
  • discord-images.render.single-item-details-icon-multiplier: multiplier applied only to the item icon in the single-item details panel.
  • discord-images.assets.resource-packs: optional resource pack zip/folder paths used before vanilla fallback assets.

discord.yml and velocity-discord.yml now include:

discord:
  prevent-mentions-from-minecraft: true
  connection-messages:
    enabled: false
    join-format: ""
    first-join-format: ""
    quit-format: ""
    embed:
      enabled: false
      join-color: "#57F287"
      first-join-color: "#57F287"
      quit-color: "#ED4245"
      join-description: ""
      first-join-description: ""
      quit-description: ""
  console:
    enabled: false
    channel-id: ""
    command-prefix: "!"
  player-list:
    enabled: false
    command: "!playerlist"
    register-slash-command: true
    slash-command-name: "playerlist"
  channel-description:
    enabled: false
    interval-seconds: 300
    triggers:
      on-connection: true
      on-disconnection: true
      event-debounce-seconds: 5
    entries: []

Velocity velocity-discord.yml also supports group-aware options:

account-linking:
  required-play-roles:
    groups:
      # corechatx:survival:
      #   enabled: true
      #   role-ids:
      #     - "123456789012345678"

discord:
  channel-description:
    triggers:
      on-group-change: true
    entries:
      # - channel-id: "123456789012345678"
      #   network-channel: "corechatx:survival"
      #   description: "Players {online_in_group}/{online}"
  inbound:
    channel-routes:
      # "123456789012345678":
      #   channel: "global"
      #   network-channel: "corechatx:survival"
      #   require-linked: inherit

New Velocity message file:

# velocity-messages.yml
nicknames:
  prefix: ""

first-join:
  enabled: true
  counter-enabled: true

join-quit:
  join-enabled: true
  quit-enabled: true
  join: "<dark_gray>[</dark_gray><green>+</green><dark_gray>]</dark_gray> <white>{player_nickname}</white>"
  quit: "<dark_gray>[</dark_gray><red>-</red><dark_gray>]</dark_gray> <white>{player_nickname}</white>"
  first-join: "<dark_gray>[</dark_gray><gradient:#79d6b8:#5aa9ff>Welcome</gradient><dark_gray>]</dark_gray> <white>{player_nickname}</white><gray> is joining for the first time as player </gray><white>#{count}</white><gray>.</gray>"

config.yml join/quit comments now clarify that join-quit.mode: NETWORK is Velocity-owned in PROXY mode and uses velocity-messages.yml.

Commands

  • Changed Paper /broadcast <message> in PROXY mode to route through Velocity to the backend group instead of sending only on the local backend.
  • Added Velocity /broadcast:
    • with one configured group: /broadcast <message>;
    • with multiple groups: /broadcast <group> <message>;
    • group can be all to broadcast to every CoreChatX group.
  • Added Discord !playerlist and /playerlist when discord.player-list.enabled: true.

Compatibility

  • Paper and Velocity must both be updated to 2026.2.2. The CoreChatX plugin-message protocol is 26 in this release and older proxy/backend builds are not compatible.
  • PAPIProxyBridge is optional on Velocity. Without it, CoreChatX still works, but Velocity-side PlaceholderAPI placeholders cannot be resolved and only CoreChatX internal placeholders such as {online} and {online_in_group} are available.
  • No vanilla Minecraft assets are bundled inside the plugin jar. Discord item rendering uses cached/downloaded vanilla assets and optional resource packs from chatitems.yml.

Safety

  • discord.prevent-mentions-from-minecraft: true prevents Minecraft players from triggering Discord user, role, @everyone, or @here pings through the bridge.
  • Discord console commands are controlled by discord.console.allowed-user-ids and discord.console.allowed-role-ids; empty lists mean anyone with write access to the console channel can run commands.
  • Discord channel description updates are interval-based and event-debounced to avoid excessive Discord channel metadata updates during mass joins/quits.

Migration

  • A clean config review is strongly recommended for 2026.2.2, especially chatitems.yml, discord.yml, velocity-discord.yml, and the new velocity-messages.yml.
  • Existing configs should receive missing default keys automatically, but server owners should still compare the new defaults because several Discord features are split between Paper STANDALONE and Velocity PROXY.
  • In PROXY mode, configure Discord bridge/account-linking/login gates/player-list/channel descriptions on Velocity. Paper discord.yml is still useful for standalone setups and optional backend console-only bots.

Комментарии

Загружаем…