Team Fortress Classic

Team Fortress Classic

spy auto disguise scripts
does anybody know any WORKING spy disguise scripts? everything i found on the internet doesnt seem to work
< >
Showing 1-9 of 9 comments
pizzahut Jan 25, 2021 @ 2:54pm 
Experimented a bit and this seems to work:

bind mouse1 +att_disg
alias +att_disg "+attack"
alias -att_disg "-attack;disguise_enemy 8"

Attack to disguise. On Battlezone, this might work when (re)spawning (not tested):

alias strigger_spawn "disguise_enemy 8"

Only problem is when an enemy scout or spy comes near, you lose your disguise and won't automatically disguise again.

Edit: There's a spy script on here but idk if it still works:

http://tfcresource.teamfortressclassic.org/scripts_class.html
Last edited by pizzahut; Jan 25, 2021 @ 3:07pm
Paft Jan 25, 2021 @ 3:51pm 
I had all my configs exactly how I wanted back in 2008ish. As Pizza mentioned/linked, it only half works now. It wouldn't change class disguise anymore for me.

I'd correct the echo messages etc to be compatible for current TFC, but I really can't be bothered these days. Although, time lines are several years, Valve keep fixing/"breaking" stuff. The spy script and echo message workarounds inside the scripts are the only things that don't work on that site, I think. I don't really play enough these days to bother.


Toasties script seems to work fine:
// ---------- [ Toastie Spy Script ] // Auto disguise after fire /w auto reload * bind "MOUSE1" "+spyattack" alias +spyattack "+attack; wait; -reload; tf_sl3" alias -spyattack "-attack; wait; +reload; wait; last_disguise" // Hold key and press slot numbers to pick a class * bind "kp_slash" "+enemy_disguise; spk enemy" bind "kp_mul" "+friendly_disguise; spk team" alias e1 "disguise_enemy 1; alias last_disguise e1" alias e2 "disguise_enemy 2; alias last_disguise e2" alias e3 "disguise_enemy 3; alias last_disguise e3" alias e4 "disguise_enemy 4; alias last_disguise e4" alias e5 "disguise_enemy 5; alias last_disguise e5" alias e6 "disguise_enemy 6; alias last_disguise e6" alias e7 "disguise_enemy 7; alias last_disguise e7" alias e8 "disguise_enemy 8; alias last_disguise e8" alias e9 "disguise_enemy 9; alias last_disguise e9" alias f1 "disguise_friendly 1; alias last_disguise f1" alias f2 "disguise_friendly 2; alias last_disguise f2" alias f3 "disguise_friendly 3; alias last_disguise f3" alias f4 "disguise_friendly 4; alias last_disguise f4" alias f5 "disguise_friendly 5; alias last_disguise f5" alias f6 "disguise_friendly 6; alias last_disguise f6" alias f7 "disguise_friendly 7; alias last_disguise f7" alias f8 "disguise_friendly 8; alias last_disguise f8" alias f9 "disguise_friendly 9; alias last_disguise f9" alias +enemy_disguise "bind 1 e1; bind 2 e2; bind 3 e3; bind 4 e4; bind 5 e5; bind 6 e6; bind 7 e7; bind 8 e8; bind 9 e9" alias -enemy_disguise "bind 1 slot1; bind 2 slot2; bind 3 slot3; bind 4 slot4; bind 5 slot5" alias +friendly_disguise "bind 1 f1; bind 2 f2; bind 3 f3; bind 4 f4; bind 5 f5; bind 6 f6; bind 7 f7; bind 8 f8; bind 9 f9" alias -friendly_disguise "bind 1 slot1; bind 2 slot2; bind 3 slot3; bind 4 slot4; bind 5 slot5"
Last edited by Paft; Jan 25, 2021 @ 6:17pm
76561199066628610 Jan 26, 2021 @ 5:10am 
neither of these work, and yes i tried each in spy.cfg
pizzahut Jan 26, 2021 @ 5:39am 
I tried the script Paft posted. You have to press and hold down / or * on the number pad, then press 1 to 9 (standard keys, not number pad) as well, and then you can release both.

Once this is done, the script remembers the disguise you chose until you exit the game or choose a different disguise.

Is the spy.cfg actually executed? You might need to add this to the config.cfg (or just type it into the console):

setinfo "ec" "1" // execute class cfg files
setinfo "em" "1" // execute map cfg files

You can execute it manually:

exec spy.cfg

Or bind a key if all else fails:

bind backspace "exec spy.cfg"

Thinking it might be better to use number pad keys for selection of the disguise. But the script needs to be adjusted. Binds in order of the numbers:

bind KP_END
bind KP_DOWNARROW
bind KP_PGDN

bind KP_LEFTARROW
bind KP_5
bind KP_RIGHTARROW

bind KP_HOME
bind KP_UPARROW
bind KP_PGUP

So the script would then be edited like this:

alias +enemy_disguise "bind KP_END e1; bind KP_DOWNARROW e2; (and so on)

alias +friendly_disguise "bind KP_END f1; bind KP_DOWNARROW f2; (and so on)
Last edited by pizzahut; Jan 26, 2021 @ 6:03am
76561199066628610 Jan 26, 2021 @ 6:05am 
Originally posted by pizzahut:
I tried the script Paft posted. You have to press and hold down / or * on the number pad, then press 1 to 9 (standard keys, not number pad) as well, and then you can release both.

Once this is done, the script remembers the disguise you chose until you exit the game or choose a different disguise.

Is the spy.cfg actually executed? You might need to add this to the config.cfg (or just type it into the console):

setinfo "ec" "1" // execute class cfg files
setinfo "em" "1" // execute map cfg files

You can execute it manually:

exec spy.cfg

Or bind a key if all else fails:

bind backspace "exec spy.cfg"

Thinking it might be better to use number pad keys for selection of the disguise. But the script needs to be adjusted. Binds in order of the numbers:

bind KP_END
bind KP_DOWNARROW
bind KP_PGDN

bind KP_LEFTARROW
bind KP_5
bind KP_RIGHTARROW

bind KP_HOME
bind KP_UPARROW
bind KP_PGUP

So the script would then be edited like this:

alias +enemy_disguise "bind KP_END e1; bind KP_DOWNARROW e2; (and so on)

alias +friendly_disguise "bind KP_END f1; bind KP_DOWNARROW f2; (and so on)
spy.cfg not executing is probably the case. putting it in userconfig.cfg actually works though.

i made my own script after fiddling around for a bit, it makes it so that you both automatically reload and disguise as the enemy soldier if youre playing spy whenever you shoot.

bind mouse1 +shoot alias +shoot "+attack;wait;-reload" alias -shoot "-attack;wait;disguise_enemy 3;+reload
Paft Jan 26, 2021 @ 4:58pm 
I've had rum and it's 00:57--so I don't know why I am posting now really..but here I am.

But yeah, the script I posted works fine for me. You have to hold down a key of your choice (for me it's 'FN' and 'Context Menu' keys remapped to the number-pad '*' and '/' and press a slot number for a class. When you let go the numbers go back to default (weapon selection.) But I do use as you've mentioned userconfig.cfg:


setinfo "ec" "1" // Automatic exec for class.cfg
setinfo "em" "1" // Automatic exec for map.cfg
setinfo "dc" "1" // Exec Default Class
setinfo "dm" "1" // Exec Default Map

I am on a 10-keyless keyboard (no number-pad) so that's why it's like that.

Something like 'CAPSLOCK' and 'ALT' would make more sense. I just don't have many spare free keys.

The original script on my site used the number-pad If I remember correctly (it's been ages), before Valve "broke" various things in it.

As I've mentioned I don't really play anymore. I didn't write the one I posted in the 3rd post, but it seems to work well enough for me.

I did add the spk commands as a test, but you could remove 'spk team' spk 'enemy'.

Hopefully that's clear? I'll report back on the next reply with a fresher mind.
Last edited by Paft; Jan 27, 2021 @ 3:34am
auto disguise scripts were fixed about a year ago, it is no longer possible to 'instantly' [re]disguise immediately after performing an attack. you simply will not attempt to disguise if your flNextAttack timer is non-zero.

The script itself will still work, however attempting to perform an attack will cancel any current disguise or prevent one from starting. What was once a feature is now a well patched bug.
ZieΩmega Feb 4, 2021 @ 6:08pm 
This still works too. Just copy to your spy.cfg and change the bind keys if being used in your config.cfg

// auto disguise / notify / change speed config Hold down keypad + key and press a keypad number for the enemy class disguise u want. Hold down keypad - key and another keypad number key if you want to be freindly disguised. bind "KP_PLUS" "+nmedis" bind "KP_MINUS" "+fridis" alias +nmedis "bind KP_END nmedis1; bind KP_DOWNARROW nmedis2; bind KP_PGDN nmedis3; bind KP_LEFTARROW nmedis4; bind KP_5 nmedis5; bind KP_RIGHTARROW nmedis6; bind KP_HOME nmedis7; bind KP_UPARROW nmedis8; bind KP_PGUP nmedis9" alias -nmedis "gcs" ('gcs' runs the general comms script, just change "gcs" to "" if you don't use it) alias +fridis "bind KP_END fridis1; bind KP_DOWNARROW fridis2; bind KP_PGDN fridis3; bind KP_LEFTARROW fridis4; bind KP_5 fridis5; bind KP_RIGHTARROW fridis6; bind KP_HOME fridis7; bind KP_UPARROW fridis8; bind KP_PGUP fridis9" alias -fridis "gcs" alias stopdis "bind mouse1 +normfire" alias "+normfire" "+attack; cl_forwardspeed 500; cl_backspeed 500; cl_sidespeed 500" alias "-normfire" "-attack; bind mouse1 +attack" alias nmedis1 "+commandmenu 7 1 1 .; say_team Disguising as Enemy SCOUT ; cl_forwardspeed 450; cl_backspeed 450; cl_sidespeed 450; stopdis" alias nmedis2 "+commandmenu 7 1 2 .; say_team Disguising as Enemy SNIPER ; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis" alias nmedis3 "+commandmenu 7 1 3 .; say_team Disguising as Enemy SOLDIER ; cl_forwardspeed 240; cl_backspeed 240; cl_sidespeed 240; stopdis" alias nmedis4 "+commandmenu 7 1 4 .; say_team Disguising as Enemy DEMO; cl_forwardspeed 280; cl_backspeed 280; cl_sidespeed 280; stopdis" alias nmedis5 "+commandmenu 7 1 5 .; say_team Disguising as Enemy MEDIC; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis" alias nmedis6 "+commandmenu 7 1 6 .; say_team Disguising as Enemy HWGUY; cl_forwardspeed 150; cl_backspeed 150; cl_sidespeed 150; stopdis" alias nmedis7 "+commandmenu 7 1 7 .; say_team Disguising as Enemy PYRO; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis" alias nmedis8 "+commandmenu 7 1 8 .; say_team Disguising as Enemy SPY; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis" alias nmedis9 "+commandmenu 7 1 9 .; say_team Disguising as Enemy ENGY; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis" alias fridis1 "+commandmenu 7 2 1 .; say_team Disguising as Friendly SCOUT ; cl_forwardspeed 450; cl_backspeed 450; cl_sidespeed 450; stopdis" alias fridis2 "+commandmenu 7 2 2 .; say_team Disguising as Friendly SNIPER ; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis" alias fridis3 "+commandmenu 7 2 3 .; say_team Disguising as Friendly SOLDIER ; cl_forwardspeed 240; cl_backspeed 240; cl_sidespeed 240; stopdis" alias fridis4 "+commandmenu 7 2 4 .; say_team Disguising as Friendly DEMO; cl_forwardspeed 280; cl_backspeed 280; cl_sidespeed 280; stopdis" alias fridis5 "+commandmenu 7 2 5 .; say_team Disguising as Friendly MEDIC; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis" alias fridis6 "+commandmenu 7 2 6 .; say_team Disguising as Friendly HWGUY; cl_forwardspeed 150; cl_backspeed 150; cl_sidespeed 150; stopdis" alias fridis7 "+commandmenu 7 2 7 .; say_team Disguising as Friendly PYRO; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis" alias fridis8 "+commandmenu 7 2 8 .; say_team Disguising as Friendly SPY; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis" alias fridis9 "+commandmenu 7 2 9 .; say_team Disguising as Friendly ENGY; cl_forwardspeed 400; cl_backspeed 400; cl_sidespeed 400; stopdis"

// Perform silence feign with one bind key bind x "sfeign"

**one of my favs that still work
// Knife attach, auto switch to knife & keeps stabbing till you press key again alias stab stabon alias stabon "use tf_weapon_knife;+attack; alias stab staboff" alias staboff "-attack; lastinv; alias stab stabon" bind x stab
Hate to beat a dead horse, but any script you say 'still works' indeed does not, read my post for more information on what the OP is actually asking about.


Originally posted by -EVIL- Mášŧεя¹:
auto disguise scripts were fixed about a year ago, it is no longer possible to 'instantly' [re]disguise immediately after performing an attack. you simply will not attempt to disguise if your flNextAttack timer is non-zero.

The script itself will still work, however attempting to perform an attack will cancel any current disguise or prevent one from starting. What was once a feature is now a well patched bug.
< >
Showing 1-9 of 9 comments
Per page: 1530 50

Date Posted: Jan 25, 2021 @ 12:37pm
Posts: 9