Кастомные карты Rust: как поставить
Стандартная процедурная карта Rust неплохая, но рано или поздно надоедает — либо хочется уникальный рельеф под свой вайп, либо готовую карту с продуманной застройкой монументов, которую сообщество уже обкатало. Разберём оба рабочих способа: сгенерировать свою карту через seed и параметры размера, и поставить готовую карту с файлом .map — с граблями, на которых спотыкаются почти все в первый раз.
Содержание
Два способа получить кастомную карту
По сути у тебя есть два принципиально разных варианта.
Первый — процедурная генерация с кастомным seed. Это по-прежнему карта, которую движок Rust строит сам, но по конкретному числу-seed и с заданными параметрами размера. Карта будет уникальной (не такой, как у всех остальных серверов), но ты не увидишь её заранее и не сможешь вручную поправить рельеф или расстановку монументов — что сгенерируется, то и получишь.
Второй — готовая карта, скачанная как файл .map с сайта-генератора или созданная кем-то вручную в редакторе. Тут ты заранее видишь, что получаешь: скриншот, список монументов, иногда даже видео облёта. Такие карты часто аккуратнее собраны — без странных наложений скал на дороги и с логичным распределением ресурсов.
Для большинства администраторов это выбор между «быстро и без сюрпризов, но вслепую» (seed) и «предсказуемо, но нужно скачать файл и убедиться, что он не сломает сервер» (готовая карта). Дальше — как сделать оба варианта правильно.
Способ 1: процедурная генерация по seed
Это самый простой путь получить нестандартную карту без единого скачанного файла. Всё решается стартовыми параметрами сервера.
Ключевые параметры:
+server.seed 123456789
+server.worldsize 4000
server.seed— число, которое определяет весь рельеф, расположение монументов, рек, снежных биомов и так далее. Один и тот же seed на одной и той же версии Rust и с одним и тем же worldsize почти всегда даёт одинаковую карту (это удобно, если хочешь вернуться к «любимой» генерации после вайпа).server.worldsize— размер карты в игровых единицах, по стороне квадрата. Стандартные официальные сервера обычно работают в диапазоне 3000–4500. Для маленького PvP-сервера на 20-30 слотов имеет смысл брать меньше (например, 3000-3500), чтобы не гонять игроков по пустой карте; для большого сообщества — 4250-4500 и выше.
Если seed не задать вообще, сервер сам сгенерирует случайный при каждом старте (или будет использовать сохранённый — зависит от того, менялся ли worldsize). Если хочешь именно контролируемую, воспроизводимую генерацию — задавай seed явно.
Практический момент: если у тебя сервер запускается через systemd-юнит или скрипт запуска, эти параметры дописываются в строку запуска RustDedicated рядом с остальными (+server.hostname, +server.port и т.д.), а не в отдельный конфиг-файл — Rust не читает seed/worldsize из server.cfg на большинстве стандартных установок, только из аргументов старта.
Дальше самое неприятное: смена seed или worldsize на уже работающем сервере запускает генерацию новой карты — а значит, обнуляет прогресс игроков. Постройки, лут в сундуках, точки спавна — всё привязано к текущей карте. По сути смена seed равносильна полному вайпу. Если это не запланированный вайп, а эксперимент — предупреди игроков заранее и, ещё лучше, сними бэкап перед изменением.
Поднять сервер Rust за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверСпособ 2: готовая карта с сайта-генератора
Если хочется не абстрактный seed, а конкретную карту, которую ты видел на скриншоте — используешь готовый файл .map.
Порядок действий:
- Найди подходящую карту на специализированном сайте (например, rustmaps.com — там огромная база сгенерированных карт с превью, списком монументов и фильтрами по размеру/сиду; но подойдёт любой ресурс, который отдаёт файл в формате .map для твоей версии Rust).
- Скачай файл карты — обычно это .map-файл размером от пары десятков до нескольких сотен мегабайт в зависимости от worldsize.
- Залей файл на сервер, например в папку
server/<имя_идентификатора>/maps/(точный путь зависит от твоей структуры установки — на большинстве конфигов Rust сам создаёт папку maps рядом с сохранениями мира). - Укажи путь к файлу в параметрах запуска:
+server.levelurl "file:///home/rust/server/myserver/maps/custom_map.map"
Либо, если сайт-генератор отдаёт прямую ссылку на скачивание, можно указать её напрямую — тогда сервер сам скачает файл при старте:
+server.levelurl "https://example.com/maps/custom_map_4000_123456.map"
Второй вариант удобнее для автоматизации (не нужно вручную заливать файл при каждом вайпе), но зависит от доступности стороннего сайта в момент старта сервера — если сайт лежит или ссылка протухла, сервер не поднимется с этой картой. Для боевого сервера, где важна стабильность, я обычно скачиваю файл один раз и держу его локально на VPS, а не полагаюсь на внешний URL при каждом рестарте.
Важный нюанс: при использовании server.levelurl параметры server.seed и server.worldsize из строки запуска обычно игнорируются (карта уже готовая, генерировать нечего) — но у некоторых карт с генераторов размер файла жёстко завязан на конкретный worldsize, указанный при генерации, так что просто взять чужую карту и вручную натянуть на неё другой worldsize не получится.
Проверка совместимости карты с версией игры
Это самая частая причина, почему «скачал карту — сервер не встаёт» или «встаёт, но с дырами в текстурах и падает FPS».
Rust регулярно получает обновления, которые меняют алгоритм процедурной генерации, добавляют новые монументы или биомы. Карта, сгенерированная на старой версии движка, не гарантированно корректно загрузится на новом клиенте — иногда всё нормально, иногда сервер крашится при загрузке карты, иногда карта грузится, но новые монументы не появляются (или появляются с артефактами) там, где их не было при генерации.
Что проверить перед тем как ставить карту:
- Дату генерации карты — большинство сайтов-генераторов показывают, на какой версии/патче Rust карта была создана. Чем ближе к твоей текущей версии сервера — тем безопаснее.
- Совпадение worldsize — если карта генерировалась под 4000, а ты пытаешься запустить сервер с worldsize 3500, скорее всего получишь ошибку или обрезанную карту.
- Официальные ежемесячные вайпы Rust — обычно после крупного обновления (первый четверг месяца) старые карты какое-то время могут работать некорректно, пока сайты-генераторы не пересоберут базу под новую версию. Если ты вайпаешься сразу после патча — подожди день-два и проверь, что сайт-генератор уже обновил карты под актуальную версию, либо сгенерируй свежую карту по seed на своём сервере (способ 1 всегда актуален, потому что использует твою же версию движка).
Если сомневаешься — протестируй карту сначала на тестовом/локальном инстансе сервера, а не сразу на боевом с игроками. Это дольше, но избавляет от сюрприза в духе «полсотни игроков зашли на вайп, а сервер крашится каждые пять минут».
Обязательный бэкап перед сменой карты
Повторю ещё раз, потому что это реально частая ошибка: смена карты (любым из двух способов) — это фактически полный вайп мира. Все постройки, лут, прогресс кланов на текущей карте будут потеряны безвозвратно, если карта после смены отличается от старой.
Перед тем как менять seed, worldsize или подключать levelurl, обязательно:
- Останови сервер штатно (через RCON-команду
server.saveи затемquit, а не просто убей процесс) — это гарантирует, что текущее состояние мира записано на диск целиком. - Скопируй папку с сохранениями (обычно
server/<идентификатор>/*.map,*.sav,*.dbрядом с конфигами) в отдельное место — на другой диск, в облако, куда угодно, лишь бы не в ту же директорию, которую перезапишет новая генерация. - Только после этого меняй параметры запуска и перезапускай сервер.
Если у тебя сервер арендован и панель управления хостинга умеет делать снапшоты — используй встроенный бэкап перед экспериментами с картой, это быстрее ручного копирования файлов по SFTP.
Автоматизация: смена карты по расписанию вайпов
Если ты планируешь регулярные вайпы (еженедельные или ежемесячные — стандартная практика для большинства PvP-серверов Rust), имеет смысл не менять seed вручную каждый раз, а прописать генерацию нового seed в скрипте автозапуска.
Пример логики в bash-обёртке перед стартом RustDedicated:
#!/bin/bash
NEW_SEED=$RANDOM$RANDOM
./RustDedicated -batchmode +server.seed $NEW_SEED +server.worldsize 4000 \
+server.hostname "My Rust Server" +server.port 28015 +rcon.port 28016 \
+rcon.password "changeme" +server.identity "myserver"
Каждый запуск скрипта будет генерировать новый случайный seed — удобно для еженедельного форс-вайпа, когда важна свежая карта, а не конкретная. Если же наоборот хочешь держать одну и ту же карту (например, любимую сгенерированную) на протяжении нескольких вайпов подряд, просто зафиксируй конкретное число seed в конфиге и не трогай его — тогда меняются только лут и постройки при вайпе базы данных, а рельеф карты остаётся тем же.
Для готовых карт с levelurl автоматизация чуть сложнее: нужно либо менять ссылку на новый файл карты в скрипте перед каждым вайпом, либо (что практичнее) держать одну хорошую карту и вайпать только через сброс сохранений, не трогая саму карту вообще — это тоже валидный подход, если карта нравится игрокам и менять её незачем.
Базовые параметры запуска и общая логика поднятия сервера подробно разобраны в статье как поднять сервер Rust с нуля — если ты ещё не настраивал автозапуск и systemd-юнит, начни оттуда.
Поднять сервер Rust за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Можно ли поменять карту без вайпа прогресса игроков?
Нет. Карта и мир в Rust жёстко связаны: другой seed, другой worldsize или другой файл .map означают новую генерацию местности, и весь текущий прогресс (постройки, лут, точки возрождения) теряется. Единственный способ сохранить прогресс — не менять карту.
Где брать готовые карты, если хочется конкретный рельеф?
Специализированные сайты-генераторы карт Rust (например, rustmaps.com) позволяют искать по размеру, seed, количеству монументов и скачивать готовый .map-файл. Также можно найти карты, которыми делится сообщество на форумах и в Discord-серверах, посвящённых администрированию Rust.
Что делать, если после установки карты сервер не стартует?
Первым делом проверь путь в server.levelurl — опечатка в пути или отсутствие прав на чтение файла самая частая причина. Дальше проверь совместимость версии карты с текущей версией Rust (см. раздел выше) и посмотри лог запуска сервера на конкретную ошибку загрузки карты.
Нужно ли ставить Oxide/uMod, чтобы работали кастомные карты?
Нет, смена карты — это встроенная функциональность самого Rust, никакие моды или фреймворки для этого не нужны. Oxide/uMod нужен, если ты дополнительно хочешь плагины (например, для управления вайпами, кастомных ивентов на монументах и так далее), но это отдельная задача.
Можно ли использовать карту, нарисованную вручную в редакторе?
Да, если у тебя есть .map-файл, созданный в редакторе карт (например, через RustEdit) — процесс подключения точно такой же: указываешь путь к файлу через server.levelurl. Главное — убедиться, что редактор совместим с версией игры на сервере.