HytaleJS
Guides

Messages

Format and send styled messages

Create rich, formatted messages with colors and styling.

Basic Message

const msg = Message.raw("Hello, world!");
player.sendMessage(msg);

Colors

Use the Colors constant or hex codes:

import { Colors } from "@hytalejs.com/core";

Message.raw("Success!").color(Colors.GREEN)
Message.raw("Warning!").color(Colors.YELLOW)
Message.raw("Error!").color(Colors.RED)
Message.raw("Custom").color("#FF5733")

Available Colors

ColorHex
Colors.RED#FF0000
Colors.GREEN#00FF00
Colors.BLUE#0000FF
Colors.YELLOW#FFFF00
Colors.CYAN#00FFFF
Colors.MAGENTA#FF00FF
Colors.WHITE#FFFFFF
Colors.BLACK#000000
Colors.ORANGE#FFA500
Colors.PINK#FFC0CB
Colors.PURPLE#800080
Colors.GOLD#FFD700
Colors.GRAY#808080

Styling

Message.raw("Bold text").bold(true)
Message.raw("Italic text").italic(true)
Message.raw("Bold and italic").bold(true).italic(true)

Chaining

Build complex messages by chaining methods:

const welcome = Message.raw("Welcome!")
  .color(Colors.GREEN)
  .bold(true);

Combining Messages

Use Message.empty() and insert() to combine multiple styled parts:

const formatted = Message.empty()
  .insert(Message.raw("Player").color(Colors.GOLD).bold(true))
  .insert(Message.raw(": ").color(Colors.GRAY))
  .insert(Message.raw("Hello everyone!").color(Colors.WHITE));

Sending Messages

To a specific player

player.sendMessage(Message.raw("Private message"));

To all players in a world

const world = Universe.get().getDefaultWorld();
world.sendMessage(Message.raw("World announcement"));

To all players on the server

Universe.get().sendMessage(Message.raw("Server announcement"));

Full Example

@EventListener("PlayerChatEvent")
onChat(event: PlayerChatEvent) {
  const sender = event.getSender();
  const content = event.getContent();

  const playerName = Message.raw(sender.getUsername())
    .color(Colors.GOLD)
    .bold(true);

  const separator = Message.raw(": ").color(Colors.GRAY);

  const text = Message.raw(content).color(Colors.WHITE);

  const formatted = Message.empty()
    .insert(playerName)
    .insert(separator)
    .insert(text);

  event.setCancelled(true);

  const targets = event.getTargets();
  for (let i = 0; i < targets.length; i++) {
    targets[i].sendMessage(formatted);
  }
}

On this page