MAATRIX GAMES / Блог / Team Fortress 2: топ плагинов для сервера

Team Fortress 2: топ плагинов для сервера

MAATRIX GAMES

Голый TF2-сервер живёт от силы неделю — без бан-системы модератор бессилен против токсика в чате, без кастомного режима паблик ничем не отличается от тысячи таких же, а без статистики игроки не возвращаются, потому что прогресс нигде не виден. Проблема в другом: плагинов под SourceMod для TF2 накопилось за почти два десятилетия сотни, часть из них заброшена, часть конфликтует друг с другом, и с наскока разобраться, что реально ставить, а что тянет только лишнюю память — тяжело. Разложим по категориям то, что реально работает в 2026 году, и на что смотреть при выборе.

Metamod:Source и SourceMod — без них ничего не заведётся

Все плагины из этой статьи требуют связки Metamod:Source (MM:S) и SourceMod (SM) — сама игра TF2 плагинов не понимает, а эти два фреймворка встраиваются в движок Source и дают плагинам доступ к событиям игры. Сначала всегда ставится Metamod:Source, затем поверх него SourceMod.

Оба скачиваются с официальных источников — metamodsource.net и sourcemod.net (сборки распространяются через AlliedModders, forums.alliedmods.net — это основной хаб комьюнити для Source-плагинов). Берите стабильную (stable), а не dev-сборку, если сервер не тестовый.

Структура после установки в tf/:

tf/
├── addons/
│   ├── metamod/
│   └── sourcemod/
│       ├── plugins/
│       ├── configs/
│       └── logs/

Плагины (файлы .smx) кладутся в addons/sourcemod/plugins/, конфиги — в addons/sourcemod/configs/. После установки в консоли сервера проверяем, что обе части подхватились:

meta version
sm version

Если meta version молчит — значит addons/metamod/ не подцепился через gameinfo.txt (для TF2 путь tf/gameinfo.txt, туда добавляется строка Game csgo/addons/metamod — версии по игре разнятся, сверяйтесь с инструкцией установки конкретно под вашу сборку MM:S). Если sm version не находит SourceMod — при живом Metamod почти всегда дело в правах на файлы или в том, что архив распаковали не в ту папку.

Отдельная головная боль именно для TF2 — сигнатуры (gamedata), на которых держится часть плагинов. Valve периодически обновляет игру, и после крупного патча какой-то плагин может перестать работать, пока автор не выпустит обновлённый gamedata-файл. Если сервер поднимаете с нуля, прочитайте инструкцию по установке TF2-сервера — там разобраны SteamCMD, порты и автозапуск, на которые уже накатывается всё из этой статьи.

Админ-инструменты: бан-система, модерация, борьба с читерами

Это база, с которой стоит начинать почти любой публичный сервер — без неё модератору нечем работать, кроме kick и ban из консоли.

  • SourceBans++ — веб-панель и плагин для банов, мутов и истории наказаний с привязкой к SteamID. Хранит данные в MySQL, отдельная база нужна обязательно — как её поднять, разобрано в статье про MySQL для игровых плагинов. Панель показывает историю банов игроку, что снижает число споров «за что забанили».
  • SourceComms — мут, гэг (запрет голосового чата) и сайленс (запрет текста) с таймером, отдельно от полного бана. Полезно для случаев, когда игрок токсичен в чате, но не читерит — банить его целиком избыточно.
  • SMAC (SourceMod Anti-Cheat) — детектор паттернов, похожих на эйм-бота и тригербота, по движениям прицела и времени реакции. Работает эвристически, то есть иногда даёт ложные срабатывания на игроков с хорошей реакцией или нестандартной мышью — правила детекта стоит подстраивать под свой сервер, а не полагаться на дефолт вслепую.
  • Better Bot Detector — плагин конкретно под проблему F2P-ботов в TF2 (заброшенные аккаунты, спамящие голосовые команды или засоряющие список игроков) — для паблик-серверов с открытой регистрацией через F2P это частая головная боль, отдельный плагин под неё удобнее, чем ловить руками.

Права модераторов и группы (кто может банить, кто только кикать) настраиваются отдельно от самих плагинов — через SourceMod admin groups, это разобрано в статье про группы и права в плагинах. Без правильно настроенных прав любой плагин из этого списка либо не даст модератору ничего сделать, либо, наоборот, откроет слишком много обычным игрокам.

Поднять сервер Team Fortress 2 за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Кастомные режимы: во что превращают TF2 сторонние серверы

Ванильный TF2 — это Payload, CTF, King of the Hill и ещё несколько штатных режимов. Живучесть комьюнити во многом держится на кастомных режимах, которых в ванильной игре нет вообще:

  • MGEMod — режим 1v1/2v2 дуэлей на аренах (My Gaming Edge), популярен у соло/скаут-игроков, которые тренируют прицел и движение вне обычных 12v12 матчей. Требует специальных карт (mge_ префикс) и своей логики очереди — плагин управляет тем, кто заходит на арену следующим.
  • VSH (Versus Saxton Hale) — один игрок получает роль босса (Saxton Hale или другой кастомный персонаж) с усиленными характеристиками против всей остальной команды. Существует несколько форков плагина под разным авторством — при выборе смотрите на дату последнего обновления в теме на AlliedModders, старые форки нередко подтормаживают с актуальными версиями TF2.
  • Prop Hunt — команда пропов прячется, маскируясь под объекты карты, команда охотников ищет. Требует карт, специально подготовленных под режим (не любая обычная карта TF2 сюда подходит), и отдельного плагина логики раундов.
  • Jump/Trikz-серверы — упор на владение движением (bunny hop, rocket jump), а не на бои. Здесь нужны плагины таймера прохождения, чекпоинтов и телепорта на старт — обычно идут пакетом под конкретные jump-карты.
  • Trade-серверы — площадка для безопасного обмена предметами без риска для игры. Требуют плагинов, которые превращают сервер в статичную зону ожидания: отключают урон, дают бесконечный респавн, иногда добавляют зоны для конкретных типов трейда.

Совмещать несколько режимов на одном сервере технически можно (например, через голосование картой между обычными и MGE-картами), но на практике это усложняет конфиг и повышает риск, что логика одного плагина будет мешать другому — например, respawn-плагин от Trade-режима сломает раунды в обычном Payload. Если цель — стабильный паблик, обычно проще держать один режим на сервер и не гнаться за универсальностью.

Статистика и вовлечение игроков

Игроки возвращаются охотнее, когда видят собственный прогресс, а не просто играют раунд за раундом в пустоту.

  • HLstatsX:CE — классика жанра для Source-игр: парсит логи сервера и считает килы, смерти, K/D, любимое оружие, ведёт рейтинги игроков с веб-интерфейсом. Работает не как обычный SourceMod-плагин, а как отдельный демон, который читает логи сервера, и требует своей MySQL-базы — по сложности разворачивания это отдельный сервис, а не просто файл в plugins/.
  • Плагины-релеи в Discord (в комьюнити ходит несколько форков под разным названием, часто просто «Discord Relay» или похожее) — пробрасывают чат сервера, входы/выходы игроков и киллфиды в Discord-канал. Удобно для комьюнити, у которого основная тусовка идёт в Discord, а не на форуме или в Steam-группе.
  • Встроенные в SourceMod счётчики (топ по времени на сервере, топ по килам за сессию) можно выводить прямо в HUD или через !top-команды — для небольшого паблика этого зачастую достаточно, чтобы не разворачивать полноценный HLstatsX.

Косметика, донат и экономика

Монетизация паблик-сервера обычно строится не на продаже игрового преимущества (это прямо противоречит духу Source-комьюнити и часто — правилам самого хостинга донат-систем), а на косметике и удобствах:

  • TF2Items / TF2Attributes — не готовые плагины, а библиотеки-расширения, на основе которых другие разработчики пишут кастомные плагины выдачи предметов, скинов и модификаций оружия. Если планируете свою донат-систему с уникальными «золотыми» скинами или тегами — почти наверняка она будет опираться на одну из этих библиотек.
  • VIP/донат-теги — обычно кастомный небольшой плагин, который красит ник или добавляет префикс в чате донатерам. Такие плагины почти всегда пишутся под конкретный сервер, готового универсального стандарта в комьюнити нет — либо заказывать у разработчика, либо писать самому на SourcePawn.
  • Плагины для фан-серверов — случайные криты (tf_weapon_criticals_force-подобная логика через плагин, а не конвар, если нужна более гибкая настройка шанса), мгновенный респавн, отключение урона от падения. Такие штуки не дают конкурентного преимущества за деньги, а просто меняют правила игры в сторону аркадности — типичная механика fun-серверов.

Здесь стоит быть аккуратным с формулировками в духе «купи предмет и получи преимущество» — Valve и площадки размещения плагинов в целом не приветствуют pay-to-win на серверах, построенных поверх их движка и брендов. Косметика и удобства — безопасная зона, игровой баланс — нет.

Как выбирать плагины и не уронить сервер

Прежде чем ставить плагин на прод, стоит пройтись по паре простых проверок:

  1. Дата последнего обновления. Тема на AlliedModders с последним постом автора трёхлетней давности — не всегда мёртвый плагин (Source-плагины на удивление живучи), но риск несовместимости с текущей версией TF2 выше. Смотрите комментарии — если последние несколько человек пишут «работает на актуальной версии», это хороший знак.
  2. Не дублируйте функциональность. Два плагина бан-системы или два конкурирующих детектора читеров на одном сервере — почти гарантированный источник конфликтов и дублирующихся сообщений в чате. Один плагин на задачу.
  3. Тестируйте на staging. Даже небольшой тестовый сервер (или тот же прод в нерабочие часы с предупреждением игрокам) до раскатки на паблик экономит часы на откате, если плагин конфликтует с уже стоящими.
  4. Следите за логами. addons/sourcemod/logs/errors_*.log — первое место, куда смотреть при странном поведении сервера после установки нового плагина.
  5. Проверяйте список и статус прямо из консоли:
sm plugins list
sm plugins info <номер>
sm plugins reload <номер>

sm plugins list покажет все загруженные плагины и их статус — если рядом с названием стоит пометка об ошибке, значит плагин не смог полноценно стартовать (чаще всего из-за устаревшего gamedata или отсутствующей зависимости вроде TF2Items).

  1. Помните про память. Если сервер стоит на минимальном тарифе (порядка 1 ГБ RAM), десяток тяжёлых плагинов плюс SourceBans++ с постоянным коннектом к MySQL может начать упираться в лимит — для активного паблика с полноценным набором плагинов комфортнее закладывать 2–3 ГБ, а не пытаться уместить всё в минимальный план.

Если сервер уже падает при загрузке карт или при работе конкретного плагина — отдельно разобран частый случай в статье про крэш плагина или карты на TF2-сервере, там больше про диагностику самого падения, а не про выбор плагинов.

Поднять сервер Team Fortress 2 за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

С чего начать, если раньше не ставил плагины вообще?

С Metamod:Source и SourceMod — без них ни один плагин из этого списка не заработает. Дальше — SourceBans++ или хотя бы базовые права модераторов, это закрывает большинство проблем с токсичными игроками на старте.

Где скачивать плагины, чтобы не словить вредонос?

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

Плагин перестал работать после обновления TF2 — что делать?

Чаще всего дело в устаревшем gamedata-файле плагина (сигнатуры функций в движке сдвинулись после патча). Проверьте тему плагина на форуме — обычно автор или комьюнити быстро выкладывают обновлённый gamedata, который нужно просто заменить в addons/sourcemod/gamedata/.

Можно ли поставить сразу всё из статьи на один сервер?

Технически да, но не стоит — особенно смешивать несколько кастомных режимов (MGE и VSH одновременно, например) без явной необходимости. Начните с админки и статистики, кастомный режим добавляйте один и тестируйте отдельно.

Нужна ли отдельная MySQL-база под каждый плагин?

Не обязательно одна база на плагин, но SourceBans++ и HLstatsX обычно заводят каждый свою схему в общей MySQL-инстанции — это упрощает бэкапы и не мешает им друг другу при сбое одного из сервисов.