Back to mods
ChatStack project artwork

CurseForge · Hytale mod

ChatStack

Finds which chat mod is silencing the others, and hands the chat line back to the one you want

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which ChatStack release should I use?

Updated today
Latest stable file ChatStack-1.0.0.jar
Game version 0.6
Mod system Built-in Hytale mod system

ChatStack-1.0.0.jar targets 0.6. Do not install it as a separate client mod. Enable it on the world host—the local server in singleplayer or the dedicated server in multiplayer. No required dependencies listed for this file.

Where it goes

Where should ChatStack be installed in Hytale?

Do not install it as a separate client mod. Enable it on the world host—the local server in singleplayer or the dedicated server in multiplayer.

Separate client mod Not supported
World host / dedicated server Required
Mod system for this release Built-in Hytale mod system
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

Put Hytale mods on the world host or dedicated server. Singleplayer runs a local server too; Hytale does not use separate client mods.

What else does ChatStack-1.0.0.jar need?

ChatStack-1.0.0.jar. Change the file and its required mods may change too.

No required dependencies listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional project dependencies. Check the creator notes before changing an existing world.

Before you install it

Add ChatStack without breaking your instance.

Built for ChatStack-1.0.0.jar. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use ChatStack-1.0.0.jar. It targets 0.6; another release may target a different game build or dependency set.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Enable it on the world host

    Do not install it as a separate client mod. Enable it on the world host—the local server in singleplayer or the dedicated server in multiplayer.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside ChatStack-1.0.0.jar. It opens that exact file at the source.

About this project

What does ChatStack add?

ChatStack

Find out which chat mod is silencing the others — and give the line back

Install two chat mods on a Hytale server and sometimes both work, sometimes only one does. No error, no warning, nothing in the log — the ranks prefix simply stops appearing, or the level badge does, and there is no way to tell which mod took the chat or why

ChatStack is the reason that stops happening


The problem, precisely

Hytale gives every chat message one formatter slot:

public class PlayerChatEvent {
   private PlayerChatEvent.Formatter formatter;   // one slot
   public void setFormatter(Formatter f) { ... }  // last writer replaces
}

Every chat mod has to claim that slot to do its job — and what happens with two of them depends entirely on how each was written:

  • A mod that captures the formatter it finds and calls it leaves the others intact. Both show up
  • A mod that ignores it silently erases everything beneath. One of them is dead weight

Nothing in the API distinguishes the two. From the outside, a working stack and a broken one look identical: one mod is on top, and you cannot see whether it kept the rest. There are more than ten published Hytale chat mods, and no way to know which pairs survive together

What ChatStack does

1. It tells you who is fighting, and who actually reaches players

/chatstack status lists every mod that claimed the chat formatter this session, named by its jar file, and says whether each one keeps what it found or replaces it:

ChatStack  -  12 chat message(s) seen
[outermost] Azeys:PrefixesPlus   claimed 12, keeps what it found
[nested]    com.hytale:HyChat    claimed 12, replaces what it found
All 2 mods reach players: each one calls the formatter below it

and when one of them is eating the others, it says so by name:

[outermost] SomeChatMod          claimed 12, replaces what it found
[nested]    Azeys:PrefixesPlus   claimed 12, never runs
Azeys:PrefixesPlus never reaches players: SomeChatMod discards the formatter
it finds instead of calling it
Use /chatstack owner Azeys:PrefixesPlus to give it the chat line instead.

That information does not exist anywhere else today — not in the log, not in game

2. It lets you choose

/chatstack owner <mod> decides which mod owns the chat line, per server, in game or in config. No more "whichever loaded last". auto hands it back


How it works, honestly

ChatStack registers the same observation at six points across the chat dispatch, so a mod that claims the slot between two of them is caught by the later one. Between every pair of claims it leaves a marker that renders exactly what the formatter beneath it renders and notes that it was called. A marker being reached means precisely one thing — that mod called what it found — and that single fact is what the whole report is built from

It adds no calls to anyone's code. Each marker delegates exactly once, so every mod's formatter runs exactly as often as it would if ChatStack were not installed. Nothing is called with test input; nothing is invoked twice

It cannot break chat. Every probe is wrapped: a failure logs once and leaves the event untouched. A mod that only watches has no business taking a server's chat down with it

Its one honest limit: two mods that claim the slot between the same two probes are reported as one, because nothing of ChatStack's ran in between. In practice mods register at the named priorities, which is exactly where the probes sit


Install

Drop the jar in [GameFolder]/UserData/Mods/ (singleplayer) or [ServerFolder]/Mods/ (dedicated server). That is all

One jar. No dependencies. No early plugin, no bytecode patching, no launcher replacement. ChatStack uses nothing but Hytale's public plugin API

Requirements

Hytale 0.6.3 or later. Server-side only — players install nothing

Compatibility

ChatStack does not replace your chat mods, and it does not ask you to. It sits behind them and reports. Remove it and every mod behaves exactly as it did before

It works with mods released before it existed, and with mods released after it that never hear of it


What comes next

Reporting the conflict is the half that can be done with certainty. The other half — merging two mods' decorations into one line so both appear at once — is designed and prototyped, and will ship once it can be done without ever guessing. Taking a formatter apart means calling another mod's code with test input, and that is not something to switch on casually or by default

If you want it, say so on this page: it moves up the list

Project description from CurseForge.

Pick your setup

ChatStack releases for each Hytale build.

Choose the version and loader you play, then open the matching release.

1 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

ChatStack releases and Hytale builds

1 of 1 releases match

Looking for an older file? The official CurseForge project page is in Resources.