# How to Fix Player Skins Not Showing on Your Minecraft Server (/docs/minecraft/restore-player-skins)



If players appear as default Steve or Alex skins on your server, it's usually a configuration issue with online mode or proxy forwarding.

Common Causes and Fixes [#common-causes-and-fixes]

<div className="fd-steps">
  <div className="fd-step">
    Check online-mode setting [#1-check-online-mode-setting]

    The most common cause is `online-mode=false` in `server.properties`. When disabled, the server can't fetch skins from Mojang.

    **Fix for standalone servers:**

    Edit `server.properties` via `Files` on the [XGamingServer panel](https://panel.xgamingserver.com):

    ```properties
    online-mode=true
    ```

    Restart the server.

    > 📝 **Note:** If you're running a BungeeCord/Velocity network, backends should have `online-mode=false` — skins are handled differently (see below).
  </div>

  <div className="fd-step">
    Fix skins on BungeeCord networks [#2-fix-skins-on-bungeecord-networks]

    On proxy networks, backends have `online-mode=false` which breaks skin loading. Fix this by ensuring [IP forwarding](/docs/minecraft/bungeecord-ip-forwarding) is properly configured:

    **BungeeCord:**

    * Proxy `config.yml`: `ip_forward: true`
    * Backends `spigot.yml`: `bungeecord: true`

    **Velocity:**

    * Proxy `velocity.toml`: `player-info-forwarding-mode = "modern"`
    * Backends `config/paper-global.yml`: velocity forwarding enabled with matching secret
  </div>

  <div className="fd-step">
    Fix skins for cracked/offline players [#3-fix-skins-for-crackedoffline-players]

    If you allow offline-mode players (cracked accounts), they won't have skins by default. Use a skin plugin:

    * **SkinsRestorer** — Most popular skin plugin
    * Lets offline players set custom skins with `/skin <username>`

    Install SkinsRestorer on the proxy (for networks) or backend (for standalone):

    ```
    /skin set <player> <skin_name>
    /skin url <player> <url>
    /skin clear <player>
    ```
  </div>

  <div className="fd-step">
    Check for Geyser skin issues [#4-check-for-geyser-skin-issues]

    If using [GeyserMC](/docs/minecraft/setup-geyser-floodgate) for Bedrock crossplay, Bedrock player skins may not display correctly for Java players. Install **Floodgate** alongside Geyser to improve skin compatibility.
  </div>

  <div className="fd-step">
    Server resource pack overriding skins [#5-server-resource-pack-overriding-skins]

    If your server uses a [resource pack](/docs/minecraft/resource-packs), check if it includes custom player models or textures that override skins.
  </div>
</div>

Troubleshooting Checklist [#troubleshooting-checklist]

* [ ] `online-mode=true` on standalone servers
* [ ] IP forwarding configured correctly on proxy networks
* [ ] SkinsRestorer installed for offline-mode players
* [ ] Server restarted after changes
* [ ] Players have reconnected after fix

> 💡 **Tip:** Ask affected players to try changing their skin on [minecraft.net](https://www.minecraft.net) and reconnecting. Sometimes Mojang's skin servers have temporary issues.

> ⚠️ **Warning:** Setting `online-mode=true` on a backend server in a BungeeCord network will prevent players from connecting. Only the proxy should validate accounts.

See also: [IP Forwarding](/docs/minecraft/bungeecord-ip-forwarding) | [Geyser/Floodgate](/docs/minecraft/setup-geyser-floodgate)

If you need help, join our [Discord](https://discord.xgamingserver.com/).
