Community listing page, reviews here may not be monitored by the author.
KOKOTO WebChat (Fabric, Forge)
No reviews yet
Multi-platform Minecraft web chat with map/standalone UI, DM & groups, secure relay, filters, rich media, notifications, and Bukkit/Paper companion-plugin integrations.
Includes quality of life improvements and small tweaks to enhance and customize gameplay.
Forge is a popular mod loader for versions 1.1+ of Minecraft.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Paper is a fork of Spigot that adds its own plugin API on top of the Bukkit API. All Spigot plugins are compatible with paper, not all paper plugins are compatible with Spigot.
Spigot is a popular software for running dedicated servers that can load Plugins created with the Bukkit API.
Community voices
Reviews
Filters
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
Runs on a dedicated server only; does not work in singleplayer.
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
# KOKOTO WebChat
## BlueMapWebChat → KOKOTO WebChat transition
BlueMapWebChat was renamed to **KOKOTO WebChat** in 5.0.0. Existing BMWC 4.x data/config can still be used as first-run migration input; the source BMWC directory is left untouched. During the current project-address transition, KWC 5.1.0 checks `kokoto-webchat` first and falls back to the existing `bluemapwebchat` listing, which remains a real update source until the transition completes.
KOKOTO WebChat is a server-side Minecraft web chat for **Bukkit/Paper/Spigot 1.18–26.2 (Java 17), Fabric exact targets 1.18.2–26.2, NeoForge exact targets 1.20.2–26.2, and Forge exact targets 1.18.2–26.2; mod-loader targets select Java 17/21/25 by Minecraft version**. It can run as a standalone web chat or embed into supported map frontends including BlueMap, squaremap, Dynmap, Pl3xMap, LiveAtlas, uNmINeD, and Minecraft Overviewer. No client mod is required for the core chat features.
**CurseForge packaging:** this Bukkit Plugins project receives only the Bukkit/Paper/Spigot JAR. Fabric, NeoForge, and Forge builds are published through their matching KOKOTO WebChat Mods projects and must be selected for the exact Minecraft version/loader.
## What's new in 5.1.0
- **Relay Protocol v2**: explicit trust groups, reciprocal peers, safe group-secret setup, authenticated/encrypted hop-by-hop transport, replay/loop protection, HTTPS-only forwarding, and fail-closed 5.0.0 migration
- **Private Reply and group-chat improvements**: persistent Web/game DM/group replies, stable cross-server DM reply references, spaced room-name game commands, per-room member join/leave notices, and improved narrow/mobile DM/group metadata layout
- **Emoji and frontend reliability**: canonical emoji names/tokens, improved Reply rendering, resilient emoji catalog/SSE recovery, higher default SSE limits, Android chat-input Autofill avoidance, and generic Android admin-emoji file selection
- **Configuration and operations**: EN/KO/JA/ZH config presentation selected by `ui.language`, complete 394-setting input guidance, semantic migration differences, exact-state chat profiles, reload-time HTTP warnings, state-aware repeated-error logging, Web-command notices to online game players when enabled, and transition-safe update-source fallback
- **Documentation**: synchronized user, installation/operations, technical, complete-reference, and Wiki documentation in four languages
Server Relay Version Compatibility
Server-to-server relay in KWC 5.1.0 is not backward-compatible with older KWC versions. All servers connected through relay must be updated to the same KWC version before they are connected.
Mixed-version relay configurations are not supported and may cause duplicate messages, incorrect server metadata, or malfunction of features such as DMs, replies, and emojis.
⚠️ Important: Server relay does not support connections between different KWC versions. Update all participating servers to the same version.
## Main features
- **Two-way game ↔ web chat** with linked Minecraft accounts and optional guest chat
- **BlueMap addon + standalone page** with dark/light/high-contrast UI, PIP, draggable/resizable windows, search, replies, pins, and virtual scrolling
- **1:1 direct messages** with local and cross-server recipients, exact server+UUID routing, retry-safe delivery, unread/read state, and shared game/web threads
- **Group chat rooms** with public/private visibility, invitations, passwords, retention limits, unread counts, delivery retry protection, and member management
- **Relay Protocol v2** for multi-server communities with explicit groups, reciprocal peers, HKDF-SHA256/AES-256-GCM hop-by-hop protection, authenticated responses, replay/loop defenses, server badges and source filters
- **DiscordSRV integration** plus Discord media caching and optional emoji-link augmentation
- **Uploads and rich previews** for images, video, audio, YouTube/Shorts, with optional TikTok and X/Twitter embeds
- **Deterministic long-history virtual scrolling** across images, GIFs, video, audio, YouTube/iframes and link previews, with scroll-anchor correction as media sizes settle
- **Unicode-aware content filtering** for public/group chat and optional DM with Block/Mask/Replace, bulk word lists, custom rules, anti-evasion matching and Web Admin testing
- **Custom emoji management** with multi-file administrator upload, plus optional **ImageEmojis-Bero** Bukkit/Paper integration using the same `plugins/KOKOTO-WebChat/emojis` tree; its resource-pack HTTP port remains a separate client-facing service
- **SimpleNicks-Bero nickname integration** on Bukkit/Paper-family servers through `player-display.mode: "display-name"`, while KWC retains the real linked account identity
- **Configurable message tokens** such as `:enter:` / `:newline:` / `:tab:` with administrator-localizable aliases and printable custom substitutions
- **Web Push / keyword notifications** and administrator update notifications
- **Per-account visual UI profiles** plus account-synced keyword/notification preferences for signed-in users; device-local window state and Push endpoints stay local
- **Administrator Discord keyword alerts** with KWC-owned matching/deduplication and DiscordSRV logical-channel selection
- **Administration and moderation tools** for message hiding, pins, guest/IP mutes, session revocation, custom emoji management, and private-chat metadata
- **Optional read-only DM and group-chat body audit** for explicitly allowlisted super administrators; both are disabled by default and every audit page read is logged
- Built-in UI languages: **English, Korean, Japanese, Simplified Chinese**
## Private messaging and delivery reliability
Cross-server DM targets are identified by **server ID + player UUID**, so a local player cannot be confused with a same-name player on another server. Remote messages stay pending until the destination confirms storage. Failed or uncertain sends can be retried with persistent relay/client message IDs without duplicating sender or receiver records.
DM and group-chat message state is shown compactly beside the timestamp. Normal successful delivery is silent; pending or failed delivery is shown only when needed. DM messages use a short unread label until the recipient reads them, then show `✓`. Group messages show the number of recipients who have not read the message and change to `✓` when everyone has read it.
## Multi-server relay
Relay Protocol v2 carries public chat and cross-server 1:1 DM/read receipts inside explicit trust groups. Each group has one shared secret; peers have no individual secret and must be configured reciprocally in the same group. Direct relay follows the 5.0.0 operating model: every message request authenticates/encrypts itself independently. `/relay/v2/handshake` is a stateless diagnostic identity/health probe and does not control routing. Messages use directional HKDF-SHA256 keys and AES-256-GCM hop-by-hop authenticated encryption; responses are HMAC-authenticated and timestamp/nonce/relay-ID/hop defenses reject replay or loops.
Direct one-hop HTTP can be used with an explicit warning because relay payloads remain encrypted/authenticated. Forwarding filtering is per peer: an HTTP peer is excluded only as that forwarding hop, while other HTTPS peers in the same group remain eligible. Relay v2 is not end-to-end encryption: forwarding servers decrypt and re-encrypt as trusted participants. Legacy v1/BMWC relay endpoints return HTTP 426.
On the first upgrade from 5.0.0, old flat relay settings are not converted into guessed groups. Relay is reset disabled so the operator can explicitly define the v2 trust groups before re-enabling it.
## Administrator private-chat audit
Private message bodies are not automatically exposed to normal administrators. Optional audit access requires an exact Minecraft name/UUID in `private-chat-super-admins` **and** the corresponding feature switch:
```yaml
direct-message:
admin-audit:
enabled: false
group-chat:
admin-audit:
enabled: false
```
Audit views are read-only. Group audit does not join the room or affect read/unread state. Every audit page read records the actor and pagination metadata without copying message bodies into the audit log.
## Deployment
Fresh configurations start with the plugin master switch disabled so operators can review storage, authentication, uploads, retention, and web exposure before enabling it. The bundled `config.yml` is the sole migration template. On a real version migration, KOKOTO WebChat first starts from that latest bundled default and overlays the operator values read from the existing `config.yml`; old comments, ordering, blank-line layout, and indentation are not carried forward. A previously fixed older config (a marker without `_auto_migration`) is backed up before reconstruction. The migrated file is marked `<version>_auto_migration`; while that marker remains, startup/reload repeats the same bundled-default reconstruction with the current values overlaid, keeping newly added settings and bundled comments/layout current. An exact same-version marker stops same-version automatic setting reconstruction; changing `ui.language` may still rebuild only comments/layout while preserving parsed values. `config-reference-<version>.yml` is the administrator-readable current default rendered in the same built-in `ui.language` (English for custom/unsupported UI languages) and is not a migration input. Older generated reference/migration files are removed automatically. `/kchat reload` validates edited YAML before stopping live services; invalid YAML is rejected so the previous running configuration, UI language, and services remain active. Bundled UTF-8 starter filter-word lists for Korean, English, Japanese, and Simplified Chinese are initialized once when the starter-list marker is absent; existing or disabled files are preserved, and administrator deletions after initialization are not reversed.
For public deployments, placing BlueMap and KOKOTO WebChat behind HTTPS with Caddy or Nginx is recommended.
## Optional integrations
- BlueMap (Bukkit plus BlueMapAPI on Fabric/NeoForge and Forge 26.1.2/26.2)
- squaremap and Dynmap filesystem web adapters
- Pl3xMap on Bukkit/Paper-family and Fabric
- LiveAtlas, uNmINeD, and Minecraft Overviewer static-web adapters
- DiscordSRV on Bukkit
- ImageEmojis-Bero on Bukkit/Paper-family servers (shared KWC emoji path + runtime glyph resolution); general ImageEmojis operation follows the upstream plugin documentation
- SimpleNicks-Bero on Bukkit/Paper-family servers through Bukkit display names; general SimpleNicks operation follows the upstream plugin documentation
- Web Push notifications
See the bundled README and `docs/` folder for full configuration, reverse-proxy, relay, security, migration, and troubleshooting guides.
## AI assistance disclosure
Generative AI was used as a development assistant for code review, implementation and patching, documentation drafting, and multilingual translation. Project requirements, architecture/design decisions, integration, testing, compatibility verification, release validation, and final acceptance are human-directed and reviewed. AI-assisted output is reviewed and validated before inclusion.
KOKOTO WebChat

BlueMapWebChat → KOKOTO WebChat transition
BlueMapWebChat was renamed to KOKOTO WebChat in 5.0.0. Existing BMWC 4.x data/config can still be used as first-run migration input; the source BMWC directory is left untouched. During the current project-address transition, KWC 5.1.0 checks kokoto-webchat first and falls back to the existing bluemapwebchat listing, which remains a real update source until the transition completes.
KOKOTO WebChat is a server-side Minecraft web chat for Bukkit/Paper/Spigot 1.18–26.2 (Java 17), Fabric exact targets 1.18.2–26.2, NeoForge exact targets 1.20.2–26.2, and Forge exact targets 1.18.2–26.2; mod-loader targets select Java 17/21/25 by Minecraft version. It can run as a standalone web chat or embed into supported map frontends including BlueMap, squaremap, Dynmap, Pl3xMap, LiveAtlas, uNmINeD, and Minecraft Overviewer. No client mod is required for the core chat features.
What's new in 5.1.0
- Relay Protocol v2: explicit trust groups, reciprocal peers, safe group-secret setup, authenticated/encrypted hop-by-hop transport, replay/loop protection, HTTPS-only forwarding, and fail-closed 5.0.0 migration
- Private Reply and group-chat improvements: persistent Web/game DM/group replies, stable cross-server DM reply references, spaced room-name game commands, per-room member join/leave notices, and improved narrow/mobile DM/group metadata layout
- Emoji and frontend reliability: canonical emoji names/tokens, improved Reply rendering, resilient emoji catalog/SSE recovery, higher default SSE limits, Android chat-input Autofill avoidance, and generic Android admin-emoji file selection
- Configuration and operations: EN/KO/JA/ZH config presentation selected by
ui.language, complete 394-setting input guidance, semantic migration differences, exact-state chat profiles, reload-time HTTP warnings, state-aware repeated-error logging, Web-command notices to online game players when enabled, and transition-safe update-source fallback - Documentation: synchronized user, installation/operations, technical, complete-reference, and Wiki documentation in four languages
Server Relay Version Compatibility
Server-to-server relay in KWC 5.1.0 is not backward-compatible with older KWC versions. All servers connected through relay must be updated to the same KWC version before they are connected.
Mixed-version relay configurations are not supported and may cause duplicate messages, incorrect server metadata, or malfunction of features such as DMs, replies, and emojis.
⚠️ Important: Server relay does not support connections between different KWC versions. Update all participating servers to the same version.
Highlights
- 5.0.0 multi-platform architecture: shared behavior lives in
kwc-core; Bukkit, Fabric, NeoForge, and Forge provide loader-specific server integration while reusing the same core and frontend/adapters - Two-way game ↔ web chat with linked Minecraft accounts and optional guest chat
- BlueMap addon + standalone page with dark/light/high-contrast UI, PIP, draggable/resizable windows, search, replies, pins, and virtual scrolling
- 1:1 direct messages with local and cross-server recipients, exact server+UUID routing, retry-safe delivery, unread/read state, and shared game/web threads
- Group chat rooms with public/private visibility, invitations, passwords, retention limits, unread counts, delivery retry protection, and member management
- Relay Protocol v2 for multi-server communities with explicit groups, reciprocal peers, HKDF-SHA256/AES-256-GCM hop-by-hop protection, authenticated responses, replay/loop defenses, server badges and source filters
- DiscordSRV integration plus Discord media caching and optional emoji-link augmentation
- Uploads and rich previews for images, video, audio, YouTube/Shorts, with optional TikTok and X/Twitter embeds
- Deterministic long-history virtual scrolling across images, GIFs, video, audio, YouTube/iframes and link previews, with scroll-anchor correction as media sizes settle
- Unicode-aware content filtering for public/group chat and optional DM with Block/Mask/Replace, bulk word lists, custom rules, anti-evasion matching and Web Admin testing
- Custom emoji management with multi-file administrator upload, plus optional ImageEmojis-Bero Bukkit/Paper integration using the same
plugins/KOKOTO-WebChat/emojistree; its resource-pack HTTP port remains a separate client-facing service - SimpleNicks-Bero nickname integration on Bukkit/Paper-family servers through
player-display.mode: "display-name", while KWC retains the real linked account identity - Configurable message tokens such as
:enter:/:newline:/:tab:with administrator-localizable aliases and printable custom substitutions - Web Push / keyword notifications and administrator update notifications
- Per-account visual UI profiles plus account-synced keyword/notification preferences for signed-in users; device-local window state and Push endpoints stay local
- Administrator Discord keyword alerts with KWC-owned matching/deduplication and DiscordSRV logical-channel selection
- Administration and moderation tools for message hiding, pins, guest/IP mutes, session revocation, custom emoji management, and private-chat metadata
- Optional read-only DM and group-chat body audit for explicitly allowlisted super administrators; both are disabled by default and every audit page read is logged
- Built-in UI languages: English, Korean, Japanese, Simplified Chinese
Private messaging and delivery reliability
Cross-server DM targets are identified by server ID + player UUID, so a local player cannot be confused with a same-name player on another server. Remote messages stay pending until the destination confirms storage. Failed or uncertain sends can be retried with persistent relay/client message IDs without duplicating sender or receiver records.
DM and group-chat message state is shown compactly beside the timestamp. Normal successful delivery is silent; pending or failed delivery is shown only when needed. DM messages use a short unread label until the recipient reads them, then show ✓. Group messages show the number of recipients who have not read the message and change to ✓ when everyone has read it.
Multi-server relay
Relay Protocol v2 carries public chat and cross-server 1:1 DM/read receipts inside explicit trust groups. Each group has one shared secret; peers have no individual secret and must be configured reciprocally in the same group. Direct relay follows the 5.0.0 operating model: every message request authenticates/encrypts itself independently. /relay/v2/handshake is a stateless diagnostic identity/health probe and does not control routing. Messages use directional HKDF-SHA256 keys and AES-256-GCM hop-by-hop authenticated encryption; responses are HMAC-authenticated and timestamp/nonce/relay-ID/hop defenses reject replay or loops.
Direct one-hop HTTP can be used with an explicit warning because relay payloads remain encrypted/authenticated. Forwarding filtering is per peer: an HTTP peer is excluded only as that forwarding hop, while other HTTPS peers in the same group remain eligible. Relay v2 is not end-to-end encryption: forwarding servers decrypt and re-encrypt as trusted participants. Legacy v1/BMWC relay endpoints return HTTP 426.
On the first upgrade from 5.0.0, old flat relay settings are not converted into guessed groups. Relay is reset disabled so the operator can explicitly define the v2 trust groups before re-enabling it.
Administrator private-chat audit
Private message bodies are not automatically exposed to normal administrators. Optional audit access requires an exact Minecraft name/UUID in private-chat-super-admins and the corresponding feature switch:
direct-message:
admin-audit:
enabled: false
group-chat:
admin-audit:
enabled: false
Audit views are read-only. Group audit does not join the room or affect read/unread state. Every audit page read records the actor and pagination metadata without copying message bodies into the audit log.
Deployment
Fresh configurations start with the plugin master switch disabled so operators can review storage, authentication, uploads, retention, and web exposure before enabling it. During migration, the bundled config.yml is the only template: KWC creates a fresh current default and overlays existing operator values, so old comments/layout are replaced by the current bundled comments/layout. A fixed older-version config is backed up before reconstruction. <version>_auto_migration repeats this rebuild on startup/reload; exact <version> fixes the current-version config and prevents same-version rewriting. config-reference-<version>.yml is an administrator-readable exact default copy, not the migration source, and obsolete generated reference/migration files are cleaned up automatically. /kchat reload validates edited YAML before stopping live services; invalid YAML is rejected so the previous running configuration, UI language, and services remain active. Bundled UTF-8 starter filter-word lists for Korean, English, Japanese, and Simplified Chinese are initialized once when the starter-list marker is absent; existing or disabled files are preserved, and administrator deletions after initialization are not reversed.
For public deployments, placing BlueMap and KOKOTO WebChat behind HTTPS with Caddy or Nginx is recommended.
Optional integrations
- BlueMap (Bukkit plus BlueMapAPI on Fabric/NeoForge and Forge 26.1.2/26.2)
- squaremap and Dynmap filesystem web adapters
- Pl3xMap on Bukkit/Paper-family and Fabric
- LiveAtlas, uNmINeD, and Minecraft Overviewer static-web adapters
- DiscordSRV on Bukkit
- ImageEmojis-Bero on Bukkit/Paper-family servers (shared KWC emoji path + runtime glyph resolution); general ImageEmojis operation follows the upstream plugin documentation
- SimpleNicks-Bero on Bukkit/Paper-family servers through Bukkit display names; general SimpleNicks operation follows the upstream plugin documentation
- Web Push notifications
See the bundled README and docs/ directory for full configuration, reverse-proxy, relay, security, migration, and troubleshooting guides.
AI assistance disclosure
Generative AI was used as a development assistant for code review, implementation and patching, documentation drafting, and multilingual translation. Project requirements, architecture/design decisions, integration, testing, compatibility verification, release validation, and final acceptance are human-directed and reviewed. AI-assisted output is reviewed and validated before inclusion.
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers