🧍 Skin Restorer

Skin Restorer fetches and applies real Minecraft skins for players on offline-mode servers. Skins are injected on join (no relog needed) and cached locally to reduce Mojang API calls.

To enable: set enableSkinRestorer: true in general.json. Automatically disabled in online-mode.

Jump to

⚙️ How it works

  1. Player joins — Voidium checks if the player has a cached skin
  2. Cache hit — If the skin is cached and not expired, it’s applied immediately
  3. Cache miss — Voidium queries the Mojang API:
    • First: resolve player name → official UUID via api.mojang.com
    • Then: fetch skin texture data (value + signature) via sessionserver.mojang.com
  4. Injection — The skin is applied to the player’s game profile on login (early join injection — no relog required)
  5. Cache save — The skin data is stored in skin-cache.json with a timestamp

Smart features

📝 Configuration

The Skin Restorer is configured via general.json:

Field Type Default Description
enableSkinRestorer boolean true Master switch
skinCacheHours int 24 How long to keep cached skins before re-fetching (hours, min 1)

Cache file

Skins are cached in config/voidium/storage/skin-cache.json. Each entry contains:

Tip: Set skinCacheHours higher (e.g. 48) to reduce Mojang API calls, or lower (e.g. 6) if players frequently change skins.

⌨️ Commands

Command Permission Description
/voidium skin <player> OP Force-refresh an online player’s skin

The command re-fetches the skin from Mojang API immediately, updating both the cache and the player’s in-game appearance.