Свой сервер Garry’s Mod можно поднять двумя способами. Первый — прямо из меню игры: 5 минут, сервер живёт, пока вы сами в игре, и подходит, чтобы быстро собраться с друзьями на вечер в Sandbox. Второй — выделенный сервер через SteamCMD: он работает без запущенного клиента игры, круглые сутки, и его нужно один раз настроить — зато потом им можно управлять как полноценным DarkRP- или TTT-проектом с админкой и своими аддонами.
Ниже — пошагово оба варианта, а заодно порты, токен GSLT, server.cfg, доставка аддонов клиентам и разбор частых проблем вроде «сервер не виден в списке» или ERROR у игроков.
| Вариант | Кому подходит | Плюсы | Минусы | Проброс портов |
|---|---|---|---|---|
| Локальный (из меню) | Быстрая игра с друзьями на пару часов | Не требует установки, запускается за минуту | Живёт, пока вы в игре; грузит ваш ПК и канал | Нужен для игры через интернет (не для LAN) |
| Выделенный на своём ПК/сервере | Постоянный проект: DarkRP, TTT, комьюнити | Работает 24/7, полный контроль, свои аддоны и админка | Требует настройки, серый IP может помешать | Нужен, если сервер стоит дома за роутером |
| Аренда VPS / игрового хостинга | Те же задачи, но без своего железа и без проблем с IP | Белый IP, не занимает домашний канал, работает без вашего ПК | Ежемесячная стоимость, зависит от тарифа провайдера | Обычно уже открыт провайдером |
Способ 1. Локальный сервер из меню игры
Это тот же движок сервера, что и у выделенного, просто запущенный внутри вашего клиента Garry’s Mod. Подходит, чтобы собраться с друзьями без установки чего-либо лишнего.
- Запустите Garry’s Mod и выберите «Начать новую игру».
- Выберите карту (например,
gm_construct) и режим игры. - Поставьте число игроков больше 1 — именно это превращает одиночную игру в сервер, доступный другим.
- Задайте имя сервера и при желании пароль, выберите видимость — только по LAN или в интернете.
- Нажмите старт. Сервер поднимется, и вы окажетесь на нём как первый игрок.
Пригласить друзей проще всего через Steam: откройте оверлей, зайдите в профиль друга и выберите «Пригласить в игру» — Steam сам подставит нужный адрес и порт. Если играете не через приглашение, друзьям нужно знать ваш внешний IP и порт (по умолчанию 27015), а на вашем роутере — открыт проброс порта на этот же порт (подробнее — в разделе про порты ниже). Пошагово про сетевые нюансы такой игры — в статье про игру по сети с другом.
Ограничения локального сервера просты: он существует, пока вы не выйдете из игры или не свернёте её надолго, вся нагрузка (расчёт физики, сеть, отправка данных всем игрокам) ложится на ваш компьютер и ваш интернет-канал, а держать его постоянно включённым неудобно — компьютер должен работать без сна и без перезагрузок.
Способ 2. Выделенный сервер через SteamCMD
Выделенный сервер — это отдельный процесс srcds, который не привязан к запущенному клиенту игры. Его можно держать включённым постоянно на домашнем ПК, отдельном компьютере или арендованном сервере.
Что понадобится
Формально сервер запускается и на Windows, и на Linux — выбор обычно зависит от того, с какой ОС вам удобнее работать. Для Linux меньше накладных расходов на фоновые процессы, для Windows — привычнее интерфейс. Ресурсы ниже — ориентир, а не строгая норма: для Garry’s Mod (особенно DarkRP с десятками Lua-аддонов) важнее производительность одного ядра процессора, чем их количество, — движок Source слабо использует многопоточность.
| Размер сервера | Игроков | ОЗУ (ориентир) | ЦП |
|---|---|---|---|
| Маленький Sandbox/TTT | до 16 | от 2 ГБ | 2+ ядра, важна частота |
| Средний, с аддонами | 16–32 | от 4 ГБ | 4 ядра, высокая частота одного ядра |
| DarkRP с большим числом плагинов | 32+ | от 6–8 ГБ | 4+ ядра, максимально высокая частота |
Если сервер тормозит уже на этапе выбора железа — сначала посмотрите на количество и качество Lua-аддонов, а не только на характеристики. Это тот же принцип, что и с FPS в одиночной игре: разбор причин лагов и способов их убрать — в статье про производительность Garry’s Mod.
Установка SteamCMD и сервера
SteamCMD — консольная утилита Valve для загрузки серверных файлов без установки самой игры. Скачайте её с официальной страницы developer.valvesoftware.com и распакуйте в отдельную папку.
Запустите steamcmd.exe (или ./steamcmd.sh на Linux) и последовательно выполните:
login anonymous
force_install_dir C:\gmodserver
app_update 4020 validate
quit
Разберём команды: login anonymous — вход без привязки к личному аккаунту Steam (для загрузки серверных файлов аккаунт не нужен); force_install_dir — папка, куда встанет сервер (укажите её до команды установки); app_update 4020 validate — собственно загрузка файлов сервера Garry’s Mod (у сервера свой App ID — 4020, отличный от App ID самой игры 4000) с проверкой целостности файлов; quit — выход из SteamCMD. Всю строку можно передать и одной командой при запуске: steamcmd.exe +login anonymous +force_install_dir C:\gmodserver +app_update 4020 validate +quit.
Загрузка займёт от нескольких минут до получаса в зависимости от канала. После завершения в указанной папке появится структура сервера, включая исполняемый файл srcds.exe (на Linux — srcds_run) и папку garrysmod.
Батник или скрипт запуска
Сервер запускается из командной строки с набором параметров. Проще всего сохранить команду в файл start.bat рядом с srcds.exe:
@echo off
srcds.exe -console -game garrysmod +maxplayers 16 +map gm_construct +gamemode sandbox
pause
На Linux аналогичный запуск выглядит так:
./srcds_run -console -game garrysmod +maxplayers 16 +map gm_construct +gamemode sandbox
| Параметр | Что делает |
|---|---|
-console | Открывает консоль сервера в отдельном окне |
-game garrysmod | Указывает, что запускается именно Garry’s Mod, а не другая Source-игра |
-port 27016 | Меняет порт сервера — нужно, если на машине запущено несколько серверов одновременно |
+map gm_construct | Карта, с которой стартует сервер |
+gamemode sandbox | Игровой режим (sandbox, darkrp, terrortown и т. д.) |
+maxplayers 16 | Максимум игроков одновременно |
+host_workshop_collection ID | Коллекция Мастерской, которую сервер скачает и подключит у себя |
+sv_setsteamaccount TOKEN | Токен GSLT — см. раздел ниже |
Параметры с одним дефисом (-console, -game, -port) — это флаги запуска движка, а с плюсом (+map, +gamemode, +maxplayers и другие) — консольные команды, которые выполняются сразу при старте, как если бы вы вписали их в консоль вручную.
server.cfg
Основной файл настроек сервера лежит по пути garrysmod/cfg/server.cfg (если его нет — создайте текстовым редактором). Он выполняется автоматически при каждом запуске. Пример с пояснениями:
// Имя сервера в списке серверов
hostname "Мой сервер Garry's Mod"
// Пароль для входа на сервер (оставьте пустым, если сервер публичный)
sv_password ""
// Пароль администратора для удалённого управления через RCON — обязательно смените
rcon_password "замените_на_сложный_пароль"
// Регион сервера для более точного отображения в браузере серверов
sv_region 255
// 0 — сервер виден в интернете, 1 — только по локальной сети
sv_lan 0
// Разрешить игрокам загружать на сервер свои спреи и файлы
sv_allowupload 1
// Разрешить скачивание карт/контента напрямую с сервера (медленно; для быстрой раздачи см. sv_downloadurl)
sv_allowdownload 1
// Адрес, откуда клиенты будут быстро скачивать карты и аддоны (FastDL), если он настроен
// sv_downloadurl "https://example.com/garrysmod/"
// Кастомная заставка загрузки (необязательно)
// sv_loadingurl "https://example.com/loading"
Строку sv_downloadurl имеет смысл раскомментировать только тогда, когда у вас реально есть отдельный веб-сервер с файлами карт и аддонов — это ускоряет скачивание контента игроками в разы по сравнению со встроенной раздачей. Если такого веб-сервера нет, оставьте раздачу через Мастерскую (см. раздел про аддоны ниже) — для большинства серверов этого достаточно.
Порты и видимость в списке серверов
По умолчанию Garry’s Mod-сервер слушает порт 27015: по UDP идёт основной игровой трафик (подключение игроков, обмен данными), по TCP — RCON, если вы им пользуетесь. Если планируете держать на одной машине несколько серверов сразу, каждому следующему задавайте свой порт (-port 27016, 27017 и так далее).
Чтобы сервер увидели другие игроки через интернет (не по LAN), нужно:
- В настройках роутера пробросить порт 27015 (UDP и, если используете RCON, TCP) на локальный IP компьютера с сервером.
- Разрешить
srcds.exeилиsrcds_runв брандмауэре Windows (или файрволе Linux) — точечно для этого процесса и порта, а не отключать защиту целиком. - Убедиться, что ваш внешний IP белый, а не серый. Серый IP (частый случай при CGNAT у мобильных операторов и части провайдеров) означает, что проброс портов на вашем роутере ничего не даст — снаружи до вашего роутера просто не достучаться напрямую. Решения — попросить провайдера выдать белый (выделенный) IP или перенести сервер на VPS/игровой хостинг, где белый IP уже есть по умолчанию.
Токен GSLT
GSLT (Game Server Login Token) — токен, который подтверждает Steam, что сервер официальный, а не подставной. Без него сервер хуже показывается в браузере серверов (Steam понижает серверы без токена в списке), поэтому для публичного сервера токен стоит создать сразу.
- Зайдите на steamcommunity.com/dev/managegameservers под своим аккаунтом Steam.
- Укажите App ID 4000 — это ID самой игры Garry’s Mod, а не серверных файлов (4020 используется только для загрузки через SteamCMD, для токена он не подходит).
- Впишите произвольную заметку, чтобы отличать сервер от других, и нажмите создание токена.
- Скопируйте полученный токен и добавьте в строку запуска:
+sv_setsteamaccount ВАШ_ТОКЕН.
Один токен — один работающий сервер одновременно: если запустить с тем же GSLT второй процесс, авторизацию получит только один из них.
Аддоны и карты на сервере
Чтобы игроки не заходили на сервер с чистой игрой и не видели ERROR вместо ваших карт и моделей, контент нужно доставить им автоматически — через Мастерскую.
Шаг первый — собрать нужные аддоны и карты в одну коллекцию Мастерской Steam (она должна быть публичной или доступной по ссылке, иначе сервер её не увидит) и указать её ID параметром +host_workshop_collection ID_КОЛЛЕКЦИИ в строке запуска. Сервер сам скачает и подключит содержимое коллекции. Но учтите: клиентам из коллекции автоматически скачивается только текущая карта, если она в коллекции есть.
Шаг второй — пометить остальные аддоны для скачивания игроками. Для этого в серверном Lua-скрипте, например в файле lua/autorun/server/workshop.lua, для каждого нужного аддона пишут строку resource.AddWorkshop("ID_аддона"). Альтернатива — попросить игроков подписаться на коллекцию сервера самостоятельно (ссылку обычно дают в описании сервера или на экране загрузки).
Более подробно про сам процесс установки модов на сервер и в клиент — в статье об установке аддонов на Гаррис Мод, а официальный механизм раздачи описан на wiki.facepunch.com.
Для больших серверов с тяжёлым контентом дополнительно применяют FastDL — раздачу файлов через отдельный веб-сервер по адресу из sv_downloadurl, но для старта хватает связки GSLT + Мастерская. Если после всех этих шагов игроки всё равно видят фиолетово-чёрную текстуру или недостающие модели, разбор причин и решение — в статье как убрать ERROR у игроков.
Игровой режим: Sandbox, DarkRP, TTT и другие
Режим задаётся параметром +gamemode в строке запуска: sandbox идёт в комплекте с сервером «из коробки», остальные — DarkRP, TTT (Trouble in Terrorist Town) и десятки менее известных — устанавливаются как обычные аддоны через Мастерскую или из официального репозитория проекта на GitHub, после чего название их папки указывается в +gamemode.
Для DarkRP отдельно стоит поставить аддон darkrpmodification — он выносит основные настройки режима (работы, зарплаты, цены, лимиты) в отдельные читаемые файлы конфигурации, так что их можно менять, не трогая исходный код самого DarkRP и не боясь потерять правки при обновлении режима.
Если делаете RP-сервер, обратите внимание на готовую карту rp_downtown_v4c_v2 и HUD для DarkRP — Elegant HUD, а также подборку работ (профессий) для DarkRP. Для TTT подойдёт карта ttt_rooftops_a2. Больше вариантов карт под любой режим — в разделе карт для Garry’s Mod.
Админка и управление сервером
Голой консоли обычно недостаточно для повседневной модерации — удобнее поставить админ-мод. Два самых распространённых варианта — связка ULX + ULib и SAM: оба дают внутриигровое меню, систему рангов и права разной степени доступа, разница в основном в интерфейсе и наборе дополнительных модулей, «лучшего» варианта здесь нет — выбирайте по удобству.
Права себе на только что поднятом сервере обычно выдаются либо через консольную команду самого админ-мода (например, назначение супер-админа первому подключившемуся), либо прямым редактированием файла со списком админов — процедура отличается у ULX и SAM, смотрите документацию конкретного аддона на странице его Мастерской.
Управлять сервером удалённо, не заходя в игру, позволяет RCON: подключаетесь консольным клиентом или через админ-мод, вводите пароль из rcon_password и получаете доступ к серверным командам. Базовый набор, который стоит знать:
| Команда | Что делает |
|---|---|
changelevel карта | Смена карты без перезапуска сервера |
kick имя_игрока | Выкинуть игрока с сервера |
banid время SteamID | Забанить игрока по SteamID на указанное время |
status | Список игроков онлайн, их пинг и SteamID |
Обновление и безопасность
Сервер обновляется той же командой, которой ставился: запустите SteamCMD и повторите app_update 4020 validate с тем же force_install_dir — утилита скачает только изменившиеся файлы. Делать это стоит после каждого крупного обновления самой игры, иначе клиенты с актуальной версией не смогут подключиться к устаревшему серверу.
- Регулярно бэкапьте папки
garrysmod/data(сохранения, данные аддонов, статистика DarkRP) иgarrysmod/cfg(все ваши настройки) — их проще всего скопировать целиком перед крупным обновлением или новым аддоном. - Не ставьте «слитые» (leak) версии платных аддонов из сомнительных источников — в переупакованный код нередко вшивают бэкдоры и скрытую отправку данных на сторонние сервера, что ставит под угрозу весь сервер и его администраторов.
- Задайте сложный, уникальный
rcon_password— открытый или слабый RCON остаётся одним из самых частых способов перехвата серверов Source-игр.
Частые проблемы
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Сервер не виден в браузере серверов | sv_lan выставлен в 1, порт не проброшен, нет GSLT | Добавить +sv_setsteamaccount, проверить sv_lan 0, перепроверить проброс порта 27015 |
| Друзья не могут подключиться напрямую по IP | Серый IP, закрыт файрвол, неверный порт | Узнать, белый ли у вас IP; открыть порт в брандмауэре; уточнить порт, если он изменён параметром -port |
| Вечная загрузка / «Retrying» | Не хватает пропускной способности канала, битый/недоступный контент Мастерской | Проверить коллекцию на актуальность, снизить число тяжёлых аддонов, рассмотреть FastDL |
| У части игроков ERROR или фиолетовые текстуры | Аддон не помечен на скачивание клиентами через resource.AddWorkshop | Добавить resource.AddWorkshop для каждого аддона с моделями и текстурами или дать игрокам ссылку на коллекцию; см. отдельный разбор в статье про ERROR |
| Сервер падает сразу при старте | Конфликт или ошибка в одном из Lua-аддонов | Посмотреть консоль сервера на ошибку в момент краша, временно отключить последний добавленный аддон и проверить снова |
Чек-лист запуска
- Сервер установлен через SteamCMD (
app_update 4020 validate), путьforce_install_dirзафиксирован. - Строка запуска содержит карту, режим, лимит игроков и, если нужно,
+host_workshop_collection. - Создан и вписан токен GSLT (
+sv_setsteamaccount), App ID при создании — 4000. - Настроен
server.cfg: имя, пароли (sv_password, сложныйrcon_password),sv_lan 0для игры через интернет. - Порт 27015 (UDP, и TCP при использовании RCON) проброшен на роутере и разрешён в брандмауэре.
- Проверено, белый ли внешний IP — если серый, учтён вариант с VPS/хостингом.
- Поставлен и настроен админ-мод (ULX/ULib или SAM), права выданы себе.
- Сделан первый бэкап
garrysmod/dataиgarrysmod/cfgперед добавлением аддонов.
Частые вопросы
Можно ли сделать сервер Garry’s Mod бесплатно?
Да. Сами серверные файлы и SteamCMD бесплатны, платить нужно только за само железо и трафик — свой компьютер и домашний интернет для этого подходят, если готовы держать его включённым и у вас белый IP.
Какой порт нужно открыть для сервера?
По умолчанию 27015: UDP — для игрового трафика, TCP — дополнительно, если пользуетесь RCON. Если на одной машине несколько серверов, у каждого следующего должен быть свой порт.
Зачем нужен GSLT и что будет, если его не создавать?
GSLT привязывает сервер к вашему аккаунту Steam и подтверждает, что это обычный легитимный сервер. Без токена сервер хуже ранжируется в браузере серверов, поэтому для публичного проекта его стоит создать сразу — это бесплатно и занимает пару минут.
Как заставить игроков автоматически скачивать мои аддоны?
Коллекция Мастерской в параметре +host_workshop_collection ставит аддоны на сам сервер, а клиентам автоматически скачивает только текущую карту. Чтобы игроки получили и остальные аддоны, пометьте каждый функцией resource.AddWorkshop("ID") в серверном Lua-скрипте или попросите игроков подписаться на коллекцию.
Сколько нужно оперативной памяти для сервера?
Для небольшого Sandbox или TTT на 16 игроков хватает 2 ГБ, для DarkRP с большим количеством плагинов и 30+ игроками разумнее закладывать 6–8 ГБ. Не менее важна частота (производительность одного ядра) процессора — движок Source слабо распараллеливается.
Почему друзья не видят мой сервер в списке?
Чаще всего дело в одном из трёх: включён режим только для LAN (sv_lan 1), порт не проброшен на роутере или закрыт файрволом, не создан GSLT. Проверьте по порядку эти три пункта.
Можно ли играть без проброса портов?
Локальный сервер по LAN — можно, если все играющие в одной сети. Для игры через интернет без проброса порта часто выручает приглашение через Steam-оверлей для локального сервера из меню игры, виртуальная локальная сеть или перенос сервера на VPS/хостинг с уже открытыми портами и белым IP.
Как поставить пароль на сервер?
В server.cfg задать sv_password "ваш_пароль" — сервер останется видимым в списке, но подключиться смогут только те, кто знает пароль. Для администрирования используется отдельный, обязательно другой пароль — rcon_password.