Выделенный сервер Left 4 Dead 2 загружает аддоны из файлов .vpk в left4dead2/addons/, и у каждого игрока должен быть установлен тот же VPK кампании, иначе он не сможет в неё играть - сервер не умеет передавать кампанию клиенту. Серверные функции - это другой стек: Metamod:Source, поверх него SourceMod, а под почти каждым современным плагином L4D2 - расширение left4dhooks. Для более чем четырёх выживших нужен L4DToolZ, чтобы снять ограничение движка на число игроков, плюс плагин multi-slot, который создаёт и снаряжает дополнительных выживших. Каждый из этих слоёв сам по себе надёжен. Ломается всё на стыках: два аддона с одним и тем же файлом скрипта, плагин, собранный под старый left4dhooks, обновление игры, которое ломает gamedata. В этом руководстве - система аддонов, стек плагинов, настройка большего числа игроков и конфликты, с которыми вы столкнётесь.
Аддоны, плагины и что где лежит#
В L4D2 смешаны два совершенно разных вида «модов», и путаница между ними - корень большинства проблем с настройкой.
| Вид | Файл | Куда кладётся | Кому нужен |
|---|---|---|---|
| Своя кампания | .vpk | left4dead2/addons/ | Серверу и каждому игроку |
| Аддон мутации или игрового режима | .vpk с modes/ и скриптами | left4dead2/addons/ | Серверу, обычно и игрокам |
| Серверный аддон только со скриптами | .vpk или отдельные файлы .nut | addons/ или scripts/vscripts/ | Только серверу |
| Косметический мод (скины, звуки) | .vpk | Собственная папка addons/ клиента | Только этому игроку |
| Плагин SourceMod | .smx | addons/sourcemod/plugins/ | Только серверу |
| Плагин или расширение Metamod | .so с .vdf или gamedata | addons/ | Только серверу |
И VPK-аддоны, и стек SourceMod живут в left4dead2/addons/ - выглядит беспорядочно, но работает: движок монтирует файлы .vpk и игнорирует папки, которых не понимает, а Metamod находит там же свой файл metamod.vdf.
Если базовый сервер ещё не настроен - установка, server.cfg, лобби и sv_search_key, - начните со статьи руководство по серверу Left 4 Dead 2, на которую опирается этот текст.
Установка VPK-аддонов и своих кампаний#
Кампания - это один или несколько файлов .vpk с картами, файлом миссии и часто своими моделями, звуками и скриптами. Установка на сервер - это копирование файлов:
- Остановите сервер.
- Загрузите файлы
.vpkвleft4dead2/addons/через файловый менеджер или SFTP. Подробности - в статье SFTP и файловый менеджер. - Запустите сервер и проверьте в консоли, что аддон смонтировался без ошибок.
- Найдите имя первой карты кампании - оно есть в файле миссии внутри VPK или в заметках автора - и проверьте его через
changelevel <map>.
Кампании из Workshop SteamCMD скачивает по app id игры:
$ steamcmd +force_install_dir /home/l4d2/server +login anonymous \ +workshop_download_item 550 <workshop_id> +quitЗагрузка попадает в собственную папку SteamCMD steamapps/workshop/content/550/<workshop_id>/, а не в папку addons игры, поэтому скопируйте .vpk туда и дайте ему понятное имя. Как этот кэш устроен в целом, объясняет статья моды Steam Workshop на выделенных серверах.
У игроков должна быть идентичная кампания. Они подписываются на тот же предмет Workshop - или вручную ставят тот же VPK - и перезапускают игру, чтобы он смонтировался. Если версии у сервера и игрока разные, игрока кикает или игра падает при загрузке карты. Выложите ссылку на коллекцию там, где общается ваша компания, и укажите, какая версия стоит на сервере.
Мутации и свои игровые режимы
Аддоны мутаций описывают игровой режим в файле modes/<name>.txt внутри VPK, обычно с VScripts, которые меняют Director. Когда аддон смонтирован, режим выбирается через mp_gamemode:
mp_gamemode coop// or a stock mutation or an addon mode by its name// mp_gamemode realism// mp_gamemode versusСтандартные значения - coop, realism, versus, survival и scavenge, плюс пронумерованные мутации Valve. Режим из аддона использует то имя, которое объявлено в его файле modes/, - смотрите описание аддона. Если задать режим, которого сервер не знает, он молча откатится на кооператив, и это выглядит как «мутация ничего не делает».
Конфликты аддонов и проблема скрипта Director#
Аддоны L4D2 не падают с шумом при конфликте. Они перезаписывают друг друга, и побеждает тот, что смонтирован последним. Почти всё вызывают два вида конфликтов:
- Один и тот же файл скрипта. Многие аддоны меняют AI Director, поставляя
scripts/vscripts/director_base_addon.nut. Победить может только одна копия, поэтому два аддона с этим файлом означают, что один из них молча отключён. Симптом - «этот аддон перестал работать, когда я поставил тот». - Один и тот же путь модели или звука. Два перекраса одного и того же оружия, две замены моделей выживших. Побеждает одна, и какая - зависит от порядка загрузки.
Порядок действий, который находит виновника:
- Уберите из
addons/всё, кроме тестируемой кампании и стека SourceMod. - Возвращайте оставшиеся VPK по два-три за раз, каждый раз проверяя.
- Когда что-то сломается, откройте последнюю пару инструментом для VPK и поищите пересекающиеся пути файлов.
Серверный аддон, который меняет Director, лучше заменить плагином SourceMod, делающим то же самое через left4dhooks, потому что плагины могут сосуществовать, а файлы VScript с одинаковым именем - нет.
sv_consistency 1 превращает несовпадение файлов в кик с именем файла вместо падения, а sv_pure определяет, могут ли игроки использовать свои версии файлов игры. Настройки pure в L4D2 мягче, чем в более новых играх на Source, и многие серверы сообщества оставляют sv_pure 0, чтобы игроки могли сохранить косметические моды. Соревновательные серверы обычно включают проверку согласованности, чтобы не допустить подмены моделей, из-за которой заражённых проще увидеть.
Установка Metamod:Source и SourceMod#
SourceMod даёт серверу L4D2 админов, голосования, статистику, дополнительные слоты и все соревновательные конфиги. Порядок фиксирован: сначала Metamod:Source, затем SourceMod, затем расширения, затем плагины.
left4dead2/addons/ metamod.vdf tells the engine to load Metamod metamod/ sourcemod/ configs/admins_simple.ini admins extensions/ left4dhooks and friends gamedata/ offsets that break on updates plugins/ .smx files logs/ errors live here campaign_one.vpk addons share the folderСкачайте сборки Metamod:Source и SourceMod для Linux с их официальных сайтов - ветку stable, если плагину не нужна dev, - и распакуйте обе в left4dead2/. Перезапустите сервер, затем проверьте из консоли сервера:
meta listsm versionsm plugins listsm exts listЕсли meta list показывает SourceMod, а sm exts list не показывает упавших расширений, стек работает. Админы прописываются в addons/sourcemod/configs/admins_simple.ini; модель флагов описана в статье флаги админов и иммунитет в SourceMod, и тот же файл с теми же флагами используется во всех играх на Source.
"STEAM_1:1:12345678" "99:z""STEAM_1:0:87654321" "bcdefjk"left4dhooks: расширение, которое нужно всем
Почти каждый современный плагин L4D2 зависит от left4dhooks - пары из расширения и плагина, которая открывает SourceMod внутренности игры: Director, появление танков и ведьм, состояние выживших, поведение заражённых. Оно заменило старые расширения Left 4 Downtown. Устанавливайте его из официальной темы или репозитория вместе с файлами gamedata и держите обновлённым: когда обновление L4D2 что-то сдвигает, gamedata left4dhooks обычно исправляют первой, и всё, что на ней построено, оживает.
Проверяйте требования плагина перед установкой. Плагин, написанный под left4dhooks, без него не загрузится, а ошибка в addons/sourcemod/logs/ назовёт отсутствующий native.
Плагины, которые стоит держать на кооперативном сервере
Приватному кооперативному серверу для компании друзей нужно совсем немного. Встроенные в SourceMod плагины уже покрывают большую часть: basecommands и adminmenu для киков, смены карт и cvars из меню sm_admin, basevotes для кика голосованием, когда админа нет рядом, и nominations с rockthevote, если ваша компания любит голосовать за следующую кампанию. Они поставляются с SourceMod, и их нужно лишь оставить включёнными.
Поверх этого добавления, которыми реально пользуются, делятся на несколько групп:
- Ротация кампаний. Плагины, которые после финала переводят сервер на следующую кампанию и дают игрокам проголосовать, на какую, чтобы сервер не стоял на пройденной карте в ожидании админа.
- Инструменты спавна для админа. Меню, через которые админ может вызвать танка, ведьму или орду, - так спокойный вечер превращается в историю. Давний пример - All4Dead.
- Удобство. Ready-up перед открытием двери убежища, обработка AFK, кик за бездействие для игрока, который свернул игру, и сообщение, когда игрок заходит посреди кампании.
- Статистика. Убийства, поднятия и урон по своим для каждого игрока. Весело и иногда полезно, когда кто-то постоянно винит ботов.
Добавляйте их по одному и после каждого играйте главу. Кооперативный сервер с сорока плагинами - это сервер, где никто не может понять, какой из них заставил ведьму появиться внутри убежища. Держите рядом с сервером короткий текстовый файл со списком установленного и причин; чинить всё после обновления, скорее всего, будете вы сами через полгода, успев всё забыть.
Больше четырёх выживших#
Ограничение в четыре выживших вкомпилировано в игру. Чтобы его снять, нужны две отдельные части:
- L4DToolZ - плагин Metamod, который снимает ограничение числа игроков на сервере и добавляет управляющие им cvars -
sv_maxplayers,sv_removehumanlimitи другие, они описаны в руководстве по серверу. - Плагин multi-slot, например SuperVersus или один из вариантов MultiSlots, который создаёт дополнительных ботов-выживших, чтобы новые игроки брали их под управление, выдаёт им стартовые наборы и подстраивает размеры команд. Без него лишние игроки заходят зрителями, которым нечем управлять.
sv_maxplayers 8sv_visiblemaxplayers 8sv_removehumanlimit 1sv_force_unreserved 1Имена cvars самого плагина multi-slot у разных плагинов разные, а некоторые также меняют survivor_limit и, для versus, z_max_player_zombies. Используйте собственный файл конфигурации плагина, а не копируйте cvars из сообщения на форуме про другой плагин.
Будьте готовы к побочным эффектам. В игре четыре персонажа-выживших, поэтому дополнительные выжившие переиспользуют их модели и реплики. Финалы и скриптовые события некоторых кампаний рассчитаны на четверых, и иногда спасательный транспорт уезжает без выживших с пятого по восьмого. Существуют плагины баланса, которые масштабируют обычных и особых заражённых под число выживших, а без такого плагина игра восьмерых на Expert проще, чем игра четверых на Advanced. Каждый дополнительный выживший стоит ещё и CPU: поиск пути ботами, больше заражённых от плагинов масштабирования, больше физики.
| Конфигурация | RAM | CPU | Примечания |
|---|---|---|---|
| Чистый кооператив, 4 игрока | 1-2 ГБ | 1 ядро | Игра лёгкая |
| Versus, 8 игроков | 2 ГБ | 1-1,5 ядра | Две команды, одна карта |
| Кооператив на 8 выживших с плагинами | 2-3 ГБ | 1,5 ядра | Плагины масштабирования добавляют нагрузку |
| Тяжёлая своя кампания плюс плагины | 3 ГБ | 1,5-2 ядра | Большие карты, много сущностей |
Соревновательные конфиги и tick rate#
Соревновательные сообщества versus используют наборы конфигов - линию Confogl и её наследников, например ZoneMod из проекта L4D2 Competitive Rework, - в которых собраны десятки плагинов, ready-up, обработка пауз и изменения баланса. Они большие, со своим взглядом на игру и хорошо поддерживаются. Ставьте такой набор целиком из его репозитория, а не собирайте по частям, и будьте готовы, что он заменит ваши привычки с server.cfg собственной системой конфигов.
Серверы L4D2 по умолчанию работают на 30 tick. Соревновательные конфиги обычно поднимают его расширением, включающим tickrate, и аргументом запуска -tickrate, а для этого ещё нужно поднять соответствующие rate cvars - sv_maxupdaterate, sv_maxcmdrate, sv_minrate и sv_maxrate, - иначе более высокий tick rate ничего не изменит для игроков. Сервер на 100 tick стоит примерно втрое больше CPU, чем на 30 tick. Для кооперативной компании друзей это редко того стоит; почему - объясняет статья что на самом деле означает tick rate.
Обновления и поддержание работоспособности#
Обновления L4D2 сейчас выходят редко, и это хорошая новость, но каждое может разом сломать gamedata для SourceMod, left4dhooks и L4DToolZ. Защитный порядок действий:
- Backup перед обновлением. Вся папка
addonsи ваши файлыcfg. Если в слоте backup лежит проверенная копия, сломанное обновление стоит одного восстановления, а не целого вечера. - Обновляйте по порядку. Metamod, SourceMod, left4dhooks, затем плагины.
- Следите за логами.
addons/sourcemod/logs/errors_<date>.logназывает каждый упавший плагин и причину. - Держите чистый запасной вариант. Копия
server.cfg, которая запускает обычный кооператив без плагинов, позволит вашей компании играть, пока стек догоняет.
Общая версия этого порядка описана в статье что делать, когда обновление мода всё сломало.
Решение проблем#
Игроки падают или их кикает при загрузке своей кампании. У них её нет или стоит другая версия. Пусть отпишутся и снова подпишутся, перезапустят Steam и сверят версию с файлом на сервере.
Мутация ничего не делает. mp_gamemode не совпадает с именем режима в аддоне, или его перекрывает director_base_addon.nut другого аддона.
Плагины SourceMod падают с «native not found». left4dhooks отсутствует или старше, чем ожидает плагин. Обновите его вместе с gamedata.
Зайти могут больше четырёх игроков, но лишние оказываются зрителями. L4DToolZ работает, но плагина multi-slot нет, или он не загрузился. Проверьте sm plugins list.
Лобби постоянно отправляет компанию на официальный сервер. Это проблема лобби, а не аддонов: sv_allow_lobby_connect_only 0 и совпадающий sv_search_key. Это описано в руководстве по серверу.
После обновления всё сломалось. Gamedata. Проверьте meta list и sm exts list, затем обновите всё по порядку.
FAQ#
Нужно ли игрокам скачивать аддоны моего сервера?
Для кампаний и модов геймплея - да: сервер не может их отправить, поэтому каждый игрок ставит тот же VPK или подписывается на тот же предмет Workshop. Чисто серверным плагинам SourceMod на стороне игрока ничего не нужно.
Можно ли играть в кооперативе больше чем ввосьмером?
Технически, с L4DToolZ и плагином multi-slot, - да. На практике после примерно восьми выживших игра разваливается: персонажи повторяются, финалы ведут себя странно, а темп Director рушится.
Обязателен ли left4dhooks для SourceMod в L4D2?
Для самого SourceMod - нет, но почти каждый полезный плагин L4D2, написанный в последние годы, от него зависит. Ставьте его вместе с SourceMod как само собой разумеющееся.
Почему один аддон перестаёт работать, когда я ставлю другой?
Оба поставляют один и тот же файл, обычно director_base_addon.nut или замену модели, и побеждает смонтированный последним. Уберите один или замените скриптовый аддон плагином SourceMod, который делает то же самое.
Можно ли использовать клиентские моды на сервере?
Косметические моды на машине самого игрока обычно работают, если сервер их разрешает. Серверы с более строгими настройками sv_pure и sv_consistency кикают игроков, чьи файлы отличаются, и соревновательные серверы делают это намеренно.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.