NBStudio

Messages & Styles

Customizing in-game display messages, formatting linear gradients, and viewing real-time simulated chat outputs.

Translations & Styles (messages.yml)

Every in-game string is fully configurable inside the messages.yml file. Powered by the modern Kyori MiniMessage rendering engine, you can design stunning chat announcements, gradients, and custom scoreboard indicators with full hex color accuracy.


Default Configuration File

Here is the exact default content of the messages.yml generated on server startup:

# ========================================
#           NBContest Messages
# ========================================
# All messages support MiniMessage format
# Documentation: https://docs.advntr.dev/minimessage/format.html
#
# Available tags:
# - Colors: <red>, <green>, <blue>, <yellow>, <gold>, <aqua>, <white>, <gray>, etc.
# - Formatting: <bold>, <italic>, <underlined>, <strikethrough>
# - Gradients: <gradient:color1:color2>text</gradient>
# - Hex colors: <#FF5555>text</#FF5555>
# ========================================

# ========================================
# Contest Messages
# ========================================
# All messages support either a single string or a list of strings for multi-line formatting.
# Setting any message to "" (empty string) will disable it completely.
contest-started:
  - "<gold>========================================"
  - "  <yellow>๐Ÿ† The <aqua>%event%</aqua> contest has started! ๐Ÿ†"
  - "  <gray>Compete to win rewards!"
  - "<gold>========================================"
contest-started-farming:
  - "<gold>========================================"
  - "  <yellow>๐Ÿ† The <aqua>%event%</aqua> contest has started! ๐Ÿ†"
  - "  <gold>Goal: <green>%amount% %material%</green>"
  - "<gold>========================================"
contest-ended:
  - "<red>========================================"
  - "  <dark_red>๐Ÿ The contest has ended! ๐Ÿ"
  - "  <gray>Check out the final leaderboard below!"
  - "<red>========================================"
no-participants: "<gray>No players participated in this contest."
farming-objective: "<gold>Goal: <yellow>Break %amount% %material%"

# ========================================
# Display (Boss Bar, Action Bar, Scoreboard)
# ========================================

# Boss Bar
bossbar.farming: "<gold>Time: <white>%time%s <green>- <white>%remaining% %material% left"
bossbar.generic: "<gold>Time: <white>%time%s"

# Action Bar
# Note: Action bar uses legacy color codes (&) because Minecraft action bar
# has limitations with Adventure components. Do not use MiniMessage here.
actionbar.farming: "&e%score% &f%material% harvested"
actionbar.fishing: "&e%score% &ffish caught"
actionbar.mobs: "&e%score% &fmobs killed"

# Scoreboard (Live Display)
scoreboard.title: "<gold><bold>CONTEST"
scoreboard.event: "<yellow>Event: <white>%event%"
scoreboard.time: "<aqua>Time: <white>%minutes%:%seconds%"
scoreboard.remaining: "<green>Remaining: <white>%remaining% %material%"
scoreboard.top-title: "<gold>Top Players:"
scoreboard.top-line: "<gray>#%rank% <green>%player%<dark_gray>: <yellow>%score%"
scoreboard.top-empty: "<gray>#%rank% <dark_gray>---"

# Leaderboard (End of Contest)
top-title: "<gold>Top 5 Players:"
top-line: "<gray>#%rank% <green>%player% <dark_gray>- <yellow>%score% %unit%"

# You can customize podium positions individually (fallback is top-line if not defined):
top-line-1: "๐Ÿฅ‡ <gold><bold>1st</bold> %player% <dark_gray>- <yellow>%score% %unit%"
top-line-2: "๐Ÿฅˆ <yellow>2nd</yellow> %player% <dark_gray>- <yellow>%score% %unit%"
top-line-3: "๐Ÿฅ‰ <red>3rd</red> %player% <dark_gray>- <yellow>%score% %unit%"

# ========================================
# Event Names
# ========================================
event:
  farming: "<aqua>Harvesting"
  fishing: "<blue>Fishing"
  hostiles_mobs: "<dark_red>Monster Hunt"
  passive_mobs: "<dark_green>Culling"

# ========================================
# Units (for final leaderboard)
# ========================================
unit:
  fishing: fish caught
  hostiles_mobs: mobs killed
  passive_mobs: mobs killed

# ========================================
# Material Names
# ========================================
materials:
  WHEAT: wheat
  POTATOES: potatoes
  CARROTS: carrots
  BEETROOTS: beetroot
  PUMPKIN: pumpkins
  MELON: melons
  SUGAR_CANE: sugar cane
  COCOA_BEANS: cocoa beans
  NETHER_WART: nether wart

# ========================================
# Command Messages
# ========================================
command.no-permission: "<red>You do not have permission to use this command."
command.start.already-running: "<red>A contest is already running."
command.start.unknown-event: "<red>Unknown event: <gold>%event%"
command.start.success: "<green>Contest started: <gold>%event%"
command.stop.not-running: "<red>No contest is currently running."
command.stop.success: "<red>Contest stopped."
command.reload.success: "<green>NBContest configuration and messages reloaded."

MiniMessage Format Guide

Kyori's modern MiniMessage library replaces outdated legacy codes (like &a or &e) with descriptive, HTML-like tags. It compiles cleanly on the server to prevent formatting leaks.

Color Gradients

Make titles transition smoothly across multiple linear color keys:

scoreboard.title: "<gradient:#FFD700:#FFA500><bold>๐Ÿ† CONTEST ๐Ÿ†</gradient>"

Exact HEX Coloring

Embed precise hex codes matching your server's theme or UI color style guide:

scoreboard.top-line: "<#6c5ce7>#%rank% <#fdcb6e>%player% <dark_gray>ยป <#00cec9>%score%"

Inline Hover & Click Events

You can even add hover text tooltips or click actions inside chat lines!

# When hovered, shows a nice tooltip text
top-title: "<gold>Top 5 Players <gray>(<hover:show_text:'<yellow>Rewards are automatically given!'>Hover for info</hover>):"

In-Game UI Visual Previews

See how these messages appear in real-time on your players' screens.

1. Contest Starting Announcement

When a farming contest launches, players receive this prominent multiline broadcast in their chat box:

========================================
๐Ÿ† The Harvesting contest has started! ๐Ÿ†
Goal: Break 100 potatoes
========================================

2. Ending Podium Announcement

When the contest completes, the final rankings are published to the chat, displaying unique emojis and colored podium tiers:

========================================
๐Ÿ The contest has ended! ๐Ÿ
Check out the final leaderboard below!
========================================
Top 5 Players:
๐Ÿฅ‡ 1st Notch - 128 potatoes harvested
๐Ÿฅˆ 2nd Steve - 95 potatoes harvested
๐Ÿฅ‰ 3rd Alex - 42 potatoes harvested
#4 Notch - 30 potatoes harvested
#5 Herobrine - 12 potatoes harvested

On this page