Viewmodels 2 - TF2 Config Script

I consider this script an improved version of the classic viewmodel script, which shows and hides your viewmodels with weapon switches.

Features of this Script:

  • Works with Q (lastinv)
  • Bind Neutral - No bind commands within the script.
  • All Settings in autoexec - So you only have to open 1 file to edit.
  • Compatable - slot commands remain bound to keys, so other scripts can be installed along side. This also means you will still be able to switch weapons if the script isn't loaded.
  • Customisable - Additonal commands can be implemented.
  • Very Short - 10 lines in your autoexec for script itself, plus 27 lines for your settings.
  • Demo Shields Dont break Q - Pressing slot2 with a demo shield wont break the Q (lastinv) key.

Download

If you don't know what to do, follow this guide on Setting up TF2 Configuration Files before you continue.

Packed script: viewmodel2.rar - 6.68KB


The Script for Manual Install

Add the following code to the specified configuration files:
autoexec.cfg:
// --------------------------------------------------
// Settings (EDIT HERE)
// --------------------------------------------------
alias settings_1_1 "r_drawviewmodel 1"   // Settings for: Scout ---- Slot 1 - Primary
alias settings_1_2 "r_drawviewmodel 1"   // Settings for: Scout ---- Slot 2 - Secondary
alias settings_1_3 "r_drawviewmodel 1"   // Settings for: Scout ---- Slot 3 - Melee
alias settings_2_1 "r_drawviewmodel 1"   // Settings for: Soldier -- Slot 1 - Primary
alias settings_2_2 "r_drawviewmodel 1"   // Settings for: Soldier -- Slot 2 - Secondary
alias settings_2_3 "r_drawviewmodel 1"   // Settings for: Soldier -- Slot 3 - Melee
alias settings_3_1 "r_drawviewmodel 1"   // Settings for: Pyro ----- Slot 1 - Primary
alias settings_3_2 "r_drawviewmodel 1"   // Settings for: Pyro ----- Slot 2 - Secondary
alias settings_3_3 "r_drawviewmodel 1"   // Settings for: Pyro ----- Slot 3 - Melee
alias settings_4_1 "r_drawviewmodel 1"   // Settings for: Demoman -- Slot 1 - Primary
alias settings_4_2 "r_drawviewmodel 1"   // Settings for: Demoman -- Slot 2 - Secondary
alias settings_4_3 "r_drawviewmodel 1"   // Settings for: Demoman -- Slot 3 - Melee
alias settings_5_1 "r_drawviewmodel 1"   // Settings for: Heavy ---- Slot 1 - Primary
alias settings_5_2 "r_drawviewmodel 1"   // Settings for: Heavy ---- Slot 2 - Secondary
alias settings_5_3 "r_drawviewmodel 1"   // Settings for: Heavy ---- Slot 3 - Melee
alias settings_6_1 "r_drawviewmodel 1"   // Settings for: Engineer - Slot 1 - Primary
alias settings_6_2 "r_drawviewmodel 1"   // Settings for: Engineer - Slot 2 - Secondary
alias settings_6_3 "r_drawviewmodel 1"   // Settings for: Engineer - Slot 3 - Melee
alias settings_7_1 "r_drawviewmodel 1"   // Settings for: Medic ---- Slot 1 - Primary
alias settings_7_2 "r_drawviewmodel 1"   // Settings for: Medic ---- Slot 2 - Secondary
alias settings_7_3 "r_drawviewmodel 1"   // Settings for: Medic ---- Slot 3 - Melee
alias settings_8_1 "r_drawviewmodel 1"   // Settings for: Sniper --- Slot 1 - Primary
alias settings_8_2 "r_drawviewmodel 1"   // Settings for: Sniper --- Slot 2 - Secondary
alias settings_8_3 "r_drawviewmodel 1"   // Settings for: Sniper --- Slot 3 - Melee
alias settings_9_1 "r_drawviewmodel 1"   // Settings for: Spy ------ Slot 1 - Secondary
alias settings_9_2 "r_drawviewmodel 1"   // Settings for: Spy ------ Slot 2 - Sapper
alias settings_9_3 "r_drawviewmodel 1"   // Settings for: Spy ------ Slot 3 - Melee

// --------------------------------------------------
// Viewmodels Script
// --------------------------------------------------
alias eq_1 "eq_1f2"
alias eq_2 "eq_2f1"
alias eq_3 "eq_3f1"
alias eq_q "eq_2f1"
alias eq_1f2 "r_1;alias eq_q eq_2f1;alias eq_2 eq_2f1;alias eq_3 eq_3f1"
alias eq_1f3 "r_1;alias eq_q eq_3f1;alias eq_2 eq_2f1;alias eq_3 eq_3f1"
alias eq_2f1 "r_2;alias eq_q eq_1f2;alias eq_1 eq_1f2;alias eq_3 eq_3f2"
alias eq_2f3 "r_2;alias eq_q eq_3f2;alias eq_1 eq_1f2;alias eq_3 eq_3f2"
alias eq_3f1 "r_3;alias eq_q eq_1f3;alias eq_1 eq_1f3;alias eq_2 eq_2f3"
alias eq_3f2 "r_3;alias eq_q eq_2f3;alias eq_1 eq_1f3;alias eq_2 eq_2f3"

// --------------------------------------------------
// Binds
// --------------------------------------------------
bind "1" "slot1;eq_1"
bind "2" "slot2;eq_2"
bind "3" "slot3;eq_3"
bind "q" "lastinv;eq_q"
scout.cfg:
alias r_1 "settings_1_1"
alias r_2 "settings_1_2"
alias r_3 "settings_1_3"
soldier.cfg:
alias r_1 "settings_2_1"
alias r_2 "settings_2_2"
alias r_3 "settings_2_3"
pyro.cfg:
alias r_1 "settings_3_1"
alias r_2 "settings_3_2"
alias r_3 "settings_3_3"
demoman.cfg:
alias r_1 "settings_4_1"
alias r_2 "settings_4_2"
alias r_3 "settings_4_3"
heavyweapons.cfg:
alias r_1 "settings_5_1"
alias r_2 "settings_5_2"
alias r_3 "settings_5_3"
engineer.cfg:
alias r_1 "settings_6_1"
alias r_2 "settings_6_2"
alias r_3 "settings_6_3"
medic.cfg:
alias r_1 "settings_7_1"
alias r_2 "settings_7_2"
alias r_3 "settings_7_3"
sniper.cfg:
alias r_1 "settings_8_1"
alias r_2 "settings_8_2"
alias r_3 "settings_8_3"
spy.cfg:
alias r_1 "settings_9_1"
alias r_2 "settings_9_2"
alias r_3 "settings_9_3"

Editing Settings

Only ever edit the settings in autoexec.cfg. The code in the class specific configs isn't settings, its to make the script execute the correct settings for the classes.

Changing View Model Settings:

Decide which weapons you want to change for which classes and edit the lines accordingly:
viewmodel on:
alias settings_2_1 "r_drawviewmodel 1"   // Soldier - Primary
viewmodel off:
alias settings_2_1 "r_drawviewmodel 0"   // Soldier - Primary

Adding Settings:

Add the commands you want to the settings lines:
Different crosshairs for different weapons:
alias settings_2_1 "r_drawviewmodel 1;cl_crosshair_file crosshair3"   // Soldier - Primary
alias settings_2_2 "r_drawviewmodel 1;cl_crosshair_file crosshair2"   // Soldier - Secondary
alias settings_2_3 "r_drawviewmodel 1;cl_crosshair_file crosshair1"   // Soldier - Melee

Make sure you add the commands to every setting line (all 27), or changing class will leave residual settings you may not want.

Disabling the Script for a specific class

Having viewmodels off for spy make playing the deadringer difficult. There are a couple options to disable the script.

Set all the viewmodels on:

alias settings_9_1 "r_drawviewmodel 1"   // Spy - Secondary
alias settings_9_2 "r_drawviewmodel 1"   // Spy - Sapper
alias settings_9_3 "r_drawviewmodel 1"   // Spy - Melee

This option is the easiest.

Removing all the settings:

alias settings_9_1 ""   // Spy - Secondary
alias settings_9_2 ""   // Spy - Sapper
alias settings_9_3 ""   // Spy - Melee
This way nothing is executed at all when changing weapons on spy. This also makes it compatable with a spy specific viewmodel script. Also you should add the default for the settings you removed to your spy.cfg, to avoid residual settings when changing class:
spy.cfg:
r_drawviewmodel 1