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átisArtigos Relacionados
Velocity SMP-сеть: лобби, survival, creative и minigames на одном прокси
Как поднять мульти-серверную SMP-сеть на Velocity: настройка velocity.toml, modern forwarding, синхронизация прав и чата между лобби, survival и creative.
Как масштабировать Minecraft сервер: от 10 до 1000 игроков
Подробное руководство по масштабированию Minecraft сервера. Разбираем требования к железу, трафику и защите на каждом этапе роста: 10, 50, 100, 500 и 1000 игроков онлайн.
LiteBans vs AdvancedBan: какой плагин модерации выбрать (2026)
LiteBans платный с готовым PHP web-UI, AdvancedBan бесплатный и open-source. Оба умеют /ban, /tempban, /mute, /warn, /kick и per-network бан через MySQL. Разбираем команды, API, миграцию, производительность и когда какой выбрать.