Pterohost docs

Свои скины на Minecraft сервере: SkinsRestorer и custom skin

Как настроить скины на пиратском Minecraft-сервере 2026: SkinsRestorer, MineSkin API, custom skin server, команды /skin set, /skinurl, интеграция с EssentialsX.

Кратко: На cracked-серверах (online-mode=false) скины Mojang не работают. Решение - плагин SkinsRestorer: положите JAR в plugins/, и игроки смогут менять скины командой /skin set Notch (любой ник Mojang) или /skinurl https://… (свой PNG через MineSkin). Поддержка Paper 1.8.8-1.21.x, BungeeCord, Velocity.

Свои скины на Minecraft сервере: SkinsRestorer и custom skin

SkinsRestorer - плагин, который возвращает работающие скины игрокам на серверах с online-mode=false. На 2026-й это де-факто стандарт для пиратских и mixed-серверов: установлен на более чем 350 000 серверов по статистике bStats. В этой статье - полная настройка SkinsRestorer, работа с MineSkin API, кастомные скины из PNG, интеграция с EssentialsX и AuthMe, и альтернативы вроде Ely.by.

Pterohost - игровой хостинг с DDoS-защитой L4+L7, NVMe SSD и 24/7 поддержкой. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг

Почему скины не работают на пиратском сервере

На лицензионных серверах (online-mode=true) клиент Minecraft и сервер проверяют игрока через Mojang Authentication. Сервер запрашивает у Mojang Session API подписанную текстуру (skin) и кейп игрока, клиент отображает их.

На cracked-серверах (online-mode=false) этот механизм отключён: сервер принимает любых игроков по нику без проверки. UUID офлайн-игрока генерируется детерминированно из ника алгоритмом UUID.nameUUIDFromBytes(("OfflinePlayer:" + name).getBytes()). Mojang не знает этот UUID и не отдаёт по нему скин - в итоге игроки получают стандартного Steve или Alex.

SkinsRestorer обходит ограничение: плагин запрашивает у Mojang Session Server скин по нику другого (лицензионного) игрока и применяет его к локальному офлайн-аккаунту. Mojang-подпись остаётся валидной, и клиент отображает скин корректно.

Установка SkinsRestorer

Скачайте последний JAR с github.com/SkinsRestorer/SkinsRestorer/releases. Файлы:

  • SkinsRestorer.jar - для Paper, Spigot, Bukkit, Folia 1.8.8-1.21.x.
  • SkinsRestorer-Bungee.jar - для BungeeCord и форков (Waterfall).
  • SkinsRestorer-Velocity.jar - для Velocity.

Положите файл в plugins/ и перезапустите сервер. В логе должно появиться:

[INFO] [SkinsRestorer] Enabling SkinsRestorer v15.X.X
[INFO] [SkinsRestorer] Detected server platform: Paper 1.21.4
[INFO] [SkinsRestorer] Loaded storage: file (storage/players/)
[INFO] [SkinsRestorer] Successfully enabled. (took 320ms)

После старта в plugins/SkinsRestorer/ появятся:

  • config.yml - основная конфигурация.
  • locales/ - языки сообщений (русский: messages_ru_RU.yml).
  • storage/players/ - локальная база скинов (если используется file-storage).

Минимальная проверка - выполните в игре:

/skin set Notch

Если выходит сообщение Skin updated, плагин работает. Если ошибка Couldn't generate skin data - проблема с интернет-доступом из контейнера или блок Mojang API.

Основные команды SkinsRestorer

КомандаДействие
/skin set <ник>Установить скин с аккаунта Mojang
/skinurl <url> [steve|slim]Установить скин из PNG-файла по URL
/skin clearСбросить скин на стандартный
/skin updateОбновить скин из Mojang (если оригинал поменялся)
/skinsОткрыть GUI выбора из default-скинов
/skin search <запрос>Поиск по локальной базе скинов
/sr applyskin <ник> <ник2>(admin) Применить скин одного игрока другому
/sr setskin <ник> <skin>(admin) Принудительно установить скин
/sr reloadПерезагрузить config.yml
/sr drop player <ник>Удалить привязку скина у игрока

Пермишены LuckPerms:

/lp group default permission set skinsrestorer.command true
/lp group default permission set skinsrestorer.command.set true
/lp group default permission set skinsrestorer.command.url true
/lp group default permission set skinsrestorer.command.clear true

Кастомные скины через URL и MineSkin

Команда /skinurl принимает прямую ссылку на PNG-файл скина 64x64 или 64x32. Пример:

/skinurl https://i.imgur.com/abc123.png
/skinurl https://i.imgur.com/abc123.png slim

Второй параметр - модель: steve (классическая, 4-пиксельные руки) или slim/alex (тонкие, 3-пиксельные руки).

Как работает под капотом: SkinsRestorer берёт URL, отправляет PNG на сервис MineSkin (api.mineskin.org), MineSkin загружает PNG на тестовый Mojang-аккаунт, получает подписанную текстуру и возвращает её в SkinsRestorer. Подпись валидна, и клиент отображает скин.

Ограничения MineSkin (бесплатный тариф):

  • 30 секунд между генерациями на один IP.
  • 50 запросов в сутки без API-ключа.
  • PNG только 64x64 или 64x32, до 1 MB.

Для коммерческих серверов получите API-ключ на mineskin.org и пропишите его в config.yml:

mineskin-api-key: 'ваш_ключ_здесь'

С ключом - до 1000 генераций в день, лимиты на запросы существенно выше.

Default-скины и случайный скин для новых игроков

В config.yml можно задать набор скинов, которые автоматически выдаются новым игрокам:

default-skins:
  enabled: true
  apply-for-premium: false
  skins:
    - "Notch"
    - "Herobrine"
    - "Dinnerbone"
    - "https://i.imgur.com/abc123.png"

При первом входе новичка плагин выберет случайный скин из списка. Опция apply-for-premium: false означает - не трогать скины лицензионных игроков.

Опция disabled-skins: запрещает использовать определённые скины (если их выбрали - принудительно ставится случайный из default).

UUID и привязка скинов

SkinsRestorer хранит привязку UUID игрока -> ID скина. На cracked-сервере UUID генерируется из ника, поэтому если игрок сменит ник - привязка пропадёт. На сервере с AuthMe и привязкой ника к аккаунту проблема решается на стороне AuthMe.

Посмотреть текущий скин игрока:

/sr playerinfo <ник>

В выводе - UUID, текущий skin-id, источник (Mojang/MineSkin/Custom).

Интеграция с EssentialsX

EssentialsX имеет встроенный essentials.changedisplayname и команды /nick. SkinsRestorer работает независимо: смена ника через /nick не меняет скин (если не привязан хук).

Для синхронизации в config.yml SkinsRestorer:

essentials-hook:
  enabled: true
  change-skin-on-nick-change: false

change-skin-on-nick-change: true - при смене ника через /nick плагин попытается загрузить скин с этого ника.

Хранение скинов: file / SQLite / MySQL

По умолчанию SkinsRestorer хранит данные в storage/players/<UUID>.yml и storage/skins/<имя>.yml. Для серверов с тысячами игроков переключитесь на SQLite или MySQL:

storage:
  type: mysql

mysql:
  host: 127.0.0.1
  port: 3306
  database: skinsrestorer
  username: sruser
  password: 'СильныйПароль2026'
  table-prefix: 'sr_'
  ssl: false

Создайте базу:

CREATE DATABASE skinsrestorer CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'sruser'@'localhost' IDENTIFIED BY 'СильныйПароль2026';
GRANT ALL PRIVILEGES ON skinsrestorer.* TO 'sruser'@'localhost';
FLUSH PRIVILEGES;

Перенос данных - команда /sr storage migrate.

Custom skin server: Ely.by и CustomSkinLoader

Альтернативы SkinsRestorer:

  • Ely.by - российский сервис скинов и кейпов с собственным authlib-injector. Игроки регистрируются на ely.by, ставят клиентский java-агент, скины подгружаются с серверов Ely. Подходит для бесплатных лаунчеров. Минус - нужны изменения на клиенте.
  • CustomSkinLoader - клиентский Forge/Fabric-мод. Сервер ничего не делает, мод подгружает скины с произвольного URL (skinsystem.ely.by, namemc.com, свой эндпоинт). Минус - игрокам нужно ставить мод.
  • AuthlibInjector - подмена Mojang authlib на стороне клиента или сервера. Используется на крупных российских пиратках. Сложная настройка.

Для 95% серверов SkinsRestorer + MineSkin достаточно. Custom skin server имеет смысл только если у вас уже есть свой лаунчер.

Производительность и нагрузка

SkinsRestorer кэширует скины в памяти и на диске. Запрос к Mojang/MineSkin происходит только при /skin set или раз в default-skin-update-interval (по умолчанию 7 дней). Нагрузка на сервер минимальная - доли миллисекунд.

Сетевые требования: исходящий доступ к sessionserver.mojang.com, api.mojang.com, api.mineskin.org. На хостингах с фаерволом - откройте outbound 443/tcp на эти домены. На Pterohost доступ открыт по умолчанию.

Типичные проблемы и решения

Couldn't generate skin data при /skin set. Mojang временно недоступен или IP сервера попал в rate-limit. Подождите 5-10 минут, повторите. Проверьте логи: tail -f logs/latest.log | grep SkinsRestorer.

Skin not found при /skin set Notch. Mojang Session API временно глючит или ник не существует. Проверьте через https://api.mojang.com/users/profiles/minecraft/Notch в браузере - если возвращает JSON, проблема в плагине.

Скин применился, но другие игроки видят Steve. Игроку нужно перезайти на сервер - текстура передаётся клиенту только при подключении.

После рестарта скины пропали. Используется file-storage и записи не сохранились (например, kill -9). Переходите на SQLite или MySQL.

/skinurl не работает с imgur.com. Imgur иногда возвращает HTML вместо PNG. Используйте прямые ссылки: i.imgur.com/abc123.png, не imgur.com/abc123. Альтернатива - залить PNG на mineskin.org и взять прямую ссылку оттуда.

Готовая конфигурация для русского сервера

plugins/SkinsRestorer/config.yml для пиратского сервера:

storage:
  type: file

default-skins:
  enabled: true
  apply-for-premium: false
  skins:
    - "MHF_Steve"
    - "MHF_Alex"
    - "Notch"

skin-update-interval: 7

commands:
  per-skin-permissions: false
  disabled-skins-enabled: true
  disabled-skins:
    - "Herobrine"
    - "_Hitler_"

messages-language: ru_RU

Связанные материалы

После настройки скинов добавьте команды EssentialsX для управления игроками, WorldGuard и приваты для регионов и топовые плагины для пиратки.

Заключение

SkinsRestorer на 2026 - это plug-and-play решение для скинов на пиратском сервере. Установка занимает 5 минут, базовая команда /skin set <ник> работает из коробки, кастомные скины через /skinurl и MineSkin покрывают потребности 99% игроков. Custom skin server и Ely.by нужны только если есть свой лаунчер и инфраструктура.

Pterohost - игровой хостинг с DDoS-защитой L4+L7, NVMe SSD и 24/7 поддержкой. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг