Manage 1.21.6+ player locator bar waypoint colors, and automatically set custom colors on join
PlayerWaypointColors lets players set their own waypoint colors and lets admins set colors for other players. Optional PlaceholderAPI integration for automatic color assignment on join, exporting a player's current color to other plugins (chat, scoreboards, etc.), and configurable server defaults.
#FF0000 or FF0000 for red)%pwc_color_<format>% so other plugins can use it (MiniMessage, hex, raw, legacy spigot, or any custom format you define)PlayerWaypointColors.jar.plugins folder.| Command | Description | Permission | Default |
|---|---|---|---|
/pwc help |
Show help message | playerwaypointcolor.help | all |
/pwc set <color|hex> [#hexcode] |
Set your own waypoint color | playerwaypointcolor.self | OP |
/pwc setother <player> <color|hex> [#hexcode] |
Set another player's waypoint color | playerwaypointcolor.others | OP |
/pwc get |
Get your own waypoint color | playerwaypointcolor.self | OP |
/pwc get <player> |
Get another player's waypoint color | playerwaypointcolor.others | OP |
/pwc reset |
Reset your own waypoint color | playerwaypointcolor.self | OP |
/pwc reset <player> |
Reset another player's waypoint color | playerwaypointcolor.others | OP |
The plugin creates a config.yml file on first run. Existing files are upgraded in place when new options are added.
Example config:
placeholderapi:
auto-apply-on-join: false
variable: ""
placeholders:
formats:
minimessage: "<#{HEX}>"
hex: "#{HEX}"
raw: "{HEX}"
legacy: "&x&{R1}&{R2}&{G1}&{G2}&{B1}&{B2}"
default-color: ""
default-color-force: false
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.
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:
meta.color.#FF0000 on a groupauto-apply-on-join to truevariable to %luckperms_meta_color%Alternatively, use the PlaceholderAPI String expansion (particularly %string_replaceCharacters_<configuration>_<string>%) to coerce another placeholder into a valid hex code.
PWC registers %pwc_color_<format>% where <format> is any key under placeholders.formats in config.yml. Out of the box:
| Placeholder | Returns | Example |
|---|---|---|
%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 digitsExample: 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.
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.