XYAT | KineticChat
Create a server, get 25% off your first month

# KineticChat
## Overview
**KineticChat** is a multiplayer-focused chat overhaul for Minecraft Forge.
It is designed for large modpacks, long-running servers, and players who regularly work with large amounts of chat or command text. Instead of adding a few cosmetic chat options, KineticChat expands the limits of Minecraft's chat system and adds persistent history, navigation, timestamps, message compaction, player avatars, and a dedicated history-copy interface.
### What KineticChat Changes
- Extends the maximum length of chat messages and commands far beyond the vanilla limit.
- Supports large client-side chat history.
- Provides bounded server-side history persistence for individual players.
- Adds a draggable scrollbar for quickly navigating long chat histories.
- Adds optional millisecond-precision timestamps.
- Compacts consecutive duplicate messages into a single entry with a repeat counter.
- Displays player skin heads beside chat messages.
- Provides a dedicated virtual canvas for browsing and copying chat history.
- Supports optional server-side chat-signature stripping.
- Separates server gameplay rules from client-only display preferences.
## Why KineticChat Is a Separate Mod
KineticChat is an independently installable feature mod with its own Mod ID, codebase, configuration, networking behavior, client rendering changes, and release cycle.
**KineticCore is only a required shared infrastructure dependency.** It provides common systems such as configuration registration, networking utilities, GUI infrastructure, and the unified Kinetic configuration entry.
The actual chat functionality described on this page is implemented by KineticChat itself and is not included in KineticCore.
If KineticChat is removed, its extended chat limits, persistent history, timestamps, message stacking, player avatars, scrollbar, copy canvas, and other chat features are removed as well.
Keeping KineticChat separate also allows players and server owners to use the Kinetic chat system without being forced to install unrelated Kinetic gameplay modules such as armor systems, beacon mechanics, combat testing, enchantments, world-generation tools, or entity-cleanup systems.
## Main Features
### Extended Chat and Command Limits
Vanilla Minecraft normally restricts chat input to relatively short messages.
KineticChat allows the server to configure a substantially larger maximum length for both chat messages and commands.
The default KineticChat limit is:
```text
16384 characters
```
For multiplayer use, clients and servers should use matching limits.
### Persistent Chat History
KineticChat can preserve player chat and input history between sessions.
The server keeps a bounded history for each player rather than storing an unlimited amount of data.
The default history limit is:
```text
10000 lines
```
The configured range is:
```text
100 - 100000 lines
```
A separate per-player storage budget is also applied to prevent uncontrolled history growth.
### Draggable Chat Scrollbar
A scrollbar is added to the right side of the chat interface.
Instead of relying only on the mouse wheel, players can drag the scrollbar directly to move through very large chat histories.
This is particularly useful on servers where hundreds or thousands of messages may accumulate during a session.
### Repeated Message Compaction
Consecutive identical messages can automatically be merged.
Instead of displaying:
```text
Server message
Server message
Server message
Server message
```
KineticChat can display the message once together with a repeat count.
This reduces clutter caused by:
- repeated system messages
- server notifications
- mod output
- repeated player messages
- recurring warnings
### High-Precision Timestamps
Messages can display local timestamps using millisecond precision:
```text
[HH:mm:ss.SSS]
```
Timestamp rendering is a client-side preference and does not modify the original server message.
### Player Avatars
Player messages can display their skin head directly in the chat history.
KineticChat uses player UUID information for skin lookup and includes fallback behavior when a normal skin cannot be resolved.
### Chat History Copy Canvas
KineticChat includes a dedicated history viewer for copying chat text.
The virtual canvas can be opened from the chat interface and allows players to browse a much larger history area without being restricted to Minecraft's normal chat presentation.
It is intended for copying:
- commands
- server output
- coordinates
- debug information
- player messages
- long configuration or script text
### Optional Chat Signature Stripping
Servers may optionally strip chat signatures before broadcasting messages.
The corresponding state is synchronized so the client can handle related insecure-chat and reporting UI behavior consistently with the active server configuration.
This feature is optional and can be disabled independently.
## Server and Client Configuration
KineticChat deliberately separates authoritative server settings from local display preferences.
### Server-Controlled Settings
The server controls settings that affect gameplay or networking behavior, including:
- maximum chat and command length
- persistent history storage
- history limits
- chat-signature behavior
Editing server-authoritative settings requires permission level 2.
### Client-Only Preferences
The following settings affect only the local player's interface:
- timestamps
- draggable scrollbar
- repeated-message compaction
- player avatars
- local chat presentation
Changing these options does not modify the connected server's configuration.
## Configuration
Primary configuration file:
```text
config/kineticcore/chat.toml
```
The shared `config/kineticcore/` directory is used because KineticCore provides the common configuration framework.
This does **not** mean KineticChat is part of KineticCore. The actual chat implementation is contained in the KineticChat mod and only exists while KineticChat is installed.
## Configuration Options
| Setting | Description |
| --- | --- |
| **Chat Enhancements** | Server-authoritative chat length, history storage, and signature settings. Editing requires permission level 2. |
| **Compact Chat (Stacking)** | Merges consecutive identical messages and displays a repeat counter. |
| **Draggable Scrollbar** | Adds a draggable scrollbar for navigating large chat histories. |
| **Show Player Avatars** | Displays player skin heads beside chat messages. |
| **Max History Lines** | Maximum number of history lines retained for each player. Valid range: 100–100000. |
| **Save Chat History** | Controls whether new chat and input history is persisted between sessions. |
| **Max Chat Length** | Maximum number of characters accepted by chat input, packets, and commands. |
| **Strip Chat Signatures** | Controls optional server-side chat-signature stripping. |
| **Enable Timestamps** | Adds local `[HH:mm:ss.SSS]` timestamps to displayed messages. |
| **Chat Client Preferences** | Local display and interaction settings that never modify server rules. |
## Chat History Interface
| Control | Function |
| --- | --- |
| **Capture** | Opens the virtual chat-history canvas for scrolling, selecting, and copying text. |
| **Back** | Leaves the history canvas and returns to the normal chat interface. |
## Default Configuration
| Key | Default |
| --- | --- |
| `enable_chat_heads` | `true` |
| `enable_chat_history_saving` | `true` |
| `enable_compact_chat` | `true` |
| `enable_draggable_scrollbar` | `true` |
| `enable_timestamp` | `true` |
| `max_chat_history_lines` | `10000` |
| `max_chat_length` | `16384` |
| `strip_chat_signatures` | `true` |
## Data Path
```text
config/kineticcore/chat.toml
```
## Requirements
- Minecraft Forge
- Java 17
- KineticCore: required
## Dependencies
| Mod ID | Relationship |
| --- | --- |
| `kineticcore` | Required |

