Q2PRO-X 1.6 Beta 5 by ly — Q2PRO-X 1.6 Beta 5 Network Play 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 Network Play Guide
Project author: ly
Connecting, the server browser, prediction, LagHax and Ping Adaptation
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: weapon prediction fixes
The single online-play setup page
3. Advanced Network: client UDP port autoprobe
5. Weapon Predicts and Player Predict
8. Visibility Highlights in live play
11. Russian input, transliteration, and /en translation
12.5. When adaptation stays out of the way
12.6. How often the target is recomputed
12.8. Returning to ordinary play
12.9. How it relates to the other systems
12.10. Mod and server boundaries
12.11. The complete setting list
13. Advanced network and the port scanner
15. Mod-dependent settings and skin override
Beta4: weapon prediction fixes
Predicted and server-confirmed rocket/hyperblaster impacts no longer produce duplicate audio, including server-first arrival. Rocket/rail sound sequences and stale projectile-to-server-entity bindings that could hide later flight visuals were fixed. Damage and confirmed hits remain server-authoritative. Optional rocketdiag start|mark|stop diagnostics are disabled by default and unnecessary for normal play.
Server history in beta 2
The modern browser now has History immediately after Favorites. It is shared across mods and stores address, time and mod in baseq2/q2pro-x/reconnect_history.json. The default is 10 unique servers; the range is 0–100, with 0 disabling history. Rejoining the already latest server does not change its record.
After a fresh launch, reconnect can use the last stored server. Optional automatic connection is off by default: it applies after remote online play, skips the intro/menu and yields to explicit startup commands. Single-player, a locally hosted server and demo playback retain normal startup.
| Variable | Accepted values | Description |
|---|---|---|
| cl_reconnect_history_limit | 0=disabled and cleared / 1=last server only / 2..100=MRU history (default 10) | Global across all mods: maximum number of unique successfully played remote servers retained for manual reconnect and the History browser tab. Changing it applies immediately. 0 clears and disables disk history; 1 keeps only the last server; 10 is the default; 100 is the hard maximum. |
| cl_reconnect_last_server_auto | 0=normal startup (default) / 1=auto-connect eligible last remote server | On an otherwise idle cold start, automatically connect to the newest successfully played remote server only when the previous play context was remote multiplayer. Default off. Any explicit +map, +connect, demo, URL or alias startup action takes priority. |
Q2PRO-X network play
This guide covers everything that belongs to online play: connecting and the server browser, the advanced network settings, Ping Adaptation, LagHax, player and weapon prediction, weapon-part visibility, volumes and highlights.
| Connection diagnosis — what is wrong, what to do about it and how to verify the result — has a guide of its own: Network God. Start there if the game feels bad and you do not know why. |
|---|
1. Where to find the settings
| What you are setting | Menu path |
|---|---|
| Online play setup (the single entry point) | Main menu → Online Play Setup |
| Network God | Main menu → Online Play Setup → Network God |
| Ping Adaptation | Main menu → Online Play Setup → Ping Adaptation |
| LagHax | Main menu → Online Play Setup → Laghax |
| Advanced network and the port scanner | Main menu → Online Play Setup → Advanced Network |
| Movement and view bob | Main menu → Online Play Setup → Movement |
| Weapon prediction | Main menu → Online Play Setup → Weapon Predicts |
| Weapon-part visibility | Main menu → Options → Advanced Q2PRO-X → Weapon Parts Visibility |
| Server browser | Main menu → Options → Advanced Q2PRO-X → Server Browser |
| Item timers | Main menu → Online Play Setup → Live Item Timers |
| Mod command overlay | Main menu → Online Play Setup → Mod Command Overlay |
The single online-play setup page
Online Play Setup
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Network & Predict | Network & Predict | ||
| Navigation | Network & Predict | Q2PRO-X Network God... | q2prox_network_god | One place for the whole network: what is wrong, what to do about it, protection, reports and every network module. |
| Navigation | Network & Predict | Laghax... | q2prox_laghax | Adaptive prediction-error smoothing (laghax), HUD, weights. |
| Navigation | Network & Predict | Ping adaptation... | q2prox_ping_adaptation | Hold an absolute target ping, manually or following the opposing players. |
| Navigation | Network & Predict | Network & port scanner... | q2prox_advanced_network | Bandwidth, packet rates and the client UDP port scanner. The scanner briefly owns the connection while it runs, and ping adaptation stands down for its duration. |
| Navigation | Network & Predict | Movement & player... | q2prox_movement | FPS-independent movement timing + local player prediction. |
| Slider | Network & Predict | 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. |
| Navigation | Network & Predict | Weapon predicts... | q2prox_predict | Weapon predict toggles (ghost rockets, rail, shotgun, HB, etc.). |
| Section | Visibility & Sound | Visibility & Sound | ||
| Navigation | Visibility & Sound | Visibility & highlights... | q2prox_vis | Item / player highlighting for readability. |
| Navigation | Visibility & Sound | Item respawn timers... | q2prox_live_item_timers | Live respawn timers for strategic items: manual + own-pickup countdowns on a HUD strip. |
| Navigation | Visibility & Sound | Sound... | g_sound | OpenAL profile, HRTF, reverb, weapon / player volumes. |
| Navigation | Visibility & Sound | Frag messages... | q2prox_fragfeed | Highlight your opponent in confirmed frag messages; optional kill and death HUD notifications. |
| Section | Player & Files | Player & Files | ||
| Navigation | Player & Files | Skins & models... | g_skins | Player identity, both player-setup pages, skin restrictions, local per-mod overrides, model settings and downloads. |
| Navigation | Player & Files | Downloads... | g_downloads | Per-type download permissions (maps, skins, models, sounds) and HTTP downloads. |
| Navigation | Player & Files | Mod config profiles... | q2prox_modcfg | Choose per-mod config profiles. A profile changes the live controls and settings without overwriting Q2PRO-X managed configs. |
| Navigation | Player & Files | Mod command overlay... | q2prox_modhelp | Mod command overlay (OpenTDM/OpenFFA). |
| Navigation | Player & Files | Demos | demos | Built-in demo browser: pick and play back recorded .dm2/.mvd2 demo files. |
2. Server Browser
The modern server browser is an overlay for finding and joining servers.
Main settings:
Sources:
Practical baseline:
3. Advanced Network: client UDP port autoprobe
Some routes/providers/servers can behave differently depending on the
client's UDP source port. Q2PRO-X 1.6 Beta 5 includes an experimental client-port
autoprobe.
Main cvar:
cl_net_clientport_autoprobe
Modes:
Related cvars:
RTT mode
RTT mode opens independent probe sockets, sends challenges, and selects the
candidate by reply RTT. It is fast and safe, but its metric is not identical
to the gameplay ping shown in the HUD.
XQ3A mode
XQ3A mode is intentionally intrusive: during an active session, the socket may
rebind up to 20 times. While the scan runs, the player can feel jitter. Treat
it as a diagnostic tool, not a default for every match.
Recommendation:
4. Laghax
cl_laghax controls network-feel smoothing.
Modes:
Related settings:
Laghax does not move the server closer and does not change server authority.
It changes local presentation of networked movement so some micro-jitter feels
smoother.
For testing, enable the HUD, use adaptive mode, play for a few minutes, and
compare against off. If it feels too soft, lower the window/weights or use
fixed/off.
5. Weapon Predicts and Player Predict
Weapon predict draws part of the local firing feedback before server
confirmation arrives. This matters on high ping: you press fire, and the
client immediately shows local feedback.
Master:
Per-weapon toggles:
Player predict:
Adaptive ping gate:
When cl_predict_ping_min_ms is above 0, predicts are gated by ping and
dwell time. This avoids keeping the extra predicted layer active on low ping
where it may be unnecessary.
6. Weapon Parts Visibility
This page controls visibility of weapon FX parts, separately from prediction.
Master:
Groups:
This is useful when you want gameplay feedback but less visual noise, for
example disabling explosion particles while keeping hit markers.
Command:
7. OpenTDM Team HUD
OpenTDM Team HUD is a passive teammate-state HUD for OpenTDM. It does not
require teammates to run active commands: the client decodes already-visible
information and presents it in a separate HUD.
Main settings:
Position can be edited through drag mode:
8. Visibility Highlights in live play
For online play, the important player highlight modes are:
Related cvars:
For TDM, start with team, friendly cyan, enemy red. For duel, use duel.
For FFA, use random FFA or model.
9. Weapon and player volumes
The sound volumes page lets you tune groups independently:
For network play this matters as much as graphics: explosions that are too
loud can hide footsteps, and pickups that are too quiet hurt map control.
Detailed sound theory is in:
Q2PRO-X_1.6_Sound_Guide_EN.docx
10. Practical profiles
Clean competitive baseline
High ping test
low ping;
Problem route diagnostics
not during an important match.
11. Russian input, transliteration, and /en translation
Q2PRO-X 1.6 Beta 5 covers two separate chat problems: safe Russian input/transliteration for Quake II console/chat, and a separate /en command that translates Russian text to English before you send it.
| Setting / command | Meaning |
|---|---|
| cl_console_utf8_ru | Russian display localization. It affects UI/hints rendering, but it is not the Russian-input switch. |
| cl_translit_x_style 0 | Transliterate Russian х as kh. Default. |
| cl_translit_x_style 1 | Transliterate Russian х as h if that style is preferred. |
| /en <text> | Asynchronously translates Russian text to English through the active provider and replaces the current prompt. You still press Enter manually. |
| /en -team <text> | Same workflow, prepared for team chat. |
| translate_status | Prints provider, URL, timeout, and key availability. |
| translate_reload | Reloads the local translation secret/config file. |
Practical workflow
1. Type /en привет, идём на railgun.
1. Wait for the prompt to be replaced with the English result.
1. Review the text and press Enter if you want to send it.
1. For team chat, use /en -team ... or your usual say_team workflow if it is already in the prompt.
Troubleshooting
12. Ping Adaptation
12.1. Why it exists
Ping Adaptation deliberately adds delay to outgoing game data so that your final ping stays near a chosen value.
It exists for exactly two things:
| It does not reduce ping. The value sets the final ping, not the addition. With a real 10 ms and a target of 30 ms, about 20 ms is added; if the real ping is already above the target, nothing is added. |
|---|
The layer creates no packet loss and is compatible with LagHax, prediction, fixed movement and the existing movement-feel modes.
12.2. Where it lives
Menu path: Main menu → Online Play Setup → Ping Adaptation
Ping Adaptation
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Mode | Mode | ||
| List | Mode | Adaptation mode | cl_ping_adapt_mode | Hold an absolute target ping. Off adds nothing. Manual holds your own target; Automatic takes it from the source below. The value is the FINAL ping, not an addition: real 10 with a target of 30 adds about 20, and a real ping already above the target adds nothing. Applies immediately. [Off / Manual / Automatic] |
| List | Mode | Automatic source | cl_ping_adapt_auto_source | Where Automatic takes its target: a configured range, or the active opposing players (OpenTDM: the other team; OpenFFA: the other active players). Spectators and you are always excluded. Applies immediately. [Range / Players] |
| Section | Manual | Manual | ||
| Slider | Manual | Target ping | cl_ping_adapt_manual_ms | Absolute target ping for Manual mode. A target below your real ping simply adds nothing. Applies immediately. |
| Section | Automatic range | Automatic range | ||
| Slider | Automatic range | Minimum | cl_ping_adapt_range_min_ms | Lower bound of the band. Adaptation runs only while your real ping is below this value; one target is then chosen inside the band and held stable. Applies immediately. |
| Slider | Automatic range | Maximum | cl_ping_adapt_range_max_ms | Upper bound of the band. Both bounds are additionally limited by the maximum final ping below. Applies immediately. |
| Section | Players | Players | ||
| Slider | Players | Check interval | cl_ping_adapt_check_interval_ms | How often the target and the opposing roster are recomputed. Server requests are combined and never sent more than once per second. Applies immediately. |
| Slider | Players | Offset | cl_ping_adapt_offset_ms | Signed offset from the opponents' ping. Target = opponent ping + offset. Example: opponent 40 with offset -10 gives a target of 30. Applies immediately. |
| Slider | Players | Minimum difference | cl_ping_adapt_min_difference_ms | Adaptation starts only when your real ping is below the opponents' ping by at least this much. Example: opponent 40 and 15 here leaves a real ping of 30 alone. Applies immediately. |
| Slider | Players | Maximum final ping | cl_ping_adapt_max_ms | Hard ceiling for the final target in Automatic mode. Applies to both automatic sources and never to Manual. Applies immediately. |
| Section | Service | Service | ||
| Toggle | Service | Event log | cl_ping_adapt_debug | Log adaptation events to the console: mode changes, target changes, roster updates. Never prints per packet. Applies immediately. |
| Navigation | Service | Print information | ping_adapt_info | Print the full current state: real and adapted ping, target, added delay, opposing players and queue. |
| Navigation | Service | Reset controller | ping_adapt_reset | Restart measurement and roster tracking without changing any setting. Packets already waiting are sent in order first. |
12.3. Three modes
| Mode | What it does |
|---|---|
| Off | Nothing is added; this is the default |
| Manual | Holds your own target |
| Automatic | Takes the target from the selected source |
12.4. Two automatic sources
Range. You set a lower and an upper bound. Adaptation works only while the real ping is below the lower bound; one target is then chosen inside the band and held steadily.
Players. The target is taken from the active opponents:
The target is computed as "the opponent's ping plus the offset". The offset is signed: with an opponent at 40 ms and an offset of −10 ms, the target is 30 ms.
12.5. When adaptation stays out of the way
The Minimum difference setting protects you from needless intervention: adaptation engages only when your real ping is lower than the opponents' by at least that much. With an opponent at 40 ms and a minimum difference of 15 ms, your real ping of 30 ms is left as it is.
Maximum final ping is a hard ceiling on the target in automatic mode. It applies to both automatic sources and never to manual mode: you set a manual target yourself and you own it.
12.6. How often the target is recomputed
The check interval decides how often the target and the opponent roster are recomputed. Requests to the server are coalesced and never sent more than once per second: adaptation does not create a storm of queries.
12.7. Observing and verifying
| Command | What it shows |
|---|---|
| ping_adapt_info | The complete current state: the real and adapted ping, the target, the added delay, the opponents and the queue |
| ping_adapt_reset | Restarts the measurement and roster tracking without changing settings; packets already queued are sent in order first |
A separate switch logs adaptation events to the console — mode changes, target changes, roster updates — and never prints per packet:
| Variable | Accepted values | Description |
|---|---|---|
| cl_ping_adapt_debug | 0=off (default) / 1=log ping adaptation events to console | Event-based diagnostic logging for Ping adaptation: mode transitions, target changes, roster invalidations, capacity fail-open and connection-generation resets. Never prints per packet. 0 = off (default) and costs nothing; the full current state is always available on demand through the ping_adapt_info command. |
12.8. Returning to ordinary play
Returning is simply switching the mode off. No rollback of settings is needed: adaptation changes none of your other network parameters, it only delays sending. Once it is off, no delay is added any more.
Changing servers restarts the measurement and roster tracking: a decision from the previous server is never carried over to the next one.
12.9. How it relates to the other systems
| System | How it relates |
|---|---|
| Network God | Shows and accounts for adaptation, but never enables it, changes its target or adjusts its mode |
| LagHax | Works independently; adaptation neither cancels nor replaces it |
| Prediction | Works independently; the server remains authoritative |
| Jitter Shield | A different job: it smooths the display of other players rather than delaying your sending |
| Network Lab | Also spoils the network deliberately, but for practice and tests; the two never delay the same packet twice |
In the Network God overview the real ping stays a separate figure, the added delay is shown separately, and the final ping reflects the sum the client works with.
12.10. Mod and server boundaries
The Players source relies on the server and the mod actually reporting the roster and the participants' pings. Team and free-for-all play are recognised from the mod's data. If a mod does not supply enough information, the Players source simply cannot name a target — use the Range source or manual mode in that case.
Adaptation is entirely client-side: it changes no protocol, requires no server support and affects no other player.
12.11. The complete setting list
| Variable | Accepted values | Description |
|---|---|---|
| cl_ping_adapt_mode | 0=off (default) / 1=manual / 2=automatic | Ping adaptation master. 0 = off (default): no send adapter, no queue, no probes, no roster scans and no added latency at all. 1 = Manual: hold an absolute target ping of cl_ping_adapt_manual_ms. 2 = Automatic: pick the target from cl_ping_adapt_auto_source (a configured range, or the active opposing players on OpenTDM / OpenFFA). The target is ABSOLUTE, never added on top of your real ping: with a real 10 ms and a target of 30 the client injects about 20 ms, and if your real ping is already 40 nothing is added. Latency is produced by FIFO-delaying complete outgoing datagrams, so no packet is dropped, reordered or rewritten. |
| cl_ping_adapt_auto_source | 0=range (default) / 1=players | Where Automatic mode gets its target. 0 = Range: if your real ping is below cl_ping_adapt_range_min_ms, one target is chosen at random inside the configured band and then held stable for the whole session — it is not rerolled per packet or per evaluation. 1 = Players: follow the active opposing roster (OpenTDM: the other team, one player in duel and the mean in TDM; OpenFFA: the mean of all other active players). Spectators and you are always excluded. Range works on any mod; Players needs an exact roster adapter and otherwise adds nothing. |
| cl_ping_adapt_manual_ms | 0 .. 1000 ms, default 30 | Absolute target ping for Manual mode, in milliseconds. The client injects max(0, target - real RTT); it can never make a link faster, so a target below your real ping simply adds nothing and the state reads baseline limited. The automatic cap cl_ping_adapt_max_ms deliberately does NOT apply here — a manual target is your explicit instruction. |
| cl_ping_adapt_range_min_ms | 0 .. 1000 ms, default 20 | Lower bound of the Automatic/Range band, in milliseconds. Range adapts only while your real ping is BELOW this value; at or above it nothing is added, because latency cannot be removed. If minimum and maximum are entered reversed they are normalized (swapped) deterministically and ping_adapt_info shows the effective pair. |
| cl_ping_adapt_range_max_ms | 0 .. 1000 ms, default 30 | Upper bound of the Automatic/Range band, in milliseconds. Both bounds are additionally capped by cl_ping_adapt_max_ms; if that cap is below the configured minimum, the effective choice collapses to the cap. |
| cl_ping_adapt_check_interval_ms | 250 .. 10000 ms, default 1000 | How often Automatic mode recomputes its target and refreshes the opposing roster, in milliseconds. Server status probes are coalesced and never sent faster than once per second, so a shorter interval simply reuses the newest sample instead of adding traffic. Peer pings older than max(5000, 3 x interval) are treated as stale and adaptation falls back to zero added delay. |
| cl_ping_adapt_offset_ms | -200 .. 200 ms, default 0 | Signed offset applied to the opposing players' reference ping in Automatic/Players mode: the target is (opponent ping + offset), then capped by cl_ping_adapt_max_ms. Negative values aim below the opponent, positive values above. Example: opponent 40, offset -10 gives a target of 30. |
| cl_ping_adapt_min_difference_ms | 0 .. 500 ms, default 15 | Minimum gap that must exist between your real ping and the opposing reference ping before Automatic/Players adapts at all. Adaptation runs only while real < (opponent - this value); otherwise nothing is added. Example: opponent 40 and a minimum difference of 15 means a real ping of 30 is left alone, while a real ping of 10 is adapted. |
| cl_ping_adapt_max_ms | 1 .. 1000 ms, default 200 | Hard ceiling on the final target ping in Automatic mode, in milliseconds. It applies to both automatic sources (Range and Players) and never to Manual. If the computed target exceeds it the target is clamped and ping_adapt_info reports it as capped. |
13. Advanced network and the port scanner
Advanced Network
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Bandwidth | Bandwidth | ||
| Slider | Bandwidth | Bandwidth rate | rate | rate: bandwidth your client requests from the server, bytes/sec. Server may cap it. Typical modern broadband: 25000..100000. Server-visible userinfo cvar. Applies immediately. |
| Slider | Bandwidth | Message size | msg | msg: server message size hint. 0 = small, 1 = normal (default), 2 = large. Some servers reject high values. Applies immediately. |
| Section | Framerate | Framerate | ||
| Slider | Framerate | Client FPS limit | cl_maxfps | cl_maxfps: client framerate cap. 0 = uncapped. The renderer can still produce more frames if cl_async 1 is set. Applies immediately. |
| Slider | Framerate | Renderer FPS limit | r_maxfps | r_maxfps: renderer-only framerate cap. Applies when cl_async 1; otherwise cl_maxfps is the gate. Applies immediately. |
| Section | Recent servers | Recent servers | ||
| Toggle | Recent servers | Auto-connect last server | cl_reconnect_last_server_auto | Automatically connect to the newest successfully played remote server on an otherwise idle cold start. Disabled by default; explicit +map, +connect, demo, URL or alias startup always wins. Applies immediately. |
| Slider | Recent servers | Recent server history | cl_reconnect_history_limit | Number of unique successfully played remote servers retained globally across all mods: 0 disables and clears history, 1 keeps only the last server, the default is 10, and 100 is the maximum. Applies immediately. |
| Navigation | Recent servers | Reconnect now | reconnect | Reconnect to the current process endpoint, or to the newest successfully played remote server when this is a fresh process. |
| Section | Packets & sync | Packets & sync | ||
| Slider | Packets & sync | Client packets / sec | cl_maxpackets | cl_maxpackets: max user-command packets per second sent to the server (10..125). Higher = more responsive but more upload bandwidth. Applies immediately. |
| Slider | Packets & sync | Server updates / sec | cl_updaterate | cl_updaterate: requested server updates per second (10..30 typical). Some servers cap it. Applies immediately. |
| List | Packets & sync | Async mode | cl_async | cl_async: 0 = synchronous client/render loop; 1 = asynchronous render loop (default). 2 = Asynchronous render loop with GPU sync fence where supported. Applies immediately. [Sync / Async / Async + GPU sync] |
| Toggle | Packets & sync | Instant packet | cl_instantpacket | cl_instantpacket: send a usercmd packet immediately after a button press instead of waiting for the next tick. Reduces input latency by up to one packet interval. Applies immediately. |
| Section | UDP port autoprobe | UDP port autoprobe | ||
| List | UDP port autoprobe | Auto-select client UDP port | cl_net_clientport_autoprobe | Auto-select the client UDP port: off, RTT (fast pre-connect challenge-RTT probe), or Full scan (live-session scan over 20 candidate ports). Applies immediately. [off / RTT / Full scan] |
| Slider | UDP port autoprobe | Auto-port safety watchdog | cl_net_clientport_autoprobe_time | Safety watchdog (0.1..180 s) that aborts probing if it runs too long. RTT finishes early; a full-scan run wants 60..180 s, below ~30 s warns. Applies immediately. |
| Slider | UDP port autoprobe | RTT candidate count | cl_net_clientport_autoprobe_ports | RTT candidate port count (2..60). Does not apply to Full scan (fixed 20 slots). Wider sweeps don't slow RTT. Default 6. Applies immediately. |
| Toggle | UDP port autoprobe | Full-scan indicator | cl_net_clientport_autoprobe_indicator | Show a blinking AUTO-PORT SCAN indicator while the full scan runs (no effect on RTT). Applies immediately. |
| Toggle | UDP port autoprobe | Autoport console log | cl_net_clientport_autoprobe_verbose | Print autoport progress to the console (slot switches, samples, winner, abort). Off = runs silently. Applies immediately. |
| Slider | UDP port autoprobe | Full-scan pre-scan grace | cl_net_clientport_autoprobe_settle_ms | Optional grace window (0..10000 ms) before the full scan applies its first slot. Raise only on slow-precache mods. Counts inside the watchdog. Applies immediately. |
The scanner briefly owns the connection while it runs, and Ping Adaptation stands down for its duration. That is deliberate: two mechanisms must not govern sending at the same time.
14. The server browser
Server Browser
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Mode & scale | Mode & scale | ||
| List | Mode & scale | Browser mode | cl_serverbrowser_ui | Server browser style: classic (legacy menu) or modern (overlay). Applies immediately. [legacy / modern] |
| Slider | Mode & scale | Opacity | cl_serverbrowser_alpha | Opacity of the modern server browser overlay background. Applies immediately. |
| Slider | Mode & scale | Text scale | cl_serverbrowser_scale | Font / UI scale of the browser overlay; match to display DPI. 1.0 default. Applies immediately. |
| Section | View & layout | View & layout | ||
| Toggle | View & layout | Compact mode | cl_serverbrowser_compact | Compact row layout so more servers fit on screen at once. Applies immediately. |
| Toggle | View & layout | Fullscreen | cl_serverbrowser_fullscreen | Expand the browser to full screen instead of the centred window. Applies immediately. |
| Toggle | View & layout | Pillarbox free area | cl_serverbrowser_pillarbox_workspace | Allow dragging the browser into the pillarbox side bars (aspect-fit free area). Applies immediately. |
| Toggle | View & layout | Show details | cl_serverbrowser_show_details | Show the right-side detail panel (player list, rules, mod info); off = list only. Applies immediately. |
| Toggle | View & layout | Show badges | cl_serverbrowser_show_badges | Show game-mode / mod badges next to each server (CTF, DM, OpenTDM...). Applies immediately. |
| Toggle | View & layout | Row colors | cl_serverbrowser_row_colors | Zebra-stripe alternate row colors for easier scanning of long lists. Applies immediately. |
| Section | Filters | Filters | ||
| Toggle | Filters | Hide empty | cl_serverbrowser_hide_empty | Hide servers with zero human players (bots don't count). Applies immediately. |
| Toggle | Filters | Hide full | cl_serverbrowser_hide_full | Hide servers that are at capacity (players >= max slots). Applies immediately. |
| Toggle | Filters | Only with players | cl_serverbrowser_only_players | Show only servers with at least one human player (hides empty and bot-only). Applies immediately. |
| Slider | Filters | Max ping | cl_serverbrowser_max_ping | Hide servers whose ping exceeds this many ms. 0 = no limit. Applies immediately. |
| Toggle | Filters | Show passworded | cl_serverbrowser_show_passworded | Show password-protected servers (you can still join if you know the password). Applies immediately. |
| Toggle | Filters | Show down | cl_serverbrowser_show_down | Show unreachable / down servers greyed out instead of hiding them. Applies immediately. |
| Section | Sources | Sources | ||
| List | Sources | Default source | cl_serverbrowser_default_source | Source tab opened by default: q2servers.com, Favorites, LAN, or Custom. Applies immediately. [q2servers.com / favorites / LAN / custom] |
| Field | Sources | Custom source | cl_serverbrowser_custom_source | URL for the Custom source tab (supports composite favorites:// file:// broadcast:// syntax). |
| Section | Service | Service | ||
| Navigation | Service | Open server browser... | serverbrowser_open_modern | Open the modern server browser overlay. |
| Navigation | Service | Open legacy browser... | serverbrowser_open_legacy | Open the classic (legacy) server browser menu. |
| Key | Service | Toggle key | serverbrowser_toggle | Bind a key that opens/closes the server browser overlay. |
Favourite servers are global across all mods. Scanning shows live tabs and stops with the same button that starts it. The selected tab is remembered between launches.
15. Mod-dependent settings and skin override
Personal frag messages
Open Frag Messages in Network Play settings. All controls in this section are global (G). They change only your client, not your nickname colour on other players' clients. Opponent-name highlighting in the console is enabled by default. Personal kill and death notifications beneath the crosshair are off by default and enabled independently. Select a named palette colour for the opponent: it matches in the console and notification. Other text has a separate colour. Chat formatting is unaffected.
Messages use the console font with a bold nickname; Russian and English text have matching proportions. Kill notices fade away, while the killer's name remains until actual respawn. A weapon is shown only when the server message identifies it reliably. At most three lines are displayed together.
Adjust position, scale, kill-display time, line count, text colour and background opacity. fragfeed_preview previews the look without a gameplay event; fragfeed_reset restores this section's factory values. Known Quake II, OpenFFA, OpenTDM and OpenTDM-X message formats are supported. Other players' events while spectating or watching demos are not attributed to you. Ambiguous messages do not become invented personal kills.
Frag Messages settings in English.
Example notification and highlighted opponent name in the console.
The screenshots show a user's choices: mint nickname, red text, scale 1.20, offset 184 and 9.10 seconds. These are examples, not factory defaults.
Online / Frag messages
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Toggle | Highlight opponent | cl_fragfeed_highlight | Only the opponent in your confirmed kills/deaths. Chat keeps its current style. Applies immediately. | |
| List | Opponent color | cl_fragfeed_name_color | Named color palette. Applies immediately. [Light green / Light / Dark / Grey / Brown / Dark red / Red / Orange / Gold / Yellow / Green-yellow / Green / Lime / Pure green / Mint / Cyan / Sky / Aqua / Blue / Azure / Magenta / Violet / White] | |
| Toggle | My kill notifications | cl_fragfeed_kills | Show your confirmed kills below the crosshair. Off by default. Applies immediately. | |
| Toggle | My death notification | cl_fragfeed_deaths | Show who killed you until actual respawn. Off by default. Applies immediately. | |
| Toggle | Show weapon | cl_fragfeed_weapon | Only if the server message identifies it reliably. Applies immediately. | |
| Slider | Horizontal offset | cl_fragfeed_x | HUD-scaled horizontal offset from screen center. Applies immediately. | |
| Slider | Below crosshair | cl_fragfeed_y | Distance below the crosshair in HUD units. Applies immediately. | |
| Slider | Text scale | cl_fragfeed_scale | Notification scale, multiplied by your HUD scale. Applies immediately. | |
| Slider | Kill display time | cl_fragfeed_time | Seconds including the final 0.4 second fade. Death stays until respawn. Applies immediately. | |
| Slider | Maximum lines | cl_fragfeed_lines | At most three recent events; no long queue. Applies immediately. | |
| List | Notification color | cl_fragfeed_color | Named color palette. Applies immediately. [Light green / Light / Dark / Grey / Brown / Dark red / Red / Orange / Gold / Yellow / Green-yellow / Green / Lime / Pure green / Mint / Cyan / Sky / Aqua / Blue / Azure / Magenta / Violet / White] | |
| Toggle | Text background | cl_fragfeed_background | Compact neutral gray background like chat. Applies immediately. | |
| Slider | Background opacity | cl_fragfeed_background_alpha | Opacity also follows HUD opacity. Applies immediately. | |
| Navigation | Preview | fragfeed_preview | Show sample names for six seconds. Does not create frags or affect stats. | |
| Navigation | Restore defaults | fragfeed_reset | Reset only these presentation settings. |