SkinsRestorer
Restores players' skins — even on an offline server, where they would otherwise run around without a head.
← Plugins Appearance and chat license GPL-3.0-only guide for SkinsRestorer 15.x (Paper/Spigot, Velocity)
Download from the author Source code 1 675 799 download from the author
What does it do?
SkinsRestorer solves a problem that occurs on every offline (cracked) server: a player connects and has a default player model without a skin. The server doesn't ask Mojang who they are, so it has nowhere to get a skin from.
SkinsRestorer fetches the skin based on the player's name (from Mojang or another service) and sends it to the player. The player can also change their skin themselves — apply their own from a file or from an image link.
It also supports group skins: /skin set @name applies the same appearance to an entire group, which is useful for ranks (for example, all VIPs have the same cape).
On online-mode (premium) servers the plugin isn't needed — Mojang provides skins itself. It is mainly used there for group skins and for players who want a different appearance than they have on their account.
A typical problem: skins load, but after a while they disappear, or only some players see them. It is often caused by refresh settings or the plugin version — /sr reload, /sr drop , and the player logging in again help.
The plugin pairs well with LuckPerms (permission for a custom skin only for certain ranks) and with PlaceholderAPI (displaying the skin in a menu).
Installation
- Download SkinsRestorer from modrinth.com/plugin/skinsrestorer or from dev.bukkit.org in the version for your server version. There is a separate build for proxy (BungeeCord, Velocity).
- Upload the .jar to the plugins folder and restart the server.
- A message about SkinsRestorer and its version will appear in the console.
- Try the player command: /skin set — the skin must change within a moment.
- Try the group skin: /skin set @name (applies the appearance to the whole group).
- Decide what skin a newcomer has and set it for them (group-wide or with the default skin in the config).
- Set permissions: a regular player needs skinsrestorer.skin.set, give uploading a custom file (skinsrestorer.skin.upload) only to ranks that can handle it.
- Verify on a second account that other players also see the skin — the skin is sent to everyone, so it won't verify itself.
- If the skin disappears after login, check the refresh setting (bone/refresh) in the config and use /sr reload.
- Back up plugins/SkinsRestorer — skins and proxy settings are stored in it when you use it.
Permissions
Permissions are granted to players or groups — most often with a command /lp user <player> permission set <node> true (LuckPerms). A node that is not in the list is unknown to the plugin.
| Permissions | What does it allow? |
|---|---|
| skinsrestorer.skin.set | set your skin (/skin set) |
| skinsrestorer.skin.upload | upload your own skin file |
| skinsrestorer.skin.clear | clear your skin (/skin clear) |
| skinsrestorer.skin.random | random skin (/skin random) |
| skinsrestorer.skin.set.other | set another player's skin |
| skinsrestorer.skin.set.group | use a group skin (@group) |
| skinsrestorer.admin | plugin management (/sr …) |
| skinsrestorer.* | absolutely everything (admin only) |
Commands
Type it in chat with slashes as well. Where is it? <player> or <uzel>, fill in your own value without brackets.
| Command | What does it do? |
|---|---|
| /skin | opens the skins menu (depending on settings) |
| /skin set <name> | applies a skin by name |
| /skin set <odkaz na png> | applies a skin from an image |
| /skin set @<skupina> | group skin (based on permissions) |
| /skin clear | restores the original appearance |
| /skin random | random skin |
| /sr reload | reloads the configuration |
| /sr drop <player> | discards the player's saved skin (when it doesn't update) |
| /sr props <player> | outputs which skin the plugin set for the player (for debugging) |
Configuration and common mistakes
On a premium (online) server, the plugin isn't necessary — skins are provided by Mojang. It is mainly used there for group skins and for players who want a different appearance.
The permission skinsrestorer.skin.upload allows a player to upload any image. On a public server, it's a quick path to trouble — give it only to ranks that can handle it.
If the skin doesn't change, /sr drop and the player logging in again will help. The skin is cached in memory and sometimes it takes a while to fill in.
Skins are loaded from Mojang (or from uploaded files). When the service is unavailable, the plugin serves from the stored version and the player has an old skin — that's a service outage, not a server error.
On a proxy (BungeeCord, Velocity), the plugin is installed on the proxy, not on the game servers — otherwise the skins clash with each other.
If only some players don't see the skin, check that everyone has the same version of the plugin, and try /sr reload.
Who uses it?
We don't yet know which servers from our list use it. Modern servers do not send their plugin list in the status query, so we find that out from the owners.
Do you use it on your server? Write to us and we’ll add it here — people who are looking for plugin come to this page.
Similar plugins
Where does the guide come from?
The guide is our own and is based on the author's documentation. We describe permissions and commands as facts, we don't make anything up — if plugin changes after an update, the guide may be out of date. (version SkinsRestorer 15.x (Paper/Spigot, Velocity)) Did you find an error? Write to us and we'll fix it.
License: GPL-3.0-only. The file isn't hosted with us; it's downloaded from the author at — that way the current version is always available.