Q2PRO-X 1.6 Beta 5 by ly — Q2PRO-X 1.6 Beta 5 Demo Browser and Player Guide
The complete guide in HTML. The original DOCX is available from its documentation card.
Q2PRO-X 1.6 Beta 5 by ly
Q2PRO-X 1.6 Beta 5 Demo Browser and Player Guide
Project author: ly
Finding recordings, playback, analytics and in-demo item timers
English edition • Q2PRO-X 1.6 Beta 5 by ly • 2026-10-10
Contents
The entries are links: click one to jump to that section.
Beta4: discovery, index and tooltips
Recordings, the demo browser and the demo player
7. Demo volume, gun, and skins
Watching an MVD duel with analytics
18. The link to game statistics
Beta4: discovery, index and tooltips
demo and mvdplay search the current mod first, then baseq2, then other local mod directories alphabetically. Exact paths precede recursive fallback. Loose files precede archive fallback. Disconnect restores the user's game directory; demo discovery does not execute other mods' configs or require reconnecting.
demo match
demo baseq2/match
demo opentdm/match
demo --mod baseq2 __pa3Hoe/z3/z3
mvdplay --mod opentdm match
Names above are placeholders for your recordings. An explicit mod limits lookup to that directory. Use --mod to disambiguate a subfolder named like an installed mod. Basename/relative-suffix lookup covers nested folders and PAK/PKZ/ZIP recordings, including archives in subfolders. RAR/7z and archives inside archives are unsupported. OS path-length limits still apply. The first match starts immediately; extra loose copies are reported asynchronously as: Demo "z3": another match at "...". Exact demo path: /...
The browser index, All tab and search cover all mods. Current mod shows only the active directory, with no baseq2 entries mixed in when another mod is active. The packed-demo filter controls archived recordings. Above the list, Auto-update demos (cl_demo_index_autoscan) enables incremental refresh on opening; Rebuild index also works with automatic refresh disabled. Requests are not duplicated while busy. demo_index_refresh and demo_index_rebuild remain available. These controls belong to the browser, not the player.
Standard multiline menu tooltips show file, players, map, recorded mod, relative path and local file/archive time. The timestamp is not an exact match-start claim. Missing metadata remains unknown. Favorites, playlists and player details retain the selected copy's identity. Demo launch fades intro music before a separate demo music profile starts. Demo settings remain independent from normal play settings. Earlier illustrations below show the common interface; this section describes Beta4 additions not present in those earlier screenshots.
Beta 2 change
Network God performs no network diagnostics/corrections and shows none of its HUD during DM2/MVD2 playback. Its user-selected mode is preserved. Demo playback does not qualify the next launch for automatic connection to the last server.
Recordings, the demo browser and the demo player
Watching recordings is a large area of the Q2PRO-X client in its own right. This document explains the demo browser, the player overlay, the format differences, the analytics, trail mode, director mode, in-demo item timers and the viewing visual profile.
| A separate subject. The automatic analysis of your recordings and your personal match statistics are covered in the game statistics guide. This document is about watching only. |
|---|
Where the settings live
| What you are setting | Menu path |
|---|---|
| Demo browser | Main menu → Options → Advanced Q2PRO-X → Demo Browser |
| Demo player | Main menu → Options → Advanced Q2PRO-X → Demo Player |
| Demo analytics | Main menu → Options → Advanced Q2PRO-X → Demo Player → Demo Analytics |
| In-demo item timers | Main menu → Options → Advanced Q2PRO-X → Demo Player → Demo Item Timers |
| Game statistics | Main menu → Options → Advanced Q2PRO-X → Game Statistics |
1. Supported formats
Main formats:
Some features work in both formats, some are MVD2-only:
sampling;
2. Demo Browser
Path:
Main settings:
The browser uses a central index:
The index is not part of the release package. It is created locally on the
user's machine.
3. Tabs and organization
The modern demo browser groups demos into working views, for example:
Exact visibility depends on the discovered demos and metadata. remember tab
opens the browser on the last used tab next time.
Partial/unreadable demos can be shown or hidden. Packed demos from
engine-visible packs are hidden by default so the user's library is not mixed
with pak contents unless desired.
4. Playlist flow
Demo browser supports selecting multiple demos and playlist behavior.
Useful actions:
Binds in Demo Player:
When a playlist is active, the demo player overlay shows the related control
cluster.
5. Demo Player Overlay
Path:
Key settings:
The overlay shows playback controls, timeline, mode pills, and popup menus for
several controls.
6. Pause, seek, and keys
Main binds:
Defaults:
Seek step and jump are configured separately. For long MVDs, raise jump; for
short duels, keep a smaller step.
7. Demo volume, gun, and skins
cl_demoplayer_volume is a temporary volume override during demo playback.
Normal game volume is restored when playback ends.
cl_demoplayer_gun:
This is a demo-playback override. It does not change normal cl_gun.
cl_demoplayer_noskins:
This is also a playback override. It does not change normal cl_noskins.
8. MVD Director
The MVD-only director helps automatically select POV.
Mode:
Values:
Lead time:
Debug:
next frag uses a pre-scanned frag timeline to switch before the event. A
manual POV override temporarily cools the director down so it does not
immediately take control back.
9. Demo Analytics
Path:
Main mode:
Style:
Time scope:
MVD/DM2:
Density/performance:
Visibility:
Commands:
10. Trail mode
Trail mode is enabled when:
Instead of an aggregate heatmap, the renderer draws per-sample dots that live
for N seconds and can be connected by lines.
Settings:
trail_height_mode feet draws the trail closer to player feet while following
jumps, falls, and box-to-box movement. hover_z lifts the dots slightly so
they do not clip into the floor.
11. Analytics colors
Analytics colors are edited through:
Key cvars:
The menu uses preset-style color selection, like the model and item timer
editors. Hex values can also be changed through console/cvar browser.
12. Demo Item Timers
Item timers show respawn timers for important items in MVD2.
Master:
World view:
Strip:
Settings:
13. Tracked items
Armor:
Powerups/items:
Weapons, off by default:
Per-item toggles:
14. Item timer colors
Item timer colors are edited through:
Adaptive mode:
When adaptive is enabled, colors can inherit from the item-highlight palette.
When disabled, manual per-item text/ring colors are controlled separately.
15. Demo visual cfg
All demo visual settings should save to:
baseq2/q2pro-x/demo_visual/q2pro-x.demo.cfg
This matters for:
The idea: a demo from opentdm, k1, xatrix, or another mod should not
replace your viewing graphics just because playback temporarily entered that
demo's gamedir.
16. Practical scenarios
Just watching demos
Watching an MVD duel with analytics
Studying item control
Making clean demo capture
17. The menu pages in full
17.1. Demo browser
Demo Browser
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | View & layout | View & layout | ||
| Slider | View & layout | Opacity | cl_demo_browser_alpha | Demo browser overlay background opacity. Applies immediately. |
| Slider | View & layout | Text scale | cl_demo_browser_scale | Demo browser text and UI scale (0.1..3.0). Applies immediately. |
| Toggle | View & layout | Fullscreen | cl_demo_browser_fullscreen | Maximize the browser to the full HUD; hides the resize grip (also toggled by header [F]). Applies immediately. |
| Toggle | View & layout | Show detail pane | cl_demo_browser_show_details | Show the right-side detail pane. Applies immediately. |
| Toggle | View & layout | Alternate row colors | cl_demo_browser_row_colors | Alternate row background for readability. Applies immediately. |
| Section | Demo listing | Demo listing | ||
| Toggle | Demo listing | Show partial / unreadable demos | cl_demo_browser_show_broken | Also list partial (playable, incomplete metadata) and unreadable demos. Applies immediately. |
| Toggle | Demo listing | Show demos from engine packs | cl_demo_browser_show_packed | Include demos from engine-visible packs (off by default). Applies immediately. |
| Toggle | Demo listing | Remember last tab | cl_demo_browser_remember_tab | Restore the last opened tab (All/Favorites/Date/Mod/Map/POV) next session. Applies immediately. |
| Section | Open | Open | ||
| Navigation | Open | Open demo browser... | demo_browser_open | Open the modern demo browser overlay (search and listing backed by the central index). |
| Key | Open | Toggle key | demo_browser_toggle | Bind a key that opens/closes the demo browser overlay. |
| Section | Index & service | Index & service | ||
| Toggle | Index & service | Auto-update demo information | cl_demo_index_autoscan | cl_demo_index_autoscan: refresh the shared demo index in the background whenever the browser opens. Cached entries remain available when off; manual refresh always works. Applies immediately. |
| Navigation | Index & service | Rebuild demo index | demo_index_rebuild | Full rescan: reparse every demo and rewrite the central index. |
| Navigation | Index & service | Refresh demo index | demo_index_refresh | Incremental refresh without reparsing unchanged demos. |
| Navigation | Index & service | Open legacy demo browser... | menu_demos | Open the legacy demo browser (kept for compatibility). |
17.2. Demo player
Demo Player
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Overlay | Overlay | ||
| Toggle | Overlay | Enabled | cl_demoplayer_overlay | Master switch for the modern playback overlay. Applies immediately. |
| Slider | Overlay | Opacity | cl_demoplayer_overlay_alpha | Playback overlay background opacity. Applies immediately. |
| Slider | Overlay | Text scale | cl_demoplayer_overlay_scale | Playback overlay text and UI scale (0.5..3.0). Applies immediately. |
| Slider | Overlay | Autohide | cl_demoplayer_overlay_autohide_sec | Hide the passive bar after N sec of real idle (0 = always visible while playing). Applies immediately. |
| Slider | Overlay | Seek step | cl_demoplayer_overlay_seek_step_sec | Seconds jumped by the < and > step-seek buttons. Applies immediately. |
| Slider | Overlay | Seek jump | cl_demoplayer_overlay_seek_jump_sec | Seconds jumped by the << and >> jump-seek buttons. Applies immediately. |
| Toggle | Overlay | Show score button | cl_demoplayer_overlay_show_score | Show the MVD-only [score] button while playing .mvd2. Applies immediately. |
| Section | MVD director | MVD director | ||
| List | MVD director | Mvd director | cl_demoplayer_mvd_director_mode | MVD auto-follow: quad/penta/leader follow current state. Next frag uses a pre-scanned frag timeline (survives seek/replay). Applies immediately. [off / next frag / quad / penta / leader] |
| Slider | MVD director | Mvd director lead | cl_demoplayer_mvd_director_lead_sec | Lead time (sec) for next-frag mode; also sets the cooldown after a manual POV override. Applies immediately. |
| List | MVD director | Next frag debug | cl_demoplayer_nextfrag_debug | Next-frag diagnostics: tick = director decisions + timeline. Scan = also every obituary accept/reject. Applies immediately. [off / tick / scan] |
| Section | Playback | Playback | ||
| Slider | Playback | Demo volume | cl_demoplayer_volume | Demo-playback volume multiplier. Final demo gain is s_volume * cl_demoplayer_volume. S_volume remains the master and is not rewritten. Applies immediately. |
| List | Playback | Demo gun | cl_demoplayer_gun | Demo POV gun visibility: force shown or hidden. Does not change cl_gun. Applies immediately. [show gun / hide gun] |
| List | Playback | Demo skins | cl_demoplayer_noskins | Demo skins: original as recorded, or force everyone to male/grunt. Does not change cl_noskins. Applies immediately. [original / no skins] |
| Slider | Playback | Y offset | cl_demoplayer_overlay_y | Vertical offset of the overlay from the bottom of the HUD, in px (0 = flush). Applies immediately. |
| Toggle | Playback | Disable draw interface | cl_demoplayer_hide_draws | Hide user draw items during playback (cl_timer / cl_lag / cl_ping, etc.). Applies immediately. |
| Toggle | Playback | Hide laghax HUD during demo playback | cl_laghax_hud_hide_demo | Auto-hide the laghax HUD during demo playback (same cvar as on the Laghax page). Applies immediately. |
| Section | Submenus & actions | Submenus & actions | ||
| Navigation | Submenus & actions | Demo analytics... | q2prox_demoanalytics | Demo analytics / heatmap: traffic, frags, pickups (MVD2 full scan; DM2 live POV). |
| Navigation | Submenus & actions | Item timers... | q2prox_demoitemtimers | Item respawn timers: ghost models, countdowns, player strip; per-category toggles. MVD2 only. |
| Navigation | Submenus & actions | Show demo player... | demo_player_open | Show the demo player overlay (unhides it after autohide / manual close). |
| Section | Keys | Keys | ||
| Key | Keys | Toggle key | demo_player_toggle | Bind a key that shows/hides the demo player overlay. |
| Key | Keys | Pause key | demo_pause_toggle | Bind a key to pause/resume the demo (default SPACE). |
| Key | Keys | Seek back key | +demo_seek_back | Hold to seek backwards; repeats every 1 s (default LEFTARROW). |
| Key | Keys | Seek forward key | +demo_seek_forward | Hold to seek forwards; repeats every 1 s (default RIGHTARROW). |
| Key | Keys | Playlist next key | demo_playlist_next | Bind a key to jump to the next playlist item. |
| Key | Keys | Playlist previous key | demo_playlist_prev | Bind a key to jump to the previous playlist item. |
| Key | Keys | Playlist clear key | demo_playlist_clear | Bind a key to clear the current playlist queue. |
17.3. Demo analytics
Demo Analytics
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | What to show | What to show | ||
| List | What to show | Analytics | cl_demo_analytics_mode | Which analytics layers the panel shows: off / traffic / frags / pickups / all. Applies immediately. [off / traffic / frags / pickups / all] |
| List | What to show | Style | cl_demo_analytics_style | Where analytics are drawn: HUD overview, in-world particles, or both. Applies immediately. [overview / world / both] |
| List | What to show | Time scope | cl_demo_analytics_time_scope | Time range: full demo, elapsed up to now, or a sliding window (last N sec). Applies immediately. [full / elapsed / window] |
| Slider | What to show | Window | cl_demo_analytics_window_sec | Sliding-window size (sec) when time scope = window. Applies immediately. |
| Section | Sampling | Sampling | ||
| Toggle | Sampling | Auto-scan MVD demos | cl_demo_analytics_mvd_autoscan | Auto-run the MVD pre-scan when an .mvd2 starts. Applies immediately. |
| List | Sampling | DM2 mode | cl_demo_analytics_dm2_mode | .dm2 fallback: off, or sample the live POV. Applies immediately. [off / live POV] |
| Slider | Sampling | Sample interval | cl_demo_analytics_sample_ms | Sampling interval (ms); lower = denser heatmap. Applies immediately. |
| Slider | Sampling | Cell size | cl_demo_analytics_cell_size | Heatmap cell size in world units. Applies immediately. |
| Slider | Sampling | Max cells drawn | cl_demo_analytics_draw_max_cells | Cap on traffic cells drawn per frame. Applies immediately. |
| Slider | Sampling | Max events drawn | cl_demo_analytics_draw_max_events | Cap on frag + pickup dots drawn per frame. Applies immediately. |
| Section | Appearance | Appearance | ||
| Slider | Appearance | HUD panel opacity | cl_demo_analytics_overview_alpha | HUD analytics panel background opacity. Applies immediately. |
| Slider | Appearance | World particle opacity | cl_demo_analytics_world_alpha | World particle opacity (style world/both). Applies immediately. |
| Slider | Appearance | World particle scale | cl_demo_analytics_world_scale | World particle size multiplier (0.25..4.0). Applies immediately. |
| Slider | Appearance | World particle lifetime | cl_demo_analytics_world_lifetime_sec | 0 = aggregate; >0 = trail mode, per-sample dots that fade over N sec. Applies immediately. |
| Section | Trails | Trails | ||
| Slider | Trails | Trail dot stride | cl_demo_analytics_trail_stride | Draw every Nth sample per slot (1 = densest trail). Applies immediately. |
| Toggle | Trails | Trail connect lines | cl_demo_analytics_trail_lines | Connect consecutive samples of the same slot with a line. Applies immediately. |
| List | Trails | Trail height mode | cl_demo_analytics_trail_height_mode | Trail dot height: entity origin, or near feet level (follows jumps/falls). Applies immediately. [origin / feet] |
| Slider | Trails | Trail feet Z offset | cl_demo_analytics_trail_feet_z | Z offset in feet mode (negative = toward floor, typical -24). Applies immediately. |
| Slider | Trails | Trail hover Z | cl_demo_analytics_trail_hover_z | Extra upward hover so dots don't clip into the floor. Applies immediately. |
| Toggle | Trails | Trail outline | cl_demo_analytics_trail_outline | Draw an outline behind trail dots, lines and HUD event dots. Applies immediately. |
| Slider | Trails | Outline alpha | cl_demo_analytics_trail_outline_alpha | Outline particle opacity (0..1). Applies immediately. |
| Slider | Trails | Outline scale | cl_demo_analytics_trail_outline_scale | Outline size relative to the foreground dot (1.0..3.0). Applies immediately. |
| Section | Legend & colors | Legend & colors | ||
| Toggle | Legend & colors | Show legend | cl_demo_analytics_show_legend | Show the counts + truncation line at the bottom of the HUD panel. Applies immediately. |
| Navigation | Legend & colors | Analytics colors... | q2prox_demoanalytics_colors | Open the analytics color editor (traffic, frag, pickup, trail, outline colors). |
| Section | Actions | Actions | ||
| Navigation | Actions | Rescan current demo | demo_analytics_rescan | Re-run the MVD pre-scan for the currently-playing demo. |
| Navigation | Actions | Print info to console | demo_analytics_info | Print the current analytics state to the console. |
17.4. In-demo item timers
Demo Item Timers
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | World display | World display | ||
| List | World display | Item timers | cl_demo_item_timers_world | Master switch: off / world only (3D ghosts + labels) / strip only (2D icons + countdown) / both. MVD2 only. Applies immediately. [off / world only / strip only / both] |
| Slider | World display | Ghost opacity | cl_demo_item_timers_world_alpha | Opacity of ghost item models and countdown labels. Applies immediately. |
| Slider | World display | Ghost model scale | cl_demo_item_timers_world_scale | Ghost item model size multiplier (0.25..3.0). Applies immediately. |
| Navigation | World display | Items colors... | q2prox_demoitemtimers_colors | Open the per-item timer color editor (adaptive toggle + per-item text/ring colors). |
| Section | Armor | Armor | ||
| Toggle | Armor | Show green armor (jacket) | cl_demo_item_timers_show_armor_green | Track green (jacket) armor respawns. Applies immediately. |
| Toggle | Armor | Show yellow armor (combat) | cl_demo_item_timers_show_armor_yellow | Track yellow (combat) armor respawns. Applies immediately. |
| Toggle | Armor | Show red armor (body) | cl_demo_item_timers_show_armor_red | Track red (body) armor respawns. Applies immediately. |
| Section | Powerups | Powerups | ||
| Toggle | Powerups | Show Quad Damage | cl_demo_item_timers_show_quad | Track Quad Damage respawns. Applies immediately. |
| Toggle | Powerups | Show Invulnerability | cl_demo_item_timers_show_invuln | Track Invulnerability (pent) respawns. Applies immediately. |
| Toggle | Powerups | Show Silencer | cl_demo_item_timers_show_silencer | Track Silencer respawns. Applies immediately. |
| Toggle | Powerups | Show Rebreather | cl_demo_item_timers_show_breather | Track Rebreather respawns. Applies immediately. |
| Toggle | Powerups | Show Environment Suit | cl_demo_item_timers_show_enviro | Track Environment Suit respawns. Applies immediately. |
| Toggle | Powerups | Show Adrenaline | cl_demo_item_timers_show_adrenal | Track Adrenaline respawns. Applies immediately. |
| Toggle | Powerups | Show Mega Health | cl_demo_item_timers_show_megahealth | Track Mega Health respawns. Applies immediately. |
| Toggle | Powerups | Show Power Screen | cl_demo_item_timers_show_power_screen | Track Power Screen respawns. Applies immediately. |
| Toggle | Powerups | Show Power Shield | cl_demo_item_timers_show_power_shield | Track Power Shield respawns. Applies immediately. |
| Section | Weapons | Weapons | ||
| Toggle | Weapons | Show Rocket Launcher | cl_demo_item_timers_show_rl | Track Rocket Launcher respawns (off by default). Applies immediately. |
| Toggle | Weapons | Show BFG10K | cl_demo_item_timers_show_bfg | Track BFG10K respawns (off by default). Applies immediately. |
| Toggle | Weapons | Show Railgun | cl_demo_item_timers_show_rail | Track Railgun respawns (off by default). Applies immediately. |
| Section | Demo-player strip | Demo-player strip | ||
| Slider | Demo-player strip | Strip opacity | cl_demo_item_timers_strip_alpha | Item-timer strip background opacity. Applies immediately. |
| Toggle | Demo-player strip | Strip pillarbox workspace | cl_demo_item_timers_strip_pillarbox_workspace | Let the strip be dragged into the pillarbox / letterbox bars (full window). Applies immediately. |
| Navigation | Demo-player strip | Move strip | demo_item_timers_strip_edit | Drag the strip to any position (Enter/Escape to exit). |
| Navigation | Demo-player strip | Reset strip position | demo_item_timers_strip_reset | Reset the strip position to default. |
| Navigation | Demo-player strip | Print item-timer info | demo_item_timers_info | Print the item-timer cache to the console. |
18. The link to game statistics
The demo browser and game statistics read the same published snapshot of the recording library. The recording folders are walked exactly once per data generation, and every consumer — the browser, the statistics window and the intro personal-fact layer — works by querying that snapshot.
Practical consequences:
Details are in the game statistics and demo auto-statistics guide.
19. Interface settings
The browser and player settings belong to the client's interface and are described in the cvar reference. Visual viewing settings during playback are saved into a separate demo profile — see the visual profile section above and the cvars guide.