Personally my biggest gripes based on past experience with your comfig some of which may not be true anymore
1. If you want to make any changes you have to crawl through ~20+ cfg files (granted a handful probably will not be touched at all)
2. Figuring out what an alias does and where to find said alias is a nightmare.
Ex. sniper.cfg within the vpk has this
Off the top of my head I have no idea what these do or where to find them other than the exec line, deductive reasoning (if you think from the standpoint of someone who's never gone through these) should narrow this down to these cfg files.
So I have to go through 6 cfg files in 3 different directories how bad could it be?
autoexec.cfg just references other cfg files so that's ruled out.
comfig.cfg ~500 lines of aliases with no comments some of which reference other aliases... Well I think I found most of them... ctrl+f save me now
alias pred_opt_full "cl_pred_optimize 2"
alias snapshots_safe "cl_interp_ratio 2;setinfo cl_interp_ratio 2;interp_safe"
alias class_config_sniper "exec user/sniper"
cool I found them right. but now I'm left scratching my head as to what "snapshots" does since it's alias references nothing
Wait... another alias "interp_safe"
ctrl+f here we go again
I find that the alias interp_safe is set UNDER A DIFFERENT ALIAS
comfig.cfgalias packet_rate_congestion_aliases "alias interp_unreliable interp_congestion_unreliable;alias interp_safe interp_congestion_safe;alias interp_balanced interp_congestion_balanced;alias interp_lan interp_congestion_lan"
alias packet_rate_cons_aliases "alias interp_unreliable interp_cons_unreliable;alias interp_safe interp_cons_safe;alias interp_balanced interp_cons_balanced;alias interp_lan interp_cons_lan"
alias packet_rate_balanced_aliases "alias interp_unreliable interp_balanced_unreliable;alias interp_safe interp_balanced_safe;alias interp_balanced interp_balanced_balanced;alias interp_lan interp_balanced_lan"
alias packet_rate_standard_aliases "alias interp_unreliable interp_standard_unreliable;alias interp_safe interp_standard_safe;alias interp_balanced interp_standard_balanced;alias interp_lan interp_standard_lan"
Awesome interp_safe could be 4 different possible aliases that I don't know the settings for...
Hope I'm near the end of this chain...
alias interp_congestion_safe "cl_interp .060606;setinfo cl_interp .060606;cl_smoothtime .060606"
alias interp_cons_safe "cl_interp .05;setinfo cl_interp .05;cl_smoothtime .05"
alias interp_balanced_safe "cl_interp .0333333;setinfo cl_interp .0333333;cl_smoothtime .0333333"
alias interp_standard_safe "cl_interp .030303;setinfo cl_interp .030303;cl_smoothtime .030303"
Wait how do I know which one I'm using...
screaming in agony intensifies
That's for just trying to make changes for 1 class config. Looking at that though that's not necessarily 100% optimal because I can choose to run huntsman which means I wouldn't want those net settings. Yes, I do know how to find which interp settings I'm using in the files but imagine this is someone literally just switching from my cfg or chris's or some other one and they're going through all of this for the 1st time.
3. The setup for your config assumes a lot.
Users will never/rarely want to change literally any specific details about their cfgs while keeping 99% of it the same.
Ex. See point #2
Users who select specific quality presets probably want x, y and z. So why not bundle them together under multiple aliases?
Ex. I have a 240Hz monitor, and I play classes that see maximum benefits from the highest possible fps. I also have a GPU that's far more than capable of handling TF2's higher settings that don't really impact CPU utilization. However to get the settings that maximize FPS with a CPU bottleneck without buggy issues I have to use medium low which has a lot of lower quality texture settings which are generally bundled into various aliases with other settings. I'm pretty sure you have this removed by now but you used to have "mat_texture_limit" as a setting within Low and Medium-Low iirc which would cause really bad issues if you changed picmip values.
Users who selected lower presets probably have weak GPUs in general thus we should put more load on the CPU.
1 such example from your github
//r_occlusion 1 // Use CPU to have the GPU skip rendering models/props you cannot see
Given your note people with better GPUs should probably set this to 0 for slightly more FPS. Now technically you have this commented out so it's not being set to 1 by your config, but given your installation recommendation this means users are probably using the default value of 1. Low and Medium-Low both definitely would end up with people having this value at 1.
4. Certain optimizations are only found in the low-preset but the low preset also has less than optimal choices elsewhere...
Default Low Preset sound settings
Default Medium-Low Preset sound settings
Neither preset is really optimal for competitive use. Medium-Low has more latency with dsp_spatial, and Low has more latency with snd_spatialize_roundrobin 3. I don't remember if dsp_speaker 50 causes latency or not, probably trivial anyway. There's many other similar examples of less than optimal choices from a competitive aspect or from a performance aspect.
I do really appreciate what you've done and I understand why you made a lot of the choices you did that contributed to the above gripes I have. You have to make those safer assumption for lower presets because not everyone has great GPUs or Quad-core+ CPUs and the people that do will gravitate to those lower presets. Having that many CFG files allows you to split some things up and prevents certain commands from getting exec'd over and over, as well as making your setup more modular and flexible for you to develop thus saving time (which I'm fully aware how much this can eat up...).