Formatting the chat
Learn how to format the chat using the PlayerChatEvent and rich text with TinyMessage

The chat uses the PlayerChatEvent, it contains the formatter, the PlayerRef for the sender, the content as well as a list of targets (it's safe to assume the targets is the list of players who can see the chat message) You can cancel this event as well as modify the content and the formatter.
Manual Formatting (Standard Approach)
public class ChatFormatter {
public static void onPlayerChat(PlayerChatEvent event) {
PlayerRef sender = event.getSender();
if(event.getContent().equalsIgnoreCase("poo")) {
event.setCancelled(true);
sender.sendMessage(Message.raw("Hey, you cannot say that!").color(Color.RED));
}
if(event.getContent().equalsIgnoreCase("you stink")) {
event.setContent("i stink");
}
event.setFormatter((playerRed, message) ->
Message.join(
Message.raw("[COOL] ").color(Color.RED),
Message.raw(sender.getUsername()).color(Color.YELLOW),
Message.raw(" : " + message).color(Color.PINK)
));
}
}The formatter is the following interface:
public interface Formatter {
@Nonnull
Message format(@Nonnull PlayerRef playerRef, @Nonnull String message);
}
}TinyMessage - Rich Text Formatting (Easy Alternative)

TinyMessage is a lightweight, powerful rich text parser for Hytale servers that allows you to use simple tags to create gradients, hex colors, clickable links, and nested styles in chat messages. Similar to minecraft MiniMessage
Features
- Gradients:
<gradient:red:blue>Hello</gradient>or multi-color<gradient:gold:red:black>... - Hex Colors:
<color:#FF55FF>Custom Colors</color>or<color:red>Named Colors</color> - Standard Styles:
<b>Bold</b>,<i>Italic</i>,<u>Underline</u>,<mono>Monospace</mono> - Clickable Links:
<link:https://google.com>Click me!</link> - Nested Styling: Tags can be nested indefinitely
Usage Examples
import fi.sulku.hytale.TinyMsg;
import com.hypixel.hytale.server.core.Message;
// Parse a formatted string into a Message
Message message = TinyMsg.parse("<gradient:red:blue>Hello World!</gradient>");
player.sendMessage(message);
// Multiple styles
TinyMsg.parse("<b><color:gold>Bold Gold Text</color></b>");
// Clickable gradient link
TinyMsg.parse("<link:https://example.com><gradient:aqua:blue>Click me!</gradient></link>");
// Complex nested styling
TinyMsg.parse("<b>Bold <i>and italic <color:red>and red</color></i></b>");
// Reset styles mid-text
TinyMsg.parse("<b>Bold <reset>normal text");public class ChatFormatter {
private void onPlayerChat(PlayerChatEvent event) {
PlayerRef sender = event.getSender();
if (event.getContent().equalsIgnoreCase("poo")) {
event.setCancelled(true);
sender.sendMessage(TinyMsg.parse("<red>Hey, you cannot say that!</red>"));
}
if (event.getContent().equalsIgnoreCase("you stink")) {
event.setContent("i stink");
}
event.setFormatter((playerRed, message) ->
TinyMsg.parse("<red>[COOL] </red><yellow>" + sender.getUsername() + "</yellow><pink> : " + message + "</pink>"));
}
}Installation
Links:
Github Repository
Github Releases
Curseforge (coming soon)
Installation for server owners:
Download the TinyMessage.jar
Download the latest TinyMessage.jar from the releases page and place it in your server's mods folder.
Installation for developers:
manifest.json
"Dependencies": {
"Zoltus:TinyMessage": "*"
},For Gradle
repositories {
maven { url = uri("https://jitpack.io") }
}
dependencies {
compileOnly("com.github.Zoltus:TinyMessage:2.0.1") // Use newest version in the repo
}For Maven
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.Zoltus</groupId>
<artifactId>TinyMessage</artifactId>
<version>2.0.1</version>
<scope>provided</scope>
</dependency>API Reference
TinyMsg.parse(String text)
Parses a string with TinyMsg tags and returns a Message object.
Parameters:
text- The string to parse
Returns:
Message- A HytaleMessageobject ready to be sent to players
Supported Tags
| Tag | Aliases | Example | Description |
|---|---|---|---|
<color:X> | <c:X>, <colour:X> | <color:red>text</color> | Sets text color (named or hex) |
<gradient:X:Y:Z> | <grnt:X:Y:Z> | <gradient:red:blue>text</gradient> | Creates a color gradient |
<bold> | <b> | <b>text</b> | Makes text bold |
<italic> | <i>, <em> | <i>text</i> | Makes text italic |
<underline> | <u> | <u>text</u> | Underlines text |
<monospace> | <mono> | <mono>text</mono> | Uses monospace font |
<link:URL> | <url:link> | <link:https://google.com>click</link> | Creates clickable link |
<reset> | <r> | <b>bold<reset>normal | Resets all formatting |
Named Colors
black, dark_blue, dark_green, dark_aqua, dark_red, dark_purple, gold, gray, dark_gray, blue, green, aqua, red, light_purple, yellow, white
License
TinyMsg is available under the MIT License - feel free to use in your projects!