Origins SMP сервер: гайд по настройке Minecraft с системой рас и способностей

Origins SMP сервер: гайд по настройке Minecraft с системой рас и способностей

Origins превращает обычный SMP в нечто гораздо более интересное: каждый игрок выбирает себе расу со своими плюсами и минусами. Avian летает, но получает урон от падения и быстро мёрзнет. Merling дышит в воде, но задыхается на суше. В этом гайде разберём, как поднять полноценный Origins-сервер на Fabric, какие моды нужны на клиенте и сервере, как создать кастомный origin через datapack, и как не споткнуться о типичные грабли.

Что такое Origins и почему это мод, а не плагин

Origins - это мод от apace100, доступный на Modrinth и CurseForge. Он добавляет систему "происхождений" (origins): при первом входе на сервер игрок проходит выбор расы, и эта раса даёт ему уникальные пассивные и активные способности, баффы и дебаффы.

Ключевой момент: это мод, не плагин. На голом Paper или Spigot Origins не запустится никогда. Причина простая - мод вмешивается в базовые механики игрока (полёт, дыхание, урон от падения, физика) на уровне, который Bukkit-API не предоставляет. Поэтому сервер придётся строить на Fabric или, как вариант, на Forge через сторонний порт Origins-Forge.

В большинстве случаев SMP-комьюнити сидит на Fabric: оригинальный мод, быстрее обновляется до новых версий Minecraft, экосистема сопутствующих модов лучше. Forge-порт работает, но отстаёт по версиям и иногда конфликтует с другими модами.

Версии Minecraft и совместимость

Origins активно поддерживает 1.20.1 (легаси-стабильная) и 1.21.x (актуальная). На 1.19.4 ещё крутятся отдельные SMP, но ставить новый сервер на эту версию смысла нет.

Что нужно сразу запомнить:

  • Каждый игрок обязан иметь те же моды на клиенте, что и сервер. Origins - не серверный мод одностороннего действия.
  • Версия Origins на клиенте и сервере должна совпадать ровно. Расхождение в minor-версии часто ломает выбор расы.
  • Зависимости (Fabric API, Apoli, Calio) тоже едут на клиент.

Если игроки путаются с установкой, удобно собрать модпак в Modrinth App или Prism Launcher и раздать ссылку.

Установка Fabric-сервера

Сначала готовим серверную часть. Создаём папку, скачиваем Fabric Server Launcher с fabricmc.net/use/server и кладём в папку. Стандартный запуск выглядит так:

#!/bin/bash
java -Xms6G -Xmx8G \
  -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
  -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC \
  -XX:+AlwaysPreTouch -XX:G1HeapRegionSize=8M \
  -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 \
  -jar fabric-server-launch.jar nogui

После первого запуска получим eula.txt и server.properties. EULA принимаем, в server.properties обычно меняем view-distance на 8 (Origins добавляет нагрузку, 10+ уже ощутимо), simulation-distance оставляем 8.

Какие моды качать в mods/

Минимальный набор для рабочего Origins-сервера:

  • Fabric API - базовая зависимость, без неё ничего не запустится
  • Origins - сам мод
  • Apoli - "движок способностей", который Origins дёргает под капотом
  • Calio - библиотека для загрузки кастомных datapack-данных
  • Cardinal Components API - хранение данных об игроке (выбранный origin)
  • Cloth Config API - UI для настроек

Все шесть кладём в mods/ на сервере и в .minecraft/mods/ на клиенте. Версии должны быть от одной и той же версии Minecraft - если сервер на 1.21.1, не качайте моды для 1.21.4.

Если хочется добавить готовые расы поверх стандартных, есть популярные пакеты вроде Origins: Classes (классы поверх рас) и Origins: Extra. Их можно подмешивать, главное смотреть на совместимость с актуальной версией Origins.

12 дефолтных origins и что они умеют

Из коробки Origins даёт двенадцать рас:

  • Avian - двойной прыжок, медленное падение, но дебафф от попадания под дождь и от тёплой брони
  • Arachnid - лазает по стенам, плетёт временные нити, но боится укусов пауков
  • Blazeborn - иммун к огню и лаве, но получает урон от воды
  • Elytrian - прирождённый полёт на элитрах, но хрупкое здоровье
  • Enderian - телепорт через энд-перлы без урона, но боится воды
  • Feline - 18 сердец, бесшумная ходьба, но не ест растительную пищу
  • Human - "ванильный" игрок без бонусов, для бэкапа
  • Inchling - крошечный, помещается в дыры 1x1, но получает больше урона
  • Merling - дышит под водой, плавает быстрее, но сохнет на солнце
  • Phantom - проходит сквозь блоки в призрачной форме, но хрупкий
  • Shulk - природная броня, но медленный
  • Starborne - ночное зрение и регенерация, но слабеет днём

На SMP админы часто отключают самые имбовые (Elytrian, Phantom) или нерфят их через datapack-патч, чтобы баланс не разваливался к третьему дню.

Кастомный origin через datapack

Тут начинается самое интересное. Origins полностью читает свои конфиги из datapack-формата, поэтому добавить расу - это сделать пару JSON-файлов и положить их в datapack.

Структура:

world/datapacks/custom_origins/
├── pack.mcmeta
└── data/
    └── custom/
        ├── origins/
        │   └── vampire.json
        └── powers/
            ├── vampire_weakness_day.json
            └── vampire_strength_night.json

Содержимое pack.mcmeta:

{
  "pack": {
    "pack_format": 48,
    "description": "Custom Origins for SMP"
  }
}

Сам origin "Vampire" (origins/vampire.json):

{
  "powers": [
    "minecraft:fire_immunity",
    "custom:vampire_weakness_day",
    "custom:vampire_strength_night"
  ],
  "icon": "minecraft:redstone",
  "order": 5,
  "impact": 2,
  "name": "Vampire",
  "description": "A creature of the night. Fragile under sun, lethal in darkness."
}

Power "слабость днём" (powers/vampire_weakness_day.json):

{
  "type": "apoli:status_effect",
  "effect": {
    "effect": "minecraft:weakness",
    "duration": 200,
    "amplifier": 0,
    "show_particles": false
  },
  "condition": {
    "type": "apoli:in_overworld",
    "inverted": false
  }
}

Аналогично делается power для ночной силы через apoli:time_of_day condition. После раскладки файлов перезапускаем сервер или дёргаем /reload, и в меню выбора у новых игроков появится Vampire.

Производительность и железо

Origins сам по себе не фатально тяжёлый, но он подмешивает обработку power-тиков для каждого игрока, и при большом количестве custom power-ов это накапливается. По нашему опыту:

  • до 10 онлайн - достаточно 4 GB RAM
  • 10-30 онлайн - 6-8 GB, обязательно G1GC с настроенными флагами
  • 30+ онлайн - 8-12 GB, плюс желательно мониторить TPS через Spark

Главный тормоз - это не Origins, а другие моды поверх него (Create, Distant Horizons, Lithium-несовместимые штуки). Сам по себе Origins на одном игроке кушает доли процента.

Совместимость с другими модами

Origins нормально живёт рядом с большинством популярных Fabric-модов. Проверенные комбо:

  • Lifesteal - можно собрать гибрид, где у каждого origin свой стартовый запас сердец
  • Distant Horizons - работает, никаких конфликтов на сервере
  • Create - работает, но Avian с jetpack-ами от Create превращается в воздушный цирк
  • Lithium / Krypton - оптимизаторы Fabric, отлично совмещаются

Из проблемного: ванильные античиты типа стандартного NoCheatPlus (если кто-то умудрился найти Fabric-порт) сломают всё. Avian летает - античит банит. Inchling маленький - античит банит. Решение - либо Origins-aware античит вроде Vulcan Fabric с правильно настроенными исключениями, либо отказ от античита и упор на whitelist + Discord-модерацию.

SMP-формат: whitelist, заявки и сезоны

Origins-серверы почти всегда работают по схеме whitelist + Discord application. Без whitelist любой "свободный" Origins-SMP за неделю превращается в анархию: кто-то идёт в Avian, чтобы троллить с воздуха, кто-то в Phantom для рейдов сквозь стены.

Типичная Discord-форма для заявки:

  • Возраст и часовой пояс
  • Опыт игры на SMP
  • Какой origin планируешь выбрать и почему
  • Готов ли играть с голосом
  • Согласен ли с правилами (no grief, no slur)

Сезонный формат - тоже хорошая идея. Раз в 2-3 месяца делается полный wipe мира, иногда меняется набор разрешённых origins, и сервер перезапускается с чистого листа. Так комьюнити не выгорает, и новые игроки не приходят в мир, где топ-фракция уже застроила весь край.

Бэкапы и сезонный сброс

Origins хранит выбор расы игрока в его NBT-данных (через Cardinal Components). Это значит, что бэкап мира должен включать world/playerdata/, иначе игроки потеряют выбранные расы и при следующем входе их сбросит на меню выбора.

Для бэкапа подойдёт Restic или просто tar по крону:

0 */6 * * * tar -czf /backups/world-$(date +\%Y\%m\%d-\%H).tar.gz /opt/server/world

Перед сезонным сбросом обычно сохраняют world/playerdata/ отдельно: при желании можно потом раздать игрокам "карьерное" сохранение, чтобы они помнили, кем играли в прошлом сезоне.

Защита от DDoS и ботов

Origins-серверы часто становятся целью ботов и DDoS, особенно когда инфлюенсер-владелец набирает аудиторию. Стандартные шаги:

  • Whitelist через EasyWhitelist или встроенный механизм - режет 90% мусора
  • Прокси-фильтр перед сервером, который чистит TCP-флуды и фильтрует подозрительные handshake-пакеты
  • Ограничение max-players в server.properties чуть выше реального онлайна, чтобы исчерпать слоты ботов было сложнее
  • Мониторинг через MineGuard или аналог, чтобы вовремя видеть атаку

Origins не добавляет каких-то специфичных уязвимостей, но любой Fabric-сервер с ~20 модами тяжелее ванильного, и под нагрузкой падает быстрее.

FAQ

Origins работает на Paper или Spigot?

Нет. Origins - это мод, а не плагин. Bukkit/Spigot/Paper API не позволяет переопределять физику игрока на нужном уровне. Только Fabric или Forge-порт.

Сколько origins можно добавить через datapack?

Технически десятки. Реальный лимит - производительность сервера и UX выбора: если в меню 40 рас, новые игроки тонут. На большинстве SMP суммарно держат 12-20 origins.

Бесплатный ли Origins?

Да, мод опубликован под MIT-лицензией на Modrinth и CurseForge. Можно использовать на любом сервере, включая монетизированные, без отчислений автору.

Можно ли играть в Origins без сервера?

Да. Origins работает в одиночной игре точно так же. Просто бросьте мод и его зависимости в .minecraft/mods/ и запустите Fabric-профиль.

Как поменять origin после старта?

По умолчанию никак, выбор делается один раз. Команда /origin в чистом моде ограничена операторами для отладки. Чтобы дать игрокам возможность переключаться, используют доп-моды вроде OriginCMD или включают в config/origins.json параметр, разрешающий повторный выбор.

Можно ли совмещать Origins и Lifesteal?

Да, оба мода спокойно работают вместе. На SMP делают красивый гибрид: например, Avian стартует с 16 сердец, Inchling с 12, Phantom с 14. PvP становится более тактическим.

Почему игроки получают чёрный экран при выборе origin?

Чаще всего - расхождение версий мода между клиентом и сервером, или старая версия Fabric API. Проверьте, что у всех на клиенте те же jar-файлы, что и в mods/ на сервере.

Что дальше

Если только запускаете сервер - начните с минимального набора (Fabric API + Origins + Apoli + Calio + Cardinal + Cloth Config), 12 дефолтных рас и whitelist. Запустите тестовый прогон на 5-7 игроков, посмотрите, какие расы доминируют, и потом нерфите через datapack.

Когда комьюнити сложится, добавляйте свои origins через JSON и продумайте сезонный формат. И не забудьте про защиту: Origins-сервер с 50 онлайн - лакомая цель для ботов, фильтр перед игровым портом окупается уже после первой атаки.


Proteja Seu Servidor de Ataques DDoS

Proteção gratuita com configuração em 5 minutos. 1 TB de tráfego incluso.

Experimentar Grátis


Artigos Relacionados