Skip to content

Commit 0667563

Browse files
committed
Make car handling cvars latched/serverinfo and document tuning in server config
Ensure all vehicle handling car_* cvars are synchronized to clients and applied in a controlled way during live matches. - Set car handling cvars in g_main.c to CVAR_SERVERINFO | CVAR_LATCH so values are available to cgame prediction while runtime changes are delayed until restart/round transition. - Keep cgame read path aligned with serverinfo updates (initial parse in init, re-parse on CS_SERVERINFO changes). - Expand server_example.cfg with a dedicated vehicle handling section and per-cvar descriptions for consistent admin-side tuning.
1 parent 3ef0ea6 commit 0667563

File tree

2 files changed

+37
-16
lines changed

2 files changed

+37
-16
lines changed

baseq3r/server_example.cfg

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,25 @@
101101
// Weapon Respawn Time [in seconds] (Default: 5)
102102
g_weaponrespawn 5
103103

104+
// Vehicle handling (physics/prediction)
105+
// All values are server-authoritative and published via serverinfo.
106+
// Changes are latched and become active on map restart / next round load.
107+
// Recommended: keep these identical across a season/match format.
108+
car_spring "120"
109+
car_shock_up "12"
110+
car_shock_down "11"
111+
car_swaybar "20"
112+
car_wheel "2400"
113+
car_wheel_damp "140"
114+
car_frontweight_dist "0.5"
115+
car_IT_xScale "1.0"
116+
car_IT_yScale "1.0"
117+
car_IT_zScale "1.0"
118+
car_body_elasticity "0.05"
119+
car_air_cof "0.31"
120+
car_air_frac_to_df "0.5"
121+
car_friction_scale "1.1"
122+
104123
// allow Voting?
105124
// Vote for:
106125
// — map

engine/code/game/g_main.c

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -281,22 +281,24 @@ static cvarTable_t gameCvarTable[] = {
281281
{ &g_useFuel, "g_useFuel", "1", CVAR_ARCHIVE | CVAR_SERVERINFO, 0, qfalse },
282282

283283
// car variables
284-
{ &car_spring, "car_spring", "120", CVAR_SERVERINFO, 0, qfalse },
285-
{ &car_shock_up, "car_shock_up", "12", CVAR_SERVERINFO, 0, qfalse },
286-
{ &car_shock_down, "car_shock_down", "11", CVAR_SERVERINFO, 0, qfalse },
287-
{ &car_swaybar, "car_swaybar", "20", CVAR_SERVERINFO, 0, qfalse },
288-
{ &car_wheel, "car_wheel", "2400", CVAR_SERVERINFO, 0, qfalse },
289-
{ &car_wheel_damp, "car_wheel_damp", "140", CVAR_SERVERINFO, 0, qfalse },
290-
291-
{ &car_frontweight_dist, "car_frontweight_dist", "0.5", CVAR_SERVERINFO, 0, qfalse },
292-
{ &car_IT_xScale, "car_IT_xScale", "1.0", CVAR_SERVERINFO, 0, qfalse },
293-
{ &car_IT_yScale, "car_IT_yScale", "1.0", CVAR_SERVERINFO, 0, qfalse },
294-
{ &car_IT_zScale, "car_IT_zScale", "1.0", CVAR_SERVERINFO, 0, qfalse },
295-
{ &car_body_elasticity, "car_body_elasticity", "0.05", CVAR_SERVERINFO, 0, qfalse },
296-
297-
{ &car_air_cof, "car_air_cof", "0.31", CVAR_SERVERINFO, 0, qfalse },
298-
{ &car_air_frac_to_df, "car_air_frac_to_df", "0.5", CVAR_SERVERINFO, 0, qfalse },
299-
{ &car_friction_scale, "car_friction_scale", "1.1", CVAR_SERVERINFO, 0, qfalse },
284+
// vehicle handling values are latched so they stay deterministic during an active match;
285+
// all values are also published via serverinfo for cgame prediction setup.
286+
{ &car_spring, "car_spring", "120", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
287+
{ &car_shock_up, "car_shock_up", "12", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
288+
{ &car_shock_down, "car_shock_down", "11", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
289+
{ &car_swaybar, "car_swaybar", "20", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
290+
{ &car_wheel, "car_wheel", "2400", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
291+
{ &car_wheel_damp, "car_wheel_damp", "140", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
292+
293+
{ &car_frontweight_dist, "car_frontweight_dist", "0.5", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
294+
{ &car_IT_xScale, "car_IT_xScale", "1.0", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
295+
{ &car_IT_yScale, "car_IT_yScale", "1.0", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
296+
{ &car_IT_zScale, "car_IT_zScale", "1.0", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
297+
{ &car_body_elasticity, "car_body_elasticity", "0.05", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
298+
299+
{ &car_air_cof, "car_air_cof", "0.31", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
300+
{ &car_air_frac_to_df, "car_air_frac_to_df", "0.5", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
301+
{ &car_friction_scale, "car_friction_scale", "1.1", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
300302

301303
{ &g_damageScale, "g_damageScale", "0.3", CVAR_ARCHIVE, 0, qfalse },
302304
{ &g_vehicleDamageScale, "g_vehicleDamageScale", "5.0", CVAR_ARCHIVE, 0, qfalse },

0 commit comments

Comments
 (0)