⚠️ Breaking change: the configuration format has been completely reworked and is incompatible with previous versions. Please delete your existing config and reconfigure the plugin using the updated documentation.
What's changed
Dual renderer — support for all client versions
Added a Scoreboard Teams renderer for clients below 1.19.4. The plugin automatically selects the appropriate renderer per viewer: Text Display for 1.19.4+ clients, Scoreboard Teams for older ones.
TAB compatibility
ModernTags now manages Scoreboard Teams internally, eliminating the need to disable TAB's nametag handling.
Tags in separate files
Tags are now defined in dedicated files referenced from config.yml, each optionally containing both modern and legacy sections.
Condition system
Replaced the moderntags.tag.<name> permission model with owner-conditions and viewer-conditions — arbitrary expressions evaluated per owner and per viewer respectively.
Viewer-aware placeholders
Placeholder syntax updated from <placeholder:key> to {owner:key} / {viewer:key}, enabling per-viewer tag content.
Sneak dimming
Tags now dim when the owner is sneaking on 1.19.4+ clients, consistent with vanilla behavior.
Permission changes
Removed moderntags.tag.<name> and moderntags.see.other. Tag selection is now fully driven by the condition system.