Skip to main content
Answers to frequently asked questions about Runway.

General Questions

Yes! Runway is designed to work seamlessly with other plugins.Runway operates at the packet level, which means it processes messages sent by any plugin before they reach the player. This allows you to add MiniMessage formatting to plugins that don’t natively support it.Compatible with:
  • Chat plugins (LuckPerms, EssentialsX Chat, etc.)
  • GUI plugins (DeluxeMenus, ChestCommands, etc.)
  • Scoreboard plugins (FeatherBoard, AnimatedScoreboard, etc.)
  • Any plugin that sends messages, titles, or items
Note: If you experience conflicts with a specific plugin, you can disable individual listeners in the configuration.
Yes! Runway fully supports Folia.The plugin’s paper-plugin.yml explicitly declares:
folia-supported: true
This means Runway is compatible with Folia’s multi-threaded server architecture and can run safely on Folia servers without issues.
Minimal performance impact in most cases.Why it’s efficient:
  • Runway only processes packets that require formatting
  • When require-prefix is enabled (default), only messages with [mm] or [p] are processed
  • Packet processing happens asynchronously via PacketEvents
  • The plugin uses minimized/shaded dependencies to reduce overhead
Performance tips:
  • Keep require-prefix enabled to avoid processing unnecessary packets
  • Only enable the listeners you actually need
  • Disable placeholder parsing if not using PlaceholderAPI/MiniPlaceholders
Typical overhead:
  • CPU: < 1% on average servers
  • Memory: ~5-10MB additional RAM usage
  • Network: No additional bandwidth (only modifies existing packets)
Prefixes provide fine-grained control over which messages are formatted.Benefits of prefixes:
  • Performance - Only process messages that need formatting
  • Compatibility - Avoid formatting messages that shouldn’t be formatted
  • Selective formatting - Choose exactly which messages use MiniMessage
  • Debug-friendly - Easy to identify which messages are being processed
Default prefixes:
  • [mm] - Enable MiniMessage formatting
  • [p] - Enable placeholder parsing (PlaceholderAPI/MiniPlaceholders)
  • [actionbar] - Send message as action bar
Example usage:
# Plugin config message
welcome-message: "[mm]<gradient:green:blue>Welcome to the server!</gradient>"

# With placeholders
player-greeting: "[mm][p]<gold>Hello, %player_name%!</gold>"

# Action bar message
health-display: "[mm][actionbar]<red>❤</red> Health: <white>%player_health%</white>"
Yes! You can make Runway process all messages automatically.Disable prefixes in config.yml:
require-prefix:
  minimessage: false  # Process all messages with MiniMessage
  placeholders: false # Parse all placeholders
When to disable:
  • You want all server messages to support MiniMessage
  • You’re using Runway as a global formatting solution
  • You trust all plugin messages to have valid MiniMessage syntax
Considerations:
  • Higher processing overhead (all packets are formatted)
  • Potential formatting of unintended messages
  • May cause issues if plugins send malformed text
Recommendation: Start with prefixes enabled, then disable if needed after testing.
Both plugins provide placeholder functionality, but they work differently:PlaceholderAPI:
  • Traditional placeholder system
  • Uses %placeholder% syntax
  • Wide plugin support (1000+ plugins)
  • Expansion-based (download specific placeholder packs)
  • Example: %player_name%, %vault_eco_balance%
MiniPlaceholders:
  • Modern placeholder system for MiniMessage
  • Uses <placeholder> syntax (matches MiniMessage)
  • Designed for Paper servers
  • Built-in placeholders (no expansions needed)
  • Example: <player:name>, <server:tps>
Can you use both? Yes! Runway supports using both simultaneously:
placeholder-hook:
  placeholderapi: true
  miniplaceholders: true
Runway allows you to define custom static placeholders in placeholders.yml.Example configuration:
custom-placeholders:
  server-name: "<gradient:aqua:blue>My Server</gradient>"
  website: "<click:open_url:'https://example.com'><aqua>example.com</aqua></click>"
  prefix: "<gold>[Server]</gold>"
Usage in messages:
[mm]Welcome to <server_name>! Visit <website> for more info.
Key features:
  • Placeholders are automatically converted to lowercase and use underscores
  • Supports full MiniMessage syntax (gradients, hover, click events, etc.)
  • Reloaded with /runway reload
  • Static only (not player-specific)
Yes, but it’s disabled by default.Enable scoreboard support:
listeners:
  scoreboards: true
Note: Scoreboard formatting can be performance-intensive since scoreboards update frequently. Only enable if you need MiniMessage formatting in scoreboards.Best practices:
  • Keep scoreboard updates to a reasonable interval (1-2 seconds minimum)
  • Use simple MiniMessage tags (avoid complex gradients)
  • Test with multiple players online to verify performance
Depends on your configuration:With prefix required (default):
  • Messages without [mm] are passed through unchanged
  • Original formatting is preserved
  • MiniMessage tags in the text are treated as literal text
Example:
# Without [mm] prefix
"<red>This will show as literal text</red>"
# Player sees: <red>This will show as literal text</red>

# With [mm] prefix
"[mm]<red>This will be red</red>"
# Player sees: This will be red (in red color)
With prefix disabled:
  • All messages are processed as MiniMessage
  • MiniMessage tags are always interpreted
Yes! Runway declares optional dependencies for:
  • ViaVersion
  • ViaBackwards
  • ViaRewind
These plugins allow older Minecraft clients to connect to newer servers.Note: MiniMessage features (gradients, hex colors, etc.) may not display correctly on very old client versions. The plugin will gracefully handle this, but some formatting may be lost or simplified.
Absolutely! Runway is designed for production use.Production-ready features:
  • Minimal performance impact
  • Graceful error handling
  • Hot-reload configuration with /runway reload
  • No data storage or persistence needed
  • Compatible with Folia (multi-threaded)
  • Actively maintained
Recommendations:
  • Test thoroughly on a staging server first
  • Start with conservative settings (prefixes enabled)
  • Monitor performance during peak hours
  • Keep the plugin updated
Use the parse command:
/runway parse <gradient:red:blue>Test Message</gradient>
This command will show you exactly how Runway processes the text.Other tests:
  1. Add [mm] to a message in another plugin’s config
  2. Use the /me command with MiniMessage formatting
  3. Check if existing plugin messages respect the formatting
  4. Look for Runway in /plugins list (should be green)
Expected behavior:
  • Console shows “Runway has been enabled”
  • No errors during startup
  • Parse command returns formatted text

Still Have Questions?

If your question isn’t answered here:

Build docs developers (and LLMs) love