DotA2 tweaks reloaded

For the last 2 weeks, I haven't been playing DOTA 2. I heard that Reborn client was promoted as the official client. Then I remembered that the Reborn client was nested inside the legacy client's installation folder. Without hesitation, I wiped DotA2 from my PC and had Steam redownload it. Now the install folder only contains the Reborn client files. Then I remembered... I forgot to backup my autoexec.cfg! The adventure starts!


Getting the pristine convars

It was a chance to get the most pristine copy of the convars the client uses by default. Based on my previous post, it's a matter of just running cvarlist log [filename here] and retrieving that file from the folder the executable lies. Additionally, Source 2 has a new way of storing convars. It's in the "cfg" folder, where you normally put the autoexec.cfg file. I grabbed a copy of that folder too.

Getting the updated convars

So, with a pristine copy of the default convars, I went ahead and tweaked DotA2 settings. From keybindings, all the way to graphics, I tweaked it to my heart's content. After that, I dumped the convars again like in the previous section, as well as get another copy of the "cfg" folder.

Meld to the rescue

It's amazing how a programmer's tool is helping me to solve a gaming problem. Well, games are software, so what the heck am I saying. So I installed Meld which is a file diffing tool. It can also compare files inside folders, which makes it handy. We can compare both the dump and cfg at the same time.

So without further ado, I just diffed the files and folders of the default against the configured, and grabbed the differences into a new autoexec.cfg. I also merged in the convars from my previous post which contained manually picked and tweaked convars not modifiable from the settings panel.

The updated autoexec.cfg

So now, here's my updated autoexec.cfg. Like before, some of them don't work (yet). For instance, modifying dota_ignore_nonfriend_guild_invites which is mapped in the settings panel will throw an error in the console. Some of these might not even be used in DotA2. For instance, of the three FXAA convars, r_post_fxaa doesn't seem to be affected by the fxaa setting in the settings panel.

Also note that this configuration is for a solo attack-carry. Notable tweaks are the larger minimap icons for easy spotting, spell range finder for easy positioning, disabled all forms of communication and outreach for zero-distraction and all keys mapped nearer to the left hand like you would in an FPS game.

///////////////////////////////////////////////////////////////////////////////
// General tweaks
///////////////////////////////////////////////////////////////////////////////

// Enable console
con_enable 1

///////////////////////////////////////////////////////////////////////////////
// Performance settings
///////////////////////////////////////////////////////////////////////////////

// Preload resources
cl_forcepreload 1
sv_forcepreload 1

// "Low" network quality
cl_cmdrate 15
cl_updaterate 15
rate 40000

// Uncap FPS
fps_max 0

// Disable vsync
mat_vsync 0
mat_triplebuffered 0
r_frame_sync_enable 0

// Disable AA
r_ssao 0
r_dota_fxaa 0
r_post_fxaa 0

// Disable post-processing effects
r_hdr_bloom 0
r_post_bloom 0
r_deferred_specular_bloom 0
mat_disable_bloom 1
mat_hdr_level 0
r_post_vignette 0

// Disable shadows
r_deferred_simple_light 0
cl_globallight_shadow_mode 0

// Disable water effects
cl_show_splashes 0
r_WaterDrawReflection 0
r_WaterDrawRefraction 0
r_waterforcereflectentities 0

// Disable unnecessary effects
r_dashboard_render_quality 0
r_deferred_additive_pass 0
r_deferred_height_fog 0
r_deferred_specular 0
r_dota_normal_maps 0
r_texture_stream_mip_bias 0
r_texturefilteringquality 3

// General rendering tweaks
mat_clipz 0
mat_motion_blur_enabled 0
mat_viewportscale 1
r_draw3dskybox 0
r_ForceWaterLeaf 1
r_occlusion_culling 1
r_threaded_particles 1
r_worldlod 0

rope_smooth 0

///////////////////////////////////////////////////////////////////////////////
// DotA Tweaks
///////////////////////////////////////////////////////////////////////////////

// Right-click deny
dota_force_right_click_attack 1

// Prevent auto attack
dota_player_units_auto_attack 0
dota_player_units_auto_attack_after_spell 0

// Doing something doesn't cancel teleport
dota_player_teleport_requires_halt 1

// Range Finder
dota_enable_range_finder 1
dota_range_display 400

// Enlarge icons on minimap
dota_minimap_hero_size 800

// Disable middle mouse scroll zoom
dota_camera_disable_zoom 1

// Quarter vertical markers on health bar
dota_health_per_vertical_marker 250

// Reduce flash and shake
dota_screen_shake 0
dota_hud_reduced_flash 1

// Disable all forms of communication
dota_chat_enable_whispers 0
dota_chat_mute_all 1

// Disables all forms of outreach
dota_ignore_nonfriend_invites 1
dota_ignore_nonfriend_guild_invites 1
dota_join_regional_chat_channel 0
dota_open_party_manual_accept_invites 1
dota_rp_hide_party_unless_open 1

// Simple water
dota_cheap_water 1

// Disable bg animation on lobby
dota_embers 0

// Ambient creatures
dota_ambient_creatures 0

// Disables portrait animation
dota_portrait_animate 0

// Show net graph
dota_hud_netgraph 1

///////////////////////////////////////////////////////////////////////////////
// Audio tweaks
///////////////////////////////////////////////////////////////////////////////

// Disables music
snd_musicvolume 0
snd_mute_losefocus 0

// Disables voice
snd_gamevoicevolume 0
snd_voipvolume 0
dota_speech_level 0
dota_mute_cobroadcasters 1
sv_voiceenable 0

///////////////////////////////////////////////////////////////////////////////
// Hardware tweaks
///////////////////////////////////////////////////////////////////////////////

// Disables in-game acceleration
m_customaccel 0

// Preserves the OS's acceleration
m_mousespeed 1

///////////////////////////////////////////////////////////////////////////////
// Keybindings
// NOTE: The in-game keys don't bind in the lobby. Reload the config IN-GAME
//       to rebind the keys.
///////////////////////////////////////////////////////////////////////////////

// Unbind unneeded keys to prevent accidental press
unbind "y"
unbind "h"
unbind "j"
unbind "m"
unbind "o"
unbind "u"
unbind "SPACE"
unbind "i"
unbind "UPARROW"
unbind "LEFTARROW"
unbind "DOWNARROW"
unbind "RIGHTARROW"
unbind "F6"
unbind "F9"
unbind "\"

// Left hand
bind "`" "+showscores"
bind "a" "mc_attack"
bind "s" "dota_stop"
bind "g" "dota_glyph"
bind "v" "dota_learn_stats"
bind "c" "dota_ability_learn_mode"
bind "SPACE" "+dota_camera_follow"

// Aux
bind "PAUSE" "dota_pause"
bind "PRINTSCREEN" "jpeg_screenshot"
bind "F11" "exec autoexec.cfg"
bind "F12" "toggleconsole"

Launch options

As always, I'll throw in my launch options as a bonus:

-console -novid -high -useforcedmparms -noforcemaccel -noforcemspd -fullscreen -noaafonts -32bpp -dxlevel 80 -nod3d9ex