// Unexplained crashes? Try changing mat_queue_mode to `-1'.
// ----------------------------------------------------------------------------
// Chris' maxquality config, designed to get you excellent quality
// v2.005 | 04 December 2011 | fakkelbrigade.eu/chris/configs/
// ----------------------------------------------------------------------------
// Problems or questions? Contact me at #christf2 on QuakeNet.
// ----------------------------------------------------------------------------
// Launch options:
// IMPORTANT: Remove -dxlevel 98 from the launch options after the first launch!
//
// Fullscreen: -dxlevel 98 -full -w WIDTH -h HEIGHT -console -novid -useforcedmparms -noforcemaccel -noforcemspd
// Windowed: -dxlevel 98 -sw -w WIDTH -h HEIGHT -console -noborder -novid -useforcedmparms -noforcemaccel -noforcemspd
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// FPS cap
// ----------------------------------------------------------------------------
// The primary benefit of an FPS cap is to make the FPS more stable, other than
// that, it doesn't do a lot. A moderate, consistent framerate is much more
// desirable than a variable but sometimes high framerate. A common
// misconception is that if any more frames are generated than your monitor can
// display, they are useless. This is wrong -- frames are used for much more
// than mere display, and affect the way the game feels well past your
// refresh rate.
//
// This FPS cap should *always* be set to a value higher than `cl_cmdrate' in
// any case, or the discrepancy between clientside frame generation and frames
// to be sent to the server will no doubt cause you many a headache, especially
// when it comes down to hit registration. Other than that, I recommend
// for everyone to use the value `132' (2*66), as long as you can generally
// keep that value stable without regular drops.
// ----------------------------------------------------------------------------
cl_showfps 0 // Don't show FPS meter
//fps_max 132 // Commented due to 2011-09-02 update causing jittering when fps is capped for some
fps_max 0
// ----------------------------------------------------------------------------
// Net settings
// ----------------------------------------------------------------------------
// Whilst net settings perhaps aren't an integral part of an FPS config, they
// are a fact of life in competitive TF2, and as such, they are included here.
//
// A common question I am asked -- what defines whether a good connection is
// good or bad? Mostly personal preference. If you're not willing to make the
// choice, try both and see which is better for you.
//
// Generally, meeting both of the following conditions would classify it as a
// good connection:
//
// - Ping of <80 to the average server you join
// - Generally no/negligible choke/loss (can be checked with `net_graph')
//
// There's some pretty good documentation on this here:
// http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
//
// Uncomment (remove the `//' from) one of the groups if you want to use them.
// ----------------------------------------------------------------------------
// LAN
//cl_cmdrate 66
//cl_interp 0 // We let cl_interp_ratio do the limiting, this just sets it to
// the minimum available.
//cl_interp_ratio 0
//cl_lagcompensation 0
//cl_pred_optimize 2
//cl_smooth 0
//cl_smoothtime 0.01
//cl_updaterate 66
//rate 60000
// Good connection
//cl_cmdrate 66
//cl_interp 0
//cl_interp_ratio 1
//cl_lagcompensation 1
//cl_pred_optimize 2
//cl_smooth 0
//cl_smoothtime 0.01
//cl_updaterate 66
//rate 60000
// Bad connection
//cl_cmdrate 40
//cl_interp 0
//cl_interp_ratio 2
//cl_lagcompensation 1
//cl_pred_optimize 2
//cl_smooth 0
//cl_smoothtime 0.01
//cl_updaterate 40
//rate 35000
// ----------------------------------------------------------------------------
// Graphical
// ----------------------------------------------------------------------------
// Now we come to the main brunt of the config. You probably don't want to mess
// with this.
// ----------------------------------------------------------------------------
cl_burninggibs 1
cl_detaildist 8096
cl_detailfade 0
cl_maxrenderable_dist 8096
cl_new_impact_effects 1
cl_phys_props_max 1024
cl_ragdoll_collide 1
lod_transitiondist 6400
mat_aaquality 2
mat_antialias 8
mat_bumpmap 1
mat_compressedtextures 1
mat_envmapsize 512
mat_envmaptgasize 512
mat_forceaniso 16
mat_hdr_level 2
mat_monitorgamma 2.0 // Controls brightness, try 1.8 to make it brighter or 2.2
// to get it darker. Only works in fullscreen.
mat_motion_blur_enabled 0 // Disabled by default in v2.005 onwards
mat_motion_blur_forward_enabled 0
mat_motion_blur_strength 0
mat_parallaxmap 1
mat_picmip -1 // Higher = more mipmapping. Without `sv_cheats 1', you're looking
// at a range from -1 to 2, -1 being the best quality, 2 being the
// worst.
mat_postprocess_x 8
mat_postprocess_y 8
mat_reducefillrate 0
mat_software_aa_blur_one_pixel_lines 0.5
mat_software_aa_edge_threshold 0.8
mat_software_aa_quality 2
mat_software_aa_strength 2
mat_software_aa_strength_vgui 2
mat_specular 1
mat_vsync 0
mat_wateroverlaysize 512
mp_decals 4096
mp_usehwmmodels 1
mp_usehwmvcds 1
r_avglight 3
r_decals 4096
r_eyeglintlodpixels 4
r_lod 0
r_maxmodeldecal 4096
r_radiosity 3
r_rainradius 2250
r_rainsplashpercentage 100
r_rootlod 0
r_shadowmaxrendered 1024
r_shadowrendertotexture 1
r_shadows 1
r_waterdrawreflection 1
r_waterdrawrefraction 1
r_waterforceexpensive 1
r_waterforcereflectentities 1
// ----------------------------------------------------------------------------
// Misc
// ----------------------------------------------------------------------------
in_usekeyboardsampletime 0
mat_clipz 1 // FX card users should set this to 0
mat_forcehardwaresync 0
mat_levelflush 1
//m_rawinput 1 // Turn on raw mouse input. Commented out by default due to
// silly incompatibility with the Xfire overlay. You should use
// it if you can!
mat_vsync 0 // Turn off vsync to avoid nasty I/O latency.
r_fastzreject -1 // Values >1 enable a fast Z rejection algorithm, to be
// performed on the GPU (as opposed to on the CPU). The
// value `-1' autodetects hardware support for this
// feature.
// ----------------------------------------------------------------------------
// Sound
// ----------------------------------------------------------------------------
// I'd be hesitant to say that you would see a great deal of performance
// improvement from lowering the sound quality, but in my experience as a
// competitive TF2 player, lowering the sound quality makes determination of
// directionality and distance that much easier. You may see a small FPS gain
// with these settings, or you may not, either way will likely have a
// negligible effect on performance.
// ----------------------------------------------------------------------------
dsp_enhance_stereo 1
dsp_slow_cpu 0
snd_async_fullyasync 1 // Having the sound run fully asynchronous has been
// helpful in the past, as it seems to (for whatever
// reason) reduce the number of TDRs experienced during
// gameplay. There's some pretty good information on
// TDRs (nerds only) here:
// http://forums.nvidia.com/index.php?showtopic=65161
snd_pitchquality 1
snd_spatialize_roundrobin 0
// ----------------------------------------------------------------------------
// Threading
// ----------------------------------------------------------------------------
mat_queue_mode 2 // mat_queue mode is another frequently asked about cvar, it
// defines the threading method to be used by the material
// system. It has been unstable to use in the past, but
// nowadays it's generally okay.
//
// Here are the possible values:
// -2 legacy default
// -1 default
// 0 synchronous single thread
// 1 queued single thread
// 2 queued multithreaded
//
// If you have problems with the value `2', try setting it to
// `-1'.
//
// As an aside, there are quite a few bugs in the demo system
// that occur when mat_queue_mode is set to a value that is
// not `-1'. If you intend to do work with the demo system,
// maybe you should change this.
cl_threaded_bone_setup 0
cl_threaded_client_leaf_system 0
r_queued_decals 0
r_queued_ropes 1
r_queued_post_processing 0
r_threaded_client_shadow_manager 1
r_threaded_particles 1
r_threaded_renderables 1
// ----------------------------------------------------------------------------
// Misc
// ----------------------------------------------------------------------------
cl_forcepreload 1 // Force preloading
// ----------------------------------------------------------------------------
// Print to console
// ----------------------------------------------------------------------------
clear
echo "-------------------------------------------------------"
echo " Chris' maxquality config loaded. "
echo "-------------------------------------------------------"
echo "Please direct all comments/queries/whatnot to"
echo "#christf2 on QuakeNet."
echo ""
echo "-------------------------------------------------------"
echo " Memory stats "
echo "-------------------------------------------------------"
memory
echo ""
echo "-------------------------------------------------------"
echo " Code support "
echo "-------------------------------------------------------"
r_3dnow
r_sse2
echo "-------------------------------------------------------"