Pterohost docs

Боты в Garry's Mod: NPC, Nextbot, серверные RP-боты

Гид по ботам Garry's Mod: NPC от Valve, Nextbot, DrGBase, sb_advanced_nextbots. Установка, спавн через консоль, лимиты и производительность сервера.

Боты в Garry’s Mod бывают разными - от ленивых NPC из Half-Life 2, которые тупо стоят на месте, до мем-ботов из Workshop, которые гоняются за игроком через всю карту с криками. В этом гайде разбираем все типы ботов, как их ставить, спавнить и не положить сервер на 10 NPC. Будут команды, конфиги и примеры расчёта нагрузки.

Типы ботов в Garry’s Mod

В GMod нет одной системы “ботов” - есть несколько разных технологий, унаследованных от Source-движка и наслоённых поверх Garry’s Mod.

ТипТехнологияPathfindingНагрузкаПримеры
NPC (Valve)Source AIТолько nodegraphНизкаяnpc_combine_s, npc_zombie, npc_metropolice
NextbotGMod 13 frameworkNav meshСредняяnextbot_chase, SCP-173
Player Botsbot_add (CS:S)Простой waypointНизкаяbot_add, fake-игроки
DrGBaseLua-фреймворкNav + Lua AIВысокаяDrGBase Zombies, custom
sb_advanced_nextbotsNextBot 2.0 базаNav + поведенческие деревьяСредняяCustom RP-NPC

Каждый тип задумывался для своих целей: Valve-NPC для линейных сценок типа Half-Life, Nextbot для свободного передвижения по большим картам, DrGBase для зомби-нашествий с продвинутым AI.

Pterohost - игровой хостинг с DDoS-защитой, NVMe SSD и круглосуточной поддержкой. Промокод 4START даёт -20% на первый заказ. Заказать сервер Garry’s Mod

NPC от Valve: классика Source

Это сущности из Half-Life 2 и Counter-Strike Source, перенесённые в GMod как есть. Они используют старый Source AI: видят через линию взгляда, ходят по nodegraph (если он есть на карте), стреляют по врагам.

Список основных классов

КлассОткудаОсобенности
npc_combine_sHL2Солдат Альянса, агрессивный, неплохо стреляет
npc_zombieHL2Зомби, медленный, дамаг по контакту
npc_fastzombieHL2Быстрый зомби, прыгает
npc_zombineHL2:Ep1Зомби-солдат, может бежать
npc_antlionHL2Антлион, прыгает, агрессивный
npc_metropoliceHL2Городская полиция, реже стреляет
npc_headcrabHL2Хедкраб, прыгает на лицо
npc_manhackHL2Летающий дрон с пилой
npc_striderHL2Огромный шагающий робот
npc_helicopterHL2Боевой вертолёт Альянса

Спавн через консоль

Базовая команда:

npc_create npc_combine_s

Спавнит NPC в той точке, куда смотрит игрок. Если негде встать (NPC застрял в стене) - команда тихо проваливается, в консоли только Failed to create entity.

Альтернативы:

npc_create_aimed npc_zombie        // спавн с поворотом в сторону прицела
ent_create npc_strider             // универсальная команда для любых сущностей
npc_create_equipment weapon_ar2 npc_combine_s   // солдат с AR2

Для RP-сервера через ULX-команду можно добавлять NPC игрокам по правам:

!npcaddpermission user moderator npc_combine_s

(Команда не из коробки ULX, обычно из плагина NPC Spawn Restrict.)

Лимит и управление

sk_max_npc_count - максимум NPC на карте, по умолчанию 32. Можно поднять, но каждое тело отъедает CPU.

ai_disabled 1 - заморозить весь AI, удобно для скриншотов и записи. ai_disabled 0 - вернуть.

npc_thinknow - принудительно вызвать AI-тик у выделенного NPC (отладка).

npc_kill - убить NPC под прицелом.

ent_remove_all npc_zombie - удалить всех зомби с карты.

Nextbot - современный AI для GMod

Nextbot - фреймворк, который Valve добавил в Left 4 Dead 2 для умных зомби, и Garry Newman портировал в GMod. Главное отличие от классических NPC - pathfinding через nav mesh (а не nodegraph): Nextbot может найти путь по любой карте, где есть валидный navmesh.

Чтобы Nextbot нормально работал, карта должна быть проанализирована командой nav_generate (генерируется один раз и сохраняется в maps/<name>.nav). На картах из Workshop nav-меш часто отсутствует - тогда Nextbot тупо стоят на месте.

Базовый класс nextbot

В GMod есть встроенная сущность next_bot (или nextbot_chase в зависимости от версии). Полезна для разработки кастомных ботов через Lua.

Спавн стандартного Nextbot:

nb_create

или через ent_create:

ent_create next_bot

sb_advanced_nextbots (Star Bot / advanced_npcs)

Workshop ID: 1316765751. Один из самых популярных аддонов Nextbot - добавляет систему “умных NPC” с продвинутым AI: они стреляют, прячутся, аптечки подбирают, общаются голосом.

Установка через Workshop-коллекцию (см. гайд по аддонам). После добавления появляются:

  • Категория NPCs -> Advanced Bots в спавн-меню.
  • Команда sb_advanced_nextbots_spawn <name> для консольного спавна.
  • ConVar sb_advanced_nextbots_loadout для настройки экипировки.

Конфиг через ConVars (в server.cfg):

sb_advanced_nextbots_max 10            // макс ботов на карте
sb_advanced_nextbots_aimspeed 5        // скорость прицеливания
sb_advanced_nextbots_voice 1           // голосовые реплики
sb_advanced_nextbots_difficulty 2      // 1=easy, 2=normal, 3=hard

Эти боты неплохо подходят для замены живых игроков на пустых серверах - заходишь, добавляешь 5 ботов, и сервер выглядит живым.

SCP / Backrooms / Horror Nextbot

В Workshop сотни мем-ботов: SCP-173 (стоит, пока на него смотришь, иначе телепортируется к игроку), SCP-096 (бежит к игроку, увидевшему его лицо), Backrooms Smiler, Jeff The Killer и так далее.

Установка: подписаться или добавить в Workshop-коллекцию. Спавн через категорию NPCs -> SCP Nextbot. Каждый бот - отдельная сущность с уникальным классом (npc_scp173, npc_backrooms_smiler и т.д.).

Полезные команды:

ent_remove_all npc_scp173       // убрать всех SCP-173 с карты
ent_setname scp1                // переименовать выделенного для скриптов
ent_keyvalue npc_scp173 speed 200    // изменить скорость

DrGBase - зомби-апокалипсис и кастомные NPC

DrGBase - база для создания продвинутых Nextbot-ов с поведением. На ней сделаны популярные паки зомби (DrGBase Zombies), Resident Evil-NPC, Skyrim-NPC.

Установка - аддон DrGBase из Workshop (ID 2026047339) + контент-паки.

После установки в категории NPC появляются группы DrGBase. Спавн через стандартный NPC-меню. Боты этого фреймворка значительно тяжелее обычных Nextbot - 8-10 одновременно уже грузят сервер.

Конфигурация (через ConVars):

drgbase_max_combatants 30            // глобальный лимит DrGBase NPC
drgbase_pathfinding_lod 1            // 1 = упрощённый pathfinding (экономия CPU)
drgbase_ragdoll_lifetime 30          // секунды жизни ragdoll-ов
drgbase_npc_can_open_doors 1         // могут ли NPC открывать двери

bot_add - serverside-боты для PvP

Команда bot_add создаёт fake-игрока, который занимает слот, ходит, стреляет (на TTT и в DarkRP с примитивной логикой). По сути - переименованный CS:S-бот, портированный в GMod.

bot_add               // добавить бота
bot_add_t             // добавить за террористов (TTT)
bot_add_ct            // добавить за CT (Counter-Strike Source mount нужен)
bot_kick              // убрать всех ботов

ConVars:

bot_quota 5               // автоматически держать 5 ботов на сервере
bot_quota_mode normal     // normal или fill (заполнить пустые слоты)
bot_difficulty 1          // 0-3
bot_chatter normal        // off/minimal/normal/verbose
bot_join_team any         // any/ct/t (для TTT не работает)

На DarkRP bot_add создаёт игрока с именем “Bot01” и без поведения - просто болванчик в спавне. Полезно для тестирования спавн-меню, защиты от подключений и работы плагинов на пустом сервере.

RP-боты: NPC для тестирования DarkRP

На DarkRP-серверах часто нужны NPC-фишки: NPC-продавец оружия, NPC-банк, NPC-полиция. Это не “боты” в смысле AI - это DarkRP entities с прикручёнными моделями NPC.

Стандартные NPC DarkRP:

  • darkrp_money_printer - принтер денег.
  • darkrp_gunlab - стол оружейника.
  • Кастомные NPC через addCustomNPC в lua/darkrp_customthings/:
TEAM_GUN_DEALER_NPC = {
    name = "Gun Dealer NPC",
    model = "models/Humans/Group01/Male_07.mdl",
    pos = Vector(-500, 1200, -120),
    angle = Angle(0, 90, 0),
    shipments = {"M9K AK-47", "M9K Desert Eagle"},
}
addCustomNPC(TEAM_GUN_DEALER_NPC)

Это не AI-боты, а статичные NPC-торговцы. Полная настройка - в гайде по DarkRP.

Для динамических RP-NPC (бродящие по городу, реагирующие на игроков) ставят аддоны типа RP NPC Citizens или Real CSS Bots NPC.

Производительность: сколько ботов потянет сервер?

GMod-сервер однопоточный, и каждый AI-тик NPC съедает часть CPU. Точные цифры зависят от сложности AI и карты.

Эмпирические данные с серверов на VPS с CPU 3.5 ГГц single-thread:

Тип ботаБезопасный лимитКогда начинаются лаги
npc_combine_s (с оружием)30-40После 50
npc_zombie50-70После 80
Стандартный Nextbot15-20После 25
sb_advanced_nextbots10-12После 15
DrGBase Zombie8-10После 12
SCP-Nextbot тяжёлый5-7После 8

Когда лагает - в консоли видны строки Server is choking и Net packet drops. Тик сервера падает с 33 до 5-10, игроки начинают видеть микрорывки.

Профилирование

Включите профайлинг AI:

ai_show_think_tolerance 1

Команда покажет на экране тайминги AI-тиков NPC. Если конкретный тип ботов даёт >10 мс - сократите их количество.

net_graph 3 - сетевая статистика, отражает общую перегрузку сервера.

stats - команда для админа, покажет CPU/Memory usage сервера.

Оптимизация AI

sk_npc_dmg_buckshot 8        // снизить дамаг = меньше расчётов в крови/частицах
ai_force_serverside_ragdoll 0   // ragdoll-ы только на клиенте, сервер не считает физику
phys_timescale 1.0
g_ragdoll_maxcount 8         // лимит ragdoll'ов
ai_LOS_mode 1                // упрощённая проверка линии взгляда

g_ragdoll_maxcount критично - 100 трупов на карте после стрельбы съедают CPU из-за физики.

ULX и боты: ограничения по правам

Чтобы только админы могли спавнить ботов на публичном сервере, используйте ULX-restrict (часть настройки ULX). Файл garrysmod/data/ulx/cl_restrictions.txt:

"NPCs"
{
    "npc_combine_s"
    {
        "groups"
        {
            "1"  "superadmin"
        }
    }
    "npc_strider"
    {
        "groups"
        {
            "1"  "superadmin"
        }
    }
}

Без этого любой пользователь сможет заспавнить npc_strider (огромный шагающий робот) и положить сервер.

Альтернатива - запретить категорию NPCs целиком для не-админов через ULX-меню (Restrictions -> NPCs -> deny for “user”).

Кастомные боты: разработка собственных

Создание Nextbot - тема для отдельного гайда, но базовый каркас в Lua выглядит так:

-- garrysmod/addons/my_nextbot/lua/entities/my_bot/init.lua
AddCSLuaFile("shared.lua")
include("shared.lua")

function ENT:Initialize()
    self:SetModel("models/player/kleiner.mdl")
    self:SetHealth(100)
end

function ENT:RunBehaviour()
    while true do
        local target = self:GetClosestPlayer()
        if target then
            self.loco:SetDesiredSpeed(200)
            self:MoveToPos(target:GetPos())
            if self:GetPos():Distance(target:GetPos()) < 50 then
                target:TakeDamage(10, self, self)
            end
        end
        coroutine.yield()
    end
end

function ENT:GetClosestPlayer()
    local closest, dist = nil, math.huge
    for _, ply in ipairs(player.GetAll()) do
        if ply:Alive() then
            local d = self:GetPos():Distance(ply:GetPos())
            if d < dist then closest, dist = ply, d end
        end
    end
    return closest
end

Это минимальный Nextbot, который преследует ближайшего игрока и наносит 10 урона при контакте. Для продакшена нужно добавить состояния (idle, chase, attack), валидацию nav mesh, обработку прыжков и стрельбу.

Pterohost - игровой хостинг с DDoS-защитой, NVMe SSD и круглосуточной поддержкой. Промокод 4START даёт -20% на первый заказ. Заказать сервер Garry’s Mod

FAQ

Как добавить ботов на сервер Garry’s Mod?

В Sandbox через консольную команду npc_create npc_combine_s или через спавн-меню вкладки NPCs. Для Nextbot - sb_advanced_nextbots аддон с командой sb_advanced_nextbots_spawn. Для RP-серверов используйте DrGBase или специальные ULX-плагины с командами !bot или !npcadd.

В чём разница между NPC и Nextbot?

NPC - стандартные сущности Source-движка с заложенным Valve AI (npc_combine_s, npc_zombie). Nextbot - современный фреймворк Garry’s Mod для умных ИИ с pathfinding на nav-меше: они умеют преследовать игроков через карту, открывать двери, прыгать. Большинство мем-ботов (SCP, Backrooms) - Nextbot.

Сколько ботов потянет сервер GMod?

Стандартные npc_combine_s - до 30-50 на современном CPU без лагов. Nextbot тяжелее: 10-15 одновременно. Тяжёлые AI типа DrGBase с прокладкой путей и сложной логикой - 5-8. Лимит общий регулируется sk_max_npc_count, по умолчанию 32.

Какие команды для спавна ботов в Garry’s Mod?

npc_create <classname> - создать NPC на месте прицела. npc_create_aimed - аналог с прицеливанием. nb_create <classname> - спавн Nextbot. bot_add - добавить serverside-бота (играет как живой). sb_advanced_nextbots_spawn <name> - спавн умного NPC из этого аддона.

Как отключить ботов на сервере?

Команда ai_disabled 1 заморозит весь AI. ent_remove_all npc_* удалит всех NPC. Для Nextbot - ent_remove_all nextbot. В DarkRP полезно ограничить спавн через ULX-restrict категорию NPC для определённых рангов.

Какие самые популярные боты в GMod 2026?

Топ - SCP-Nextbot (SCP-173, SCP-096), Backrooms Nextbot, Player Model Bots для роли мирных жителей в DarkRP, DrGBase зомби-нашествие, Halloween-Nextbot (Jeff The Killer и подобные мемы). Для тренировки PvP-навыков - bots from Counter-Strike Source через bot_add.