Перейти к содержимому

Установка

Удобнее видео? Посмотрите урок по установке на YouTube.

Сервера ещё нет? Сначала прочитай Хостинг. Для чего-то недорогого, что нормально это тянет, мы рекомендуем 24Racks.

Это чистая установка: новый мир, без старой базы данных. Если ты переносишь существующий сервер на другой ПК, смотри Обновление и база данных про инструменты резервного копирования и импорта.

Твоя папка server-data в итоге выглядит так:

BeyondSurvival/
├── server.cfg # from server.cfg.example
├── server.private.cfg # from server.private.cfg.example, NEVER share this
├── resources/
│ ├── [beyond]/ # the framework, all bs_* resources
│ ├── [map]/ [compat]/ [prototypes]/ [third-party]/
│ ├── [map]/[the_apocalypse_project]/ # the map, separate download
│ ├── oxmysql/
│ └── vMenu/ ... # optional
└── tools/ # PowerShell helpers (Windows)

Артефакты (FXServer.exe) лежат в другом месте, например C:\FXServer. Не клади их внутрь папки server-data.

Если ты скачал релизный пакет, он уже так выглядит. Чтобы собрать такой самому из рабочей копии:

Окно терминала
powershell -ExecutionPolicy Bypass -File .\tools\Prepare-PortableRelease.ps1 -Destination D:\BeyondSurvival-Release

Он намеренно не включает server.private.cfg, cache/, db/, бэкапы и логи.

Установи MariaDB, затем создай пустую базу и пользователя для неё. В Windows помощник делает и то и другое:

Окно терминала
tools\setup-database.bat

Или вручную:

CREATE DATABASE beyondsurvival CHARACTER SET utf8mb4;
CREATE USER 'beyond'@'localhost' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON beyondsurvival.* TO 'beyond'@'localhost';
FLUSH PRIVILEGES;

Не импортируй ни один .sql файл. bs_core выполняет свои миграции при первом запуске (от bs_core/sql/001_core_schema.sql до 030_user_language.sql, см. Миграции базы данных) и записывает каждую в таблицу bs_migrations, так что дважды они не запускаются. database/full_schema.sql лежит просто на случай, если захочешь посмотреть схему вне сервера.

Скопируй server.private.cfg.example в server.private.cfg и заполни:

sv_licenseKey "your keymaster key"
set mysql_connection_string "mysql://beyond:[email protected]:3306/beyondsurvival?charset=utf8mb4"
set steam_webApiKey ""

server.cfg загружает его первой строкой через exec server.private.cfg. Держи его вне git и вне любого zip, который отправляешь другим.

Скопируй server.cfg.example в server.cfg. Поменяй hostname, теги, sv_maxclients и principals персонала внизу (см. Админ и права).

Порядок ensure важен для некоторых ресурсов. Сначала oxmysql, bs_core перед всеми остальными bs_*, а зомби-часть после того, что она читает. В таком порядке работает боевой сервер:

ensure oxmysql
ensure bs_loading
ensure bs_core # must stay first of the bs_*
ensure bs_multichar
ensure bs_admin
ensure bs_config
ensure bs_assets
ensure bs_ui
ensure bs_chat # replaces the stock chat, don't ensure both
ensure bs_radial
ensure bs_bodily
ensure bs_interactions
ensure bs_inventory
ensure bs_skills
ensure bs_parkour
ensure bs_fighting
ensure bs_fpdebug # fighting and parkour test tools, admin only
ensure bs_economy
ensure bs_medical
ensure bs_emotes
ensure bs_scenes
ensure bs_weapons
ensure bs_vehicles
ensure bs_menu
ensure bs_vip
ensure bs_building
ensure bs_crafting
ensure bs_recycler
ensure bs_mining
ensure bs_stash
ensure bs_extraction
ensure bs_factions
ensure bs_faction_bases
ensure bs_scoreboard
ensure bs_world
ensure nutria_crawl_anims # before bs_zombies, crawlers need the anim dict
ensure bs_zombiepeds
ensure bs_zombies
ensure bs_zombiesfx
# voice and radio: bs_voice replaces pma-voice
stop pma-voice
setr voice_useNativeAudio true
setr voice_useSendingRangeOnly true
ensure bs_voice
ensure bs_radio
ensure bs_missions
ensure bs_atlas # after bs_zombies, it calls its callbacks
ensure bs_traders # reads bs_zombies safe zones
ensure bs_jobs
ensure nodes # sector map web panel
ensure bs_boosters
ensure bs_gadgets
ensure bs_drugs
ensure bs_events
ensure bs_operations
ensure bs_darkzone # off until switched on in F1 > Dark Zone
ensure bs_guard
ensure bs_pause
ensure bs_bodycam
ensure bs_tutorial
ensure bs_pass
ensure bs_survivor
ensure bs_survivor_link
## ensure bs_cinecam # optional, remove ## to enable
## ensure bs_esx_bridge # ESX bridge, partial, remove ## to try it
## ensure qbx_core # Qbox bridge, partial, remove ## to try it
## ensure [the_apocalypse_project] # separate download, see bs19.org/map
ensure chadada_apocalypse_cars

Не делай ensure chat, пока работает bs_chat, иначе будет два окна чата и каждое сообщение дважды. И не делай ensure для mapmanager/spawnmanager/sessionmanager, если ты реально не ставил cfx-server-data, bs_core и bs_multichar сами занимаются спавном.

Окно терминала
powershell -ExecutionPolicy Bypass -File .\tools\Test-Deployment.ps1

Не запускай, пока не пройдут все проверки.

С txAdmin: запусти FXServer.exe, выбери Existing Server Data и укажи свою папку. Включи OneSync в настройках txAdmin.

Без txAdmin:

Окно терминала
C:\FXServer\FXServer.exe +exec "D:\BeyondSurvival-Release\server.cfg"

Следи за консолью. Должны стартовать oxmysql, bs_core (при первом запуске он выводит применённые миграции), bs_factions, bs_menu и карта, без красных ошибок. Затем зайди, создай персонажа, открой инвентарь (I), открой меню фракции, нажми F1 и F10 от имени персонала, чтобы проверить права.

Ресурс nodes при первом запуске выводит в консоль URL с ключом доступа. Это веб-панель карты секторов, скопируй его и добавь в закладки.

BS19 нормально работает на обычной карте. Если нужен постапокалиптический мир, поставь The Apocalypse Project — бесплатную карту-компаньон.

  1. Скачай zip на bs19.org/map (последний релиз, а пока релиза нет — свежие файлы из основной ветки).

  2. Распакуй его в resources/[map]/, чтобы получилось resources/[map]/[the_apocalypse_project]/.

  3. Добавь строку ensure в server.cfg (или убери #, если она там уже есть закомментированной):

    ensure [the_apocalypse_project]
  4. Перезапусти сервер.

Все шаги, порядок загрузки и IPL: Установка и порядок загрузки.