So... I just happen to take a long nap and ended up wide awake in the middle of midnight with nothing to do. So I decided to play DotA2 and behold, an update! The update states that the Reborn client now has autoexec.cfg support. However, no one has posted any update on which console variables are supported and which ones were dropped. So I went on an adventure to find out.
Getting the supported cvars
cvarlist log [filename here] command dumps the current cvars the game holds to a text file in the folder where the game executable resides. The location depends on whether the 32-bit or 64-bit client was used when running the command. The file is written with Unix line endings, so viewing it in Notepad will just return gibberish. Use something like Sublime Text instead.
The contents of the file contain a dump of the current cvars that the engine currently holds. However, the engine might not have used all of them. It also contains any settings added beforehand, such as one from an existing autoexec.cfg or entered via the console. This procedure is best done on a fresh, untouched install of DotA2.
Next is to weed out cheat commands. I doubt they'll be enabled on multiplayer thus they're useless clutter in the dump. A simple regular expression pattern
.*cheat.* should match all lines with the "cheat" field. Replacing it with a blank leaves the settings that are actually viable for tweaking.
Let's start tweaking
The dump was kind enough to have descriptions for the some settings, which made it easier to figure out which cvar did what. I went through the settings and looked for the common performance suspects and boosters. I also tweaked DotA2-related settings to my playstyle.
So far, I dished out a generic, starter autoexec.cfg. I left out the tweaks that could be done in the game settings section, as they are synced via Steam. If I were very meticulous, I'd hardcode every setting, tweak and keybinding of my preference. I could just drop an autoexec.cfg on any DotA2 install, hook up my keyboard and mouse and I'd be playing like I was on my machine!
/////////////////////////////////////////////////////////////////////////////// // Performance settings /////////////////////////////////////////////////////////////////////////////// cl_forcepreload 1 cl_show_splashes 0 cl_globallight_shadow_mode 0 fps_max 120 mat_clipz 0 mat_disable_bloom 1 mat_hdr_level 0 mat_motion_blur_enabled 0 sv_forcepreload 1 r_dota_fxaa 0 r_draw3dskybox 0 r_frame_sync_enable 0 r_ForceWaterLeaf 1 r_hdr_bloom 0 r_occlusion_culling 1 r_post_bloom 0 r_post_fxaa 0 r_post_vignette 0 r_threaded_particles 1 r_WaterDrawReflection 0 r_WaterDrawRefraction 0 r_waterforcereflectentities 0 r_deferred_simple_light 0 r_texturefilteringquality 0 r_worldlod 0 rope_smooth 0 /////////////////////////////////////////////////////////////////////////////// // DotA Tweaks /////////////////////////////////////////////////////////////////////////////// // Enable console con_enable 1 // Range Finder (not actually enabled in game) dota_enable_range_finder 1 dota_range_display 400 // Right-click attack/deny. Handy for last hitting. dota_force_right_click_attack 1 // Enlarge icons on minimap. Handy for stalking. dota_minimap_hero_size 800 // Disable bg animation on lobby dota_embers 0 // Disable scroll zoom dota_camera_disable_zoom 1 // Quarter vertical markers on health bar. Easier to estimate damage. dota_health_per_vertical_marker 250 // Simple water dota_cheap_water 1 // Disable all forms of communication dota_chat_enable_whispers 0 dota_chat_mute_all 1 sv_voiceenable 0 // Reduce flash and shake dota_screen_shake 0 dota_hud_reduced_flash 1 // Doing something doesn't cancel teleport dota_player_teleport_requires_halt 1 // Prevent auto attack dota_player_units_auto_attack 0 /////////////////////////////////////////////////////////////////////////////// // Hardware tweaks /////////////////////////////////////////////////////////////////////////////// m_customaccel 0 /////////////////////////////////////////////////////////////////////////////// // Keybindings /////////////////////////////////////////////////////////////////////////////// // Reload config bind "F11" "exec autoexec.cfg" bind "F12" "toggleconsole" // Pause to Pause bind "PAUSE" "pause"
Bonus: Launch settings
So at work, I planned to test out DotA2 Reborn on a Mac. However, I forgot to update the post with my updated list of tweaks. Plus, I forgot to add in my launch settings. Without them, I feel severely handicapped on a foreign machine. And so, here's my launch settings:
-console -novid -high -useforcedmparms -noforcemaccel -noforcemspd -fullscreen -noaafonts -32bpp -dxlevel 80 -nod3d9ex
These may not work on a Mac especially the DirectX related ones. But hey! I did say I was experimenting, I don't work for Valve, nor am I a pro gamer. I'm just a programmer being curious. :P