Bedrock & Cross-Play
CustomPlayerNametags works for both Java Edition players, and Bedrock players connecting through Geyser.
How Bedrock players are detected
If a plugin named floodgate is installed and enabled, CustomPlayerNametags asks its API whether each connected player is a Floodgate (Bedrock) player. If Floodgate isn't installed, every player is simply treated as Java.
Why Bedrock needs a different offset
The nametag is a display entity mounted above the player as a passenger, positioned at a fixed height offset. Geyser's client-side handling of passenger/display-entity positioning doesn't line up the same with vanilla Java rendering, so the plugin applies a small additional correction specifically for viewers detected as Bedrock, so the tag sits at the same visual height it would on Java.
Dismount windows
The brief window where a tag is dismounted and remounted around a teleport (see nametag-dismount-mode) also gets its own small Bedrock-only height correction, so the remount doesn't produce a visible flicker for Bedrock viewers.
CustomPlayerNametags