TeaHost

обновлено 5 мин чтения

Как создать сервер Garry’s Mod: гайд

Поднимаем сервер Garrys Mod через SteamCMD: контент CS:S, server.cfg, GSLT-токен, коллекция аддонов из Мастерской, порт 27015 и настройка гейммода

Кратко

Сервер Garry's Mod ставится через SteamCMD (App ID 4020), к нему докачивают контент CS:S (App ID 232330) и подключают его в garrysmod/cfg/mount.cfg, иначе вместо текстур будут розовые шашки. Для публичного списка нужен GSLT с App ID 4000 в +sv_setsteamaccount, аддоны подтягиваются через +host_workshop_collection, в server.cfg обязательно sv_allowcslua 0, а открыть нужно UDP 27015.

Свой сервер Garrys Mod — это не только совместная песочница, но и вся экосистема гейммодов: TTT, Prop Hunt, Murder, DarkRP. Поднимается он на движке Source через srcds, и там есть три вещи, которые новички стабильно пропускают: контент Counter-Strike: Source, GSLT-токен и коллекция Мастерской. Без них сервер либо стоит в розовых текстурах, либо не пускает игроков вовсе. Разберём всё по порядку.

Настройка сервера Garrys Mod через SteamCMD и панель управления

Что нужно серверу Garrys Mod по ресурсам

Source — движок старый и нетребовательный по современным меркам, но аддоны меняют картину радикально.

  • 2 ГБ RAM — чистая песочница или TTT на 16 слотов;
  • 4 ГБ — гейммод со сборкой аддонов на 32 слота;
  • 6–8 ГБ — DarkRP с сотней аддонов и большой картой.

Процессор целиком однопоточный: srcds использует одно ядро под игровой тик, и добавление ядер не поможет. Смотрите на частоту, а не на количество. Диск — 6 ГБ под сам сервер плюс столько же под контент CS:S и аддоны.

Установка через SteamCMD

App ID сервера Garry's Mod — 4020 (так в официальной инструкции Facepunch).

код
steamcmd +force_install_dir /opt/gmod +login anonymous +app_update 4020 validate +quit

Сразу за ним — контент Counter-Strike: Source, App ID 232330. Он нужен потому, что большинство карт и моделей в GMod ссылаются на текстуры CS:S. Без них игроки увидят классические розово-чёрные шашки вместо стен.

код
steamcmd +force_install_dir /opt/css +login anonymous +app_update 232330 validate +quit

Дальше содержимое подключается через mount.cfg в garrysmod/cfg/:

код
"cstrike"    "/opt/css/cstrike"

Проверить, что сработало, легко: зайдите на карту gm_construct и посмотрите на текстуры. Если чисто — контент подключён.

Запуск и параметры

Базовая строка запуска:

код
./srcds_run -game garrysmod -console -usercon \
  +maxplayers 32 \
  +gamemode sandbox \
  +map gm_construct \
  +host_workshop_collection 000000000 \
  +sv_setsteamaccount ВАШ_GSLT

Разберём неочевидное.

+sv_setsteamaccount — GSLT-токен, регистрируется в Game Server Account Management с App ID 4000. Без него сервер будет виден только в локальной сети и не попадёт в публичный список. Токен привязан к аккаунту и может быть отозван за нарушения, так что делитесь им осторожно. Логика та же, что и в других играх Valve, — процедура получения подробно описана в статье как получить GSLT-токен.

+host_workshop_collection — ID коллекции Мастерской. Это удобнее, чем перечислять аддоны поштучно: собираете коллекцию в Steam (публичную или по ссылке), вставляете её номер, и сервер сам скачивает и подключает всё содержимое при старте. Отдельный ключ Steam Web API (-authkey) для этого по документации Facepunch не нужен. Клиентам автоматически отдаются только текущая карта и гейммод из коллекции; остальные аддоны, которые должны скачать игроки, помечают через resource.AddWorkshop.

Конфиг server.cfg

Файл лежит в garrysmod/cfg/server.cfg и читается при старте карты.

код
hostname "TeaHost | Sandbox"
sv_password ""
rcon_password "длинный_пароль"
sv_lan 0
sv_region 3

sv_allowcslua 0
sv_allowupload 0
sv_allowdownload 0

sv_gravity 600
sv_maxvelocity 4000
sv_airaccelerate 100

net_maxfilesize 64
sv_downloadurl "https://ваш-домен/fastdl/"

Три строки, которые ставят на любом публичном сервере: sv_allowcslua 0 закрывает исполнение клиентского Lua (иначе любой желающий запустит скрипт на сервере), rcon_password — обязательно длинный и уникальный, sv_region 3 для Европы правильно распределяет сервер в списке.

sv_downloadurl — отдельная тема. Раздача контента через сам игровой порт медленная, и при подключении игрок минуту смотрит на полоску загрузки. FastDL — это обычный веб-сервер, откуда клиент качает файлы напрямую; при работающем FastDL загрузка идёт в разы быстрее.

Порты

Классика Source: UDP 27015 под игру, он же под query.

код
ufw allow 27015/udp
ufw allow 27015/tcp

TCP 27015 нужен для RCON. Если планируете управлять сервером удалённо — открывайте оба, но RCON-пароль тогда должен быть по-настоящему сложным. Сменить порт можно флагом -port 27016.

Гейммоды и аддоны

Гейммод задаётся параметром +gamemode при запуске и должен лежать в garrysmod/gamemodes/. Из Мастерской он подтянется автоматически, если входит в коллекцию.

Популярные варианты и их особенности:

  • sandbox — базовая песочница, ничего дополнительно не требует;
  • terrortown (TTT) — нужны карты с префиксом ttt_, гейммод ставится из Мастерской;
  • prop_hunt — лёгкий по нагрузке, отлично идёт на слабом железе;
  • darkrp — самый тяжёлый, требует отдельной настройки профессий, магазинов и админ-мода. Про него у меня есть подробный разбор: DarkRP сервер в Garry's Mod.

Аддоны, не выложенные в Мастерскую, кладутся папками в garrysmod/addons/. Структура внутри стандартная: lua/, materials/, models/. Распакованные аддоны сервер подхватывает при старте карты.

Админка нужна почти сразу. Классика — ULX вместе с ULib: ставятся из Мастерской, права раздаются командой ulx adduser <ник> superadmin из консоли.

Частые проблемы

Розовые текстуры. Не подключён контент CS:S. Проверьте mount.cfg и путь к cstrike — он должен указывать на папку с .vpk файлами.

Сервер не виден в списке. Нет GSLT-токена, либо он отозван, либо sv_lan стоит в 1. Проверять в этом порядке.

Аддоны из коллекции не качаются. Проверьте, что коллекция публичная или доступна по ссылке: приватную коллекцию srcds скачать не сможет.

Игроки долго заходят. Настройте FastDL. Раздача сотни мегабайт аддонов через игровой порт — это минуты ожидания.

Сервер лагает при большом онлайне. Смотрите, какой аддон грузит тик. Консольная команда lua_run вместе с профилировщиками из ULX помогает найти виновника; чаще всего это плохо написанные скрипты с таймерами на каждом тике.

Итог

Собрать сервер Garrys Mod — это установить srcds через app_update 4020, докачать контент CS:S и примонтировать его в mount.cfg, получить GSLT, прописать коллекцию Мастерской в строке запуска, закрыть sv_allowcslua и поднять FastDL. Дальше остаётся выбрать гейммод и раздать права админам.

Если хочется пропустить возню с srcds и монтированием контента, готовый сервер поднимается из панели — тарифы посмотрите здесь. Про выбор между своим VPS и специализированным хостингом есть отдельный разбор: VPS или игровой хостинг.

ПоделитьсяTelegramVK
Все статьи рубрики