Как поднять сервер RAGE:MP: пошаговая инструкция
RAGE:MP — одна из самых живучих платформ для мультиплеера в GTA V: под неё до сих пор пилят RP-гейммоды, а сам сервер поднимается без Steam и без покупки лицензии — это отдельный дедик, который качается напрямую с сайта проекта. Ниже — рабочая последовательность: с чего начать на голом VPS, как не запутаться в conf.json и почему сервер молчит после первого запуска, если забыть про packages/.
Содержание
Системные требования
RAGE:MP-сервер сам по себе лёгкий — это не рендер GTA V, а координатор синхронизации между клиентами плюс Node.js-движок для скриптов. Нагрузку создают не столько ядра, сколько RAM под гейммод и онлайн:
- RAM: от 2 ГБ для теста и небольшого RP-гейммода на 20-30 слотов. Если ставите тяжёлый гейммод с базой данных (MySQL) и десятками ресурсов в packages/ — закладывайте 4 ГБ и выше.
- CPU: 2+ ядра. Синхронизация позиций и стрельбы в RAGE:MP считается на одном потоке Node.js, поэтому частота ядра важнее их количества.
- Диск: 5-10 ГБ достаточно под сам сервер, гейммод и логи. SSD не обязателен как для Rust, но ускоряет старт при большом количестве ресурсов в packages/.
- ОС: Ubuntu 20.04/22.04/24.04 LTS — под неё больше готовых гейммодов и меньше проблем с зависимостями Node.js.
- Отдельно от сервера: сама игра GTA V и RAGE:MP-лаунчер нужны только игрокам на их машинах. На сервере GTA V не устанавливается вообще — это ключевое отличие от связки "SteamCMD + игровые файлы", к которой все привыкли по другим тайтлам.
Скачивание сервера
Серверные файлы RAGE:MP качаются не из Steam, а напрямую с CDN проекта — заходите на rage.mp, раздел загрузок, и берите Linux-версию сервера (там же лежит и Windows-билд, если разворачиваете на Windows VPS). Актуальная прямая ссылка на момент написания:
mkdir -p ~/ragemp-srv && cd ~/ragemp-srv
wget https://cdn.rage.mp/updater/prerelease/server-files/linux_x64.tar.gz
tar -xzf linux_x64.tar.gz
Ссылка на CDN у RAGE:MP периодически меняется вместе с версией сборки — если wget вернул 403 или битый архив, сверьтесь с текущей ссылкой прямо на сайте rage.mp в разделе Download, там она обновляется вместе со сборкой.
После распаковки в папке появится бинарник ragemp-server, конфиг conf.json (может быть не сразу — некоторые сборки создают его только после первого запуска) и пустые папки packages/ и client_packages/. Права на исполнение бинарнику иногда нужно выставить вручную:
chmod +x ragemp-server
Поднять сервер RAGE:MP за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверНастройка conf.json
Это главный конфиг сервера — сюда идут порт, имя, лимит игроков и десяток служебных параметров производительности. Если файла нет — запустите сервер один раз (./ragemp-server) и сразу остановите Ctrl+C: он сам создаст conf.json с дефолтными значениями, дальше просто правьте его.
Минимальный рабочий набор полей:
{
"maxplayers": 100,
"name": "Мой RAGE:MP сервер",
"gamemode": "freeroam",
"stream-distance": 500.0,
"announce": true,
"bind": "0.0.0.0",
"port": 22005,
"csharp": false,
"language": "ru",
"url": "https://example.com",
"sync-rate": 40,
"max-ping": 300,
"disallow-multiple-connections-per-ip": false
}
Что важно понимать по ключевым полям:
| Поле | Назначение |
|---|---|
port | Основной порт сервера (UDP), по умолчанию 22005 |
bind | IP для прослушки. 0.0.0.0 — слушать на всех интерфейсах, нужно для VPS с публичным IP |
announce | true — сервер появляется в списке серверов лаунчера RAGE:MP, false — только по прямому IP |
gamemode | Строка-метка гейммода, показывается в браузере серверов; на загрузку ресурсов из packages/ она не влияет напрямую |
maxplayers | Лимит слотов — как и в других играх, не ставьте с запасом "на будущее", это лишняя нагрузка на синхронизацию |
stream-distance | Дистанция стриминга объектов/игроков в игровых единицах, 500 — стандартное значение для RP-серверов |
csharp | Включает загрузку C#-модуля (CLR-бридж) вместо/вместе с JS-гейммодами, нужен только если гейммод написан на C# |
sync-rate | Частота синхронизации сущностей в мс, по умолчанию около 40 — трогать имеет смысл только при явных лагах синка |
bind — частая грабля: если оставить дефолтный 127.0.0.1, сервер честно поднимется, но снаружи VPS будет недоступен вообще, хотя в логах всё выглядит нормально.
Гейммод и структура packages/
RAGE:MP не идёт с гейммодом "из коробки" — пустой packages/ означает, что сервер запустится, но зайти будет некуда: игрок заспавнится в пустом мире без интерфейса и команд. Сервер сам подхватывает каждую подпапку внутри packages/, у которой есть точка входа index.js (или C#-сборка, если включён csharp) — никакого отдельного реестра ресурсов, как в некоторых других платформах, вести не нужно.
Структура простого JS-гейммода:
packages/
freeroam/
index.js
package.json (опционально)
client_packages/
freeroam/
index.js
packages/ — серверная логика (спавн, команды, работа с БД), client_packages/ — то, что грузится и выполняется на стороне клиента (UI, CEF-браузеры, визуальные эффекты). Это два разных набора файлов, их легко перепутать местами при копировании чужого гейммода.
Для первого теста проще всего не писать логику с нуля, а взять готовый открытый фрирум-гейммод (например, freeroam-ресурсы с GitHub от сообщества RAGE:MP) и положить его содержимое в packages/ и client_packages/ соответственно. Дальше уже кастомизируете под свой RP или деатчматч-режим.
Если пишете свой гейммод — минимальный packages/freeroam/index.js для проверки, что всё грузится:
mp.events.add('playerJoin', (player) => {
player.outputChatBox('Добро пожаловать на сервер!');
player.spawn(new mp.Vector3(0, 0, 72));
});
После правки файлов в packages/ сервер нужно перезапускать полностью — горячей подгрузки ресурсов, как в некоторых других мультиплеер-платформах, здесь по умолчанию нет.
Первый запуск и проверка
Запускаем вручную из папки сервера, чтобы увидеть все ошибки сразу в консоли, а не потом в логе:
cd ~/ragemp-srv
./ragemp-server
В консоли должна появиться строка о загрузке пакетов из packages/ и о старте на указанном порту. Если гейммод не подхватился — проверьте, что index.js лежит именно в подпапке внутри packages/, а не прямо в корне.
Подключение со стороны игрока — через официальный лаунчер RAGE:MP (устанавливается поверх уже купленной GTA V): в списке серверов ищем по имени из name, либо добавляем сервер вручную по IP:port, если announce выключен.
Если клиент видит сервер в списке, но не может законнектиться — почти всегда дело в портах: игровой порт открыт не полностью (см. следующий раздел), либо на сервере всё ещё висит дефолтный bind: 127.0.0.1.
Проброс портов
RAGE:MP использует два порта с разными протоколами, и оба должны быть открыты снаружи:
| Порт | Протокол | Назначение |
|---|---|---|
22005 (значение из port) | UDP | Основной игровой трафик |
22006 (port + 1) | TCP | HTTP-запросы клиента к серверу (список ресурсов, CEF-контент) |
Если VPS с публичным IP без NAT, достаточно файрвола на самой машине:
sudo ufw allow 22005/udp
sudo ufw allow 22006/tcp
sudo ufw enable
Если хостинг держит инстанс за NAT — нужен проброс на уровне панели управления, одного ufw будет мало: пакеты просто не дойдут до внутреннего адреса машины. Проверить, что порт реально доступен снаружи, можно с другой машины: nmap -sU -p 22005 ВАШ_IP для UDP-порта либо любой онлайн-сканер портов.
Автозапуск и обновление
Ручной запуск в SSH-сессии умирает при обрыве соединения и не поднимается сам после ребута хоста — решение то же, что и для любого другого игрового сервера на Linux: systemd-юнит.
Создаём /etc/systemd/system/ragemp.service:
[Unit]
Description=RAGE:MP Server
After=network.target
[Service]
User=ragemp
WorkingDirectory=/home/ragemp/ragemp-srv
ExecStart=/home/ragemp/ragemp-srv/ragemp-server
Restart=on-failure
RestartSec=10
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
Перед этим стоит создать отдельного пользователя под сервер (не запускайте игровые процессы под root):
sudo useradd -m -s /bin/bash ragemp
sudo chown -R ragemp:ragemp /home/ragemp/ragemp-srv
Активация:
sudo systemctl daemon-reload
sudo systemctl enable ragemp
sudo systemctl start ragemp
Логи — через journalctl -u ragemp -f. Для обновления самого сервера (не гейммода) обычно просто перекачивают свежий архив с CDN и заменяют бинарник и системные файлы, не трогая packages/, client_packages/ и conf.json — так гейммод и настройки переживают апдейт платформы. Перед заменой файлов сервис стоит остановить: sudo systemctl stop ragemp.
Если планируете держать сервер долго и активно менять гейммод, посмотрите заодно на настройку автозапуска в статье про Rust и про Garry's Mod — принцип с systemd-юнитом и отдельным пользователем универсален для любого игрового сервера на Linux, не только для RAGE:MP.
Поднять сервер RAGE:MP за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Нужна ли на сервере лицензия GTA V или Steam-аккаунт?
Нет. GTA V и RAGE:MP-лаунчер нужны только игрокам на их компьютерах — сама игра на сервер не устанавливается, серверные файлы качаются отдельно с CDN проекта.
Почему сервер запускается, но в игре пусто, а команды не работают?
Почти всегда пустой или неправильно собранный packages/ — без гейммода с index.js сервер поднимает мир, но не даёт игроку ни спавна, ни интерфейса, ни команд.
Чем RAGE:MP отличается от FiveM и SA-MP?
Все три — сторонние мультиплеер-платформы для GTA-игр, но под разные версии игры и с разной архитектурой скриптинга: RAGE:MP и FiveM — под GTA V (у FiveM своя экосистема ресурсов и Lua/C#/JS), SA-MP и MTA:SA — под GTA San Andreas. Гейммоды между платформами несовместимы напрямую.
Можно ли писать гейммод на C#, а не на JS?
Да, через встроенный CLR-бридж — включается флагом "csharp": true в conf.json, но большинство готовых открытых гейммодов и туториалов в комьюнити всё же на JavaScript/Node.js.
Что делать, если игроки видят сервер в списке, но подключение обрывается?
Проверьте оба порта — часто открывают только UDP 22005 и забывают про TCP 22006, из-за которого не грузится HTTP-часть (CEF-контент, ресурсы клиента).