Overview
PlayerWaypointColors lets players set their own waypoint colors on the 1.21.6+ locator bar, and lets admins set colors for other players. Supports automatic player color assignment using PlaceholderAPI.
Features
- Assign custom hex colors to player waypoints (e.g., #FF0000 or FF0000 for red)
- Simple commands for players and admins
- Optional PlaceholderAPI integration for automatic color assignment on join
Compatibility
Installation
- Download the latest PlayerWaypointColors.jar.
- Place it in your server's plugins folder.
- (Optional) Install PlaceholderAPI if you want dynamic color assignment.
- Start or reload your server.
Commands & Permissions
- /pwc help Show help message
- /pwc set <color|hex> [#hexcode] Set your own waypoint color
- /pwc setother <player> <color|hex> [#hexcode] Set another player's waypoint color
- /pwc get Get your own waypoint color*
- /pwc get <player> Get another player's waypoint color*
- /pwc reset Reset your own waypoint color
- /pwc reset <player> Reset another player's waypoint color
*NOTE: /pwc get is only supported on Spigot (not on Paper) due to API limitations.
Permissions:
- playerwaypointcolor.help (defaults to everyone)
- playerwaypointcolor.self
- playerwaypointcolor.others
PlaceholderAPI Integration
PWC integrates with PlaceholderAPI in both directions: it can read a placeholder to assign a color on join, and it exposes its own placeholder so other plugins can read each player's current color.
Reading colors from a placeholder (auto-apply on join)
Set variable in config.yml to a placeholder (e.g.,
%luckperms_meta_color%) that returns a hex code in the format #00FF00 or 00FF00.
The easiest setup uses LuckPerms meta:
- Set the permission meta.color.#FF0000 on a group
- Set auto-apply-on-join to true
- Set variable to %luckperms_meta_color%
- Save config.yml and restart your server
Alternatively, use the PlaceholderAPI String expansion (particularly
%string_replaceCharacters_<configuration>_<string>%) to coerce another placeholder into a valid hex code.
Exposing a player's current color to other plugins
PWC registers
%pwc_color_<format>% where <format> is any key under placeholders.formats in config.yml. Out of the box:
- %pwc_color_minimessage% MiniMessage hex tag <#FF0000>
- %pwc_color_hex% hex with leading # #FF0000
- %pwc_color_raw% bare 6-character hex FF0000
- %pwc_color_legacy% Spigot legacy color codes &x&F&F&0&0&0&0
Add your own keys in config.yml to support whatever syntax your chat or scoreboard plugin needs. Templates can use these variables (case-sensitive):
- {HEX} — uppercase 6-char hex (e.g. FF0000)
- {hex} — lowercase 6-char hex (e.g. ff0000)
- {R1} {R2} {G1} {G2} {B1} {B2} — each channel split into its two hex digits
Example: a chat plugin using <#hex> MiniMessage syntax can format messages like
%pwc_color_minimessage%<player_name></...> to color player names with each player's chosen waypoint color.
If a player hasn't picked or been assigned a color, the placeholder returns an empty string regardless of the format requested.
Default Color on Join
Set default-color to a hex value (e.g. 00FF00) to apply that color to players who don't already have one. Leave empty to disable.
default-color-force:
- false (default): only applies the default if the player has no color set. Won't overwrite a color they picked with /pwc set.
- true: applies the default on every join, overwriting whatever color the player previously had — except a color set by auto-apply-on-join above, which always wins.