Left 4 Dead

Left 4 Dead

54 ratings
Установка и настройка выделенного сервера [Windows]
By СТЕНОБИТКА
Пошаговое руководство от установки до запуска сервера и его модификация, согласно вашим предпочтениям

English version here
   
Award
Favorite
Favorited
Unfavorite
Предварительная настройка ПК
Во избежании любых ошибок при работе сервера необходимо установить следующее ПО:
Microsoft .NET Framework 4[download.microsoft.com]
Установить в зависимости от разрядности вашей ОС (оба устанавливать не нужно):
Microsoft Visual C++ 5-8-10-12-13-17 Hybrid Redist x86[drive.google.com] Microsoft Visual C++ 5-8-10-12-13-17 Hybrid Redist x86-x64[drive.google.com] Ветка на форуме oszone[forum.oszone.net]

! Важно
Если вы не установите указанное выше ПО, Вы можете столкнуться с ошибками связанными с падением сервера (например: падение сервера при смене карты без каких либо логов с ошибкой и др.)
Загрузка сервера
Скачиваем утилиту steamCMD:
Распаковываем утилиту в любую папку, например: C:\steamcmd
Запускаем steamcmd.exe и ждем пока утилита обновиться до последней версии



Загрузка сервера:

Вариант №1: Скачиваем сервер вручную вводя команды по очереди
login anonymous force_install_dir . app_update 222840 validate quit
Пояснения по командам:
login anonymous - входим на сервер без учетной записи force_install_dir - папка установки сервера (точка означает что сервер установится в папку с программой steamcmd и будет находиться в папке steamapps\common\) чтобы установить в другую папку нужно указать точный путь app_update 222840 validate quit - указывается ID сервера, команда validate запускает проверку файлов на соответствие оригинальных, команда quit закрывает steamcmd после скачивания сервера
Вариант №2: Создание скрипта для автоматического запуска установки сервера

В папке steamcmd создаем текстовый файл run.txt и вносим строку:
steamcmd +login anonymous +force_install_dir . +app_update 222840 +quit
Сохраняем файл, изменяем расширение с .txt на .bat у вас будет файл run.bat

Запускаем файл run.bat и ждем пока загрузится сервер



Когда сервер полностью загрузится, в консоли Вы увидите следующее:
Установка базовых модов и их настройка
После загрузки сервера приступаем к установке базовых модов которые будут основой сервера

METAMOD:
Загружаем metamod по одной из указанных ниже ссылок:
Для metamod версии 1.10 и выше необходимо дополнительно скачать файл metamod.vdf для Left 4 Dead по ссылке:
vdf[sourcemm.net]
Переходим по ссылке выше, в выпадающем списке выбираем Left 4 Dead и нажимаем кнопку Generate metamod.vdf



Сохраняем файл metamod.vdf он нам еще понадобится позже

SOURCEMOD:
Загружаем sourcemod по одной из указанных ниже ссылок:

Установка metamod и sourcemod на сервер:

Установка metamod:
Открываем корень папки сервера, переходим в папку ...\left4dead\ копируем содержимое архива metamod в папку ...\left4dead\addons\; в итоге у Вас в папке ...\addons\ будет папка ...\metamod\ и файл metamod.vdf, сюда же копируем наш файл metamod.vdf который мы создали на сайте metamod[sourcemm.net] (копируем с заменой)
Установка metamod завершена

Установка sourcemod:
Открываем корень папки сервера, переходим в папку ...\left4dead\ копируем содержимое архива sourcemod в папку ...\left4dead\addons\; в итоге у Вас в папке ...\addons\ будет папка sourcemod, а также в папке ...\left4dead\cfg\ будет папка ...\sourcemod\ с файлами конфигурации (о них я расскажу позже)
Установка sourcemod завершена

Первоначальная настройка модов:

Настройка metamod не требуется, поэтому переходим к настройке sourcemod

Настройка sourcemod

Добавление администратора на сервер:

Переходим по пути ...\left4dead\addons\sourcemod\configs\
Открываем файл admins_simple.ini и добавляем в самый конец строчку:
"STEAM_1:1:10869027" "99:z"
Пояснения:
Первые кавычки указывают на steam ID (в формате Steam2 ID) Вторые кавычки указывают на иммунитет и флаг, в примере выше указан root т.е. администратор с полными правами
По мимо steam ID, можно использовать IP адрес или Ник игрока (имеется возможность установить пароль, во избежании получения прав другим игроком с таким же ником)

Примеры:
"!127.82.30.105" "bce" "USER" "abc" "password"
Иммунитет присваивается в диапазоне от 0 до 99, т.е. администратор с меньшим числом может быть кикнут/забанен администратором с большим числом

Описание флагов:
"Резервирование" "a" //Резервирование cлотов "Общий" "b" //Проcтой администратор, флаг нужен для любого администратора "Кик" "c" //Выгонять игроков "Бан" "d" //Банить игроков "Снимать Бан" "e" //Удалять баны "Убивать" "f" //Убивать игроков "Смена Карты" "g" //Изменение карты "Квары" "h" //Изменение переменных (кваров) "Настройка" "i" //Изменение настроек "Чат" "j" //Специальные привилегии в чате "Голосование" "k" //Голосование "Пароль" "l" //Пароль сервера "удаленное управление" "m" //Удаленная консоль "Читы" "n" //Изменение sv_cheats и других команд "Рут" "z" //Полные права доступа

Чтобы узнать свой steam ID запускаем игру с ботами, нажимаем Esc, нажимаем ~ (тильду), открывается консоль, набираем status
status hostname: [Ваш_ник] version : 1.0.3.4 6830 insecure udp/ip : 192.168.0.23:27015 [] os : Windows Listen map : l4d_hospital01_apartment at ( 1974, 853, 494 ) players : 1 humans, 0 bots (4 max) (not hibernating) (unreserved) # userid name uniqueid connected ping loss state rate adr loopback# 2 1 "Ваш_ник" STEAM_1:1:10869027 00:32 33 0 active 30000 # 3 "Francis" BOT active # 4 "Louis" BOT active # 5 "Zoey" BOT active #end
Этот steam ID добавляем в файл admins_simple.ini указывая иммунитет и флаг

Можно пойти по более сложному пути, узнать steam ID на сайте:
Steam Calculator[steamdb.info]
Используйте любой другой сайт, я лишь привожу пример одного сайта, не сочтите за рекламу

В левое поле вставляем свой ID профиля или ссылку на профиль


Будет что-то вроде этого https://steamproxy.net/id/76561198969735404/ нажимаем кнопку "Get disappointed in your life"

В итоге вы получите информацию по вашему профилю, как на примере ниже:



Поле Steam2 ID указан на скриншоте выше, и есть ваш steam ID

На этом мы завершили добавление администратора на сервер
Начальная настройка сервера
На данном этапе у нас имеется готовый сервер, который требуется предварительно настроить:

Создание скрипта для запуска сервера в режиме консоли
Создаем в корне сервера файл RUN.txt, открываем его и добавляем строчку:
@echo off cls echo Protecting srcds from crashes... title srcds.com Watchdog :srcds echo (%time%) srcds started start /wait /high srcds.exe -console -game left4dead +map l4d_vs_hospital01_apartment echo (%time%) WARNING: srcds closed or crashed, restarting... goto srcds
Сохраняем и изменяем расширение на .bat, получается файл RUN.bat

Пояснения:
console - сервер запускается в режиме консоли game - собственно наша игра Left 4 Dead map - текущая карта
Обратите внимание, в зависимости от режима игры необходимо правильно указывать карту

Примеры:
Для режима "Кооператив": l4d_hospital01_apartment Для режима "Сражение": l4d_vs_hospital01_apartment Для режима "Выживание": l4d_sv_lighthouse
Пояснения:
Карты для кооперативного прохождения: l4d_xxxxx01_xxxxx Карты для режима сражения (содержат "vs"): l4d_vs_xxxxx01_xxxxx Карты для режима выживания (содержат "sv"): l4d_sv_xxxxxx

Настройка server.cfg:
Этот файл является основным конфигурационным и с него читаются настройки при запуске и смене карты на сервере

Переходим по пути ...\left4dead\cfg\ создаем текстовый файл server.txt открываем его и вносим строки:
hostname "Имя_сервера" //Название сервера rcon_password "password" //Пароль для управления сервером (RCON) sv_lan "1" //1-интернет+локальная сеть, 0-локальная сеть mp_gamemode "versus" //Режим игры (coop,survival,versus) z_difficulty "hard" //Сложность (easy/normal/hard/impossible) sv_allow_lobby_connect_only "0" //Разрешить подключаться к серверу напрямую

Сохраняем изменения в файле, изменяем расширение .txt на .cfg, должен получится файл server.cfg

Так же в этом файле могут содержаться общепринятые квары и квары плагинов (об этом поговорим позже)

На этом начальная настройка сервера завершена
Запуск сервера
На данном этапе у нас есть настроенный сервер готовый к запуску.
Чтобы запустить сервер запускаем RUN.bat, запустится консоль и в ней будет отображаться вся информация о сервере:



После запуска сервера доступны следующие команды:
stats - статистика сервера (использование ЦП, FPS, количество клиентов и др.) status - статус сервера (подробная информация о сервере: имя сервера, версия и сборка сервера, IP сервера, тип ОС, текущая карта и информация о клиентах) version - версия и сборка сервера exit - перезапуск сервера

Проверим правильно ли установлены metamod и sourcemod:

набираем в консоли:
meta а затем sm



Таким образом если сервер в консоли показывает информацию так как на скриншоте выше, установка модов правильная, если вы получаете unknown command, значит вы не правильно установили мод(ы), необходимо вернуться к пункту "Установка базовых модов и их настройка"

По мимо основных команд meta и sm, доступны другие команды, которые указаны на скриншоте выше (о них я расскажу позже)
Запуск сервера и клиента на одном ПК
На самом деле запуск сервера и клиента на одном компьютере не желателен, в плане использования больших ресурсов компьютера и стабильности сервера. Но если нет еще одного компьютера под рукой, будем использовать один и тот же компьютер для установки, настройки плагинов, а так же тестирования внесенных изменений

! Важно
Обычное поведение при попытке запустить сервер и игру на одном ПК: игра может не запустится либо сервер выдаст ошибку или не запустится вовсе.

Есть решение :)

Создаем ярлык на файл left4dead.exe (главный файл игры), обычно путь к игре по умолчанию:
C:\Program Files (x86)\Steam\steamapps\common\left 4 dead\left4dead.exe
Помещаем ярлык на рабочий стол, открываем свойства, в поле "Объект" добавляем строку после закрывающих кавычек:
[пробел]appid 500 -steam -novid
Пояснения:
appid 500 -ID игры Left 4 Dead в стиме -steam - указывает что игра запускается якобы через стим -novid - пропуск видеороликов (не обязательно)
Нажимаем ОК

! Важно
Чтобы игра запускалась без ошибок, должен быть запущен стим клиент (в любом случае без него Вы не запустите игру)

Теперь можно попробовать запустить сервер и клиент (игру) одновременно. Не забываем запускать игру с ярлыка который мы настроили:



Рекомендации:
  • Для удобства тестирования сервера изменяем квар sv_lan "1" в файле server.cfg на "0" для тестирования сервера внутри сети, во избежания присоединения нежелательных клиентов на сервер или установить пароль на вход, выбор за Вами
  • Запускайте игру в оконном режиме основываясь на размерах и разрешении вашего монитора, так вам будет удобно проводить мониторинг консоли сервера не отрываясь от тестирования сервера
Установка плагинов
Плагины для metamod:
на сайте metamod[sourcemm.net] на форуме alliedmods[forums.alliedmods.net]
Плагины для sourcemod:
на сайте sourcemod[sourcemod.net] на форуме alliedmods[forums.alliedmods.net]
Так же не забудьте пройтись по форуму не одобренных плагинов:
на форуме alliedmods[forums.alliedmods.net]

! Важно
Для просмотра форума Вам необходимы минимальные знания английского языка, а так же не забывайте просмотреть все комментарии к плагину, т.к. можно пропустить полезные советы, исправления багов а так же новые версии плагинов (к сожалению не все авторы обновляют шапку и чтобы найти новую версию плагина приходится пролистывать более 100 коментариев, что не всегда удобно)

Установка плагинов для sourcemod:

Структура sourcemod
Путь по умолчанию ...\left 4 dead\addons\sourcemod\
  • configs - папка конфигурационных файлов
  • gamedata - папка для файлов *.games.txt используемые плагинами
  • logs - папка для логов sourcemod
  • plugins - папка плагинов
  • translations - папка хранения языковых фалов плагинов
  • ...\left 4 dead\cfg\sourcemod - папка с конфигурационными файлами плагинов

Рассмотрим установку на примере плагина "SuperVersus:"
страница плагина[forums.alliedmods.net]
Переходим по ссылке, пролистываем до конца поста, кликаем по Get Plugin, загружается файл l4d_superversus.smx копируем файл в папку plugins путь по умолчанию:
...\left4dead\addons\sourcemod\plugins\
Запускаем сервер файлом RUN.bat, ждем полной загрузки, закрываем сервер. Возвращаемся в папку сервера, переходим по пути:
...\left4dead\cfg\sourcemod\
Находим файл l4d_superversus.cfg, открываем его и приступаем к редактированию под Ваши нужды.

Структура cfg фалов генерируемых для настройки плагинов
(по строкам сверху вниз):

1. Описание квара
2. Значение по умолчанию
3. Минимальное значение квара
4. Максимальное значение квара
5. Сам квар с значением

Пример конфигурационного файла l4d_superversus.cfg

// Change Difficulty // - // Default: "0" // Minimum: "0.000000" // Maximum: "1.000000" director_auto_difficulty "0" // Infected spawning rate Multiplier (multi*(survivors-4)). Requires director_auto_difficulty 1 // - // Default: "0.25" // Minimum: "0.000000" // Maximum: "1.000000" director_ci_multi "0.25" // SI HP Multiplier (multi*(survivors-4)). Requires director_auto_difficulty 1 // - // Default: "0.00" // Minimum: "0.000000" // Maximum: "1.000000" director_si_hpmulti "0.00" // In coop, spawn 1 more SI per extra player? Requires director_auto_difficulty 1 // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" director_si_more "1" // Delay in seconds added to z_ghost_delay_max for SI bots spawning in versus // - // Default: "5" director_si_more_delay "5" // Tanks HP Multiplier (multi*(survivors-4)). Requires director_auto_difficulty 1 // - // Default: "0.25" // Minimum: "0.000000" // Maximum: "1.000000" director_tank_hpmulti "0.25" // Once a player connects, 2: Put in random team, 1: Show teammenu, 0: Do nothing // - // Default: "2" // Minimum: "0.000000" // Maximum: "2.000000" l4d_autojoin "2" // Allow extra first aid kits for extra players. 0: No extra kits. 1: one extra kit per player above four // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_extra_first_aid "0" // Max amount of infected (will not affect bots) // - // Default: "4" // Minimum: "4.000000" // Maximum: "24.000000" l4d_infected_limit "12" // Should we clear Lobby reservation? (For use with Left4DownTown extension ONLY) // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_killreservation "1" // 3: Enable teammenu & commands, 2: commands only, 1: !infected,!survivor,!join only, 0: Nothing // - // Default: "3" // Minimum: "0.000000" // Maximum: "4.000000" l4d_management "2" // Respawn alive when joining as an extra survivor? 0: No, 1: Yes (first time only) // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_respawn_on_join "1" // Maximum amount of survivors // - // Default: "4" // Minimum: "1.000000" // Maximum: "24.000000" l4d_survivor_limit "12" // If player is afk on versus, 0: Do nothing, 1: Become idle, 2: Become spectator, 3: Kicked // - // Default: "1" // Minimum: "0.000000" // Maximum: "3.000000" l4d_versus_afk "1" // If less infected players than l4d_infected_limit in versus/scavenge, spawn SI bots? // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" l4d_versus_si_more "1"

Чтобы Вы не запутались, какой плагин создал этот или другой конфигурационный файл, в начале .cfg файла указывается какой плагин создал этот файл:
// This file was auto-generated by SourceMod (v1.9.0.6132) - Этот файл был создан Соурсмодом (версия) // ConVars for plugin "l4d_superversus.smx" - Квары для плагина суперверсус
И так, после настройки конфигурационного файла сохраняем его, запускаем сервер и начинаем тестировать плагин.

Чтобы проверить правильно ли работает плагин и/или загружен ли он, в консоли пишем sm plugins list
sm plugins list [SM] Listing 17 plugins: 01 "Admin File Reader" (1.9.0.6132) by AlliedModders LLC 02 "Admin Help" (1.9.0.6132) by AlliedModders LLC 03 "Admin Menu" (1.9.0.6132) by AlliedModders LLC 04 "Anti-Flood" (1.9.0.6132) by AlliedModders LLC 05 "Basic Ban Commands" (1.9.0.6132) by AlliedModders LLC 06 "Basic Chat" (1.9.0.6132) by AlliedModders LLC 07 "Basic Comm Control" (1.9.0.6132) by AlliedModders LLC 08 "Basic Commands" (1.9.0.6132) by AlliedModders LLC 09 "Basic Info Triggers" (1.9.0.6132) by AlliedModders LLC 10 "Basic Votes" (1.9.0.6132) by AlliedModders LLC 11 "Client Preferences" (1.9.0.6132) by AlliedModders LLC 12 "Fun Commands" (1.9.0.6132) by AlliedModders LLC 13 "Fun Votes" (1.9.0.6132) by AlliedModders LLC 14 "Super Versus Reloaded" (1.8.15.5) by DDRKhat, Marcus101RR, and Merudo 15 "Player Commands" (1.9.0.6132) by AlliedModders LLC 16 "Reserved Slots" (1.9.0.6132) by AlliedModders LLC 17 "Sound Commands" (1.9.0.6132) by AlliedModders LLC
Как мы видим плагин загружен, если в консоли будет написано перед плагином "Error" или "Disabled" то это означает что плагин либо не правильно установлен либо имеет проблемы при загрузке, попробуем с помощью команды sm plugins refresh (перезапуск всех плагинов) на что консоль отвечает:
sm plugins refresh - команда на перезапуск всех плагинов [SM] The plugin list has been refreshed and reloaded. - ответ соурсмода об перезагрузке всех плагинов
После этого снова пробуем команду sm plugins list проверяем изменился ли статус плагина или же остался прежним.

! Важно
Если проблема с плагином остается можно порекомендовать загрузить его снова или поискать новую версию (возможно был баг и в новой версии это исправили, но бывает что проблема остается, можно поискать старую версию), а так же поискать альтернативный плагин со схожими функциями.

При установке большинства плагинов не должно возникать конфликтов между плагинами, однако бывает что схожие плагины (с похожими и/или использующими одинаковые квары/функции) могут конфликтовать, которые в свою очередь влияют на стабильность сервера.
И напоследок
Рекомендую также ознакомиться со списком кваров если вы планируете сделать очень модифицированный сервер (но будьте осторожны, некоторые квары в плагинах могут дублировать и/или выполнять похожие действия, при использовании коих могут быть конфликты, вылеты и падения сервера)
всего кваров/команд в списке: 4429

Пояснение по таблице кваров:
1. Сам "квар" 2. Идентификатор "квара" (т.е. cmd означает что квар является командой, и она может быть выполнена только через консоль, если там стоит цифра значит это переменная которая может быть изменена на необходимую 3. Ключ "квара" (т.е. ключ "cheat" означает что этот квар может очень сильно влиять на игровую обстановку, полное описание всех ключей я не нашел, поэтому не буду описывать остальные (возможно позже займусь) 4. Описание "квара" Примеры: addip : cmd : : Add an IP address to the ban list. bind : cmd : : Bind a key. buddha : 0 : , "sv", "cheat", "nf" : Survivors take damage but won't die
История изменений
15.08.2017
- первая версия руководства

04.01.2018
- исправление орфографических ошибок
- добавлен раздел "История изменений"
- поправил ссылки на VC++ Hybrid
- другие мелкие правки

14.10.2018
- поправил ссылки
- добавлен раздел "В планах"

06.02.2019
- исправление ошибок

09.03.2020
- исправление ошибок
В планах
* Добавить список и описание к самым популярным на мой взгляд плагинам для различных режимов
* Простейшие примеры по редактированию исходного кода sourcemod плагинов под свои нужды, и компиляция
От автора
Огромное спасибо людям которые делятся информацией, и которые всегда протянут руку помощи когда она необходима.

Это руководство я написал для тех кто хотел(а) создать свой личный сервер (может быть даже локальный, поиграть с друзьями), но не понял и/или не получилось что-то, в силу сложностей с английским языком (а может быть иных причин) бросил(а) это сложное дело.
На создание своего сервера у меня ушло непозволительно очень много времени (а именно на изучение материалов на форумах, попытки создать сервер и его хостинг, и т.д.)

Но с помощью этого руководства Вы потратите не так много времени!

В любом случае удачи в создании сервера!
100 Comments
titya43 5 Apr @ 9:44am 
спасибо большое
СТЕНОБИТКА  [author] 5 Apr @ 6:55am 
Корневая папка сервера это та папка в которую загрузился сервер
titya43 5 Apr @ 6:08am 
здраствуйте а что является корнем сервера?
titya43 5 Apr @ 5:58am 
а корнем сервара что является?
СТЕНОБИТКА  [author] 18 Oct, 2023 @ 5:49am 
Без понятия как это сделать, к данному руководству это никак не относится, спросите на форуме игры

steamproxy.net/app/500/discussions
СТЕНОБИТКА  [author] 17 Oct, 2023 @ 10:39am 
В разделе "Загрузка сервера" все то указано
СТЕНОБИТКА  [author] 17 Oct, 2023 @ 10:38am 
Что конкретно за ID нужно. не пойму, если ID игры - 500, если сервера 222840 (steampipe)
СТЕНОБИТКА  [author] 15 Oct, 2023 @ 3:10am 
Думаю стоит немного подкорректировать руководство, чтобы было понятно сразу и не вызывало много вопросов у многих. В ближайшее время будет обновление.
СТЕНОБИТКА  [author] 15 Oct, 2023 @ 3:09am 
Второе:
"ты просто скопировал с других сайтов..." не плохо было бы общаться более вежливо

Все изложенное в данном руководстве написано лично мной, большинство руководств по созданию сервера написано в похожей последовательности.

Если где то написано лучше, пожалуйста идите на те сайты и делайте по их описанию.