Solving FPS Shortages
Hello there, here is my tutorial on how to get your CS Source running alot smoother especially if you have an FPS problem
First off I would like to direct your attention to the launch set up of your Counter Strike Source. In order to see this and modify it follow these steps:
- First open the steam window and click games
- now right click on counter strike source and then click properties
- A window should pop up
- From here click "Set Launch options"
- A small window will come up it (should look like screenshot no. 1 except yours will be blank)
What we want to do is make our CSS smoother so:
First we set the heapszie, this is crucial if you want your CSS to run as smoothly as possible. Now depending on the ammount of RAM there is in your system you will either set it to:
-heapsize 262144 for 512mb of RAM -heapsize 524288 for 1024mb of RAM -heapsize 1048576 for 2048mb of RAM
The units used for the heapsize are kilobytes (kb) 1024kb = 1mb
The ideal setting is half of your RAM without going over the top. Note: I have tried going over the top and it makes very little difference.
Enter your desired heapsize into the launch options box and we will continue. It should look like the highlighted section of Screen shot 2
If you could grasp that then your off to a good start, the rest should be fairly easy for you.
Next we need to set an optimized directx level for our game to run on. The supoorted dx levels are:
-dxlevel 90 = Directx 9.0 -dxlevel 81 = Directx 8.1 -dxlevel 80 = Directx 8.0 -dxlevel 70 = Directx 7.0
Now I will explain what each of these will do to the game.
-dxlevel 90 This is the default for all directx 9.0 compatible cards, if yours is different please find out what dx level its supports otherwise you might end up with the wrong dx config skewing your CSS performance this level has all of css's features, nothing taken away.
-dxlevel 81 A favourite of mine as it maintains a nice balance between graphics and performance, your models will have less poly's (lower quality) but you will still maintain all the eye candy features like bumapping. (If you have no idea what im talking about just look for things you understand)
-dxlevel 80 very similar to 81 but without the bumpmapping.. no point really unless you are really desperate, will improve smoothness a tad more than 81.
-dxlevel 70 Now this leaves all of the basic eye candy which makes css look decent but improves smoothness phenominally on my old comp I went from 20 - 30 fps to 60 - 100 /w a config not bad eh? I will include my fps config later, if you really need it.
Now select you desired dx level and input it the same way as you did with the heap size (make sure you leave gaps between commands)
Now for some simple commands that should help get as much juice from your computer as possible.
-nosync now this will turn of vsync vsync caps your fps to your refresh rate, but in the process usually messes things up, so I prefer to have it off.
-gl this will force open gl mode, recommended for Nvidia graphics cards.
-d3d this will force d3d mode, recommended for ATI cards
-refresh "screen refresh rate" This forces a certain screen refresh rate "the ammount of fps your screen can display" for example -refresh 75 for a 75hz compatible screen.
Note: make sure you know what refresh rates are compatible with your screen before forcing them doing so with an unsupported rate may be catastrophic.
Thats about it for start up commands.
C:\Program Files\Steam\SteamApps\username\counter-strike source\cstrike\cfg
or in some cases:
C:\Program Files\Valve\Steam\SteamApps\username\counter-strike source\cstrike\cfg
Now boot up the game and open your console and type "exec Digg"
it should say "Digg's config loaded"
If you have any problems or enquieries dont hesitate to PM me or post a message on my profile, i'm willing to help.
The majority of the praise for this config goes to Casey, however, I have modified a few cvars so that it doesn't look too ugly for those of you with lack of FPS
// Casey's Source Config // Updated 6/26/06
// Set netcode settings // adjusts hitboxes and netcode settings for optimal registration
clcmdbackup 2 clcmdrate 101 clinterp 0.01 clinterpolate 1 cllagcomperrorcheck 1 cllagcompensation 1 clupdaterate 101 cl_smooth 1 rate 25000
// Set graphics settings // adjusts graphics settings to boost framerate
clejectbrass 0 // _disables shells flying out of guns clforcepreload 1 // _forces preload to help increase performance clphyspropsenable 0 // _disables trash and cans etc clphyspropsmax 0 // _disables trash and cans etc clragdollphysicsenable 1 // _disables dead animations and bodies clshowsplashes 0 // disables splashes when in water fpsmax 101 // _caps FPS matforceaniso 0 // _disables anisotropic filtering matantialias 0 // _disables antialiasing matbloomscale 0 matbumpmap 0 // disables bumpmapping matclipz 1 // _disabled non visible object rendering matfastnobump 1 // _faster bump mapping matfastspecular 1 // _fast specular lighting matmipmaptextures 1 // _texture quality decreases with distance mathdrenabled 0 // disables high dynamic range lighting matpicmip 0 // _lower texture quality--set between 0 and 4 matreducefillrate 1 // _reduces shader fill rate matspecular 0 // _disables specular lighting mattrilinear 0 // _disables trilinear filtering matwateroverlaysize 16 // _lowers water quality matvsync 0 // _disables vertical synchronization mpdecals 50 // _how many bullets etc will be shown muzzleflashlight 0 // _disables muzzleflash ravglight 0 // _disables average lighting rcheapwaterend 1 // _worse water rendering rcheapwaterstart 1 // _worse water rendering rdecalcullsize 2 // lower texture quality at distance rdecals 200 // _disables player sprays rdrawdetailprops 0 // _disables detail props rdrawflecks 0 // _disables bullet impacts rdrawmodeldecals 0 // _disables decals on models rdynamic 0 // _disables dynamic lighting reyes 0 // _removes eyes from player models rlightaverage 0 // _disables average lighting rlightinterp 0 // _disables light interpolation rlod 0 // _adjusts model quality--set between -5 and 5 rocclusion 0 // _disables occlusion--lowers image quality but gains FPS rpropsmaxdist 100 // _lower object fading distance rrenderoverlayfragment 0 rrootlod 2 // lower overall game detail level rshadows 1 // _set to 0 to disable shadows (not recommended) rteeth 0 // _removes teeth from player models rwaterforceexpensive 0 // _disables high-quality water ropeaveragelight 0 // _disables average lighting on ropes ropesmooth 0 // _disables antialiasing on ropes ropesubdiv 0 ropewinddist 0 // _disables wind effects on ropes
// Set instruction sets // note: verify processor support before enabling
// r3dnow 1 // _enables 3DNow! instruction set // rmmx 1 // _enables MMX instruction set // rsse 1 // _enables SSE instruction set // rsse2 1 // _enables SSE2 instruction set
// Set violence settings // increases blood to help you see hits better
violenceablood 1 violenceagibs 1 violencehblood 1 violencehgibs 1
// Set HUD and xhair settings // adjusts HUD and xhair for easy viewing
clcrosshairalpha 999 // _bright crosshair clcrosshairusealpha 1 // _enables adjustable crosshair brightness clc4progressbar 1 // _enables C4 progress bar clradaralpha 255 // _maximum radar brightness clradartype 1 // _enables solid radar hudcenterid 1 // _centers player IDs netgraph 3 // _enables netgraph 3--CAL required!_ netgraphpos 2 // _adjusts netgraph position-set between 1 and 3
// Set various settings
budgetshowhistory 0 // disables history graph cldownloadfilter "nosounds" // _disables annoying sound downloads jpegquality 100 // _high quality screenshots matmonitorgamma 1.6 // _maximum ingame brightness netgraph 3 // _enables netgraph 3--CAL required!_ netgraphpos 2 // _adjusts netgraph position-set between 1 and 3 svforcepreload 1 // _forces preload to help increase performance
clear echo "Digg's config loaded"
UDPDATE 18/09/06
I have found another config that should be run a dxlevel 80 depending on your computer specs, it is a modded version of wally3k's config, it gives a nice balance between GFX and performance, enjoy, Change things like sensitivity etc. to your playing style.
Thank you Wally3k
////Ordered Cvars
//Mat
matforcemanagedtextureintohardware "1"
matantialias "0" //AA Level, set to 0 if crap graphics card (Below Ati9800/Nvidia6600)
matforceaniso "2" //AF Level
matpicmip "0" //Texture Level
matreducefillrate "1" //Shader Detail
matdisablebloom "1"
matbumpmap "0"
matclipz "1"
matdiffuse "1"
matwateroverlaysize "16"
matmipmaptextures "1"
matcompressedtextures "1"
matbloomscale "0"
matfastnobump "1"
matdisablefancyblending "1"
matfiltertextures "1"
matfastspecular "1"
matfilterlightmaps "1"
matdisablelightwarp "1"
matdisablepspatch "1"
mathdrenabled "0"
matspecular "0"
matparallaxmap "0"
matsoftwareskin "0"
matsoftwarelighting "0"
matforcehardwaresync "0"
mathdr_level "0"
//Cl clphyspropsenable "0" clphyspropsmax "0" clragdollphysicsenable "1" clragdollcollide "0" clejectbrass "0" clshowsplashes "0" clforcepreload "1" clshowfps "0" cldownloadfilter "nosounds" clallowupload "1" clallowdownload "0" clautohelp "0" cldetailmaxsway "0" cldetailavoidrecoverspeed "0" cldetailavoidforce "0" clradaralpha "255" //Radar more visible clradartype "1" //Set to 1, allows radaralpha to be used clautowepswitch "0" clc4dynamiclight "1" clshowtextmsg "1" cllocationalpha "150" cltimeout "30" cldrawmonitors "0" cldetaildist "0" cldetailfade "0" clwpnsway_scale "0"
//R rshadows "1" rpropsmaxdist "0" rlod "0" //Model Related rdecalcullsize "0.5" rspraylifetime "2" rwaterforceexpensive "0" reyemove "0" ravglight "1" rrootlod "0" //Model Related rdecals "500" rdrawdetailprops "0" rdrawflecks "0" rropetranslucent "0" rrenderoverlayfragment "0" rlightmap "-1" //rcheapwaterstart "1" //rcheapwaterend "1" //rWaterDrawRefraction "0" //rWaterDrawReflection "0" rwaterforcereflectentities "0" rteeth "0" rflex "0" rdrawmodelstatsoverlaymax "1.5" rdrawmodelstatsoverlaymin "0.1" rdecalcullsize "0" reyes "0" reyeglintlodpixels "0" reyesize "0" reyeshiftz "0" reyeshifty "0" reyeshiftx "0" reyegloss "0" ravglightmap "0" rradiosity "4" rocclusion "0" rshadowmaxrendered "16" //Only 16 proper shadows will be rendered, rest will be a blur rshadowrendertotexture "1" rworldlightmin "0" rworldlights "0" ravglight "0" rlightaverage "0" rdrawbatchdecals "0" rdynamic "1" rmaxdlights "0"
rPhysPropStaticLighting "0" rvisualizeproplightcaching "1" rpixelvispartial "0" rropebatch "0" rflashlightmodels "0" rupdaterefracttexture "0" rphong "0" rDrawSpecificStaticProp "0" rflashlightrendermodels "0" rflashlightrenderworld "0" rmaxnewsamples "3" rminnewsamples "1" rambientfactor "2"
matframebuffercopyoverlaysize "16" matbloomamountrate "0" mathdrtonemapscalemax "2" mat_hdroverbrightrange "0"
rSnowEnable "0" rSnowParticles "0" rSnowInsideRadius "0" rSnowOutsideRadius "0" rSnowSpeedScale "0" rSnowPosScale "0" rSnowFallSpeed "0" rSnowWindScale "0"
//Rain rrainalpha "0" rrainalphapow "0" rraindensity "0" rrainlength "0" rRainProfile "0" rRainRadius "0" rRainSideVel "0" rRainSimulate "0" rrainspeed "0" rRainSplashPercentage "0" r_rainwidth "0"
//Voice voicemodenable "1" voiceforcemicrecord "1" voiceenable "1" voicescale "1" voicefadeouttime "0" voicedsound "1"
//Snd sndduckerthreshold "0.15" sndduckerreleasetime "2.5" sndduckerattacktime "0.5" sndducktovolume "0.55" sndmixahead "0.08" sndmusicvolume "1.0" sndpitchquality "1" sndflushasync
//Dsp dspdistmax "20000.00" dspenhancestereo "1" dspdistmin "0.0" dspwater "14" dspslowcpu "0" dspenhance_stereo "0"
//Rope ropesmooth "0" ropewinddist "0" ropesmooth "0" ropeaveragelight "0" ropecollide "0" ropesubdiv "0" ropesmoothminalpha "255" ropesmoothmaxalpha "255" ropesmoothmaxalphawidth "0" ropesmoothenlarge "0" ropesmooth_minwidth "0"
//Violence violenceagibs "1" violencehgibs "1" violencehblood "1" violenceablood "1"
//Ai aireporttasktimingsonlimit "0" aithinklimitlabel "0"
//Npc npcheightadjust "1"
//Gl gl_clear "0"
//Lod lod_TransitionDist "0"
//Scene sceneshowfaceto "0" sceneshowlook "0" scene_showmoveto "0"
//Spec spec_scoreboard "0"
//Commentary commentary_firstrun "0"
//Vprof
vprofunaccountedlimit "0.3"
vprofverbose "1"
vprofgraphheight "256"
vprof_graphwidth "512"
//Mp mp_decals "200"
//Fog fogenablewater_fog "0"
//Mouse mpitch "0.022" mfilter "0" mside "0.8" myaw "0.022" mforward "1" mcustomaccel "0" mcustomaccelscale "0.04" mcustomaccelmax "0" mcustomaccelexponent "1" mmouseaccel1 "0" mmouseaccel2 "0" mmousespeed "1" zoomsensitivity_ratio 1
//Muzzleflash muzzleflash_light "1"
//Fps fps_max "101"
//Con con_enable "1"
//Adsp adsp_debug "0"
//Props propsbreakmaxpieces "0" propsbreakmaxpieces_perframe "0"
//Func funcbreakmax_pieces "0"
//Jpeg jpeg_quality "90"
//Blink blink_duration "0.0"
//Weapon weapon_showproficiency "0"
//Overview overview_health "1"
//Soundscape soundscape_flush
//Hud
hudfastswitch "0"
hudcenterid "1"
hudsaytexttime "4" //Time in seconds chat displays on screen
huddeathnoticetime "6"
huddrawhistorytime "5"
//Network rate "30000" clcmdrate "100" clupdaterate "100" clinterpolate "1" clsmooth "1" cllagcomperrorcheck "1" cllagcompensation "1" clinterp "0.01" clresend 0.5 clsmoothtime "0.01" clpredoptimize "2" net_maxfragments "1280"
//Netgraph netgraph "0" netgraphpos "120" netgraphheight "730" netscale "5" netgraphsolid "1" bind "-" "netgraphpos 120; netgraphheight 733; incrementvar netgraph 0 3 3"
//Crosshair clcrosshairscale "40000" clcrosshaircolor "0" clobservercrosshair "1" cldynamiccrosshair "0" clcrosshairalpha "999" clcrosshairusealpha "1" clcrosshairalpha "300" clcrosshaircolor "0" crosshair "1"
//Random sensitivity "10" volume "1.0" suitvolume "1.00" bgmvolume "1.00" closecaption "0" commentary "0"
UPDATE 13/12/06
Another way to increase FPS, is to tweak the settings inside your Nvidia/ATI console:
You can access this via the icon in your bottom right tray, usually double click
- If you use the casey's config, in Nvidia/ATI console, set your mipmaps to best performance, as there is no difference in quality, due to the config...
- Disable any anti aliasing, also make sure V sync is not forced.
- Also if you have ATI you will have the AI setting, set this to max.
- Also enable all d3d and open gl specific settings. Extensive geometry, triple buffering etc.. you should find them somewhere
Also, a major killer of FPS is the bad keeping of a Hard drive, make sure you REGULARLY defragment your hard drive.
You do this by:
- Going to my computer
- Right clicking on the C drive, or whatever drive you use
- Clicking Properties
- Clicking on the "Tools" tab
- Clicking Defragment.
- Press analyse, if there is a moderate, or a lot of red on the analysis, press defragment
- This will take a while depending on your computer, but it's worth it, it will speed up your computer quite a bit
To do this:
- Follow steps 1-3 above
- Click disk cleanup
- Wait for it to scan your Hard drive
- It should automatically select all types of trash that can be deleted without harm, press ok and it will clean the hard drive.
If your feeling adventurous, you can use a registry cleaner, registry becomes a mess when not maintained properly
DO THIS AT YOUR OWN RISK! as registry keys are the very thing that hold your system together.
Some keys become obselete and need to be deleted, NOT FOR NOVICES
You can download a good registry cleaner here, which i've used many times and have had no problems.
It is also a temporary file deleter, it deletes all of the obselete files as well, a bit like Disk clean up but a lot more thourough
UPDATE 18/12/06
A GREAT way to get an amazing looking css, but get another 40fps +!!!
This is the configuration I use:
I have a standard computer:
- 3Ghz Standard Pentium 4
- 1 GB of RAM
- ATI RADEON X300
This is without HDR and at 1024 by 768 res -_-
Now, the config I use, maintains a good looking CS:S, (Max quality mip-maps)
But I get 60 - 80 fps on a FULL server in DUST 2
Refer to Screenshot C for a little look at what Dust 2 looks like
If your specs are anything near mine you will be able to do it:
- Defragment your hard drive, and do disk cleanup etc. using the previous intructions above
- In the command line, we discussed at the beginning have:
-dxlevel 81 -heapsize "Same value as before" -tickrate 66 -nosync
- Open up your ATI/Nvidia Console and set mip maps to max quality
- Copy and paste the Wally's config, further up in the tut into a blank notepad, save as what ever you want, just MAKE SURE, there are no spaces in the name of the file, and that it is saved with the .cfg file extension discussed earlier
FOR EXAMPLE
I use "wallypro.cfg"
- Once this is all done, start CS:S, and type in the console, "exec wallypro"
- The config will be loaded, and a better CS:S is ready for you
Enjoy








