Как поднять сервер SA-MP: пошаговая инструкция
Если гуглил «как поднять SA-MP сервер» и попадал на гайды десятилетней давности с битыми ссылками на файлы — это нормально, сам через это проходил. SA-MP (San Andreas Multiplayer) — старый мод для GTA San Andreas, который живёт своей отдельной жизнью уже больше пятнадцати лет, и часть материалов в сети просто устарела вместе с доменами, откуда раньше качали сервер. Разберём по шагам, где реально взять файлы, как их настроить и запустить так, чтобы сервер пережил перезагрузку VPS.
Содержание
Системные требования: сколько ресурсов реально нужно
SA-MP — один из самых нетребовательных мультиплеерных модов, которые вообще встречаются в аренде серверов. Сам движок эмулирует только сетевой протокол и синхронизацию игроков, никакой честной физики или рендера на сервере не происходит — это не GTA-клиент, а отдельный демон.
Минимум, с которого можно стартовать — 1 ГБ RAM, этого достаточно для небольшого DM-режима или тестового гейммода на 10-20 слотов. Дальше нагрузка растёт в первую очередь не от числа игроков, а от сложности Pawn-скрипта гейммода:
| Сценарий | RAM | vCPU | Игроков |
|---|---|---|---|
| DM/FFA, простой гейммод | 1 ГБ | 1 | до 30 |
| RP-гейммод (LS-RPG-подобный) без БД | 2 ГБ | 1-2 | до 60 |
| RP с MySQL-плагином и большой экономикой | 2-4 ГБ | 2 | 60-100+ |
| Крупный проект с NPC-ботами | 4 ГБ+ | 2-4 | 100+ |
Это ориентир, а не результат замера — конкретный расход памяти сильно зависит от того, сколько таймеров, циклов и SQL-запросов крутит гейммод на каждом такте. RP-скрипты на базе SA-MP:MP или самописных фреймворков с активным использованием y_ini/MySQL могут заметно выйти за эти цифры при большом онлайне. Диск в SA-MP почти не нагружается — сервер занимает считаные сотни мегабайт вместе со скриптами, SSD тут не критичен, но лишним не будет для быстрого старта.
Важный нюанс: официальный бинарник сервера — 32-битный, даже на современных 64-битных дистрибутивах. Про это ниже отдельно, это частая причина, почему сервер вообще не запускается.
Скачивание сервера: почему не через Steam и не через SteamCMD
Первое, что нужно понять: SA-MP — это НЕ Steam-приложение и не DLC к GTA San Andreas в Steam. Это отдельный сторонний мод, который распространяется собственными архивами через официальный сайт и сообщество, поэтому steamcmd +app_update тут не сработает — такого app id просто не существует.
Официальный источник — sa-mp.com и его форум, но у проекта давняя история нестабильности: разработка ядра фактически остановилась на версии 0.3.7 ещё в середине 2010-х, а сам сайт периодически уходил в даунтайм и переезжал. Прежде чем качать что попало по первой ссылке из поиска, стоит свериться с актуальным адресом на официальном форуме или в известных community-репозиториях (например, архивы на GitHub, которые хранят оригинальные release-архивы 0.3.7-R1/R2 с контрольными суммами).
Для Linux нужен архив вида samp037svr (иногда встречается под именем samp03zsvr для более старых билдов) — внутри лежит:
samp03svr— бинарник сервера;samp-npc— бинарник для ботов (NPC);announce— утилита для регистрации в списке серверов;server.cfg— конфиг;- папки
gamemodes/,filterscripts/,scriptfiles/,plugins/,npcmodes/.
Скачиваем и распаковываем на VPS:
mkdir -p ~/sampserver && cd ~/sampserver
wget https://files.sa-mp.com/samp037svr.tar.gz
tar -xvzf samp037svr.tar.gz
chmod +x samp03svr samp-npc announce
Если конкретная ссылка на files.sa-mp.com не отвечает — это тот самый случай нестабильности официального хостинга, ищи актуальное зеркало на форуме или в проверенных community-архивах. Отдельно стоит упомянуть open.mp — активно развивающийся форк-преемник, совместимый с гейммодами SA-MP на уровне Pawn-скриптов, но с живой поддержкой и без 32-битных костылей. Если классический SA-MP кажется слишком архаичным для нового проекта — присмотрись к нему, но в этом гайде разбираем именно оригинальный SA-MP.
Поднять сервер SA-MP за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверСтруктура файлов и базовая конфигурация server.cfg
Конфиг сервера — простой текстовый файл server.cfg в корне, без YAML и вложенности, читается построчно при старте. Открываем и правим:
nano ~/sampserver/server.cfg
Минимальный рабочий набор:
echo Executing Server Config...
lanmode 0
rcon_password смени_на_сложный_пароль
maxplayers 50
port 7777
hostname Мой первый SA-MP сервер
gamemode0 grandlarc 1
filterscripts
announce 1
query 1
weburl sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0
logtimeformat [%H:%M:%S]
Разберём то, что чаще всего путает новичков:
rcon_password— обязательно смени со значения по умолчанию, иначе сервер за пару дней найдут ботом-сканером и завалят rcon-командами (кик всех игроков, смена гейммода и так далее — rcon даёт полный доступ).gamemode0 grandlarc 1— основной гейммод и число повторов после завершения раунда (для большинства постоянных RP/FreeRoam-режимов ставят большое число, например999999, чтобы не перезапускался).grandlarc— демо-гейммод, который идёт в комплекте с сервером, для реального проекта тут будет имя твоего.amx-файла без расширения.filterscripts— список дополнительных скриптов через пробел (напримерfilterscripts admin gates), они грузятся поверх основного гейммода и не сбрасываются приgmx(перезапуске гейммода).announce 1— регистрирует сервер в общем списке серверов SA-MP, чтобы его было видно через встроенный браузер серверов в игре.query 1— включает ответы на запросы статуса (для мониторинга и списка серверов); без него внешние трекеры не увидят онлайн.stream_distanceиstream_rate— дистанция и частота стриминга объектов/игроков клиентам, дефолтные значения обычно не трогают без явной причины (агрессивное занижение экономит трафик, но игроки видят объекты позже).
Запуск сервера через samp03svr
Прежде чем запускать, на свежем 64-битном Linux почти гарантированно словишь ошибку вида error while loading shared libraries: libstdc++.so.6: cannot open shared object file — потому что samp03svr собран как 32-битный бинарник. Ставим совместимость:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32stdc++6 lib32z1 lib32gcc-s1
На CentOS/RHEL-семействе это будет glibc.i686 и libstdc++.i686 через yum/dnf. Дальше запускаем из директории сервера:
cd ~/sampserver
./samp03svr
Если всё правильно настроено, в консоли появится баннер SA-MP и строка про успешную загрузку гейммода. Сервер занимает терминал переднего плана — для постоянной работы нужен screen или tmux, иначе процесс умрёт вместе с закрытием SSH-сессии:
screen -S samp
cd ~/sampserver && ./samp03svr
Отключиться от сессии без остановки сервера — Ctrl+A, потом D. Вернуться обратно — screen -r samp. Лог сервера пишется в server_log.txt в той же папке — туда стоит смотреть в первую очередь, если сервер падает или гейммод не грузится (например, при ошибке компиляции .amx).
Pawn-скрипты: компиляция и подключение гейммода
Логика сервера пишется на языке Pawn и компилируется в байт-код .amx, который и подключается через gamemode0 в конфиге. В архиве сервера уже есть компилятор pawncc (для Linux — бинарник без расширения, тоже 32-битный, права на исполнение та же история, что и с samp03svr):
chmod +x pawno/pawncc
cd gamemodes
../pawno/pawncc mygamemode.pwn
На выходе рядом с .pwn появится mygamemode.amx — именно его имя (без расширения) прописывается в gamemode0 mygamemode 1. Если компиляция падает с ошибками про неизвестные функции — почти всегда не хватает инклюда: базовый a_samp.inc идёт в комплекте, но популярные фреймворки (streamer, sscanf, ZCMD, MySQL) требуют отдельно скачанных .inc-файлов в папку pawno/include/.
Готовые гейммоды под SA-MP искать стоит по актуальным community-репозиториям (SA-MP форум, GitHub) — за годы жизни мода накопилось множество открытых RP- и DM-скриптов разного качества, от простых DM-заготовок до крупных RP-фреймворков вроде наследников старого Los Santos RPG. Перед использованием чужого гейммода в проде всегда стоит прочитать код хотя бы по диагонали — часть старых скриптов содержит уязвимости SQL-инъекций через необработанный пользовательский ввод, это давняя болячка экосистемы.
Filterscript-ы компилируются точно так же и кладутся в filterscripts/, а их имена (без .amx) перечисляются в строке filterscripts конфига через пробел.
Порты и firewall
Дефолтный порт SA-MP — 7777, и в отличие от многих движков на движке Source, здесь один и тот же UDP-порт используется и для игры, и для query-запросов (списки серверов, мониторинг), отдельный query-порт в современных версиях не нужен.
На VPS с белым IP (а это почти всегда так при прямой аренде, без NAT) проброс — это открытие порта на firewall самой машины:
sudo ufw allow 7777/udp
sudo ufw allow 7777/tcp
sudo ufw reload
TCP на 7777 в SA-MP используется реже (в основном сам движок работает поверх UDP), но некоторые панели мониторинга и веб-статусы дергают его через TCP-запрос, поэтому лучше открыть оба. Если поднимаешь несколько серверов на одном хосте, каждому нужен свой порт (7778, 7779 и так далее) — задаётся строкой port в server.cfg.
Проверить, что сервер реально слушает порт:
ss -tulnp | grep 7777
Если строки нет — сервер либо не стартовал (смотри server_log.txt), либо упал на этапе загрузки гейммода из-за ошибки в .amx.
Автозапуск через systemd
Ручной запуск в screen-сессии работает, но после ребута VPS или падения процесса сервер сам не поднимется. Заводим systemd-юнит:
sudo nano /etc/systemd/system/samp.service
Содержимое:
[Unit]
Description=SA-MP Dedicated Server
After=network.target
[Service]
User=samp
WorkingDirectory=/home/samp/sampserver
ExecStart=/home/samp/sampserver/samp03svr
Restart=on-failure
RestartSec=10
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
Как и с большинством игровых серверов на VPS, лучше не гонять процесс под root — заведи отдельного пользователя samp и держи файлы сервера в его домашней директории. Регистрируем юнит:
sudo systemctl daemon-reload
sudo systemctl enable --now samp.service
sudo systemctl status samp.service
Логи после этого удобнее смотреть через journalctl -u samp -f — так видно и историю до текущей SSH-сессии, а не только вывод screen. Важный нюанс: samp03svr по умолчанию читает конфиг и стартует в интерактивном консольном режиме — под systemd это работает штатно (демон не требует TTY для чтения server.cfg), но rcon-команды из консоли сервера в таком режиме недоступны, администрировать нужно будет через игровой rcon (F8 в клиенте) или через фильтрскрипт с админ-командами.
Поднять сервер SA-MP за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Почему сервер не запускается с ошибкой про libstdc++.so.6?
Не хватает 32-битных библиотек совместимости — samp03svr собран как 32-битный бинарник даже на 64-битных системах. Ставь lib32stdc++6 и связанные пакеты, как описано в разделе про запуск.
Нужен ли клиент GTA San Andreas на самом сервере?
Нет, сервер — это отдельный демон, который эмулирует сетевой протокол. Игра нужна только клиентам, которые подключаются.
Что делать, если официальный сайт sa-mp.com недоступен?
Такое случается — у проекта давняя история нестабильного хостинга. Ищи актуальные зеркала архива 0.3.7 на форуме сообщества или в проверенных GitHub-репозиториях, сверяя контрольные суммы, если они указаны.
Чем open.mp отличается от классического SA-MP?
Это активно развивающийся форк-преемник с современным ядром и обратной совместимостью Pawn-гейммодов, но собственным, более стабильным дистрибутивом сервера. Если запускаешь новый проект с нуля, стоит присмотреться отдельно.
Почему после gmx (рестарт гейммода) сбрасываются переменные?
Это штатное поведение SA-MP — рестарт гейммода перезагружает весь скрипт с нуля. Данные, которые должны переживать рестарт (аккаунты, инвентарь), нужно хранить во внешнем хранилище — файлах через y_ini/dini или в MySQL через соответствующий плагин.