/*
Q2PRO-X Guided / Standalone menu definitions.

This file is loaded ONLY when cl_q2prox_menu_mode is 1 (or the
-q2proxmenu2 launch flag is passed). In that mode q2pro.menu AND
q2pro-x.menu are intentionally ignored — see src/client/ui/script.c.

Everything this UI references must either:
  - be defined here (all "begin <name>"/"end" blocks below), or
  - be a code-built menu loaded by UI_Init (players, servers, demos).

Do NOT add "inject ... endinject" blocks here — guided mode does
not process injections.

Maintenance rule: if you add a user-facing Q2PRO-X feature that
should be reachable from BOTH the classic additive menu and the
guided standalone menu, update BOTH q2pro-x.menu AND this file.
*/

background black
font conchars
cursor ch1
weapon w_railgun.md2

color normal #0f90eb64
color active #0f90ff64
color selection #0f90eb64
color disabled #7f7f7f

// ===========================================================================
// TOP-LEVEL ENTRY POINTS (main / game / options)
// ===========================================================================

// `--q2prox` marks rows on mixed guided pages (where some entries are
// classic Q2 features and some are Q2PRO-X-specific). The draw layer
// renders a green "(X)" suffix next to the label only when the active
// UI is guided/standalone (uis.guided_mode_active) AND the row carries
// the flag. Pure Q2PRO-X pages (q2prox_*, g_advanced, g_config, g_help)
// intentionally do NOT use --q2prox per-row to avoid (X) spam — those
// pages are already Q2PRO-X in identity.

begin main
    plaque m_main_plaque m_main_logo
    // Guided main is task-based and all-action — the classic banner
    // bitmaps were dropped here so the (X) badge can sit consistently
    // next to whatever row is Q2PRO-X-specific (per TZ badge map).
    action --status "Open this menu section." --status-ru "Открывает раздел «одиночная игра»." --name-ru "Одиночная игра..." "Play offline..." pushmenu play_offline
    action --status "Open this menu section." --status-ru "Открывает раздел «присоединиться»." --name-ru "Присоединиться..." "Join online..." pushmenu join_online
    action --status "Open this menu section." --status-ru "Открывает раздел «быстрая настройка»." --q2prox --name-ru "Быстрая настройка..." "Quick setup..." pushmenu quick_setup
    action --status "Open this menu section." --status-ru "Открывает раздел «настройки»." --name-ru "Настройки..." "Options..." pushmenu options
    action --status "Open this menu section." --status-ru "Открывает раздел «помощь / о Q2PRO-X»." --name-ru "Помощь / о Q2PRO-X" "Help / about Q2PRO-X" pushmenu g_help
    action --status "Open this menu section." --status-ru "Открывает раздел «демо»." --name-ru "Демо" "Demos" pushmenu demos
    action --status "Quit the game." --status-ru "Выходит из игры." --name-ru "Выход" "Quit" quit
    blank
    pairs --q2prox --live --status "cl_console_utf8_ru: global Russian display localization. auto = Russian on Russian Windows, off = English/legacy, on = forced Russian." --status-ru "Выбирает значение «язык интерфейса»." --name-ru "Язык интерфейса" --items-ru "Авто|Выкл.|Вкл." "Interface language" cl_console_utf8_ru "Auto" -1 "Off" 0 "On" 1
    blank "Green (X) = Q2PRO-X feature"
end

begin game
    background #0000ff20
    style --compact
    action --status "Close the menu and return to the game." --status-ru "Закрывает меню и возвращает управление игре." --name-ru "Продолжить игру" "Resume game" forcemenuoff
    action --q2prox --name-ru "Справка по переменным..." --status "Browse every cvar live: search, description, values, source" --status-ru "Выполняет действие «справка по переменным»." "Cvar reference..." cvar_help
    action --q2prox --name-ru "Обзор серверов..." --status "Modern Q2PRO-X server browser overlay" --status-ru "Выполняет действие «обзор серверов»." "Browse servers..." serverbrowser_open_modern
    action --status "Open this menu section." --status-ru "Открывает раздел «присоединиться»." --name-ru "Присоединиться..." "Join online..." pushmenu join_online
    action --status "Open this menu section." --status-ru "Открывает раздел «быстрая настройка»." --q2prox --name-ru "Быстрая настройка..." "Quick setup..." pushmenu quick_setup
    action --status "Open this menu section." --status-ru "Открывает раздел «настройки»." --name-ru "Настройки..." "Options..." pushmenu options
    action --status "Run this action." --status-ru "Выполняет действие «оверлей команд мода»." --q2prox --name-ru "Оверлей команд мода" "Mod command overlay" modhelp_toggle
    action --status "Open this menu section." --status-ru "Открывает раздел «демо»." --name-ru "Демо" "Demos" pushmenu demos
    action --status "Disconnect from the current server." --status-ru "Отключается от текущего сервера." --name-ru "Отключиться" "Disconnect" disconnect
    action --status "Quit the game." --status-ru "Выходит из игры." --name-ru "Выход" "Quit" quit
end

begin options
    banner m_banner_options
    action --status "Open this menu section." --status-ru "Открывает раздел «видео и экран»." --q2prox --name-ru "Видео и экран..." "Video & display..." pushmenu g_video
    action --status "Open this menu section." --status-ru "Открывает раздел «звук и акустика»." --q2prox --name-ru "Звук и акустика..." "Sound & acoustics..." pushmenu g_sound
    action --status "Open this menu section." --status-ru "Открывает раздел «интерфейс и HUD»." --name-ru "Интерфейс и HUD..." "Interface & HUD..." pushmenu g_interface
    action --status "Open this menu section." --status-ru "Открывает раздел «управление и оружие»." --q2prox --name-ru "Управление и оружие..." "Controls & weapon view..." pushmenu g_controls
    action --status "Open this menu section." --status-ru "Открывает раздел «видимость и визуальное»." --q2prox --name-ru "Видимость и визуальное..." "Visibility & visuals..." pushmenu g_visibility
    action --status "Open this menu section." --status-ru "Открывает раздел «скины и модели»." --q2prox --name-ru "Скины и модели..." "Skins & models..." pushmenu g_skins
    action --status "Open this menu section." --status-ru "Открывает раздел «расширенные Q2PRO-X»." --q2prox --name-ru "Расширенные Q2PRO-X..." "Advanced Q2PRO-X..." pushmenu g_advanced
    action --status "Open this menu section." --status-ru "Открывает раздел «конфиги и файлы»." --q2prox --name-ru "Конфиги и файлы..." "Config & files..." pushmenu g_config
    action --status "Open this menu section." --status-ru "Открывает раздел «помощь / о Q2PRO-X»." --q2prox --name-ru "Помощь / о Q2PRO-X..." "Help / about Q2PRO-X..." pushmenu g_help
    blank
    blank "Green (X) = Q2PRO-X feature"
end

// ===========================================================================
// SECTION 5A — Play Offline
// ===========================================================================

begin play_offline
    banner m_banner_game
    action --status "Start a new single-player game." --status-ru "Начинает новую одиночную игру: «лёгкий»." --name-ru "Лёгкий" easy "Skill 0; deathmatch 0; coop 0; maxclients 1; newgame"
    action --status "Start a new single-player game." --status-ru "Начинает новую одиночную игру: «средний»." --name-ru "Средний" medium "Skill 1; deathmatch 0; coop 0; maxclients 1; newgame"
    action --status "Start a new single-player game." --status-ru "Начинает новую одиночную игру: «сложный»." --name-ru "Сложный" hard "Skill 2; deathmatch 0; coop 0; maxclients 1; newgame"
    action --status "Start a new single-player game." --status-ru "Начинает новую одиночную игру: «кошмар»." --name-ru "Кошмар" nightmare "Skill 3; deathmatch 0; coop 0; maxclients 1; newgame"
    blank
    action --status "Open this menu section." --status-ru "Открывает раздел «загрузить игру»." --name-ru "Загрузить игру..." "Load game..." pushmenu loadgame
    action --status "Open this menu section." --status-ru "Открывает раздел «сохранить игру»." --name-ru "Сохранить игру..." "Save game..." pushmenu savegame
    action --status "Open this menu section." --status-ru "Открывает раздел «настройка игрока»." --name-ru "Настройка игрока" "Player setup" pushmenu players
end

begin loadgame
    banner m_banner_load_game
    loadgame save0
    blank
    loadgame save1
    loadgame save2
    loadgame save3
    loadgame save4
    loadgame save5
    loadgame save6
    loadgame save7
    loadgame save8
    loadgame save9
    loadgame save10
    loadgame save11
    loadgame save12
    loadgame save13
    loadgame save14
    loadgame save15
end

begin savegame
    banner m_banner_save_game
    savegame save1
    savegame save2
    savegame save3
    savegame save4
    savegame save5
    savegame save6
    savegame save7
    savegame save8
    savegame save9
    savegame save10
    savegame save11
    savegame save12
    savegame save13
    savegame save14
    savegame save15
end

// ===========================================================================
// SECTION 5B — Join Online
// ===========================================================================

begin join_online
    title "Join Online"
    title-ru "Присоединиться к серверу"
    style --no-compact
    action --q2prox --status "Modern Q2PRO-X server browser overlay (q2servers.com / favorites / LAN)" --status-ru "Выполняет действие «обзор серверов»." --name-ru "Обзор серверов..." "Browse servers..." serverbrowser_open_modern
    action --q2prox --status "Jump straight to the Favorites source in the modern browser" --status-ru "Выполняет действие «избранное»." --name-ru "Избранное..." "Favorites..." \
        "set cl_serverbrowser_default_source 1; serverbrowser_open_modern"
    action --status "Classic legacy server browser (Q2PRO address book + servers.lst)" --status-ru "Открывает раздел «классический браузер / вход по адресу»." --name-ru "Классический браузер / вход по адресу..." "Legacy browser / join by address..." pushmenu j_legacy
    action --q2prox --status "Q2PRO-X setup page tuned for multiplayer comfort (laghax, movement, predicts, visibility)" --status-ru "Открывает раздел «настройки онлайн-игры»." --name-ru "Настройки онлайн-игры..." "Online play setup..." pushmenu j_online_setup
    blank
    action --status "Open this menu section." --status-ru "Открывает раздел «настройка игрока»." --name-ru "Настройка игрока" "Player setup" pushmenu players
    action --status "Open this menu section." --status-ru "Открывает раздел «загрузки»." --name-ru "Загрузки..." "Downloads..." pushmenu g_downloads
    action --q2prox --status "Mod command overlay (OpenTDM/OpenFFA)" --status-ru "Открывает раздел «оверлей команд мода»." --name-ru "Оверлей команд мода..." "Mod command overlay..." pushmenu q2prox_modhelp
    action --status "Open this menu section." --status-ru "Открывает раздел «демо»." --name-ru "Демо" "Demos" pushmenu demos
end

begin j_legacy
    title "Legacy Browser / Join By Address"
    title-ru "Классический браузер / вход по адресу"
    style --no-compact
    action --status "Launch the legacy address-book-driven server browser" --status-ru "Выполняет действие «классический браузер серверов»." --name-ru "Классический браузер серверов..." "Legacy server browser..." serverbrowser_open_legacy
    action --status "Edit the 16-slot address book (adr0..adr15)" --status-ru "Открывает раздел «адресная книга»." --name-ru "Адресная книга..." "Address book..." pushmenu g_addressbook
    blank
    action --align --status "Open the modern overlay instead" --status-ru "Выполняет действие «современный браузер»." --name-ru "Современный браузер..." "Modern browser..." serverbrowser_open_modern
end

begin j_online_setup
    title "Online Play Setup"
    title-ru "Настройка онлайн-игры"
    style --no-compact
    action --status "Adaptive prediction-error smoothing (laghax), HUD, weights" --status-ru "Открывает раздел «laghax»." --name-ru "Laghax..." "Laghax..." pushmenu q2prox_laghax
    action --status "FPS-independent movement timing + local player prediction" --status-ru "Открывает раздел «движение и игрок»." --name-ru "Движение и игрок..." "Movement & player..." pushmenu q2prox_movement
    action --status "Weapon predict toggles (ghost rockets, rail, shotgun, HB, etc.)" --status-ru "Открывает раздел «предикт оружия»." --name-ru "Предикт оружия..." "Weapon predicts..." pushmenu q2prox_predict
    action --status "Item / player highlighting for readability" --status-ru "Открывает раздел «видимость и подсветка»." --name-ru "Видимость и подсветка..." "Visibility & highlights..." pushmenu q2prox_vis
    action --status "OpenAL profile, HRTF, reverb, weapon / player volumes" --status-ru "Открывает раздел «звук»." --name-ru "Звук..." "Sound..." pushmenu g_sound
end

// ===========================================================================
// SECTION 5C — Quick Setup
// ===========================================================================

begin quick_setup
    title "Quick Setup"
    title-ru "Быстрая настройка"
    style --no-compact
    pairs --status "vid_driver: win32egl = default (capture-friendly ANGLE), win32wgl = classic OpenGL fallback" --status-ru "Выбирает значение «видеобэкенд»." --name-ru "Видеобэкенд" --items-ru "Win32egl|Win32wgl" "Video backend" vid_driver "Win32egl" win32egl "Win32wgl" win32wgl
    toggle --q2prox --status "vid_windowed: run in a window instead of fullscreen" --status-ru "Включает или выключает параметр «оконный режим»." --name-ru "Оконный режим" --items-ru "Нет|Да" "Windowed mode" vid_windowed
    pairs --status "vid_fullscreen_type: borderless desktop vs classic exclusive mode" --status-ru "Выбирает значение «полноэкранный режим»." --name-ru "Полноэкранный режим" --items-ru "Полноэкранный рабочий стол|Эксклюзивный режим" "Fullscreen mode" vid_fullscreen_type "Desktop fullscreen" desktop "Exclusive fullscreen" exclusive
    strings --status "vid_resolution: desktop = native monitor mode" --status-ru "Выбирает значение «разрешение»." --name-ru "Разрешение" "Resolution" vid_resolution $$vid_resolution_list
    strings --status "vid_refresh: max = highest available; ignored in windowed / desktop modes" --status-ru "Выбирает значение «частота обновления»." --name-ru "Частота обновления" "Refresh rate" vid_refresh $$vid_refresh_list
    range --q2prox --format "%d%%" --status "gl_render_scale: internal 3D scene resolution" --status-ru "Настраивает значение «масштаб рендера»." --name-ru "Масштаб рендера" "Render scale" gl_render_scale 100 1000 25
    blank
    values --q2prox --live --status "s_enable: OpenAL is required for HRTF + room acoustics" --status-ru "Выбирает значение «звуковой движок»." --name-ru "Звуковой движок" --items-ru "Без звука|Программный (DMA)|OpenAL" "Sound engine" s_enable "no sound" "software (DMA)" "OpenAL"
    action --q2prox --align --status "OpenAL profile / reverb / HRTF / volumes" --status-ru "Открывает раздел «OpenAL и акустика»." --name-ru "OpenAL и акустика..." "OpenAL & acoustics..." pushmenu q2prox_sound
    action --q2prox --align --status "Headphone 3D / HRTF / crossfeed" --status-ru "Открывает раздел «3D-звук в наушниках»." --name-ru "3D-звук в наушниках..." "Headphone 3D sound..." pushmenu q2prox_binaural
    action --q2prox --align --status "In-game voice chat (PTT / VAD, LiveKit, OpenAL required for tx/rx in Phase 1)" --status-ru "Открывает раздел «голосовой чат»." --name-ru "Голосовой чат..." "Voice chat..." pushmenu q2prox_voice
    blank
    values --live --status "crosshair: aim cursor style" --status-ru "Выбирает значение «прицел»." --name-ru "Прицел" --items-ru "Нет|Крест|Точка|Угол" "Crosshair" crosshair none cross dot angle
    range --q2prox --live --precision 2 --status "cl_menu_alpha: menu background transparency" --status-ru "Настраивает значение «прозрачность меню»." --name-ru "Прозрачность меню" "Menu opacity" cl_menu_alpha 0 1 0.05
    blank
    action --q2prox --align --status "Open the modern server browser" --status-ru "Выполняет действие «обзор серверов»." --name-ru "Обзор серверов..." "Browse servers..." serverbrowser_open_modern
    action --align --status "Re-apply video backend / fullscreen mode" --status-ru "Применяет изменения видеорежима и перезапускает видео." --name-ru "Перезапустить видео..." "Restart video..." vid_restart
end

// ===========================================================================
// SECTION 5D — Video & Display
// ===========================================================================

begin g_video
    title "Video & Display"
    title-ru "Видео и экран"
    style --no-compact
    pairs --status "vid_driver: win32egl = default (capture-friendly ANGLE), win32wgl = classic OpenGL fallback" --status-ru "Выбирает значение «видеобэкенд»." --name-ru "Видеобэкенд" --items-ru "Win32egl|Win32wgl" "Video backend" vid_driver "Win32egl" win32egl "Win32wgl" win32wgl
    strings --status "vid_resolution: desktop = native monitor mode" --status-ru "Выбирает значение «разрешение»." --name-ru "Разрешение" "Resolution" vid_resolution $$vid_resolution_list
    toggle --q2prox --status "vid_windowed: run in a normal resizable window" --status-ru "Включает или выключает параметр «оконный режим»." --name-ru "Оконный режим" --items-ru "Нет|Да" "Windowed mode" vid_windowed
    pairs --status "vid_fullscreen_type: fullscreen flavor when windowed is off" --status-ru "Выбирает значение «полноэкранный режим»." --name-ru "Полноэкранный режим" --items-ru "Полноэкранный рабочий стол|Эксклюзивный режим" "Fullscreen mode" vid_fullscreen_type "Desktop fullscreen" desktop "Exclusive fullscreen" exclusive
    strings --status "vid_refresh: max = highest available" --status-ru "Выбирает значение «частота обновления»." --name-ru "Частота обновления" "Refresh rate" vid_refresh $$vid_refresh_list
    values --q2prox --live --status "vid_desktop_fullscreen_fit: fill = native, aspect = preserve selected mode aspect with black bars" --status-ru "Выбирает значение «подгонка полного экрана»." --name-ru "Подгонка полного экрана" --items-ru "Заполнить|По пропорциям" "Fullscreen fit" vid_desktop_fullscreen_fit fill aspect
    range --q2prox --status "vid_desktop_fullscreen_margin: shrink borderless window" --status-ru "Настраивает значение «отступ полного экрана»." --name-ru "Отступ полного экрана" "Fullscreen margin" vid_desktop_fullscreen_margin 0 16 1
    blank
    range --q2prox --format "%d%%" --status "gl_render_scale: internal 3D scene resolution (100=native)" --status-ru "Настраивает значение «масштаб рендера»." --name-ru "Масштаб рендера" "Render scale" gl_render_scale 100 1000 25
    values --q2prox --status "gl_render_scale_mode: auto=best path, texture=bloom/waterwarp, blit=high range, tiled=extreme" --status-ru "Выбирает значение «режим масштабирования»." --name-ru "Режим масштабирования" --items-ru "Авто|Текстура|Копирование|Плиткой" "Scale mode" gl_render_scale_mode auto texture blit tiled
    values --q2prox --status "gl_render_scale_filter: resolve quality" --status-ru "Выбирает значение «фильтр масштабирования»." --name-ru "Фильтр масштабирования" --items-ru "Быстро|Баланс|Качество" "Scale filter" gl_render_scale_filter fast balanced quality
    blank
    action --q2prox --align --status "OLED protection suite" --status-ru "Открывает раздел «защита OLED»." --name-ru "Защита OLED..." "OLED protection..." pushmenu q2prox_oled
    action --q2prox --align --status "Fog, bloom, color grading, sharpen, cel-shading, etc." --status-ru "Открывает раздел «визуальные эффекты»." --name-ru "Визуальные эффекты..." "Visual effects..." pushmenu q2prox_vfx
    action --align --status "Apply vid_driver / fullscreen changes now" --status-ru "Применяет изменения видеорежима и перезапускает видео." --name-ru "Перезапустить видео..." "Restart video..." vid_restart
    action --q2prox --align --status "Print render scale status" --status-ru "Выполняет действие «инфо о масштабе рендера»." --name-ru "Инфо о масштабе рендера..." "Render scale info..." gl_render_scale_info
end

// ===========================================================================
// SECTION 5E — Sound & Acoustics
// ===========================================================================

begin g_sound
    title "Sound & Acoustics"
    title-ru "Звук и акустика"
    style --no-compact
    values --live --status "s_enable: OpenAL is required for al_profile, HRTF, room acoustics" --status-ru "Выбирает значение «звуковой движок»." --name-ru "Звуковой движок" --items-ru "Без звука|Программный (DMA)|OpenAL" "Sound engine" s_enable "no sound" "software (DMA)" "OpenAL"
    range --status "Adjust this value." --status-ru "Настраивает значение «общая громкость»." --live --name-ru "Общая громкость" "Master volume" s_volume 0 1
    range --status "Adjust this value." --status-ru "Настраивает значение «громкость музыки»." --live --name-ru "Громкость музыки" "Music volume" ogg_volume 0 1
    values --live --status "s_ambient: 0 = no, 1 = yes, 2 = only player's own" --status-ru "Выбирает значение «фоновые звуки»." --name-ru "Фоновые звуки" --items-ru "Нет|Да|Только свои" "Ambient sounds" s_ambient "no" "yes" "only player's own"
    blank
    action --q2prox --align --status "OpenAL profile, reverb, HRTF, room acoustics" --status-ru "Открывает раздел «OpenAL и акустика»." --name-ru "OpenAL и акустика..." "OpenAL & acoustics..." pushmenu q2prox_sound
    action --q2prox --align --status "Headphone 3D / HRTF / crossfeed / encoding" --status-ru "Открывает раздел «3D-звук в наушниках»." --name-ru "3D-звук в наушниках..." "Headphone 3D sound..." pushmenu q2prox_binaural
    action --q2prox --align --status "Per-weapon and per-category volumes" --status-ru "Открывает раздел «громкость оружия / игрока»." --name-ru "Громкость оружия / игрока..." "Weapon / player volumes..." pushmenu q2prox_weaponvol
    action --q2prox --align --status "In-game voice chat (PTT / VAD, LiveKit, OpenAL required for tx/rx in Phase 1)" --status-ru "Открывает раздел «голосовой чат»." --name-ru "Голосовой чат..." "Voice chat..." pushmenu q2prox_voice
    blank
    toggle --q2prox --live --status "s_mute_when_inactive: mute when the window is not focused (Alt+Tab)" --status-ru "Включает или выключает параметр «глушить вне фокуса»." --name-ru "Глушить вне фокуса" --items-ru "Нет|Да" "Mute when inactive" s_mute_when_inactive
    action --align --status "Apply sound engine changes" --status-ru "Выполняет действие «перезапустить звук»." --name-ru "Перезапустить звук..." "Restart sound..." snd_restart
end

// ===========================================================================
// SECTION 5F — Interface & HUD
// ===========================================================================

begin g_interface
    title "Interface & HUD"
    title-ru "Интерфейс и HUD"
    style --no-compact
    action --status "HUD size, console scale, menu scale, viewsize, ping graph" --status-ru "Открывает раздел «размер и компоновка»." --name-ru "Размер и компоновка..." "Size & layout..." pushmenu g_interface_size
    action --status "HUD / console / menu transparency" --status-ru "Открывает раздел «Прозрачность»." --name-ru "Прозрачность..." "Transparency..." pushmenu g_interface_alpha
    action --status "Crosshair / aim cursor" --status-ru "Открывает раздел «прицел»." --name-ru "Прицел..." "Crosshair..." pushmenu g_interface_crosshair
end

begin g_interface_size
    title "Size & Layout"
    title-ru "Размер и компоновка"
    style --no-compact
    range --status "Adjust this value." --status-ru "Настраивает значение «экран / размер вида»." --live --name-ru "Экран / размер вида" "Screen / viewsize" viewsize 40 100 10
    pairs --live --status "scr_scale: HUD scale (auto/0, 1x..10x — engine clamps to [1,10])" --status-ru "Выбирает значение «масштаб HUD»." --name-ru "Масштаб HUD" --items-ru "Авто|1X|2X|3X|4X|5X|6X|8X|10X" "HUD scale" scr_scale auto 0 1x 1 2x 2 3x 3 4x 4 5x 5 6x 6 8x 8 10x 10
    pairs --live --status "con_scale: console scale (auto/0, 1x..10x — same range as HUD/menu scale)" --status-ru "Выбирает значение «масштаб консоли»." --name-ru "Масштаб консоли" --items-ru "Авто|1X|2X|3X|4X|5X|6X|8X|10X" "Console scale" con_scale auto 0 1x 1 2x 2 3x 3 4x 4 5x 5 6x 6 8x 8 10x 10
    pairs --live --status "ui_scale: menu scale (auto/0, 1x..10x — same range as HUD/console scale)" --status-ru "Выбирает значение «масштаб меню»." --name-ru "Масштаб меню" --items-ru "Авто|1X|2X|3X|4X|5X|6X|8X|10X" "Menu scale" ui_scale auto 0 1x 1 2x 2 3x 3 4x 4 5x 5 6x 6 8x 8 10x 10
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «график пинга»." --live --name-ru "График пинга" --items-ru "Нет|Да" "Ping graph" scr_lag_draw
    values --status "Choose this value." --status-ru "Выбирает значение «демо-панель»." --live --name-ru "Демо-панель" --items-ru "Нет|Да|Подробно" "Demo bar" scr_demobar no yes verbose
end

begin g_interface_alpha
    title "Transparency"
    title-ru "Прозрачность"
    style --no-compact
    range --live --precision 2 --status "scr_alpha: HUD opacity" --status-ru "Настраивает значение «прозрачность HUD»." --name-ru "Прозрачность HUD" "HUD opacity" scr_alpha 0 1 0.05
    range --live --precision 2 --status "con_alpha: console opacity" --status-ru "Настраивает значение «прозрачность консоли»." --name-ru "Прозрачность консоли" "Console opacity" con_alpha 0 1 0.05
    range --q2prox --live --precision 2 --status "cl_menu_alpha: menu background transparency" --status-ru "Настраивает значение «прозрачность меню»." --name-ru "Прозрачность меню" "Menu opacity" cl_menu_alpha 0 1 0.05
end

begin g_interface_crosshair
    title "Crosshair / Aim Cursor"
    title-ru "Прицел"
    style --no-compact
    values --live --status "crosshair: aim cursor style" --status-ru "Выбирает значение «стиль прицела»." --name-ru "Стиль прицела" --items-ru "Нет|Крест|Точка|Угол" "Crosshair style" crosshair none cross dot angle
    pairs --status "Choose this value." --status-ru "Выбирает значение «размер прицела»." --live --name-ru "Размер прицела" --items-ru "0.5x|1X|2X" "Crosshair scale" ch_scale 0.5x 0.5 1x 1 2x 2
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «цвет по здоровью»." --live --name-ru "Цвет по здоровью" --items-ru "Нет|Да" "Color by health" ch_health
    range --status "Adjust this value." --status-ru "Настраивает значение «красный канал»." --live --name-ru "Красный канал" "Red channel" ch_red 0 1
    range --status "Adjust this value." --status-ru "Настраивает значение «зелёный канал»." --live --name-ru "Зелёный канал" "Green channel" ch_green 0 1
    range --status "Adjust this value." --status-ru "Настраивает значение «синий канал»." --live --name-ru "Синий канал" "Blue channel" ch_blue 0 1
    range --status "Adjust this value." --status-ru "Настраивает значение «альфа-канал»." --live --name-ru "Альфа-канал" "Alpha channel" ch_alpha 0 1
end

// ===========================================================================
// SECTION 5G — Controls & Weapon View
// ===========================================================================

begin g_controls
    title "Controls & Weapon View"
    title-ru "Управление и вид оружия"
    style --no-compact
    action --status "Open this menu section." --status-ru "Открывает раздел «настройка ввода»." --name-ru "Настройка ввода..." "Input setup..." pushmenu g_input
    action --status "Open this menu section." --status-ru "Открывает раздел «бинды клавиш»." --name-ru "Бинды клавиш..." "Key bindings..." pushmenu g_keys
    action --status "Open this menu section." --status-ru "Открывает раздел «бинды оружия»." --name-ru "Бинды оружия..." "Weapon bindings..." pushmenu g_weapons
    action --status "Open this menu section." --status-ru "Открывает раздел «Вид оружия и рука»." --q2prox --name-ru "Вид оружия и рука..." "Weapon view & hand..." pushmenu g_weapon_view
    action --status "Open this menu section." --status-ru "Открывает раздел «основы движения»." --q2prox --name-ru "Основы движения..." "Movement basics..." pushmenu g_movement_basics
    action --status "Open this menu section." --status-ru "Открывает раздел «мышь и зум»." --q2prox --name-ru "Мышь и зум..." "Mouse & zoom..." pushmenu q2prox_mouse
end

begin g_input
    title "Input Setup"
    title-ru "Настройка ввода"
    style --no-compact
    field --status "Edit this value." --status-ru "Редактирует значение «чувств. мыши»." --numeric --width 8 --name-ru "Чувств. мыши" "Mouse sens" sensitivity
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «авточувствительность»." --name-ru "Авточувствительность" --items-ru "Нет|Да" "Auto sens" m_autosens
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «фильтр мыши»." --name-ru "Фильтр мыши" --items-ru "Нет|Да" "Mouse filter" m_filter
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «свободный обзор»." --name-ru "Свободный обзор" --items-ru "Нет|Да" "Free look" freelook
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «всегда бег»." --name-ru "Всегда бег" --items-ru "Нет|Да" "Always run" cl_run
end

begin g_keys
    title "Key Bindings"
    title-ru "Привязки клавиш"
    style --no-compact
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «атака»." --name-ru "Атака" "Attack" +attack
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «следующее оружие»." --name-ru "Следующее оружие" "Next weapon" weapnext
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «предыдущее оружие»." --name-ru "Предыдущее оружие" "Previous weapon" weapprev
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «идти вперёд»." --name-ru "Идти вперёд" "Walk forward" +forward
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «назад»." --name-ru "Назад" "Backpedal" +back
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «бег»." --name-ru "Бег" "Run" +speed
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «шаг влево»." --name-ru "Шаг влево" "Step left" +moveleft
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «шаг вправо»." --name-ru "Шаг вправо" "Step right" +moveright
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «вверх / прыжок»." --name-ru "Вверх / прыжок" "Up / jump" +moveup
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «вниз / присесть»." --name-ru "Вниз / присесть" "Down / crouch" +movedown
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «инвентарь»." --name-ru "Инвентарь" "Inventory" inven
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «использовать предмет»." --name-ru "Использовать предмет" "Use item" invuse
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «выбросить предмет»." --name-ru "Выбросить предмет" "Drop item" invdrop
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «пред. предмет»." --name-ru "Пред. предмет" "Prev item" invprev
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «след. предмет»." --name-ru "След. предмет" "Next item" invnext
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «компьютер помощи»." --name-ru "Компьютер помощи" "Help computer" help
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «пауза»." --name-ru "Пауза" "Pause game" pause
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «таблица счёта»." --name-ru "Таблица счёта" "Scoreboard" score
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «чат»." --name-ru "Чат" "Chat" messagemode
    blank
    action --status "Open this menu section." --status-ru "Открывает раздел «классические бинды»." --align --name-ru "Классические бинды..." "Legacy keys..." pushmenu g_legacykeys
end

begin g_legacykeys
    title "Legacy Key Bindings"
    title-ru "Классические привязки клавиш"
    style --no-compact
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «поворот влево»." --name-ru "Поворот влево" "Turn left" +left
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «поворот вправо»." --name-ru "Поворот вправо" "Turn right" +right
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «шаг вбок»." --name-ru "Шаг вбок" "Sidestep" +strafe
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «смотреть вверх»." --name-ru "Смотреть вверх" "Look up" +lookup
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «смотреть вниз»." --name-ru "Смотреть вниз" "Look down" +lookdown
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «центрировать вид»." --name-ru "Центрировать вид" "Center view" centerview
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «обзор мышью»." --name-ru "Обзор мышью" "Mouse look" +mlook
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «обзор клавиатурой»." --name-ru "Обзор клавиатурой" "Keyboard look" +klook
end

begin g_weapons
    title "Weapon Bindings"
    title-ru "Привязки оружия"
    style --no-compact
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «бластер»." --name-ru "Бластер" "Blaster" "use Blaster"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «дробовик»." --name-ru "Дробовик" "Shotgun" "use Shotgun"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «супердробовик»." --name-ru "Супердробовик" "Super shotgun" "use Super Shotgun"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «пулемёт»." --name-ru "Пулемёт" "Machinegun" "use Machinegun"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «чейнган»." --name-ru "Чейнган" "Chaingun" "use Chaingun"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «гранатомёт»." --name-ru "Гранатомёт" "Grenade launcher" "use Grenade Launcher"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «ракетница»." --name-ru "Ракетница" "Rocket launcher" "use Rocket Launcher"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «гипербластер»." --name-ru "Гипербластер" "Hyperblaster" "use HyperBlaster"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «Railgun»." --name-ru "Railgun" "Railgun" "use Railgun"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «BFG10K»." --name-ru "BFG10K" "Bfg10k" "use BFG10K"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «гранаты»." --name-ru "Гранаты" "Grenades" "use Grenades"
end

begin g_weapon_view
    title "Weapon View & Hand"
    title-ru "Вид оружия и рука"
    style --no-compact
    values --live --status "hand: server-authoritative hand (affects projectile spawn)" --status-ru "Выбирает значение «рука (сервер)»." --name-ru "Рука (сервер)" --items-ru "Справа|Слева|Центр" "Hand (server)" hand right left center
    values --live --status "cl_gun: view-weapon visibility (0=off, 1=normal, 2=centered model)" --status-ru "Выбирает значение «модель оружия»." --name-ru "Модель оружия" --items-ru "Выкл.|Вкл.|По центру" "View weapon" cl_gun off on centered
    range --live --precision 2 --status "cl_gunalpha: view-weapon opacity" --status-ru "Настраивает значение «прозрачность оружия»." --name-ru "Прозрачность оружия" "View weapon alpha" cl_gunalpha 0 1 0.05
    range --live --precision 0 --status "cl_gunfov: view-weapon FOV override (90=default)" --status-ru "Настраивает значение «FOV оружия»." --name-ru "FOV оружия" "View weapon FOV" cl_gunfov 60 120 5
    range --live --precision 1 --status "cl_gun_x: forward offset" --status-ru "Настраивает значение «оружие X»." --name-ru "Оружие X" "View weapon X" cl_gun_x -10 10 0.5
    range --live --precision 1 --status "cl_gun_y: right offset" --status-ru "Настраивает значение «оружие Y»." --name-ru "Оружие Y" "View weapon Y" cl_gun_y -10 10 0.5
    range --live --precision 1 --status "cl_gun_z: up offset" --status-ru "Настраивает значение «оружие Z»." --name-ru "Оружие Z" "View weapon Z" cl_gun_z -10 10 0.5
end

begin g_movement_basics
    title "Movement Basics"
    title-ru "Базовое движение"
    style --no-compact
    values --status "cl_mouse_behavior_mode: global mouse feel. q2pro = current default (raw input + m_accel + m_autosens). r1q2 = compatibility (classic transform, R1Q2 lookstrafe; backend from m_directinput: 0=legacy, 1/2=DI-like relative)" --status-ru "Выбирает значение «поведение мыши»." --name-ru "Поведение мыши" --items-ru "Q2PRO|R1q2" "Mouse behavior" cl_mouse_behavior_mode q2pro r1q2
    values --status "cl_movement_feel_mode: client command timing (r1q2-like = classic)" --status-ru "Выбирает значение «ощущение движения»." --name-ru "Ощущение движения" --items-ru "Q2PRO|Как r1q2" "Movement feel" cl_movement_feel_mode q2pro r1q2-like
    values --status "cl_predict_move_mode: client prediction backend" --status-ru "Выбирает значение «предикт клиента»." --name-ru "Предикт клиента" --items-ru "Современный (Q2PRO/Q2PRO-X)|Классический q2pro-m/r1826" "Client predict" cl_predict_move_mode "modern (new q2pro/Q2PRO-X)" "legacy (q2pro-m/q2pro r1826)"
    values --status "cl_step_smoothing_mode: local stair-step feel" --status-ru "Выбирает значение «сглаживание ступеней»." --name-ru "Сглаживание ступеней" --items-ru "Q2PRO|R1q2: 1|R1q2: 2|R1q2: 3" "Step smoothing" cl_step_smoothing_mode q2pro r1q2-1 r1q2-2 r1q2-3
    toggle --status "cl_fixedmove: normalize movement to 10 ms command clock" --status-ru "Включает или выключает параметр «фиксированный шаг движения»." --name-ru "Фиксированный шаг движения" --items-ru "Нет|Да" "Fixed move" cl_fixedmove
    values --status "cl_predict_player: local jump/fall prediction. When cl_predict_ping_min_ms > 0, also gated by the shared adaptive ping gate." --status-ru "Выбирает значение «предикт игрока»." --name-ru "Предикт игрока" --items-ru "Выкл.|Вкл.|Отладка" "Predict player" cl_predict_player off on debug
    blank
    action --align --status "Print resolved movement feel state" --status-ru "Выполняет действие «инфо об ощущении движения»." --name-ru "Инфо об ощущении движения..." "Movement feel info..." movementfeel_info
end

// ===========================================================================
// SECTION 5G.1 — Mouse & Zoom (hold-to-zoom + mouse basics)
// ===========================================================================

begin q2prox_mouse
    title "Q2PRO-X / Mouse & Zoom"
    title-ru "Q2PRO-X / Мышь и зум"
    style --no-compact
    values --live --status "cl_mouse_behavior_mode: global mouse feel (q2pro default / r1q2 compat)" --status-ru "Выбирает значение «поведение мыши»." --name-ru "Поведение мыши" --items-ru "Q2PRO|R1q2" "Mouse behavior" cl_mouse_behavior_mode q2pro r1q2
    range --live --precision 2 --status "sensitivity: base mouse sensitivity multiplier" --status-ru "Настраивает значение «чувствительность»." --name-ru "Чувствительность" "Sensitivity" sensitivity 0.1 30 0.1
    range --live --precision 3 --status "m_pitch: vertical mouse gain (negative = invert Y)" --status-ru "Настраивает значение «вертикальное усиление»." --name-ru "Вертикальное усиление" "Pitch gain" m_pitch -0.5 0.5 0.001
    range --live --precision 3 --status "m_yaw: horizontal mouse gain" --status-ru "Настраивает значение «горизонтальное усиление»." --name-ru "Горизонтальное усиление" "Yaw gain" m_yaw 0 0.5 0.001
    range --live --precision 2 --status "m_accel: Q2PRO-X mouse acceleration (no effect in r1q2 mode)" --status-ru "Настраивает значение «ускорение мыши»." --name-ru "Ускорение мыши" "Mouse accel" m_accel 0 1 0.05
    toggle --live --status "m_filter: smooth raw delta by averaging with the previous frame" --status-ru "Включает или выключает параметр «фильтр мыши»." --name-ru "Фильтр мыши" --items-ru "Нет|Да" "Mouse filter" m_filter
    range --live --precision 0 --status "m_autosens: non-zoom FOV-proportional sens scaling (q2pro mouse path only). 0=OFF; 91..179 set base FOV; any other non-zero = base 90. Separate from +zoom." --status-ru "Настраивает значение «базовый FOV авточувствительности»." --name-ru "Базовый FOV авточувствительности" "Baseline auto-sens FOV" m_autosens 0 179 1
    toggle --live --status "freelook: free mouse look always on (no hold-mlook required)" --status-ru "Включает или выключает параметр «свободный обзор»." --name-ru "Свободный обзор" --items-ru "Нет|Да" "Freelook" freelook
    blank
    range --live --precision 0 --status "cl_zoom_fov: horizontal FOV while +zoom is held. Clamped to never exceed the live base FOV — zoom-IN only." --status-ru "Настраивает значение «FOV зума»." --name-ru "FOV зума" "Zoom FOV" cl_zoom_fov 10 110 1
    values --live --status "cl_zoom_sensitivity_mode: auto uses tangent-space FOV ratios (geometrically correct); manual uses the cvar below" --status-ru "Выбирает значение «режим чувствительности зума»." --name-ru "Режим чувствительности зума" --items-ru "Авто|Ручной" "Zoom sens mode" cl_zoom_sensitivity_mode auto manual
    range --live --precision 2 --status "cl_zoom_sensitivity: full-zoom sensitivity (same units as `sensitivity`). Used only in manual mode." --status-ru "Настраивает значение «чувствительность зума (ручная)»." --name-ru "Чувствительность зума (ручная)" "Zoom sens (manual)" cl_zoom_sensitivity 0.1 30 0.1
    range --live --precision 2 --status "cl_zoom_time: in/out transition duration (sec). 0 = instant. Drives FOV + sensitivity from the SAME transition so they never desync." --status-ru "Настраивает значение «время зума (сек)»." --name-ru "Время зума (сек)" "Zoom time (sec)" cl_zoom_time 0 1.0 0.05
    blank
    toggle --live --status "cl_zoom_walk: hold +speed together with +zoom (walk while zoomed). Coexists with a real +speed bind. Off by default." --status-ru "Включает или выключает параметр «ходьба при зуме»." --name-ru "Ходьба при зуме" --items-ru "Нет|Да" "Walk while zoomed" cl_zoom_walk
    blank
    toggle --live --status "cl_zoom_crosshair_enable: use the zoom crosshair below while +zoom is held. Off = base crosshair stays. Instant swap." --status-ru "Включает или выключает параметр «зум-прицел»." --name-ru "Зум-прицел" --items-ru "Нет|Да" "Zoom crosshair" cl_zoom_crosshair_enable
    values --live --status "cl_zoom_crosshair: style while zoomed (only if master on)" --status-ru "Выбирает значение «стиль зума»." --name-ru "Стиль зума" --items-ru "Нет|Крест|Точка|Угол" "Zoom style" cl_zoom_crosshair none cross dot angle
    pairs --live --status "cl_zoom_ch_scale: zoom crosshair scale" --status-ru "Выбирает значение «масштаб зума»." --name-ru "Масштаб зума" --items-ru "0.5x|1X|2X" "Zoom scale" cl_zoom_ch_scale 0.5x 0.5 1x 1 2x 2
    toggle --live --status "cl_zoom_ch_health: color zoom crosshair by current health" --status-ru "Включает или выключает параметр «цвет зума по здоровью»." --name-ru "Цвет зума по здоровью" --items-ru "Нет|Да" "Zoom color by health" cl_zoom_ch_health
    range --live --precision 2 --status "cl_zoom_ch_red: red (ignored if color by health)" --status-ru "Настраивает значение «красный зум»." --name-ru "Красный зум" "Zoom red" cl_zoom_ch_red 0 1 0.05
    range --live --precision 2 --status "cl_zoom_ch_green: green (ignored if color by health)" --status-ru "Настраивает значение «зелёный зум»." --name-ru "Зелёный зум" "Zoom green" cl_zoom_ch_green 0 1 0.05
    range --live --precision 2 --status "cl_zoom_ch_blue: blue (ignored if color by health)" --status-ru "Настраивает значение «синий зум»." --name-ru "Синий зум" "Zoom blue" cl_zoom_ch_blue 0 1 0.05
    range --live --precision 2 --status "cl_zoom_ch_alpha: alpha of zoom crosshair" --status-ru "Настраивает значение «прозрачность зума»." --name-ru "Прозрачность зума" "Zoom alpha" cl_zoom_ch_alpha 0 1 0.05
    blank
    bind --status "Hold to zoom to cl_zoom_fov; release to zoom back to the live base FOV" --status-ru "Назначает клавишу для действия «удерживать: зум»." --name-ru "Удерживать: зум" "Hold: zoom" +zoom
end

// ===========================================================================
// SECTION 5H — Visibility & Visuals
// ===========================================================================

begin g_visibility
    title "Visibility & Visuals"
    title-ru "Видимость и эффекты"
    style --no-compact
    action --status "Open this menu section." --status-ru "Открывает раздел «Подсветка видимости»." --q2prox --name-ru "Подсветка видимости..." "Visibility highlights..." pushmenu q2prox_vis
    action --status "Open this menu section." --status-ru "Открывает раздел «Частицы и видимость эффектов»." --name-ru "Частицы и видимость эффектов..." "Particles & effect visibility..." pushmenu g_particles
    action --status "Open this menu section." --status-ru "Открывает раздел «настроить след Railgun»." --name-ru "Настроить след Railgun..." "Rail trail setup..." pushmenu g_railtrail
    action --status "Open this menu section." --status-ru "Открывает раздел «визуальные эффекты»." --q2prox --name-ru "Визуальные эффекты..." "Visual effects..." pushmenu q2prox_vfx
end

begin g_particles
    title "Particles & Effect Visibility"
    title-ru "Частицы и видимость эффектов"
    style --no-compact
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «частицы»." --live --name-ru "Частицы" --items-ru "Нет|Да" "Particles" cl_particles
    blank
    toggle --live --status "cl_disable_particles bit 0: yes = grenade explosion particles visible" --status-ru "Включает или выключает параметр «граната взрыв частицы»." --name-ru "Граната взрыв частицы" --items-ru "Нет|Да" "Grenade explosion particles" cl_disable_particles ~0
    toggle --live --status "cl_disable_particles bit 1: yes = grenade trail particles visible" --status-ru "Включает или выключает параметр «частицы следа гранаты»." --name-ru "Частицы следа гранаты" --items-ru "Нет|Да" "Grenade trail particles" cl_disable_particles ~1
    toggle --live --status "cl_disable_particles bit 2: yes = rocket explosion particles visible" --status-ru "Включает или выключает параметр «ракета взрыв частицы»." --name-ru "Ракета взрыв частицы" --items-ru "Нет|Да" "Rocket explosion particles" cl_disable_particles ~2
    toggle --live --status "cl_disable_particles bit 3: yes = rocket trail particles visible" --status-ru "Включает или выключает параметр «частицы следа ракеты»." --name-ru "Частицы следа ракеты" --items-ru "Нет|Да" "Rocket trail particles" cl_disable_particles ~3
    toggle --live --status "cl_disable_particles bit 4: yes = blood particles visible" --status-ru "Включает или выключает параметр «кровь частицы»." --name-ru "Кровь частицы" --items-ru "Нет|Да" "Blood particles" cl_disable_particles ~4
    toggle --live --status "cl_own_blood: Q2PRO-X local filter for blood caused by hits on the local player" --status-ru "Включает или выключает параметр «своя кровь»." --name-ru "Своя кровь" --items-ru "Нет|Да" "Own blood" cl_own_blood
    toggle --live --status "cl_disable_particles bit 5: yes = blaster trail particles visible" --status-ru "Включает или выключает параметр «частицы следа бластера»." --name-ru "Частицы следа бластера" --items-ru "Нет|Да" "Blaster trail particles" cl_disable_particles ~5
    blank
    toggle --live --status "cl_disable_explosions bit 0: yes = grenade explosion sprites visible" --status-ru "Включает или выключает параметр «граната взрыв спрайты»." --name-ru "Граната взрыв спрайты" --items-ru "Нет|Да" "Grenade explosion sprites" cl_disable_explosions ~0
    toggle --live --status "cl_disable_explosions bit 1: yes = rocket explosion sprites visible" --status-ru "Включает или выключает параметр «ракета взрыв спрайты»." --name-ru "Ракета взрыв спрайты" --items-ru "Нет|Да" "Rocket explosion sprites" cl_disable_explosions ~1
    blank
    toggle --live --status "gl_waterwarp: screen warp under water" --status-ru "Включает или выключает параметр «искажение воды»." --name-ru "Искажение воды" --items-ru "Нет|Да" "Water warp" gl_waterwarp
end

begin g_railtrail
    title "Rail Trail Setup"
    title-ru "Настройка следа Railgun"
    style --no-compact
    values --status "Choose this value." --status-ru "Выбирает значение «тип следа Railgun»." --live --name-ru "Тип следа Railgun" --items-ru "По умолчанию|Только ядро|Ядро и спираль" "Rail trail type" cl_railtrail_type "default" "core only" "core and spiral"
    range --status "Adjust this value." --status-ru "Настраивает значение «длительность»." --live --name-ru "Длительность" "Duration" cl_railtrail_time 0.1 3.0 0.1
    range --status "Adjust this value." --status-ru "Настраивает значение «ширина ядра»." --live --name-ru "Ширина ядра" "Core width" cl_railcore_width 1 6 1
    range --status "Adjust this value." --status-ru "Настраивает значение «радиус спирали»." --live --name-ru "Радиус спирали" "Spiral radius" cl_railspiral_radius 1 6 1
    strings --status "Choose this value." --status-ru "Выбирает значение «цвет ядра»." --live --name-ru "Цвет ядра" --items-ru "Чёрный|Красный|Зелёный|Жёлтый|Синий|Циан|Маджента|Белый" "Core color" cl_railcore_color black red green yellow blue cyan magenta white
    strings --status "Choose this value." --status-ru "Выбирает значение «цвет спирали»." --live --name-ru "Цвет спирали" --items-ru "Чёрный|Красный|Зелёный|Жёлтый|Синий|Циан|Маджента|Белый" "Spiral color" cl_railspiral_color black red green yellow blue cyan magenta white
end

// ===========================================================================
// SECTION 5I — Skins & Models
// ===========================================================================

begin g_skins
    title "Skins & Models"
    title-ru "Скины и модели"
    style --no-compact
    action --status "Pick model / skin / name via built-in player setup page" --status-ru "Открывает раздел «настройка игрока»." --name-ru "Настройка игрока" "Player setup" pushmenu players
    blank
    toggle --live --status "cl_noskins: disable custom player skins" --status-ru "Включает или выключает параметр «без своих скинов»." --name-ru "Без своих скинов" --items-ru "Нет|Да" "No custom skins" cl_noskins
    toggle --live --status "cl_vwep: show visible weapons on player models" --status-ru "Включает или выключает параметр «видимое оружие игроков»." --name-ru "Видимое оружие игроков" --items-ru "Нет|Да" "Visible weapons on players" cl_vwep
    blank
    action --align --status "Download toggles for skins / models / textures" --status-ru "Открывает раздел «загрузки»." --name-ru "Загрузки..." "Download options..." pushmenu g_downloads
    action --q2prox --align --status "Open the mod command overlay for mod-specific skin commands (teamskin, eskin, etc.)" --status-ru "Открывает раздел «оверлей команд мода»." --name-ru "Оверлей команд мода..." "Mod command overlay..." pushmenu q2prox_modhelp
end

begin g_downloads
    title "Downloads"
    title-ru "Загрузки"
    style --no-compact
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «разрешить загрузки»." --live --name-ru "Разрешить загрузки" --items-ru "Нет|Да" "Allow downloading" allow_download
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «карты»." --live --name-ru "Карты" --items-ru "Нет|Да" "Maps" allow_download_maps
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «модели игроков / скины»." --live --name-ru "Модели игроков / скины" --items-ru "Нет|Да" "Player models / skins" allow_download_players
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «модели»." --live --name-ru "Модели" --items-ru "Нет|Да" "Models" allow_download_models
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «текстуры»." --live --name-ru "Текстуры" --items-ru "Нет|Да" "Textures" allow_download_textures
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «звуки»." --live --name-ru "Звуки" --items-ru "Нет|Да" "Sounds" allow_download_sounds
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «картинки»." --live --name-ru "Картинки" --items-ru "Нет|Да" "Pics" allow_download_pics
    blank
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «HTTP-загрузки»." --live --name-ru "HTTP-загрузки" --items-ru "Нет|Да" "HTTP downloads" cl_http_downloads
end

// ===========================================================================
// SECTION 5K — Advanced Q2PRO-X (power-user landing)
// ===========================================================================

begin g_advanced
    title "Advanced Q2PRO-X"
    title-ru "Продвинутые Q2PRO-X"
    style --no-compact
    action --status "Adaptive prediction-error smoothing, HUD, tuning weights" --status-ru "Открывает раздел «laghax»." --name-ru "Laghax" "Laghax" pushmenu q2prox_laghax
    action --status "Ghost weapon prediction toggles and debug" --status-ru "Открывает раздел «предикт оружия»." --name-ru "Предикт оружия" "Weapon predicts" pushmenu q2prox_predict
    action --status "Predict-aware visual-only filter for muzzle, projectiles, impacts, explosions" --status-ru "Открывает раздел «видимость частей оружия»." --name-ru "Видимость частей оружия" "Weapon parts visibility" pushmenu q2prox_weaponfx
    action --status "Movement feel, predict mode, step smoothing, fixed move" --status-ru "Открывает раздел «движение и игрок»." --name-ru "Движение и игрок" "Movement & player" pushmenu q2prox_movement
    action --status "Display backend, desktop fullscreen, render scale" --status-ru "Открывает раздел «вывод и захват экрана»." --name-ru "Вывод и захват экрана" "Display & capture" pushmenu q2prox_video
    action --status "OpenAL profile, HRTF, reverb, runtime sound actions" --status-ru "Открывает раздел «Звук и акустика»." --name-ru "Звук и акустика" "Sound & acoustics" pushmenu q2prox_sound
    action --status "Headphone binaural 3D sound" --status-ru "Открывает раздел «бинауральный / 3D»." --name-ru "Бинауральный / 3D" "Binaural / 3D" pushmenu q2prox_binaural
    action --status "Per-weapon and per-category volumes" --status-ru "Открывает раздел «громкость звука»." --name-ru "Громкость звука" "Sound volumes" pushmenu q2prox_weaponvol
    action --status "Modern server browser overlay settings" --status-ru "Открывает раздел «браузер серверов»." --name-ru "Браузер серверов" "Server browser" pushmenu q2prox_serverbrowser
    action --status "Modern demo browser overlay: searchable library backed by a central demo index" --status-ru "Открывает раздел «браузер демок»." --name-ru "Браузер демок" "Demo browser" pushmenu q2prox_demobrowser
    action --status "Modern demo player overlay: play/pause, seek, draggable timeline, .mvd2-aware extras" --status-ru "Открывает раздел «проигрыватель демо»." --name-ru "Проигрыватель демо" "Demo player" pushmenu q2prox_demoplayer
    action --status "Advanced networking: client UDP source port auto-probe" --status-ru "Открывает раздел «сеть: расширенно»." --name-ru "Сеть: расширенно" "Advanced network" pushmenu q2prox_advanced_network
    action --status "Mod command overlay (OpenTDM/OpenFFA)" --status-ru "Открывает раздел «оверлей мода»." --name-ru "Оверлей мода" "Mod overlay" pushmenu q2prox_modhelp
    action --status "Passive same-team HUD for OpenTDM: teammate H/A/P, weapon, freshness" --status-ru "Открывает раздел «командный HUD OpenTDM»." --name-ru "Командный HUD OpenTDM" "OpenTDM team HUD" pushmenu q2prox_opentdm_teamhud
    action --status "Item / player visibility highlighting" --status-ru "Открывает раздел «видимость / подсветка»." --name-ru "Видимость / подсветка" "Visibility / highlights" pushmenu q2prox_vis
    action --status "Useful command binds, weapon drop modifier, macros" --status-ru "Открывает раздел «скрипты / бинды»." --name-ru "Скрипты / бинды" "Scripts / binds" pushmenu q2prox_scripts
end

// ===========================================================================
// SECTION 5L — Config & Files
// ===========================================================================

begin g_config
    title "Config & Files"
    title-ru "Конфиг и файлы"
    style --no-compact
    toggle --live --status "cl_q2prox_cfg_autosave: autosave Q2PRO-X config on menu changes (both scopes)" --status-ru "Включает или выключает параметр «автосохранение конфига»." --name-ru "Автосохранение конфига" --items-ru "Нет|Да" "Autosave config" cl_q2prox_cfg_autosave
    toggle --live --status "cl_altf4_exit: Alt+F4 quits the game" --status-ru "Включает или выключает параметр «выход по Alt+F4»." --name-ru "Выход по Alt+F4" --items-ru "Нет|Да" "Alt+F4 quit" cl_altf4_exit
    blank
    pairs --status "cl_q2prox_menu_mode: 0 = classic/additive (q2pro.menu + q2pro-x/*.menu + inject), 1 = guided/standalone (q2pro-x.menu2 only, default for Q2PRO-X 1.2 clean installs). Takes effect after restart." --status-ru "Выбирает значение «режим меню (нужен рестарт)»." --name-ru "Режим меню (нужен рестарт)" --items-ru "Классический|Проводник" "Menu mode (restart required)" cl_q2prox_menu_mode "Classic" 0 "Guided" 1
    blank
    pairs --q2prox --status "cl_console_utf8_ru: Russian display-localization baseline. auto = ON for Russian Windows, off = English/legacy, on = forced Russian. Display-only — does NOT enable Russian console input." --status-ru "Выбирает значение «русская локализация отображения»." --name-ru "Русская локализация отображения" --items-ru "Авто|Выкл.|Вкл." "Russian display localization" cl_console_utf8_ru "Auto" -1 "Off" 0 "On" 1
    pairs --q2prox --status "cl_menu_utf8_ru: game menu language override. inherit = follow Russian display localization, English = force English menu, Russian = force Russian menu." --status-ru "Выбирает значение «язык игрового меню»." --name-ru "Язык игрового меню" --items-ru "Как глобально|Английский|Русский" "Game menu language" cl_menu_utf8_ru "Inherit global" -1 "English" 0 "Russian" 1
    pairs --q2prox --live --status "cl_menu_font_mode: game menu typography. legacy = stock conchars 8x8, Jost = proportional smooth Jost Medieval Bold (menu-only). Console/HUD/browsers unaffected." --status-ru "Выбирает значение «шрифт меню»." --name-ru "Шрифт меню" --items-ru "Классический|Jost Medieval" "Menu font" cl_menu_font_mode "Legacy" 0 "Jost Medieval" 1
    pairs --q2prox --live --status "cl_menu_visual_style: visual renderer for script menus. legacy = old text-and-bitmap renderer, modern = Q2PRO-X modern chrome (logo, focus strip, modern slider, soft shadows). Live switch; does not change menu mode." --status-ru "Выбирает значение «стиль меню»." --name-ru "Стиль меню" --items-ru "Классический|Современный" "Menu visual style" cl_menu_visual_style "Legacy" 0 "Modern" 1
    toggle --q2prox --live --status "cl_menu_modern_autoscale: when menu visual style is modern and ui_scale is auto/0, fit the menu into the current content rect automatically. Manual ui_scale always wins." --status-ru "Включает автоподгонку современного меню под текущее разрешение, когда масштаб меню = авто." --name-ru "Автоподгонка современного меню" --items-ru "Нет|Да" "Modern menu autoscale" cl_menu_modern_autoscale
    pairs --q2prox --live --status "cl_console_font_mode: console typography. legacy = stock conchars, San Francisco = SFUIText Regular fixed-cell. Console-only; menu and browsers use their own toggles." --status-ru "Выбирает значение «шрифт консоли»." --name-ru "Шрифт консоли" --items-ru "Классический|San Francisco" "Console font" cl_console_font_mode "Legacy" 0 "San Francisco" 1
    pairs --q2prox --live --status "cl_browser_font_mode: browser/UI chrome typography. legacy = stock conchars, Iskra = Iskra Cyrillic Regular fixed-cell. Wired: server / cvar / demo browser, demo player overlay chrome, modhelp local UI. Raw server names / demo filenames stay on the byte-exact legacy path." --status-ru "Выбирает значение «шрифт браузеров». Подключены: server browser, cvar browser, demo browser, интерфейс проигрывателя демо, локальный интерфейс modhelp. Имена серверов и demo-файлов остаются на байт-в-байт легаси-пути." --name-ru "Шрифт браузеров" --items-ru "Классический|Iskra Cyrillic" "Browsers font" cl_browser_font_mode "Legacy" 0 "Iskra" 1
    pairs --q2prox --live --status "cl_hud_font_mode: HUD/local-overlay typography. legacy = stock conchars, Iskra = Iskra Cyrillic Regular fixed-cell. Wired trusted: net autoport, demo item timers, demo analytics, screen.c local labels (demo bar, LAGHAX), OpenTDM team HUD trusted chrome. Server-supplied layout / configstring / chat / scoreboard names stay on the byte-exact legacy path." --status-ru "Выбирает значение «шрифт HUD». Подключены доверенные поверхности: net autoport, demo item timers, demo analytics, локальные подписи screen.c (демо-полоса, LAGHAX), доверенный интерфейс OpenTDM team HUD. Серверные строки разметки, конфиг-строки, чат и имена в табло остаются на байт-в-байт легаси-пути." --name-ru "Шрифт HUD" --items-ru "Классический|Iskra Cyrillic" "HUD font" cl_hud_font_mode "Legacy" 0 "Iskra" 1
    blank
    bind --status "cvar_browser_toggle: toggle the Q2PRO-X cvar reference overlay" --status-ru "Назначает клавишу для действия «клавиша справочника переменных»." --name-ru "Клавиша справочника переменных" "Cvar browser toggle key" cvar_browser_toggle
    blank
    action --align --status "Save all Q2PRO-X settings (global + mod-local)" --status-ru "Выполняет действие «сохранить все конфиги»." --name-ru "Сохранить все конфиги..." "Save all configs..." q2prox_cfg_save
    action --align --status "Save global settings to baseq2/q2pro-x/q2pro-x.cfg" --status-ru "Выполняет действие «сохранить глобальный конфиг»." --name-ru "Сохранить глобальный конфиг..." "Save global config..." q2prox_cfg_save_global
    action --align --status "Save mod-local during normal play; save demo visual while a .dm2/.mvd2 is playing. Real target name appears in console on save." --status-ru "Выполняет действие «сохранить локальный конфиг»." --name-ru "Сохранить локальный конфиг..." "Save local config..." q2prox_cfg_save_local
    action --align --status "Always writes baseq2/q2pro-x/demo_visual/q2pro-x.demo.cfg (visual preset used only during demo playback)." --status-ru "Выполняет действие «сохранить демо-визуал конфиг»." --name-ru "Сохранить демо-визуал конфиг..." "Save demo visual config..." q2prox_cfg_save_demo_visual
    blank
    action --align --status "Reset all Q2PRO-X settings to defaults" --status-ru "Выполняет действие «сбросить всё»." --name-ru "Сбросить всё..." "Defaults all..." q2prox_cfg_defaults
    action --align --status "Reset only global settings to defaults" --status-ru "Выполняет действие «сбросить глобальные»." --name-ru "Сбросить глобальные..." "Defaults global..." q2prox_cfg_defaults_global
    action --align --status "Reset local cvars. In demo playback: ONLY visual cvars (binds preserved) → demo visual target. Otherwise: mod-local cvars + binds." --status-ru "Выполняет действие «сбросить локальные»." --name-ru "Сбросить локальные..." "Defaults local..." q2prox_cfg_defaults_local
    action --align --status "Reset only demo visual cvars to defaults (binds always preserved). Follow with q2prox_cfg_save_demo_visual to persist." --status-ru "Выполняет действие «сбросить демо-визуал»." --name-ru "Сбросить демо-визуал..." "Defaults demo visual..." q2prox_cfg_defaults_demo_visual
end

// ===========================================================================
// Help / About
// ===========================================================================

begin g_help
    title "Help / About Q2PRO-X"
    title-ru "Помощь / О Q2PRO-X"
    style --no-compact
    action --status "Browse every cvar live: search, description, values, source" --status-ru "Выполняет действие «справка по переменным»." --name-ru "Справка по переменным..." "Cvar reference..." cvar_help
    action --status "Cvar browser settings: alpha, language, text scale" --status-ru "Открывает раздел «настройки справочника переменных»." --name-ru "Настройки справочника переменных..." "Cvar browser settings..." pushmenu q2prox_cvarbrowser
    blank
    action --status "Print Q2PRO-X build version and component info" --status-ru "Выполняет действие «инфо о версии»." --name-ru "Инфо о версии..." "Version info..." version
    action --status "Print current movement feel and applied backend" --status-ru "Выполняет действие «инфо об ощущении движения»." --name-ru "Инфо об ощущении движения..." "Movement feel info..." movementfeel_info
    action --status "Print render scale path, max resolution, tile grid" --status-ru "Выполняет действие «инфо о масштабе рендера»." --name-ru "Инфо о масштабе рендера..." "Render scale info..." gl_render_scale_info
    action --status "Print OLED protection status + reasons" --status-ru "Выполняет действие «инфо OLED»." --name-ru "Инфо OLED..." "OLED info..." vid_oled_info
    action --status "Print reverb classifier / preset data" --status-ru "Выполняет действие «инфо о реверберации»." --name-ru "Инфо о реверберации..." "Reverb info..." al_reverb_info
    action --status "Print binaural runtime state" --status-ru "Выполняет действие «инфо о бинауральном звуке»." --name-ru "Инфо о бинауральном звуке..." "Binaural info..." al_binaural_info
    action --status "Print visual FX status" --status-ru "Выполняет действие «инфо о визуальных эффектах»." --name-ru "Инфо о визуальных эффектах..." "Visual fx info..." gl_visual_fx_info
    action --status "Print visibility item classification" --status-ru "Выполняет действие «инфо о видимости предметов»." --name-ru "Инфо о видимости предметов..." "Vis items info..." cl_vis_items_info
    blank
    action --status "List available console macros" --status-ru "Выполняет действие «список макросов»." --name-ru "Список макросов..." "List macros..." macrolist
end

// ===========================================================================
// Address Book (for legacy join-by-address workflow)
// ===========================================================================

begin g_addressbook
    banner m_banner_addressbook
    field --width 32 --center adr0
    field --width 32 --center adr1
    field --width 32 --center adr2
    field --width 32 --center adr3
    field --width 32 --center adr4
    field --width 32 --center adr5
    field --width 32 --center adr6
    field --width 32 --center adr7
    field --width 32 --center adr8
    field --width 32 --center adr9
    field --width 32 --center adr10
    field --width 32 --center adr11
    field --width 32 --center adr12
    field --width 32 --center adr13
    field --width 32 --center adr14
    field --width 32 --center adr15
end

// ===========================================================================
// Q2PRO-X engine-room pages (ported from q2pro-x.menu).
//
// These are the deep power-user pages. They are reached from
// Advanced Q2PRO-X and from several user-facing shortcuts earlier
// in this file. Keep in sync with the same-named pages in
// q2pro-x.menu per the maintenance rule in the top-of-file comment.
// ===========================================================================

begin q2prox_laghax
    title "Laghax"
    style --no-compact
    values --status "cl_laghax: 0 = off, 1 = fixed window, 2 = adaptive smoothing" --status-ru "Выбирает значение «режим laghax»." --name-ru "Режим laghax" --items-ru "Выкл.|Фиксированный|Адаптивный" "Laghax mode" cl_laghax off fixed adaptive
    toggle --status "cl_laghax_hud: real-time laghax overlay in top-right (or wherever dragged)" --status-ru "Включает или выключает параметр «laghax HUD»." --name-ru "Laghax HUD" --items-ru "Нет|Да" "Laghax HUD" cl_laghax_hud
    range --live --precision 2 --status "cl_laghax_hud_alpha: laghax HUD opacity (independent from scr_alpha)" --status-ru "Настраивает значение «прозрачность HUD»." --name-ru "Прозрачность HUD" "HUD opacity" cl_laghax_hud_alpha 0 1 0.05
    toggle --live --status "cl_laghax_hud_show_predict_params: HUD row listing weapon / player predicts currently enabled" --status-ru "Включает или выключает параметр «показывать строку предиктов»." --name-ru "Показывать строку предиктов" --items-ru "Нет|Да" "Show predicts row" cl_laghax_hud_show_predict_params
    toggle --live --status "cl_laghax_hud_show_physics_params: HUD row showing movement feel, step smoothing, legacy predict, fixed move" --status-ru "Включает или выключает параметр «показывать строку физики»." --name-ru "Показывать строку физики" --items-ru "Нет|Да" "Show physics row" cl_laghax_hud_show_physics_params
    toggle --live --status "cl_laghax_hud_show_predict_runtime: extra live runtime rows for weapon prediction internals (diagnostic only)" --status-ru "Включает или выключает параметр «показывать данные предикта»." --name-ru "Показывать данные предикта" --items-ru "Нет|Да" "Show predict runtime" cl_laghax_hud_show_predict_runtime
    toggle --live --status "cl_laghax_hud_pillarbox_workspace: allow HUD in pillarbox side bars" --status-ru "Включает или выключает параметр «свободная зона боковых полей»." --name-ru "Свободная зона боковых полей" --items-ru "Нет|Да" "Pillarbox free area" cl_laghax_hud_pillarbox_workspace
    toggle --live --status "cl_laghax_hud_hide_deathmatch0: auto-hide HUD in deathmatch 0 contexts. Widget only — cl_laghax smoothing stays on." --status-ru "Включает или выключает параметр «скрывать HUD при deathmatch 0»." --name-ru "Скрывать HUD при deathmatch 0" --items-ru "Нет|Да" "Hide HUD in deathmatch 0" cl_laghax_hud_hide_deathmatch0
    toggle --live --status "cl_laghax_hud_hide_demo: auto-hide HUD during demo playback. Widget only — cl_laghax smoothing stays on." --status-ru "Включает или выключает параметр «скрывать HUD при просмотре демок»." --name-ru "Скрывать HUD при просмотре демок" --items-ru "Нет|Да" "Hide HUD during demo playback" cl_laghax_hud_hide_demo
    action --align --status "Enter HUD edit mode (left-drag, Enter/Escape exits)" --status-ru "Выполняет действие «редактировать позицию HUD»." --name-ru "Редактировать позицию HUD..." "Edit HUD position..." laghax_hud_edit
    action --align --status "Clear saved HUD position" --status-ru "Выполняет действие «сбросить позицию HUD»." --name-ru "Сбросить позицию HUD" "Reset HUD position" laghax_hud_reset
    toggle --status "cl_laghax_debug: print smoothing stats every server frame" --status-ru "Включает или выключает параметр «отладка laghax»." --name-ru "Отладка laghax" --items-ru "Нет|Да" "Laghax debug" cl_laghax_debug
    range --status "cl_laghax_maxms: hard safety cap (ms)" --status-ru "Настраивает значение «лимит мс»." --name-ru "Лимит мс" "Max ms cap" cl_laghax_maxms 0 150 5
    range --status "cl_laghax_maxwindow: adaptive-mode target cap" --status-ru "Настраивает значение «макс. адаптивное окно»." --name-ru "Макс. адаптивное окно" "Adaptive max window" cl_laghax_maxwindow 0 120 5
    range --status "cl_laghax_minerror: errors below this snap instantly" --status-ru "Настраивает значение «минимальная ошибка»." --name-ru "Минимальная ошибка" "Minimum error" cl_laghax_minerror 0 8 0.1
    range --status "cl_laghax_ping_weight" --status-ru "Настраивает значение «вес пинга»." --name-ru "Вес пинга" "Ping weight" cl_laghax_ping_weight 0 1 0.05
    range --status "cl_laghax_jitter_weight" --status-ru "Настраивает значение «вес джиттера»." --name-ru "Вес джиттера" "Jitter weight" cl_laghax_jitter_weight 0 1 0.05
    range --status "cl_laghax_loss_weight" --status-ru "Настраивает значение «вес потерь»." --name-ru "Вес потерь" "Loss weight" cl_laghax_loss_weight 0 1 0.05
    range --status "cl_laghax_debt_weight" --status-ru "Настраивает значение «вес долга предикта»." --name-ru "Вес долга предикта" "Debt weight" cl_laghax_debt_weight 0 1 0.05
    range --status "cl_laghax_gap_weight" --status-ru "Настраивает значение «вес разрыва»." --name-ru "Вес разрыва" "Gap weight" cl_laghax_gap_weight 0 1 0.05
end

begin q2prox_opentdm_teamhud
    title "OpenTDM Team HUD"
    title-ru "Командный HUD OpenTDM"
    style --no-compact
    toggle --live --status "cl_opentdm_team_hud: master enable — only draws on OpenTDM while on TEAM_A/TEAM_B" --status-ru "Включает или выключает параметр «командный HUD OpenTDM»." --name-ru "Командный HUD OpenTDM" --items-ru "Нет|Да" "OpenTDM team HUD" cl_opentdm_team_hud
    range --live --precision 2 --status "cl_opentdm_team_hud_alpha: HUD opacity (independent from scr_alpha)" --status-ru "Настраивает значение «прозрачность HUD»." --name-ru "Прозрачность HUD" "HUD opacity" cl_opentdm_team_hud_alpha 0 1 0.05
      range --live --precision 2 --status "cl_opentdm_team_hud_scale: Team HUD text scale multiplier" --status-ru "Настраивает значение «масштаб текста»." --name-ru "Масштаб текста" "Text scale" cl_opentdm_team_hud_scale 0.5 2 0.05
      range --live --status "cl_opentdm_team_hud_width: width of the LAST MSG area in character cells" --status-ru "Настраивает значение «ширина сообщений»." --name-ru "Ширина сообщений" "Message width" cl_opentdm_team_hud_width 12 48 1
      toggle --live --status "cl_opentdm_team_hud_show_weapon: show teammate's current weapon (passive decode, works with cl_vwep 0)" --status-ru "Включает или выключает параметр «показывать оружие»." --name-ru "Показывать оружие" --items-ru "Нет|Да" "Show weapon" cl_opentdm_team_hud_show_weapon
      toggle --live --status "cl_opentdm_team_hud_show_powerarmor: include P (power armor cells) in the H/A/P column" --status-ru "Включает или выключает параметр «показывать силовую броню»." --name-ru "Показывать силовую броню" --items-ru "Нет|Да" "Show power armor" cl_opentdm_team_hud_show_powerarmor
      toggle --live --status "cl_opentdm_team_hud_show_freshness: show a freshness / age indicator for passive teammate values (green -> yellow -> red -> disappear)" --status-ru "Включает или выключает параметр «показывать свежесть»." --name-ru "Показывать свежесть" --items-ru "Нет|Да" "Show freshness" cl_opentdm_team_hud_show_freshness
      toggle --live --status "cl_opentdm_team_hud_show_teamchat: show the last already-visible say_team message beside the teammate who sent it (HUD mirror only, console/chat output unchanged)" --status-ru "Включает или выключает параметр «показывать последний командный чат»." --name-ru "Показывать последний командный чат" --items-ru "Нет|Да" "Show last team chat" cl_opentdm_team_hud_show_teamchat
      range --live --status "cl_opentdm_team_hud_fresh_sec: how long passive teammate values stay green before transitioning into yellow and red; never exceeds stale threshold" --status-ru "Настраивает значение «период свежести (сек)»." --name-ru "Период свежести (сек)" "Fresh period (sec)" cl_opentdm_team_hud_fresh_sec 1 120 1
      range --live --status "cl_opentdm_team_hud_stale_sec: seconds until cached H/A/P and weapon values expire and disappear from the HUD" --status-ru "Настраивает значение «порог устаревания (сек)»." --name-ru "Порог устаревания (сек)" "Stale threshold (sec)" cl_opentdm_team_hud_stale_sec 4 120 1
      toggle --live --status "cl_opentdm_team_hud_pillarbox_workspace: allow placement in the pillarbox side bars" --status-ru "Включает или выключает параметр «свободная зона боковых полей»." --name-ru "Свободная зона боковых полей" --items-ru "Нет|Да" "Pillarbox free area" cl_opentdm_team_hud_pillarbox_workspace
    action --align --status "Enter edit mode (left-drag, Enter/Escape exits)" --status-ru "Выполняет действие «редактировать позицию HUD»." --name-ru "Редактировать позицию HUD..." "Edit HUD position..." opentdm_team_hud_edit
    action --align --status "Clear saved HUD position" --status-ru "Выполняет действие «сбросить позицию HUD»." --name-ru "Сбросить позицию HUD" "Reset HUD position" opentdm_team_hud_reset
end

begin q2prox_predict
    title "Weapon Predicts"
    title-ru "Предсказание оружия"
    style --no-compact
    toggle --status "weapon predict master — off disables all weapon predicts; weapon-side admissions/telemetry stop, but player predict may still follow the shared ping gate. Per-weapon settings are preserved" --status-ru "Включает или выключает параметр «мастер предикта оружия»." --name-ru "Мастер предикта оружия" --items-ru "Нет|Да" "Weapon predict master" cl_predict_weapons_enable
    blank
    pairs --status "cl_predict_debug: 0=prod, 1/2=show both streams, 3=diagnostics+suppression" --status-ru "Выбирает значение «отладка предикта»." --name-ru "Отладка предикта" --items-ru "Выкл.|Показать оба|Подробно|Диагн.+подавл." "Predict debug" cl_predict_debug off 0 "Show both" 1 verbose 2 "Diag+supp" 3
    toggle --status "cl_weapon_anim_debug: print server vs predicted gun frame" --status-ru "Включает или выключает параметр «отладка анимации оружия»." --name-ru "Отладка анимации оружия" --items-ru "Нет|Да" "Weapon anim debug" cl_weapon_anim_debug
    toggle --status "predict own rocket launcher projectile immediately" --status-ru "Включает или выключает параметр «предикт ракет»." --name-ru "Предикт ракет" --items-ru "Нет|Да" "Predict rockets" cl_predict_rockets
    toggle --status "predict the rocket impact explosion at BSP hit point (subordinate to rockets)" --status-ru "Включает или выключает параметр «предикт взрыва ракеты»." --name-ru "Предикт взрыва ракеты" --items-ru "Нет|Да" "Predict rocket explosion" cl_predict_rockets_explosion
    toggle --status "predict the rail beam instantly on fire" --status-ru "Включает или выключает параметр «предикт Railgun»." --name-ru "Предикт Railgun" --items-ru "Нет|Да" "Predict railgun" cl_predict_railgun
    toggle --status "predict shotgun muzzle and pellet hit feedback" --status-ru "Включает или выключает параметр «предикт дробовика»." --name-ru "Предикт дробовика" --items-ru "Нет|Да" "Predict shotgun" cl_predict_shotgun
    toggle --status "predict super-shotgun muzzle and pellet hit feedback" --status-ru "Включает или выключает параметр «предикт супердробовика»." --name-ru "Предикт супердробовика" --items-ru "Нет|Да" "Predict super shotgun" cl_predict_super_shotgun
    toggle --status "predict machinegun local fire feedback" --status-ru "Включает или выключает параметр «предикт пулемёта»." --name-ru "Предикт пулемёта" --items-ru "Нет|Да" "Predict machinegun" cl_predict_machinegun
    toggle --status "predict chaingun local fire feedback with ramp-up shot counts" --status-ru "Включает или выключает параметр «предикт чейнгана»." --name-ru "Предикт чейнгана" --items-ru "Нет|Да" "Predict chaingun" cl_predict_chaingun
    toggle --status "predict blaster projectile and muzzle feedback" --status-ru "Включает или выключает параметр «предикт бластера»." --name-ru "Предикт бластера" --items-ru "Нет|Да" "Predict blaster" cl_predict_blaster
    toggle --status "predict grenade launcher muzzle and sound feedback" --status-ru "Включает или выключает параметр «предикт гранатомёта»." --name-ru "Предикт гранатомёта" --items-ru "Нет|Да" "Predict grenades" cl_predict_grenades
    toggle --status "predict hand-grenade throw feedback" --status-ru "Включает или выключает параметр «предикт ручных гранат»." --name-ru "Предикт ручных гранат" --items-ru "Нет|Да" "Predict hand grenades" cl_predict_hand_grenades
    toggle --status "predict hyperblaster local fire feedback" --status-ru "Включает или выключает параметр «предикт гипербластера»." --name-ru "Предикт гипербластера" --items-ru "Нет|Да" "Predict hyperblaster" cl_predict_hyperblaster
    values --status "local jump/fall prediction — also gated by adaptive ping gate (same threshold + dwell as weapon predicts). Also in movement & player menu." --status-ru "Выбирает значение «предикт игрока»." --name-ru "Предикт игрока" --items-ru "Выкл.|Вкл.|Отладка" "Predict player" cl_predict_player off on debug
    blank
    range --status "minimum ping (ms) — 0 disables adaptive gate so only raw/master toggles remain; >0 gates weapon and player predicts on ping" --status-ru "Настраивает значение «минимальный пинг (мс)»." --name-ru "Минимальный пинг (мс)" "Minimum ping (ms)" cl_predict_ping_min_ms 0 200 1
    range --status "dwell time (sec) — ping must stay on one side of threshold this long before shared gate flips (weapon + player predicts)" --status-ru "Настраивает значение «выдержка пинга (сек)»." --name-ru "Выдержка пинга (сек)" "Ping dwell (sec)" cl_predict_ping_dwell_sec 0 30 1
end

begin q2prox_weaponfx
    title "Weapon Parts Visibility"
    title-ru "Видимость частей оружия"
    style --no-compact
    toggle --live --status "cl_weaponfx_vis_enable: master (off = neutral, legacy cvars only)" --status-ru "Включает или выключает параметр «пользовательский слой видимости»." --name-ru "Пользовательский слой видимости" --items-ru "Нет|Да" "Custom visibility layer" cl_weaponfx_vis_enable
    blank
    toggle --live --status "cl_weaponfx_vis_own_predicted: show local ghost / predicted weapon FX" --status-ru "Включает или выключает параметр «свои предсказанные эффекты»." --name-ru "Свои предсказанные эффекты" --items-ru "Нет|Да" "Own predicted fx" cl_weaponfx_vis_own_predicted
    toggle --live --status "cl_weaponfx_vis_own_server: show authoritative server FX from our own fire path" --status-ru "Включает или выключает параметр «свои серверные эффекты»." --name-ru "Свои серверные эффекты" --items-ru "Нет|Да" "Own server fx" cl_weaponfx_vis_own_server
    toggle --live --status "cl_weaponfx_vis_other: show weapon FX from other players / monsters" --status-ru "Включает или выключает параметр «эффекты других игроков»." --name-ru "Эффекты других игроков" --items-ru "Нет|Да" "Other players fx" cl_weaponfx_vis_other
    blank
    toggle --live --status "cl_weaponfx_vis_muzzle: muzzle flash model / sprite / local muzzle visual" --status-ru "Включает или выключает параметр «вспышка выстрела»." --name-ru "Вспышка выстрела" --items-ru "Нет|Да" "Muzzle flash" cl_weaponfx_vis_muzzle
    toggle --live --status "cl_weaponfx_vis_muzzle_light: dynamic light from muzzle flash" --status-ru "Включает или выключает параметр «свет от выстрела»." --name-ru "Свет от выстрела" --items-ru "Нет|Да" "Muzzle light" cl_weaponfx_vis_muzzle_light
    toggle --live --status "cl_weaponfx_vis_hitscan: rail beam / tracer-like direct-fire path" --status-ru "Включает или выключает параметр «мгновенный луч / трассер»." --name-ru "Мгновенный луч / трассер" --items-ru "Нет|Да" "Hitscan beam / tracer" cl_weaponfx_vis_hitscan
    toggle --live --status "cl_weaponfx_vis_projectiles: projectile model + inherent glow" --status-ru "Включает или выключает параметр «модели снарядов»." --name-ru "Модели снарядов" --items-ru "Нет|Да" "Projectile models" cl_weaponfx_vis_projectiles
    toggle --live --status "cl_weaponfx_vis_trails: rocket / grenade / blaster / BFG trails" --status-ru "Включает или выключает параметр «следы снарядов»." --name-ru "Следы снарядов" --items-ru "Нет|Да" "Projectile trails" cl_weaponfx_vis_trails
    toggle --live --status "cl_weaponfx_vis_impact_wall: wall / world impact visuals (sparks, smoke, blaster flash)" --status-ru "Включает или выключает параметр «попадания в стены»." --name-ru "Попадания в стены" --items-ru "Нет|Да" "Wall impacts" cl_weaponfx_vis_impact_wall
    toggle --live --status "cl_weaponfx_vis_impact_flesh: blood / flesh-hit visuals" --status-ru "Включает или выключает параметр «попадания по телу»." --name-ru "Попадания по телу" --items-ru "Нет|Да" "Flesh impacts" cl_weaponfx_vis_impact_flesh
    toggle --live --status "cl_weaponfx_vis_explosion_visual: explosion sprite / model" --status-ru "Включает или выключает параметр «визуал взрыва»." --name-ru "Визуал взрыва" --items-ru "Нет|Да" "Explosion visual" cl_weaponfx_vis_explosion_visual
    toggle --live --status "cl_weaponfx_vis_explosion_particles: explosion debris / smoke particles" --status-ru "Включает или выключает параметр «взрыв частицы»." --name-ru "Взрыв частицы" --items-ru "Нет|Да" "Explosion particles" cl_weaponfx_vis_explosion_particles
    toggle --live --status "cl_weaponfx_vis_explosion_light: dynamic light from explosions" --status-ru "Включает или выключает параметр «свет взрыва»." --name-ru "Свет взрыва" --items-ru "Нет|Да" "Explosion light" cl_weaponfx_vis_explosion_light
    toggle --live --status "cl_weaponfx_vis_hit_markers: HUD hit marker (sound still governed by cl_hit_markers)" --status-ru "Включает или выключает параметр «маркеры попаданий»." --name-ru "Маркеры попаданий" --items-ru "Нет|Да" "Hit markers" cl_weaponfx_vis_hit_markers
    blank
    action --align --status "Print current WFX state + effective behavior to console" --status-ru "Выполняет действие «инфо частей оружия»." --name-ru "Инфо частей оружия..." "Weapon parts info..." weaponfx_info
end

begin q2prox_movement
    title "Movement"
    title-ru "Движение"
    style --no-compact
    values --status "cl_mouse_behavior_mode: global mouse feel (q2pro = default; r1q2 = compatibility, backend from m_directinput: 0=legacy, 1/2=DI-like relative)" --status-ru "Выбирает значение «поведение мыши»." --name-ru "Поведение мыши" --items-ru "Q2PRO|R1q2" "Mouse behavior" cl_mouse_behavior_mode q2pro r1q2
    values --status "cl_movement_feel_mode: r1q2-like = classic standstill-start/jump" --status-ru "Выбирает значение «ощущение движения»." --name-ru "Ощущение движения" --items-ru "Q2PRO|Как r1q2" "Movement feel" cl_movement_feel_mode q2pro r1q2-like
    values --status "cl_predict_move_mode: client prediction backend" --status-ru "Выбирает значение «предикт клиента»." --name-ru "Предикт клиента" --items-ru "Современный (Q2PRO/Q2PRO-X)|Классический q2pro-m/r1826" "Client predict" cl_predict_move_mode "modern (new q2pro/Q2PRO-X)" "legacy (q2pro-m/q2pro r1826)"
    values --status "cl_step_smoothing_mode: local stair-step feel" --status-ru "Выбирает значение «сглаживание ступеней»." --name-ru "Сглаживание ступеней" --items-ru "Q2PRO|R1q2: 1|R1q2: 2|R1q2: 3" "Step smoothing" cl_step_smoothing_mode q2pro r1q2-1 r1q2-2 r1q2-3
    toggle --status "cl_fixedmove: normalize movement to 10 ms command clock" --status-ru "Включает или выключает параметр «фиксированный шаг движения»." --name-ru "Фиксированный шаг движения" --items-ru "Нет|Да" "Fixed move" cl_fixedmove
    toggle --status "cl_fixedmove_debug: print finalized fixedmove command timing" --status-ru "Включает или выключает параметр «отладка фикс. движения»." --name-ru "Отладка фикс. движения" --items-ru "Нет|Да" "Fixedmove debug" cl_fixedmove_debug
    values --status "cl_predict_player: 0 = off, 1 = local jump/fall, 2 = debug. When cl_predict_ping_min_ms > 0, also gated by the shared adaptive ping gate." --status-ru "Выбирает значение «предикт игрока»." --name-ru "Предикт игрока" --items-ru "Выкл.|Вкл.|Отладка" "Predict player" cl_predict_player off on debug
    blank
    action --align --status "Print resolved movement feel state and applied backend" --status-ru "Выполняет действие «инфо об ощущении движения»." --name-ru "Инфо об ощущении движения..." "Movement feel info..." movementfeel_info
end

begin q2prox_video
    title "Display & Capture"
    title-ru "Отображение и захват"
    style --no-compact
    pairs --status "vid_driver: win32egl (default) / win32wgl (fallback)" --status-ru "Выбирает значение «видеобэкенд»." --name-ru "Видеобэкенд" --items-ru "Win32egl|Win32wgl" "Video backend" vid_driver "Win32egl" win32egl "Win32wgl" win32wgl
    strings --status "vid_resolution: desktop = native" --status-ru "Выбирает значение «разрешение»." --name-ru "Разрешение" "Resolution" vid_resolution $$vid_resolution_list
    toggle --status "vid_windowed: run as window" --status-ru "Включает или выключает параметр «оконный режим»." --name-ru "Оконный режим" --items-ru "Нет|Да" "Windowed mode" vid_windowed
    pairs --status "vid_fullscreen_type" --status-ru "Выбирает значение «полноэкранный режим»." --name-ru "Полноэкранный режим" --items-ru "Полноэкранный рабочий стол|Эксклюзивный режим" "Fullscreen mode" vid_fullscreen_type "Desktop fullscreen" desktop "Exclusive fullscreen" exclusive
    strings --status "vid_refresh: max = highest" --status-ru "Выбирает значение «частота обновления»." --name-ru "Частота обновления" "Refresh rate" vid_refresh $$vid_refresh_list
    range --status "vid_desktop_fullscreen_margin" --status-ru "Настраивает значение «отступ полного экрана»." --name-ru "Отступ полного экрана" "Fullscreen margin" vid_desktop_fullscreen_margin 0 16 1
    values --live --status "vid_desktop_fullscreen_fit: fill / aspect" --status-ru "Выбирает значение «подгонка полного экрана»." --name-ru "Подгонка полного экрана" --items-ru "Заполнить|По пропорциям" "Fullscreen fit" vid_desktop_fullscreen_fit fill aspect
    action --align --status "OLED protection suite" --status-ru "Открывает раздел «защита OLED»." --name-ru "Защита OLED..." "OLED protection..." pushmenu q2prox_oled
    range --format "%d%%" --status "gl_render_scale: internal 3D resolution" --status-ru "Настраивает значение «масштаб рендера»." --name-ru "Масштаб рендера" "Render scale" gl_render_scale 100 1000 25
    values --status "gl_render_scale_mode" --status-ru "Выбирает значение «режим масштабирования»." --name-ru "Режим масштабирования" --items-ru "Авто|Текстура|Копирование|Плиткой" "Scale mode" gl_render_scale_mode auto texture blit tiled
    values --status "gl_render_scale_filter" --status-ru "Выбирает значение «фильтр масштабирования»." --name-ru "Фильтр масштабирования" --items-ru "Быстро|Баланс|Качество" "Scale filter" gl_render_scale_filter fast balanced quality
    blank
    range --live --precision 2 --status "cl_menu_alpha" --status-ru "Настраивает значение «прозрачность меню»." --name-ru "Прозрачность меню" "Menu opacity" cl_menu_alpha 0 1 0.05
    blank
    action --align --status "Print render scale status" --status-ru "Выполняет действие «инфо о масштабе рендера»." --name-ru "Инфо о масштабе рендера..." "Render scale info..." gl_render_scale_info
    action --align --status "Apply vid_driver or fullscreen changes" --status-ru "Применяет изменения видеорежима и перезапускает видео." --name-ru "Перезапустить видео..." "Restart video..." vid_restart
end

begin q2prox_oled
    title "OLED Protection"
    title-ru "Защита OLED"
    style --no-compact
    toggle --live --status "vid_oled_enable: master switch for OLED protection suite" --status-ru "Включает или выключает параметр «защита OLED»." --name-ru "Защита OLED" --items-ru "Нет|Да" "OLED protection" vid_oled_enable
    blank
    toggle --live --status "vid_oled_bar_protection: animate aspect-fit pillarbox bars" --status-ru "Включает или выключает параметр «защита полос»." --name-ru "Защита полос" --items-ru "Нет|Да" "Bar protection" vid_oled_bar_protection
    values --live --status "vid_oled_bar_preset: fade / random fade / breathe" --status-ru "Выбирает значение «пресет полос»." --name-ru "Пресет полос" --items-ru "Затухание|Случайное затухание|Дыхание" "Bar preset" vid_oled_bar_preset fade "random fade" breathe
    pairs --status "Choose this value." --status-ru "Выбирает значение «цвет полосы A»." --live --name-ru "Цвет полосы A" --items-ru "Чёрный|Почти чёрный|Тёмно-серый|Серый" "Bar color A" vid_oled_bar_color_a "Black" "#000000" "Near black" "#0A0a0a" "Dim gray" "#141414" "Gray" "#1E1e1e"
    pairs --status "Choose this value." --status-ru "Выбирает значение «цвет полосы B»." --live --name-ru "Цвет полосы B" --items-ru "Чёрный|Почти чёрный|Тёмно-серый|Серый" "Bar color B" vid_oled_bar_color_b "Black" "#000000" "Near black" "#0A0a0a" "Dim gray" "#141414" "Gray" "#1E1e1e"
    range --status "Adjust this value." --status-ru "Настраивает значение «задержка запуска полосы»." --live --format "%d s" --name-ru "Задержка запуска полосы" "Bar start delay" vid_oled_bar_delay_sec 10 3600 10
    range --status "Adjust this value." --status-ru "Настраивает значение «время активности полосы»." --live --format "%d min" --name-ru "Время активности полосы" "Bar active time" vid_oled_bar_active_min 1 10 1
    range --status "Adjust this value." --status-ru "Настраивает значение «интервал простоя полос»." --live --format "%d min" --name-ru "Интервал простоя полос" "Bar idle interval" vid_oled_bar_interval_min 1 60 1
    blank
    toggle --live --status "vid_oled_idle_protection: dim screen after inactivity" --status-ru "Включает или выключает параметр «защита экрана в простое»." --name-ru "Защита экрана в простое" --items-ru "Нет|Да" "Idle screen protection" vid_oled_idle_protection
    range --status "Adjust this value." --status-ru "Настраивает значение «задержка простоя»." --live --format "%d s" --name-ru "Задержка простоя" "Idle delay" vid_oled_idle_delay_sec 20 3600 10
    range --status "Adjust this value." --status-ru "Настраивает значение «время затухания простоя»." --live --format "%d s" --name-ru "Время затухания простоя" "Idle fade time" vid_oled_idle_fade_sec 5 120 5
    range --status "Adjust this value." --status-ru "Настраивает значение «время удержания простоя»." --live --precision 1 --name-ru "Время удержания простоя" "Idle hold time" vid_oled_idle_hold_sec 0.0 30.0 0.5
    toggle --live --status "vid_oled_idle_monitor_off (Win opt-in): DPMS monitor off during HOLD_DARK" --status-ru "Включает или выключает параметр «DPMS выкл. в простое»." --name-ru "DPMS выкл. в простое" --items-ru "Нет|Да" "Idle monitor DPMS off" vid_oled_idle_monitor_off
    range --status "Adjust this value." --status-ru "Настраивает значение «время восстановления простоя»." --live --precision 2 --name-ru "Время восстановления простоя" "Idle restore time" vid_oled_idle_restore_sec 0.1 5.0 0.1
    toggle --live --status "vid_oled_idle_mute_audio: mute audio while idle-dim active" --status-ru "Включает или выключает параметр «звук выкл. в простое»." --name-ru "Звук выкл. в простое" --items-ru "Нет|Да" "Mute audio on idle protect" vid_oled_idle_mute_audio
    blank
    toggle --live --status "vid_oled_ui_protection: breathing alpha on protected UI" --status-ru "Включает или выключает параметр «защита прозрачности интерфейса»." --name-ru "Защита прозрачности интерфейса" --items-ru "Нет|Да" "Interface alpha protect" vid_oled_ui_protection
    range --status "Adjust this value." --status-ru "Настраивает значение «мин. прозрачность интерфейса»." --live --precision 2 --name-ru "Мин. прозрачность интерфейса" "Interface min alpha" vid_oled_ui_min_alpha 0.0 1.0 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «макс. прозрачность интерфейса»." --live --precision 2 --name-ru "Макс. прозрачность интерфейса" "Interface max alpha" vid_oled_ui_max_alpha 0.05 1.0 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «период цикла прозрачности»." --live --format "%d s" --name-ru "Период цикла прозрачности" "Interface cycle time" vid_oled_ui_cycle_sec 5 600 5
    blank
    action --align --status "Print OLED protection status" --status-ru "Выполняет действие «инфо OLED»." --name-ru "Инфо OLED..." "OLED info..." vid_oled_info
end

begin q2prox_vfx
    title "Visual FX"
    title-ru "Визуальные эффекты"
    style --no-compact
    toggle --live --status "usefog: client-side fog" --status-ru "Включает или выключает параметр «туман»." --name-ru "Туман" --items-ru "Нет|Да" "Fog" usefog
    range --status "Adjust this value." --status-ru "Настраивает значение «плотность тумана»." --live --precision 2 --name-ru "Плотность тумана" "Fog density" fogdensity 0.01 1 0.01
    range --status "Adjust this value." --status-ru "Настраивает значение «тон тумана»." --live --precision 2 --name-ru "Тон тумана" "Fog hue" foghue 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «насыщенность тумана»." --live --precision 2 --name-ru "Насыщенность тумана" "Fog saturation" fogsaturation 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «светлота тумана»." --live --precision 2 --name-ru "Светлота тумана" "Fog lightness" foglightness 0 1 0.05
    blank
    values --status "Choose this value." --status-ru "Выбирает значение «динамические источники света»." --live --name-ru "Динамические источники света" --items-ru "Нет|Да|Только переключаемые" "Dynamic lights" gl_dynamic no yes "only switchable"
    values --status "Choose this value." --status-ru "Выбирает значение «тени»." --live --name-ru "Тени" --items-ru "Выкл.|Базовые|Затухание" "Shadows" gl_shadows off basic fade
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «без свечения»." --live --name-ru "Без свечения" --items-ru "Нет|Да" "No glow" cl_noglow
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «полигональное смешивание»." --live --name-ru "Полигональное смешивание" --items-ru "Нет|Да" "Poly blend" gl_polyblend
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «цветные карты света»." --live --name-ru "Цветные карты света" --items-ru "Нет|Да" "Colored lightmaps" gl_coloredlightmaps
    range --status "Adjust this value." --status-ru "Настраивает значение «яркость»." --live --precision 1 --name-ru "Яркость" "Brightness" gl_brightness 0 1 0.1
    range --status "Adjust this value." --status-ru "Настраивает значение «мультяшная обводка»." --live --precision 0 --name-ru "Мультяшная обводка" "Cel shading" gl_celshading 0 10 1
    blank
    values --status "Choose this value." --status-ru "Выбирает значение «сияние»." --live --name-ru "Сияние" --items-ru "Выкл.|1|2|3|4|5|6|7|8" "Bloom" gl_bloom off 1 2 3 4 5 6 7 8
    range --status "Adjust this value." --status-ru "Настраивает значение «сила сияния»." --live --precision 2 --name-ru "Сила сияния" "Bloom strength" gl_bloom_strength 0 3 0.1
    range --status "Adjust this value." --status-ru "Настраивает значение «порог сияния»." --live --precision 2 --name-ru "Порог сияния" "Bloom threshold" gl_bloom_threshold 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «радиус сияния»." --live --precision 1 --name-ru "Радиус сияния" "Bloom sigma" gl_bloom_sigma 1 12 0.5
    range --status "Adjust this value." --status-ru "Настраивает значение «интенсивность карт свечения»." --live --precision 2 --name-ru "Интенсивность карт свечения" "Glowmap intensity" gl_glowmap_intensity 0 2 0.1
    blank
    values --status "Choose this value." --status-ru "Выбирает значение «профиль цветокоррекции»." --live --name-ru "Профиль цветокоррекции" --items-ru "Выкл.|Нейтральный|Тёплый|Арена|Кинематографичный" "Grading profile" gl_post_profile off neutral warm arena cinematic
    range --status "Adjust this value." --status-ru "Настраивает значение «контраст»." --live --precision 2 --name-ru "Контраст" "Contrast" gl_post_contrast 0.5 2 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «сочность цвета»." --live --precision 2 --name-ru "Сочность цвета" "Vibrance" gl_post_vibrance -1 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «температура»." --live --precision 2 --name-ru "Температура" "Temperature" gl_post_temperature -1 1 0.05
    blank
    range --status "Adjust this value." --status-ru "Настраивает значение «резкость»." --live --precision 1 --name-ru "Резкость" "Sharpen" gl_sharpen 0 10 0.5
    blank
    action --align --status "Print visual FX status" --status-ru "Выполняет действие «инфо о визуальных эффектах»." --name-ru "Инфо о визуальных эффектах..." "Visual fx info..." gl_visual_fx_info
end

begin q2prox_sound
    title "Sound & Acoustics"
    title-ru "Звук и акустика"
    style --no-compact
    values --live --status "s_enable: OpenAL required for al_profile, HRTF, room acoustics" --status-ru "Выбирает значение «звуковой движок»." --name-ru "Звуковой движок" --items-ru "Без звука|Программный (DMA)|OpenAL" "Sound engine" s_enable "no sound" "software (DMA)" "OpenAL"
    values --live --status "al_sound_profile: acoustics recipe (manual tweaks switch to custom)" --status-ru "Выбирает значение «профиль звука»." --name-ru "Профиль звука" --items-ru "Свой|Соревновательный|Баланс|Иммерсивный|Кинематографичный|Собор" "Sound profile" al_sound_profile custom competitive balanced immersive cinematic cathedral
    pairs --status "Choose this value." --status-ru "Выбирает значение «частота вывода»." --live --name-ru "Частота вывода" --items-ru "11|22|44|48|96" "Output rate" s_khz 11 11 22 22 44 44 48 48 96 96
    pairs --status "Choose this value." --status-ru "Выбирает значение «формат сэмплов»." --live --name-ru "Формат сэмплов" --items-ru "Авто|S16|Float32" "Sample format" s_sampleformat auto auto s16 s16 float32 float32
    values --status "Choose this value." --status-ru "Выбирает значение «профиль OpenAL»." --live --name-ru "Профиль OpenAL" --items-ru "Q2PRO-X|Как R1Q2" "OpenAL profile" al_profile "Q2PRO-X" "R1Q2-like"
    values --status "Choose this value." --status-ru "Выбирает значение «HRTF»." --live --name-ru "HRTF" --items-ru "Выкл.|Авто|Вкл." "HRTF" al_hrtf off auto on
    pairs --status "Choose this value." --status-ru "Выбирает значение «ресэмплер OpenAL»." --live --name-ru "Ресэмплер OpenAL" --items-ru "По умолчанию|Кубический|Bsinc12|Bsinc24|Точечный|Линейный" "OpenAL resampler" al_resampler default default cubic cubic bsinc12 bsinc12 bsinc24 bsinc24 point point linear linear
    pairs --status "Choose this value." --status-ru "Выбирает значение «ресэмплер DMA»." --live --name-ru "Ресэмплер DMA" --items-ru "Классический|Линейный|Кубический" "DMA resampler" s_resampler legacy legacy linear linear cubic cubic
    toggle --live --status "al_reverb: room acoustics / EFX reverb" --status-ru "Включает или выключает параметр «поддержка реверберации»." --name-ru "Поддержка реверберации" --items-ru "Нет|Да" "Reverberation support" al_reverb
    pairs --live --status "al_eax_preset: -1 = auto classifier" --status-ru "Выбирает значение «пресет реверберации»." --name-ru "Пресет реверберации" --items-ru "Авто|Общий|Малый|Средний|Зал|Коридор|Улица|Под водой" "Reverb preset" al_eax_preset auto -1 generic 0 small 1 medium 2 hall 3 corridor 4 outdoor 5 underwater 6
    range --status "Adjust this value." --status-ru "Настраивает значение «примесь реверберации»." --live --name-ru "Примесь реверберации" "Reverb wet" al_eax_wet 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «локальная примесь»." --live --name-ru "Локальная примесь" "Local wet" al_eax_local_wet 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «время интерполяции»." --live --name-ru "Время интерполяции" "Lerp time" al_reverb_lerp_time 0 5 0.1
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «заслонение»." --live --name-ru "Заслонение" --items-ru "Нет|Да" "Occlusion" al_eax_occlusion
    range --status "Adjust this value." --status-ru "Настраивает значение «примесь взрыва»." --live --name-ru "Примесь взрыва" "Explosion wet" al_eax_explosion_wet 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «затухание взрыва»." --live --name-ru "Затухание взрыва" "Explosion decay" al_eax_explosion_decay 1 3 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «поздний хвост взрыва»." --live --name-ru "Поздний хвост взрыва" "Explosion late" al_eax_explosion_late 1 2 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «примесь транспорта»." --live --name-ru "Примесь транспорта" "Transport wet" al_eax_transport_wet 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «отражения»." --live --name-ru "Отражения" "Reflections" al_reverb_reflections 0 4 0.1
    range --status "Adjust this value." --status-ru "Настраивает значение «поздняя реверберация»." --live --name-ru "Поздняя реверберация" "Late reverb" al_reverb_late 0 4 0.1
    range --status "Adjust this value." --status-ru "Настраивает значение «затухание»." --live --name-ru "Затухание" "Decay" al_reverb_decay 0.1 50 0.5
    range --status "Adjust this value." --status-ru "Настраивает значение «задержка»." --live --name-ru "Задержка" "Delay" al_reverb_delay 0.1 4 0.1
    range --status "Adjust this value." --status-ru "Настраивает значение «ВЧ-яркость»." --live --name-ru "ВЧ-яркость" "HF brightness" al_reverb_hf 0 4 0.1
    range --status "Adjust this value." --status-ru "Настраивает значение «диффузия»." --live --name-ru "Диффузия" "Diffusion" al_reverb_diffusion 0 2 0.1
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «отладка реверберации»." --live --name-ru "Отладка реверберации" --items-ru "Нет|Да" "Reverb debug" al_eax_debug
    blank
    toggle --live --status "s_mute_when_inactive: mute when window not focused" --status-ru "Включает или выключает параметр «глушить вне фокуса»." --name-ru "Глушить вне фокуса" --items-ru "Нет|Да" "Mute when inactive" s_mute_when_inactive
    blank
    action --align --status "Print reverb classifier / preset" --status-ru "Выполняет действие «инфо о реверберации»." --name-ru "Инфо о реверберации..." "Reverb info..." al_reverb_info
    action --align --status "Reload active reverb preset" --status-ru "Выполняет действие «перезагрузить реверберацию»." --name-ru "Перезагрузить реверберацию..." "Reload reverb..." al_reverb_reload
    action --align --status "Print available OpenAL resamplers" --status-ru "Выполняет действие «список ресэмплеров»." --name-ru "Список ресэмплеров..." "Resampler list..." al_resampler_list
    action --align --status "Apply sound engine / HRTF / profile changes" --status-ru "Выполняет действие «перезапустить звук»." --name-ru "Перезапустить звук..." "Restart sound..." snd_restart
end

begin q2prox_binaural
    title "Binaural / 3D Sound"
    title-ru "Бинауральный / 3D звук"
    style --no-compact
    values --status "al_binaural_profile: curated headphone presets" --status-ru "Выбирает значение «бинауральный профиль»." --name-ru "Бинауральный профиль" --items-ru "Свой|По умолчанию|Авто|Глубокий|Кинематографичный" "Binaural profile" al_binaural_profile custom default auto deep cinematic
    values --status "al_binaural: 0=off, 1=auto, 2=on" --status-ru "Выбирает значение «бинауральный звук»." --name-ru "Бинауральный звук" --items-ru "Выкл.|Авто|Вкл." "Binaural" al_binaural off auto on
    values --status "al_binaural_encoding: requires snd_restart" --status-ru "Выбирает значение «кодирование»." --name-ru "Кодирование" --items-ru "Авто|Базовый|HRTF|UHJ" "Encoding" al_binaural_encoding auto basic hrtf uhj
    values --status "al_binaural_hrtf_mode" --status-ru "Выбирает значение «режим HRTF»." --name-ru "Режим HRTF" --items-ru "По умолчанию|Полный|Ambi1|Ambi2|Ambi3" "HRTF mode" al_binaural_hrtf_mode default full ambi1 ambi2 ambi3
    pairs --status "al_binaural_hrtf_size" --status-ru "Выбирает значение «размер HRTF-фильтра»." --name-ru "Размер HRTF-фильтра" --items-ru "По умолчанию|32|64" "HRTF filter size" al_binaural_hrtf_size default 0 32 32 64 64
    range --status "al_binaural_crossfeed" --status-ru "Настраивает значение «перекрёстная подмешка»." --name-ru "Перекрёстная подмешка" "Crossfeed" al_binaural_crossfeed 0 6 1
    blank
    action --align --status "Print current binaural runtime state" --status-ru "Выполняет действие «инфо о бинауральном звуке»." --name-ru "Инфо о бинауральном звуке..." "Binaural info..." al_binaural_info
    action --align --status "Apply binaural / sound engine changes" --status-ru "Выполняет действие «перезапустить звук»." --name-ru "Перезапустить звук..." "Restart sound..." snd_restart
end

begin q2prox_weaponvol
    title "Sound Volumes"
    title-ru "Громкости звука"
    style --no-compact
    range --status "Adjust this value." --status-ru "Настраивает значение «бластер»." --live --format "%d%%" --name-ru "Бластер" "Blaster" s_weapon_blaster_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «дробовик»." --live --format "%d%%" --name-ru "Дробовик" "Shotgun" s_weapon_shotgun_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «супердробовик»." --live --format "%d%%" --name-ru "Супердробовик" "Super shotgun" s_weapon_supershotgun_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «пулемёт»." --live --format "%d%%" --name-ru "Пулемёт" "Machinegun" s_weapon_machinegun_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «чейнган»." --live --format "%d%%" --name-ru "Чейнган" "Chaingun" s_weapon_chaingun_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «ручные гранаты»." --live --format "%d%%" --name-ru "Ручные гранаты" "Hand grenades" s_weapon_handgrenade_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «гранатомёт»." --live --format "%d%%" --name-ru "Гранатомёт" "Grenade launcher" s_weapon_grenadelauncher_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «ракетница»." --live --format "%d%%" --name-ru "Ракетница" "Rocket launcher" s_weapon_rocketlauncher_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «гипербластер»." --live --format "%d%%" --name-ru "Гипербластер" "Hyperblaster" s_weapon_hyperblaster_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «Railgun»." --live --format "%d%%" --name-ru "Railgun" "Railgun" s_weapon_railgun_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «BFG10K»." --live --format "%d%%" --name-ru "BFG10K" "BFG10K" s_weapon_bfg_volume 0 100 5
    blank
    range --status "Adjust this value." --status-ru "Настраивает значение «игрок звуки»." --live --format "%d%%" --name-ru "Игрок звуки" "Player sounds" s_player_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «голос / боль»." --live --format "%d%%" --name-ru "Голос / боль" "Voice / pain" s_voice_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «подбор предметов»." --live --format "%d%%" --name-ru "Подбор предметов" "Item pickups" s_pickup_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «окружение»." --live --format "%d%%" --name-ru "Окружение" "Environment" s_environment_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «монстры»." --live --format "%d%%" --name-ru "Монстры" "Monsters" s_monster_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «диктор»." --live --format "%d%%" --name-ru "Диктор" "Announcer" s_announcer_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «меню / интерфейс»." --live --format "%d%%" --name-ru "Меню / интерфейс" "Menu / UI" s_interface_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «прочее»." --live --format "%d%%" --name-ru "Прочее" "Other / misc" s_other_volume 0 100 5
    range --status "Adjust this value." --status-ru "Настраивает значение «фоновые циклы»." --live --format "%d%%" --name-ru "Фоновые циклы" "Ambient loops" s_ambient_volume 0 100 5
end

begin q2prox_serverbrowser
    title "Server Browser"
    title-ru "Браузер серверов"
    style --no-compact
    values --live --status "cl_serverbrowser_ui: 0 = legacy, 1 = modern" --status-ru "Выбирает значение «режим браузера»." --name-ru "Режим браузера" --items-ru "Классический|Современный" "Browser mode" cl_serverbrowser_ui legacy modern
    range --status "Adjust this value." --status-ru "Настраивает значение «прозрачность»." --live --precision 2 --name-ru "Прозрачность" "Opacity" cl_serverbrowser_alpha 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «масштаб текста»." --live --precision 1 --name-ru "Масштаб текста" "Text scale" cl_serverbrowser_scale 0.5 2 0.1
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «компактный режим»." --live --name-ru "Компактный режим" --items-ru "Нет|Да" "Compact mode" cl_serverbrowser_compact
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «полный экран»." --live --name-ru "Полный экран" --items-ru "Нет|Да" "Fullscreen" cl_serverbrowser_fullscreen
    toggle --live --status "cl_serverbrowser_pillarbox_workspace: allow dragging into pillarbox bars" --status-ru "Включает или выключает параметр «свободная зона боковых полей»." --name-ru "Свободная зона боковых полей" --items-ru "Нет|Да" "Pillarbox free area" cl_serverbrowser_pillarbox_workspace
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать детали»." --live --name-ru "Показывать детали" --items-ru "Нет|Да" "Show details" cl_serverbrowser_show_details
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать бейджи»." --live --name-ru "Показывать бейджи" --items-ru "Нет|Да" "Show badges" cl_serverbrowser_show_badges
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «цвета строк»." --live --name-ru "Цвета строк" --items-ru "Нет|Да" "Row colors" cl_serverbrowser_row_colors
    blank
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «скрывать пустые»." --live --name-ru "Скрывать пустые" --items-ru "Нет|Да" "Hide empty" cl_serverbrowser_hide_empty
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «скрывать полные»." --live --name-ru "Скрывать полные" --items-ru "Нет|Да" "Hide full" cl_serverbrowser_hide_full
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «только с игроками»." --live --name-ru "Только с игроками" --items-ru "Нет|Да" "Only with players" cl_serverbrowser_only_players
    range --status "Adjust this value." --status-ru "Настраивает значение «макс. пинг»." --live --precision 0 --name-ru "Макс. пинг" "Max ping" cl_serverbrowser_max_ping 0 999 50
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать с паролем»." --live --name-ru "Показывать с паролем" --items-ru "Нет|Да" "Show passworded" cl_serverbrowser_show_passworded
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать недоступные»." --live --name-ru "Показывать недоступные" --items-ru "Нет|Да" "Show down" cl_serverbrowser_show_down
    blank
    values --status "Choose this value." --status-ru "Выбирает значение «источник по умолчанию»." --live --name-ru "Источник по умолчанию" --items-ru "Q2servers.com|Избранное|LAN|Свой" "Default source" cl_serverbrowser_default_source "q2servers.com" favorites LAN custom
    field --width 32 --status "cl_serverbrowser_custom_source" --status-ru "Редактирует значение «свой источник»." --name-ru "Свой источник" "Custom source" cl_serverbrowser_custom_source
    blank
    action --align --status "Open the modern server browser overlay" --status-ru "Выполняет действие «открыть браузер серверов»." --name-ru "Открыть браузер серверов..." "Open server browser..." serverbrowser_open_modern
    action --align --status "Open the classic legacy server browser menu" --status-ru "Выполняет действие «открыть классический браузер»." --name-ru "Открыть классический браузер..." "Open legacy browser..." serverbrowser_open_legacy
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «клавиша переключения»." --name-ru "Клавиша переключения" "Toggle key" serverbrowser_toggle
end

begin q2prox_advanced_network
    title "Advanced Network"
    title-ru "Продвинутая сеть"
    style --no-compact
    values --live --status "cl_net_clientport_autoprobe: off | RTT (fast pre-connect challenge-RTT probe) | XQ3A (live-session scan over 20 slots). Full help in cvar browser." --status-ru "Выбирает значение «автоподбор UDP-порта клиента»." --name-ru "Автоподбор UDP-порта клиента" --items-ru "Выкл.|RTT|XQ3A" "Auto-select client UDP port" cl_net_clientport_autoprobe off RTT XQ3A
    range --live --precision 1 --status "cl_net_clientport_autoprobe_time: overall safety watchdog (0.1..180 s). Hard upper bound. RTT finishes early when replies arrive. XQ3A always tries all 20 slots; this cvar only aborts the scan if it runs too long. Realistic full XQ3A run wants 60..180 s; values below ~30 s warn in the console." --status-ru "Настраивает значение «сторож автопорта (сек)»." --name-ru "Сторож автопорта (сек)" "Auto-port safety watchdog (s)" cl_net_clientport_autoprobe_time 0.1 180 1
    range --live --precision 0 --status "cl_net_clientport_autoprobe_ports: RTT candidate count (2..60). Does NOT apply to XQ3A — XQ3A is fixed at 20 slots. RTT is fast and parallel, so wider sweeps don't slow it down. Default 6 is conservative." --status-ru "Настраивает значение «число RTT-кандидатов»." --name-ru "Число RTT-кандидатов" "RTT candidate count" cl_net_clientport_autoprobe_ports 2 60 1
    toggle --live --status "cl_net_clientport_autoprobe_indicator: show a blinking on-screen AUTO-PORT SCAN indicator while XQ3A is running. Disappears on finish/abort. Has no effect on RTT." --status-ru "Включает или выключает параметр «индикатор скана XQ3A»." --name-ru "Индикатор скана XQ3A" --items-ru "Нет|Да" "XQ3A scan indicator" cl_net_clientport_autoprobe_indicator
    toggle --live --status "cl_net_clientport_autoprobe_verbose: print autoport progress lines to the console during RTT / XQ3A runs — slot switches, samples, stall replacements, winner, abort/fallback. Default off — the feature still runs normally, just silently." --status-ru "Включает или выключает параметр «лог автопорта в консоль»." --name-ru "Лог автопорта в консоль" --items-ru "Нет|Да" "Autoport console log" cl_net_clientport_autoprobe_verbose
    range --live --precision 0 --status "cl_net_clientport_autoprobe_settle_ms: optional pre-scan grace window before XQ3A applies its first slot (0..10000 ms, default 0 = XQ3A-exact start). Raise only on slow-precache mods. Counts inside cl_net_clientport_autoprobe_time." --status-ru "Настраивает значение «пауза перед сканом XQ3A (мс)»." --name-ru "Пауза перед сканом XQ3A (мс)" "XQ3A pre-scan grace (ms)" cl_net_clientport_autoprobe_settle_ms 0 10000 100
end

begin q2prox_cvarbrowser
    title "Cvar Browser"
    title-ru "Справочник переменных"
    style --no-compact
    range --status "Adjust this value." --status-ru "Настраивает значение «прозрачность»." --live --precision 2 --name-ru "Прозрачность" "Opacity" cl_cvar_browser_alpha 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «масштаб текста»." --live --precision 2 --name-ru "Масштаб текста" "Text scale" cl_cvar_browser_scale 0.1 4 0.05
    toggle --live --status "cl_cvar_browser_remember_tab: restore last opened tab on next session" --status-ru "Включает или выключает параметр «запоминать вкладку»." --name-ru "Запоминать вкладку" --items-ru "Нет|Да" "Remember last tab" cl_cvar_browser_remember_tab
    blank
    action --align --status "Open the modern cvar reference browser overlay" --status-ru "Выполняет действие «открыть справочник переменных»." --name-ru "Открыть справочник переменных..." "Open cvar browser..." cvar_help
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «клавиша переключения»." --name-ru "Клавиша переключения" "Toggle key" cvar_browser_toggle
end

begin q2prox_demobrowser
    title "Demo Browser"
    title-ru "Браузер демок"
    style --no-compact
    range --live --precision 2 --status "cl_demo_browser_alpha: browser background opacity" --status-ru "Настраивает значение «прозрачность»." --name-ru "Прозрачность" "Opacity" cl_demo_browser_alpha 0 1 0.05
    range --live --precision 2 --status "cl_demo_browser_scale: browser text and chrome scale (0.1..3.0)" --status-ru "Настраивает значение «масштаб текста»." --name-ru "Масштаб текста" "Text scale" cl_demo_browser_scale 0.1 3 0.05
    toggle --live --status "cl_demo_browser_fullscreen: maximize overlay to full HUD; hides resize grip; also toggled by header [F]" --status-ru "Включает или выключает параметр «полный экран»." --name-ru "Полный экран" --items-ru "Нет|Да" "Fullscreen" cl_demo_browser_fullscreen
    toggle --live --status "cl_demo_browser_show_details: show the right-side detail pane" --status-ru "Включает или выключает параметр «показывать панель деталей»." --name-ru "Показывать панель деталей" --items-ru "Нет|Да" "Show detail pane" cl_demo_browser_show_details
    toggle --live --status "cl_demo_browser_row_colors: alternate row background for readability" --status-ru "Включает или выключает параметр «цвета чередующихся строк»." --name-ru "Цвета чередующихся строк" --items-ru "Нет|Да" "Alternate row colors" cl_demo_browser_row_colors
    toggle --live --status "cl_demo_browser_show_broken: list partial (playable, incomplete metadata) and unreadable demos" --status-ru "Включает или выключает параметр «показывать частичные / нечитаемые демки»." --name-ru "Показывать частичные / нечитаемые демки" --items-ru "Нет|Да" "Show partial / unreadable demos" cl_demo_browser_show_broken
    toggle --live --status "cl_demo_browser_show_packed: include demos from engine-visible packs (off by default)" --status-ru "Включает или выключает параметр «показывать демки из пакетов движка»." --name-ru "Показывать демки из пакетов движка" --items-ru "Нет|Да" "Show demos from engine packs" cl_demo_browser_show_packed
    toggle --live --status "cl_demo_browser_remember_tab: restore last opened tab (All/Favorites/Date/Mod/Map/POV) on next session" --status-ru "Включает или выключает параметр «запоминать вкладку»." --name-ru "Запоминать вкладку" --items-ru "Нет|Да" "Remember last tab" cl_demo_browser_remember_tab
    blank
    action --align --status "Open the modern demo browser overlay (central index backs search and listing)" --status-ru "Выполняет действие «открыть браузер демок»." --name-ru "Открыть браузер демок..." "Open demo browser..." demo_browser_open
    bind --status "demo_browser_toggle: toggle the Q2PRO-X demo browser overlay" --status-ru "Назначает клавишу для действия «клавиша переключения»." --name-ru "Клавиша переключения" "Toggle key" demo_browser_toggle
    blank
    action --align --status "Full rescan: reparse every demo and rewrite the central index" --status-ru "Выполняет действие «перестроить индекс демо»." --name-ru "Перестроить индекс демо" "Rebuild demo index" demo_index_rebuild
    action --align --status "Incremental refresh without reparsing unchanged demos" --status-ru "Выполняет действие «обновить индекс демо»." --name-ru "Обновить индекс демо" "Refresh demo index" demo_index_refresh
    blank
    action --align --status "Open the legacy demo browser (kept for compatibility)" --status-ru "Выполняет действие «открыть классический браузер демок»." --name-ru "Открыть классический браузер демок..." "Open legacy demo browser..." menu_demos
end

begin q2prox_demoplayer
    title "Demo Player"
    title-ru "Проигрыватель демо"
    style --no-compact
    toggle --live --status "cl_demoplayer_overlay: master switch for the modern playback overlay" --status-ru "Включает или выключает параметр «включено»." --name-ru "Включено" --items-ru "Нет|Да" "Enabled" cl_demoplayer_overlay
    range --live --precision 2 --status "cl_demoplayer_overlay_alpha: overlay background opacity" --status-ru "Настраивает значение «прозрачность»." --name-ru "Прозрачность" "Opacity" cl_demoplayer_overlay_alpha 0 1 0.05
    range --live --precision 2 --status "cl_demoplayer_overlay_scale: overlay text and chrome scale (0.5..3.0)" --status-ru "Настраивает значение «масштаб текста»." --name-ru "Масштаб текста" "Text scale" cl_demoplayer_overlay_scale 0.5 3 0.05
    range --live --precision 0 --status "cl_demoplayer_overlay_autohide_sec: passive bar hides after N sec of real user idle (0 = always visible while demo plays)" --status-ru "Настраивает значение «автоскрытие (сек, 0=выкл.)»." --name-ru "Автоскрытие (сек, 0=выкл.)" "Autohide (sec, 0=off)" cl_demoplayer_overlay_autohide_sec 0 60 1
    range --live --precision 0 --status "cl_demoplayer_overlay_seek_step_sec: step seek seconds for < and > buttons" --status-ru "Настраивает значение «шаг перемотки (сек)»." --name-ru "Шаг перемотки (сек)" "Seek step (sec)" cl_demoplayer_overlay_seek_step_sec 1 120 1
    range --live --precision 0 --status "cl_demoplayer_overlay_seek_jump_sec: jump seek seconds for << and >> buttons" --status-ru "Настраивает значение «прыжок перемотки (сек)»." --name-ru "Прыжок перемотки (сек)" "Seek jump (sec)" cl_demoplayer_overlay_seek_jump_sec 1 600 5
    toggle --live --status "cl_demoplayer_overlay_show_score: show the MVD-only [score] button while playing .mvd2" --status-ru "Включает или выключает параметр «показывать кнопку счёта (MVD2)»." --name-ru "Показывать кнопку счёта (MVD2)" --items-ru "Нет|Да" "Show score button (mvd2)" cl_demoplayer_overlay_show_score
    values --live --status "cl_demoplayer_mvd_director_mode: MVD-only follow mode. quad/penta/leader follow current MVD state; next frag uses an exact pre-scanned frag timeline — works on the first play, survives seek / replay" --status-ru "Выбирает значение «режиссёр MVD2»." --name-ru "Режиссёр MVD2" --items-ru "Выкл.|Следующий фраг|Quad|Penta|Лидер" "Mvd director (mvd2)" cl_demoplayer_mvd_director_mode "off" "next frag" "quad" "penta" "leader"
    range --live --precision 2 --status "cl_demoplayer_mvd_director_lead_sec: lead seconds for next_frag mode. Also sets the cooldown after a manual POV override: max(lead_sec * 3, 3 sec)" --status-ru "Настраивает значение «упреждение режиссёра MVD2 (сек)»." --name-ru "Упреждение режиссёра MVD2 (сек)" "Mvd director lead (sec)" cl_demoplayer_mvd_director_lead_sec 0.5 10 0.1
    values --live --status "cl_demoplayer_nextfrag_debug: diagnostic log for next-frag. tick = director decisions + scan timeline. scan = also every obituary accept/reject" --status-ru "Выбирает значение «отладка следующего фрага»." --name-ru "Отладка следующего фрага" --items-ru "Выкл.|Тик|Скан" "Next frag debug" cl_demoplayer_nextfrag_debug "off" "tick" "scan"
    range --live --precision 2 --status "cl_demoplayer_volume: sound volume during demo playback — overlays s_volume while playing, restored on end. In-game audio unaffected." --status-ru "Настраивает значение «громкость демо»." --name-ru "Громкость демо" "Demo volume" cl_demoplayer_volume 0 1 0.05
    values --live --status "cl_demoplayer_gun: demo-playback POV gun visibility. show gun = force visible, hide gun = force hidden. Does NOT change cl_gun." --status-ru "Выбирает значение «оружие в демке»." --name-ru "Оружие в демке" --items-ru "Показывать оружие|Скрывать оружие" "Demo gun" cl_demoplayer_gun "show gun" "hide gun"
    values --live --status "cl_demoplayer_noskins: demo-playback skin mode. original = as in recording, no skins = everyone as male/grunt. Does NOT change cl_noskins." --status-ru "Выбирает значение «скины демок»." --name-ru "Скины демок" --items-ru "Оригинал|Нет скины" "Demo skins" cl_demoplayer_noskins "original" "no skins"
    range --live --precision 0 --status "cl_demoplayer_overlay_y: vertical offset from bottom of HUD, in px (0 = flush)" --status-ru "Настраивает значение «смещение Y (снизу)»." --name-ru "Смещение Y (снизу)" "Y offset (bottom)" cl_demoplayer_overlay_y 0 400 2
    toggle --live --status "cl_demoplayer_hide_draws: hide user draw items during demo playback (cl_timer / cl_lag / cl_ping / etc.)" --status-ru "Включает или выключает параметр «отключить отрисовку интерфейса»." --name-ru "Отключить отрисовку интерфейса" --items-ru "Нет|Да" "Disable draw interface" cl_demoplayer_hide_draws
    toggle --live --status "cl_laghax_hud_hide_demo: auto-hide the laghax HUD during demo playback (same cvar as on the Laghax page)" --status-ru "Включает или выключает параметр «скрывать laghax HUD при просмотре демок»." --name-ru "Скрывать laghax HUD при просмотре демок" --items-ru "Нет|Да" "Hide laghax HUD during demo playback" cl_laghax_hud_hide_demo
    blank
    action --align --status "Demo analytics / heatmap: traffic / frags / pickups. MVD2 = full scan; DM2 = live POV." --status-ru "Открывает раздел «аналитика демок»." --name-ru "Аналитика демок..." "Demo analytics..." pushmenu q2prox_demoanalytics
    action --align --status "Demo item respawn timers: translucent ghost models at waiting items, countdowns, demo player items strip. Per-item category toggles (armor / powerups / weapons). MVD2 only." --status-ru "Открывает раздел «таймеры предметов»." --name-ru "Таймеры предметов..." "Item timers..." pushmenu q2prox_demoitemtimers
    action --align --status "Show the demo player overlay (unhides after autohide / manual close)" --status-ru "Выполняет действие «показать проигрыватель демо»." --name-ru "Показать проигрыватель демо..." "Show demo player..." demo_player_open
    bind --status "demo_player_toggle: show or hide the demo player overlay" --status-ru "Назначает клавишу для действия «клавиша переключения»." --name-ru "Клавиша переключения" "Toggle key" demo_player_toggle
    bind --status "demo_pause_toggle: pause/resume demo (default: SPACE)" --status-ru "Назначает клавишу для действия «клавиша паузы»." --name-ru "Клавиша паузы" "Pause key" demo_pause_toggle
    bind --status "+demo_seek_back: hold to seek backwards, repeats 1s (default: LEFTARROW)" --status-ru "Назначает клавишу для действия «клавиша перемотки назад»." --name-ru "Клавиша перемотки назад" "Seek back key" +demo_seek_back
    bind --status "+demo_seek_forward: hold to seek forwards, repeats 1s (default: RIGHTARROW)" --status-ru "Назначает клавишу для действия «клавиша перемотки вперёд»." --name-ru "Клавиша перемотки вперёд" "Seek forward key" +demo_seek_forward
    bind --status "demo_playlist_next: jump to the next playlist item" --status-ru "Назначает клавишу для действия «клавиша следующего в плейлисте»." --name-ru "Клавиша следующего в плейлисте" "Playlist next key" demo_playlist_next
    bind --status "demo_playlist_prev: jump to the previous playlist item" --status-ru "Назначает клавишу для действия «клавиша предыдущего в плейлисте»." --name-ru "Клавиша предыдущего в плейлисте" "Playlist previous key" demo_playlist_prev
    bind --status "demo_playlist_clear: drop the current playlist queue" --status-ru "Назначает клавишу для действия «клавиша очистки плейлиста»." --name-ru "Клавиша очистки плейлиста" "Playlist clear key" demo_playlist_clear
end

begin q2prox_demoanalytics
    title "Demo Analytics"
    title-ru "Аналитика демок"
    style --no-compact
    values --live --status "cl_demo_analytics_mode: which layers the analytics panel shows" --status-ru "Выбирает значение «аналитика»." --name-ru "Аналитика" --items-ru "Выкл.|Трафик|Фраги|Подборы|Всё" "Analytics" cl_demo_analytics_mode "off" "traffic" "frags" "pickups" "all"
    values --live --status "cl_demo_analytics_style: where analytics are drawn (HUD panel, in-world particles, both)" --status-ru "Выбирает значение «стиль»." --name-ru "Стиль" --items-ru "Обзор|Мир|Оба" "Style" cl_demo_analytics_style "overview" "world" "both"
    values --live --status "cl_demo_analytics_time_scope: full = entire demo, elapsed = up to current time, window = last N sec" --status-ru "Выбирает значение «область времени»." --name-ru "Область времени" --items-ru "Полный|Прошло|Окно" "Time scope" cl_demo_analytics_time_scope "full" "elapsed" "window"
    range --live --precision 0 --status "cl_demo_analytics_window_sec: sliding-window size for time_scope = window" --status-ru "Настраивает значение «окно (сек)»." --name-ru "Окно (сек)" "Window (sec)" cl_demo_analytics_window_sec 5 600 5
    toggle --live --status "cl_demo_analytics_mvd_autoscan: auto-run MVD pre-scan on .mvd2 start" --status-ru "Включает или выключает параметр «автоскан MVD-демо»." --name-ru "Автоскан MVD-демо" --items-ru "Нет|Да" "Auto-scan MVD demos" cl_demo_analytics_mvd_autoscan
    values --live --status "cl_demo_analytics_dm2_mode: .dm2 fallback — off or live POV sampling" --status-ru "Выбирает значение «режим DM2»." --name-ru "Режим DM2" --items-ru "Выкл.|Текущий POV" "DM2 mode" cl_demo_analytics_dm2_mode "off" "live POV"
    range --live --precision 0 --status "cl_demo_analytics_sample_ms: sampling interval (ms). Lower = denser heatmap." --status-ru "Настраивает значение «интервал выборки (мс)»." --name-ru "Интервал выборки (мс)" "Sample interval (ms)" cl_demo_analytics_sample_ms 50 5000 50
    range --live --precision 0 --status "cl_demo_analytics_cell_size: heatmap cell size (world units)" --status-ru "Настраивает значение «размер ячейки (ед. мира)»." --name-ru "Размер ячейки (ед. мира)" "Cell size (world units)" cl_demo_analytics_cell_size 32 512 16
    range --live --precision 0 --status "cl_demo_analytics_draw_max_cells: cap on traffic cells drawn per frame" --status-ru "Настраивает значение «макс. ячеек на экране»." --name-ru "Макс. ячеек на экране" "Max cells drawn" cl_demo_analytics_draw_max_cells 100 5000 100
    range --live --precision 0 --status "cl_demo_analytics_draw_max_events: cap on frag+pickup dots drawn per frame" --status-ru "Настраивает значение «макс. событий на экране»." --name-ru "Макс. событий на экране" "Max events drawn" cl_demo_analytics_draw_max_events 100 16000 100
    range --live --precision 2 --status "cl_demo_analytics_overview_alpha: HUD panel background opacity" --status-ru "Настраивает значение «прозрачность панели HUD»." --name-ru "Прозрачность панели HUD" "HUD panel opacity" cl_demo_analytics_overview_alpha 0 1 0.05
    range --live --precision 2 --status "cl_demo_analytics_world_alpha: world particle opacity (style world/both)" --status-ru "Настраивает значение «прозрачность частиц мира»." --name-ru "Прозрачность частиц мира" "World particle opacity" cl_demo_analytics_world_alpha 0 1 0.05
    range --live --precision 2 --status "cl_demo_analytics_world_scale: world particle size multiplier" --status-ru "Настраивает значение «масштаб частиц мира»." --name-ru "Масштаб частиц мира" "World particle scale" cl_demo_analytics_world_scale 0.25 4 0.25
    range --live --precision 1 --status "cl_demo_analytics_world_lifetime_sec: 0 = aggregate; >0 = trail mode (per-sample, fades over N sec)" --status-ru "Настраивает значение «время жизни частиц мира (сек, 0=выкл.)»." --name-ru "Время жизни частиц мира (сек, 0=выкл.)" "World particle lifetime (sec, 0=off)" cl_demo_analytics_world_lifetime_sec 0 60 0.5
    range --live --precision 0 --status "cl_demo_analytics_trail_stride: draw every Nth sample per slot (1=densest)" --status-ru "Настраивает значение «шаг точек следа (1=плотно)»." --name-ru "Шаг точек следа (1=плотно)" "Trail dot stride (1=densest)" cl_demo_analytics_trail_stride 1 20 1
    toggle --live --status "cl_demo_analytics_trail_lines: connect consecutive samples of the same slot with a line" --status-ru "Включает или выключает параметр «линии соединения следа»." --name-ru "Линии соединения следа" --items-ru "Нет|Да" "Trail connect lines" cl_demo_analytics_trail_lines
    values --live --status "cl_demo_analytics_trail_height_mode: origin = dot at entity origin; feet = dot near feet level (follows jumps/falls). Render-only." --status-ru "Выбирает значение «режим высоты следа»." --name-ru "Режим высоты следа" --items-ru "Центр|Ступни" "Trail height mode" cl_demo_analytics_trail_height_mode "origin" "feet"
    range --live --precision 0 --status "cl_demo_analytics_trail_feet_z: Z offset in feet mode (negative = toward floor, typical -24)" --status-ru "Настраивает значение «Z-смещение ступней следа»." --name-ru "Z-смещение ступней следа" "Trail feet Z offset" cl_demo_analytics_trail_feet_z -64 64 4
    range --live --precision 0 --status "cl_demo_analytics_trail_hover_z: extra upward hover so dots don't clip into the floor" --status-ru "Настраивает значение «Z-высота следа»." --name-ru "Z-высота следа" "Trail hover Z" cl_demo_analytics_trail_hover_z 0 32 1
    toggle --live --status "cl_demo_analytics_trail_outline: draw outline behind trail dots, lines, and HUD event dots" --status-ru "Включает или выключает параметр «контур следа»." --name-ru "Контур следа" --items-ru "Нет|Да" "Trail outline" cl_demo_analytics_trail_outline
    range --live --precision 2 --status "cl_demo_analytics_trail_outline_alpha: outline particle opacity (0..1)" --status-ru "Настраивает значение «прозрачность контура»." --name-ru "Прозрачность контура" "Outline alpha" cl_demo_analytics_trail_outline_alpha 0 1 0.05
    range --live --precision 1 --status "cl_demo_analytics_trail_outline_scale: outline size multiplier relative to foreground dot" --status-ru "Настраивает значение «масштаб контура»." --name-ru "Масштаб контура" "Outline scale" cl_demo_analytics_trail_outline_scale 1 3 0.1
    toggle --live --status "cl_demo_analytics_show_legend: show counts+truncation line at the bottom of the HUD panel" --status-ru "Включает или выключает параметр «показывать легенду»." --name-ru "Показывать легенду" --items-ru "Нет|Да" "Show legend" cl_demo_analytics_show_legend
    action --align --status "Open the analytics color preset editor (traffic, frag, pickup, trail, outline colors)" --status-ru "Открывает раздел «цвета аналитики»." --name-ru "Цвета аналитики..." "Analytics colors..." pushmenu q2prox_demoanalytics_colors
    blank
    action --align --status "Re-run the MVD pre-scan for the currently-playing demo." --status-ru "Выполняет действие «пересканировать текущее демо»." --name-ru "Пересканировать текущее демо" "Rescan current demo" demo_analytics_rescan
    action --align --status "Print current analytics state to console" --status-ru "Выполняет действие «инфо в консоль»." --name-ru "Инфо в консоль" "Print info to console" demo_analytics_info
end

begin q2prox_demoitemtimers
    title "Demo Item Timers"
    title-ru "Таймеры предметов в демках"
    style --no-compact
    values --live --status "cl_demo_item_timers_world: master switch. off / world only (3D ghosts + 3D labels, no strip) / strip only (demo player strip with 2D icons + countdown, no 3D) / both. Intervals derived from observed MVD cycles. MVD2 only." --status-ru "Выбирает значение «таймеры предметов»." --name-ru "Таймеры предметов" --items-ru "Выкл.|Только мир|Только панель|Оба" "Item timers" cl_demo_item_timers_world "off" "world only" "strip only" "both"
    range --live --precision 2 --status "cl_demo_item_timers_world_alpha: opacity of ghost item models / countdown labels (0..1)" --status-ru "Настраивает значение «прозрачность призраков»." --name-ru "Прозрачность призраков" "Ghost opacity" cl_demo_item_timers_world_alpha 0 1 0.05
    range --live --precision 2 --status "cl_demo_item_timers_world_scale: ghost model size multiplier (0.25..3.0)" --status-ru "Настраивает значение «масштаб призрачной модели»." --name-ru "Масштаб призрачной модели" "Ghost model scale" cl_demo_item_timers_world_scale 0.25 3 0.05
    blank
    action --align --status "Open the per-item timer color editor (adaptive toggle + per-item text/ring colors)" --status-ru "Открывает раздел «цвета предметов»." --name-ru "Цвета предметов..." "Items colors..." pushmenu q2prox_demoitemtimers_colors
    blank
    toggle --live --status "cl_demo_item_timers_show_armor_green: track green jacket armor" --status-ru "Включает или выключает параметр «показывать зелёную броню»." --name-ru "Показывать зелёную броню" --items-ru "Нет|Да" "Show green armor (jacket)" cl_demo_item_timers_show_armor_green
    toggle --live --status "cl_demo_item_timers_show_armor_yellow: track yellow combat armor" --status-ru "Включает или выключает параметр «показывать жёлтую броню»." --name-ru "Показывать жёлтую броню" --items-ru "Нет|Да" "Show yellow armor (combat)" cl_demo_item_timers_show_armor_yellow
    toggle --live --status "cl_demo_item_timers_show_armor_red: track red body armor" --status-ru "Включает или выключает параметр «показывать красную броню»." --name-ru "Показывать красную броню" --items-ru "Нет|Да" "Show red armor (body)" cl_demo_item_timers_show_armor_red
    blank
    toggle --live --status "cl_demo_item_timers_show_quad: track Quad Damage" --status-ru "Включает или выключает параметр «показывать квад-урон»." --name-ru "Показывать квад-урон" --items-ru "Нет|Да" "Show Quad Damage" cl_demo_item_timers_show_quad
    toggle --live --status "cl_demo_item_timers_show_invuln: track Invulnerability / pent" --status-ru "Включает или выключает параметр «показывать неуязвимость»." --name-ru "Показывать неуязвимость" --items-ru "Нет|Да" "Show Invulnerability" cl_demo_item_timers_show_invuln
    toggle --live --status "cl_demo_item_timers_show_silencer: track Silencer" --status-ru "Включает или выключает параметр «показывать глушитель»." --name-ru "Показывать глушитель" --items-ru "Нет|Да" "Show Silencer" cl_demo_item_timers_show_silencer
    toggle --live --status "cl_demo_item_timers_show_breather: track Rebreather" --status-ru "Включает или выключает параметр «показывать ребризер»." --name-ru "Показывать ребризер" --items-ru "Нет|Да" "Show Rebreather" cl_demo_item_timers_show_breather
    toggle --live --status "cl_demo_item_timers_show_enviro: track Environment Suit" --status-ru "Включает или выключает параметр «показывать защитный костюм»." --name-ru "Показывать защитный костюм" --items-ru "Нет|Да" "Show Environment Suit" cl_demo_item_timers_show_enviro
    toggle --live --status "cl_demo_item_timers_show_adrenal: track Adrenaline" --status-ru "Включает или выключает параметр «показывать адреналин»." --name-ru "Показывать адреналин" --items-ru "Нет|Да" "Show Adrenaline" cl_demo_item_timers_show_adrenal
    toggle --live --status "cl_demo_item_timers_show_megahealth: track Mega Health" --status-ru "Включает или выключает параметр «показывать мега-здоровье»." --name-ru "Показывать мега-здоровье" --items-ru "Нет|Да" "Show Mega Health" cl_demo_item_timers_show_megahealth
    toggle --live --status "cl_demo_item_timers_show_power_screen: track Power Screen" --status-ru "Включает или выключает параметр «показывать энергетический экран»." --name-ru "Показывать энергетический экран" --items-ru "Нет|Да" "Show Power Screen" cl_demo_item_timers_show_power_screen
    toggle --live --status "cl_demo_item_timers_show_power_shield: track Power Shield" --status-ru "Включает или выключает параметр «показывать энергетический щит»." --name-ru "Показывать энергетический щит" --items-ru "Нет|Да" "Show Power Shield" cl_demo_item_timers_show_power_shield
    blank
    toggle --live --status "cl_demo_item_timers_show_rl: track Rocket Launcher (off by default)" --status-ru "Включает или выключает параметр «показывать ракетницу»." --name-ru "Показывать ракетницу" --items-ru "Нет|Да" "Show Rocket Launcher" cl_demo_item_timers_show_rl
    toggle --live --status "cl_demo_item_timers_show_bfg: track BFG10K (off by default)" --status-ru "Включает или выключает параметр «показывать BFG10K»." --name-ru "Показывать BFG10K" --items-ru "Нет|Да" "Show BFG10K" cl_demo_item_timers_show_bfg
    toggle --live --status "cl_demo_item_timers_show_rail: track Railgun (off by default)" --status-ru "Включает или выключает параметр «показывать Railgun»." --name-ru "Показывать Railgun" --items-ru "Нет|Да" "Show Railgun" cl_demo_item_timers_show_rail
    blank
    blank
    range --live --precision 2 --status "cl_demo_item_timers_strip_alpha: strip background opacity (0..1)" --status-ru "Настраивает значение «прозрачность панели»." --name-ru "Прозрачность панели" "Strip opacity" cl_demo_item_timers_strip_alpha 0 1 0.05
    toggle --live --status "cl_demo_item_timers_strip_pillarbox_workspace: drag coordinates span the full window including pillarbox/letterbox" --status-ru "Включает или выключает параметр «панель в боковых полях»." --name-ru "Панель в боковых полях" --items-ru "Нет|Да" "Strip pillarbox workspace" cl_demo_item_timers_strip_pillarbox_workspace
    action --align --status "Drag the strip to any position (Enter/Escape to exit)" --status-ru "Выполняет действие «переместить панель (перетаскивание)»." --name-ru "Переместить панель (перетаскивание)" "Move strip (drag)" demo_item_timers_strip_edit
    action --align --status "Reset strip position to default" --status-ru "Выполняет действие «сбросить позицию панели»." --name-ru "Сбросить позицию панели" "Reset strip position" demo_item_timers_strip_reset
    blank
    action --align --status "Print item-timer cache to console" --status-ru "Выполняет действие «инфо о таймерах предметов»." --name-ru "Инфо о таймерах предметов" "Print item-timer info" demo_item_timers_info
end

begin q2prox_modhelp
    title "Mod Command Overlay"
    title-ru "Оверлей команд мода"
    style --no-compact
    range --status "Adjust this value." --status-ru "Настраивает значение «прозрачность»." --live --precision 2 --name-ru "Прозрачность" "Opacity" cl_modhelp_alpha 0 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «масштаб текста»." --live --precision 1 --name-ru "Масштаб текста" "Text scale" cl_modhelp_scale 0.1 2 0.1
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «компактный режим»." --live --name-ru "Компактный режим" --items-ru "Нет|Да" "Compact mode" cl_modhelp_compact
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «полный экран»." --live --name-ru "Полный экран" --items-ru "Нет|Да" "Fullscreen" cl_modhelp_fullscreen
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать псевдонимы»." --live --name-ru "Показывать псевдонимы" --items-ru "Нет|Да" "Show aliases" cl_modhelp_show_aliases
    blank
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать общие»." --live --name-ru "Показывать общие" --items-ru "Нет|Да" "Show general" cl_modhelp_show_general
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать наблюдательские»." --live --name-ru "Показывать наблюдательские" --items-ru "Нет|Да" "Show spectator" cl_modhelp_show_spectator
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать командные»." --live --name-ru "Показывать командные" --items-ru "Нет|Да" "Show team" cl_modhelp_show_team
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать статистику»." --live --name-ru "Показывать статистику" --items-ru "Нет|Да" "Show stats" cl_modhelp_show_stats
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать голосование»." --live --name-ru "Показывать голосование" --items-ru "Нет|Да" "Show voting" cl_modhelp_show_voting
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать админские»." --live --name-ru "Показывать админские" --items-ru "Нет|Да" "Show admin" cl_modhelp_show_admin
    blank
    values --status "Choose this value." --status-ru "Выбирает значение «роль оверлея»." --live --name-ru "Роль оверлея" --items-ru "Авто|Игрок|Наблюдатель|Комментатор|Капитан|Админ" "Overlay role" cl_modhelp_role auto player spectator caster captain admin
    values --status "Choose this value." --status-ru "Выбирает значение «недоступные строки»." --live --name-ru "Недоступные строки" --items-ru "Показать|Серый|Скрыть" "Unavailable rows" cl_modhelp_unavailable show gray hide
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «подтверждать опасные»." --live --name-ru "Подтверждать опасные" --items-ru "Нет|Да" "Confirm dangerous" cl_modhelp_confirm_dangerous
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «предпочитать контекстную страницу»." --live --name-ru "Предпочитать контекстную страницу" --items-ru "Нет|Да" "Prefer context page" cl_modhelp_prefer_context_page
    blank
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать бейджи строк»." --live --name-ru "Показывать бейджи строк" --items-ru "Нет|Да" "Show row badges" cl_modhelp_show_badges
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «запоминать последнюю страницу»." --live --name-ru "Запоминать последнюю страницу" --items-ru "Нет|Да" "Keep last page" cl_modhelp_keep_page
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «показывать закреплённые первыми»." --live --name-ru "Показывать закреплённые первыми" --items-ru "Нет|Да" "Show pinned first" cl_modhelp_show_pinned
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «использовать локальные переопределения»." --live --name-ru "Использовать локальные переопределения" --items-ru "Нет|Да" "Use local overrides" cl_modhelp_use_local
    blank
    action --align --status "Toggle mod overlay on/off" --status-ru "Выполняет действие «переключить оверлей»." --name-ru "Переключить оверлей..." "Toggle overlay..." modhelp_toggle
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «клавиша оверлея»." --name-ru "Клавиша оверлея" "Overlay toggle key" modhelp_toggle
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «клавиша поиска»." --name-ru "Клавиша поиска" "Search key" modhelp_search
end

begin q2prox_vis
    title "Visibility Highlights"
    title-ru "Подсветка видимости"
    style --no-compact
    pairs --live --status "graphics quality for item highlight overlays. High = stable legacy renderer (default). Performance = batched renderer for higher FPS; current implementation can flicker with item style shell+tint until the redesigned renderer lands." --status-ru "Качество графики для подсветки предметов. Высокое = стабильная старая отрисовка (по умолчанию). Производительность = быстрая пакетная отрисовка для большего FPS; текущая реализация может мерцать при стиле контур+заливка до появления нового рендера." --name-ru "Качество графики" --items-ru "Высокое|Производительность" "Graphics quality" cl_vis_overlay_batch High 0 Performance 1
    toggle --live --status "cl_vis_enable: master switch for highlighting" --status-ru "Включает или выключает параметр «включить подсветку»." --name-ru "Включить подсветку" --items-ru "Нет|Да" "Enable highlighting" cl_vis_enable
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «одиночная игра»." --live --name-ru "Одиночная игра" --items-ru "Нет|Да" "Single-player" cl_vis_singleplayer
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «подсветка предметов»." --live --name-ru "Подсветка предметов" --items-ru "Нет|Да" "Item highlighting" cl_vis_items
    values --status "Choose this value." --status-ru "Выбирает значение «стиль предметов»." --live --name-ru "Стиль предметов" --items-ru "Выкл.|Контур|Заливка|Контур+заливка" "Item style" cl_vis_items_style off shell tint "shell+tint"
    range --status "Adjust this value." --status-ru "Настраивает значение «прозрачность заливки»." --live --precision 2 --name-ru "Прозрачность заливки" "Tint alpha" cl_vis_items_alpha 0.05 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «прозрачность контура»." --live --precision 2 --name-ru "Прозрачность контура" "Shell alpha" cl_vis_items_shell_alpha 0.05 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «толщина контура»." --live --precision 2 --name-ru "Толщина контура" "Shell thickness" cl_vis_items_shell_scale 0.01 4 0.01
    range --status "Adjust this value." --status-ru "Настраивает значение «яркость предметов»." --live --precision 2 --name-ru "Яркость предметов" "Item brightness" cl_vis_items_brightness 0 10 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «масштаб предметов»." --live --precision 2 --name-ru "Масштаб предметов" "Item scale" cl_vis_items_scale 0.1 5 0.05
    blank
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «подсветка оружия»." --live --name-ru "Подсветка оружия" --items-ru "Нет|Да" "Weapon highlighting" cl_vis_weapons
    range --status "Adjust this value." --status-ru "Настраивает значение «масштаб оружия»." --live --precision 2 --name-ru "Масштаб оружия" "Weapon scale" cl_vis_weapons_scale 0.1 5 0.05
    blank
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «подсветка игроков»." --live --name-ru "Подсветка игроков" --items-ru "Нет|Да" "Player highlighting" cl_vis_players
    values --live --status "off/all/random FFA/duel/auto/team/model. Model mode colors every player by their resolved player-model directory (male/female/cyborg/...) — recommended for demo watching where team truth is not meaningful." --status-ru "Выбирает значение «режим игроков»." --name-ru "Режим игроков" --items-ru "Выкл.|Всё|Случайно FFA|Дуэль|Авто|Команда|Модель" "Player mode" cl_vis_players_mode off all "random FFA" duel auto team model
    action --status "Per-player-model colors editor" --status-ru "Открывает раздел «Цвета моделей игроков»." --name-ru "Цвета моделей игроков..." "Player model colors..." pushmenu q2prox_vis_player_model_colors
    values --status "Choose this value." --status-ru "Выбирает значение «стиль игроков»." --live --name-ru "Стиль игроков" --items-ru "Выкл.|Контур|Заливка|Контур+заливка" "Player style" cl_vis_players_style off shell tint "shell+tint"
    range --status "Adjust this value." --status-ru "Настраивает значение «прозрачность заливки игроков»." --live --precision 2 --name-ru "Прозрачность заливки игроков" "Player tint alpha" cl_vis_players_alpha 0.05 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «прозрачность контура игроков»." --live --precision 2 --name-ru "Прозрачность контура игроков" "Player shell alpha" cl_vis_players_shell_alpha 0.05 1 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «толщина контура игроков»." --live --precision 3 --name-ru "Толщина контура игроков" "Player shell thickness" cl_vis_players_shell_scale 0 0.05 0.005
    range --live --precision 2 --status "cl_vis_players_scale: player model size. Applied ONLY in single-player or during .dm2/.mvd2 demo playback; stock size on a live deathmatch server." --status-ru "Настраивает значение «масштаб игрока»." --name-ru "Масштаб игрока" "Player scale" cl_vis_players_scale 0.1 5 0.05
    range --status "Adjust this value." --status-ru "Настраивает значение «яркость игроков»." --live --precision 2 --name-ru "Яркость игроков" "Player brightness" cl_vis_players_brightness 0 10 0.05
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «подсвечивать себя»." --live --name-ru "Подсвечивать себя" --items-ru "Нет|Да" "Highlight self" cl_vis_players_self
    pairs --live --status "Auto-mode fallback when team/duel truth is weak. Stored numerically (1=all, 2=random FFA; default 2)." --status-ru "Выбирает значение «авторезерв»." --name-ru "Авторезерв" --items-ru "Всё|Случайно FFA" "Auto fallback" cl_vis_players_auto_fallback all 1 "Random FFA" 2
    range --status "Adjust this value." --status-ru "Настраивает значение «удержание дуэли (мс)»." --live --precision 0 --name-ru "Удержание дуэли (мс)" "Duel hold ms" cl_vis_players_duel_hold_ms 100 3000 100
    pairs --live --status "Team detection source. Stored numerically (0=off, 1=auto, 2=opentdm)." --status-ru "Выбирает значение «источник команды»." --name-ru "Источник команды" --items-ru "Выкл.|Авто|OpenTDM" "Team source" cl_vis_players_team_source off 0 auto 1 opentdm 2
    pairs --live --status "Team-mode fallback when team truth is weak. Stored numerically (1=all, 2=random FFA, 3=duel; default 3)." --status-ru "Выбирает значение «командный резерв»." --name-ru "Командный резерв" --items-ru "Всё|Случайно FFA|Дуэль" "Team fallback" cl_vis_players_team_fallback all 1 "Random FFA" 2 duel 3
    range --status "Adjust this value." --status-ru "Настраивает значение «удержание команды (мс)»." --live --precision 0 --name-ru "Удержание команды (мс)" "Team hold ms" cl_vis_players_team_hold_ms 100 3000 100
    pairs --status "Choose this value." --status-ru "Выбирает значение «цвет своих»." --live --name-ru "Цвет своих" --items-ru "Циан|Синий|Зелёный|Лайм|Жёлтый|Белый" "Friendly color" cl_vis_players_team_friendly_color cyan "#33Ccff" blue "#3366Ff" green "#33Ff66" lime "#66Ff66" yellow "#Ffff33" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «цвет врагов»." --live --name-ru "Цвет врагов" --items-ru "Красный|Оранжевый|Маджента|Жёлтый|Белый|Циан" "Enemy color" cl_vis_players_team_enemy_color red "#Ff4444" orange "#Ff6633" magenta "#Ff33ff" yellow "#Ffff33" white "#Ffffff" cyan "#33Ccff"
    blank
    action --status "Per-class item toggles (health, armor, ammo, powerups, keys)" --status-ru "Открывает раздел «переключатели предметов»." --name-ru "Переключатели предметов..." "Item toggles..." pushmenu q2prox_vis_toggles
    action --status "Per-class item colors" --status-ru "Открывает раздел «цвета предметов»." --name-ru "Цвета предметов..." "Item colors..." pushmenu q2prox_vis_colors
    action --status "Per-weapon enable toggles" --status-ru "Открывает раздел «переключатели оружия»." --name-ru "Переключатели оружия..." "Weapon toggles..." pushmenu q2prox_vis_weapon_toggles
    action --status "Per-weapon colors" --status-ru "Открывает раздел «цвета оружия»." --name-ru "Цвета оружия..." "Weapon colors..." pushmenu q2prox_vis_weapon_colors
    blank
    action --align --status "Print item classification and status" --status-ru "Выполняет действие «инфо о видимости предметов»." --name-ru "Инфо о видимости предметов..." "Vis items info..." cl_vis_items_info
end

begin q2prox_vis_toggles
    title "Vis Toggles"
    title-ru "Переключатели подсветки"
    style --no-compact
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «малое здоровье»." --live --name-ru "Малое здоровье" --items-ru "Нет|Да" "Health small" cl_vis_health_small
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «среднее здоровье»." --live --name-ru "Среднее здоровье" --items-ru "Нет|Да" "Health medium" cl_vis_health_medium
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «большое здоровье»." --live --name-ru "Большое здоровье" --items-ru "Нет|Да" "Health large" cl_vis_health_large
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «мега-здоровье»." --live --name-ru "Мега-здоровье" --items-ru "Нет|Да" "Health mega" cl_vis_health_mega
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «осколок брони»." --live --name-ru "Осколок брони" --items-ru "Нет|Да" "Armor shard" cl_vis_armor_shard
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «зелёная броня»." --live --name-ru "Зелёная броня" --items-ru "Нет|Да" "Armor jacket" cl_vis_armor_jacket
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «жёлтая броня»." --live --name-ru "Жёлтая броня" --items-ru "Нет|Да" "Armor combat" cl_vis_armor_combat
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «красная броня»." --live --name-ru "Красная броня" --items-ru "Нет|Да" "Armor body" cl_vis_armor_body
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «энергетический экран»." --live --name-ru "Энергетический экран" --items-ru "Нет|Да" "Armor screen" cl_vis_armor_screen
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «энергетический щит»." --live --name-ru "Энергетический щит" --items-ru "Нет|Да" "Armor shield" cl_vis_armor_shield
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «патроны»." --live --name-ru "Патроны" --items-ru "Нет|Да" "Ammo" cl_vis_ammo
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «пауэрапы»." --live --name-ru "Пауэрапы" --items-ru "Нет|Да" "Powerups" cl_vis_powerups
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «ключи»." --live --name-ru "Ключи" --items-ru "Нет|Да" "Keys" cl_vis_keys
end

begin q2prox_vis_colors
    title "Vis Colors"
    title-ru "Цвета подсветки"
    style --no-compact
    pairs --status "Choose this value." --status-ru "Выбирает значение «малое здоровье»." --live --name-ru "Малое здоровье" --items-ru "Зелёный|Лайм|Циан|Жёлтый|Белый" "Health small" cl_vis_health_small_color green "#66Ff66" lime "#33Ff33" cyan "#66Ffff" yellow "#Ffff33" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «среднее здоровье»." --live --name-ru "Среднее здоровье" --items-ru "Зелёный|Лайм|Циан|Жёлтый|Белый" "Health medium" cl_vis_health_medium_color green "#33Ff33" lime "#00Ff00" cyan "#33Ffff" yellow "#Ffcc33" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «большое здоровье»." --live --name-ru "Большое здоровье" --items-ru "Зелёный|Лайм|Циан|Жёлтый|Белый" "Health large" cl_vis_health_large_color green "#00Ff00" lime "#33Ff33" cyan "#00Ffff" yellow "#Ffcc33" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «мега-здоровье»." --live --name-ru "Мега-здоровье" --items-ru "Маджента|Красный|Циан|Синий|Белый" "Health mega" cl_vis_health_mega_color magenta "#Ff33ff" red "#Ff3333" cyan "#33Ffff" blue "#3399Ff" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «осколок брони»." --live --name-ru "Осколок брони" --items-ru "Циан|Зелёный|Синий|Белый" "Armor shard" cl_vis_armor_shard_color cyan "#66Ffff" green "#66Ff66" blue "#6699Ff" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «зелёная броня»." --live --name-ru "Зелёная броня" --items-ru "Зелёный|Лайм|Циан|Жёлтый|Белый" "Armor jacket" cl_vis_armor_jacket_color green "#66Ff66" lime "#33Ff33" cyan "#66Ffff" yellow "#Ffcc33" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «жёлтая броня»." --live --name-ru "Жёлтая броня" --items-ru "Жёлтый|Оранжевый|Зелёный|Белый" "Armor combat" cl_vis_armor_combat_color yellow "#Ffd633" orange "#Ff9933" green "#66Ff66" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «красная броня»." --live --name-ru "Красная броня" --items-ru "Красный|Оранжевый|Маджента|Жёлтый|Белый" "Armor body" cl_vis_armor_body_color red "#Ff3333" orange "#Ff6633" magenta "#Ff33ff" yellow "#Ffcc33" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «энергетический экран»." --live --name-ru "Энергетический экран" --items-ru "Циан|Синий|Зелёный|Белый" "Armor screen" cl_vis_armor_screen_color cyan "#66Ccff" blue "#3399Ff" green "#66Ff66" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «энергетический щит»." --live --name-ru "Энергетический щит" --items-ru "Синий|Циан|Маджента|Белый" "Armor shield" cl_vis_armor_shield_color blue "#3399Ff" cyan "#66Ccff" magenta "#Ff33ff" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «патроны»." --live --name-ru "Патроны" --items-ru "Белый|Циан|Зелёный|Жёлтый" "Ammo" cl_vis_ammo_color white "#Ffffff" cyan "#66Ffff" green "#66Ff66" yellow "#Ffcc33"
    pairs --status "Choose this value." --status-ru "Выбирает значение «пауэрапы»." --live --name-ru "Пауэрапы" --items-ru "Синий|Циан|Маджента|Красный|Белый" "Powerups" cl_vis_powerups_color blue "#3399Ff" cyan "#33Ffff" magenta "#Ff33ff" red "#Ff3333" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «ключи»." --live --name-ru "Ключи" --items-ru "Маджента|Красный|Циан|Жёлтый|Белый" "Keys" cl_vis_keys_color magenta "#Ff66cc" red "#Ff3333" cyan "#66Ffff" yellow "#Ffcc33" white "#Ffffff"
end

begin q2prox_vis_weapon_toggles
    title "Weapon Toggles"
    title-ru "Переключатели оружия"
    style --no-compact
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «дробовик»." --live --name-ru "Дробовик" --items-ru "Нет|Да" "Shotgun" cl_vis_weapon_shotgun
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «супердробовик»." --live --name-ru "Супердробовик" --items-ru "Нет|Да" "Super shotgun" cl_vis_weapon_sshotgun
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «пулемёт»." --live --name-ru "Пулемёт" --items-ru "Нет|Да" "Machinegun" cl_vis_weapon_machinegun
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «чейнган»." --live --name-ru "Чейнган" --items-ru "Нет|Да" "Chaingun" cl_vis_weapon_chaingun
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «гранатомёт»." --live --name-ru "Гранатомёт" --items-ru "Нет|Да" "Grenade launcher" cl_vis_weapon_grenade
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «ракетница»." --live --name-ru "Ракетница" --items-ru "Нет|Да" "Rocket launcher" cl_vis_weapon_rocket
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «гипербластер»." --live --name-ru "Гипербластер" --items-ru "Нет|Да" "Hyperblaster" cl_vis_weapon_hyperblaster
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «Railgun»." --live --name-ru "Railgun" --items-ru "Нет|Да" "Railgun" cl_vis_weapon_railgun
    toggle --status "Toggle this setting." --status-ru "Включает или выключает параметр «BFG10K»." --live --name-ru "BFG10K" --items-ru "Нет|Да" "BFG10K" cl_vis_weapon_bfg
end

begin q2prox_vis_weapon_colors
    title "Weapon Colors"
    title-ru "Цвета оружия"
    style --no-compact
    pairs --status "Choose this value." --status-ru "Выбирает значение «дробовик»." --live --name-ru "Дробовик" --items-ru "Серый|Белый|Жёлтый|Зелёный" "Shotgun" cl_vis_weapon_shotgun_color grey "#999999" white "#Ffffff" yellow "#Ffcc33" green "#66Ff66"
    pairs --status "Choose this value." --status-ru "Выбирает значение «супердробовик»." --live --name-ru "Супердробовик" --items-ru "Серый|Белый|Жёлтый|Зелёный" "Super shotgun" cl_vis_weapon_sshotgun_color grey "#999999" white "#Ffffff" yellow "#Ffcc33" green "#66Ff66"
    pairs --status "Choose this value." --status-ru "Выбирает значение «пулемёт»." --live --name-ru "Пулемёт" --items-ru "Коричневый|Жёлтый|Оранжевый|Белый" "Machinegun" cl_vis_weapon_machinegun_color brown "#Cc9933" yellow "#Ffcc33" orange "#Ff9933" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «чейнган»." --live --name-ru "Чейнган" --items-ru "Коричневый|Жёлтый|Оранжевый|Белый" "Chaingun" cl_vis_weapon_chaingun_color brown "#Cc9933" yellow "#Ffcc33" orange "#Ff9933" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «гранатомёт»." --live --name-ru "Гранатомёт" --items-ru "Тёмно-красный|Красный|Оранжевый|Белый" "Grenade launcher" cl_vis_weapon_grenade_color "Dark red" "#993333" red "#Ff3333" orange "#Ff6633" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «ракетница»." --live --name-ru "Ракетница" --items-ru "Красный|Оранжевый|Жёлтый|Белый" "Rocket launcher" cl_vis_weapon_rocket_color red "#Ff3333" orange "#Ff6633" yellow "#Ffcc33" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «гипербластер»." --live --name-ru "Гипербластер" --items-ru "Зелёно-жёлтый|Зелёный|Жёлтый|Циан|Белый" "Hyperblaster" cl_vis_weapon_hyperblaster_color "Green-yellow" "#99Cc33" green "#66Ff66" yellow "#Ffcc33" cyan "#66Ffff" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «Railgun»." --live --name-ru "Railgun" --items-ru "Синий|Циан|Маджента|Белый" "Railgun" cl_vis_weapon_railgun_color blue "#3366Ff" cyan "#33Ccff" magenta "#Ff33ff" white "#Ffffff"
    pairs --status "Choose this value." --status-ru "Выбирает значение «BFG10K»." --live --name-ru "BFG10K" --items-ru "Зелёно-синий|Зелёный|Циан|Синий|Белый" "BFG10K" cl_vis_weapon_bfg_color "Green-blue" "#33Cc99" green "#33Ff66" cyan "#33Ffff" blue "#3399Ff" white "#Ffffff"
end

begin q2prox_scripts
    title "Scripts / Binds"
    title-ru "Скрипты / биндинги"
    style --no-compact
    bind --status "+dropw: hold to make weapon binds drop instead of use" --status-ru "Назначает клавишу для действия «модификатор выброса оружия»." --name-ru "Модификатор выброса оружия" "Weapon drop modifier" +dropw
    bind --status "followip: connect to last IP shown in console" --status-ru "Назначает клавишу для действия «IP из консоли»." --name-ru "IP из консоли" "Follow console IP" followip
    bind --status "aadump: dump scoreboard to console" --status-ru "Назначает клавишу для действия «дамп счёта (консоль)»." --name-ru "Дамп счёта (консоль)" "Score dump (console)" aadump
    bind --status "aashot: dump scoreboard to file" --status-ru "Назначает клавишу для действия «дамп счёта (файл)»." --name-ru "Дамп счёта (файл)" "Score dump (file)" aashot
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «готовность»." --name-ru "Готовность" "Ready" ready
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «снять готовность»." --name-ru "Снять готовность" "Unready" unready
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «голос: да»." --name-ru "Голос: да" "Vote yes" "vote yes"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «голос: нет»." --name-ru "Голос: нет" "Vote no" "vote no"
    bind --status "Bind a key for this action." --status-ru "Назначает клавишу для действия «скриншот»." --name-ru "Скриншот" "Screenshot" screenshot
    blank
    action --align --status "Print available console macros" --status-ru "Выполняет действие «список макросов»." --name-ru "Список макросов..." "List macros..." macrolist
end

begin q2prox_voice
    title "Q2PRO-X / Voice Chat"
    title-ru "Q2PRO-X / Голосовой чат"
    style --no-compact
    toggle --live --status "vc_enable: master switch (0 = off by default; Phase 1 requires OpenAL for both voice transmit and receive)" --status-ru "Включает или выключает параметр «голосовой чат включён»." --name-ru "Голосовой чат включён" --items-ru "Нет|Да" "Voice chat enabled" vc_enable
    blank
    toggle --live --status "vc_autojoin: auto-join voice room on game server connect" --status-ru "Включает или выключает параметр «автовход при подключении»." --name-ru "Автовход при подключении" --items-ru "Нет|Да" "Autojoin on connect" vc_autojoin
    values --live --status "vc_room_mode: server = per-game-server room (default), manual = use vc_room_name" --status-ru "Выбирает значение «режим комнаты»." --name-ru "Режим комнаты" --items-ru "Сервер|Ручной" "Room mode" vc_room_mode server manual
    field --width 24 --status "vc_room_name: room name for manual mode" --status-ru "Редактирует значение «имя ручной комнаты»." --name-ru "Имя ручной комнаты" "Manual room name" vc_room_name
    field --width 32 --status "vc_server: voice control-plane URL" --status-ru "Редактирует значение «сервер управления»." --name-ru "Сервер управления" "Control server" vc_server
    blank
    toggle --live --status "vc_mic_enable: allow microphone capture (requires OpenAL sound engine)" --status-ru "Включает или выключает параметр «микрофон включён»." --name-ru "Микрофон включён" --items-ru "Нет|Да" "Microphone enabled" vc_mic_enable
    action --q2prox --align --status "Choose microphone from enumerated devices; (default) follows Windows default mic. Console fallback: /voice_mic_list, /voice_mic_pick <index>." --status-ru "Открывает раздел «микрофон»." --name-ru "Микрофон..." "Mic device..." pushmenu q2prox_voice_mic_pick
    values --live --status "vc_ptt_mode: 1 = push-to-talk (default), 0 = VAD" --status-ru "Выбирает значение «режим передачи»." --name-ru "Режим передачи" --items-ru "Активация голосом|Кнопка разговора" "Transmit mode" vc_ptt_mode "voice activation" "push-to-talk"
    range --live --precision 3 --status "vc_vad_threshold: VAD trigger level, LOWER = more sensitive" --status-ru "Настраивает значение «порог VAD»." --name-ru "Порог VAD" "VAD threshold" vc_vad_threshold 0.001 0.1 0.005
    range --live --precision 2 --status "vc_input_gain: microphone gain (1.0 = unity, up to 10x)" --status-ru "Настраивает значение «усиление микрофона»." --name-ru "Усиление микрофона" "Mic gain" vc_input_gain 0.0 10.0 0.25
    range --live --precision 2 --status "vc_receive_volume: incoming voice volume (1.0 = unity, up to 10x, independent of s_volume; playback also requires OpenAL in Phase 1)" --status-ru "Настраивает значение «громкость приёма»." --name-ru "Громкость приёма" "Receive volume" vc_receive_volume 0.0 10.0 0.25
    toggle --live --status "vc_deafen: mute all incoming voice (you can still transmit)" --status-ru "Включает или выключает параметр «заглушить входящие»." --name-ru "Заглушить входящие" --items-ru "Нет|Да" "Deafen (mute incoming)" vc_deafen
    blank
    field --width 24 --status "vc_display_name: your name in voice room (empty = use player name)" --status-ru "Редактирует значение «отображаемое имя»." --name-ru "Отображаемое имя" "Display name" vc_display_name
    blank
    action --align --status "Join voice room for current server or manual room" --status-ru "Выполняет действие «войти в комнату»." --name-ru "Войти в комнату" "Join room" voice_join
    action --align --status "Leave current voice room" --status-ru "Выполняет действие «покинуть комнату»." --name-ru "Покинуть комнату" "Leave room" voice_leave
    bind --status "+voiceptt: push-to-talk (hold to transmit)" --status-ru "Назначает клавишу для действия «клавиша PTT»." --name-ru "Клавиша PTT" "PTT key" +voiceptt
    bind --status "voice_mic_toggle: toggle mic on/off" --status-ru "Назначает клавишу для действия «клавиша микрофона»." --name-ru "Клавиша микрофона" "Mic toggle key" voice_mic_toggle
    blank
    action --q2prox --align --refresh --status "Reset ONLY the voice settings to the hosted Phase 1 baseline (vc_relay left untouched; other Q2PRO-X settings not touched)" --status-ru "Выполняет действие «восстановить голосовые настройки»." --name-ru "Восстановить голосовые настройки" "Restore voice defaults" voice_defaults
end
