Halflife: fps_override "value" should be saved when changed.

Created on 24 Apr 2019  路  52Comments  路  Source: ValveSoftware/halflife

As a 144hz user, it's frustrating to define fps_override 1 to get >100 FPS on each CS startup. (without using a .cfg)

Most helpful comment

It looks like the list so far is:

  • [x] fps_override
  • [x] cl_showfps
  • [x] gl_ansio
  • [x] cl_filterstuffcmd
  • [ ] spec_mode
  • [x] graphheight
  • [x] gl_texturemode
  • [x] ex_interp
  • [x] gl_round_down
  • [x] gl_max_size
  • [x] gl_picmip
  • [x] gl_waterramp
  • [x] gl_spriteblend
  • [x] gl_dither
  • [x] gl_keeptjunctions
  • [x] gl_lightholes
  • [x] violence_ablood
  • [x] violence_agibs
  • [x] violence_hblood
  • [x] violence_hgibs
  • [x] zoom_sensitivity_ratio
  • [x] hud_deathnotice_time
  • [x] default_fov
  • [x] cl_bob
  • [x] room_off
  • [x] rate
  • [x] r_decals
  • [x] max_shells
  • [x] max_smokepuffs
  • [x] cl_smoothtime

I know gl_texturemode at least is actually a command and not a cvar so it can't be trivially saved but I'll see what I can do about that and the rest of these.

All 52 comments

The fix is quite simple, just add the FCVAR_ARCHIVE flag to the fps_override variable. @mikela-valve, why not? :)

I was going to say the same thing. I鈥檓 fine making that and any other cvar鈥檚 FCVAR_ARCHIVE that make sense to be automatically persisted unless there are any reasons not to.

Sent with GitHawk

I dont know if there are more useful cvars that are not being saved, but I would like to have "fps_override" as a permanent change if his value gets changed. My monitor would be very grateful :)

cl_showfps should get saved too as its more simple than net_graph, also it just use a little space of your screen

And perhaps gl_ansio and cl_filterstuffcmd :)

If someone else knows more useful cvars that can be added into the FCVAR_ARCHIVE param. we can make a great list to @mikela-valve

If someone else knows more useful cvars that can be added into the FCVAR_ARCHIVE param. we can make a great list to @mikela-valve

spec_mode & spec_mode_internal seem not get saved even if values are specified in an autoexec file. For example, a value of '3' for both commands means you spectate the target through 'Free Chase Camera' mode. However, every time the game is restarted, the mode is set to 'Free Look'. Pressing Space will be switching between all modes except 'Free Chase Camera' for some reason, which is the one I want to be defaulted to. I can use Ctrl and manually selecting the mode, but it's something I have to do all the time and for some reason its value seems not to be saved in any way and works only when submitted while in a game.

graphheight and gl_texturemode needs to be FCVAR_ARCHIVE also.

Quick edit.

gl_texturemode should probably be saved as well.

It looks like the list so far is:

  • [x] fps_override
  • [x] cl_showfps
  • [x] gl_ansio
  • [x] cl_filterstuffcmd
  • [ ] spec_mode
  • [x] graphheight
  • [x] gl_texturemode
  • [x] ex_interp
  • [x] gl_round_down
  • [x] gl_max_size
  • [x] gl_picmip
  • [x] gl_waterramp
  • [x] gl_spriteblend
  • [x] gl_dither
  • [x] gl_keeptjunctions
  • [x] gl_lightholes
  • [x] violence_ablood
  • [x] violence_agibs
  • [x] violence_hblood
  • [x] violence_hgibs
  • [x] zoom_sensitivity_ratio
  • [x] hud_deathnotice_time
  • [x] default_fov
  • [x] cl_bob
  • [x] room_off
  • [x] rate
  • [x] r_decals
  • [x] max_shells
  • [x] max_smokepuffs
  • [x] cl_smoothtime

I know gl_texturemode at least is actually a command and not a cvar so it can't be trivially saved but I'll see what I can do about that and the rest of these.

ex_interp plz

If you don't mind, maybe we can add:
gl_round_down
gl_max_size
gl_picmip
gl_waterramp
gl_spriteblend
gl_dither
gl_keeptjunctions
gl_lightholes
violence_ablood
violence_agibs
violence_hblood
violence_hgibs

I think dev commands like gl_wireframe, sv_cheats, and developer should be kept unarchived so it's easier to restore everything. When I use something like gl_wireframe, for instance, I'm looking for a bug or error, and when I'm done I don't want to try to remember every option I changed and change it back. If you really need to keep these persistent, using launch options works just as well.

I agree - debug cvars should not be persisted.

Removed some dev cvars thanks to @Sockman1 and @tschumann

zoom_sensitivity_ratio should be saved too and probably hud_deathnotice_time as well

I've added everything noted with the exception of spec_mode/spec_mode_internal as those are actually commands that have multiple parameters and aren't as conducive to being converted to cvars.

gl_texturemode was converted from a command to a cvar so it can be saved automatically through FCVAR_ARCHIVE.

I've added everything noted with the exception of spec_mode/spec_mode_internal as those are actually commands that have multiple parameters and aren't as conducive to being converted to cvars.

gl_texturemode was converted from a command to a cvar so it can be saved automatically through FCVAR_ARCHIVE.

Just like with "net_graph 0/1/2/3", I thought it would be possible and a good idea for the game to remember the camera mode that was last used.

@MOCOLONI Actually it looks like spec_mode_internal (and spec_pip) are already archived and are the default reset values for spec_mode. Does setting those to the values you'd use for spec_mode not get it to default to the right view?

@MOCOLONI Actually it looks like spec_mode_internal (and spec_pip) are already archived and are the default reset values for spec_mode. Does setting those to the values you'd use for spec_mode not get it to default to the right view?

Without config files like "autoexec.cfg" nor "userconfig.cfg" it doesn't seem to get saved. I then tried listing them into the "autoexec" one and, like before, it still won't work. However, it Does seem to read the value from the "userconfig.cfg" file.

@MOCOLONI Could you check your (presuming this is CS) cstrike\config.cfg after setting spec_mode_internal/spec_pip and see if they're written there?

Archived cvar's are saved to config.cfg, and the order that the configs are loaded in is:

  1. autoexec.cfg
  2. config.cfg
  3. userconfig.cfg
  4. game.cfg

@mikela-valve Yes, they are.

Does it just not matter what they're set to (i.e. they're set the same values as your last run but they don't set spec_mode correctly) or do they get set to default values (0 or 1) each time?

@mikela-valve I recently joined the beta (though not for the first time) and ever since I found out, just now, that not even the userconfig.cfg file is necessary anymore; both the spec_mode and spec_pip commands get their last-used values stored in the "config.cfg" file. Before, at least for spec_mode, it would always reset to "1".

If it's not too late default_fov, cl_bob and room_off would be nice to have archived.

I think those all sound fine, thanks!

Fixed in beta 'Exe build: 11:12:36 May 21 2019 (8244)'.

@mikela-valve The latest update seems not to show the progress of a connection to the server; it instead leaves a blank (dark) background while loading everything.

Thanks @MOCOLONI, that was a regression in fixing #2124 that should be fixed later today.

@mikela-valve please do the same for cl_filterstuffcmd and rate cvars.

Sure, I can add rate. cl_filterstuffcmd is already an archived cvar.

rate has been added as of beta 'Exe build: 16:32:50 May 22 2019 (8245)'.

@mikela-valve I am sure rate was already an archived cvar.

rate was not an archived cvar, though it may have been in the past. Were you possibly thinking of cl_updaterate which is already one?

On Exe build: 15:58:59 Apr 3 2019 (8196) rate gets saved when closing Counter-Strike 1.6

@mikela-valve btw, beta seems to be not working properly.

It looks like you're right, rate does get saved but not as a cvar, it's saved to hl.conf which gets applied as the rate in any HL-based game that you run. It looks like that value gets loaded after the config files do as well, so I may change it to not set the rate from that file if it has already been set from a user config.

What isn't working in the beta?

I am on beta according to Steam but in-game I got this version:
Exe build: 15:58:59 Apr 3 2019 (8196)

imagen

imagen

Note: I was switching between beta and normal CS to test some things. weird.

Oh, that may be due to CS being on beta but not HL1. They're supposed to switch together when you change between beta and public but sometimes that doesn't work. Try switching in and out of beta for HL.

You are right, but if you got only Counter-Strike 1.6 on your Library, beta won't work at all unless you got HL bought too into your library, that should be intended right?

(I tested it on 2 different Steam accounts, HL plus CS 1.6, works flawlessly and CS 1.6 without HL, beta doesn't work)

Yep, that鈥檚 as expected. Any shared engine changes and other shared code will only be in the HL1 depots, so if you鈥檙e only opted in to beta in CS you would have beta versions for whichever CS-specific files are in beta but not any of the shared files.

Closing as fixed.

Added r_decals, max_shells, max_smokepuffs, cl_smoothtime from https://github.com/ValveSoftware/halflife/issues/2595#issuecomment-513157949

@mikela-valve r_decals still not archived.

@mikela-valve r_decals still not archived.

Can confirm, r_decals is not FCVAR_ARCHIVE.

Probably it works, but just a little bit strange.
In menu it shows r_decals 4096, but after connecting to a server it shows 0.

Indeed it isn't archived, however if you join a multiplayer game and r_decals is greater than mp_decals it forces the value of r_decals to that of mp_decals. mp_decals defaults to 300, and it's also marked as archived.

@SamVanheer Thanks, I checked that out after reading your comment and changed the way r_decals was handled a bit. Rather than making r_decals an archived cvar, since that wouldn't have worked well with mp_decals resetting it, I introduced a single-player analog to it, sp_decals that is used when starting a single-player server.

I also removed the check for setting r_decals only if mp_decals or sp_decals is smaller, instead r_decals is always set to the current value of mp_decals or sp_decals on server init, and both mp_decals and sp_decals are archived.

@mikela-valve The change to *_decals seems to be working great.

If possible to make the following commands as FCVAR_ARCHIVE
con_shifttoggleconsole
con_notifytime
loadas8bit
CFG/.txt related commands
logsdir
lservercfgfile
mapchangecfgfile
mapcyclefile
servercfgfile

Part 2 - commands that should be saved.

motdfile
net_log
nosound

r_mmx should be archived.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Yetoo1 picture Yetoo1  路  3Comments

WhiteFang1319 picture WhiteFang1319  路  3Comments

LuckyStrikeOriginal picture LuckyStrikeOriginal  路  4Comments

DreaDk picture DreaDk  路  4Comments

zp picture zp  路  4Comments