promotional bannermobile promotional banner

JemAnnouncements

Sheduled/automated announcement system with chat, notifications, titles, and sounds.
NotificationExample.png

NotificationExample.png

CenteredChatExample.png

CenteredChatExample.png

ChatExample.png

ChatExample.png

ConfigFile.png

ConfigFile.png

AnnouncementFile.png

AnnouncementFile.png

Description

A Hytale server plugin that provides an automated announcement system with support for chat, notifications, titles, and sound messages. This plugin allows you to schedule and customize announcements that are automatically sent to all online players at configurable intervals.


Current Features

  • Multiple Message Types: Support for chat messages, action bar notifications, titles, and sound effects
  • Flexible Scheduling: Configurable intervals for automatic announcements
  • Message Ordering: Choose between sequential or random message ordering
  • Priority System: Set message priorities to control display order
  • Message Centering: Automatically center chat messages for better presentation
  • Multiple Message Files: Create unlimited announcement messages as separate JSON files
  • Rich Formatting: Support for hex, rgb, legacy color(& codes), and TinyMsg tags
  • Hot Reload: Reload configuration and messages without restarting the server using /announce-reload
  • Manual Triggering: Manually trigger any announcement by name using /announce <message-name>. For messages in subfolders, use the relative path (e.g., /announce example/example-chat).
  • Folder Support: Organize your message files into subfolders for better management
  • Update Check: Check GitHub releases for updates and notifies you if there is one
  • Example Templates: Automatically generates example message templates on first launch

Message Types

Chat Messages: Send formatted chat messages to all players (supports multiple lines, centering, and rich formatting) Chat Example

Notification: Display notifications similar to item pickup notifications with custom icons Notification Example

Title Messages: Show title and subtitle messages with customizable fade in/out timing and major title support Title Example

Sound Effects: Play custom sounds to all players with configurable volume and pitch


Installation

  1. Download the latest release from the releases page
  2. Place the JemAnnouncements-x.x.x.jar file into your Hytale server's mods folder
  3. Start your server to generate the configuration files
  4. Edit the Jemsire_JemAnnouncements/AnnouncementConfig.json file to configure intervals and ordering
  5. (Optional) Customize message files in Jemsire_JemAnnouncements/messages/ folder
  6. In-game type /announce-reload to hot reload the config and start the plugin

Note: Example message templates are automatically created on first launch. You can customize them or create your own message files.

Configuration

After first launch, configuration files will be created in your mods folder. The plugin uses a two-tier configuration system:

  1. AnnouncementConfig.json: Main configuration with timing and ordering settings
  2. messages/: Individual message configuration files

Main Configuration File (AnnouncementConfig.json)

The main configuration file is located at Jemsire_JemAnnouncements/AnnouncementConfig.json:

{
  "IntervalSeconds": 300,
  "EnableRandomization": false,
  "CreateExampleMessages": true,
  "LogLevel": "INFO",
  "Version": 1
}

Configuration Options:

  • IntervalSeconds: Time in seconds between announcements (default: 300 = 5 minutes)
  • EnableRandomization: Set to true for random message order, false for sequential order (default: false)
  • CreateExampleMessages: If set to true, the plugin will automatically create example message files if none exist (default: true).
  • LogLevel: Controls the detail of plugin logs in the console.
    • "INFO" (Default): Shows standard plugin information and errors.
    • "DEBUG": Shows detailed internal tracing, useful for troubleshooting message parsing and delivery.
    • "NONE": Disables all logs except for critical errors.
  • Version: Configuration version (currently 1)

Message Configuration Files

Each announcement message has its own configuration file in Jemsire_JemAnnouncements/messages/. The plugin recursively scans this folder, allowing you to organize your messages into subfolders if desired.

Example templates are automatically created on first launch in the messages/example/ subfolder:

  • example/example.json - Complete example with all message types
  • example/example-chat.json - Chat messages only
  • example/example-notification.json - Action bar notification only
  • example/example-title.json - Title message only
  • example/example-sound.json - Sound effect only
  • example/example-all.json - All message types combined
  • example/example-no-center.json - Example without message centering

Message Configuration Structure

{
  "Enabled": true,
  "Center": true,
  "Priority": 0,
  "ChatMessages": [
    "<aqua><bold>---[Announcement]---</bold></aqua>",
    "<yellow>This is an announcement message!</yellow>"
  ],
  "Notification": {
    "Title": "<yellow><bold>Announcement</bold></yellow>",
    "Subtitle": "<gray>This is a notification</gray>",
    "Icon": "Weapon_Sword_Mithril"
  },
  "Title": {
    "Title": "<green><bold>Announcement</bold></green>",
    "Subtitle": "<gray>This is a title</gray>",
    "IsMajor": false,
    "FadeIn": 0.25,
    "Stay": 5.0,
    "FadeOut": 0.25
  },
  "Sound": {
    "SoundName": "SFX_Unbreakable_Block",
    "Volume": 1.0,
    "Pitch": 1.0
  }
}

Configuration Options:

  • Enabled: Enable or disable this message (true/false)
  • Center: Center chat messages in the chat window (true/false, default: true)
  • Priority: Higher priority messages are shown first when sorted (default: 0)
  • ChatMessages: Array of chat message strings (sent in order)
  • Notification: notification configuration (optional)
  • Title: Title/subtitle configuration (optional)
  • Sound: Sound effect configuration (optional)

Message Format Examples

Chat Messages Only:

{
  "Enabled": true,
  "Center": true,
  "ChatMessages": [
    "<aqua><b>---[Server Rules]---</b></aqua>",
    "<e>1. Be respectful to other players</e>",
    "<e>2. No griefing or cheating</e>",
    "<e>3. Have fun!</e>"
  ]
}

Centered with offset (fine-tune centering per line):

{
  "Enabled": true,
  "Center": true,
  "ChatMessages": [
    "<offset:-3><6>Shifted left by 3 spaces</6>",
    "<aqua>Normal centered line</aqua>",
    "<offset:5><green>Shifted right by 5 spaces</green>"
  ]
}

Notification:

{
  "Enabled": true,
  "Notification": {
    "Title": "<yellow><bold>Server Event Starting!</bold></yellow>",
    "Subtitle": "<gray>Join us in 5 minutes</gray>",
    "Icon": "Weapon_Sword_Mithril"
  }
}

Title Message:

{
  "Enabled": true,
  "Title": {
    "Title": "<green><bold>Welcome to the Server!</bold></green>",
    "Subtitle": "<gray>Enjoy your stay</gray>",
    "IsMajor": true,
    "FadeIn": 0.5,
    "Stay": 7.0,
    "FadeOut": 0.5
  }
}

Sound Effect:

{
  "Enabled": true,
  "Sound": {
    "SoundName": "SFX_Unbreakable_Block",
    "Volume": 1.0,
    "Pitch": 1.0
  }
}

Combined (All Types):

{
  "Enabled": true,
  "Center": true,
  "ChatMessages": [
    "<aqua><bold>---[Complete Example]---</bold></aqua>",
    "<yellow>This includes all message types!</yellow>"
  ],
  "Notification": {
    "Title": "<yellow><bold>Complete Example</bold></yellow>",
    "Subtitle": "<gray>All message types combined</gray>",
    "Icon": "Weapon_Sword_Mithril"
  },
  "Title": {
    "Title": "<green><bold>Full Announcement</bold></green>",
    "Subtitle": "<gray>Chat, Notification, Title, and Sound</gray>",
    "IsMajor": true,
    "FadeIn": 0.5,
    "Stay": 7.0,
    "FadeOut": 0.5
  },
  "Sound": {
    "SoundName": "SFX_Unbreakable_Block",
    "Volume": 1.0,
    "Pitch": 1.0
  },
  "Priority": 0
}

Formatting Support

The plugin supports TinyMsg tags, legacy & color codes, and centering offsets.

TinyMsg tags (HTML-like):

Tag Aliases Example Description
<color:X> <c:X>, <colour:X> <color:red>text</color> Named or hex color
<gradient:X:Y> <grnt:X:Y> <gradient:gold:red>text</gradient> Color gradient
<bold> <b> <b>text</b> Bold
<italic> <i>, <em> <i>text</i> Italic
<underline> <u> <u>text</u> Underline
<monospace> <mono> <mono>text</mono> Monospace
<link:URL> <url:URL> <link:https://example.com&gt;click&lt;/link&gt; Clickable link
<reset> <r> <b>bold<reset>normal Reset 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

Minecraft-style legacy tags: Use <0><9> and <a>, <b>, <d>, <e>, <f> for the same colors as &0&f (e.g. <e>yellow</e>, <6>gold</6>). Use <red> or <color:red> for red so <c:#FF0000> still works for hex.

Hex colors: <color:#FF0000>red</color> or <c:#FF00FF>magenta</color>

Legacy & color codes (converted to TinyMsg before parsing):

  • &0&f – Colors (e.g. &a green, &c red)
  • &l bold, &o italic, &n underline, &r reset
  • &#RRGGBB and &x&R&R&G&G&B&B – Hex colors

Centering offset (one per line when Center is enabled):

  • <offset:N> – Adjust leading spaces: positive = shift right, negative = shift left (e.g. <offset:-2>, <offset:5>). The tag is stripped and not shown.

Note: Legacy & codes are converted to TinyMsg tags before parsing. You can mix tags and & codes in the same message.

Commands

  • /announce-reload - Reloads the plugin configuration and messages without restarting the server

    • Permission: jemsire.announcements.reload
    • Usage: Reloads main config and all message files, restarts scheduler if interval or ordering changed
  • /announce <message-name> - Manually trigger an announcement by message name

    • Permission: jemsire.announcements.announce
    • Usage: /announce example (message name without .json extension)
    • Example: /announce example triggers the message from example.json

This project is open-source:

Feel free to contribute or spin it into your own system! Check out the Github

Want to get updates for all my projects?

Join the discord! Join Now!

The JemAnnouncements Team

profile avatar
Owner
  • 1
    Followers
  • 4
    Projects
  • 946
    Downloads

More from Jemsire

  • JemLives project image

    JemLives

    • 53
    • Mods

    A limited lives/Semi-Hardcore type system. Inspired by the 3rd life series from Grian.

    • 53
    • February 19, 2026
    • Mods
    • +2
  • DiscordWebhook project image

    DiscordWebhook

    • 468
    • Mods

    Displays chat and events in Discord using only a webhook. Multi channel support!

    • 468
    • February 10, 2026
    • Mods
    • +1
  • JemDeaths project image

    JemDeaths

    • 138
    • Mods

    Displays death messages and position to player in chat when players die.

    • 138
    • February 10, 2026
    • Mods
    • +2
  • JemLives project image

    JemLives

    • 53
    • Mods

    A limited lives/Semi-Hardcore type system. Inspired by the 3rd life series from Grian.

    • 53
    • February 19, 2026
    • Mods
    • +2
  • DiscordWebhook project image

    DiscordWebhook

    • 468
    • Mods

    Displays chat and events in Discord using only a webhook. Multi channel support!

    • 468
    • February 10, 2026
    • Mods
    • +1
  • JemDeaths project image

    JemDeaths

    • 138
    • Mods

    Displays death messages and position to player in chat when players die.

    • 138
    • February 10, 2026
    • Mods
    • +2