Skip to content

Repository files navigation

Custom Chat

Custom Chat is a client-side Fabric mod for Minecraft that provides a configurable chat screen, styled local history, searchable logs, optional translation tools, rank tooltips, and a Twitch chat HUD.

Status

Active development and support by the original author are paused indefinitely while the author focuses on other development directions and projects. The project is not declared permanently abandoned: this repository will remain public, issues may be opened, and pull requests may still be reviewed. Response times are not guaranteed, accepted pull requests do not imply that a release will be published, and there is no release schedule.

If development resumes, the source repository is intended to remain public.

Current version

Component Version / requirement
Custom Chat source 1.0.8
Minecraft 1.21.11
Java 21
Mod loader Fabric Loader 0.18.4 or newer
Environment Client only

Fabric API and Fabric Language Kotlin are required. Mod Menu is optional; the built-in settings screen can also be opened with /customchat settings.

Main features

  • Custom chat screen opened with U by default, with vanilla-compatible message and command sending.
  • Styled local history that preserves Minecraft Text, including click, hover, insertion, item, and entity interactions.
  • Readable and indexed binary local chat logs, separated by server or single-player context.
  • Optional message translation through MyMemory or a user-configured LibreTranslate-compatible service.
  • Configurable rank tooltips that do not replace hover events supplied by a server.
  • Optional Twitch IRC HUD with sending controls, connection status, test mode, and 7TV emotes.
  • Multiple built-in UI themes and a built-in settings screen.

Installation

  1. Install Minecraft 1.21.11, Fabric Loader, Fabric API, and Fabric Language Kotlin.
  2. Download a compatible Custom Chat jar from the official Modrinth page, if one is available, or build the current source.
  3. Place the mod jar and its required Fabric dependencies in the Minecraft mods directory.

Custom Chat is client-side only. Do not install it as a server requirement.

Building from source

Clone the repository and use the checked-in Gradle Wrapper with JDK 21. The complete build logic, ProGuard rules, wrapper, and required libs/GardeLogStore-0.1.5-dev.jar dependency are part of the repository.

Normal build on Windows:

.\gradlew.bat build

Normal build on Unix-like systems:

chmod +x gradlew
./gradlew build

The one-time chmod is needed because the wrapper currently has a non-executable mode in Git.

The normal remapped mod jar and sources jar are written to build/libs/custom-chat-1.0.8.jar and build/libs/custom-chat-1.0.8-sources.jar.

Protected build

The public protected pipeline runs ProGuard, protects internal texture paths, embeds the required logging library, and verifies metadata, mixins, localization parity, the icon, obfuscation invariants, and secret-like patterns.

Windows:

.\gradlew.bat protectedJar --rerun-tasks

Unix-like systems:

./gradlew protectedJar --rerun-tasks

The result is build/libs/custom-chat-1.0.8-protected.jar. Generated mappings and verification reports are under build/protection/. See docs/BUILDING.md for details.

Developer Documentation

Start at the complete developer documentation index.

Configuration

The primary configuration is stored in the Minecraft instance at config/custom-chat/custom-chat.json. Rank tooltip mappings are stored separately in config/custom-chat/rank-tooltips.json. The built-in settings screen is available through Mod Menu or /customchat settings, /customchat config, and /customchat options.

Configuration can contain private values such as a Twitch OAuth token or a LibreTranslate-compatible API key. Never commit or upload a personal configuration file.

Logs / Local History

Local history records incoming chat, game messages, outgoing chat, and outgoing commands. Readable logs are stored under config/custom-chat/logs/; indexed binary logs are stored under config/custom-chat/binary-logs/. The in-game logs screen can be opened from Custom Chat, settings, or an optional key binding.

Sensitive authentication-style commands are filtered by the logging implementation, but always review logs before sharing them publicly.

Translation

When translation is enabled, Shift + Right Click on a local-history message opens the translation screen. Translation is never sent automatically:

  • Insert only inserts the translated text into Custom Chat.
  • Copy only copies the result to the clipboard.
  • Google Translate only opens the public Google Translate page in the browser.

The built-in providers are MyMemory and a user-configured LibreTranslate-compatible endpoint. The project contains no embedded translation API key and does not use hidden Google translation endpoints.

Rank Tooltips

Rank tooltips can map server-specific glyphs or nickname colors to readable rank names. The enhancer preserves click events and refuses to overwrite an existing server HoverEvent. Mappings can be scoped globally or per server in rank-tooltips.json.

Twitch HUD

The optional Twitch HUD connects to Twitch IRC, can show connection state, supports controlled outgoing messages, and can render supported 7TV emotes. Configure the channel, username, and OAuth token only in local settings. Use a token with only the scopes required by the feature and never include it in an issue, log, screenshot, or commit.

The /customchat twitchhud command tree provides status, connect, disconnect, reconnect, test, clear, send, and 7TV diagnostic actions.

Localization

The interface currently ships eight locale files: English, Russian, Spanish, German, Polish, Brazilian Portuguese, French, and Simplified Chinese. Every localization change must keep identical key sets across all eight files. See docs/LOCALIZATION.md.

Contributing

Pull requests may still be reviewed during the development hiatus. Keep changes focused, preserve Minecraft text styles and interactions, update every locale when adding a key, and run the relevant normal and protected builds. Read CONTRIBUTING.md before submitting a change.

Issues and pull requests

Use GitHub Issues for reproducible bugs and proposals. Remove tokens, API keys, account details, server addresses, and other private information from logs before uploading them. There is no guaranteed response, fix, merge, or release schedule during the hiatus.

License

Custom Chat is licensed under GNU General Public License v3.0 only (GPL-3.0-only); see LICENSE.txt. The license permits use, inspection, modification, forks, and redistribution under its terms, including the source and copyleft obligations that apply when covered works are conveyed.

Copyright (c) 2026 Garde1.

Source code

The complete source and build pipeline are public at github.com/Gardeone12/CustomChat, including Java/Kotlin sources, resources, Gradle configuration, ProGuard rules, protected-build logic, checks, and the required vendored logging library.

Development hiatus

Official new releases and active support are paused until the original author returns. Pull requests and issues remain available, but acceptance of a contribution does not automatically produce a release. This status may change in the future; the repository is intended to remain public either way.

About

Private development repository for Custom Chat, a client-side Fabric Minecraft chat mod.

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages