/*
Q2PRO-X extended menu definitions.

This file is loaded automatically after q2pro.menu.
The "inject" blocks insert items into menus defined in q2pro.menu.
All "begin/end" blocks define Q2PRO-X specific submenus.
*/

inject options 0
    action --status "Grouped Q2PRO-X custom features: laghax, prediction, movement, video, sound" --status-ru "Открывает раздел «Q2PRO-X»." --name-ru "Q2PRO-X" "Q2PRO-X" pushmenu q2prox
endinject

inject multiplayer 0
    action --status "Open the modern Q2PRO-X server browser overlay" --status-ru "Выполняет действие «браузер серверов (Q2PRO-X)»." --name-ru "Браузер серверов (Q2PRO-X)" "Browse servers (Q2PRO-X)" serverbrowser_open_modern
endinject

inject game 0
    action --status "Browse every cvar live: search, description, values, source" --status-ru "Выполняет действие «справочник переменных (Q2PRO-X)»." --name-ru "Справочник переменных (Q2PRO-X)" "Cvar reference (Q2PRO-X)" cvar_help
    action --status "Open the modern Q2PRO-X server browser overlay" --status-ru "Выполняет действие «браузер серверов (Q2PRO-X)»." --name-ru "Браузер серверов (Q2PRO-X)" "Browse servers (Q2PRO-X)" serverbrowser_open
endinject

inject game 5
    action --status "Open this menu section." --status-ru "Открывает раздел «Q2PRO-X»." --name-ru "Q2PRO-X" "Q2PRO-X" pushmenu q2prox
endinject

// Q2PRO-X 2026-04-26: duplicate the global Russian display-localization
// switch onto the main menu so a fresh user can change language straight
// from the entry screen.  Classic main is bitmap-heavy so we inject a
// compact pairs row at index 0.  Keeps the underlying cvar values intact;
// only the visible labels are RU.
inject main 0
    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
endinject

begin q2prox
    title "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
    blank
    action --status "Global settings: laghax, sound, movement, display, server browser, mod overlay" --status-ru "Открывает раздел «глобальные настройки»." --name-ru "Глобальные настройки" "Global settings" pushmenu q2prox_global
    action --status "Mod-local settings: visual fx, visibility, scripts/binds" --status-ru "Открывает раздел «настройки мода»." --name-ru "Настройки мода" "Local mod settings" pushmenu q2prox_local
    action --status "Config management: save, defaults, autosave, key binds" --status-ru "Открывает раздел «конфиг»." --name-ru "Конфиг" "Config" pushmenu q2prox_config
    blank
    action --align --status "Open the classic renderer setup page" --status-ru "Открывает раздел «классические настройки видео»." --name-ru "Классические настройки видео..." "Legacy video setup..." pushmenu video
    action --align --status "Open the classic sound setup page" --status-ru "Открывает раздел «классические настройки звука»." --name-ru "Классические настройки звука..." "Legacy sound setup..." pushmenu sound
    action --align --status "Open the classic input setup page" --status-ru "Открывает раздел «классические настройки управления»." --name-ru "Классические настройки управления..." "Legacy input setup..." pushmenu input
end

begin q2prox_global
    title "Q2PRO-X / Global Settings"
    title-ru "Q2PRO-X / Глобальные настройки"
    style --no-compact
    action --status "Adaptive prediction-error smoothing, HUD, and tuning weights" --status-ru "Открывает раздел «laghax»." --name-ru "Laghax" "Laghax" pushmenu q2prox_laghax
    action --status "Ghost weapon prediction toggles and debug options" --status-ru "Открывает раздел «предикт оружия»." --name-ru "Предикт оружия" "Weapon predicts" pushmenu q2prox_predict
    action --status "Predict-aware visual-only filter for muzzle, projectiles, impacts, explosions, hit markers" --status-ru "Открывает раздел «видимость частей оружия»." --name-ru "Видимость частей оружия" "Weapon parts visibility" pushmenu q2prox_weaponfx
    action --status "FPS-independent movement and local player prediction" --status-ru "Открывает раздел «движение и игрок»." --name-ru "Движение и игрок" "Movement & player" pushmenu q2prox_movement
    action --status "Mouse behavior mode (q2pro / r1q2), sensitivity, filter, autosens, and hold-to-zoom with configurable zoom FOV, auto or manual zoom sensitivity, and smooth in/out transition" --status-ru "Открывает раздел «мышь и зум»." --name-ru "Мышь и зум" "Mouse & zoom" pushmenu q2prox_mouse
    action --status "Display backend, desktop fullscreen, render scale" --status-ru "Открывает раздел «вывод и захват экрана»." --name-ru "Вывод и захват экрана" "Display & capture" pushmenu q2prox_video
    action --status "OpenAL profile, HRTF, reverb, and runtime sound actions" --status-ru "Открывает раздел «Звук и акустика»." --name-ru "Звук и акустика" "Sound & acoustics" pushmenu q2prox_sound
    action --status "Headphone binaural 3D sound, HRTF encoding, and advanced tuning" --status-ru "Открывает раздел «бинауральный / 3D»." --name-ru "Бинауральный / 3D" "Binaural / 3D" pushmenu q2prox_binaural
    action --status "Per-weapon and player volume controls (50 = default, 0 = mute, 100 = 2x)" --status-ru "Открывает раздел «громкость звука»." --name-ru "Громкость звука" "Sound volumes" pushmenu q2prox_weaponvol
    action --status "In-game voice chat (LiveKit-based side-channel, PTT or VAD, OpenAL required for tx/rx in Phase 1)" --status-ru "Открывает раздел «голосовой чат»." --name-ru "Голосовой чат" "Voice chat" pushmenu q2prox_voice
    action --status "In-game cvar reference browser settings: alpha, language, text scale" --status-ru "Открывает раздел «справочник переменных»." --name-ru "Справочник переменных" "Cvar browser" pushmenu q2prox_cvarbrowser
    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. Legacy demo browser stays available in the normal menus." --status-ru "Открывает раздел «браузер демок»." --name-ru "Браузер демок" "Demo browser" pushmenu q2prox_demobrowser
    action --status "Modern demo player overlay: play/pause, seek, draggable timeline, .mvd2-aware extras. Replaces the plain scr_demobar during demo playback." --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) settings" --status-ru "Открывает раздел «оверлей мода»." --name-ru "Оверлей мода" "Mod overlay" pushmenu q2prox_modhelp
    action --status "Passive same-team HUD for OpenTDM matches: teammate health/armor/power, current weapon, freshness. Client-only, no auto-commands, no console spam." --status-ru "Открывает раздел «командный HUD OpenTDM»." --name-ru "Командный HUD OpenTDM" "OpenTDM team HUD" pushmenu q2prox_opentdm_teamhud
end

begin q2prox_local
    title "Q2PRO-X / Local Mod Settings"
    title-ru "Q2PRO-X / Локальные настройки мода"
    style --no-compact
    action --status "Fog, renderer tweaks, bloom, color grading, sharpen" --status-ru "Открывает раздел «визуальные эффекты»." --name-ru "Визуальные эффекты" "Visual fx" pushmenu q2prox_vfx
    action --status "Item and player visibility highlighting with configurable colors" --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

begin q2prox_config
    title "Q2PRO-X / Config"
    title-ru "Q2PRO-X / Конфиг"
    style --no-compact
    toggle --live --status "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 (default on)" --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 (q2pro.menu + q2pro-x/*.menu overlays + inject), 1 = guided (q2pro-x.menu2 only, default for Q2PRO-X 1.2 clean installs). Takes effect after restart. -q2proxmenu2 forces guided for one run." --status-ru "Выбирает значение «режим меню (нужен рестарт)»." --name-ru "Режим меню (нужен рестарт)" --items-ru "Классический|Проводник" "Menu mode (restart required)" cl_q2prox_menu_mode "Classic" 0 "Guided" 1
    blank
    pairs --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 (normal play) or demo visual (while playing a .dm2/.mvd2) — target names appear 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 (the demo-watching visual profile), regardless of whether a demo is currently playing." --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 to defaults. During demo playback: resets ONLY visual cvars (binds preserved) and dirties demo visual. Outside playback: resets mod-local cvars and binds." --status-ru "Выполняет действие «сбросить локальные»." --name-ru "Сбросить локальные..." "Defaults local..." q2prox_cfg_defaults_local
    action --align --status "Reset only demo visual cvars to defaults (binds always preserved). Use q2prox_cfg_save_demo_visual afterwards to persist." --status-ru "Выполняет действие «сбросить демо-визуал»." --name-ru "Сбросить демо-визуал..." "Defaults demo visual..." q2prox_cfg_defaults_demo_visual
end

begin q2prox_laghax
    title "Q2PRO-X / Laghax"
    title-ru "Q2PRO-X / 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: draw real-time laghax overlay in the top-right corner (or wherever you dragged it)" --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: add a compact row to the laghax HUD listing the weapon / player predicts that are currently enabled and effective. Live — the HUD updates immediately when you toggle predict cvars in another menu." --status-ru "Включает или выключает параметр «показать параметры предикта оружия/игрока»." --name-ru "Показать параметры предикта оружия/игрока" --items-ru "Нет|Да" "Show weapons & player predicts enabled params" cl_laghax_hud_show_predict_params
    toggle --live --status "cl_laghax_hud_show_physics_params: add a compact row to the laghax HUD showing the current movement feel mode and step smoothing mode (always visible, including q2pro default), plus legacy predict and fixed move flags when effective. Live." --status-ru "Включает или выключает параметр «показать активные параметры физики»." --name-ru "Показать активные параметры физики" --items-ru "Нет|Да" "Show physics enabled params" cl_laghax_hud_show_physics_params
    toggle --live --status "cl_laghax_hud_show_predict_runtime: add live ghost runtime rows to the laghax HUD (ammo gate, switch gate, handoff/suppress counters, predicted gun animation). Diagnostic only — does not change weapon prediction behaviour." --status-ru "Включает или выключает параметр «показать данные предикта оружия»." --name-ru "Показать данные предикта оружия" --items-ru "Нет|Да" "Show weapon predict runtime" cl_laghax_hud_show_predict_runtime
    toggle --live --status "cl_laghax_hud_pillarbox_workspace: allow the laghax HUD to be placed into the pillarbox side bars (aspect-fit free area). Default position is the top-right of whichever workspace you choose." --status-ru "Включает или выключает параметр «свободная зона боковых полей»." --name-ru "Свободная зона боковых полей" --items-ru "Нет|Да" "Pillarbox free area" cl_laghax_hud_pillarbox_workspace
    toggle --live --status "cl_laghax_hud_hide_deathmatch0: auto-hide the laghax HUD widget while `deathmatch` is 0 (single-player / local / coop). Does NOT disable `cl_laghax` smoothing itself — only the on-screen widget." --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 the laghax HUD widget during demo playback (.dm2 and .mvd2). Does NOT disable `cl_laghax` smoothing — only the widget." --status-ru "Включает или выключает параметр «скрывать HUD при просмотре демок»." --name-ru "Скрывать HUD при просмотре демок" --items-ru "Нет|Да" "Hide HUD during demo playback" cl_laghax_hud_hide_demo
    action --align --status "Enter laghax HUD edit mode: left-drag the widget to a new position, Enter or Escape to exit. Gameplay input is suspended while edit mode is active." --status-ru "Выполняет действие «редактировать позицию HUD»." --name-ru "Редактировать позицию HUD..." "Edit HUD position..." laghax_hud_edit
    action --align --status "Clear the saved HUD position and return to default top-right placement." --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 for the smoothing window in milliseconds" --status-ru "Настраивает значение «лимит мс»." --name-ru "Лимит мс" "Max ms cap" cl_laghax_maxms 0 150 5
    range --status "cl_laghax_maxwindow: adaptive-mode target cap before the hard clamp" --status-ru "Настраивает значение «макс. адаптивное окно»." --name-ru "Макс. адаптивное окно" "Adaptive max window" cl_laghax_maxwindow 0 120 5
    range --status "cl_laghax_minerror: errors below this threshold snap instantly" --status-ru "Настраивает значение «минимальная ошибка»." --name-ru "Минимальная ошибка" "Minimum error" cl_laghax_minerror 0 8 0.1
    range --status "cl_laghax_ping_weight: contribution of ping to adaptive stress" --status-ru "Настраивает значение «вес пинга»." --name-ru "Вес пинга" "Ping weight" cl_laghax_ping_weight 0 1 0.05
    range --status "cl_laghax_jitter_weight: contribution of jitter to adaptive stress" --status-ru "Настраивает значение «вес джиттера»." --name-ru "Вес джиттера" "Jitter weight" cl_laghax_jitter_weight 0 1 0.05
    range --status "cl_laghax_loss_weight: contribution of disturbance / drops to adaptive stress" --status-ru "Настраивает значение «вес потерь»." --name-ru "Вес потерь" "Loss weight" cl_laghax_loss_weight 0 1 0.05
    range --status "cl_laghax_debt_weight: contribution of prediction debt to adaptive stress" --status-ru "Настраивает значение «вес долга предикта»." --name-ru "Вес долга предикта" "Debt weight" cl_laghax_debt_weight 0 1 0.05
    range --status "cl_laghax_gap_weight: contribution of authority-gap signal to adaptive stress" --status-ru "Настраивает значение «вес разрыва»." --name-ru "Вес разрыва" "Gap weight" cl_laghax_gap_weight 0 1 0.05
end

begin q2prox_opentdm_teamhud
    title "Q2PRO-X / OpenTDM Team HUD"
    title-ru "Q2PRO-X / Командный HUD OpenTDM"
    style --no-compact
    toggle --live --status "cl_opentdm_team_hud: master enable for the passive same-team HUD. Only draws on OpenTDM, only while you are on TEAM_A or TEAM_B, never for spectators or on other mods." --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: team HUD opacity (independent from scr_alpha, modulated by OLED UI protection)" --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 (independent from scr_scale; higher = larger and easier to read)" --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 trailing LAST MSG area in character cells; use it to stretch the overlay horizontally without changing its position" --status-ru "Настраивает значение «ширина сообщений»." --name-ru "Ширина сообщений" "Message width" cl_opentdm_team_hud_width 12 48 1
    toggle --live --status "cl_opentdm_team_hud_show_weapon: show the current held weapon column (decoded passively from teammate entity, 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 when the last OpenTDM ID view reported it" --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 (passive 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 after which 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 (aspect-fit free area)" --status-ru "Включает или выключает параметр «свободная зона боковых полей»." --name-ru "Свободная зона боковых полей" --items-ru "Нет|Да" "Pillarbox free area" cl_opentdm_team_hud_pillarbox_workspace
    action --align --status "Enter OpenTDM Team HUD edit mode: left-drag to reposition, Enter or Escape to exit. Gameplay input is suspended while edit mode is active." --status-ru "Выполняет действие «редактировать позицию HUD»." --name-ru "Редактировать позицию HUD..." "Edit HUD position..." opentdm_team_hud_edit
    action --align --status "Clear the saved HUD position and return to the default placement." --status-ru "Выполняет действие «сбросить позицию HUD»." --name-ru "Сбросить позицию HUD" "Reset HUD position" opentdm_team_hud_reset
end

begin q2prox_predict
    title "Q2PRO-X / Weapon Predicts"
    title-ru "Q2PRO-X / Предсказание оружия"
    style --no-compact
    toggle --status "cl_predict_weapons_enable: master switch for the entire weapon-predict system. Off = all weapon predicts disabled regardless of per-weapon toggles; weapon-side admissions and weapon telemetry are silenced, but the shared ping gate may still govern player predict. Per-weapon cl_predict_* settings are preserved and resume when master is turned back on." --status-ru "Включает или выключает параметр «мастер предикта оружия»." --name-ru "Мастер предикта оружия" --items-ru "Нет|Да" "Weapon predict master" cl_predict_weapons_enable
    blank
    pairs --status "cl_predict_debug: 1 = keep ghost and server effects together, 2 = verbose diagnostics" --status-ru "Выбирает значение «отладка предикта»." --name-ru "Отладка предикта" --items-ru "Выкл.|Показать оба|Подробно" "Predict debug" cl_predict_debug off 0 "Show both" 1 verbose 2
    toggle --status "cl_weapon_anim_debug: print weapon animation timeline (server vs predicted gun frame) on every change" --status-ru "Включает или выключает параметр «отладка анимации оружия»." --name-ru "Отладка анимации оружия" --items-ru "Нет|Да" "Weapon anim debug" cl_weapon_anim_debug
    toggle --status "cl_predict_rockets: predict own rocket launcher projectile immediately" --status-ru "Включает или выключает параметр «предикт ракет»." --name-ru "Предикт ракет" --items-ru "Нет|Да" "Predict rockets" cl_predict_rockets
    toggle --status "cl_predict_rockets_explosion: predict the rocket impact explosion too" --status-ru "Включает или выключает параметр «предикт взрыва ракеты»." --name-ru "Предикт взрыва ракеты" --items-ru "Нет|Да" "Predict rocket explosion" cl_predict_rockets_explosion
    toggle --status "cl_predict_railgun: predict the rail beam instantly on fire" --status-ru "Включает или выключает параметр «предикт Railgun»." --name-ru "Предикт Railgun" --items-ru "Нет|Да" "Predict railgun" cl_predict_railgun
    toggle --status "cl_predict_shotgun: predict shotgun muzzle and pellet hit feedback" --status-ru "Включает или выключает параметр «предикт дробовика»." --name-ru "Предикт дробовика" --items-ru "Нет|Да" "Predict shotgun" cl_predict_shotgun
    toggle --status "cl_predict_super_shotgun: predict super-shotgun muzzle and pellet hit feedback" --status-ru "Включает или выключает параметр «предикт супердробовика»." --name-ru "Предикт супердробовика" --items-ru "Нет|Да" "Predict super shotgun" cl_predict_super_shotgun
    toggle --status "cl_predict_machinegun: predict machinegun local fire feedback" --status-ru "Включает или выключает параметр «предикт пулемёта»." --name-ru "Предикт пулемёта" --items-ru "Нет|Да" "Predict machinegun" cl_predict_machinegun
    toggle --status "cl_predict_chaingun: predict chaingun local fire feedback" --status-ru "Включает или выключает параметр «предикт чейнгана»." --name-ru "Предикт чейнгана" --items-ru "Нет|Да" "Predict chaingun" cl_predict_chaingun
    toggle --status "cl_predict_blaster: predict blaster projectile and muzzle feedback" --status-ru "Включает или выключает параметр «предикт бластера»." --name-ru "Предикт бластера" --items-ru "Нет|Да" "Predict blaster" cl_predict_blaster
    toggle --status "cl_predict_grenades: predict grenade launcher projectile feedback" --status-ru "Включает или выключает параметр «предикт гранатомёта»." --name-ru "Предикт гранатомёта" --items-ru "Нет|Да" "Predict grenades" cl_predict_grenades
    toggle --status "cl_predict_hand_grenades: predict hand-grenade throw feedback" --status-ru "Включает или выключает параметр «предикт ручных гранат»." --name-ru "Предикт ручных гранат" --items-ru "Нет|Да" "Predict hand grenades" cl_predict_hand_grenades
    toggle --status "cl_predict_hyperblaster: predict hyperblaster local fire feedback" --status-ru "Включает или выключает параметр «предикт гипербластера»." --name-ru "Предикт гипербластера" --items-ru "Нет|Да" "Predict hyperblaster" cl_predict_hyperblaster
    values --status "cl_predict_player: 0 = off, 1 = local jump/fall prediction, 2 = debug. Also gated by the shared adaptive ping gate — player predict becomes effective only after the same ping threshold and dwell timer as weapon predicts. Original entry also in movement & player menu." --status-ru "Выбирает значение «предикт игрока»." --name-ru "Предикт игрока" --items-ru "Выкл.|Вкл.|Отладка" "Predict player" cl_predict_player off on debug
    blank
    range --status "cl_predict_ping_min_ms: minimum ping (ms) before the shared adaptive gate admits weapon and player predicts. 0 = adaptive gate disabled; only raw/master toggles remain. >0 = gate opens only after ping has stayed at or above this threshold for the dwell time." --status-ru "Настраивает значение «минимальный пинг (мс)»." --name-ru "Минимальный пинг (мс)" "Minimum ping (ms)" cl_predict_ping_min_ms 0 200 1
    range --status "cl_predict_ping_dwell_sec: seconds ping must stay continuously on one side of the threshold before the shared gate flips (covers both weapon predicts and player predict). 0 = instant flip (for testing). Default 5 sec prevents thrash." --status-ru "Настраивает значение «выдержка пинга (сек)»." --name-ru "Выдержка пинга (сек)" "Ping dwell (sec)" cl_predict_ping_dwell_sec 0 30 1
end

begin q2prox_weaponfx
    title "Q2PRO-X / Weapon Parts Visibility"
    title-ru "Q2PRO-X / Видимость частей оружия"
    style --no-compact
    toggle --live --status "cl_weaponfx_vis_enable: master toggle for the Q2PRO-X visual filter (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 (instant fire visuals)" --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 that belong to 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 / foreign sources" --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 and any tracer-like direct-fire visual path" --status-ru "Включает или выключает параметр «мгновенный луч / трассер»." --name-ru "Мгновенный луч / трассер" --items-ru "Нет|Да" "Hitscan beam / tracer" cl_weaponfx_vis_hitscan
    toggle --live --status "cl_weaponfx_vis_projectiles: flying rocket / grenade / blaster / HB / BFG projectile model (and its inherent glow)" --status-ru "Включает или выключает параметр «модели снарядов»." --name-ru "Модели снарядов" --items-ru "Нет|Да" "Projectile models" cl_weaponfx_vis_projectiles
    toggle --live --status "cl_weaponfx_vis_trails: trails emitted by rockets, grenades, blasters, BFG" --status-ru "Включает или выключает параметр «следы снарядов»." --name-ru "Следы снарядов" --items-ru "Нет|Да" "Projectile trails" cl_weaponfx_vis_trails
    toggle --live --status "cl_weaponfx_vis_impact_wall: wall/world impact visuals (gunshot 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_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_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 level still controlled 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_mouse
    title "Q2PRO-X / Mouse & Zoom"
    title-ru "Q2PRO-X / Мышь и зум"
    style --no-compact
    values --live --status "cl_mouse_behavior_mode: global mouse behaviour mode. q2pro = Q2PRO-X default (raw input + m_accel + m_autosens + Q2PRO-X lookstrafe). r1q2 = compatibility for R1Q2 migrants (classic transform, R1Q2 lookstrafe; backend from m_directinput)." --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 applied before any zoom or autosens scaling" --status-ru "Настраивает значение «чувствительность»." --name-ru "Чувствительность" "Sensitivity" sensitivity 0.1 30 0.1
    range --live --precision 3 --status "m_pitch: vertical mouse gain. Negative to invert Y axis." --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 (per-frame delta squared). 0 = off. Has no effect in r1q2 mode." --status-ru "Настраивает значение «ускорение мыши»." --name-ru "Ускорение мыши" "Mouse accel" m_accel 0 1 0.05
    toggle --live --status "m_filter: average current and previous raw delta (smooths sensor noise at the cost of a half-frame lag)" --status-ru "Включает или выключает параметр «фильтр мыши»." --name-ru "Фильтр мыши" --items-ru "Нет|Да" "Mouse filter" m_filter
    range --live --precision 0 --status "m_autosens: non-zoom baseline FOV-proportional sensitivity scaling. Only affects the q2pro mouse path (cl_mouse_behavior_mode=0). 0 = OFF. Non-zero values in 91..179 set the reference base FOV; any other non-zero value (e.g. 1) enables scaling against the default 90° base. This is SEPARATE from the zoom block below — it is the always-on FOV normalisation, independent of +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 used while +zoom is held. Clamped at runtime so it never exceeds the live base FOV — zoom is 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 pointer feel). manual uses the value 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 in the same units as `sensitivity`. Used only when zoom sens mode = manual." --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 in seconds. 0 = instant snap. Same duration for both directions. Drives FOV and 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 mode while zoom is held). Coexists with a real +speed bind held in parallel. 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-specific crosshair below while +zoom is held. When off, the base crosshair stays during zoom. Instant swap, no interpolation." --status-ru "Включает или выключает параметр «зум-прицел»." --name-ru "Зум-прицел" --items-ru "Нет|Да" "Zoom crosshair" cl_zoom_crosshair_enable
    values --live --status "cl_zoom_crosshair: crosshair style used while zoomed (only when zoom crosshair master is 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 (same gradient as ch_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 channel of zoom crosshair (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 channel of zoom crosshair (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 channel of zoom crosshair (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

begin q2prox_movement
    title "Q2PRO-X / Movement"
    title-ru "Q2PRO-X / Движение"
    style --no-compact
    values --status "cl_mouse_behavior_mode: global mouse behaviour mode. q2pro = current Q2PRO-X default (raw input + m_accel + m_autosens + Q2PRO-X lookstrafe). r1q2 = compatibility for R1Q2 migrants (classic transform, R1Q2 lookstrafe; backend from m_directinput: 0=legacy cursor-centered, 1/2=DirectInput-like relative). Changes apply live." --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 standstill-start/jump feel; ignores fixed move." --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. cl_fixedmove and weapon predicts work in both." --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. Independent from predict mode and cl_fixedmove." --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 a fixed 10 ms command clock (ignored when movement feel = r1q2-like)" --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 prediction, 2 = debug. When cl_predict_ping_min_ms > 0, also gated by the shared adaptive ping gate (same threshold + dwell as weapon predicts)." --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
    action --align --status "Open the classic input setup page" --status-ru "Открывает раздел «классические настройки управления»." --name-ru "Классические настройки управления..." "Legacy input setup..." pushmenu input
    action --align --status "Open the classic key bindings page" --status-ru "Открывает раздел «классические бинды»." --name-ru "Классические бинды..." "Legacy key bindings..." pushmenu keys
end

begin q2prox_video
    title "Q2PRO-X / Display & Capture"
    title-ru "Q2PRO-X / Отображение и захват"
    style --no-compact
    pairs --status "vid_driver: win32egl is the Q2PRO-X default — capture-friendly ANGLE path (NVIDIA ShadowPlay / OBS work cleanly). win32wgl is classic OpenGL (WGL) — pick only if EGL won't start on this system." --status-ru "Выбирает значение «видеобэкенд»." --name-ru "Видеобэкенд" --items-ru "Win32egl|Win32wgl" "Video backend" vid_driver "Win32egl" win32egl "Win32wgl" win32wgl
    strings --status "vid_resolution: pick a resolution; in windowed mode this sets window size, in fullscreen modes it picks the display mode. 'desktop' = native monitor mode." --status-ru "Выбирает значение «разрешение»." --name-ru "Разрешение" "Resolution" vid_resolution $$vid_resolution_list
    toggle --status "vid_windowed: run the game in a normal resizable window instead of fullscreen. Changes apply immediately. Alt+Enter also toggles this. In windowed mode, vid_resolution sets the window size." --status-ru "Включает или выключает параметр «оконный режим»." --name-ru "Оконный режим" --items-ru "Нет|Да" "Windowed mode" vid_windowed
    pairs --status "vid_fullscreen_type: which fullscreen mode to use when windowed mode is OFF. Desktop fullscreen = borderless with fast Alt+Tab. Exclusive fullscreen = classic monitor-owned mode switch. Alt+Enter toggles between windowed and whichever mode is selected here." --status-ru "Выбирает значение «полноэкранный режим по умолчанию»." --name-ru "Полноэкранный режим по умолчанию" --items-ru "Полноэкранный рабочий стол|Эксклюзивный режим" "Default fullscreen mode" vid_fullscreen_type "Desktop fullscreen" desktop "Exclusive fullscreen" exclusive
    strings --status "vid_refresh: pick refresh rate (exclusive fullscreen only); 'max' = highest available; if exact rate not supported, snaps to closest; ignored in windowed and desktop modes" --status-ru "Выбирает значение «частота обновления»." --name-ru "Частота обновления" "Refresh rate" vid_refresh $$vid_refresh_list
    range --status "vid_desktop_fullscreen_margin: shrink the borderless window slightly if a driver needs it (desktop fullscreen only)" --status-ru "Настраивает значение «отступ полного экрана»." --name-ru "Отступ полного экрана" "Fullscreen margin" vid_desktop_fullscreen_margin 0 16 1
    values --live --status "vid_desktop_fullscreen_fit: fill = native monitor fill, aspect = preserve selected mode aspect with black bars (deterministic 4:3 pillarbox on widescreen)" --status-ru "Выбирает значение «подгонка полного экрана»." --name-ru "Подгонка полного экрана" --items-ru "Заполнить|По пропорциям" "Fullscreen fit" vid_desktop_fullscreen_fit fill aspect
    action --align --status "OLED protection suite: aspect-fit bar animation, idle full-screen dim, UI alpha breathing — idle and UI work in any display mode; bar animation requires app-owned aspect-fit bars" --status-ru "Открывает раздел «защита OLED»." --name-ru "Защита OLED..." "OLED protection..." pushmenu q2prox_oled
    range --format "%d%%" --status "gl_render_scale: internal 3D scene resolution (100=native, 200=2x, auto-clamped by GPU limits)" --status-ru "Настраивает значение «масштаб рендера»." --name-ru "Масштаб рендера" "Render scale" gl_render_scale 100 1000 25
    values --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 --status "gl_render_scale_filter: resolve quality (fast=single blit, balanced=progressive 2x, quality=progressive+guard)" --status-ru "Выбирает значение «фильтр масштабирования»." --name-ru "Фильтр масштабирования" --items-ru "Быстро|Баланс|Качество" "Scale filter" gl_render_scale_filter fast balanced quality
    blank
    range --live --precision 2 --status "cl_menu_alpha: menu background transparency (1.0 = opaque, lower = see game behind menu)" --status-ru "Настраивает значение «прозрачность меню»." --name-ru "Прозрачность меню" "Menu opacity" cl_menu_alpha 0 1 0.05
    blank
    action --align --status "Print render scale status: path, maxima, tile grid, internal size" --status-ru "Выполняет действие «инфо о масштабе рендера»." --name-ru "Инфо о масштабе рендера..." "Render scale info..." gl_render_scale_info
    action --align --status "Apply vid_driver or desktop-fullscreen changes now" --status-ru "Применяет изменения видеорежима и перезапускает видео." --name-ru "Перезапустить видео..." "Restart video..." vid_restart
end

begin q2prox_oled
    title "Q2PRO-X / OLED Protection"
    title-ru "Q2PRO-X / Защита OLED"
    style --no-compact
    toggle --live --status "vid_oled_enable: master switch for the OLED protection suite. Three independent subfeatures: aspect-fit bar animation (app-owned bars only), idle full-screen dim (any display mode), UI alpha breathing (any display mode)." --status-ru "Включает или выключает параметр «защита OLED»." --name-ru "Защита OLED" --items-ru "Нет|Да" "OLED protection" vid_oled_enable
    blank
    toggle --live --status "vid_oled_bar_protection: animate the aspect-fit black bars instead of leaving them static. Availability: only when Q2PRO-X owns app-side pillarbox bars (vid_desktop_fullscreen 1 + vid_desktop_fullscreen_fit 1 with the content rect smaller than the window). In exclusive fullscreen the monitor's driver owns any black bars, so this subfeature reports unavailable — idle dim and UI alpha protection continue to work there." --status-ru "Включает или выключает параметр «защита полос»." --name-ru "Защита полос" --items-ru "Нет|Да" "Bar protection" vid_oled_bar_protection
    values --live --status "vid_oled_bar_preset: fade = single A->B->A, random fade = slow random drift between A and B, breathe = sinusoidal A->B->A" --status-ru "Выбирает значение «пресет полос»." --name-ru "Пресет полос" --items-ru "Затухание|Случайное затухание|Дыхание" "Bar preset" vid_oled_bar_preset fade "random fade" breathe
    pairs --live --status "vid_oled_bar_color_a: first bar protection color" --status-ru "Выбирает значение «цвет полосы A»." --name-ru "Цвет полосы A" --items-ru "Чёрный|Почти чёрный|Тёмно-серый|Серый" "Bar color A" vid_oled_bar_color_a "Black" "#000000" "Near black" "#0A0a0a" "Dim gray" "#141414" "Gray" "#1E1e1e"
    pairs --live --status "vid_oled_bar_color_b: second bar protection color" --status-ru "Выбирает значение «цвет полосы B»." --name-ru "Цвет полосы B" --items-ru "Чёрный|Почти чёрный|Тёмно-серый|Серый" "Bar color B" vid_oled_bar_color_b "Black" "#000000" "Near black" "#0A0a0a" "Dim gray" "#141414" "Gray" "#1E1e1e"
    range --live --format "%d s" --status "vid_oled_bar_delay_sec: seconds of plain black bars before bar animation starts (per eligible session). Low values useful for testing." --status-ru "Настраивает значение «задержка запуска полосы»." --name-ru "Задержка запуска полосы" "Bar start delay" vid_oled_bar_delay_sec 10 3600 10
    range --live --format "%d min" --status "vid_oled_bar_active_min: minutes of bar animation per active phase" --status-ru "Настраивает значение «время активности полосы»." --name-ru "Время активности полосы" "Bar active time" vid_oled_bar_active_min 1 10 1
    range --live --format "%d min" --status "vid_oled_bar_interval_min: minutes of plain black bars between active phases" --status-ru "Настраивает значение «интервал простоя полос»." --name-ru "Интервал простоя полос" "Bar idle interval" vid_oled_bar_interval_min 1 60 1
    blank
    toggle --live --status "vid_oled_idle_protection: dim the entire window (game + HUD + menus + bars) after user inactivity; restores smoothly on input. Works in any display mode — windowed, exclusive fullscreen, desktop fullscreen. Also hides the mouse cursor during the dim pulse so it does not stay as a static bright dot on the darkened image." --status-ru "Включает или выключает параметр «защита экрана в простое»." --name-ru "Защита экрана в простое" --items-ru "Нет|Да" "Idle screen protection" vid_oled_idle_protection
    range --live --format "%d s" --status "vid_oled_idle_delay_sec: seconds of user inactivity before the dim pulse starts. Low values useful for testing." --status-ru "Настраивает значение «задержка простоя»." --name-ru "Задержка простоя" "Idle delay" vid_oled_idle_delay_sec 20 3600 10
    range --live --format "%d s" --status "vid_oled_idle_fade_sec: half-cycle time for visible->black and black->visible" --status-ru "Настраивает значение «время затухания простоя»." --name-ru "Время затухания простоя" "Idle fade time" vid_oled_idle_fade_sec 5 120 5
    range --live --precision 1 --status "vid_oled_idle_hold_sec: how long the overlay stays at full dim (pure black) between pulse-down and pulse-up. Without this hold, the peak of the triangular waveform lasts ~1 frame and is imperceptible against permanently-black driver pillarbox bars. Set to 0 to restore the classic 1-frame peak. Ignored when idle monitor-off is active (HOLD phase stays indefinite until user activity)." --status-ru "Настраивает значение «время удержания простоя»." --name-ru "Время удержания простоя" "Idle hold time" vid_oled_idle_hold_sec 0.0 30.0 0.5
    toggle --live --status "vid_oled_idle_monitor_off (Windows only, optional, default OFF): asks the operating system to put the WHOLE display into DPMS standby during the HOLD dark phase. This is an OS/display-level power-state action, not a rendering tweak — the entire monitor (not just the game viewport) physically stops emitting light until any user input wakes it. Exists mainly for OLED users who want the most aggressive burn-in protection, because monitor image processing (black stabilizer / game mode / SDR gamma LUT) can lift even a literal zero-framebuffer above panel-off level, so only DPMS matches the true pixels-off reference of exclusive-fullscreen pillarbox bars. When this is disabled (default), the Round 4c software-only path still runs: hardware framebuffer clear + post-processing suppression during HOLD_DARK, which is zero-risk and works in every display mode. When enabled, HOLD_DARK stays indefinite (no pulse cycling) and wakes on user input." --status-ru "Включает или выключает параметр «DPMS выкл. в простое (Windows, по желанию)»." --name-ru "DPMS выкл. в простое (Windows, по желанию)" --items-ru "Нет|Да" "Idle monitor DPMS off (Win, opt-in)" vid_oled_idle_monitor_off
    range --live --precision 2 --status "vid_oled_idle_restore_sec: when user activity is detected mid-pulse, how many seconds to fade the overlay back to zero" --status-ru "Настраивает значение «время восстановления простоя»." --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 game audio while OLED idle screen protection is actively dimming the screen; restores automatically when user activity resumes. Does not modify s_volume. Stacks safely with s_mute_when_inactive." --status-ru "Включает или выключает параметр «глушить звук при защите простоя»." --name-ru "Глушить звук при защите простоя" --items-ru "Нет|Да" "Mute audio on idle protect" vid_oled_idle_mute_audio
    blank
    toggle --live --status "vid_oled_ui_protection: softly modulate the alpha of protected UI paths (draw HUD items, laghax HUD, modern server browser) over time to reduce burn-in risk. Subtle sinusoidal breathing between min and max alpha over the cycle time. Works in any display mode — windowed, exclusive fullscreen, desktop fullscreen." --status-ru "Включает или выключает параметр «защита прозрачности интерфейса»." --name-ru "Защита прозрачности интерфейса" --items-ru "Нет|Да" "Interface alpha protect" vid_oled_ui_protection
    range --live --precision 2 --status "vid_oled_ui_min_alpha: minimum alpha during the cycle (0.0 = fully invisible, 1.0 = fully opaque)" --status-ru "Настраивает значение «мин. прозрачность интерфейса»." --name-ru "Мин. прозрачность интерфейса" "Interface min alpha" vid_oled_ui_min_alpha 0.0 1.0 0.05
    range --live --precision 2 --status "vid_oled_ui_max_alpha: maximum alpha during the cycle" --status-ru "Настраивает значение «макс. прозрачность интерфейса»." --name-ru "Макс. прозрачность интерфейса" "Interface max alpha" vid_oled_ui_max_alpha 0.05 1.0 0.05
    range --live --format "%d s" --status "vid_oled_ui_cycle_sec: one full min->max->min cycle duration in seconds" --status-ru "Настраивает значение «период цикла интерфейса»." --name-ru "Период цикла интерфейса" "Interface cycle time" vid_oled_ui_cycle_sec 5 600 5
    blank
    action --align --status "Print OLED protection status to console with per-subfeature eligibility reasons (why bar/idle/ui is or is not currently active), phases, colors, idle alpha, ui alpha, cursor suppression" --status-ru "Выполняет действие «инфо OLED»." --name-ru "Инфо OLED..." "OLED info..." vid_oled_info
end

begin q2prox_vfx
    title "Q2PRO-X / Visual FX (mod-local)"
    title-ru "Q2PRO-X / Визуальные эффекты мода"
    style --no-compact
    toggle --live --status "usefog: client-side fog effect (shader renderer only, q2pro-m compatible)" --status-ru "Включает или выключает параметр «туман»." --name-ru "Туман" --items-ru "Нет|Да" "Fog" usefog
    range --live --precision 2 --status "fogdensity: fog density (higher = thicker)" --status-ru "Настраивает значение «плотность тумана»." --name-ru "Плотность тумана" "Fog density" fogdensity 0.01 1 0.01
    range --live --precision 2 --status "foghue: fog color hue (0-1, HSL)" --status-ru "Настраивает значение «тон тумана»." --name-ru "Тон тумана" "Fog hue" foghue 0 1 0.05
    range --live --precision 2 --status "fogsaturation: fog color saturation (0-1, HSL)" --status-ru "Настраивает значение «насыщенность тумана»." --name-ru "Насыщенность тумана" "Fog saturation" fogsaturation 0 1 0.05
    range --live --precision 2 --status "foglightness: fog color lightness (0-1, HSL)" --status-ru "Настраивает значение «светлота тумана»." --name-ru "Светлота тумана" "Fog lightness" foglightness 0 1 0.05
    blank
    values --live --status "gl_dynamic: 0=off, 1=all dynamic lights, 2=only switchable lights" --status-ru "Выбирает значение «динамические источники света»." --name-ru "Динамические источники света" --items-ru "Нет|Да|Только переключаемые" "Dynamic lights" gl_dynamic no yes "only switchable"
    values --live --status "gl_shadows: 0=off, 1=basic hard shadows, 2=fade (softer shadow mode)" --status-ru "Выбирает значение «тени»." --name-ru "Тени" --items-ru "Выкл.|Базовые|Затухание" "Shadows" gl_shadows off basic fade
    toggle --live --status "cl_noglow: disable entity glow effects" --status-ru "Включает или выключает параметр «без свечения»." --name-ru "Без свечения" --items-ru "Нет|Да" "No glow" cl_noglow
    toggle --live --status "gl_polyblend: palette blend effect (damage flash, underwater tint)" --status-ru "Включает или выключает параметр «полигональное смешивание»." --name-ru "Полигональное смешивание" --items-ru "Нет|Да" "Poly blend" gl_polyblend
    toggle --live --status "gl_coloredlightmaps: use colored lightmaps" --status-ru "Включает или выключает параметр «цветные карты света»." --name-ru "Цветные карты света" --items-ru "Нет|Да" "Colored lightmaps" gl_coloredlightmaps
    range --live --precision 1 --status "gl_brightness: global brightness offset" --status-ru "Настраивает значение «яркость»." --name-ru "Яркость" "Brightness" gl_brightness 0 1 0.1
    range --live --precision 0 --status "gl_celshading: cel shading line width (0=off)" --status-ru "Настраивает значение «мультяшная обводка»." --name-ru "Мультяшная обводка" "Cel shading" gl_celshading 0 10 1
    blank
    values --live --status "gl_bloom: bloom quality / iterations (0=off, 1-8)" --status-ru "Выбирает значение «сияние»." --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 --live --precision 2 --status "gl_bloom_strength: bloom contribution to final image (1.0=default)" --status-ru "Настраивает значение «сила сияния»." --name-ru "Сила сияния" "Bloom strength" gl_bloom_strength 0 3 0.1
    range --live --precision 2 --status "gl_bloom_threshold: suppress dim bloom (0=all passes, higher=brighter only)" --status-ru "Настраивает значение «порог сияния»." --name-ru "Порог сияния" "Bloom threshold" gl_bloom_threshold 0 1 0.05
    range --live --precision 1 --status "gl_bloom_sigma: bloom blur softness / radius (4=default)" --status-ru "Настраивает значение «радиус сияния»." --name-ru "Радиус сияния" "Bloom sigma" gl_bloom_sigma 1 12 0.5
    range --live --precision 2 --status "gl_glowmap_intensity: glowmap emissive brightness (0.75=default)" --status-ru "Настраивает значение «интенсивность карт свечения»." --name-ru "Интенсивность карт свечения" "Glowmap intensity" gl_glowmap_intensity 0 2 0.1
    blank
    values --live --status "gl_post_profile: color grading preset" --status-ru "Выбирает значение «профиль цветокоррекции»." --name-ru "Профиль цветокоррекции" --items-ru "Выкл.|Нейтральный|Тёплый|Арена|Кинематографичный" "Grading profile" gl_post_profile off neutral warm arena cinematic
    range --live --precision 2 --status "gl_post_contrast: contrast multiplier (1.0=default)" --status-ru "Настраивает значение «контраст»." --name-ru "Контраст" "Contrast" gl_post_contrast 0.5 2 0.05
    range --live --precision 2 --status "gl_post_vibrance: selective saturation boost (0=default)" --status-ru "Настраивает значение «сочность цвета»." --name-ru "Сочность цвета" "Vibrance" gl_post_vibrance -1 1 0.05
    range --live --precision 2 --status "gl_post_temperature: warm/cool shift (0=neutral)" --status-ru "Настраивает значение «температура»." --name-ru "Температура" "Temperature" gl_post_temperature -1 1 0.05
    blank
    range --live --precision 1 --status "gl_sharpen: sharpen/clarity strength (0=off)" --status-ru "Настраивает значение «резкость»." --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 "Q2PRO-X / Sound"
    title-ru "Q2PRO-X / Звук"
    style --no-compact
    values --live --status "s_enable: OpenAL is required for al_profile, HRTF, and 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: curated acoustics recipe (manual tweaks switch to custom; HRTF/resampler stay independent)" --status-ru "Выбирает значение «профиль звука»." --name-ru "Профиль звука" --items-ru "Свой|Соревновательный|Баланс|Иммерсивный|Кинематографичный|Собор" "Sound profile" al_sound_profile custom competitive balanced immersive cinematic cathedral
    pairs --live --status "s_khz: requested output sample rate (actual rate depends on backend/device)" --status-ru "Выбирает значение «частота вывода»." --name-ru "Частота вывода" --items-ru "11|22|44|48|96" "Output rate" s_khz 11 11 22 22 44 44 48 48 96 96
    pairs --live --status "s_sampleformat: precision preference (auto = backend default, float32 = higher headroom)" --status-ru "Выбирает значение «формат сэмплов»." --name-ru "Формат сэмплов" --items-ru "Авто|S16|Float32" "Sample format" s_sampleformat auto auto s16 s16 float32 float32
    values --live --status "al_profile: 0 = current Q2PRO-X OpenAL, 1 = classic R1Q2-like OpenAL" --status-ru "Выбирает значение «профиль OpenAL»." --name-ru "Профиль OpenAL" --items-ru "Q2PRO-X|Как R1Q2" "OpenAL profile" al_profile "Q2PRO-X" "R1Q2-like"
    values --live --status "al_hrtf: 0 = force off, 1 = OpenAL runtime default, 2 = force on" --status-ru "Выбирает значение «HRTF»." --name-ru "HRTF" --items-ru "Выкл.|Авто|Вкл." "HRTF" al_hrtf off auto on
    pairs --live --status "al_resampler: OpenAL playback SRC quality" --status-ru "Выбирает значение «ресэмплер OpenAL»." --name-ru "Ресэмплер OpenAL" --items-ru "По умолчанию|Кубический|Bsinc12|Bsinc24|Точечный|Линейный" "OpenAL resampler" al_resampler default default cubic cubic bsinc12 bsinc12 bsinc24 bsinc24 point point linear linear
    pairs --live --status "s_resampler: DMA backend SRC quality (only for s_enable 1)" --status-ru "Выбирает значение «ресэмплер DMA»." --name-ru "Ресэмплер DMA" --items-ru "Классический|Линейный|Кубический" "DMA resampler" s_resampler legacy legacy linear linear cubic cubic
    toggle --live --status "al_reverb: enable room acoustics and EFX reverb" --status-ru "Включает или выключает параметр «поддержка реверберации»." --name-ru "Поддержка реверберации" --items-ru "Нет|Да" "Reverberation support" al_reverb
    pairs --live --status "al_eax_preset: -1 = automatic room classifier, 0..6 = force a room type" --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 --live --status "al_eax_wet: world-source reverb send amount" --status-ru "Настраивает значение «примесь реверберации»." --name-ru "Примесь реверберации" "Reverb wet" al_eax_wet 0 1 0.05
    range --live --status "al_eax_local_wet: first-person local-source reverb send amount" --status-ru "Настраивает значение «локальная примесь»." --name-ru "Локальная примесь" "Local wet" al_eax_local_wet 0 1 0.05
    range --live --status "al_reverb_lerp_time: seconds to blend between automatic room presets" --status-ru "Настраивает значение «время интерполяции»." --name-ru "Время интерполяции" "Lerp time" al_reverb_lerp_time 0 5 0.1
    toggle --live --status "al_eax_occlusion: lowpass blocked world sounds while keeping their reverb tail" --status-ru "Включает или выключает параметр «заслонение»." --name-ru "Заслонение" --items-ru "Нет|Да" "Occlusion" al_eax_occlusion
    range --live --status "al_eax_explosion_wet: reverb send for explosion sounds" --status-ru "Настраивает значение «примесь взрыва»." --name-ru "Примесь взрыва" "Explosion wet" al_eax_explosion_wet 0 1 0.05
    range --live --status "al_eax_explosion_decay: explosion tail length multiplier (1.0 = same as room)" --status-ru "Настраивает значение «затухание взрыва»." --name-ru "Затухание взрыва" "Explosion decay" al_eax_explosion_decay 1 3 0.05
    range --live --status "al_eax_explosion_late: explosion late reverb strength multiplier" --status-ru "Настраивает значение «поздний хвост взрыва»." --name-ru "Поздний хвост взрыва" "Explosion late" al_eax_explosion_late 1 2 0.05
    range --live --status "al_eax_transport_wet: reverb send for movers, hums, looping world sounds (0-1)" --status-ru "Настраивает значение «примесь транспорта»." --name-ru "Примесь транспорта" "Transport wet" al_eax_transport_wet 0 1 0.05
    range --live --status "al_reverb_reflections: early reflections strength multiplier (1.0 = default)" --status-ru "Настраивает значение «отражения»." --name-ru "Отражения" "Reflections" al_reverb_reflections 0 4 0.1
    range --live --status "al_reverb_late: late reverb tail strength multiplier (1.0 = default)" --status-ru "Настраивает значение «поздняя реверберация»." --name-ru "Поздняя реверберация" "Late reverb" al_reverb_late 0 4 0.1
    range --live --status "al_reverb_decay: decay time multiplier (1.0 = default)" --status-ru "Настраивает значение «затухание»." --name-ru "Затухание" "Decay" al_reverb_decay 0.1 50 0.5
    range --live --status "al_reverb_delay: reflections + late delay multiplier (1.0 = default)" --status-ru "Настраивает значение «задержка»." --name-ru "Задержка" "Delay" al_reverb_delay 0.1 4 0.1
    range --live --status "al_reverb_hf: high-frequency brightness multiplier (1.0 = default)" --status-ru "Настраивает значение «ВЧ-яркость»." --name-ru "ВЧ-яркость" "HF brightness" al_reverb_hf 0 4 0.1
    range --live --status "al_reverb_diffusion: diffusion / smoothness multiplier (1.0 = default)" --status-ru "Настраивает значение «диффузия»." --name-ru "Диффузия" "Diffusion" al_reverb_diffusion 0 2 0.1
    toggle --live --status "al_eax_debug: print room classifier and routing diagnostics" --status-ru "Включает или выключает параметр «отладка реверберации»." --name-ru "Отладка реверберации" --items-ru "Нет|Да" "Reverb debug" al_eax_debug
    blank
    toggle --live --status "s_mute_when_inactive: mute game audio when the client window is not active/focused (e.g. after Alt+Tab); restores automatically when focus returns. Does not modify s_volume." --status-ru "Включает или выключает параметр «глушить вне фокуса»." --name-ru "Глушить вне фокуса" --items-ru "Нет|Да" "Mute when inactive" s_mute_when_inactive
    blank
    action --align --status "Print the current room preset, classifier data, and wet-state" --status-ru "Выполняет действие «инфо о реверберации»." --name-ru "Инфо о реверберации..." "Reverb info..." al_reverb_info
    action --align --status "Reload the active room preset immediately and cancel the current lerp" --status-ru "Выполняет действие «перезагрузить текущую реверберацию»." --name-ru "Перезагрузить текущую реверберацию..." "Reload current reverb..." al_reverb_reload
    action --align --status "Print available OpenAL resamplers from the runtime" --status-ru "Выполняет действие «список ресэмплеров»." --name-ru "Список ресэмплеров..." "Resampler list..." al_resampler_list
    action --align --status "Apply sound engine, HRTF, profile, and room-acoustics changes" --status-ru "Выполняет действие «перезапустить звук»." --name-ru "Перезапустить звук..." "Restart sound..." snd_restart
    action --align --status "Open the classic sound setup page" --status-ru "Открывает раздел «классические настройки звука»." --name-ru "Классические настройки звука..." "Legacy sound setup..." pushmenu sound
end

begin q2prox_binaural
    title "Q2PRO-X / Binaural"
    title-ru "Q2PRO-X / Бинауральный звук"
    style --no-compact
    values --status "al_binaural_profile: curated headphone presets (manual tweaks switch to custom)" --status-ru "Выбирает значение «бинауральный профиль»." --name-ru "Бинауральный профиль" --items-ru "Свой|По умолчанию|Авто|Глубокий|Кинематографичный" "Binaural profile" al_binaural_profile custom default auto deep cinematic
    values --status "al_binaural: 0 = off, 1 = auto (runtime decides), 2 = on (force HRTF)" --status-ru "Выбирает значение «бинауральный звук»." --name-ru "Бинауральный звук" --items-ru "Выкл.|Авто|Вкл." "Binaural" al_binaural off auto on
    values --status "al_binaural_encoding: stereo output 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: HRTF processing quality (requires snd_restart, app-local config)" --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: HRTF filter length (0 = runtime default, requires snd_restart)" --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: headphone crossfeed level 0-6 (0 = off, requires snd_restart)" --status-ru "Настраивает значение «перекрёстная подмешка»." --name-ru "Перекрёстная подмешка" "Crossfeed" al_binaural_crossfeed 0 6 1
    blank
    action --align --status "Print current binaural runtime state and requested settings" --status-ru "Выполняет действие «инфо о бинауральном звуке»." --name-ru "Инфо о бинауральном звуке..." "Binaural info..." al_binaural_info
    action --align --status "Apply binaural and sound engine changes" --status-ru "Выполняет действие «перезапустить звук»." --name-ru "Перезапустить звук..." "Restart sound..." snd_restart
end

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

begin q2prox_modhelp
    title "Q2PRO-X / Mod Overlay"
    title-ru "Q2PRO-X / Оверлей мода"
    style --no-compact
    range --live --precision 2 --status "cl_modhelp_alpha: overlay background opacity" --status-ru "Настраивает значение «прозрачность»." --name-ru "Прозрачность" "Opacity" cl_modhelp_alpha 0 1 0.05
    range --live --precision 1 --status "cl_modhelp_scale: text + chrome scale multiplier (0.1 packs the most rows; 1.0 default; up to 2.0)" --status-ru "Настраивает значение «масштаб текста»." --name-ru "Масштаб текста" "Text scale" cl_modhelp_scale 0.1 2 0.1
    toggle --live --status "cl_modhelp_compact: use compact line spacing" --status-ru "Включает или выключает параметр «компактный режим»." --name-ru "Компактный режим" --items-ru "Нет|Да" "Compact mode" cl_modhelp_compact
    toggle --live --status "cl_modhelp_fullscreen: expand overlay to fill screen" --status-ru "Включает или выключает параметр «полный экран»." --name-ru "Полный экран" --items-ru "Нет|Да" "Fullscreen" cl_modhelp_fullscreen
    toggle --live --status "cl_modhelp_show_aliases: show command aliases" --status-ru "Включает или выключает параметр «показывать псевдонимы»." --name-ru "Показывать псевдонимы" --items-ru "Нет|Да" "Show aliases" cl_modhelp_show_aliases
    blank
    toggle --live --status "cl_modhelp_show_general: show general commands page" --status-ru "Включает или выключает параметр «показывать общие»." --name-ru "Показывать общие" --items-ru "Нет|Да" "Show general" cl_modhelp_show_general
    toggle --live --status "cl_modhelp_show_spectator: show spectator commands page" --status-ru "Включает или выключает параметр «показывать наблюдательские»." --name-ru "Показывать наблюдательские" --items-ru "Нет|Да" "Show spectator" cl_modhelp_show_spectator
    toggle --live --status "cl_modhelp_show_team: show team/captain commands page" --status-ru "Включает или выключает параметр «показывать командные»." --name-ru "Показывать командные" --items-ru "Нет|Да" "Show team" cl_modhelp_show_team
    toggle --live --status "cl_modhelp_show_stats: show stats commands page" --status-ru "Включает или выключает параметр «показывать статистику»." --name-ru "Показывать статистику" --items-ru "Нет|Да" "Show stats" cl_modhelp_show_stats
    toggle --live --status "cl_modhelp_show_voting: show voting commands page" --status-ru "Включает или выключает параметр «показывать голосование»." --name-ru "Показывать голосование" --items-ru "Нет|Да" "Show voting" cl_modhelp_show_voting
    toggle --live --status "cl_modhelp_show_admin: show admin commands page" --status-ru "Включает или выключает параметр «показывать админские»." --name-ru "Показывать админские" --items-ru "Нет|Да" "Show admin" cl_modhelp_show_admin
    blank
    values --live --status "cl_modhelp_role: override role detection (0=auto)" --status-ru "Выбирает значение «роль оверлея»." --name-ru "Роль оверлея" --items-ru "Авто|Игрок|Наблюдатель|Комментатор|Капитан|Админ" "Overlay role" cl_modhelp_role auto player spectator caster captain admin
    values --live --status "cl_modhelp_unavailable: how to display unavailable rows (0=show, 1=gray, 2=hide)" --status-ru "Выбирает значение «недоступные строки»." --name-ru "Недоступные строки" --items-ru "Показать|Серый|Скрыть" "Unavailable rows" cl_modhelp_unavailable show gray hide
    toggle --live --status "cl_modhelp_confirm_dangerous: confirm before executing dangerous commands" --status-ru "Включает или выключает параметр «подтверждать опасные»." --name-ru "Подтверждать опасные" --items-ru "Нет|Да" "Confirm dangerous" cl_modhelp_confirm_dangerous
    toggle --live --status "cl_modhelp_prefer_context_page: auto-select page by role when overlay opens" --status-ru "Включает или выключает параметр «предпочитать контекстную страницу»." --name-ru "Предпочитать контекстную страницу" --items-ru "Нет|Да" "Prefer context page" cl_modhelp_prefer_context_page
    blank
    toggle --live --status "cl_modhelp_show_badges: show role/danger badges on selected row" --status-ru "Включает или выключает параметр «показывать бейджи строк»." --name-ru "Показывать бейджи строк" --items-ru "Нет|Да" "Show row badges" cl_modhelp_show_badges
    toggle --live --status "cl_modhelp_keep_page: remember last page between close/reopen" --status-ru "Включает или выключает параметр «запоминать последнюю страницу»." --name-ru "Запоминать последнюю страницу" --items-ru "Нет|Да" "Keep last page" cl_modhelp_keep_page
    toggle --live --status "cl_modhelp_show_pinned: show pinned commands page first on open" --status-ru "Включает или выключает параметр «показывать закреплённые первыми»." --name-ru "Показывать закреплённые первыми" --items-ru "Нет|Да" "Show pinned first" cl_modhelp_show_pinned
    toggle --live --status "cl_modhelp_use_local: load q2pro.modhelp.local overrides" --status-ru "Включает или выключает параметр «использовать локальные переопределения»." --name-ru "Использовать локальные переопределения" --items-ru "Нет|Да" "Use local overrides" cl_modhelp_use_local
    blank
    action --align --status "Toggle mod overlay on/off (bind modhelp_toggle to a key)" --status-ru "Выполняет действие «переключить оверлей»." --name-ru "Переключить оверлей..." "Toggle overlay..." modhelp_toggle
    bind --status "modhelp_toggle: toggle the mod command overlay" --status-ru "Назначает клавишу для действия «клавиша оверлея»." --name-ru "Клавиша оверлея" "Overlay toggle key" modhelp_toggle
    bind --status "modhelp_search: open search mode in overlay" --status-ru "Назначает клавишу для действия «клавиша поиска»." --name-ru "Клавиша поиска" "Search key" modhelp_search
end

begin q2prox_vis
    title "Q2PRO-X / Visibility"
    title-ru "Q2PRO-X / Видимость"
    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 all visibility highlighting" --status-ru "Включает или выключает параметр «включить подсветку»." --name-ru "Включить подсветку" --items-ru "Нет|Да" "Enable highlighting" cl_vis_enable
    toggle --live --status "cl_vis_singleplayer: allow highlighting in single-player" --status-ru "Включает или выключает параметр «одиночная игра»." --name-ru "Одиночная игра" --items-ru "Нет|Да" "Single-player" cl_vis_singleplayer
    toggle --live --status "cl_vis_items: enable item/pickup highlighting" --status-ru "Включает или выключает параметр «подсветка предметов»." --name-ru "Подсветка предметов" --items-ru "Нет|Да" "Item highlighting" cl_vis_items
    values --live --status "cl_vis_items_style: 0=off, 1=shell, 2=tint, 3=shell+tint" --status-ru "Выбирает значение «стиль предметов»." --name-ru "Стиль предметов" --items-ru "Выкл.|Контур|Заливка|Контур+заливка" "Item style" cl_vis_items_style off shell tint "shell+tint"
    range --live --precision 2 --status "cl_vis_items_alpha: tint overlay opacity" --status-ru "Настраивает значение «прозрачность заливки»." --name-ru "Прозрачность заливки" "Tint alpha" cl_vis_items_alpha 0.05 1 0.05
    range --live --precision 2 --status "cl_vis_items_shell_alpha: shell overlay opacity" --status-ru "Настраивает значение «прозрачность контура»." --name-ru "Прозрачность контура" "Shell alpha" cl_vis_items_shell_alpha 0.05 1 0.05
    range --live --precision 2 --status "cl_vis_items_shell_scale: shell thickness. On a live server the clamp is 0.1 in deathmatch > 1 / 1.0 otherwise. Lifted during demo playback (single-player treatment) — bigger shells help spotting." --status-ru "Настраивает значение «толщина контура»." --name-ru "Толщина контура" "Shell thickness" cl_vis_items_shell_scale 0.01 4 0.01
    range --live --precision 2 --status "cl_vis_items_brightness: global highlight intensity (1.0 = default, 10.0 = max)" --status-ru "Настраивает значение «яркость предметов»." --name-ru "Яркость предметов" "Item brightness" cl_vis_items_brightness 0 10 0.05
    range --live --precision 2 --status "cl_vis_items_scale: item model size. On a live server values > 1.0 are clamped to 1.0 for geometry-protrusion safety. Lifted during demo playback (single-player treatment) — oversized pickups help visibility while watching." --status-ru "Настраивает значение «масштаб предметов»." --name-ru "Масштаб предметов" "Item scale" cl_vis_items_scale 0.1 5 0.05
    blank
    toggle --live --status "cl_vis_weapons: master switch for weapon pickup highlighting" --status-ru "Включает или выключает параметр «подсветка оружия»." --name-ru "Подсветка оружия" --items-ru "Нет|Да" "Weapon highlighting" cl_vis_weapons
    range --live --precision 2 --status "cl_vis_weapons_scale: weapon model size. On a live server values > 1.0 are clamped to 1.0 for safety. Lifted during demo playback — same logic as item scale." --status-ru "Настраивает значение «масштаб оружия»." --name-ru "Масштаб оружия" "Weapon scale" cl_vis_weapons_scale 0.1 5 0.05
    blank
    toggle --live --status "cl_vis_players: highlight other player models" --status-ru "Включает или выключает параметр «подсветка игроков»." --name-ru "Подсветка игроков" --items-ru "Нет|Да" "Player highlighting" cl_vis_players
    values --live --status "cl_vis_players_mode: off=no highlight; all=single color; random FFA=stable slot palette; duel=two duel colors; auto=team>duel>fallback; team=friendly/enemy; model=color every player by their player-model directory (recommended for demos where team truth isn't 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: open the scrollable editor to assign a color to each installed player model (male/female/cyborg/...). Works together with player mode = model." --status-ru "Открывает раздел «Цвета моделей игроков»." --name-ru "Цвета моделей игроков..." "Player model colors..." pushmenu q2prox_vis_player_model_colors
    values --live --status "cl_vis_players_style: 0=off, 1=shell, 2=tint, 3=shell+tint" --status-ru "Выбирает значение «стиль игроков»." --name-ru "Стиль игроков" --items-ru "Выкл.|Контур|Заливка|Контур+заливка" "Player style" cl_vis_players_style off shell tint "shell+tint"
    range --live --precision 2 --status "cl_vis_players_alpha: player tint opacity" --status-ru "Настраивает значение «прозрачность заливки игроков»." --name-ru "Прозрачность заливки игроков" "Player tint alpha" cl_vis_players_alpha 0.05 1 0.05
    range --live --precision 2 --status "cl_vis_players_shell_alpha: player shell opacity" --status-ru "Настраивает значение «прозрачность контура игроков»." --name-ru "Прозрачность контура игроков" "Player shell alpha" cl_vis_players_shell_alpha 0.05 1 0.05
    range --live --precision 3 --status "cl_vis_players_shell_scale: player shell contour (0=thinnest, 0.05=max)" --status-ru "Настраивает значение «толщина контура игроков»." --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. ONLY applied in single-player or during .dm2/.mvd2 demo playback — on a live deathmatch server the value is ignored and stock size is used (competitive parity). Bigger-than-stock helps track players while watching demos." --status-ru "Настраивает значение «масштаб игрока»." --name-ru "Масштаб игрока" "Player scale" cl_vis_players_scale 0.1 5 0.05
    range --live --precision 2 --status "cl_vis_players_brightness: player highlight intensity" --status-ru "Настраивает значение «яркость игроков»." --name-ru "Яркость игроков" "Player brightness" cl_vis_players_brightness 0 10 0.05
    toggle --live --status "cl_vis_players_self: highlight your own player model" --status-ru "Включает или выключает параметр «подсвечивать себя»." --name-ru "Подсвечивать себя" --items-ru "Нет|Да" "Highlight self" cl_vis_players_self
    pairs --live --status "cl_vis_players_auto_fallback: when auto mode can't confirm team or duel, fall back to this mode. Stored as numeric (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 --live --precision 0 --status "cl_vis_players_duel_hold_ms: ms to confirm stable duel (100-3000)" --status-ru "Настраивает значение «удержание дуэли (мс)»." --name-ru "Удержание дуэли (мс)" "Duel hold ms" cl_vis_players_duel_hold_ms 100 3000 100
    pairs --live --status "cl_vis_players_team_source: team detection source. 0=off (disables team adapter), 1=auto (skin-based team inference), 2=opentdm (OpenTDM-specific). Stored as numeric." --status-ru "Выбирает значение «источник команды»." --name-ru "Источник команды" --items-ru "Выкл.|Авто|OpenTDM" "Team source" cl_vis_players_team_source off 0 auto 1 opentdm 2
    pairs --live --status "cl_vis_players_team_fallback: when team truth is weak/unknown, fall back to this mode. Stored as numeric (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 --live --precision 0 --status "cl_vis_players_team_hold_ms: ms to confirm stable team assignment" --status-ru "Настраивает значение «удержание команды (мс)»." --name-ru "Удержание команды (мс)" "Team hold ms" cl_vis_players_team_hold_ms 100 3000 100
    pairs --live --status "cl_vis_players_team_friendly_color: teammate highlight color" --status-ru "Выбирает значение «цвет своих»." --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 --live --status "cl_vis_players_team_enemy_color: enemy highlight color" --status-ru "Выбирает значение «цвет врагов»." --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 enable toggles for pickups (health, armor, ammo, powerups, keys)" --status-ru "Открывает раздел «переключатели предметов»." --name-ru "Переключатели предметов..." "Item toggles..." pushmenu q2prox_vis_toggles
    action --status "Per-class color presets for pickups" --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 color presets" --status-ru "Открывает раздел «цвета оружия»." --name-ru "Цвета оружия..." "Weapon colors..." pushmenu q2prox_vis_weapon_colors
    blank
    action --align --status "Print item classification and highlight status" --status-ru "Выполняет действие «инфо о видимости предметов»." --name-ru "Инфо о видимости предметов..." "Vis items info..." cl_vis_items_info
end

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

begin q2prox_vis_colors
    title "Q2PRO-X / Vis Colors"
    title-ru "Q2PRO-X / Цвета подсветки"
    style --no-compact
    pairs --live --status "cl_vis_health_small_color: stimpack highlight color" --status-ru "Выбирает значение «малое здоровье»." --name-ru "Малое здоровье" --items-ru "Зелёный|Лайм|Циан|Жёлтый|Белый" "Health small" cl_vis_health_small_color green "#66Ff66" lime "#33Ff33" cyan "#66Ffff" yellow "#Ffff33" white "#Ffffff"
    pairs --live --status "cl_vis_health_medium_color: medium health highlight color" --status-ru "Выбирает значение «среднее здоровье»." --name-ru "Среднее здоровье" --items-ru "Зелёный|Лайм|Циан|Жёлтый|Белый" "Health medium" cl_vis_health_medium_color green "#33Ff33" lime "#00Ff00" cyan "#33Ffff" yellow "#Ffcc33" white "#Ffffff"
    pairs --live --status "cl_vis_health_large_color: large health highlight color" --status-ru "Выбирает значение «большое здоровье»." --name-ru "Большое здоровье" --items-ru "Зелёный|Лайм|Циан|Жёлтый|Белый" "Health large" cl_vis_health_large_color green "#00Ff00" lime "#33Ff33" cyan "#00Ffff" yellow "#Ffcc33" white "#Ffffff"
    pairs --live --status "cl_vis_health_mega_color: mega health highlight color" --status-ru "Выбирает значение «мега-здоровье»." --name-ru "Мега-здоровье" --items-ru "Маджента|Красный|Циан|Синий|Белый" "Health mega" cl_vis_health_mega_color magenta "#Ff33ff" red "#Ff3333" cyan "#33Ffff" blue "#3399Ff" white "#Ffffff"
    pairs --live --status "cl_vis_armor_shard_color: armor shard highlight color" --status-ru "Выбирает значение «осколок брони»." --name-ru "Осколок брони" --items-ru "Циан|Зелёный|Синий|Белый" "Armor shard" cl_vis_armor_shard_color cyan "#66Ffff" green "#66Ff66" blue "#6699Ff" white "#Ffffff"
    pairs --live --status "cl_vis_armor_jacket_color: jacket armor highlight color" --status-ru "Выбирает значение «зелёная броня»." --name-ru "Зелёная броня" --items-ru "Зелёный|Лайм|Циан|Жёлтый|Белый" "Armor jacket" cl_vis_armor_jacket_color green "#66Ff66" lime "#33Ff33" cyan "#66Ffff" yellow "#Ffcc33" white "#Ffffff"
    pairs --live --status "cl_vis_armor_combat_color: combat armor highlight color" --status-ru "Выбирает значение «жёлтая броня»." --name-ru "Жёлтая броня" --items-ru "Жёлтый|Оранжевый|Зелёный|Белый" "Armor combat" cl_vis_armor_combat_color yellow "#Ffd633" orange "#Ff9933" green "#66Ff66" white "#Ffffff"
    pairs --live --status "cl_vis_armor_body_color: body armor highlight color" --status-ru "Выбирает значение «красная броня»." --name-ru "Красная броня" --items-ru "Красный|Оранжевый|Маджента|Жёлтый|Белый" "Armor body" cl_vis_armor_body_color red "#Ff3333" orange "#Ff6633" magenta "#Ff33ff" yellow "#Ffcc33" white "#Ffffff"
    pairs --live --status "cl_vis_armor_screen_color: power screen highlight color" --status-ru "Выбирает значение «энергетический экран»." --name-ru "Энергетический экран" --items-ru "Циан|Синий|Зелёный|Белый" "Armor screen" cl_vis_armor_screen_color cyan "#66Ccff" blue "#3399Ff" green "#66Ff66" white "#Ffffff"
    pairs --live --status "cl_vis_armor_shield_color: power shield highlight color" --status-ru "Выбирает значение «энергетический щит»." --name-ru "Энергетический щит" --items-ru "Синий|Циан|Маджента|Белый" "Armor shield" cl_vis_armor_shield_color blue "#3399Ff" cyan "#66Ccff" magenta "#Ff33ff" white "#Ffffff"
    pairs --live --status "cl_vis_ammo_color: ammo pickup highlight color" --status-ru "Выбирает значение «патроны»." --name-ru "Патроны" --items-ru "Белый|Циан|Зелёный|Жёлтый" "Ammo" cl_vis_ammo_color white "#Ffffff" cyan "#66Ffff" green "#66Ff66" yellow "#Ffcc33"
    pairs --live --status "cl_vis_powerups_color: powerup highlight color" --status-ru "Выбирает значение «пауэрапы»." --name-ru "Пауэрапы" --items-ru "Синий|Циан|Маджента|Красный|Белый" "Powerups" cl_vis_powerups_color blue "#3399Ff" cyan "#33Ffff" magenta "#Ff33ff" red "#Ff3333" white "#Ffffff"
    pairs --live --status "cl_vis_keys_color: key highlight color" --status-ru "Выбирает значение «ключи»." --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 "Q2PRO-X / Weapon Toggles"
    title-ru "Q2PRO-X / Переключатели оружия"
    style --no-compact
    toggle --live --status "cl_vis_weapon_shotgun: highlight shotgun pickup" --status-ru "Включает или выключает параметр «дробовик»." --name-ru "Дробовик" --items-ru "Нет|Да" "Shotgun" cl_vis_weapon_shotgun
    toggle --live --status "cl_vis_weapon_sshotgun: highlight super shotgun pickup" --status-ru "Включает или выключает параметр «супердробовик»." --name-ru "Супердробовик" --items-ru "Нет|Да" "Super shotgun" cl_vis_weapon_sshotgun
    toggle --live --status "cl_vis_weapon_machinegun: highlight machinegun pickup" --status-ru "Включает или выключает параметр «пулемёт»." --name-ru "Пулемёт" --items-ru "Нет|Да" "Machinegun" cl_vis_weapon_machinegun
    toggle --live --status "cl_vis_weapon_chaingun: highlight chaingun pickup" --status-ru "Включает или выключает параметр «чейнган»." --name-ru "Чейнган" --items-ru "Нет|Да" "Chaingun" cl_vis_weapon_chaingun
    toggle --live --status "cl_vis_weapon_grenade: highlight grenade launcher pickup" --status-ru "Включает или выключает параметр «гранатомёт»." --name-ru "Гранатомёт" --items-ru "Нет|Да" "Grenade launcher" cl_vis_weapon_grenade
    toggle --live --status "cl_vis_weapon_rocket: highlight rocket launcher pickup" --status-ru "Включает или выключает параметр «ракетница»." --name-ru "Ракетница" --items-ru "Нет|Да" "Rocket launcher" cl_vis_weapon_rocket
    toggle --live --status "cl_vis_weapon_hyperblaster: highlight hyperblaster pickup" --status-ru "Включает или выключает параметр «гипербластер»." --name-ru "Гипербластер" --items-ru "Нет|Да" "Hyperblaster" cl_vis_weapon_hyperblaster
    toggle --live --status "cl_vis_weapon_railgun: highlight railgun pickup" --status-ru "Включает или выключает параметр «Railgun»." --name-ru "Railgun" --items-ru "Нет|Да" "Railgun" cl_vis_weapon_railgun
    toggle --live --status "cl_vis_weapon_bfg: highlight BFG10K pickup" --status-ru "Включает или выключает параметр «BFG10K»." --name-ru "BFG10K" --items-ru "Нет|Да" "BFG10K" cl_vis_weapon_bfg
end

begin q2prox_vis_weapon_colors
    title "Q2PRO-X / Weapon Colors"
    title-ru "Q2PRO-X / Цвета оружия"
    style --no-compact
    pairs --live --status "cl_vis_weapon_shotgun_color: shotgun highlight color" --status-ru "Выбирает значение «дробовик»." --name-ru "Дробовик" --items-ru "Серый|Белый|Жёлтый|Зелёный" "Shotgun" cl_vis_weapon_shotgun_color grey "#999999" white "#Ffffff" yellow "#Ffcc33" green "#66Ff66"
    pairs --live --status "cl_vis_weapon_sshotgun_color: super shotgun highlight color" --status-ru "Выбирает значение «супердробовик»." --name-ru "Супердробовик" --items-ru "Серый|Белый|Жёлтый|Зелёный" "Super shotgun" cl_vis_weapon_sshotgun_color grey "#999999" white "#Ffffff" yellow "#Ffcc33" green "#66Ff66"
    pairs --live --status "cl_vis_weapon_machinegun_color: machinegun highlight color" --status-ru "Выбирает значение «пулемёт»." --name-ru "Пулемёт" --items-ru "Коричневый|Жёлтый|Оранжевый|Белый" "Machinegun" cl_vis_weapon_machinegun_color brown "#Cc9933" yellow "#Ffcc33" orange "#Ff9933" white "#Ffffff"
    pairs --live --status "cl_vis_weapon_chaingun_color: chaingun highlight color" --status-ru "Выбирает значение «чейнган»." --name-ru "Чейнган" --items-ru "Коричневый|Жёлтый|Оранжевый|Белый" "Chaingun" cl_vis_weapon_chaingun_color brown "#Cc9933" yellow "#Ffcc33" orange "#Ff9933" white "#Ffffff"
    pairs --live --status "cl_vis_weapon_grenade_color: grenade launcher highlight color" --status-ru "Выбирает значение «гранатомёт»." --name-ru "Гранатомёт" --items-ru "Тёмно-красный|Красный|Оранжевый|Белый" "Grenade launcher" cl_vis_weapon_grenade_color "Dark red" "#993333" red "#Ff3333" orange "#Ff6633" white "#Ffffff"
    pairs --live --status "cl_vis_weapon_rocket_color: rocket launcher highlight color" --status-ru "Выбирает значение «ракетница»." --name-ru "Ракетница" --items-ru "Красный|Оранжевый|Жёлтый|Белый" "Rocket launcher" cl_vis_weapon_rocket_color red "#Ff3333" orange "#Ff6633" yellow "#Ffcc33" white "#Ffffff"
    pairs --live --status "cl_vis_weapon_hyperblaster_color: hyperblaster highlight color" --status-ru "Выбирает значение «гипербластер»." --name-ru "Гипербластер" --items-ru "Зелёно-жёлтый|Зелёный|Жёлтый|Циан|Белый" "Hyperblaster" cl_vis_weapon_hyperblaster_color "Green-yellow" "#99Cc33" green "#66Ff66" yellow "#Ffcc33" cyan "#66Ffff" white "#Ffffff"
    pairs --live --status "cl_vis_weapon_railgun_color: railgun highlight color" --status-ru "Выбирает значение «Railgun»." --name-ru "Railgun" --items-ru "Синий|Циан|Маджента|Белый" "Railgun" cl_vis_weapon_railgun_color blue "#3366Ff" cyan "#33Ccff" magenta "#Ff33ff" white "#Ffffff"
    pairs --live --status "cl_vis_weapon_bfg_color: BFG10K highlight color" --status-ru "Выбирает значение «BFG10K»." --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_weaponvol
    title "Q2PRO-X / Sound Volumes"
    title-ru "Q2PRO-X / Громкости звука"
    style --no-compact
    range --live --format "%d%%" --status "s_weapon_blaster_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «бластер»." --name-ru "Бластер" "Blaster" s_weapon_blaster_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_shotgun_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «дробовик»." --name-ru "Дробовик" "Shotgun" s_weapon_shotgun_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_supershotgun_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «супердробовик»." --name-ru "Супердробовик" "Super shotgun" s_weapon_supershotgun_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_machinegun_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «пулемёт»." --name-ru "Пулемёт" "Machinegun" s_weapon_machinegun_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_chaingun_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «чейнган»." --name-ru "Чейнган" "Chaingun" s_weapon_chaingun_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_handgrenade_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «ручные гранаты»." --name-ru "Ручные гранаты" "Hand grenades" s_weapon_handgrenade_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_grenadelauncher_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «гранатомёт»." --name-ru "Гранатомёт" "Grenade launcher" s_weapon_grenadelauncher_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_rocketlauncher_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «ракетница»." --name-ru "Ракетница" "Rocket launcher" s_weapon_rocketlauncher_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_hyperblaster_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «гипербластер»." --name-ru "Гипербластер" "Hyperblaster" s_weapon_hyperblaster_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_railgun_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «Railgun»." --name-ru "Railgun" "Railgun" s_weapon_railgun_volume 0 100 5
    range --live --format "%d%%" --status "s_weapon_bfg_volume: 50 = default, 0 = mute, 100 = 2x louder" --status-ru "Настраивает значение «BFG10K»." --name-ru "BFG10K" "BFG10K" s_weapon_bfg_volume 0 100 5
    blank
    range --live --format "%d%%" --status "s_player_volume: player movement sounds (jump, land, fall, steps). 50 = default" --status-ru "Настраивает значение «игрок звуки»." --name-ru "Игрок звуки" "Player sounds" s_player_volume 0 100 5
    range --live --format "%d%%" --status "s_voice_volume: player voice (pain, death, taunts). 50 = default" --status-ru "Настраивает значение «голос / боль»." --name-ru "Голос / боль" "Voice / pain" s_voice_volume 0 100 5
    range --live --format "%d%%" --status "s_pickup_volume: item pickup sounds (health, armor, ammo, weapons). 50 = default" --status-ru "Настраивает значение «подбор предметов»." --name-ru "Подбор предметов" "Item pickups" s_pickup_volume 0 100 5
    range --live --format "%d%%" --status "s_environment_volume: world sounds (doors, glass, platforms, debris). 50 = default" --status-ru "Настраивает значение «окружение»." --name-ru "Окружение" "Environment" s_environment_volume 0 100 5
    range --live --format "%d%%" --status "s_monster_volume: monster/enemy sounds (voice, weapons, movement). 50 = default" --status-ru "Настраивает значение «монстры»." --name-ru "Монстры" "Monsters" s_monster_volume 0 100 5
    range --live --format "%d%%" --status "s_announcer_volume: game announcer (computer updated, secrets). 50 = default" --status-ru "Настраивает значение «диктор»." --name-ru "Диктор" "Announcer" s_announcer_volume 0 100 5
    range --live --format "%d%%" --status "s_interface_volume: menu navigation and UI sounds. 50 = default" --status-ru "Настраивает значение «меню / интерфейс»." --name-ru "Меню / интерфейс" "Menu / UI" s_interface_volume 0 100 5
    range --live --format "%d%%" --status "s_other_volume: all other unclassified sounds. 50 = default" --status-ru "Настраивает значение «прочее»." --name-ru "Прочее" "Other / misc" s_other_volume 0 100 5
    range --live --format "%d%%" --status "s_ambient_volume: ambient/world loop sounds (movers, hums, teleports). 50 = default" --status-ru "Настраивает значение «фоновые циклы»." --name-ru "Фоновые циклы" "Ambient loops" s_ambient_volume 0 100 5
    blank
    action --align --refresh --status "Mute all sounds" --status-ru "Выполняет действие «всё выкл»." --name-ru "Всё выкл." "All off" "set s_weapon_blaster_volume 0; set s_weapon_shotgun_volume 0; set s_weapon_supershotgun_volume 0; set s_weapon_machinegun_volume 0; set s_weapon_chaingun_volume 0; set s_weapon_handgrenade_volume 0; set s_weapon_grenadelauncher_volume 0; set s_weapon_rocketlauncher_volume 0; set s_weapon_hyperblaster_volume 0; set s_weapon_railgun_volume 0; set s_weapon_bfg_volume 0; set s_player_volume 0; set s_voice_volume 0; set s_pickup_volume 0; set s_environment_volume 0; set s_monster_volume 0; set s_announcer_volume 0; set s_interface_volume 0; set s_other_volume 0; set s_ambient_volume 0"
    action --align --refresh --status "Restore all volumes to default (50)" --status-ru "Выполняет действие «восстановить умолчания»." --name-ru "Восстановить умолчания" "Restore defaults" "set s_weapon_blaster_volume 50; set s_weapon_shotgun_volume 50; set s_weapon_supershotgun_volume 50; set s_weapon_machinegun_volume 50; set s_weapon_chaingun_volume 50; set s_weapon_handgrenade_volume 50; set s_weapon_grenadelauncher_volume 50; set s_weapon_rocketlauncher_volume 50; set s_weapon_hyperblaster_volume 50; set s_weapon_railgun_volume 50; set s_weapon_bfg_volume 50; set s_player_volume 50; set s_voice_volume 50; set s_pickup_volume 50; set s_environment_volume 50; set s_monster_volume 50; set s_announcer_volume 50; set s_interface_volume 50; set s_other_volume 50; set s_ambient_volume 50"
end

begin q2prox_serverbrowser
    title "Q2PRO-X / Server Browser"
    title-ru "Q2PRO-X / Браузер серверов"
    style --no-compact
    values --live --status "cl_serverbrowser_ui: 0 = classic legacy menu, 1 = modern overlay" --status-ru "Выбирает значение «режим браузера»." --name-ru "Режим браузера" --items-ru "Классический|Современный" "Browser mode" cl_serverbrowser_ui legacy modern
    range --live --precision 2 --status "cl_serverbrowser_alpha: overlay background opacity" --status-ru "Настраивает значение «прозрачность»." --name-ru "Прозрачность" "Opacity" cl_serverbrowser_alpha 0 1 0.05
    range --live --precision 1 --status "cl_serverbrowser_scale: text scale multiplier" --status-ru "Настраивает значение «масштаб текста»." --name-ru "Масштаб текста" "Text scale" cl_serverbrowser_scale 0.5 2 0.1
    toggle --live --status "cl_serverbrowser_compact: use compact line spacing" --status-ru "Включает или выключает параметр «компактный режим»." --name-ru "Компактный режим" --items-ru "Нет|Да" "Compact mode" cl_serverbrowser_compact
    toggle --live --status "cl_serverbrowser_fullscreen: expand overlay to fill screen" --status-ru "Включает или выключает параметр «полный экран»." --name-ru "Полный экран" --items-ru "Нет|Да" "Fullscreen" cl_serverbrowser_fullscreen
    toggle --live --status "cl_serverbrowser_pillarbox_workspace: allow the server browser to be dragged into the pillarbox side bars (aspect-fit free area). Mouse clicks outside the browser window still close it as before." --status-ru "Включает или выключает параметр «свободная зона боковых полей»." --name-ru "Свободная зона боковых полей" --items-ru "Нет|Да" "Pillarbox free area" cl_serverbrowser_pillarbox_workspace
    toggle --live --status "cl_serverbrowser_show_details: show details pane on right side" --status-ru "Включает или выключает параметр «показывать детали»." --name-ru "Показывать детали" --items-ru "Нет|Да" "Show details" cl_serverbrowser_show_details
    toggle --live --status "cl_serverbrowser_show_badges: show status badges" --status-ru "Включает или выключает параметр «показывать бейджи»." --name-ru "Показывать бейджи" --items-ru "Нет|Да" "Show badges" cl_serverbrowser_show_badges
    toggle --live --status "cl_serverbrowser_row_colors: alternate row colors and ping-based coloring" --status-ru "Включает или выключает параметр «цвета строк»." --name-ru "Цвета строк" --items-ru "Нет|Да" "Row colors" cl_serverbrowser_row_colors
    blank
    toggle --live --status "cl_serverbrowser_hide_empty: hide servers with no players" --status-ru "Включает или выключает параметр «скрывать пустые»." --name-ru "Скрывать пустые" --items-ru "Нет|Да" "Hide empty" cl_serverbrowser_hide_empty
    toggle --live --status "cl_serverbrowser_hide_full: hide full servers" --status-ru "Включает или выключает параметр «скрывать полные»." --name-ru "Скрывать полные" --items-ru "Нет|Да" "Hide full" cl_serverbrowser_hide_full
    toggle --live --status "cl_serverbrowser_only_players: only show servers with players" --status-ru "Включает или выключает параметр «только с игроками»." --name-ru "Только с игроками" --items-ru "Нет|Да" "Only with players" cl_serverbrowser_only_players
    range --live --precision 0 --status "cl_serverbrowser_max_ping: max ping filter (0 = no limit)" --status-ru "Настраивает значение «макс. пинг»." --name-ru "Макс. пинг" "Max ping" cl_serverbrowser_max_ping 0 999 50
    toggle --live --status "cl_serverbrowser_show_passworded: show password-protected servers" --status-ru "Включает или выключает параметр «показывать с паролем»." --name-ru "Показывать с паролем" --items-ru "Нет|Да" "Show passworded" cl_serverbrowser_show_passworded
    toggle --live --status "cl_serverbrowser_show_down: show unreachable/down servers" --status-ru "Включает или выключает параметр «показывать недоступные»." --name-ru "Показывать недоступные" --items-ru "Нет|Да" "Show down" cl_serverbrowser_show_down
    blank
    values --live --status "cl_serverbrowser_default_source: default server source preset" --status-ru "Выбирает значение «источник по умолчанию»." --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: URI for Custom source (e.g. +http://example.com/?raw=2)" --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 "serverbrowser_toggle: toggle the server browser overlay" --status-ru "Назначает клавишу для действия «клавиша переключения»." --name-ru "Клавиша переключения" "Toggle key" serverbrowser_toggle
end

begin q2prox_advanced_network
    title "Q2PRO-X / Advanced Network"
    title-ru "Q2PRO-X / Продвинутая сеть"
    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 "Q2PRO-X / Cvar Browser"
    title-ru "Q2PRO-X / Справочник переменных"
    style --no-compact
    range --live --precision 2 --status "cl_cvar_browser_alpha: browser background opacity (independent from scr_alpha)" --status-ru "Настраивает значение «прозрачность»." --name-ru "Прозрачность" "Opacity" cl_cvar_browser_alpha 0 1 0.05
    range --live --precision 2 --status "cl_cvar_browser_scale: browser-local text and chrome scale (independent from scr_scale); 0.1..4.0" --status-ru "Настраивает значение «масштаб текста»." --name-ru "Масштаб текста" "Text scale" cl_cvar_browser_scale 0.1 4 0.05
    toggle --live --status "cl_cvar_browser_remember_tab: when on (default), reopen the cvar browser on whichever tab (All / Favorites / Demo / Visual / Audio / Input / Network / Gameplay / HUD/UI / Server / System) was active last time. Off = always start on All. Internal cl_cvar_browser_last_tab stores the name." --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 "cvar_browser_toggle: toggle the Q2PRO-X cvar reference overlay" --status-ru "Назначает клавишу для действия «клавиша переключения»." --name-ru "Клавиша переключения" "Toggle key" cvar_browser_toggle
end

begin q2prox_demobrowser
    title "Q2PRO-X / Demo Browser"
    title-ru "Q2PRO-X / Браузер демок"
    style --no-compact
    range --live --precision 2 --status "cl_demo_browser_alpha: demo browser background opacity (independent from scr_alpha)" --status-ru "Настраивает значение «прозрачность»." --name-ru "Прозрачность" "Opacity" cl_demo_browser_alpha 0 1 0.05
    range --live --precision 2 --status "cl_demo_browser_scale: demo browser text and chrome scale (independent from scr_scale); 0.1 packs a lot of rows, 1.0 is default, up to 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 the demo browser overlay to fill the whole HUD; hides the resize grip. Can also be toggled by the [F] button in the header." --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 with per-demo metadata" --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 colour 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 demos flagged partial (playable, metadata incomplete) or unreadable. Partial rows stay selectable and playable — press Enter." --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 found inside engine-visible pack / container paths. Off by default so the list feels like your personal demo library." --status-ru "Включает или выключает параметр «показывать демки из пакетов движка»." --name-ru "Показывать демки из пакетов движка" --items-ru "Нет|Да" "Show demos from engine packs" cl_demo_browser_show_packed
    toggle --live --status "cl_demo_browser_remember_tab: when on (default), reopen the demo browser on whichever tab (All / Favorites / Date / Mod / Map / POV) was active last time. Off = always start on All. Internal cl_demo_browser_last_tab stores the name." --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 under demos/ and rewrite the central index" --status-ru "Выполняет действие «перестроить индекс демо»." --name-ru "Перестроить индекс демо" "Rebuild demo index" demo_index_rebuild
    action --align --status "Incremental refresh: add new demos and drop vanished ones without reparsing unchanged files" --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 "Q2PRO-X / Demo Player"
    title-ru "Q2PRO-X / Проигрыватель демо"
    style --no-compact
    toggle --live --status "cl_demoplayer_overlay: master switch for the modern playback overlay. When off, only the legacy scr_demobar (if enabled) is shown during demo playback." --status-ru "Включает или выключает параметр «включено»." --name-ru "Включено" --items-ru "Нет|Да" "Enabled" cl_demoplayer_overlay
    range --live --precision 2 --status "cl_demoplayer_overlay_alpha: overlay background opacity (independent from scr_alpha)" --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: player hides after N seconds of key-down idle. Mouse motion does NOT unhide — the player returns only via the bound toggle key or the show-demo-player action. 0 = player stays visible while a 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 size (sec) for the `<` and `>` buttons and for the Left/Right keyboard shortcuts" --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 size (sec) for the `<<` 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 in the demo player button row when playing an .mvd2 demo" --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. Also sets the manual-override cooldown: 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 the next-frag director. `tick` logs every director decision + the full scan timeline at demo start. `scan` also logs every accepted/rejected obituary. Default off." --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 applied during demo playback. Saves the live `s_volume`, overlays this value, restores on demo end — in-game audio untouched." --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 the bottom of the HUD, in HUD pixels. 0 = flush to the bottom. Useful if a mod HUD element covers the default position." --status-ru "Настраивает значение «смещение Y (снизу)»." --name-ru "Смещение Y (снизу)" "Y offset (bottom)" cl_demoplayer_overlay_y 0 400 2
    toggle --live --status "cl_demoplayer_hide_draws: suppress user-supplied `draw` items (cl_timer / cl_lag / cl_ping / etc.) while a demo is playing so they don't clutter demo viewing. Live-game HUD is never affected." --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 widget during demo playback. Mirror of the same toggle on the Laghax page — same cvar, same effect. Widget only — `cl_laghax` smoothing stays on." --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 hotspots, frag zones, pickup locations. MVD2 demos get a full one-shot scan; DM2 demos use honest POV-only sampling." --status-ru "Открывает раздел «аналитика демок»." --name-ru "Аналитика демок..." "Demo analytics..." pushmenu q2prox_demoanalytics
    action --align --status "Demo item respawn timers: translucent ghost models of the real items appear at the waiting item's anchor, optional projected countdowns, and a demo-player items strip. Respawn intervals are derived from observed hidden->visible cycles in the MVD pre-scan — no hardcoded item timers. Unknown intervals never show a fake countdown. MVD2 demos only; honest `MVD-only` fallback on .dm2. Per-item category toggles — armor / powerups on by default, weapons off." --status-ru "Открывает раздел «таймеры предметов»." --name-ru "Таймеры предметов..." "Item timers..." pushmenu q2prox_demoitemtimers
    action --align --status "Show the demo player overlay (unhides it after autohide / manual close). Releases the mouse so play/pause/seek buttons are clickable. Only meaningful during demo playback." --status-ru "Выполняет действие «показать проигрыватель демо»." --name-ru "Показать проигрыватель демо..." "Show demo player..." demo_player_open
    bind --status "demo_player_toggle: show or hide the demo player overlay during demo playback" --status-ru "Назначает клавишу для действия «клавиша переключения»." --name-ru "Клавиша переключения" "Toggle key" demo_player_toggle
    bind --status "demo_pause_toggle: pause/resume demo playback. Only active during a demo (default: SPACE)." --status-ru "Назначает клавишу для действия «клавиша паузы»." --name-ru "Клавиша паузы" "Pause key" demo_pause_toggle
    bind --status "+demo_seek_back: hold to seek backwards by seek-step seconds, repeats once per second. Only during demo (default: LEFTARROW)." --status-ru "Назначает клавишу для действия «клавиша перемотки назад»." --name-ru "Клавиша перемотки назад" "Seek back key" +demo_seek_back
    bind --status "+demo_seek_forward: hold to seek forwards by seek-step seconds, repeats once per second. Only during demo (default: RIGHTARROW)." --status-ru "Назначает клавишу для действия «клавиша перемотки вперёд»." --name-ru "Клавиша перемотки вперёд" "Seek forward key" +demo_seek_forward
    bind --status "demo_playlist_next: jump to the next item in the active playlist. No-op when no playlist is loaded." --status-ru "Назначает клавишу для действия «клавиша следующего в плейлисте»." --name-ru "Клавиша следующего в плейлисте" "Playlist next key" demo_playlist_next
    bind --status "demo_playlist_prev: jump to the previous item in the active playlist." --status-ru "Назначает клавишу для действия «клавиша предыдущего в плейлисте»." --name-ru "Клавиша предыдущего в плейлисте" "Playlist previous key" demo_playlist_prev
    bind --status "demo_playlist_clear: drop the current playlist queue. Current playback keeps running; no auto-advance will fire." --status-ru "Назначает клавишу для действия «клавиша очистки плейлиста»." --name-ru "Клавиша очистки плейлиста" "Playlist clear key" demo_playlist_clear
end

begin q2prox_demoanalytics
    title "Q2PRO-X / Demo Analytics"
    title-ru "Q2PRO-X / Аналитика демок"
    style --no-compact
    values --live --status "cl_demo_analytics_mode: which layers the analytics panel shows. off = no panel. traffic = sampled positions binned as a heatmap. frags = obituary positions. pickups = item pickup positions. all = everything together." --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. overview = small HUD panel top-right. world = in-world translucent particles. both = HUD panel + world particles at once." --status-ru "Выбирает значение «стиль»." --name-ru "Стиль" --items-ru "Обзор|Мир|Оба" "Style" cl_demo_analytics_style "overview" "world" "both"
    values --live --status "cl_demo_analytics_time_scope: time window applied to samples and events. full = whole demo. elapsed = from demo start to current time. window = last N seconds (see window cvar)." --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 in seconds for time_scope = window. Only affects rendering, not the underlying cached data." --status-ru "Настраивает значение «окно (сек)»." --name-ru "Окно (сек)" "Window (sec)" cl_demo_analytics_window_sec 5 600 5
    toggle --live --status "cl_demo_analytics_mvd_autoscan: auto-run the MVD pre-scan when a .mvd2 starts playing. Off = panel stays empty until you run `demo_analytics_rescan` manually." --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: fallback strategy for .dm2 single-POV demos. live POV = collect samples from the chase POV during playback (limited but honest). off = don't collect anything for DM2." --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 in milliseconds. Lower = denser heatmap but more memory; higher = coarser 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 in world units. Smaller = finer heatmap; larger = fewer cells, bigger blocks." --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: hard cap on the number of traffic heat cells drawn per frame. Protects framerate on very dense scans." --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: hard 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: alpha of world-space particles (style = world or 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-space particle size multiplier (0.25..4.0)." --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: trail mode for world particles. 0 = aggregate (all collected data drawn together at flat alpha). >0 = each sample/event appears at its playback-time and fades out linearly over this many seconds. Per-sample dots replace binned cells in trail mode so you see actual movement trails." --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: per-slot sample thinning in trail mode. 1 = draw every sample (densest trail). N = draw every Nth sample per player (sparser, longer visible gaps between dots, longer line segments if lines are on). Cheap draw-time filter — does not require a rescan." --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: in trail mode, connect consecutive drawn samples of the same player with a short chain of interpolated particles. Off = dots only." --status-ru "Включает или выключает параметр «линии соединения следа»." --name-ru "Линии соединения следа" --items-ru "Нет|Да" "Trail connect lines" cl_demo_analytics_trail_lines
    values --live --status "cl_demo_analytics_trail_height_mode: 0 = origin (dot at the player's entity origin). 1 = feet (dot floated near feet level, follows jumps and falls). Render-only — does not change stored data." --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 from entity origin applied in height mode = feet. Negative = toward floor (typical player half-height is -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: additional upward offset added on top of feet_z so trail 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 an outline particle behind each trail dot, line, and HUD event dot for readability against bright backgrounds." --status-ru "Включает или выключает параметр «контур следа»." --name-ru "Контур следа" --items-ru "Нет|Да" "Trail outline" cl_demo_analytics_trail_outline
    range --live --precision 2 --status "cl_demo_analytics_trail_outline_alpha: opacity of the outline particle (0 = invisible, 1 = opaque). Stacks with the foreground dot's alpha." --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: size multiplier of the outline particle relative to the foreground dot. 1.6 = 60 % wider on each side." --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 the cell/event counts + truncation flags 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 — choose named colors (cyan, red, gold…) for traffic, frag, pickup, trail line, and trail outline." --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. Useful if you adjusted sample_ms and want a denser / coarser dataset." --status-ru "Выполняет действие «пересканировать текущее демо»." --name-ru "Пересканировать текущее демо" "Rescan current demo" demo_analytics_rescan
    action --align --status "Dump the current analytics state (path, source, counts, world bounds) to the console." --status-ru "Выполняет действие «инфо в консоль»." --name-ru "Инфо в консоль" "Print info to console" demo_analytics_info
end

begin q2prox_demoitemtimers
    title "Q2PRO-X / Demo Item Timers"
    title-ru "Q2PRO-X / Таймеры предметов в демках"
    style --no-compact
    values --live --status "cl_demo_item_timers_world: master switch for the demo item respawn timer layer. off = disabled. world only = translucent ghost models + projected 3D countdown labels at waiting item anchors (NO strip). strip only = demo player items strip with per-item 2D icon + countdown (NO 3D ghosts / labels). both = world layer + strip layer together. Respawn intervals are derived from observed hidden->visible cycles in the MVD pre-scan — no hardcoded item timers. Unknown intervals display `?` instead of a fake countdown. MVD2 only; .dm2 demos fall back to `MVD-only` with no data." --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 and countdown labels in the 3D scene. 0 = invisible (also disables the world layer entirely). 1 = fully opaque." --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: size multiplier for the translucent ghost model (1.0 = real item size). Label text scale is unaffected." --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 mode toggle, plus per-item text + ring colors. Adaptive ON pulls colors from the item-highlight palette (cl_vis_*_color). Adaptive OFF + manual `inherit` preserves the legacy colors. Manual hex (#RRGGBB) supported via console/cvar browser." --status-ru "Открывает раздел «цвета предметов»." --name-ru "Цвета предметов..." "Items colors..." pushmenu q2prox_demoitemtimers_colors
    blank
    toggle --live --status "cl_demo_item_timers_show_armor_green: track and draw the green jacket armor (`items/armor/jacket`). Applies to ghost model, 3D countdown label, and demo player items strip." --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 and draw the yellow combat armor (`items/armor/combat`)." --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 and draw the red body armor (`items/armor/body`)." --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 (`items/quaddama`)." --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 (`items/invulner`)." --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 (`items/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 (`items/breather`)." --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 (`items/enviro`)." --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 (`items/adrenal`)." --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 (`items/mega_h`) — timed pickup." --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 (`items/armor/screen`) — defensive pickup with respawn." --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 (`items/armor/shield`) — defensive pickup with respawn." --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 pickup (`g_rocket`). Off by default — enable to also time weapon respawns." --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 pickup (`g_bfg`). 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 pickup (`g_rail`). 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). Controls only the strip cells — 3D ghost/label opacity is cl_demo_item_timers_world_alpha." --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: when on, the strip drag-position is measured from the full window (including letterbox/pillarbox bars) instead of the game viewport. Useful on ultrawide monitors to park the strip in the black bars." --status-ru "Включает или выключает параметр «панель в боковых полях»." --name-ru "Панель в боковых полях" --items-ru "Нет|Да" "Strip pillarbox workspace" cl_demo_item_timers_strip_pillarbox_workspace
    action --align --status "Enter drag mode — left-click-and-drag the strip to any position on screen, Enter or Escape to exit." --status-ru "Выполняет действие «переместить панель (перетаскивание)»." --name-ru "Переместить панель (перетаскивание)" "Move strip (drag)" demo_item_timers_strip_edit
    action --align --status "Reset strip position to the default slot above the demo player bar." --status-ru "Выполняет действие «сбросить позицию панели»." --name-ru "Сбросить позицию панели" "Reset strip position" demo_item_timers_strip_reset
    blank
    action --align --status "Dump the current item-timer cache (per-entity kind / anchor / observed interval) to the console. Useful for diagnosing missing items or verifying the derived respawn intervals." --status-ru "Выполняет действие «инфо о таймерах предметов»." --name-ru "Инфо о таймерах предметов" "Print item-timer info" demo_item_timers_info
end

begin q2prox_voice
    title "Q2PRO-X / Voice Chat"
    title-ru "Q2PRO-X / Голосовой чат"
    style --no-compact
    toggle --live --status "vc_enable: master switch. 0 = voice feature completely off (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: automatically join voice room when entering a game server (requires vc_enable 1 and vc_room_mode server)" --status-ru "Включает или выключает параметр «автовход при подключении»." --name-ru "Автовход при подключении" --items-ru "Нет|Да" "Autojoin on connect" vc_autojoin
    values --live --status "vc_room_mode: server = room tied to current game server (default); manual = room from vc_room_name" --status-ru "Выбирает значение «режим комнаты»." --name-ru "Режим комнаты" --items-ru "Сервер|Ручной" "Room mode" vc_room_mode server manual
    field --width 24 --status "vc_room_name: voice room name when vc_room_mode is manual" --status-ru "Редактирует значение «имя ручной комнаты»." --name-ru "Имя ручной комнаты" "Manual room name" vc_room_name
    field --width 32 --status "vc_server: URL of voice control-plane service (default: https://voice-api.q2pro-x.com)" --status-ru "Редактирует значение «сервер управления»." --name-ru "Сервер управления" "Control server" vc_server
    blank
    toggle --live --status "vc_mic_enable: allow microphone capture. Requires OpenAL sound backend. Status string shows reason if unavailable." --status-ru "Включает или выключает параметр «микрофон включён»." --name-ru "Микрофон включён" --items-ru "Нет|Да" "Microphone enabled" vc_mic_enable
    action --align --status "Choose microphone from enumerated capture devices; (default) follows Windows system 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: 0 = VAD (voice activity detection), 1 = push-to-talk (default, recommended)" --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 (picks up quieter speech). Default 0.02; try 0.005 for higher sensitivity." --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 input gain (1.0 = unity default, 10.0 = 10x boost). Digital gain with clipping to [-1,1] — use higher values for quiet mics, but above 3-4x expect saturation on loud sounds." --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 default, 10.0 = 10x boost, 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 (mic and transmit continue; other participants still hear you)" --status-ru "Включает или выключает параметр «заглушить входящие»." --name-ru "Заглушить входящие" --items-ru "Нет|Да" "Deafen (mute incoming)" vc_deafen
    blank
    field --width 24 --status "vc_display_name: name shown in voice room to other participants (empty = use player name)" --status-ru "Редактирует значение «отображаемое имя»." --name-ru "Отображаемое имя" "Display name" vc_display_name
    blank
    action --align --status "voice_join: join voice room for current game server or manual room" --status-ru "Выполняет действие «войти в комнату»." --name-ru "Войти в комнату" "Join room" voice_join
    action --align --status "voice_leave: leave current voice room" --status-ru "Выполняет действие «покинуть комнату»." --name-ru "Покинуть комнату" "Leave room" voice_leave
    bind --status "+voiceptt / -voiceptt: push-to-talk key (hold to transmit)" --status-ru "Назначает клавишу для действия «клавиша PTT»." --name-ru "Клавиша PTT" "PTT key" +voiceptt
    bind --status "voice_mic_toggle: toggle vc_mic_enable" --status-ru "Назначает клавишу для действия «клавиша микрофона»." --name-ru "Клавиша микрофона" "Mic toggle key" voice_mic_toggle
    blank
    action --align --refresh --status "voice_defaults: reset ONLY voice settings to the hosted Phase 1 baseline (vc_relay left untouched; does not touch non-voice Q2PRO-X settings)" --status-ru "Выполняет действие «восстановить голосовые настройки»." --name-ru "Восстановить голосовые настройки" "Restore voice defaults" voice_defaults
end
