Q2PRO-X 1.6 Beta 5 by ly — Q2PRO-X 1.6 Beta 5 Controls, Mouse and Zoom 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 Controls, Mouse and Zoom Guide
Project author: ly
Key bindings, mouse setup, zoom and Russian text input
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.
Crosshair scale clarification in beta 2
2. Main new concept: mouse behavior mode
12. Importing an r1q2 cfg: practical order
15. Movement timing and waiting inside aliases
17. Russian input and translation
Crosshair scale clarification in beta 2
The actual maximum for ch_scale and cl_zoom_ch_scale is 10. Console help, CVar Browser and menu hints agree in both languages; the previous maximum-8 hint was incorrect. The menu step remains 0.1.
Controls, mouse and zoom
This guide helps tune the controls in Q2PRO-X, especially when importing an older Q2PRO, R1Q2 or mixed config.
1. Where to find the menu
| What you are setting | Menu path |
|---|---|
| Controls and weapon view | Main menu → Options → Controls & Weapon View |
| Input setup | Main menu → Options → Controls & Weapon View → Input Setup |
| Key bindings | Main menu → Options → Controls & Weapon View → Key Bindings |
| Weapon bindings | Main menu → Options → Controls & Weapon View → Weapon Bindings |
| Weapon view and hand | Main menu → Options → Controls & Weapon View → Weapon View & Hand |
| Movement basics | Main menu → Options → Controls & Weapon View → Movement Basics |
| Mouse and zoom | Main menu → Options → Controls & Weapon View → Q2PRO-X / Mouse & Zoom |
| Movement and view bob | Main menu → Online Play Setup → Movement |
| Weapon prediction | Main menu → Online Play Setup → Weapon Predicts |
The main controls page
Controls & Weapon View
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Binds | Binds | ||
| Navigation | Binds | Input setup... | g_input | Mouse sensitivity, auto-sens, mouse filter, free look and always-run toggles. |
| Navigation | Binds | Key bindings... | g_keys | Bind keys for movement, attack, weapon switch, inventory, chat and scoreboard. |
| Navigation | Binds | Weapon bindings... | g_weapons | Bind a key to select each weapon directly (blaster … BFG10K, grenades). |
| Section | View & Movement | View & Movement | ||
| Navigation | View & Movement | Weapon view & hand... | g_weapon_view | Hand, view-weapon visibility/opacity/FOV and X/Y/Z position offsets. |
| Navigation | View & Movement | Movement basics... | g_movement_basics | Mouse feel, movement/predict modes, step smoothing and fixed-move timing. |
| Navigation | View & Movement | Mouse & zoom... | q2prox_mouse | Mouse & zoom: sensitivity, mouse feel, FOV, and hold-to-zoom settings. |
Mouse and zoom
Q2PRO-X / Mouse & Zoom
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Field of view | Field of view | ||
| Slider | Field of view | Field of view | fov | fov: horizontal field of view (degrees). 90 = stock Q2 default, 100..110 popular for wide monitors. Server-visible userinfo cvar — affects what the server reports as your FOV. Applies immediately. |
| Slider | Field of view | Movement view bob | cl_viewbob | How much of the walking movement stays in your view: 1.00 = normal, 0.00 = neither the up-and-down bounce nor the tilt when running and strafing. Works on any server, including someone else's. A server that sends no movement effect is left alone. Applies immediately. |
| Section | Mouse | Mouse | ||
| List | Mouse | Mouse behavior | cl_mouse_behavior_mode | Overall mouse feel — Q2PRO default or r1q2 compatibility. Applies immediately. [q2pro / r1q2] |
| Slider | Mouse | Sensitivity | sensitivity | sensitivity: base mouse look sensitivity. Higher = faster turning. Applies immediately. |
| Slider | Mouse | Pitch gain | m_pitch | m_pitch: vertical look gain; a negative value inverts the Y axis. Applies immediately. |
| Slider | Mouse | Yaw gain | m_yaw | m_yaw: horizontal look gain (turn amount per mouse movement). Applies immediately. |
| Slider | Mouse | Mouse accel | m_accel | m_accel: mouse acceleration — faster flicks turn more. No effect in r1q2 mode. Applies immediately. |
| Toggle | Mouse | Mouse filter | m_filter | m_filter: smooth the mouse by averaging with the previous frame (less jitter, slight lag). Applies immediately. |
| Slider | Mouse | Baseline auto-sens FOV | m_autosens | m_autosens: scale non-zoom sensitivity to FOV (Q2PRO mouse path). 0=off; 91..179 set the base FOV. Separate from +zoom. Applies immediately. |
| Toggle | Mouse | Freelook | freelook | freelook: mouse always controls looking, no +mlook hold needed. Applies immediately. |
| Section | Zoom | Zoom | ||
| Slider | Zoom | Zoom FOV | cl_zoom_fov | Horizontal FOV while +zoom is held. Never exceeds your base FOV — zoom-in only. Applies immediately. |
| List | Zoom | Zoom sens mode | cl_zoom_sensitivity_mode | Auto scales sensitivity by FOV ratio (geometrically correct); Manual uses the cvar below. Applies immediately. [auto / manual] |
| Slider | Zoom | Zoom sensitivity | cl_zoom_sensitivity | Sensitivity at full zoom (same units as sensitivity). Manual mode only. Applies immediately. |
| Slider | Zoom | Zoom time | cl_zoom_time | Zoom in/out duration (sec); 0 = instant. FOV and sensitivity share one transition so they never desync. Applies immediately. |
| Toggle | Zoom | Walk while zoomed | cl_zoom_walk | Also hold +speed while +zoom is held (walk while zoomed). Off by default. Applies immediately. |
| Section | Zoom crosshair | Zoom crosshair | ||
| Toggle | Zoom crosshair | Zoom crosshair | cl_zoom_crosshair_enable | Swap to the zoom crosshair below while zoomed; off keeps your normal crosshair. Applies immediately. |
| List | Zoom crosshair | Zoom style | cl_zoom_crosshair | Crosshair shape while zoomed (needs Zoom crosshair on). Applies immediately. [none / cross / dot / angle] |
| Slider | Zoom crosshair | Zoom scale | cl_zoom_ch_scale | Size of the zoom crosshair (0.25..10.0). Applies immediately. |
| Toggle | Zoom crosshair | Zoom color by health | cl_zoom_ch_health | Tint the zoom crosshair by your current health (overrides the RGB below). Applies immediately. |
| Slider | Zoom crosshair | Zoom red | cl_zoom_ch_red | Zoom crosshair red level (ignored if color-by-health is on). Applies immediately. |
| Slider | Zoom crosshair | Zoom green | cl_zoom_ch_green | Zoom crosshair green level (ignored if color-by-health is on). Applies immediately. |
| Slider | Zoom crosshair | Zoom blue | cl_zoom_ch_blue | Zoom crosshair blue level (ignored if color-by-health is on). Applies immediately. |
| Slider | Zoom crosshair | Zoom alpha | cl_zoom_ch_alpha | Opacity of the zoom crosshair (1 = solid). Applies immediately. |
| Section | Bind | Bind | ||
| Key | Bind | Hold: zoom | +zoom | Hold to zoom in to cl_zoom_fov; release to return to your base FOV. |
2. Main new concept: mouse behavior mode
cl_mouse_behavior_mode selects the overall mouse semantics:
This is not just a cosmetic toggle. It affects how older variables are
interpreted and how the mouse feels after importing cfg.
If you start clean with Q2PRO-X:
If you import an old r1q2 cfg:
3. Base mouse cvars
Recommended import order:
1. Choose cl_mouse_behavior_mode.
1. Tune sensitivity.
1. Check m_pitch / m_yaw.
1. Only then touch acceleration, autosens, and zoom.
4. m_autosens
m_autosens is not zoom sensitivity. It is non-zoom FOV-based scaling for
normal view movement.
Values:
If you do not know why you need it, keep it 0. Most players should tune zoom
through the dedicated cl_zoom_* cvars instead.
5. Zoom FOV
Main cvar:
It sets horizontal FOV while +zoom is held. The value is clamped so it never
exceeds the live base FOV: zoom should zoom in, not out.
Bind:
The menu row Hold: zoom lets you bind the key.
6. Zoom sensitivity
Zoom sensitivity has two modes:
Auto
Auto uses a tangent-space FOV ratio. This is the geometrically correct model:
as FOV narrows, sensitivity scales with the changed view angle.
This is the recommended default for most players.
Manual
Manual uses:
This is an absolute sensitivity value in the same units as sensitivity. Use
manual only when you want a specific familiar number.
7. Zoom time
cl_zoom_time sets transition duration in seconds.
FOV and sensitivity share the same transition so they do not desync.
8. Walk while zoomed
cl_zoom_walk holds +speed together with +zoom.
Use it if you want to slow down automatically while zoomed. It coexists with a
normal +speed bind.
Default is off.
9. Zoom crosshair
Separate zoom crosshair:
If the master is off, the normal crosshair remains visible while zoomed.
Practical setup:
10. Movement feel
Related cvars:
If you want an r1q2-like feel, check:
Command:
It prints the resolved movement feel state and helps compare cfg profiles.
11. Binds
Useful actions:
Q2PRO-X binds participate in the scoped config system. Demo-visual defaults
should not reset binds.
12. Importing an r1q2 cfg: practical order
1. Start Q2PRO-X 1.6 Beta 5 without the old cfg and confirm it runs.
1. Copy only the needed binds and mouse values if possible, not the whole old
cfg.
1. Set cl_mouse_behavior_mode r1q2.
1. Check sensitivity, m_pitch, m_yaw.
1. Disable m_accel if the old cfg did not use acceleration.
1. Tune zoom through cl_zoom_*, not old alias hacks.
1. Save with q2prox_cfg_save_global.
13. Common problems
Mouse too fast after import
Vertical axis inverted
Zoom sensitivity feels wrong
cl_zoom_sensitivity.
Bind rows show ???
??? on a bind row means no key is assigned to that action. It is not a
command error. Assign a key in the menu or through bind.
14. Good baseline
For clean Q2PRO-X:
15. Movement timing and waiting inside aliases
| Variable | Accepted values | Description |
|---|---|---|
| cl_fixedmove | 0=native command clock / 1=fixed 10 ms movement command tick | Normalize the movement command clock to 10 ms ticks so input command timing is independent of rendering frame rate. Reduces movement-feel variance on high-fps and variable-fps setups; recommended for consistent strafing. |
| cl_fixedmove_wait_mode | 0=legacy outer-frame wait / 1=fixedmove-aware 10 ms wait for cmd_buffer (default) | Make the gameplay command-buffer wait advance on each 10 ms fixedmove tick instead of once per outer render frame, so movement aliases like double-jump (alias +2j "+moveup; wait; wait; wait; -moveup; wait; wait; wait; +moveup") keep their +moveup / -moveup edges on the 10 ms movement clock regardless of FPS. Default 1 — recommended together with cl_fixedmove (which is already the Q2PRO-X default movement clock). Only takes effect when cl_fixedmove is 1, cl_movement_feel_mode is NOT 1, and the client is in active gameplay; otherwise behaves like the legacy outer-frame wait. Set to 0 only for legacy outer-frame wait timing. |
The fixedmove-aware wait mode is on by default. It makes wait inside aliases closer to the fixed movement ticks and improves double-jump aliases at low frame rates. If the older behaviour is needed, the setting is disabled next to the main fixed-movement switch.
The team overlay bind works again in runtime mod-detection scenarios when the mod supports that overlay. The old bad-FOV disconnect is closed: the client protects a transient or zero field of view during connect and map load.
16. Movement view bob
| Variable | Accepted values | Description |
|---|---|---|
| cl_viewbob | 0..1 (default 1) | How much your view bounces up and down while you walk. 1 = normal, 0 = no bounce at all, values in between are weaker. Works on ANY server, including someone else's, because it takes the bounce out on your own machine. Not a cheat: it removes only what your own footsteps produce, and it reveals nothing. Measured on a remote server, an incoming bounce of 1.75 units comes out at 0.0005. It covers the whole movement effect: the up-and-down bounce in viewoffset, and the tilt that comes with running and strafing, which arrives separately inside kick_angles. Weapon recoil, damage kicks and landing kicks are never touched - those tell you something. On a server that sends no movement effect this setting does nothing, and says so in cl_viewbob_info. The diagnostic override cl_viewsway can force the tilt half on its own; it follows this setting by default. |
This setting weakens or completely removes the camera movement caused by walking: the vertical step bounce and the tilt when running and strafing. It works on every server, including someone else's, and needs no support from it. A server that sends no movement effect is left alone.
Weapon recoil, the kick from damage and landings are preserved deliberately: they are not the same thing as walking bob.
The cl_viewbob_info command shows the actually measured vertical and tilt channels.
The setting lives here: Main menu → Online Play Setup → Movement
Movement
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Movement modes | Movement modes | ||
| List | Movement modes | Mouse behavior | cl_mouse_behavior_mode | Overall mouse feel. Q2PRO = default. R1q2 = compatibility (backend from m_directinput: 0 legacy, 1/2 DI-like relative). [q2pro / r1q2] |
| List | Movement modes | Movement feel | cl_movement_feel_mode | Movement feel. Like r1q2 = classic standstill-start and jump; Q2PRO = modern feel. [q2pro / r1q2-like] |
| List | Movement modes | Client predict | cl_predict_move_mode | Client-prediction backend: Modern (new Q2PRO/Q2PRO-X) or Legacy (q2pro-m / q2pro r1826). [modern (new q2pro/Q2PRO-X) / legacy (q2pro-m/q2pro r1826)] |
| List | Movement modes | Step smoothing | cl_step_smoothing_mode | Local stair-step smoothing feel: Q2PRO or one of three R1q2 variants. [q2pro / r1q2-1 / r1q2-2 / r1q2-3] |
| Section | Fixed move | Fixed move | ||
| Toggle | Fixed move | Fixed move | cl_fixedmove | Normalize movement commands to a fixed 10 ms clock. |
| Toggle | Fixed move | Fixedmove debug | cl_fixedmove_debug | Print the finalized fixedmove command timing to console. |
| Toggle | Fixed move | Fixedmove-aware wait | cl_fixedmove_wait_mode | Gameplay wait aliases advance on fixedmove's 10 ms movement ticks instead of render frames. Recommended with fixedmove; turn off only for legacy script timing. Default ON. |
| Toggle | Fixed move | Fixedmove wait debug | cl_fixedmove_wait_debug | Per-sub-cmd diagnostics for the fixedmove-aware wait path (wait count, queue size, drain flag, upmove). Level 1 = only interesting sub-cmds, 2 = verbose. |
| Section | Player predict | Player predict | ||
| List | Player predict | Predict player | cl_predict_player | Player prediction: Off, On (local jump/fall) or Debug. When cl_predict_ping_min_ms > 0 it is also gated by the shared adaptive ping gate. [off / on / debug] |
| Section | Service | Service | ||
| Navigation | Service | Movement feel info... | movementfeel_info | Print the resolved movement-feel state and the backend applied. |
| Section | Movement camera | Movement camera | ||
| Slider | Movement camera | Movement view bob | cl_viewbob | How much of the walking movement stays in your view: 1.00 = normal, 0.00 = neither the up-and-down bounce nor the tilt when running and strafing. Works on any server, including someone else's. A server that sends no movement effect is left alone. Applies immediately. |
17. Russian input and translation
Q2PRO-X solves two separate input problems:
1. Safe Russian input and transliteration for the Quake II console and chat.
2. A separate translation command that converts Russian text into English before it is sent to chat.
The interface language is set by one shared setting:
| Variable | Accepted values | Description |
|---|---|---|
| cl_console_utf8_ru | -1=auto (default — on for Russian Windows) / 0=off / English / 1=on / Russian | Q2PRO-X Russian display-localization baseline (tri-state). -1 (auto, default) turns ON automatically when Windows UI language is Russian and OFF otherwise. 0 forces English / legacy behavior regardless of OS locale. 1 forces Russian display. When effectively on: the console and menu draw paths dispatch per-byte — ASCII keeps rendering through stock conchars 1:1 (classic look preserved) while UTF-8 Cyrillic / CP1251-mappable codepoints are routed through the supplementary q2prox_console_font atlas, so Russian console output and Russian device / status text become readable without sacrificing ASCII-log readability; Q2PRO-X menu bottom status/help lines prefer Russian translations when present; console inline /cvarname help prefers Russian desc_ru / values_ru metadata when the entry carries a translation. Display-only — this does NOT enable Russian console input, Unicode editing, or any command parser change. Invalid high-byte legacy content is not force-decoded. |
The complete list of quick commands and their Russian aliases is in the cvar and command reference.
18. Key bindings
Key Bindings
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Combat | Combat | ||
| Key | Combat | Attack | +attack | +attack: fire the currently selected weapon. |
| Key | Combat | Next weapon | weapnext | weapnext: switch to the next weapon. |
| Key | Combat | Previous weapon | weapprev | weapprev: switch to the previous weapon. |
| Section | Movement | Movement | ||
| Key | Movement | Walk forward | +forward | +forward: move forward. |
| Key | Movement | Backpedal | +back | +back: move backward. |
| Key | Movement | Run | +speed | +speed: hold to run (or to walk if Always run is on). |
| Key | Movement | Step left | +moveleft | +moveleft: strafe left (sidestep). |
| Key | Movement | Step right | +moveright | +moveright: strafe right (sidestep). |
| Key | Movement | Up / jump | +moveup | +moveup: jump / swim up. |
| Key | Movement | Down / crouch | +movedown | +movedown: crouch / swim down. |
| Section | Inventory | Inventory | ||
| Key | Inventory | Inventory | inven | inven: open or close the inventory. |
| Key | Inventory | Use item | invuse | invuse: use the highlighted inventory item. |
| Key | Inventory | Drop item | invdrop | invdrop: drop the highlighted inventory item. |
| Key | Inventory | Prev item | invprev | invprev: highlight the previous inventory item. |
| Key | Inventory | Next item | invnext | invnext: highlight the next inventory item. |
| Section | Interface | Interface | ||
| Key | Interface | Help computer | help | help: open the help computer / objectives screen. |
| Key | Interface | Pause game | pause | pause: pause the game (single player). |
| Key | Interface | Scoreboard | score | score: show the scoreboard. |
| Key | Interface | Chat | messagemode | messagemode: open the chat prompt to type a message. |
| Navigation | Interface | Legacy keys... | g_legacykeys | Legacy binds: keyboard turn/strafe, look up/down, center view, mouse/keyboard look. |
Separate pages own the weapon bindings and the weapon view:
Weapon Bindings
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Guns | Guns | ||
| Key | Guns | Blaster | use Blaster | Select the Blaster (use Blaster). |
| Key | Guns | Shotgun | use Shotgun | Select the Shotgun (use Shotgun). |
| Key | Guns | Super shotgun | use Super Shotgun | Select the Super Shotgun (use Super Shotgun). |
| Key | Guns | Machinegun | use Machinegun | Select the Machinegun (use Machinegun). |
| Key | Guns | Chaingun | use Chaingun | Select the Chaingun (use Chaingun). |
| Section | Explosive | Explosive | ||
| Key | Explosive | Grenade launcher | use Grenade Launcher | Select the Grenade Launcher (use Grenade Launcher). |
| Key | Explosive | Rocket launcher | use Rocket Launcher | Select the Rocket Launcher (use Rocket Launcher). |
| Section | Energy | Energy | ||
| Key | Energy | Hyperblaster | use HyperBlaster | Select the HyperBlaster (use HyperBlaster). |
| Key | Energy | Railgun | use Railgun | Select the Railgun (use Railgun). |
| Key | Energy | Bfg10k | use BFG10K | Select the BFG10K (use BFG10K). |
| Section | Grenades | Grenades | ||
| Key | Grenades | Grenades | use Grenades | Select hand grenades (use Grenades). |
Weapon View & Hand
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| List | Hand | hand | hand: which side you hold weapons — right/left/center. Server-visible; affects the projectile spawn side. Applies immediately. [right / left / center] | |
| List | View weapon | cl_gun | cl_gun: show your first-person weapon model — off, normal, or centered. Applies immediately. [off / on / centered] | |
| Slider | View weapon alpha | cl_gunalpha | cl_gunalpha: opacity of your view weapon (1 = solid, lower = see-through). Applies immediately. | |
| Slider | View weapon FOV | cl_gunfov | cl_gunfov: FOV used to draw the view weapon (90 = default; higher pushes it back). Applies immediately. | |
| Slider | View weapon X | cl_gun_x | Move the view weapon left/right. Applies immediately. | |
| Slider | View weapon Y | cl_gun_y | Move the view weapon forward/back. Applies immediately. | |
| Slider | View weapon Z | cl_gun_z | Move the view weapon up/down. Applies immediately. |