headless без lwjgl любой vps

Выделенный сервер

Как в Minecraft: одна папка, один jar, всё остальное создаётся само при первом запуске.

Запуск

  1. Скачай PACMine-Server.jar со страницы релизов (или собери сам: bash make-server.sh)
  2. Положи файл в пустую папку
  3. Запусти:
    java -jar PACMine-Server.jar

При первом запуске ядро создаёт в этой же папке:

ФайлНазначение
server.propertiesнастройки сервера, с комментариями
saves/<world-name>.pmsмир: автосохранение + сохранение при stop
players.datпоследняя позиция каждого игрока — при заходе тебя вернёт туда, где вышел
server.logполный лог консоли с таймстампами
plugins/Lua-плагины — только если включено, см. страницу плагинов
Java нужна любая современная (JDK 17+). LWJGL ядру не требуется — можно ставить на голый VPS без графики.

server.properties

КлючПо умолчаниюЧто делает
port25565TCP-порт, на который подключаются игроки
world-size8размер нового мира в чанках (2–24), для конечных (не бесконечных) миров
infinitefalseбесконечный мир — см. раздел ниже
pregen-chunks250сколько чанков (сторона квадрата) предгенерировать при infinite=true; 250 требует ~1.5 ГБ хипа
protectiontrueбедрок снизу и невидимые стены по краям конечного мира
world-nameworldимя файла мира внутри saves/
autosave-seconds120как часто мир пишется на диск
pluginsfalseгрузить ли Lua-плагины из plugins/

🌐Бесконечные миры

Поставь infinite=true — сервер сразу предгенерирует квадрат pregen-chunks × pregen-chunks чанков вокруг спавна (по умолчанию 250×250, с прогрессом в консоли), а всё, что дальше, достраивается на лету по мере того, как игроки туда доходят.

Клиентам при подключении не передаётся весь мир целиком — только сид и список изменённых чанков. Игра на клиенте генерирует нетронутый рельеф локально (генерация детерминирована от сида), поэтому заход на сервер мгновенный даже с полностью предгенерированным миром.

⚠️ На бесконечные сервера могут заходить только клиенты той же версии протокола (0.1.5+) — старые версии игры не поймут новый тип пакета мира.

📟Консоль

КомандаДействие
listкто сейчас онлайн
say <текст>сообщение в чат от имени [Server]
pluginsсписок загруженных плагинов
saveсохранить мир прямо сейчас
stopсохранить мир и выключить сервер
helpпоказать этот список

🔗Подключение игроков

В игре: МУЛЬТИПЛЕЕР → JOIN GAME, ввести IP (или localhost для локального сервера). Консоль сервера покажет статус лицензии при входе каждого игрока:

+ Wanderer joined [license: PREMIUM]
+ Guest42 joined [no license (guest)]

Если сервер упал или его выключили — клиента аккуратно выкидывает в главное меню с надписью CONNECTION LOST, а не оставляет висеть в замороженном мире.

💾Формат сохранений

Мир хранится в собственном шифрованном формате .pms (PAC Mine Saves): блоки, инвентарь по слотам, зомби (тип и здоровье), животные, дроп на земле, содержимое печек, время суток, прогресс волн Super-режима. Файл зашифрован (PMC1 + XOR-поток) — это защита от казуального редактирования в текстовом редакторе, не криптостойкое шифрование. Старые версии формата читаются и конвертируются автоматически.