How to Make Bedrock Player Skins Show Up on Your Java Server
Why Skins Need Floodgate
Java servers normally can't read Bedrock skins because the two editions send skin data differently. Floodgate translates Bedrock skin data into a form Java clients can render, which is why you see Bedrock players as their real skin instead of a default Steve or Alex. This only works when Floodgate is installed on the server the player connects to — clients don't need anything extra.
Check the Skin Settings
Open the Floodgate config and confirm skin handling is enabled (it is on by default in most setups). If you run a proxy, Floodgate must be present on the proxy as well, because skin data is forwarded during the login handshake. Restart after any config change. Note that some Bedrock skin types — capes, certain marketplace cosmetics, or animated skins — may not translate perfectly, and very large skin files can occasionally be dropped.
Troubleshooting Missing Skins
If a Bedrock player still shows as a default skin, first confirm they aren't using a skin that requires a paid marketplace pack, since those aren't transferable. Then check that no other plugin is overwriting player profiles (some nickname or disguise plugins strip skin data). Finally, have the player rejoin — skin data is sent at login, so a reconnect often fixes a one-off failure.