Team Fortress Wiki:Weapon Demonstration
From TF2 Wiki
The Weapon Demonstration project's goal is to build a complete library of videos demonstrating the various aspects of all weapons in Team Fortress 2.
- The idea: To have one consistent video style to demonstrate how weapons work.
- The objective: To demonstrate how weapons work; firing animation, reloading animation, projectile trajectory, speed, damage, and simply viewmodel
- The benefits: Consistent, one video per page (quiets those wanting to add their own video), looks good
Following the structure of the following video should give you a basic idea of what is expected.
See Scattergun for an embedding example.
- Having the item you want to demonstrate in either normal or vintage quality (no nametag, no description tag, no gifted weapons, and no community weapons); you can edit your game files to give yourself the item (Golden Wrench for example). If you have both a vintage and a unique variant of the weapon, use the unique one. Otherwise, use whichever one you have.
- Note If you do edit your game files to test a weapon, make sure to not create a weapon with a quality that cannot exist. For example, replacing a Vintage Razorback to make it a Darwin's Danger Shield will create a Vintage Danger Shield.
- Note Please also make sure that no attributes (such as damage, ammo etc) are left on a weapon that doesn't actually have it. For example, a Vita-saw placed over an Ubersaw, but still using the Ubersaw's attributes.
- Some demonstration videos may require a splitscreen. If yours does, download this file. Extract the
scriptsfolders from whichever HUD you need to your
- No skins, no custom models, and no custom sounds.
- Disable the Steam overlay or go offline; quiet all background applications that would interfere with the recording.
- Open TF2, open the console, and type:
map tr_target_weaponref. Wait for the map to load.
- Once the map has loaded, pick the class corresponding to the weapon you want to demonstrate.
- Edit the loadout to remove all headgear and misc. items. Pick all stock weapons (except the weapon to demonstrate, obviously); possible exceptions when weapons are meant to be demonstrated together (for example, Jarate + Bushwacka)
- Wait for the setup time to finish, verify that your new loadout has been equipped (by taunting)
- Open the console (press the
`key) and type
exec weaponref. Four bots will spawn: A Pyro in front of you, a Soldier on the right at mid-range, a Medic on the left at long-range, and a Spy behind the crates on the left (not visible by default). Re-executing the file will respawn all the bots at the correct location, in case you mess up. Pressing "F" makes the bots fire. Pressing "N" toggles noclip.
- Open your backpack, click the weapon you want to demonstrate, and press "Keep" so that your avatar equips it in the loadout preview. Rotate the loadout preview to show off the weapon.
- Move your mouse over the weapon slot, wait for the tooltip to appear.
- Always have auto-reloading disabled; reload only when out of ammo; always let the reload animation finish completely, reloading everything. Take your time.
- Start recording, but don't move your mouse until you have had the time to read all the attributes on the tooltip.
- Press close to close your backpack.
- Demonstrate the weapon. There are exceptions, but the process generally goes like this:
- Wait a few seconds doing nothing.
- Shoot once at the Pyro. Wait a bit.
- Finish off the Pyro.
- Kill the Soldier. If the weapon is a melee weapon, you can jump out of the initial zone.
- Kill the Medic.
- Eventually, try to hit the target at the far back (it is not destructible, but a small "HIT!" effect will show)
- If the weapon has a tauntkill, tauntkill the Spy (he is hiding behind one of the crates)
- If the weapon has resistance/vulnerability to fire/explosive/bullets/etc, show a splitscreen with and without the items equipped. (See the Chargin' Targe video for an example)
- Once done, reload completely, then taunt, and wait for the camera to move all the way back to first-person perspective. Try not to explode.
- End the recording.
- You may not modify contrast, speed, size etc. of the video.
- Add one of the
team fortress 2 content.gcf -> sound\misc. If necessary, adjust the relative volumes between music and in-game sounds to match the ratio of the reference video. Default volume should be okay though.
- Convert your video to a web-friendly format: It is recommended to use x264vfw, single-pass, quantizer-based, with q smaller than or equal to 20.
Please upload your video to Youtube, as "Unlisted". Then provide the URL to this video on the talk page. Keep the original video file, as you will have to upload it to some file hosting service (preferably MediaFire) in order for it to be uploaded to the Official TF2 Wiki's Youtube Channel.
Useful console commands
A list of console commands that might help when demonstrating more complex weapon behaviors. Most of these work only when sv_cheats has been set to 1.
bind <key> <command>- Binds a key to a command. Use this to use one of the below commands without opening the console window (for final take) if you don't want to edit it out.
hurtme <number>- Deals the stated amount of damage to the player. Can be used with a negative number to heal and/or overheal yourself.
impulse 101- Restores the player's health and ammo.
getpos- Displays the current position and rotation / aiming angle of the player in x, y and z coordinates.
setpos <x y z>- Teleports the player to a given position. Use the numbers acquired from
getposto place yourself into that same exact position.
setang <x y z>- Sets the view angle of the player, akin to
setpos. Use with the numbers from
getposto make your crosshair point the exact same way. The
<z>parameter should be left at 0, else the camera will appear to be tilting onto its side.
ent_create <entity name>- Spawns a health pack or ammo box at the player's crosshair when used with entity names
- To make the process easier, you can use this script, which binds the spawning of healthkits and ammo boxes to numpad keys.
changelevel <map name>- Changes the current map without rebooting the server as opposed to the
mapcommand. You can use it with the name of the current map to reload the map, cleaning it of bodies, excess blood and bullet marks.
violence_hblood<0 or 1> - Enables or disables blood. Useful for performing practice takes, so that you don't need to reload the map.
bot -team -class -name- Adds a puppet bot with the specified parameters. For the sake of consistency, the bots' names must correspond with their classes, with a prefix "Friendly" if it's on the BLU team, and a single-digit postfix if there's more than one bot of the same class on the given team. This command is not to be confused with
addbot, which adds an AI-controlled bot instead of a puppet bot.
bot -team blu -class medic -name "Friendly Medic"; bot -team red -class heavy -name "Heavy 1"; bot -team red -class heavy name "Heavy 2"
bot_command <bot name> <console command>- Makes the specified bot perform the specified command. Particularly useful for making engineer bots enter build mode.
bot_command "Friendly Engineer" build <number from 0 to 3>(0 for the dispenser, 1 for the sentry, 2 for the teleport enrance and 3 for the teleport exit)
bot_mimic <0 or 1>- Makes all the bots mimic the player's actions.
- Example: In order to make a Spy disguise, you need to perform the keystrokes for disguising while playing as a Spy and having the mimic option enabled. Similarly, the only way to make Engineer bots rotate buildings is to press mouse2 with the mimic option on. Note that Engineer bots will not mimic you creating buildings as an Engineer, you must use
bot_command <bot name> build <number>instead.
bot_mimic_yaw_offset <angle from 0 to 360>- Makes the bots face in a direction this angle from the player while mimicking his actions. By default it's set to
180so bots face the player.
bot_dontmove <0 or 1>- Allows or prevents all bots from moving. Takes priority over
bot_refill- Restores ammo and health for all bots.
bot_teleport <name> <x y z x1 y1 z1>- Teleports the specified bot to the given coordinates.
zdefine the position and
z1define where the bot aims its weapon. The needed numbers can be acquired by placing yourself on the bot's desired future position and using the
cc_bot_selectweapon <name> <slot>- Forces a bot to switch to a specified weapon slot.
cc_bot_selectweapon heavy 2will make a bot named "Heavy" switch to his Fists.
bot_forcefireweapon <weapon name>- Makes all the bots fire the specified weapon if they possess it. This can be used to make only one bot fire his weapon, instead of all the bots when using the
bot_forceattackcommand. If the weapon name is invalid, all bots will stop firing. Scout and Engineer pistols are regarded as different weapons, and so are Soldier, Pyro, Heavy and Engineer shotguns. See this page for a full list of valid weapon names.
alias "+rocket" "bot_forcefireweapon tf_weapon_rocketlauncher";
alias "-rocket" "bot_forcefireweapon randomword";
alias "+flame" "bot_forcefireweapon tf_weapon_flamethrower";
alias "-flame" "bot_forcefireweapon herpderp";
bind f +flame;
bind t +rocket
- Note Bots cannot equip non-stock weapons or items. If you need an enemy character to use an unlockable weapon, you'll need a second human player to play as that character. Feel free to ask for cooperation on the discussion page.
bot_forceattack <0 or 1>- Make all bots perform their primary attack (
bot_forceattack2 <0 or 1>- Make all bots perform their secondary attack (
- Whilst the above two commands may not seem as immediately useful as
bot_forecefireweapon, they are best suited to making a bot perform their secondary fire for a weapon. For example, using the following code, you can make Sniper bots scope-in, or Spy bots engage their cloak:
alias +cloak "bot_forceattack 1; bot_forceattack2 1"
alias -cloak "bot_forceattack 0; bot_forceattack2 0"
bind key +cloak
Note You can't alias or bind a bot action to a key if the bot's name has spaces in it. This can be avoided by creating a config file containing the desired commands and binding the execution of said file to a key.
bind p "bot_teleport Friendly Spy x y z x1 y1 z1"- Wrong.
bind p "exec action.cfg"while the file
bot_teleport Friendly Spy x y z x1 y1 z1- Correct.
- Cloak and Dagger
- Combat Mini-Sentry Gun
- Dead Ringer
- Disguise Kit
- Error creating thumbnail: Unable to run external programs, passthru() is disabled.Dispenser
- Medi Gun
- Nessie's Nine Iron
- Persian Persuader
- Reserve Shooter - Waiting for upload - http://www.mediafire.com/?zf7s67zweb8nrdh
- Sentry Gun
- Splendid Screen
- The Saharan Spy
Need to be redone
- Electro Sapper
- Golden Wrench
- Horseless Headless Horseman's Headtaker
- Righteous Bison
- Rocket Jumper
- Ali Baba's Wee Booties
- Back Scratcher
- Battalion's Backup
- Bazaar Bargain
- Big Earner
- Big Kill
- Black Box
- Bonk! Atomic Punch
- Boston Basher
- Brass Beast
- Buff Banner
- Buffalo Steak Sandvich
- Candy Cane
- Chargin' Targe
- Claidheamh Mòr
- Conniver's Kunai
- Cow Mangler 5000
- Crusader's Crossbow
- Dalokohs Bar
- Darwin's Danger Shield
- Direct Hit
- Director's Vision
- Disciplinary Action
- Enthusiast's Timepiece
- Eviction Notice
- Family Business
- Fan O'War
- Fire Axe
- Fists of Steel
- Flare Gun
- Frontier Justice
- Frying Pan
- Grenade Launcher
- Gloves of Running Urgently
- Holy Mackerel
- Invisibility Watch
- Iron Curtain
- Killing Gloves of Boxing
- Liberty Launcher
- Market Gardener
- Mad Milk
- Meet the Medic (Taunt)
- Pain Train
- Postal Pummeler
- Rocket Launcher
- Scotsman's Skullcutter
- Scottish Resistance
- Sharpened Volcano Fragment
- Sniper Rifle
- Soda Popper
- Solemn Vow
- Southern Hospitality
- Sticky Jumper
- Stickybomb Launcher
- Submachine Gun
- Sydney Sleeper
- Syringe Gun
- Error creating thumbnail: Unable to run external programs, passthru() is disabled.Teleporter
- Three-Rune Blade
- Tribalman's Shiv
- The Croc-o-Style Kit
- The Expert's Ordnance
- The Gas Jockey's Gear
- The Hibernating Bear
- The Medieval Medic
- The Special Delivery
- The Tank Buster
- Ullapool Caber
- Warrior's Spirit
- Your Eternal Reward