Skip to content

Public Chat

KOKOTO-DEV edited this page Aug 26, 2026 · 2 revisions

Public Chat

KOKOTO WebChat 5.0.0 · Minecraft 1.18–26.2 · Java 17 baseline

8. Public Chat

8.1 Game to Web

chat:
  broadcast-ingame-chat-to-web: true

Normal Minecraft chat is published to the public web chat. Sender names follow player-display.mode.

8.2 Web to Game

chat:
  send-web-chat-to-game: true
  web-user-to-game-format: "[Web] {player}: {message}"
  web-guest-to-game-format: "[Web Guest] {guest}: {message}"
  web-admin-to-game-format: "[Web Admin] {player}: {message}"

Legacy & colors are translated only in configured format templates. User message text is not arbitrarily color-translated.

8.3 Web to Web

chat:
  broadcast-web-chat-to-web: true

A public web message is pushed to other connected browser clients through SSE.

8.4 Message Length

chat:
  max-message-length: 120
  max-url-message-length: 2048

Normal text and URL-oriented messages can use different limits. 0 means unlimited.

8.5 Message Tokens

KOKOTO WebChat 5.0.0 can replace administrator-configured :alias: tokens before messages are stored or relayed. The built-in alias names are English-only defaults, but aliases can be replaced or extended in any language.

Default controls:

  • :enter:, :newline:, :nextline:, :linebreak:, :br: → one new line
  • :blankline:, :emptyline:, :paragraphbreak: → one empty line
  • :tab:, :indent: → configurable spaces (4 by default)

Unknown tokens are left unchanged, so ImageEmojis/custom emoji tokens continue to work. Backslash escape forms such as :\n: are not supported. Printable custom replacements can also be configured, for example :separator:────────────.

For Minecraft output, ordinary CR/LF characters still follow the existing one-line flattening behavior. Only line breaks produced by configured newline / blank-line aliases are carried through the sanitizer and emitted as explicit Minecraft chat lines at final delivery, so :enter: works without changing the treatment of arbitrary pasted newlines. For server-relayed game output, the receiving KOKOTO WebChat server must also have the same 4.7.0 token-line delivery support; an older receiver flattens the normal relayed LF.

YAML list settings accept both inline form (aliases: [bullet, arrow]) and block form (aliases: followed by - bullet). Use normal ASCII spaces for indentation; tabs and full-width spaces are invalid YAML indentation. /kchat reload validates config.yml before stopping live services, so an invalid edit is rejected while the previous running configuration and UI language remain active.

message-tokens:
  enabled: true
  max-replacements-per-message: 24
  newline:
    aliases: [enter, newline, nextline, linebreak, br]
  blank-line:
    aliases: [blankline, emptyline, paragraphbreak]
  tab:
    aliases: [tab, indent]
    spaces: 4
  custom: {}

The server-side processor is shared by normal chat, direct messages, group chat, supported Minecraft command/chat paths, and relayed messages, so the stored/relayed content contains the resolved line breaks or printable replacement text.

Content filter

KWC 5.0.0 applies one shared filter to game-origin and web-origin public chat, with the same engine available for group chat and optional DM. Bulk filter words can be stored as UTF-8 filter-lists/*.txt files, one word per line; blank lines and # comments are ignored. Each list defaults to Block, and Web Admin can switch it to Filter mode to mask matches with content-filter.mask.text. Custom content-filter.rules in config.yml remain available for block/mask/replace behavior, shared or random replacement candidates, and per-word mappings. Unicode-aware compact/interleave matching catches spacing, punctuation, compatibility characters, and bounded inserts such as 욕1설. Registered KWC emoji tokens are protected from block/filter matching; an unregistered token-shaped string such as :fake: remains ordinary filterable text. Manage list files and custom rules in Web Admin Filter or use /kchat filter ... for custom-rule operational changes.

Clone this wiki locally