Download

I might make a tool that auto-updates scripts and stuff if there is demand. For now, it's just a simple rar file.

Note that everything can be rebound by editing a single file. The following only lists the default key bindings.

The videos below are semi-unrelated. They're just here to fill up space for the class images, really.

All classes

Space: duckjump (jump+duck at the same time)

Ctrl: toggleduck (ctrl to duck, ctrl again to stand up). Can be changed to non-toggled in the preferences.

V: Toggles microphone on/off, and lowers volume while you are speaking. Can be changed to non-toggled in the preferences.

End: Makes your character explode (suicide with gibs is awesome)

=: Spray

[ / ]: Decrease/increase cl_interp

Shift+`: Toggle demo recording on/off

Function keys:

F1-F9: Change classes at next respawn (or instantly if you are in spawn)

Shift+F1-F9: Change classes instantly (and suicide if you are not in spawn)

The behavior of F1-F9 / Shift+F1-F9 can be inverted in the preferences.

Note that some Shift+Fn keys will not work because they are bound to some engine functions (demoui, etc.). Also remember that you can commit suicide manually (to change class instantly) by pressing "End".

You can also disable the disguise menu on the number keys. In this case, the rest of the numbers are bound to useful disguises:

Shift+0: Drop disguise

1-4: Select weapon

5: Disguise as enemy Pyro

Shift+5: Disguise as friendly Pyro

6: Disguise as enemy Demoman

Shift+6: Disguise as friendly Demoman

7: Disguise as enemy Engineer

Shift+7: Disguise as friendly Engineer

8: Disguise as enemy Sniper

Shift+8: Disguise as friendly Sniper

9: Disguise as enemy Spy

Shift+9: Disguise as friendly Spy (drop disguise)

R: Reload. (Auto-reload is disabled for the spy, because it is annoying and because it can be useful to manually reload while disguised)

Shift+R: "Activate charge!"

mouse3: Click to set your disguise's weapon to secondary. Hold to sap buildings

Shift+mouse3: Hold it until the sequence is complete: Stabs once, then quickly switches to sapper, disguises randomly, and keeps sapping until you release the button. Then switches to revolver. Useful for taking out turtling engineers. Requires sv_allow_wait_command 1, otherwise it will simply sap buildings like regular mouse3.

mouse3 and Shift+mouse3 can be swapped (mouse3 to stab+sap, Shift+mouse3 to sap) in the preferences.

B: Disguise randomly

Shift+B: Take last disguise, or manually synchronize disguise weapon with your current one

Disguising sound is quieter

By default, weapon selection using the scroll wheel is locked to weapons 1 and 3 (wheel up = revolver/ambassador, wheel down = knife). You can disable it, or set it to be locked to weapons 1, 2 and 3.

By default, you will auto-disguise when necessary, and your disguise weapon will be synchronized with the one you are holding (revolver = disguise's primary weapon, knife = disguise's melee weapon). You can disable this. When enabled:

mouse2: Cloak, and take your last disguise if you are not already disguised

Automatically disguises with the last disguise when you change weapon or cloak

Automatically disguises randomly when you attack or when using the stab-and-sap sequence (Shift+mouse3)

Preferences

This configuration has a preference system. You can edit your preferences by editing preferences.cfg, which should be in [SteamInstallDir]\steamapps\[User]\team fortress 2\tf\cfg.
Scripts for some classes have certain preferences, so that you can fine-tune their behavior.
There are also general preferences, which apply no matter the class you use.

As you can see, each preference has a name ("Weapon selection lock"), a category ("Pyro preferences"), and different values ("pref_pyro_weaponlock_12" and "pref_pyro_weaponlock_none"), one of which is the default ("pref_pyro_weaponlock_12" in this case).
Now look at the "alias" line. The default being "pref_pyro_weaponlock_12" (mouse wheel selection is locked to weapons 1 and 2), the last part of the "alias" line is "pref_pyro_weaponlock_12". If you want to disable weapon lock, you would replace this by "pref_pyro_weaponlock_none" and it would end up looking like this:

General preferences

Set the default volume, and the alternate volume while you are speaking

Turn the ding-a-ling sound on or off

Set the default ding-a-ling sound volume, and an alternate quiet volume for classes where it can be annoying

// General preferences:
// Class selection suicide:
// - pref_generic_changeclass_now: Pressing F1-F9 will change class instantly, killing you if you are not in spawn. Shift+F1-F9 will change class on next respawn, or instantly if you are in spawn
// - pref_generic_changeclass_later (default): Pressing F1-F9 will change class on next respawn, or instantly if you are in spawn. Shift+F1-F9 will change class instantly, killing you if you are not in spawn
alias "pref_generic_changeclass" "pref_generic_changeclass_later"
// Toggleduck on/off:
// - pref_generic_toggleduck_on (default): Press Ctrl to crouch, press Ctrl again to stand up
// - preg_generic_toggleduck_off: Hold Ctrl to crouch, release Ctrl to stand up
alias "pref_generic_toggleduck" "pref_generic_toggleduck_on"
// Togglevoice on/off:
// - pref_generic_togglevoice_on (default): Press V to talk and lower volume, press V again to stop talking and set back volume
// - preg_generic_togglevoice_off: Hold V to talk and lower volume, release V to stop talking and set back volume
alias "pref_generic_togglevoice" "pref_generic_togglevoice_on"
// Auto-record demos:
// - pref_generic_autorecord_on (default): Demos will be recorded by default. Press Shift+` to stop recording, and Shift+` again to resume recording.
// - preg_generic_autorecord_off: Demos will not be recorded by default. Press Shift+` to start recording, and Shift+` again to stop recording.
alias "pref_generic_autorecord" "pref_generic_autorecord_off"
// Default volume:
// Replace "volume 1" by whatever you usually use (for instance, "volume 0.5" for half volume)
alias "pref_generic_defaultvolume" "volume 1"
// Default talking volume:
// Replace "volume 0.35" by whatever you would like the volume to be changed to while you are speaking
alias "pref_generic_talkvolume" "volume 0.35"
// Enable ding-a-ling sound:
// - pref_generic_dingaling_on (default): Enables ding-a-ling sound
// - pref_generic_dingaling_off: Disables ding-a-ling sound
alias "pref_generic_dingaling" "pref_generic_dingaling_on"
// Default ding-a-ling volume:
// Replace "tf_dingaling_volume 0.3" by whatever you usually use for this sound's volume
alias "pref_generic_dingalingvol" "tf_dingaling_volume 0.3"
// "Quiet" ding-a-ling volume:
// Replace "tf_dingaling_volume 0.125" by whatever you use when you want this sound to be quieter (for example, as pyro)
alias "pref_generic_dingalinglow" "tf_dingaling_volume 0.125"
// "Superquiet" ding-a-ling volume:
// Replace "tf_dingaling_volume 0.025" by whatever you use when you want this sound to be really quieter (for example, when firing the flamethrower as pyro)
alias "pref_generic_dingalingxlow" "tf_dingaling_volume 0.025"

Credits

Some (most) ideas have been taken from scripts on TF2 Wiki, but all scripts have been rewritten from the ground up so that they never use the bind command directly. Everything has also been pseudo-namespaced (class-specific aliases begin with classname_, generic aliases begin with generic_, preference-related aliases begin with pref_, etc).