Skip to main content
Runway uses listeners to intercept and process different types of packets sent to players. This page explains each listener type and when to enable or disable them.

Overview

Listeners allow you to control which parts of the game UI support MiniMessage formatting. Disabling unused listeners can improve performance by reducing unnecessary packet processing.
All listeners are configured in the listeners section of config.yml.

Listener Types

System Messages

listeners.system-messages
boolean
default:"true"
Controls parsing of system messages, also known as plugin messages.
System messages include:
  • Chat messages sent by plugins
  • Command feedback messages
  • Plugin notifications
  • Most server-sent text messages
When to enable:
  • You want MiniMessage support in chat plugins
  • You’re using plugins that send formatted messages
  • Most common use case for Runway
When to disable:
  • You don’t use any plugins that send chat messages
  • You have a dedicated chat plugin with built-in MiniMessage support
listeners:
  system-messages: true

Tablist

listeners.tablist
boolean
default:"true"
Controls parsing of tablist headers and footers.
The tablist is the player list shown when pressing Tab:
  • Header text (displayed above player list)
  • Footer text (displayed below player list)
  • Custom tablist plugins can use MiniMessage formatting
When to enable:
  • You use a tablist plugin (e.g., TAB, AnimatedNames)
  • You want gradient headers/footers
  • You display server information in the tablist
When to disable:
  • You don’t modify the default tablist
  • Your tablist plugin has native MiniMessage support
listeners:
  tablist: true
Player names in the tablist are controlled by the scoreboard listener, not the tablist listener.

Titles

listeners.titles
boolean
default:"true"
Controls parsing of titles and subtitles.
Titles are large text displays shown in the center of the screen:
  • Title (main large text)
  • Subtitle (smaller text below title)
  • Action bar messages
When to enable:
  • You display welcome messages as titles
  • You use titles for announcements or events
  • You want gradient or animated titles
When to disable:
  • You never send titles to players
  • Your title plugin already supports MiniMessage
listeners:
  titles: true
Example usage in plugins:
player.sendTitle("[mm]<rainbow>Welcome!", "[mm]<gray>Enjoy your stay");

Scoreboards

listeners.scoreboards
boolean
default:"false"
Controls parsing of scoreboards (team-based).
Scoreboard listener is disabled by default as it can cause compatibility issues with some scoreboard plugins.
Scoreboards work using Minecraft’s team system:
  • Player name prefixes and suffixes
  • Team display names
  • Sidebar scoreboards
When to enable:
  • You use a scoreboard plugin without native MiniMessage support
  • You want formatted player name tags
  • You display information in the sidebar
When to disable:
  • You use a modern scoreboard plugin with MiniMessage support
  • You experience conflicts or visual glitches
  • Default setting for stability
listeners:
  scoreboards: false
If you experience issues with player names or scoreboards, try disabling this listener first.

Inventory

Inventory listeners control parsing in GUI menus and items.

Inventory Titles

listeners.inventory.title
boolean
default:"true"
Controls parsing of inventory menu titles (chest GUIs, etc.).
Applies to custom inventory GUIs:
  • Chest menus
  • Hopper menus
  • Dropper/dispenser menus
  • Any custom inventory opened by plugins
When to enable:
  • You use GUI plugins (shops, warps, menus)
  • You want gradient inventory titles
  • Most GUI plugins benefit from this
When to disable:
  • You don’t use any GUI plugins
  • Your GUI plugin has native MiniMessage support
listeners:
  inventory:
    title: true

Inventory Items

listeners.inventory.items
boolean
default:"true"
Controls parsing of item names and lore in open inventories.
Applies to items displayed in open inventories:
  • Item display names
  • Item lore (description)
  • Items in GUI menus
When to enable:
  • You want formatted items in shop GUIs
  • Your plugins create items with MiniMessage in menus
  • You display information through item lore
When to disable:
  • You only need regular item formatting (see items listener)
  • Performance optimization for servers with many GUI interactions
listeners:
  inventory:
    items: true

Items

listeners.items
boolean
default:"true"
Controls parsing of item names and lore in player inventories.
Applies to items in player’s inventory:
  • Custom item names
  • Item lore
  • Items given by plugins
  • Renamed items
When to enable:
  • You give custom items to players
  • You use item-based plugins (custom items, crates, cosmetics)
  • You want gradient or formatted item names
When to disable:
  • You use vanilla items only
  • Your custom item plugin has native MiniMessage support
listeners:
  items: true
The disable-italics config option affects items by automatically removing the italic formatting that Minecraft applies by default.

Performance Considerations

Impact Levels

Listeners have varying performance impacts:
ListenerImpactRecommendation
System MessagesLowKeep enabled
TablistLowKeep enabled if used
TitlesVery LowKeep enabled
ScoreboardsMediumDisable if not needed
Inventory (Title)LowKeep enabled
Inventory (Items)MediumKeep enabled if used
ItemsLow-MediumKeep enabled if used

Optimization Tips

Disable listeners you don’t use. Each disabled listener reduces packet processing overhead.
  1. Audit your plugins: Check which listeners your plugins actually use
  2. Test individually: Disable one listener at a time to measure impact
  3. Monitor performance: Use tools like Spark to profile packet handling
  4. Start conservative: Begin with fewer listeners enabled, add as needed

Minimal (Performance-focused)

listeners:
  system-messages: true
  tablist: false
  titles: false
  scoreboards: false
  inventory:
    title: false
    items: false
  items: false

Standard (Balanced)

listeners:
  system-messages: true
  tablist: true
  titles: true
  scoreboards: false
  inventory:
    title: true
    items: true
  items: true

Full (Maximum Compatibility)

listeners:
  system-messages: true
  tablist: true
  titles: true
  scoreboards: true
  inventory:
    title: true
    items: true
  items: true

Troubleshooting

Messages Not Formatting

  1. Check if the relevant listener is enabled
  2. Verify the [mm] prefix is included (if require-prefix.minimessage: true)
  3. Ensure the MiniMessage syntax is correct
  4. Reload the plugin: /runway reload

Visual Glitches or Conflicts

  1. Try disabling the scoreboards listener first
  2. Check for plugin conflicts (other MiniMessage/formatting plugins)
  3. Review server logs for errors
  4. Disable inventory.items if you see item rendering issues

Performance Issues

  1. Disable unused listeners one by one
  2. Monitor server TPS during peak hours
  3. Check if scoreboards or inventory.items are causing issues
  4. Consider using plugins with native MiniMessage support
If you experience server lag after enabling Runway, start by disabling the scoreboards and inventory.items listeners.

Reloading Configuration

After modifying listener settings, reload the configuration:
/runway reload
Changes take effect immediately without requiring a server restart.

Build docs developers (and LLMs) love