RE:NODE

Руководства11 мин чтения

server.cfg и convar-ы Rust: decay и upkeep

Где Rust хранит server.cfg и users.cfg, как загружаются convar-ы и какие настройки важны - листинг, PvE, кик за AFK, decay, upkeep - с объяснением каждой.

0 прочтений

Сервер Rust настраивается convar-ами - консольными переменными вроде server.hostname или decay.scale, - а файл, который задаёт их при каждом запуске, - это server/<identity>/cfg/server.cfg. Каждая строка - convar и значение, ровно так, как вы набрали бы их в консоли, без + впереди. Значения, которые читаются только при старте (порты, identity, seed и размер карты), должны стоять в строке запуска. Списки админов и банов лежат по соседству в users.cfg и bans.cfg и записываются командой server.writecfg. Из сотен convar-ов для типичного сервера важны примерно двадцать, а те, что меняют то, как играется сервер, - прежде всего decay и upkeep, - заслуживают больше размышлений, чем им обычно достаётся. В этой статье они перечислены с объяснением, что делает каждый.

Где Rust хранит конфигурацию#

Всё лежит в папке identity, имя которой задаёт +server.identity в строке запуска. При identity main:

ФайлКто записываетЧто содержит
server/main/cfg/server.cfgВыConvar-ы, выполняемые при каждом запуске
server/main/cfg/users.cfgserver.writecfgСтроки ownerid и moderatorid
server/main/cfg/bans.cfgserver.writecfgСтроки banid
строка запуска или вкладка Startup в панелиВыПорты, identity, уровень, seed, размер мира

На свежей установке папки cfg может не быть. Создайте её, создайте внутри server.cfg, и сервер прочитает его при следующем запуске. Некоторые сборки также пишут в ту же папку автоматически управляемый конфиг со значениями, изменёнными в консоли; считайте всё, что там лежит, собственностью сервера, а свои настройки держите в server.cfg, где вы их видите.

В папке identity лежат также карта, сохранение и базы данных игроков, и именно поэтому конфиг переживает вайпы: вайп удаляет файлы .map, .sav и выбранные .db, но не cfg/. Полный список файлов есть в статье о вайпах Rust без потери игроков.

Как загружаются convar-ы и как проверить значение#

Задать convar можно в трёх местах, и ведут они себя по-разному:

  1. Строка запуска, в виде +convar value. Читается до загрузки мира. Единственное правильное место для server.port, server.queryport, server.identity, server.level, server.seed, server.worldsize и настроек RCON.
  2. `server.cfg`, в виде convar value. Выполняется при каждом запуске. Правильное место для всего остального, что должно сохраняться.
  3. Консоль или RCON, в виде convar value. Действует сразу и забывается при следующем перезапуске, если та же строка не записана ещё и в server.cfg.

Задавайте каждый convar ровно в одном из первых двух мест. Если значение задано в строке запуска и ещё раз, по-другому, в server.cfg, победит порядок загрузки, а тот, кто будет потом разбираться, не будет знать, какому файлу верить.

Проверить просто. Наберите имя convar-а без значения, и консоль выведет текущее значение. find decay выводит все команды и convar-ы, содержащие «decay», с кратким описанием - это лучший способ найти настройки и убедиться, что имя, вычитанное в старом гайде, ещё существует в текущей сборке.

code
> decay.scaledecay.scale: "1"> find upkeep

Изменение значений на работающем сервере

Большинство игровых convar-ов и convar-ов листинга начинает действовать сразу после того, как вы задали их в консоли: название обновится в браузере при следующем запросе, decay.scale изменит следующий тик decay, server.idlekick применится к следующей проверке бездействия. Поэтому консоль - правильное место, чтобы попробовать значение, прежде чем закреплять его в файле. Некоторые вещи на лету с пользой не меняются. Порты, identity, seed, размер мира и уровень читаются один раз при старте; их установка в консоли либо ничего не делает, либо ничего не делает до следующего вайпа. С настройками RCON то же самое.

Безопасный порядок такой: попробовать значение в консоли, понаблюдать за эффектом вечер, затем добавить строку в server.cfg, чтобы следующий перезапуск её сохранил. Небезопасный - править server.cfg и перезапускать, чтобы посмотреть, что будет, - стоит игрокам перезапуска на каждый эксперимент.

Полный server.cfg#

Разумный стартовый файл для community-сервера. Значения с пробелами берутся в кавычки; комментарии - это строки, начинающиеся с //.

server/main/cfg/server.cfg
// listingserver.hostname "Longship | EU | Biweekly | Next wipe Thu 15 Oct"server.description "Vanilla rates, 2-week wipes, no zergs over 4.\nDiscord: example.com/discord"server.url "https://example.com"server.headerimage "https://example.com/rust-header.png"server.tags "biweekly,vanilla,eu"// population and savingserver.maxplayers 75server.saveinterval 300// playersserver.idlekick 30server.globalchat true// performancefps.limit 60// decay and upkeep (vanilla)decay.scale 1decay.upkeep true

\n в описании начинает новую строку в панели информации о сервере. Картинку-заголовок каждый клиент скачивает с вашего URL, поэтому размещайте её где-нибудь быстро и надёжно; обычно указываемый размер - 512 x 256 пикселей.

Convar-ы листинга и идентичности#

Они решают, найдёт ли кто-нибудь сервер и что о нём подумает. Название - самый читаемый текст, который вы контролируете, - укажите в нём периодичность и дату следующего вайпа, как советует статья о графике ежемесячного принудительного вайпа.

ConvarЧто делает
server.hostnameНазвание в браузере. Важные слова ставьте первыми
server.descriptionТекст в панели информации о сервере; поддерживает \n
server.urlСсылка в панели информации - обычно ваш Discord или сайт
server.headerimageURL картинки над описанием
server.tagsСписок тегов браузера через запятую: периодичность вайпа, стиль, регион
server.maxplayersСлоты. Остальные игроки ждут в очереди

server.tags управляет фильтрами браузера. Допустимые значения охватывают периодичность вайпа (weekly, biweekly, monthly), стиль (vanilla, pve, roleplay, creative и ещё несколько) и код региона; неизвестные теги игнорируются. Список задаёт игра, и со временем он менялся, поэтому проверяйте актуальный набор, а не придумывайте теги. Ставьте теги честно: сервер с тегом vanilla и добычей 5x - как раз то, на что жалуются игроки.

Игровые convar-ы#

ConvarОбычноЧто делает
server.pvefalseИгроки не получают урона от других игроков; вместо этого урон отражается
server.radiationtrueРадиация на монументах. Без неё монументы становятся тривиальными
server.stabilitytrueПравила устойчивости построек. Без них что угодно может висеть в воздухе
server.globalchattrueГлобальный чат включён; если выключить, чат только для игроков поблизости
server.idlekick30Минуты до кика бездействующего игрока; 0 отключает
server.idlekickmode-Кикать за бездействие всегда или только при заполненном сервере
fps.limitзначение сборкиОграничивает частоту кадров сервера

Два предупреждения. server.pve true - это PvE-переключатель ванильного Rust, и он грубый: он не мешает игрокам лутать чужие базы или убивать животных, на которых охотится кто-то другой. Настоящие PvE-серверы сочетают его с плагинами вроде TruePVE и правилами зон. А server.stability false популярен на строительных серверах, но меняет поведение каждой постройки; если включить его обратно посреди вайпа, могут рухнуть базы, которые минуту назад были вполне законными.

Кик за бездействие на заполненном сервере важнее, чем кажется. Без него слот, занятый тем, кто уснул за столом, - это слот, которым не может воспользоваться игрок в очереди. Тридцать минут - разумное значение по умолчанию; на сервере, который никогда не заполняется, idlekickmode позволяет кикать бездействующих игроков, только когда сервер полон.

Decay и upkeep, как следует#

Decay - это то, как Rust прибирается. Без него каждая брошенная база на карте остаётся навсегда, число сущностей растёт весь вайп, а новые игроки появляются среди руин. Upkeep - цена освобождения от decay: база под защитой Tool Cupboard платит ресурсами из этого шкафа за поддержание в порядке, а когда шкаф пустеет, база начинает разрушаться, как любая другая постройка.

Механика по порядку:

  1. У каждого строительного блока и многих установленных предметов есть таймер decay и материал. Быстрее всего разрушается twig, затем дерево, камень, листовой металл и бронированные блоки.
  2. Tool Cupboard, покрывающий постройку, платит upkeep из своего инвентаря. Стоимость зависит от количества блоков и их материала и растёт быстрее, чем пропорционально, по мере роста базы - большие базы платят за блок с надбавкой.
  3. Пока upkeep оплачивается, база не разрушается и медленно восстанавливается.
  4. Когда шкаф не может платить, начинается decay. Сущности теряют здоровье по расписанию, пока не сломаются.
ConvarОбычноЧто делает
decay.scale1Множитель для всего decay; 0 полностью выключает decay
decay.upkeeptrueБерут ли Tool Cupboard плату за upkeep
decay.upkeep_period_minutes1440Период, за который считается стоимость upkeep
decay.upkeep_heal_scale1Как быстро чинятся постройки на upkeep
decay.upkeep_inside_decay_scaleменьше 1Скорость decay для объектов внутри помещений без upkeep

Точные таймеры и ступени стоимости задаёт Facepunch и время от времени их меняет; find decay в консоли покажет convar-ы, которые есть в вашей сборке.

Как выбрать настройки decay

  • Ванилла (`decay.scale 1`, upkeep включён) - правильный выбор по умолчанию. Брошенные базы исчезают примерно за сутки, число сущностей остаётся управляемым, а игроки учатся наполнять шкаф.
  • Пониженный decay (`decay.scale 0.5`) - разумный выбор для небольших серверов, где люди играют пару вечеров в неделю. Половинный decay даёт отсутствующим игрокам запас, не позволяя карте забиться.
  • Без decay (`decay.scale 0`) - только для creative- и строительных серверов или коротких циклов вайпа, где уборку делает сам вайп. На месячном сервере без decay карта к концу месяца несёт на себе каждую когда-либо начатую базу, и за это платит производительность.
  • Upkeep выключен - убирает стоимость содержания базы, а вместе с ней один из главных потребителей ресурсов. На PvP-серверах это обычно ошибка, на PvE или ролевых иногда оправдано.

Что бы вы ни выбрали, напишите об этом в описании сервера. «Decay 50%» или «No upkeep» - информация, по которой игроки решают, подходит ли им ваш сервер с учётом того, как часто они могут играть, а игрок, чья база разрушилась на сервере, который он считал снисходительным, не вернётся читать правила.

Три отправные точки

Большинство серверов укладывается в одну из трёх форм, и convar-ы вытекают из формы.

  • Ванильный community PvP. Оставьте decay, upkeep, радиацию и устойчивость по умолчанию. Поставьте кик за бездействие около 30 минут, не выключайте глобальный чат, а силы потратьте на convar-ы листинга и разумный размер мира. Именно такой конфигурации ждут игроки, пришедшие с официальных серверов, и отклонение от неё без предупреждения - самый быстрый путь к плохим отзывам.
  • PvE или спокойный. server.pve true плюс PvE-плагин для закрытия пробелов, decay.scale около 0.5, чтобы игроки выходного дня сохраняли базы, и кик за бездействие только при заполненном сервере. Радиация остаётся, иначе монументы теряют смысл.
  • Строительный или creative. decay.scale 0, upkeep выключен, часто server.stability false, без кика за бездействие и вайпы только когда карта заполнится. Число сущностей будет расти без ограничений - планируйте график вайпов с учётом этого.

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

Decay - ваш самый дешёвый инструмент производительности. Почему главные затраты - это сущности и почему decay лучше любого плагина очистки, объясняет статья о производительности сервера и числе сущностей.

Запись изменений на диск#

Изменения, сделанные в консоли, действуют сразу, но временно. Чтобы их сохранить, запишите их в server.cfg. С админами и банами иначе: ownerid, moderatorid и banid меняют списки, которые сервер хранит сам, и в users.cfg и bans.cfg они попадают только после server.writecfg.

code
ownerid 76561198012345678 "Alice" "owner"moderatorid 76561198087654321 "Bob" "mod"server.writecfg

Перезапустите сервер без server.writecfg, и эти права пропадут. Это самый частый вопрос о конфигурации Rust в поддержке. Остальной список админских команд - в статье об админских командах Rust.

Храните копию всей папки cfg вне сервера - в документах команды, в приватном репозитории или просто в виде скачанной датированной копии перед каждым вайпом. Это несколько килобайт, в них - каждое ваше решение о том, как работает сервер, и это первое, что вам понадобится, если вы смените хостинг, будете восстанавливаться после неудачного обновления или передадите сервер кому-то другому. Остальное о переезде - в статье о переносе сервера без потери игроков.

Ручная правка users.cfg или bans.cfg работает, пока сервер остановлен. Если править их на работающем сервере, следующий server.writecfg перезапишет вашу правку тем, что у сервера в памяти.

Редактирование конфига в панели#

В панели Pterodactyl значения строки запуска отображаются как переменные на вкладке Startup, и сервер собирает команду из них, так что seed, размер мира и название могут оказаться полями панели, а не строками, которые вы пишете сами. Проверьте, что задаёт egg, прежде чем дублировать что-либо в server.cfg: если название - это переменная Startup и одновременно строка в server.cfg, одно из них игнорируется.

В RE:NODE файловый менеджер редактирует server.cfg прямо в браузере с подсветкой синтаксиса, в консоли есть история команд и автодополнение по Tab для проверки значений на лету, а слоты для backup-ов позволяют сделать снимок папки identity перед экспериментом. Rust нет в каталоге игр RE:NODE, поэтому это общие возможности панели, а не тариф для Rust; как всё это сочетается, разобрано в статье о панели Pterodactyl.

Решение проблем с конфигом#

Настройка в server.cfg не действует. Она задана ещё и в строке запуска или переменной панели, в имени опечатка, или такого convar-а больше нет. Наберите его имя в консоли, чтобы увидеть текущее значение.

Название или описание откатывается после перезапуска. Его меняли только в консоли. Запишите его в server.cfg.

Админы теряют права при перезапуске. После ownerid не выполнили server.writecfg.

Описание отображается одной строкой. Используйте \n внутри строки в кавычках, а не настоящие переносы строк.

Сервер полностью игнорирует server.cfg. Файл лежит не в той папке identity или не внутри cfg/. Сверьте identity в строке запуска с именем папки посимвольно, на Linux - с учётом регистра.

На небольшом сервере базы разрушились за ночь. Ванильный decay при игроках, которые заходят дважды в неделю. Уменьшите decay.scale или научите людей наполнять шкаф.

FAQ#

Где находится server.cfg на сервере Rust?

В server/<identity>/cfg/server.cfg, где <identity> - значение +server.identity в строке запуска. Если папки cfg нет, создайте её.

Как отключить decay на сервере Rust?

Задайте decay.scale 0 в server.cfg. Используйте это на строительных и creative-серверах; на обычном PvP-сервере уменьшить decay обычно лучше, чем убрать его совсем, потому что именно decay убирает брошенные базы.

Нужен ли знак плюс в server.cfg?

Нет. + - это синтаксис только для строки запуска. В server.cfg каждая строка - это convar и его значение, как вы набрали бы их в консоли.

Как найти все convar-ы, которые поддерживает Rust?

Используйте в консоли find с префиксом, например find server. или find decay. Команда выведет подходящие команды и convar-ы из той сборки, которая у вас реально запущена.

Сбрасывает ли вайп server.cfg?

Нет. Вайп удаляет файлы карты, сохранения и баз данных игроков. Папка cfg остаётся нетронутой, если вы не удалите её сами.


Комментарии

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

0/2000