Разница между Vanilla, Paper, Purpur, Spigot и Fabric

1. Подготовка выделенного сервера на proxify.cloud

1.1. Заказ и доступ к серверу

  1. В панели proxify.cloud выберите «Выделенные серверы» → «Заказать».
  2. Выберите конфигурацию: минимум 4 vCPU, 8 GB RAM, 100 GB NVMe (рекомендуется 8 vCPU, 16 GB RAM для Paper/Purpur с плагинами).
  3. ОС: Ubuntu 22.04 LTS или 24.04 LTS.
  4. После установки в панели proxify.cloud откройте вкладку «Консоль» или подключитесь по SSH:
    ssh root@<IP_ВАШЕГО_СЕРВЕРА>
    

1.2. Базовая настройка системы

apt update && apt upgrade -y
apt install -y openjdk-21-jre-headless screen htop curl wget git ufw fail2ban

1.3. Настройка firewall (UFW)

ufw allow 22/tcp      # SSH
ufw allow 25565/tcp   # Minecraft (стандартный порт)
ufw allow 25575/tcp   # RCON (если нужен)
ufw enable

1.4. Создание пользователя для сервера (безопасность)

adduser --disabled-password --gecos "" mcuser
usermod -aG sudo mcuser
su - mcuser
mkdir -p ~/servers/{vanilla,paper,purpur,spigot,fabric}

2. Vanilla — официальный сервер Mojang

2.1. Скачивание и запуск

cd ~/servers/vanilla
VERSION="1.21.1"
wget "https://piston-data.mojang.com/v1/objects/$(curl -s https://launchermeta.mojang.com/mc/game/version_manifest.json | jq -r ".versions[] | select(.id==\"$VERSION\") | .url" | xargs curl -s | jq -r ".downloads.server.url")" -O server.jar

2.2. Принятие EULA и первый запуск

echo "eula=true" > eula.txt
screen -S vanilla java -Xms2G -Xmx4G -jar server.jar nogui

Выйти из screen: Ctrl+A, затем D. Вернуться: screen -r vanilla.

2.3. Особенности

  • Плюсы: чистый ванильный опыт, поддержка датапаков, совместимость с последними снапшотами.
  • Минусы: нет оптимизаций, тикинг падает при 20+ игроках, нет плагинов/модов.
  • Конфиг: server.properties — стандартные настройки (view-distance, simulation-distance, max-players).

3. Spigot — классика Bukkit API

3.1. Сборка через BuildTools (требует Git и Java 21)

cd ~/servers/spigot
wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
git config --global --unset core.autocrlf
java -jar BuildTools.jar --rev 1.21.1

Результат: spigot-1.21.1.jar.

3.2. Запуск

echo "eula=true" > eula.txt
screen -S spigot java -Xms2G -Xmx4G -jar spigot-1.21.1.jar nogui

3.3. Особенности

  • API: Bukkit/Spigot API — тысячи плагинов на SpigotMC, BukkitDev.
  • Производительность: лучше Vanilla за счёт патчей (async chunk loading, entity tracking), но уступает Paper.
  • Конфиги: spigot.yml, bukkit.yml, commands.yml, paper-global.yml (если Paper-патчи применены).
  • Важно: Spigot не получает обновления безопасности так быстро, как Paper.

4. Paper — высокопроизводительный форк Spigot

4.1. Скачивание последней стабильной версии

cd ~/servers/paper
LATEST=$(curl -s https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds | jq -r '.builds[-1].build')
wget "https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/$LATEST/downloads/paper-1.21.1-$LATEST.jar" -O paper.jar

4.2. Запуск с оптимизированными флагами JVM (Aikar's flags)

echo "eula=true" > eula.txt
cat > start.sh << 'EOF'
#!/bin/bash
java -Xms4G -Xmx4G \
-XX:+UseG1GC \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC \
-XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 \
-XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 \
-XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 \
-Dusing.aikars.flags=https://mcflags.emc.gs \
-Daikars.new.flags=true \
-jar paper.jar nogui
EOF
chmod +x start.sh
screen -S paper ./start.sh

4.3. Ключевые отличия от Spigot

Параметр Spigot Paper
Async chunk loading Частично Полностью
Entity tracking Базовое Оптимизированное (per-player)
Redstone оптимизации Нет Да (hopper, observer, comparator)
Плагины anti-cheat Сложнее API для NoCheatPlus, AAC
Исправления дупов Редко Оперативно
Конфиг spigot.yml paper-global.yml, paper-world.yml

4.4. Настройка paper-world.yml (пример)

# ~/servers/paper/paper-world.yml
chunks:
  auto-save-interval: 6000
  delay-chunk-unloads-by: 10s
entities:
  activation-range:
    animals: 16
    monsters: 24
    raiders: 48
  tick-rates:
    behavior:
      villager:
        validatenearbypoi: 60
        acquirepoi: 120

5. Purpur — форк Paper с дополнительными оптимизациями и фичами

5.1. Скачивание

cd ~/servers/purpur
LATEST=$(curl -s https://api.purpurmc.org/v2/purpur/1.21.1 | jq -r '.builds.latest')
wget "https://api.purpurmc.org/v2/purpur/1.21.1/$LATEST/download" -O purpur.jar

5.2. Запуск (те же флаги JVM, что и Paper)

echo "eula=true" > eula.txt
cp ~/servers/paper/start.sh .
sed -i 's/paper.jar/purpur.jar/' start.sh
screen -S purpur ./start.sh

5.3. Уникальные фичи Purpur

  • Virtual entities: уменьшает нагрузку от сущностей за пределами чанков игрока.
  • Per-player mob spawning: спавн мобов считается индивидуально.
  • Конфиг purpur.yml: тонкая настройка игровых механик (например, disable-chest-cat-detection, enderman-short-teleport).
  • Поддержка Paper плагинов: 100% совместимость.

5.4. Когда выбирать Purpur

  • Серверы 50+ игроков с тяжелыми фермами.
  • Нужен контроль над vanilla-механиками без модов.
  • Готовы мириться с редкими несовместимостями плагинов (минорные).

6. Fabric — модлоадер (не для плагинов Bukkit/Spigot)

6.1. Установка Fabric Server

cd ~/servers/fabric
wget https://maven.fabricmc.net/net/fabricmc/fabric-installer/1.0.1/fabric-installer-1.0.1.jar
java -jar fabric-installer-1.0.1.jar server -dir . -mcversion 1.21.1 -loader 0.16.9 -downloadMinecraft

Результат: fabric-server-launch.jar, server.jar (vanilla).

6.2. Запуск

echo "eula=true" > eula.txt
screen -S fabric java -Xms2G -Xmx4G -jar fabric-server-launch.jar nogui

6.3. Добавление модов (пример: Lithium, Sodium, FerriteCore)

mkdir mods
cd mods
wget https://github.com/CaffeineMC/lithium-fabric/releases/download/mc1.21.1-0.11.0/lithium-fabric-mc1.21.1-0.11.0.jar
wget https://github.com/CaffeineMC/sodium-fabric/releases/download/mc1.21.1-0.5.12/sodium-fabric-mc1.21.1-0.5.12.jar
wget https://github.com/maluoi/ferritecore/releases/download/6.0.0/ferritecore-6.0.0.jar

6.4. Особенности Fabric

  • Не запускает Spigot/Paper плагины. Нужен Cardboard (прослойка) или Folia (Paper для Fabric) — но это экспериментально.
  • Моды только клиент+сервер (Sodium, Lithium, Krypton, FerriteCore дают прирост 2-3x TPS).
  • API: Fabric API — основа для модов.
  • Обновления: выходят быстрее Paper (часто в день релиза снапшота/релиза).

7. Сравнительная таблица: что выбрать

Задача Лучший выбор Почему
Чистый ванильный, снэпшоты, датапаки Vanilla Никаких изменений, официальная поддержка
Плагины (Essentials, WorldEdit, LuckPerms), 20-50 игроков Paper Баланс стабильности, производительности, экосистемы
50+ игроков, тяжелые