Solving FPS Shortages

Hey, you! We are one of the oldest mod sites on the Interwebs. Sign up and maximize your browsing experience.

  • Subscribe: Get notified of new submissions like this.
  • Say Thanks: Show your appreciation by sending Majin_DiggZ points.
  • Post: Give Majin_DiggZ your thoughts on this Tutorial.
  • Vote: Help Majin_DiggZ win the Monthly Awards.
  • Rate: Give this Tutorial a rating out of 10.
  • Flag: Alert moderators and warn members of a problem with this Tutorial.
  • Watch: Get notified when this Tutorial is updated.

Sound fun?

Join GameBanana

Already a Bananite? Login

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

Start up Commands

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:

  1. First open the steam window and click games
  2. now right click on counter strike source and then click properties
  3. A window should pop up
  4. From here click "Set Launch options"
  5. A small window will come up it (should look like screenshot no. 1 except yours will be blank)

Now let me explain, this command line you have in front of you allows you to impose any settings on CSS to execute on boot up, whether it be graphical settings etc.

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 v_sync v_sync 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.

Now go and test your CSS at this point and see if your average FPS or smoothness has improved. If you are still unhappy with your FPS then here is my config. copy and paste it into notepad and save it as a .cfg file in order to do this click "save as" and then pull down the file type menu at the bottom and select "all files" then save it as "Digg.cfg" without speech marks of course. save it in your:

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"

Now start your game. In my config I have reduced graphics setting but have still maintained basic quality if you dont like it dont use it but dont complain about FPS shortage ;). My config also improves reg by tweaking net settings ;) more the merrier :)

Note: this will help if your system isnt quite up to scratch with the source engine, it exchanges graphics for performance. But if your computer is terrible I cant garuntee smoothness

You can bind my config to your startup by opening the file called autoexec.cfg in your C:\Program Files\Steam\SteamApps\username\counter-strike source\cstrike\cfg
folder and putting in the following line
"exec Digg"
now save it ;) and it will execute upon boot up

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_

cl_cmdbackup 2
cl_cmdrate 101
cl_interp 0.01
cl_interpolate 1
cl_lagcomp_errorcheck 1
cl_lagcompensation 1
cl_updaterate 101
cl_smooth 1
rate 25000

// _Set graphics settings_
// _adjusts graphics settings to boost framerate_

cl_ejectbrass 0 // _disables shells flying out of guns_
cl_forcepreload 1 // _forces preload to help increase performance_
cl_phys_props_enable 0 // _disables trash and cans etc_
cl_phys_props_max 0 // _disables trash and cans etc_
cl_ragdoll_physics_enable 1 // _disables dead animations and bodies_
cl_show_splashes 0 // _disables splashes when in water_
fps_max 101 // _caps FPS_
mat_forceaniso 0 // _disables anisotropic filtering_
mat_antialias 0 // _disables antialiasing_
mat_bloomscale 0
mat_bumpmap 0 // _disables bumpmapping_
mat_clipz 1 // _disabled non visible object rendering_
mat_fastnobump 1 // _faster bump mapping_
mat_fastspecular 1 // _fast specular lighting_
mat_mipmaptextures 1 // _texture quality decreases with distance_
mat_hdr_enabled 0 // _disables high dynamic range lighting_
mat_picmip 0 // _lower texture quality--set between 0 and 4_
mat_reducefillrate 1 // _reduces shader fill rate_
mat_specular 0 // _disables specular lighting_
mat_trilinear 0 // _disables trilinear filtering_
mat_wateroverlaysize 16 // _lowers water quality_
mat_vsync 0 // _disables vertical synchronization_
mp_decals 50 // _how many bullets etc will be shown_
muzzleflash_light 0 // _disables muzzleflash_
r_avglight 0 // _disables average lighting_
r_cheapwaterend 1 // _worse water rendering_
r_cheapwaterstart 1 // _worse water rendering_
r_decal_cullsize 2 // _lower texture quality at distance_
r_decals 200 // _disables player sprays_
r_drawdetailprops 0 // _disables detail props_
r_drawflecks 0 // _disables bullet impacts_
r_drawmodeldecals 0 // _disables decals on models_
r_dynamic 0 // _disables dynamic lighting_
r_eyes 0 // _removes eyes from player models_
r_lightaverage 0 // _disables average lighting_
r_lightinterp 0 // _disables light interpolation_
r_lod 0 // _adjusts model quality--set between -5 and 5_
r_occlusion 0 // _disables occlusion--lowers image quality but gains FPS_
r_propsmaxdist 100 // _lower object fading distance_
r_renderoverlayfragment 0
r_rootlod 2 // _lower overall game detail level_
r_shadows 1 // _set to 0 to disable shadows (not recommended)_
r_teeth 0 // _removes teeth from player models_
r_waterforceexpensive 0 // _disables high-quality water_
rope_averagelight 0 // _disables average lighting on ropes_
rope_smooth 0 // _disables antialiasing on ropes_
rope_subdiv 0
rope_wind_dist 0 // _disables wind effects on ropes_

// _Set instruction sets_
// _note: verify processor support before enabling_

// r_3dnow 1 // _enables 3DNow! instruction set_
// r_mmx 1 // _enables MMX instruction set_
// r_sse 1 // _enables SSE instruction set_
// r_sse2 1 // _enables SSE2 instruction set_

// _Set violence settings_
// _increases blood to help you see hits better_

violence_ablood 1
violence_agibs 1
violence_hblood 1
violence_hgibs 1

// _Set HUD and xhair settings_
// _adjusts HUD and xhair for easy viewing_

cl_crosshairalpha 999 // _bright crosshair_
cl_crosshairusealpha 1 // _enables adjustable crosshair brightness_
cl_c4progressbar 1 // _enables C4 progress bar_
cl_radaralpha 255 // _maximum radar brightness_
cl_radartype 1 // _enables solid radar_
hud_centerid 1 // _centers player IDs_
net_graph 3 // _enables net_graph 3--CAL required!_
net_graphpos 2 // _adjusts netgraph position-set between 1 and 3_

// _Set various settings_

budget_show_history 0 // _disables history graph_
cl_downloadfilter "nosounds" // _disables annoying sound downloads_
jpeg_quality 100 // _high quality screenshots_
mat_monitorgamma 1.6 // _maximum ingame brightness_
net_graph 3 // _enables net_graph 3--CAL required!_
net_graphpos 2 // _adjusts netgraph position-set between 1 and 3_
sv_forcepreload 1 // _forces preload to help increase performance_

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_forcemanagedtextureintohardware "1"
mat_antialias "0" //AA Level, set to 0 if crap graphics card (Below Ati9800/Nvidia6600)
mat_forceaniso "2" //AF Level
mat_picmip "0" //Texture Level
mat_reducefillrate "1" //Shader Detail
mat_disable_bloom "1"
mat_bumpmap "0"
mat_clipz "1"
mat_diffuse "1"
mat_wateroverlaysize "16"
mat_mipmaptextures "1"
mat_compressedtextures "1"
mat_bloomscale "0"
mat_fastnobump "1"
mat_disable_fancy_blending "1"
mat_filtertextures "1"
mat_fastspecular "1"
mat_filterlightmaps "1"
mat_disable_lightwarp "1"
mat_disable_ps_patch "1"
mat_hdr_enabled "0"
mat_specular "0"
mat_parallaxmap "0"
mat_softwareskin "0"
mat_softwarelighting "0"
mat_forcehardwaresync "0"
mat_hdr_level "0"

cl_phys_props_enable "0"
cl_phys_props_max "0"
cl_ragdoll_physics_enable "1"
cl_ragdoll_collide "0"
cl_ejectbrass "0"
cl_show_splashes "0"
cl_forcepreload "1"
cl_showfps "0"
cl_downloadfilter "nosounds"
cl_allowupload "1"
cl_allowdownload "0"
cl_autohelp "0"
cl_detail_max_sway "0"
cl_detail_avoid_recover_speed "0"
cl_detail_avoid_force "0"
cl_radaralpha "255" //Radar more visible
cl_radartype "1" //Set to 1, allows radaralpha to be used
cl_autowepswitch "0"
cl_c4dynamiclight "1"
cl_showtextmsg "1"
cl_locationalpha "150"
cl_timeout "30"
cl_drawmonitors "0"
cl_detaildist "0"
cl_detailfade "0"
cl_wpn_sway_scale "0"

r_shadows "1"
r_propsmaxdist "0"
r_lod "0" //Model Related
r_decal_cullsize "0.5"
r_spray_lifetime "2"
r_waterforceexpensive "0"
r_eyemove "0"
r_avglight "1"
r_rootlod "0" //Model Related
r_decals "500"
r_drawdetailprops "0"
r_drawflecks "0"
r_ropetranslucent "0"
r_renderoverlayfragment "0"
r_lightmap "-1"
//r_cheapwaterstart "1"
//r_cheapwaterend "1"
//r_WaterDrawRefraction "0"
//r_WaterDrawReflection "0"
r_waterforcereflectentities "0"
r_teeth "0"
r_flex "0"
r_drawmodelstatsoverlaymax "1.5"
r_drawmodelstatsoverlaymin "0.1"
r_decal_cullsize "0"
r_eyes "0"
r_eyeglintlodpixels "0"
r_eyesize "0"
r_eyeshift_z "0"
r_eyeshift_y "0"
r_eyeshift_x "0"
r_eyegloss "0"
r_avglightmap "0"
r_radiosity "4"
r_occlusion "0"
r_shadowmaxrendered "16" //Only 16 proper shadows will be rendered, rest will be a blur
r_shadowrendertotexture "1"
r_worldlightmin "0"
r_worldlights "0"
r_avglight "0"
r_lightaverage "0"
r_drawbatchdecals "0"
r_dynamic "1"
r_maxdlights "0"

r_PhysPropStaticLighting "0"
r_visualizeproplightcaching "1"
r_pixelvis_partial "0"
r_ropebatch "0"
r_flashlightmodels "0"
r_updaterefracttexture "0"
r_phong "0"
r_DrawSpecificStaticProp "0"
r_flashlightrendermodels "0"
r_flashlightrenderworld "0"
r_maxnewsamples "3"
r_minnewsamples "1"
r_ambientfactor "2"

mat_framebuffercopyoverlaysize "16"
mat_bloomamount_rate "0"
mat_hdr_tonemapscale_max "2"
mat_hdroverbrightrange "0"

r_SnowEnable "0"
r_SnowParticles "0"
r_SnowInsideRadius "0"
r_SnowOutsideRadius "0"
r_SnowSpeedScale "0"
r_SnowPosScale "0"
r_SnowFallSpeed "0"
r_SnowWindScale "0"

r_rainalpha "0"
r_rainalphapow "0"
r_raindensity "0"
r_rainlength "0"
r_RainProfile "0"
r_RainRadius "0"
r_RainSideVel "0"
r_RainSimulate "0"
r_rainspeed "0"
r_RainSplashPercentage "0"
r_rainwidth "0"

voice_modenable "1"
voice_forcemicrecord "1"
voice_enable "1"
voice_scale "1"
voice_fadeouttime "0"
voice_dsound "1"

snd_duckerthreshold "0.15"
snd_duckerreleasetime "2.5"
snd_duckerattacktime "0.5"
snd_ducktovolume "0.55"
snd_mixahead "0.08"
snd_musicvolume "1.0"
snd_pitchquality "1"

dsp_dist_max "20000.00"
dsp_enhance_stereo "1"
dsp_dist_min "0.0"
dsp_water "14"
dsp_slow_cpu "0"
dsp_enhance_stereo "0"

rope_smooth "0"
rope_wind_dist "0"
rope_smooth "0"
rope_averagelight "0"
rope_collide "0"
rope_subdiv "0"
rope_smooth_minalpha "255"
rope_smooth_maxalpha "255"
rope_smooth_maxalphawidth "0"
rope_smooth_enlarge "0"
rope_smooth_minwidth "0"

violence_agibs "1"
violence_hgibs "1"
violence_hblood "1"
violence_ablood "1"

ai_report_task_timings_on_limit "0"
ai_think_limit_label "0"

npc_height_adjust "1"

gl_clear "0"

lod_TransitionDist "0"

scene_showfaceto "0"
scene_showlook "0"
scene_showmoveto "0"

spec_scoreboard "0"

commentary_firstrun "0"

vprof_unaccounted_limit "0.3"
vprof_verbose "1"
vprof_graphheight "256"
vprof_graphwidth "512"

mp_decals "200"

fog_enable_water_fog "0"

m_pitch "0.022"
m_filter "0"
m_side "0.8"
m_yaw "0.022"
m_forward "1"
m_customaccel "0"
m_customaccel_scale "0.04"
m_customaccel_max "0"
m_customaccel_exponent "1"
m_mouseaccel1 "0"
m_mouseaccel2 "0"
m_mousespeed "1"
zoom_sensitivity_ratio 1

muzzleflash_light "1"

fps_max "101"

con_enable "1"

adsp_debug "0"

props_break_max_pieces "0"
props_break_max_pieces_perframe "0"

func_break_max_pieces "0"

jpeg_quality "90"

blink_duration "0.0"

weapon_showproficiency "0"

overview_health "1"


hud_fastswitch "0"
hud_centerid "1"
hud_saytext_time "4" //Time in seconds chat displays on screen
hud_deathnotice_time "6"
hud_drawhistory_time "5"

rate "30000"
cl_cmdrate "100"
cl_updaterate "100"
cl_interpolate "1"
cl_smooth "1"
cl_lagcomp_errorcheck "1"
cl_lagcompensation "1"
cl_interp "0.01"
cl_resend 0.5
cl_smoothtime "0.01"
cl_pred_optimize "2"
net_maxfragments "1280"

net_graph "0"
net_graphpos "120"
net_graphheight "730"
net_scale "5"
net_graphsolid "1"
bind "-" "net_graphpos 120; net_graphheight 733; incrementvar net_graph 0 3 3"

cl_crosshairscale "40000"
cl_crosshaircolor "0"
cl_observercrosshair "1"
cl_dynamiccrosshair "0"
cl_crosshairalpha "999"
cl_crosshairusealpha "1"
cl_crosshairalpha "300"
cl_crosshaircolor "0"
crosshair "1"

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

Its up to you, have a poke around.

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:
  1. Going to my computer
  2. Right clicking on the C drive, or whatever drive you use
  3. Clicking Properties
  4. Clicking on the "Tools" tab
  5. Clicking Defragment.
  6. Press analyse, if there is a moderate, or a lot of red on the analysis, press defragment
  7. This will take a while depending on your computer, but it's worth it, it will speed up your computer quite a bit

Also run the Disk cleanup as often as possible.

To do this:
  1. Follow steps 1-3 above
  2. Click disk cleanup
  3. Wait for it to scan your Hard drive
  4. 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

Crap Cleaner

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

That really isnt a gaming spec, normally at max settings on CSS, 20 - 30 fps is my framerate,

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:
  1. Defragment your hard drive, and do disk cleanup etc. using the previous intructions above
  2. In the command line, we discussed at the beginning have: -dxlevel 81 -heapsize "Same value as before" -tickrate 66 -nosync
  3. Open up your ATI/Nvidia Console and set mip maps to max quality
  4. 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


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

Remember, this all depends on your System, I CANNOT garuntee the same results as me, every computer is different



  • ^Tyler^ avatar
    ^Tyler^ Offline
    Member Joined 9 years ago
    Report post
    7 years ago:
    Dude my fps went up like 60 from this! TY
    MetalHead/Raver/CSS Player avatar
    MetalHead/Raver/CSS Player
  • mmatses avatar
    mmatses Offline
    Member Joined 8 years ago
    4,151 points Ranked 1029th
    Report post
    7 years ago:
    My head hurts :P but yes it is a very nice clear tutorial, i am just too lazy and not too great with computers to know what to do.
    Mapper avatar
  • Beaver_King avatar
    Member Joined 7 years ago
    2,434 points Ranked 1743rd
    Report post
    7 years ago:

    Launch option. Runs the game at High CPU priority rather than Normal (check your Task Manager)

    Helpful. :)
    Can I buy you a fish sandwich? avatar
    Can I buy you a fish sandwich?
  • D4QP avatar
    D4QP Offline
    Member Joined 8 years ago
    290 points Ranked 11942nd
    Report post
    8 years ago:
    How do i find out which -dx to use
    Wanna fight about it?
  • tayson avatar
    tayson Offline
    Member Joined 8 years ago
    Report post
    8 years ago:
    THX man i go from 10-60 fps to 250-300 fps NICE tut
  • Lucy avatar
    Lucy Offline
    Member Joined 8 years ago
    5,397 points Ranked 774th
    Report post
    8 years ago:
    Posted by YDN_oblivion

    You missed -dxlevel 60, my tut is shorter and better

    your video is crap and not better it puts loweset settings... not better
  • zialox avatar
    zialox Offline
    Member Joined 8 years ago
    190 points Ranked 16282nd
    Report post
    8 years ago:
    Does anyone know the answer to my question? (wikipedia says SSE2 has MMX support, so should I enable both or just SSE2 to increase proformance?)
  • YDN_oblivion avatar
    Member Joined 11 years ago
    1,090 points Ranked 3915th
    Report post
    8 years ago:
    You missed -dxlevel 60, my tut is shorter and better
  • K0neX avatar
    K0neX Offline
    Member Joined 8 years ago
    Report post
    8 years ago:
    Everything else is good, my FPS was 30 before doing these things, now it is 50-60.
    Only that one FPS config, u putted there is shitty.
    I needed to fix that alot, that it was perfect for me.
    But thanks, anyway.

    EDIT. I made my own configs now, and Fps runs 90-100. :)
  • zialox avatar
    zialox Offline
    Member Joined 8 years ago
    190 points Ranked 16282nd
    Report post
    8 years ago:
    wikipedia says SSE2 has MMX support, so should I enable both or just SSE2 to increase proformance?


Shareable Image:
Share banner
HTML embed code:
BB embed code:
Markdown embed code:

More embeddable images

Bookmark and Share


Key Authors
Majin DiggZ


Majin_DiggZ avatar
Member Joined 11 years ago
3,907 points Ranked 1091st

Send a Private Message to the submitter



Difficulty Level
Beginner Difficulty


Date Added
10 years ago
Jun 28 2006 @ 8:29pm UTC
Date Modified
7 years ago
Feb 22 2010 @ 11:43am UTC


9.6 Expert+++

Ratings Breakdown

Overall 9.6 30 7 to 10