deidara 53d3702c69 v2.0.0: refactor - models assigned by SteamID64 via config
Major changes:
- Added configs/vip_custom_models_locked.cfg (SteamID64 to model_id)
- Command sm_vmodel_reload for hot reload
- Removed model selection menu (!vmodel/!models/!agents)
- Removed VIP-Core integration (item removed from VIP menu)
- Removed ClientPrefs cookies and SQLite (config is single source of truth)

Bug fixes:
- Fixed null-check bug (error[0] != space instead of null terminator)
- Removed DB vs Cookie race condition
- Cleaned up buffer null-termination workarounds
- author = deidara.dev
2026-05-01 20:53:51 +03:00

VIP Custom Models

Плагин кастомных моделей игроков для CS:GO — модели назначаются по SteamID64 через конфиг-файл, без выбора через меню. Идеально для серверов, где админ хочет полностью контролировать кому какую модель давать.

Функции

  • До 128 кастомных моделей из конфига vip_custom_models.ini
  • Назначение «SteamID64 → model_id» через vip_custom_models_locked.cfg
  • Автоматическое применение модели при спавне и смене команды
  • Корректное восстановление стандартных рук для команды если кастомная модель не назначена или не подходит по команде
  • Команда sm_vmodel_reload для перезагрузки конфига без рестарта плагина
  • Умная загрузка файлов модели: .mdl, .vvd, .dx90.vtx и сопутствующие
  • Поддержка блочного и строкового форматов списка downloads
  • Ограничение по команде (T / CT / ANY) — если игрок не на нужной команде, кастомная модель не применяется (используются дефолтные руки)

Зависимости

Установка

  1. Скомпилировать scripting/vip_custom_models.sp
  2. Положить .smx в addons/sourcemod/plugins/
  3. Положить configs/vip_custom_models.ini (список доступных моделей) в addons/sourcemod/configs/
  4. Положить configs/vip_custom_models_locked.cfg (назначения SteamID → модель) в addons/sourcemod/configs/
  5. Загрузить файлы моделей в models/ на сервере
  6. Перезапустить сервер или загрузить плагин: sm plugins load vip_custom_models

Конфиг моделей

Путь: addons/sourcemod/configs/vip_custom_models.ini

"VIP_CustomModels"
{
    "Models"
    {
        "agent_01"
        {
            "name"      "FBI Agent"
            "model"     "models/player/custom/fbi_agent.mdl"
            "arms"      "models/weapons/ct_arms_fbi_custom.mdl"
            "team"      "CT"
            "downloads" "models/player/custom/fbi_agent.mdl;models/player/custom/fbi_agent.vvd"
        }
        "elite_crew"
        {
            "name"      "Elite Crew"
            "model"     "models/player/custom/elite_crew.mdl"
            "arms"      ""
            "team"      "T"
            "downloads"
            {
                "1" "models/player/custom/elite_crew.mdl"
                "2" "models/player/custom/elite_crew.vvd"
                "3" "models/player/custom/elite_crew.dx90.vtx"
            }
        }
    }
}
Поле Описание
name Отображаемое имя (для логов и админ-вывода)
model Путь к .mdl файлу игрока
arms Путь к модели рук (пустая строка = стандартные руки команды)
team T, CT или ANY — на какой команде модель применяется
downloads Файлы для FastDL (через ; или блок)

Конфиг назначений (новое в v2.0.0)

Путь: addons/sourcemod/configs/vip_custom_models_locked.cfg

"VIP_LockedModels"
{
    "76561198012345678" "agent_01"
    "76561198098765432" "elite_crew"
}

Ключ — SteamID64 игрока, значение — id модели (название секции из vip_custom_models.ini).

После редактирования файла:

  • Перезагрузи плагин: sm plugins reload vip_custom_models
  • ИЛИ используй админ-команду sm_vmodel_reload (флаг z / ROOT) — без рестарта, моментально применяется ко всем игрокам в игре

Команды

Команда Доступ Описание
sm_vmodel_reload Admin (флаг z) Перезагрузить оба конфига без рестарта плагина

Меню выбора моделей удалено — модели назначаются только через конфиг.

Версия

2.0.0 — Автор: deidara.dev

Changelog

  • 2.0.0 — Полный refactor: модели назначаются по SteamID64 через конфиг
    • Добавлен vip_custom_models_locked.cfg с маппингом SteamID64 → model_id
    • Удалено меню выбора моделей и команды !vmodel/!models/!agents
    • Удалена интеграция с VIP-Core (пункт «Кастомные модели» больше не показывается в VIP-меню)
    • Удалена ClientPrefs-cookies и SQLite-персистенция (конфиг — единственный источник истины)
    • Команда sm_vmodel_reload для горячей перезагрузки
    • Багфиксы из 1.2.0:
      • Удалён баг с error[0] != ' ' (был неправильный null-check, спамил в errors_*.log)
      • Удалена race condition между загрузкой DB и cookies (DB+cookie больше не используются)
      • Author = "deidara.dev"
  • 1.2.0 — VIP-меню версия (legacy)
S
Description
No description provided
Readme 40 KiB
Languages
SourcePawn 100%