Мир Abiotic Factor - это одна папка, и в ней хранится всё: состояние комплекса, каждый размещённый объект, персонаж каждого игрока в подпапке PlayerData и правила мира в SandboxSettings.ini. На выделенном сервере эти папки лежат в AbioticFactor/Saved/SaveGames/Server/Worlds/, а аргумент запуска -WorldSaveName выбирает, какая из них загрузится. Такое устройство упрощает две задачи, которые в большинстве игр на выживание неудобны. Перенос мира, который вы хостили из игры, на сервер - это загрузка папки и один аргумент. А поскольку файл песочницы лежит внутри мира, правила переезжают вместе с ним. В этом руководстве разобран каждый ключ песочницы со значением по умолчанию и диапазоном, предложены настройки для разных групп, а также описаны перенос, бэкап и восстановление миров.
Установка, аргументы запуска, порты и админы описаны в руководстве по выделенному серверу Abiotic Factor. Здесь мы считаем, что сервер работает, и сосредотачиваемся на мире.
Где лежит файл песочницы#
В актуальных сборках у каждого мира свой файл песочницы:
AbioticFactor/Saved/SaveGames/Server/Worlds/<WorldSaveName>/SandboxSettings.iniСтарые сборки и старые руководства держали один файл песочницы в AbioticFactor/Saved/Config/WindowsServer/, а аргумент запуска -SandboxIniPath= может направить сервер на любой файл. Если ваши правки будто ничего не меняют, сервер читает не тот файл, который вы редактируете. В начале лога сервера видно, какие файлы загружены; прочитайте его один раз, и вопрос больше не возникнет. Как быстро найти эту строку, рассказано в статье чтение консоли.
Файл должен начинаться с заголовка [SandboxSettings], ключи чувствительны к регистру, а логические значения пишутся как True и False. Редактируйте его при остановленном сервере. Изменения применятся при следующем запуске.
SandboxSettings.ini по ключам#
Значения ниже взяты из официальной документации по выделенному серверу. Диапазоны - это то, что позволяют ползунки в игре; значения за их пределами могут обрезаться или вести себя странно.
Сложность и смерть
| Ключ | По умолчанию | Диапазон | Что делает |
|---|---|---|---|
GameDifficulty | 1 | 1-3 | Normal, Hard, Apocalyptic |
HardcoreMode | False | Одна жизнь на персонажа | |
AllowIronMode | True | Разрешает персонажей в iron mode | |
DeathPenalties | 1 | 0-5 | От «сохранить всё» до уничтожения предметов |
DurabilityLossOnDeathMultiplier | 0.1 | 0-1 | Износ снаряжения при смерти |
HostAccessPlayerCorpses | True | Может ли хост обыскивать трупы других игроков | |
ShowDeathMessages | True | Сообщения о смерти в чате | |
FirstTimeStartingWeapon | 0 | 0-6 | От «нет» до случайного |
Враги
| Ключ | По умолчанию | Диапазон | Что делает |
|---|---|---|---|
EnemySpawnRate | 1.0 | 0.5-3 | Как часто появляются враги |
EnemyHealthMultiplier | 1.0 | 0.75-3 | Здоровье врагов |
EnemyPlayerDamageMultiplier | 1.0 | 0.25-3 | Урон по игрокам |
EnemyDeployableDamageMultiplier | 1.0 | 0-5 | Урон по вашей базе. 0 делает её неуязвимой |
DetectionSpeedMultiplier | 1.0 | 0.1-3 | Как быстро враги вас замечают |
EnemyAccuracy | 2 | 0-4 | Точность стрельбы, от жалкой до снайперской |
ApocalypticAbilities | False | Способности врагов уровня Apocalyptic на меньшей сложности | |
MaximizeEnemySpawns | False | Спавн с максимальной плотностью | |
DamageToAlliesMultiplier | 0.5 | 0-3 | Огонь по своим. 0 выключает его |
Потребности выживания
| Ключ | По умолчанию | Диапазон | Что делает |
|---|---|---|---|
HungerSpeedMultiplier | 1.0 | 0-2 | Скорость голода |
ThirstSpeedMultiplier | 1.0 | 0-2 | Скорость жажды |
FatigueSpeedMultiplier | 1.0 | 0-2 | Усталость |
ContinenceSpeedMultiplier | 1.0 | 0-2 | Потребность в туалете |
FoodSpoilSpeedMultiplier | 1.0 | 0-2 | Порча еды |
RefrigerationEffectivenessMultiplier | 1.0 | 0-2 | Насколько холодильники замедляют порчу |
SinkRefillRate | 1.0 | 0-10 | Скорость наполнения водой |
TaintedSinkWater | False | Воду из раковин нужно очищать | |
RadiationDealsDamage | False | Радиация наносит прямой урон |
Предметы, прогресс и строительство
| Ключ | По умолчанию | Диапазон | Что делает |
|---|---|---|---|
PlayerXPGainMultiplier | 1.0 | 0-3 | Скорость прокачки навыков |
BonusPerkPoints | 0 | целое | Дополнительные очки перков при создании |
ItemStackSizeMultiplier | 1.0 | 1-30 | Размер стаков |
ItemWeightMultiplier | 1.0 | 0-5 | Вес предметов |
ItemDurabilityMultiplier | 1.0 | 0.1-10 | Сколько служит снаряжение |
BaseInventorySize | 12 | целое | Стартовые слоты инвентаря |
AllowRecipeSharing | True | Рецепт, изученный одним, получают все | |
AllowPagers | True | Связь через пейджеры | |
AllowTransmog | True | Косметическая смена внешнего вида | |
DisableResearchMinigame | False | Пропуск мини-игры исследования | |
AllowCharacterReset | True | Игроки могут перераспределить навыки | |
StructuralSupportLimit | 5 | целое | Как далеко можно строить без опоры |
PlayerFurnitureDestruction | False | Могут ли игроки разрушать мебель |
Мир и окружение
| Ключ | По умолчанию | Диапазон | Что делает |
|---|---|---|---|
LootRespawnEnabled | False | Лут со временем появляется снова | |
PowerSocketsOffAtNight | True | Ночью в комплексе отключают питание | |
DayNightCycleState | 0 | 0-2 | Обычный цикл, всегда день, всегда ночь |
DayNightCycleSpeedMultiplier | 1.0 | 0.1-3 | Длина суток |
WeatherFrequency | 3 | 1-5 | От «никогда» до «ежедневно» |
Есть ещё несколько ключей - StorageByTag (по умолчанию True), BridgeSupports (2, диапазон 0-2), HomeWorlds (True) и InvisibleRadiation (False), - и их точное действие лучше читать в описаниях на экране песочницы в игре, где используются те же имена. Вместе с контентными обновлениями появляются и новые ключи. Если вы настраиваете сервер через несколько месяцев после написания этой статьи, один раз сгенерируйте свежий мир и сравните его файл песочницы со своим; всё, чего в вашем нет, просто стоит по умолчанию.
Как настройки влияют друг на друга#
Большинство значений песочницы легко понять по отдельности, но в сочетании они удивляют. Некоторые пары стоит обдумать вместе, прежде чем менять любую из них.
Потребности и порча. Если снизить голод и жажду, не трогая FoodSpoilSpeedMultiplier, еда сгниёт в холодильнике задолго до того, как кому-то понадобится, и группа перестанет готовить. Замедляете потребности - замедлите и порчу примерно настолько же или поднимите RefrigerationEffectivenessMultiplier, чтобы кухня оставалась частью игры, а не местом, куда пайки уходят умирать.
Штрафы за смерть и износ. DeathPenalties решает, что вы теряете; DurabilityLossOnDeathMultiplier - что происходит с тем, что осталось. Жёсткое первое значение при мягком втором всё равно наказывает игрока, погибшего далеко от базы: ему придётся идти обратно к своему трупу. Мягкое первое при жёстком износе превращает каждую смерть в счёт за ремонт. Выберите нужный опыт - пробежка за снаряжением или медленное истощение ресурсов - и настройте оба значения под него.
Частота спавна и возрождение лута. Больше врагов при конечном луте значит, что группа тратит патроны, которые нечем восполнить. Если поднимаете EnemySpawnRate на сервере, рассчитанном надолго, одновременно включите LootRespawnEnabled, иначе сервер будет становиться сложнее с каждой неделей по причинам, которые никто не выбирал.
Размер стака и вес. Если поднять ItemStackSizeMultiplier, не трогая ItemWeightMultiplier, полный стак станет тяжелее, а это может ощущаться как нерф. Группы, которым нужно удобство, обычно ещё и немного снижают вес.
Питание ночью. PowerSocketsOffAtNight - одно из самых интересных давлений в игре: ночь означает генераторы и планирование. Отключить его - большое облегчение для группы, играющей урывками, и потеря целого слоя проектирования базы для всех остальных. Решайте это группой, а не единолично как админ.
Общая привычка: меняйте по одной настройке, записывайте в Discord сервера, что и зачем изменили, и возвращайтесь к этому через неделю игры. Файл настроек, который три месяца без заметок правили четыре человека, - это файл, в котором уже никто не разберётся.
Рецепты настроек для разных групп#
Это отправные точки, а не готовые ответы. Измените два-три значения, поиграйте неделю и подправьте.
Друзья, играющие урывками
Потребности по умолчанию рассчитаны на людей, которые играют по несколько часов подряд. Группа, играющая час после работы, половину этого часа ест.
[SandboxSettings]GameDifficulty=1HungerSpeedMultiplier=0.6ThirstSpeedMultiplier=0.6FatigueSpeedMultiplier=0.6ContinenceSpeedMultiplier=0.5FoodSpoilSpeedMultiplier=0.7AllowRecipeSharing=TrueDeathPenalties=1DamageToAlliesMultiplier=0.0Здесь важнее всего общий доступ к рецептам. Без него тот, кто играет только по выходным, каждую сессию отстаёт от остальных. Выключенный огонь по своим избавляет от вечеров, заканчивающихся спором из-за шальной пули.
Долгоживущий публичный сервер
Комплекс конечен. С выключенным возрождением лута сервер, открытый месяцами, обчищают дочиста, и новые игроки находят пустые шкафы.
[SandboxSettings]LootRespawnEnabled=TrueEnemySpawnRate=1.25EnemyDeployableDamageMultiplier=0.5PlayerFurnitureDestruction=FalseHostAccessPlayerCorpses=FalseDeathPenalties=2Если вдвое снизить урон по постройкам, набеги не будут сводить на нет неделю строительства, а оборона базы сохранит смысл. Отключить хосту доступ к трупам важно на публичном сервере, где «хостом» может оказаться человек, которого никто из игроков не знает.
Сложная кампания
[SandboxSettings]GameDifficulty=2EnemyHealthMultiplier=1.25DetectionSpeedMultiplier=1.25EnemyAccuracy=3ItemDurabilityMultiplier=0.8DeathPenalties=3Не включайте HardcoreMode, если все заранее не согласились. Одна жизнь на персонажа на сервере, где вас может убить обрыв соединения, веселее на словах, чем на деле.
Группы больше, чем рассчитывает игра
По умолчанию лимит - шесть игроков, и экономика построена под это. Если поднимаете -MaxServerPlayers, компенсируйте: включите возрождение лута, поднимите ItemStackSizeMultiplier до 2 и подумайте о EnemySpawnRate больше 1, чтобы дюжине человек было с кем сражаться. Почему настоящий предел обычно задаёт геймдизайн, а не железо, рассказано в статье сколько игроков помещается на сервер.
Что внутри папки мира#
Worlds/ Cascade/ SandboxSettings.ini PlayerData/ (world save files)В PlayerData хранится по персонажу на каждого игрока, заходившего в этот мир. Персонажи не переносятся между мирами - учёный принадлежит одному миру, - и когда кто-то впервые заходит на ваш сервер, его персонаж создаётся здесь, а не на его ПК. Это противоположно таким играм, как Terraria или Valheim, и людям стоит сказать об этом до того, как они вложат вечер в тестовый мир.
Обращайтесь с папкой как с единым целым. Копирование отдельных файлов сохранения между мирами даёт мир, который ссылается на несуществующие вещи.
Перенос захощенного мира на сервер#
Мир, который вы хостили из игры, лежит на ПК хоста:
%LocalAppData%\AbioticFactor\Saved\SaveGames\<SteamID64>\Worlds\<WorldName>\- Пусть хост закроет игру, чтобы мир полностью сохранился.
- Скопируйте всю папку мира, включая
PlayerDataиSandboxSettings.ini. - Остановите сервер.
- Загрузите папку в
AbioticFactor/Saved/SaveGames/Server/Worlds/. По SFTP это одно перетаскивание; данные для подключения - в статье SFTP и файловый менеджер. - Задайте
-WorldSaveName=в точности по имени папки, с учётом заглавных букв. Либо переименуйте папку в текущее имя мира - но только убрав сначала существующую папку с таким именем. - Запустите сервер и следите в логе, чтобы загрузился этот мир, а не создался новый.
Персонажи группы переезжают внутри PlayerData, включая персонажа хоста. Каждый игрок продолжит с того же места, если зайдёт с тем же аккаунтом, с которым играл. Правила песочницы тоже переезжают, потому что файл лежит внутри папки, - проверьте его после переноса: у мира, созданного в одиночной песочнице, могут быть настройки, которые для сервера вы бы не выбрали.
В обратную сторону
Чтобы забрать мир с сервера на ПК - продолжать играть, когда сервер закроется, или отдать мир кому-то для хостинга, - остановите сервер, скачайте папку мира и положите её в локальную папку Worlds хоста. Мир появится в списке миров игры. Сделайте это до отмены любого сервера: у большинства хостеров удаление сервера удаляет и его сохранения.
Между серверами и новый старт
Переезд от одного хостера к другому - та же загрузка, только перед ней скачивание: остановите старый сервер, скачайте папку мира, загрузите её на новый, задайте -WorldSaveName и запустите. Сначала сверьте версию игры на обеих сторонах: мир, сохранённый более новой сборкой, может не загрузиться на старой.
Новая кампания никогда не требует что-то удалять. Задайте -WorldSaveName новое имя и запустите; рядом со старым создастся свежий мир со свежим файлом песочницы по умолчанию. Как только папка появилась, остановите сервер, скопируйте в неё свой SandboxSettings.ini и запустите снова до того, как зайдёт группа, - чтобы первая сессия не прошла на настройках, которые вы собирались поменять. Старый мир остаётся на диске, и вернуться к нему - это один аргумент.
Бэкапы и восстановление#
Игра хранит скользящие бэкапы локальных миров в папке рядом с мирами, и это спасло немало захощенных кампаний. Не рассчитывайте, что сервер делает то же самое; проверьте, пишет ли их ваша сборка, и даже если пишет, они лежат на том же диске, что и мир.
Надёжный порядок:
- Ночной бэкап папки `Worlds`, хранящийся вне сервера, пока группа активна.
- Ручной бэкап перед каждым обновлением игры. Abiotic Factor активно разрабатывается, и контентные обновления - именно тот момент, когда совместимость сохранений проверяется в бою.
- Ручной бэкап перед изменением значений песочницы, которые меняют состояние, например перед включением возрождения лута, чтобы решение можно было отменить.
- Пробное восстановление. Восстановите бэкап под другим именем мира, направьте на него
-WorldSaveName, зайдите и убедитесь, что ваш персонаж на месте. Потом верните как было.
Почему важен именно последний шаг, подробно объясняет статья бэкапы, которые действительно восстанавливаются.
На RE:NODE -WorldSaveName и другие аргументы запуска - это поля на вкладке Startup, так что переключить сервер на тестовый мир и обратно - две правки. Бэкапы делаются вручную или по расписанию, хранятся вне машины, скачиваются и восстанавливаются одной кнопкой. Запись в Schedules может делать ночной бэкап и следом перезапуск как задачи по порядку, а кнопка Restart отправляет чистую остановку, так что мир сначала сохраняется. Если сервер упирается в лимит памяти, его останавливают и чисто перезапускают, а не оставляют уходить в своп, - это остановка без сохранения и ещё одна причина держать ночной бэкап.
Решение проблем#
Изменения песочницы ни на что не влияют. Сервер читает другой файл. Найдите в логе путь к файлу песочницы, проверьте, нет ли аргумента -SandboxIniPath, и убедитесь, что заголовок [SandboxSettings] написан точно.
Загруженный мир игнорируется, и стартует новый. -WorldSaveName не совпадает в точности с именем папки, или файлы вложены на уровень глубже - в папке, названной в аргументе, файлы мира должны лежать напрямую.
В перенесённом мире игроки начинают новыми персонажами. Не загружена PlayerData, или они зашли с другого аккаунта, не с того, с которым играли.
Значение на крайних пределах не действует. Оно вне диапазона ползунка и было обрезано. Пользуйтесь диапазонами из таблиц выше.
Мир загружается, но комплекс пуст. По умолчанию лут не возрождается. Включите LootRespawnEnabled на долгоживущих серверах и смиритесь с тем, что уже пустые контейнеры наполняются со временем, а не сразу.
Сервер вылетает при загрузке старого мира после обновления. Восстановите бэкап, сделанный до обновления, под запасным именем мира и проверьте, загружается ли он; если нет, дождитесь патча, а не загружайте оригинал раз за разом.
FAQ#
Где лежит SandboxSettings.ini на выделенном сервере Abiotic Factor?
В актуальных сборках - внутри папки мира: AbioticFactor/Saved/SaveGames/Server/Worlds/<WorldSaveName>/SandboxSettings.ini. Аргумент -SandboxIniPath может указывать на другое место, а старые сборки использовали Saved/Config/WindowsServer/.
Можно ли менять настройки песочницы на существующем мире?
Да. Остановите сервер, отредактируйте файл и снова запустите. Настройки, влияющие на будущие события, например возрождение лута или частоту спавна врагов, действуют с этого момента и не переписывают то, что уже произошло.
Переносятся ли персонажи, когда я переношу мир на сервер?
Да, если вместе с миром переехала папка PlayerData, а игроки заходят с теми же аккаунтами. Персонажи принадлежат миру, а не ПК игрока.
Можно ли использовать своего персонажа на чужом сервере?
Нет. Персонаж существует только в одном мире. Зайти на другой сервер - значит начать там нового учёного.
Как держать два мира на одном сервере?
Дайте каждому свою папку в Worlds и переключайтесь через -WorldSaveName. Одновременно работает только один, а другой, пока вы играете, остаётся нетронутым.
Что поменять для сервера, который работает месяцами?
Включите LootRespawnEnabled, иначе комплекс опустеет навсегда. Подумайте о снижении урона по постройкам, чтобы набеги не сводили на нет базу, которую строят долго.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.