servarium :)
главная / журнал / Как настроить сервер Garry’s Mod на Windows: полное руководство

Как настроить сервер Garry’s Mod на Windows: полное руководство

·

В этом руководстве мы настроим выделенный сервер Sandbox на восемь игроков, затем разберём доступ через Интернет, установку контента и обслуживание.

Выделенный сервер работает отдельным процессом, независимо от игрового клиента Garry’s Mod. Оба процесса можно запустить на одном компьютере с Windows: сервер рассчитывает происходящее в игровом мире и обслуживает подключения игроков, а клиент выводит изображение и обрабатывает ваши действия. Закрытие игрового клиента не останавливает отдельный серверный процесс. Чтобы остальные игроки оставались на сервере, компьютер должен работать, сохранять подключение к сети и не переходить в спящий режим. Распределение задач между сервером и клиентом описано в документации Facepunch.

Основная инструкция использует ветку public, исполняемый файл srcds.exe, встроенный игровой режим sandbox и карту gm_construct. Сначала добейтесь устойчивой работы этой конфигурации, а затем добавляйте большую коллекцию Workshop или другой игровой режим.

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

1. Рекомендуемые характеристики компьютера

Компонент

Рекомендуемая конфигурация для сервера и клиента вместе

Обоснование

Операционная система

Поддерживаемая версия 64-разрядной Windows 11

Актуальная настольная система с достаточными возможностями для обоих процессов и их зависимостей.

Процессор

Современный настольный процессор как минимум с 6 ядрами и 12 потоками, с высокой производительностью на ядро

Даёт запас для игры, серверной симуляции, Steam и Windows. Одна только тактовая частота не определяет производительность.

Оперативная память

32 ГБ ОЗУ

Даёт дополнительный запас для сервера, клиентских аддонов, Windows и фоновых программ. Небольшая конфигурация с немногочисленными модификациями может работать с 16 ГБ, но здесь рекомендуется 32 ГБ.

Видеокарта

Игровая видеокарта с 8 ГБ собственной видеопамяти, совместимая с требованиями игры к DirectX

Обслуживает клиент и даёт дополнительный запас для пользовательских моделей и текстур. Официальная рекомендация Steam для клиента по-прежнему составляет 4 ГБ. Сервер не отрисовывает второе игровое окно.

Накопитель

SSD; не менее 100 ГБ свободного места после установки Windows и других программ

Место понадобится для клиента, отдельной серверной установки, загружаемого контента, журналов и резервных копий. Для больших коллекций и подключаемых игр потребуется больше.

Подключение к локальной сети

Проводное Ethernet, желательно гигабитное

Снижает нестабильность соединения, которую может вносить Wi-Fi при одновременном размещении сервера и игре.

Подключение к Интернету

Устойчивое широкополосное соединение; для описанного небольшого сервера ориентируйтесь на стабильную скорость отдачи не менее 20 Мбит/с

Компьютер отправляет обновления удалённым игрокам. Наряду со скоростью загрузки важны скорость отдачи, задержка и потери пакетов.

2. Подготовьте программы и папки

Для игры нужна учётная запись Steam с установленной Garry’s Mod. Установите или обновите клиент через Steam и запустите его хотя бы один раз. Пока выполняете основную инструкцию, используйте обычную основную версию клиента.

Разместите SteamCMD и выделенный сервер в отдельных папках:

Папка

Назначение

C:\SteamCMD

SteamCMD и его служебные файлы

C:\GModServer

Установка выделенного сервера

C:\GModBackups

Резервные копии, которые будут созданы далее

Создайте первые две папки в Проводнике. Если правила вашей системы требуют дополнительных разрешений для создания папок непосредственно на диске C:, получите нужное разрешение на этом этапе. Затем запускайте игру и сервер обычным способом.

Скачайте SteamCMD для Windows со [страницы SteamCMD на сайте Valve](https://developer.valvesoftware.com/wiki/SteamCMD), на которую ссылается инструкция Facepunch. Распакуйте содержимое steamcmd.zip в C:\SteamCMD. После распаковки исполняемый файл должен находиться по адресу C:\SteamCMD\steamcmd.exe.

SteamCMD загружает сервер независимо от установленного игрового клиента. Для установки сервера Garry’s Mod доступен анонимный вход, поэтому приведённым ниже командам не нужен пароль от вашей личной учётной записи Steam.

При создании файлов .bat, .cfg и .lua включите отображение расширений в Проводнике. В Windows 11 выберите Вид → Показать → Расширения имён файлов. В окне «Сохранить как» Блокнота укажите тип Все файлы, введите полное имя файла и сохраните обычный текстовый файл. Убедитесь, что вместо server.cfg не получилось server.cfg.txt.

3. Скачайте выделенный сервер из основной ветки

Откройте Командную строку (cmd.exe). Вставьте всю команду одной строкой:

bat

"C:\SteamCMD\steamcmd.exe" +force\install\dir "C:\GModServer" +login anonymous +app\update 4020 -beta public validate +quit

При первом запуске SteamCMD обновит собственные файлы, затем загрузит и проверит сервер. Дождитесь сообщения об успешной установке приложения 4020 и завершения работы SteamCMD. Проверьте наличие C:\GModServer\srcds.exe и папки C:\GModServer\garrysmod.

Порядок параметров выбран намеренно: force_install_dir задаётся до login. Facepunch указывает такой порядок как один из способов устранения проблем с установкой и обновлением. 4020 — это идентификатор загрузки выделенного сервера. Явное указание -beta public также возвращает установку в основную ветку, если ранее использовалась бета-версия: простое удаление параметра бета-ветки не обязательно сбрасывает сохранённый выбор.

Храните сервер отдельно от клиентской папки Steam и установок других игр.

4. Создайте начальную конфигурацию

Создайте файл C:\GModServer\garrysmod\cfg\server.cfg со следующим содержимым:

hostname "My Garry's Mod Server"

sv_password ""

rcon_password ""

sv_cheats 0

sv_allowcslua 0

sv_allowdownload 0

sv_allowupload 0

log on

sbox_maxprops 100

sbox_maxragdolls 5

sbox_maxnpcs 5

sbox_maxvehicles 5

Это составленная автором начальная конфигурация с умеренными настройками для небольшого сервера Sandbox. Пустое значение sv_password разрешает вход без серверного пароля. Если сервер предназначен только для друзей, впишите между кавычками выбранный пароль для подключения. rcon_password задаёт отдельный пароль удалённого администрирования; пустое значение отключает доступ через RCON с парольной аутентификацией.

sv_cheats 0 отключает команды, защищённые флагом читов. sv_allowcslua 0 запрещает включение обычных клиентских консольных команд запуска Lua; полноценной системой защиты от читов эта настройка не является. Параметры загрузки и отправки файлов подходят для используемых здесь стандартной карты и контента Workshop. Они отключают устаревшую прямую передачу файлов; пересмотрите их, если целенаправленно настраиваете другой способ доставки контента. Facepunch описывает различия между Workshop, HTTP FastDL и прямой загрузкой с игрового сервера.

Значения sbox_max... ограничивают соответствующие типы объектов для каждого игрока при обычной работе Sandbox. Это пример рабочих лимитов, а не значения движка по умолчанию и не гарантия защиты от перегрузки. Игровые режимы и аддоны могут изменять порядок проверки ограничений.

Количество игровых мест, начальную карту, игровой режим и режим локальной сети оставьте в приведённых ниже сценариях запуска. В частности, Facepunch предупреждает, что установка режима LAN через server.cfg может происходить слишком поздно для первоначальной обработки подключений.

Для сервера, доступного через Интернет и физически размещённого в России, можно также добавить sv_location "ru". Если он находится в другой стране, используйте соответствующий двухбуквенный код. Этот параметр выбирает флаг в списке серверов, а не сетевой регион или правила маршрутизации.

5. Сначала проверьте подключение на том же компьютере

Создайте файл C:\GModServer\start_local.bat:

@echo off

cd /d "C:\GModServer"

srcds.exe -console -game garrysmod -port 27015 +sv_lan 1 +hide_server 1 +maxplayers 8 +gamemode sandbox +map gm_construct

pause

Запустите его двойным щелчком. Во время проверки не закрывайте серверную консоль. Такой запуск предназначен для проверки на самом компьютере и в локальной сети; сервер скрыт из интернет-списка. Токен входа для публичного сервера здесь не запрашивается.

Откройте Garry’s Mod через Steam. Чтобы консоль разработчика открылась при запуске, нажмите правой кнопкой мыши на игру в Steam, выберите Свойства и добавьте -console в поле Параметры запуска, сохранив уже нужные вам параметры. Facepunch описывает расположение этого поля.

Для уже запущенной игры Facepunch также указывает сочетание Shift+Esc, которое открывает консоль разработчика.

В консоли игрового клиента выполните:

connect 127.0.0.1:27015

127.0.0.1 означает этот же компьютер. Для такой проверки не нужна переадресация портов на роутере. Вы должны попасть на gm_construct и получить возможность создать объект и взаимодействовать с ним.

В консоли выделенного сервера выполните:

status

Убедитесь, что карта и число игроков соответствуют вашей проверке. Для остановки сервера введите:

quit

Команда pause оставляет окно пакетного файла открытым после завершения работы сервера, чтобы вы могли прочитать сообщение об ошибке. Автоматический перезапуск после сбоя она не выполняет.

6. Создайте токен входа для сервера, доступного через Интернет

Откройте в браузере [страницу управления игровыми серверными учётными записями Steam](https://steamcommunity.com/dev/managegameservers) и войдите в аккаунт. На нём должна быть Garry’s Mod; аккаунт не должен быть ограниченным, заблокированным или иметь блокировку сообщества, а привязанный телефонный номер должен соответствовать требованиям Steam. Сверьтесь с требованиями, показанными на самой странице.

Создайте серверную учётную запись с App ID 4000 и примечанием, по которому сможете узнать этот сервер. Скопируйте Game Server Login Token — GSLT, то есть токен входа игрового сервера. Для каждого одновременно работающего сервера нужен собственный токен. GSLT и ключ Steam Web API — разные вещи.

Создайте файл C:\GModServer\start\server.bat:

@echo off

setlocal

cd /d "C:\GModServer"

set "GMOD_GSLT="

set /p "GMOD_GSLT=Paste this server's GSLT and press Enter: "

if not defined GMOD_GSLT (

echo No GSLT supplied. Server was not started.

pause

exit /b 1

)

srcds.exe -console -game garrysmod -port 27015 +sv_lan 0 +hide_server 0 +maxplayers 8 +gamemode sandbox +sv_setsteamaccount "%GMOD_GSLT%" +map gm_construct

pause

При запуске сценарий попросит ввести настоящий токен, поэтому файл можно скопировать без подстановки фиктивного GSLT в команду запуска. Введённый токен виден в консоли; его также могут увидеть процессы или администраторы, имеющие возможность просматривать командную строку работающего процесса. Защищайте его соответствующим образом. Не публикуйте журналы или снимки экрана с токеном. Steam прямо предупреждает, что передавать GSLT третьим лицам нельзя.

Запускайте этот сценарий после остановки сервера, открытого через start_local.bat. Не запускайте оба сервера на одном порту. Сценарий интернет-сервера задаёт sv_lan 0 до загрузки карты. Сервер без GSLT получает пониженный приоритет в списке серверов; неверный или просроченный токен может помешать запуску. Использование одного токена несколькими серверами может приводить к отключениям игроков.

После смены пароля Steam токены могут стать недействительными. При необходимости сгенерируйте новый токен на странице управления серверными учётными записями.

7. Разрешите игровой трафик в брандмауэре Windows

Для обычной доверенной домашней сети установите у активного подключения Ethernet или Wi-Fi сетевой профиль Частная сеть. Оставьте брандмауэр включённым.

Откройте Windows PowerShell от имени администратора и один раз выполните эту однострочную команду:

New-NetFirewallRule -DisplayName "GMod Server UDP 27015" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 27015 -Program "C:\GModServer\srcds.exe" -Profile Private

Правило разрешает входящий UDP-трафик этому исполняемому файлу на указанном порту. Если компьютер должен сохранять профиль «Общедоступная сеть», используйте вместо этого -Profile Public. Профиль Private описывает сетевое подключение самого компьютера и сам по себе не ограничивает адреса удалённых отправителей локальной сетью. Для управляемого доменного профиля Domain действуют соответствующие административные политики. Microsoft описывает эти поля правила и поведение профилей.

Стандартные порты сервера Source выполняют разные задачи:

Порт

Назначение в этой конфигурации

Что нужно сделать

UDP 27015

Игровой трафик; обычные запросы к серверу Source используют игровой сетевой адрес и порт

Разрешить в брандмауэре Windows и переадресовать для доступа через Интернет.

TCP 27015

Удалённая консоль SRCDS — RCON

Не переадресовывать в начальной конфигурации, где пароль RCON не задан.

Для размещения одного такого сервера не нужно переадресовывать все клиентские порты Steam. SteamCMD и Steam также необходим обычный исходящий доступ для аутентификации и загрузки файлов. Если ваша сеть ограничивает исходящий трафик, обратитесь к документации Steam о необходимых портах.

Если позднее включите удалённый RCON, задайте ему сложный уникальный пароль и разрешайте доступ к TCP-порту только тем администраторам, которым он нужен, желательно через доверенное частное соединение. Локальная серверная консоль уже позволяет управлять сервером без открытия RCON в Интернет.

8. Настройте роутер для доступа через Интернет

Сначала определите текущий локальный IPv4-адрес компьютера. В Командной строке выполните:

ipconfig

Найдите IPv4-адрес в разделе активного адаптера Ethernet или Wi-Fi. Не используйте данные отключённых адаптеров и посторонних виртуальных интерфейсов. Также запишите основной шлюз этого адаптера: обычно это адрес роутера.

В настройках DHCP или резервирования адресов роутера закрепите найденный локальный адрес за компьютером с сервером. Тогда новое назначение адреса через DHCP не перенаправит трафик по правилу на другое устройство.

Найдите раздел Port Forwarding, Virtual Servers или NAT Forwarding — «Переадресация портов», «Виртуальные серверы» или аналогичный раздел. Создайте следующее правило, заменив пример адреса фактическим закреплённым адресом вашего компьютера:

Поле в настройках роутера

Значение

Имя правила

GMod

Внешний порт / WAN

27015

Внутренний порт / LAN

27015

Внутренний IP-адрес / устройство

Компьютер с сервером, например 192.168.1.50

Протокол

UDP

Правило включено

Да

Например, у TP-Link соответствующий раздел может называться Advanced → NAT Forwarding → Virtual Servers/Port Forwarding. У других производителей названия отличаются. Направляйте трафик на локальный адрес компьютера, а не на основной шлюз или публичный адрес. Сохраните и примените правило.

Для обычной переадресации IPv4 роутер должен получать пригодный для этого публичный IPv4-адрес. Сравните его адрес WAN/Internet с внешним IPv4-адресом, определяемым для вашего подключения. Адрес WAN из диапазонов 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 или общего диапазона 100.64.0.0–100.127.255.255 указывает на дополнительный уровень NAT либо CGNAT.

Если при двойном NAT оба роутера находятся под вашим управлением, настройте переадресацию на обоих или соответствующим образом настройте вышестоящее устройство. Если внешний NAT находится у провайдера, запросите услугу публичного IPv4 с разрешёнными входящими подключениями. Статический публичный адрес удобен, но не обязателен, если доступен динамический публичный адрес и переадресация работает. DDNS помогает отслеживать смену адреса, однако не создаёт входящий маршрут через CGNAT.

9. Отдельно проверьте подключение на самом компьютере, по LAN и из Интернета

Оставьте сервер, запущенный через start_server.bat, работающим и проверьте подключения в таком порядке:

1. С этого же компьютера: выполните connect 127.0.0.1:27015 в клиентской консоли.

2. С другого компьютера в локальной сети: подключитесь к закреплённому IPv4-адресу компьютера с сервером. Для приведённого выше примера команда выглядит так:

connect 192.168.1.50:27015

3. Из внешней сети: попросите игрока с другим подключением к Интернету соединиться с вашим текущим публичным IPv4-адресом, добавив к нему :27015. Подставьте реальный адрес в ту же команду connect. Если задан пароль для входа, передайте его отдельно.

Если вы задали sv_password, перед командой connect введите в клиентской консоли команду password, а после неё — пароль для входа в обычных двойных кавычках. Так задаётся пароль, который передаёт клиент, а не изменяется конфигурация сервера.

Проверка извне важна: роутер без NAT loopback может не позволять обращаться к собственному публичному адресу из локальной сети, хотя внешние игроки подключаются успешно. Играя дома, используйте локальный адрес сервера.

Чтобы посмотреть локальный UDP-сокет, выполните в PowerShell при работающем сервере:

Get-NetUDPEndpoint -LocalPort 27015 | Select-Object LocalAddress,LocalPort,OwningProcess

Результат покажет адрес привязки, порт и идентификатор процесса-владельца. Сопоставьте этот PID с srcds.exe в разделе Details («Подробности») Диспетчера задач. Наличие записи подтверждает локальный сокет, но не прохождение внешнего трафика через брандмауэр и роутер.

Test-NetConnection -Port 27015 проверяет TCP, а не UDP. Поэтому сайт проверки портов, работающий только с TCP, может показывать закрытый порт при исправном игровом подключении. Практически значимая сквозная проверка — настоящее подключение Garry’s Mod из внешней сети.

Если прямое подключение работает, но сервер не находится в списке, проверьте GSLT, sv_lan 0, hide_server 0 и доступность игрового адреса и порта. Само по себе отсутствие записи в списке не доказывает, что серверный процесс не запустился.

10. Добавьте контент Workshop и другой игровой режим

Создайте небольшую коллекцию Steam Workshop с нужными аддонами и всеми их обязательными зависимостями. Сделайте её общедоступной или доступной по ссылке, чтобы сервер мог её прочитать. Актуальная инструкция Facepunch использует +host_workshop_collection; отдельный ключ Steam Web API для этого способа не требуется.

Идентификатор коллекции — число после id= в её адресе Steam. Он отличается от идентификатора отдельного аддона. Чтобы подключить коллекцию без фиктивного ID в примере, вставьте следующие строки непосредственно перед строкой `srcds.exe` в start_server.bat:

set "GMOD_COLLECTION="

set /p "GMOD_COLLECTION=Paste the Workshop collection ID and press Enter: "

Затем замените строку srcds.exe в этом сценарии на следующую:

srcds.exe -console -game garrysmod -port 27015 +sv_lan 0 +hide_server 0 +maxplayers 8 +gamemode sandbox +sv_setsteamaccount "%GMOD_GSLT%" +host_workshop_collection "%GMOD_COLLECTION%" +map gm_construct

При появлении запроса введите настоящий числовой ID коллекции. Дождитесь завершения загрузки и подключения аддонов. Обычно сервер проверяет обновления Workshop при запуске. Добавляйте аддоны небольшими группами и проверяйте подключение после каждого изменения.

Чтобы сменить игровой режим, замените sandbox настоящим именем папки режима из аддона. Чтобы сменить карту, замените gm_construct именем файла карты без .bsp. Названия и зависимости уточняйте в описании аддона: отображаемое название в Workshop не обязательно совпадает с именем папки. Эти параметры запуска описаны в основной инструкции Facepunch для сервера.

Установка аддонов на сервер и загрузка контента клиентами — отдельные задачи.resource.AddWorkshop указывает подключающимся клиентам скачать отдельный элемент Workshop; функция не устанавливает его на сервер и не принимает ID коллекции. Карты и соответствующим образом помеченные игровые режимы из серверной коллекции могут регистрироваться для загрузки автоматически, однако другой необходимый пользовательский контент иногда нужно зарегистрировать явно.

Для таких пакетов создайте файл C:\GModServer\garrysmod\lua\autorun\server\workshop_downloads.lua:

local contentItems = {

-- Insert individual Workshop content item IDs as quoted strings here.

}

for _, itemId in ipairs(contentItems) do

resource.AddWorkshop(itemId)

end

До перезапуска добавьте в таблицу каждый настоящий ID элемента с контентом: заключите его в кавычки и поставьте после него запятую. Приведённая пустая таблица — корректный код Lua; до заполнения она не вызывает загрузок. Указывайте необходимые модели, материалы и звуки. Аддонам, содержащим только Lua, такая дополнительная декларация загрузки не нужна. На получение файлов также могут влиять клиентские настройки загрузки.

Для новых установок Facepunch также описывает garrysmod\cfg\srcds_workshop_ids.txt как альтернативный список серверных аддонов, доступный начиная с версии 2026.09.22. Основным способом в этом руководстве остаётся коллекция.

11. При необходимости подключите контент других игр

Для начальной конфигурации со стандартной картой Counter-Strike: Source не нужна. Однако некоторые пользовательские карты и режимы требуют её ресурсов или ресурсов других игр. На компьютере, где работают и сервер, и клиент, можно указать серверу папку контента уже установленной игры. Остальным игрокам соответствующий контент тоже нужен на их собственных клиентах.

Для Counter-Strike: Source откройте в Steam Свойства → Установленные файлы → Обзор, найдите каталог установки и его подпапку cstrike. Если фактический путь совпадает со стандартным примером ниже, создайте или измените C:\GModServer\garrysmod\cfg\mount.cfg следующим образом:

"mountcfg"

{

"cstrike" "C:/Program Files (x86)/Steam/steamapps/common/Counter-Strike Source/cstrike"

}

Измените путь, если используется другая библиотека Steam или другая папка. Если подключаете несколько игр, сохраните существующий блок mountcfg и добавляйте записи внутрь него. Прямые косые черты в этой конфигурации использованы намеренно: такой формат поддерживается и встречается в примерах Facepunch. После изменения перезапустите сервер.

Если загружаете дополнительный игровой контент через SteamCMD, выбирайте для каждой игры отдельный каталог установки. Часть контента допускает анонимную загрузку, а для других игр требуется аккаунт, на котором они приобретены. Никогда не устанавливайте эти файлы поверх C:\GModServer: Facepunch предупреждает, что это может перезаписать серверные исполняемые файлы и библиотеки.

Розово-чёрная клетчатая поверхность указывает на отсутствующие материалы, а крупные объекты с надписью ERROR обычно означают отсутствующие модели. При таких проблемах проверяйте и подключение ресурсов на сервере, и контент клиента. Изменение настроек роутера недостающие ресурсы не исправит.

12. Предоставьте себе права администратора

Владение компьютером не делает подключённый клиент администратором выделенного сервера автоматически. Код аутентификации Facepunch присваивает статус superadmin владельцу сервера, созданного внутри игрового клиента, но подключение к выделенному серверу использует настроенную идентификацию через Steam.

Подключитесь к серверу и выполните status, чтобы найти свой SteamID. Для встроенного способа через users.txt используйте текстовый формат STEAM_0:..., указанный для игрока, а не адрес профиля и не 17-значный SteamID64.

Остановите сервер и откройте C:\GModServer\garrysmod\settings\users.txt. Следующий шаблон показывает правильный порядок имени и SteamID:

"Users"

{

"superadmin"

{

"Owner" "REPLACE_WITH_YOUR_STEAM_ID"

}

"admin"

{

}

}

Перед сохранением замените REPLACE_WITH_YOUR_STEAM_ID собственным аутентифицированным SteamID. Метка Owner нужна для удобства; учётную запись определяет именно SteamID. Сохраните уже существующие записи других уполномоченных пользователей. Перезапустите сервер, подключитесь заново и проверьте уведомление о присвоенной группе.

Так назначается встроенная группа пользователя. Доступные команды и меню администрирования зависят от игрового режима и установленного административного аддона. Добавляйте такие инструменты после проверки базовой конфигурации.

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

Перед копированием файлов и обновлением остановите сервер. Для простой полной резервной копии выполните в PowerShell следующие команды, предварительно убедившись, что для копии достаточно места:

$backupPath = "C:\GModBackups\GModServer-$(Get-Date -Format 'yyyyMMdd-HHmmss')"

New-Item -ItemType Directory -Path $backupPath -Force | Out-Null

Copy-Item -LiteralPath "C:\GModServer" -Destination $backupPath -Recurse

Copy-Item скопирует серверный каталог внутрь созданной папки с отметкой времени. Сохраняйте конфигурации, settings\users.txt, локальные аддоны, Lua-файлы и серверную папку garrysmod\data. Если игровой режим использует внешнюю базу данных, сделайте её резервную копию отдельно. Копирование серверной папки само по себе не сохраняет данные такого внешнего сервиса.

Для обычного обновления основной ветки выполните в Командной строке:

"C:\SteamCMD\steamcmd.exe" +force_install_dir "C:\GModServer" +login anonymous +app_update 4020 -beta public +quit

Для восстановления файлов или целенаправленной проверки целостности используйте установочную команду из раздела 3: она дополнительно содержит validate. Сохраняйте резервные копии собственных изменений, поскольку обновление и проверка могут заменять файлы, поставляемые вместе с игрой. После обновления перезапустите сервер и проверьте его работу. Контент Workshop обновляется отдельно при запуске сервера.

Если клиент сообщает, что сервер использует более старую или более новую версию, обновите соответствующую сторону и проверьте выбранную ветку. Facepunch указывает несовпадение версий как причину такой ошибки подключения.

Во время работы сервера исключите автоматический сон и гибернацию, запланируйте перезагрузки Windows на периоды обслуживания и не останавливайте серверный процесс. На ноутбуке проверьте действие при закрытии крышки. Блокировка сеанса Windows отличается от выхода из учётной записи или выключения компьютера.

Для необязательного запуска без участия пользователя сначала замените интерактивный запрос GSLT присваиванием, содержащим ваш настоящий токен, в защищённом локальном файле. Уберите заключительную pause; если используется коллекция, замените и её запрос фиксированным настоящим ID. Защищайте такой сценарий как файл, содержащий данные доступа.

Планировщик заданий Windows поддерживает запуск при входе пользователя и при включении системы. Настройте действие: программа C:\Windows\System32\cmd.exe, аргументы c C:\GModServer\start_server.bat, рабочая папка C:\GModServer. Используйте учётную запись с правами чтения и записи в каталог установки. Выберите нужный триггер и способ выполнения в пользовательском сеансе; не запускайте вторую копию вручную на том же порту. После перезагрузки проверьте задание именно под той учётной записью, для которой оно настроено.

В параметрах задания отключите ограничение продолжительности выполнения для постоянно работающего сервера: по умолчанию задание может быть остановлено через 72 часа. Также выберите поведение, при котором новый экземпляр не запускается, если задание уже выполняется. Эти настройки предотвращают случайную остановку по времени и повторный запуск из Планировщика; отдельно запустить вторую копию вручную они не мешают.

14. Ищите причину по этапу, на котором возникает проблема

Симптом

Что проверить и сделать

Окно пакетного файла закрывается или показывает ошибку

Прочитайте сообщение в окне, оставленном открытым командой pause. Проверьте путь установки, наличие srcds.exe, расширения файлов и токен. Восстанавливайте файлы только после сохранения собственных изменений.

Подключение с того же компьютера не работает

Убедитесь, что сервер загрузил карту и работает на порту 27015. Проверьте UDP-сокет и PID его владельца. Остановите дублирующие экземпляры.

Подключение с самого компьютера работает, а по LAN — нет

Проверьте IPv4 активного адаптера, путь программы и сетевой профиль в правиле брандмауэра, а также изоляцию клиентов Wi-Fi.

По LAN подключение работает, а извне — нет

Проверьте адрес назначения UDP-переадресации, закреплённый адрес, WAN и публичный IPv4, вышестоящий NAT, CGNAT и ограничения провайдера. Проверяйте из внешней сети.

Прямое подключение работает, но сервер отсутствует в списке

Проверьте действительность GSLT, hide_server, режим LAN и доступность запросов к серверу.

Игроков отключает с кодом ошибки Steam 6

Убедитесь, что два работающих сервера не используют один GSLT.

Пользовательская карта не находится

Проверьте загрузку и подключение её аддона, а также точное имя файла .bsp без расширения в команде запуска.

Игроки видят клетчатые поверхности или модели ERROR

Проверьте их контент Workshop и необходимые подключённые игры, а также соответствующие ресурсы на сервере.

Проблемы начались после установки аддонов

Удалите последние добавления и повторите проверку стандартной конфигурации. Параметры Facepunch -noaddons и -noworkshop временно отключают соответствующие источники аддонов. Во время такой проверки используйте стандартную карту.

Возникают ошибки нехватки памяти, хотя свободная ОЗУ ещё есть

Различайте нехватку общей ОЗУ и ограничение адресного пространства процесса. Сократите набор контента и проверьте разрядность установленного исполняемого файла.

Во время активной игры задержки испытывают все

Измерьте загрузку процессора сервера, потребление памяти и исходящий трафик при ваших реальных объектах, NPC и аддонах. Сначала уменьшите нагрузку или число игроков, затем рассматривайте обоснованные изменения настроек.

В серверной консоли команда find ищет команды и переменные, доступные в установленной сборке. Например:

find sbox_max

Так можно посмотреть доступные ограничения Sandbox. Facepunch предупреждает, что большой исторический список cvarlist обновляется редко. Поэтому значения по умолчанию из этого списка не используются здесь как актуальные рекомендации.

На начальном этапе оставьте стандартный тикрейт — частоту обновления серверной симуляции. В документации Facepunch указано значение по умолчанию около 66,67 тика в секунду. Повышение тикрейта увеличивает запрашиваемую частоту расчётов; универсальным решением нехватки процессорных ресурсов или высокой нагрузки от аддонов оно не является.

Прежде чем открывать сервер для всех, прочитайте правила операторов серверов Facepunch и размещённую там ссылку на правила хостинга.

15. Итоговая проверка готовности

Сервер готов для вашей группы, когда сценарий интернет-запуска завершает инициализацию, GSLT принимается, загружается нужная карта, а игрок с другого интернет-подключения может войти и нормально взаимодействовать с игровым миром. Убедитесь, что пароль для входа и права администратора работают как задумано, новый клиент получает необходимый контент, а резервную копию остановленного сервера можно найти и восстановить.

Наконец, проведите обычную для вашего сервера игровую сессию, одновременно играя на компьютере-хосте. Следите в Диспетчере задач за продолжительной высокой загрузкой процессора и потреблением памяти, сравнивайте поведение локального и удалённых клиентов. Увеличивайте лимит игроков только после успешной проверки под такой нагрузкой. Первый запуск подтверждает, что сервер запускается; полноценная игровая сессия показывает, хватает ли ресурсов компьютеру, который обслуживает и сервер, и клиент.

Читать дальше