
E33Chat
Rebuilds the vanilla chat HUD in chat-app style
Автор: E33EPUS138,3 тыс.17обновлён 3 окт. 2026 г.
ДекорОбщениеУтилиты
Описание

E33Chat
Rebuilds the vanilla chat HUD in chat-app style
Vanilla Improvements
- 💬 Chat bubbles — Messages with player heads and names
- 💾 Chat history — Saved per world / server, restored on rejoin
- 📝 Input preserved — Typed text kept when closing chat
- 🚫 Anti-spam — Consecutive duplicate messages merged with a counter (on by default)
Highlights
- 👥 Whisper sidebar — Online player list, click to whisper
- 🔍 Chat search — Keyword search with real-time matching
- @ Mention autocomplete — Type
@for a popup player list, or left-click a player head - 📌 Quick chat — Save and quick-fill common phrases
- 😊 Emoji & kaomoji — Emoji panel + kaomoji picker
- 📋 Copy & quote reply — Right-click a message to copy or quote reply
- 👤 Player head actions — Right-click a player head to teleport or whisper
- 🔔 Notification banners — Popup hints for @mentions, quotes, whispers and system messages (system banner on by default), with a jump-to-mention button
- 🔊 Notification sounds — Per-type toggles for system, @ / quote, whisper, and public messages
- 🎨 Themes — Dark/light theme with customizable bubble color, text color, and corner radius
- 🕐 Time separators — Timestamp dividers at configurable intervals
- 🌈 Colored messages — Supports
&color/format codes (for servers with a color plugin installed) - 🧩 Message templates — Servers that rewrite the chat format (plugins / No Chat Reports) can declare a template via
/e33chat gui, so names and bodies are parsed correctly on every client
Compatibility
| Mod / plugin | Status |
|---|---|
| No Chat Reports and similar no-report plugins | Auto-compatible since 2.1.0, no config needed |
| ChatHeads / ChatAnimation | Work by default (the vanilla chat box keeps rendering, just shifted clear of the HUD icon) |
| Quark and similar item sharing | Item icons in system messages render correctly |
| CustomSkinLoader | Shows offline players' heads once installed |
| ModernUI | Bounds-safe underlines / click regions on clickable text |
| Nickname plugins | Partially supported |
| Chat-format plugins (EssentialsChat / DeluxeChat / CMI, ...) | Adaptable via server-declared message templates (/e33chat gui) |
FAQ
Server required? No, but installing the server-side mod enables quote reply, @mention sync, chat history sync (new players receive recent messages), and the use_tpa option (player-head teleport uses /tpa).
How to configure? Gear icon (bottom-left) → Menu → Settings
- Client config:
config/e33chat-client.toml(Fabric:config/e33chat-client.json) - Server config:
saves/<world>/serverconfig/e33chat-server.toml(Fabric:.json)
Where is chat history? .minecraft/e33chat/history
How to disable chat history sync? Set history_enabled = false in the world's server config and restart.
Modpack? Go ahead.
Found a bug? Report it here
Галерея
Последние версии
Все версии →release
NeoForge-1.21.1-2.4.17
NeoForge-1.21.1-2.4.173 окт. 2026 г.2,9 тыс.Minecraft: 1.21.1neoforge
Что нового
**Fixed**
- The "kicked right after joining" disconnect is fixed (all platforms): a system chat message sent by a server or proxy plugin at join time could arrive before the client's local player exists, and previous versions dereferenced it without a null check — NeoForge treats that as a fatal packet error and disconnects. Such messages now show up as ordinary gray system lines and the connection survives. The bug is racy and only fired when a message happened to land in that window (the field report was a proxy plugin's `Sent server list`), which is why it did not reproduce every time. 2.4.14 and 2.4.16 are both affected.
release
Fabric-1.21.1-2.4.17
Fabric-1.21.1-2.4.173 окт. 2026 г.410Minecraft: 1.21.1fabric
Что нового
**Fixed**
- The "kicked right after joining" disconnect is fixed (all platforms): a system chat message sent by a server or proxy plugin at join time could arrive before the client's local player exists, and previous versions dereferenced it without a null check — NeoForge treats that as a fatal packet error and disconnects. Such messages now show up as ordinary gray system lines and the connection survives. The bug is racy and only fired when a message happened to land in that window (the field report was a proxy plugin's `Sent server list`), which is why it did not reproduce every time. 2.4.14 and 2.4.16 are both affected.
release
Forge-1.20.1-2.4.17
Forge-1.20.1-2.4.173 окт. 2026 г.22,7 тыс.Minecraft: 1.20.1forge
Что нового
**Fixed**
- The "kicked right after joining" disconnect is fixed (all platforms): a system chat message sent by a server or proxy plugin at join time could arrive before the client's local player exists, and previous versions dereferenced it without a null check — NeoForge treats that as a fatal packet error and disconnects. Such messages now show up as ordinary gray system lines and the connection survives. The bug is racy and only fired when a message happened to land in that window (the field report was a proxy plugin's `Sent server list`), which is why it did not reproduce every time. 2.4.14 and 2.4.16 are both affected.
release
Forge-1.20.1-2.4.16
Forge-1.20.1-2.4.161 окт. 2026 г.9,7 тыс.Minecraft: 1.20.1forge
Что нового
**Fixed**
- A client-only install on a server without e33chat no longer freezes WASD after joining: the join handshake is now only sent when the server actually has the e33chat channel. NeoForge hard-throws on a payload the peer never negotiated, and this send happened inside the vanilla login flow, skipping every initialization step after it — the world kept rendering but the movement-input object was never created, so the session could not move and logged nothing; servers with the mod negotiated the channel and never reproduced. (NeoForge 1.21.1)
**Notes**
- On servers without e33chat the panel and local features keep working; the group tab no longer appears (it always required the server side anyway). The log records `Server has no e33chat channel; skipping client hello`.
release
Fabric-1.21.1-2.4.16
Fabric-1.21.1-2.4.161 окт. 2026 г.18Minecraft: 1.21.1fabric
Что нового
**Fixed**
- A client-only install on a server without e33chat no longer freezes WASD after joining: the join handshake is now only sent when the server actually has the e33chat channel. NeoForge hard-throws on a payload the peer never negotiated, and this send happened inside the vanilla login flow, skipping every initialization step after it — the world kept rendering but the movement-input object was never created, so the session could not move and logged nothing; servers with the mod negotiated the channel and never reproduced. (NeoForge 1.21.1)
**Notes**
- On servers without e33chat the panel and local features keep working; the group tab no longer appears (it always required the server side anyway). The log records `Server has no e33chat channel; skipping client hello`.
release
NeoForge-1.21.1-2.4.16
NeoForge-1.21.1-2.4.161 окт. 2026 г.101Minecraft: 1.21.1neoforge
Что нового
**Fixed**
- A client-only install on a server without e33chat no longer freezes WASD after joining: the join handshake is now only sent when the server actually has the e33chat channel. NeoForge hard-throws on a payload the peer never negotiated, and this send happened inside the vanilla login flow, skipping every initialization step after it — the world kept rendering but the movement-input object was never created, so the session could not move and logged nothing; servers with the mod negotiated the channel and never reproduced. (NeoForge 1.21.1)
**Notes**
- On servers without e33chat the panel and local features keep working; the group tab no longer appears (it always required the server side anyway). The log records `Server has no e33chat channel; skipping client hello`.
release
Forge-1.20.1-2.4.14
Forge-1.20.1-2.4.1420 сент. 2026 г.4,9 тыс.Minecraft: 1.20.1forge
Что нового
Fixed: server system prompts are no longer claimed as player messages. The EasyBot colon shape (`[label] nick: content`) only exact-matched its label, so `[玩家系统] 请使用以下命令登录: /log <密码>` became a bubble sent by 「请使用以下命令登录」; system-domain labels (containing 系统/公告/服务器/广播/提示/通知 or ending in 插件/助手) and `/`-prefixed command content are now rejected, while the angle-bracket shape is unchanged. Blank-sender chat and disguised packets are no longer claimed as nameless bubbles either, and the pre-name separator guard no longer misfires on separators inside balanced decorations: `[Lv.10|VIP] Steve: hello`, `【Lv.10|VIP】Steve » hello` and `[世界] [Lv.10|VIP] Steve: hello` parse again, while `系统>>Steve`, `VIP|Steve` and `[系统|公告]Steve` stay rejected. Server-declared exact templates now also apply to senderless disguised lines, and template logs carry a System/Disguised source tag.
release
NeoForge-1.21.1-2.4.14
NeoForge-1.21.1-2.4.1420 сент. 2026 г.1,4 тыс.Minecraft: 1.21.1neoforge
Что нового
Fixed: server system prompts are no longer claimed as player messages. The EasyBot colon shape (`[label] nick: content`) only exact-matched its label, so `[玩家系统] 请使用以下命令登录: /log <密码>` became a bubble sent by 「请使用以下命令登录」; system-domain labels (containing 系统/公告/服务器/广播/提示/通知 or ending in 插件/助手) and `/`-prefixed command content are now rejected, while the angle-bracket shape is unchanged. Blank-sender chat and disguised packets are no longer claimed as nameless bubbles either, and the pre-name separator guard no longer misfires on separators inside balanced decorations: `[Lv.10|VIP] Steve: hello`, `【Lv.10|VIP】Steve » hello` and `[世界] [Lv.10|VIP] Steve: hello` parse again, while `系统>>Steve`, `VIP|Steve` and `[系统|公告]Steve` stay rejected. Server-declared exact templates now also apply to senderless disguised lines, and template logs carry a System/Disguised source tag.
release
Fabric-1.21.1-2.4.14
Fabric-1.21.1-2.4.1420 сент. 2026 г.48Minecraft: 1.21.1fabric
Что нового
Fixed: server system prompts are no longer claimed as player messages. The EasyBot colon shape (`[label] nick: content`) only exact-matched its label, so `[玩家系统] 请使用以下命令登录: /log <密码>` became a bubble sent by 「请使用以下命令登录」; system-domain labels (containing 系统/公告/服务器/广播/提示/通知 or ending in 插件/助手) and `/`-prefixed command content are now rejected, while the angle-bracket shape is unchanged. Blank-sender chat and disguised packets are no longer claimed as nameless bubbles either, and the pre-name separator guard no longer misfires on separators inside balanced decorations: `[Lv.10|VIP] Steve: hello`, `【Lv.10|VIP】Steve » hello` and `[世界] [Lv.10|VIP] Steve: hello` parse again, while `系统>>Steve`, `VIP|Steve` and `[系统|公告]Steve` stay rejected. Server-declared exact templates now also apply to senderless disguised lines, and template logs carry a System/Disguised source tag.
release
Forge-1.20.1-2.4.13
Forge-1.20.1-2.4.1316 сент. 2026 г.819Minecraft: 1.20.1forge
Что нового
Fixed: a full-code audit pass that closed every P1 and P2 finding with zero P0s. Hostile packets can no longer force unbounded memory allocations (every network decoder now caps counts and lengths and rejects the packet instead of silently clamping), NeoForge no longer burns double the download quota on server-hosted JPEGs (the one end the 2.4.12 fix missed), switching themes on Fabric keeps the custom panel background image, opacity and crop, the /e33chat template command no longer silently disables server media hosting after saving, the group directory no longer desyncs above 200 groups, the sidebar background no longer vanishes below y=999 on large GUIs, viewed animations are cached with an LRU and released on disconnect instead of living forever in VRAM, the clear-history double-click confirm now actually expires (a clock-domain mixup), popups reopened within 150ms of closing are no longer killed by the stale close timer, banner avatars fade in step with their text instead of darker, emoji-grid clicks in the right-hand padding band no longer send the wrong emote, and labelled player chat keeps its styled channel/title prefixes when the EasyBot colon shape claims it. Hardened: group data saves atomically and tells the player when it fails, corrupt config files are kept as backups instead of being overwritten, singleplayer world switches no longer inherit the previous world's server config or chat backlog, the sidebar wildcard hide patterns (e.g. Islot_*) that never worked on Forge/NeoForge and crashed Fabric on brackets now share one correct implementation across all three platforms. Development: TemplateMatcher moved into the shared layer, the pinned-equality guard grew from 10 to 18 entries, and six new test classes cover hostile decoder input, group validation and the emoji grid (446/416/447 tests green across Forge/Fabric/NeoForge).


