Can't give myself unlockable weapons through console

I wanted to use some unlocks for TF2 Training, so I started as Scout, then tried using the command:

give tf_weapon_bat_wood

which should have given me the Sandman. However, no weapon was given, so I tried:

give tf_weapon_bat_wood; use tf_weapon_bat_wood; +use

This did nothing either. I thought maybe it didn't work on the unlocks, so I tried a stock weapon, the Pyro's Flamethrower:

give tf_weapon_flamethrower; use tf_weapon_flamethrower; +use

This didn't work on the Scout, but it did work on the Pyro (but only because I already had the Flamethrower.)

I tried other weapons, like the Huntsman (tf_weapon_hunstman), and the Frontier Justice (tf_weapon_sentry_revenge), but nothing happened. sv_cheats and tf_allow_player_use were both set to 1, and it was offline practice, so I was admin.

Does anyone know why this won't give me the weapons I want, and how I can give myself unlocks?


The give command doesn't give you unlockable weapons or any other arbitrary backpack item in TF2; otherwise it would be trivial for anyone to just cheat the items in, bypassing the item drop system entirely. What it does is spawn an item that can be picked up, which, for weapons, is equipped automatically in Half-Life 2 and Counter-Strike: Source. Item pickups in those games are local to the game being played rather than being connected to the Steam inventory system.

When you pick up a dropped "weapon" in TF2 you don't really get the weapon; you get some metal or ammo instead, though I'm not certain if give has that effect.

You can only use weapons that you have in your current loadout, which means you must have them in your backpack in order to equip them in your loadout.

All that said, there probably exist server modifications that allow you to "obtain" weapons of any kind (even modified versions of existing weapons) for use in the local game. I don't mod my TF2 so I don't know any good ones off the top of my head.