Difference between revisions of "Team Fortress Wiki:Weapon Demonstration"

From Team Fortress Wiki
Jump to: navigation, search
(Weapons)
 
Line 1: Line 1:
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.
+
{| style="clear:both; background:none; color:black;"
 +
| width="60%" style="border:1px solid #a3b0bf; padding:1em 1em 1em 1em; background-color:#FFFCF7" valign="top"|
 +
<span style="font-size:16pt">'''Weapon Demonstration Project'''</span>
 +
[[File:Thats a wrap.png|left|40px]]
 +
The '''Weapon Demonstration''' project's goal is to build a complete library of videos demonstrating the various aspects of all weapons, game mechanics, tools, and taunts in ''Team Fortress 2''.
  
* '''The idea''': To have one consistent video style to demonstrate how weapons work.
+
* '''The idea''': To have one consistent video style demonstrating how weapons, game mechanics, tools and taunts work.
* '''The objective''': To demonstrate how weapons work (duh); firing animation, reloading animation, projectile trajectory, speed, damage, and simply viewmodel
+
* '''The objective''': To demonstrate how everything works: viewmodels, animations, special abilities, etc.
* '''The benefits''': Consistent, one video per page (quiets those wanting to add their own video), looks good
+
* '''The benefits''': Consistent, one video per page, looks good.
  
== Reference video ==
+
Anyone who meets the requirements can make a demonstration video that is needed for an item and submit the video for review, if the video meets the standard and is approved by the project reviewers, your video will be uploaded to the Official TF2 Wiki Channel on [https://www.youtube.com/user/OfficialTF2Wiki/videos YouTube] and [https://space.bilibili.com/531557387 Bilibili]. Check [[#Making a demonstration video|the section]] below for detailed requirements and a guide on how to make a demonstration video. You may also find the demonstration video that is needed or needs to be redone on this page. Feel free to ask any questions before starting making the demonstration on the [[Team_Fortress_Wiki_Talk:Weapon_Demonstration|talk page]].
Following the structure of the following video should give you a basic idea of what is expected.
 
  
{{youtube|y0A7D2ufqrU|width=640}}
+
'''Project reviewers''': [[User:Ashe|Ashe]], [[User:GrampaSwood|GrampaSwood]]. A video only needs approval from one Project reviewer for publication. While anyone can provide feedback on anyone else's video, only the Project reviewers may give the final stamp of approval for video publication.
  
See [[Scattergun]] for an embedding example.
+
__TOC__
  
== Guidelines ==
+
| width="40%" style="border:1px solid #a3b0bf; padding:1em 1em 1em 1em; background-color:#FFFCF7" valign="top"|
=== Requirements ===
+
<b><font style="font-size:130%">Reference video<br></font></b>
* Being able to run TF2 at a resolution of either 1280x720 or 1920x1080 (16:9 ratio), at more than 30 frames per second, on medium settings or higher, with DirectX 9, and at least 2x antialiasing.
 
* [http://www.fraps.com/ Fraps], [http://upload.gaiatools.com/files/tr_target_weaponref_1.rar tr_target_weaponref], [http://wiki.teamfortress.com/w/images/a/ab/Weapon_demonstration_config.txt weaponref.cfg], and [http://wiki.teamfortress.com/w/images/6/67/Weapon_demonstration_HudDamageAccount.txt HudDamageAccount.res].
 
* Having the item you want to demonstrate in either normal or vintage quality (no nametag, no description tag, no gifted weapons, no community weapon, final destination); you can edit your game files to give yourself the item (Golden Wrench for example)
 
:{{c|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.
 
  
=== Preparation ===
+
Following the structure of the following videos should give you a basic idea of what is expected. Visit the [https://www.youtube.com/user/OfficialTF2Wiki/videos Official TF2 Wiki YouTube Channel] for more videos.
* The video should be recorded on [http://upload.gaiatools.com/files/tr_target_weaponref_1.rar tr_target_weaponref]. Download the map and put it in your maps folder.
 
* The configuration file to use is available [http://wiki.teamfortress.com/w/images/a/ab/Weapon_demonstration_config.txt here]. Save it as <code>weaponref.cfg</code> in your <code>cfg</code> folder.
 
* Disable any custom HUD you may have; download [http://wiki.teamfortress.com/w/images/6/67/Weapon_demonstration_HudDamageAccount.txt this file] and save it as <code>HudDamageAccount.res</code> in your <code>resource/ui</code> folder (create it if it doesn't already exist).
 
* No skins, no custom models, no custom sounds, final destination.
 
* Disable the Steam overlay or go offline; quiet all background applications that would interfere with the recording.
 
* Open TF2, open the console, and type: <code>map tr_target_weaponref</code>. 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 <code>`</code> key) and type <code>exec weaponref</code>. 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.
 
  
=== Recording ===
+
<b>Weapon<br></b>
* '''Start recording''', but don't move your mouse until you have had the time to read all the attributes on the tooltip.
+
{{youtube|S-72clXbUDs|width=300|hd=1}}
* Press close to close your backpack.
+
 
* Demonstrate the weapon. There are exceptions, but the process generally goes like this:
+
<b>Taunt<br></b>
 +
{{youtube|qmZSEp3jjx0|width=300|hd=1}}
 +
 
 +
<b>Tool<br></b>
 +
{{youtube|G1_MBB-cwUg|width=300|hd=1}}
 +
|}
 +
 
 +
{| style="clear:both; background:none;" width="100%"
 +
| width="60%" style="border:1px solid #dfdfdf; padding:1em 1em 1em 1em; background-color:#f5faff; font-size:100%;" valign=top|
 +
{| class="collapsible collapsed" width="100%"
 +
! colspan="1" class="header" align="left"|
 +
==Making a demonstration video==
 +
|-
 +
|
 +
===Requirements===
 +
* Being able to run TF2 at a resolution of 1920x1080 or higher (must be 16:9 ratio), at more than 60 frames per second, on high settings, with DirectX 9, HDR enabled, and at least 2x multisample anti-aliasing (MSAA), and recording with any [[#Useful information|screen recording programs]] at the same time.
 +
** Preferably, you should use [https://comfig.app/ mastercomfig] with at least the "High" preset with the following changes: Shadows: Medium or High, Lighting: High, Model quality: Ultra (to avoid model LOD "jump", more noticeable in Medic's lab coat), Texture quality: Very High or Ultra, Player Model: Disabled, Contracts: Disabled, Match HUD: Disabled, HUD Achievements: Disabled, no modifying anything in the Weapons tab.
 +
** In TF2's [https://help.steampowered.com/faqs/view/7D01-D2DD-D75E-2955 launch options], use {{code|-dxlevel 95}} and {{code|-no_texture_stream}} (disables [[Ultra high settings#Disable_Texture_Streaming|texture streaming]]).
 +
* Having the item you want to demonstrate. No name tag, no description tag, no craft number, no gifted item, and no Community quality. Item quality preference will be Normal > Unique > Vintage or Genuine > Other quality. Exceptions can be made for items that cannot exist in any of these qualities. If an item is more abundant or more easily obtainable in a different quality than these (e.g. Haunted quality for Halloween items), that alternate quality is also acceptable. If the item can have a decal applied, don't use a decal on it.
 +
:{{c|Note:}} If you edit your game's files there must not be any way for viewers to tell that you did so (identical item level, plausible quality, same attributes, non-visibly-edited loadout screen). This guide will not provide any help on doing that.
 +
* Some knowledge about TF2, [[Bots#Puppet bots|Puppet bots]], console commands, how to use any screen recording software, and video editing software.
 +
 
 +
===Preparation===
 +
#'''Reserve the item demonstration first on the talk page!''' Check [[#Talk page reservations|Talk page reservations section]] for how and why. If you don't have a Team Fortress Wiki account yet, you would probably want to register one now at the top right corner of the page.
 +
#Download necessary custom files: [https://drive.google.com/file/d/1FpTukmmMYeXzArZqMOcK8o8aIqBJ2jHf/view?usp=sharing weaponref.zip] . This can be extracted using [https://www.7-zip.org 7zip], [https://www.win-rar.com/ WinRAR], or with Windows built-in file explorer. The content of the folder go into {{code|<your team fortress 2 folder>/tf/custom}}.
 +
#Set your game to appropriate graphic settings.
 +
#Disable any custom files you may have, such as custom HUDs, custom configs, sounds, models; the included <code>demonstration_hud</code> folder will override custom HUDs. The only exception are mastercomfig's files (the VPK and the CFG files)
 +
#Make a backup of your {{code|tf/cfg}} folder! Several cvars will be changed when executing the required config files (for example, the value of {{code|cl_hud_playerclass_use_playermodel}}, the 3D character in the HUD, will be overwritten to use the 2D character), and you may want to keep your preferences. Once you are done with recording the clips, you can delete your cfg folder and replace it with the backup.
 +
#<span style="color: #B20000;">'''Disable the Steam overlay or go offline'''</span>; quiet or quit all background applications that may interfere with the recording, specially ones that have overlays (such as Discord, Mumble or TeamSpeak) or notification sounds (such as Discord or WhatsApp). If using Nvidia, remove the Instant Replay icon. Ignoring this step can ruin some or all of your recordings.
 +
#The video should be recorded on <code>tr_karma_wiki</code> (preferred), <code>tr_karma_event_wiki</code> (for Halloween-related items only), or <code>tr_target_weaponref_hdr</code> (legacy, still acceptable if reusing <code>.dem</code> replays recorded on it. Legacy link with the map: [http://weaponref.wiki.tf/weaponref.7z weaponref.7z]). All maps are included in the download. Open the console and type: <code>map tr_karma_wiki</code>, <code>map tr_karma_event_wiki</code>, or <code>map tr_target_weaponref_hdr</code>.
 +
<!-- #In the Backpack, select <code>Show quality color borders</code>, or use the command <code>cl_showbackpackrarities 1</code>. ALREADY MANAGED BY THE CFG -->
 +
#Once the map has loaded, pick the class corresponding to the item you want to demonstrate.
 +
#Before doing the demonstration, use the <code>A</code> loadout. Make sure the only thing equipped is the item that you want to demonstrate (possible exceptions are items that are meant to be demonstrated together, for example, Jarate + Bushwacka). Leave all other item slots with the default item that comes in these slots or empty. If you are demonstrating a taunt, equip it in the first slot and leave all others spaces empty. If you are demonstrating an item set, only equip the pertinent items.
 +
#Wait for the setup time to finish and verify that your new loadout has been equipped (by taunting).
 +
#Open the console ([[List of default keys|default key]]: {{Key|`}}) and type <code>exec demonstration_basic</code>. The config file will change some of your settings to meet recording standard, such as FOV, HUD settings, etc., and some server cvars.<!--
 +
--><br>If you execute the <code>tr_karma_4bots</code> config file, four bots should spawn: A Pyro in front of you, a Soldier on the right side at mid-range, a Medic on the left side at long-range, and a Spy behind the crates on the left side (not visible by default). Re-executing the file will respawn all the bots at the correct location, in case you mess up. Pressing {{Key|F}} makes the bots fire.
 +
#'''Open your Loadout, click the item you want to demonstrate, and equip it again so that your avatar equips it in the loadout preview'''. Rotate it to show off the item.
 +
#Move your mouse over the item slot and wait for the tooltip to appear.
 +
 
 +
Things to consider:
 +
* '''Always''' have auto-reloading disabled (<code>cl_autoreload 0</code>).
 +
* Some demonstration videos may require a split-screen. Try running the game in a window at a half-width (<code>-w 960 -h 1080 -windowed -noborder</code>, for 1920x1080 screens) or third-width resolution (<code>-w 640 -h 1080 -windowed -noborder</code>). If you use [[Source Recorder]], you can record a demo at normal full resolution, then relaunch the game at half-width resolution and render the demo from it.
 +
** Some HUD elements may break with third-width resolution. If so, ask for help in the Talk page.
 +
* If the item you will demonstrate has a holiday restriction (e.g. Halloween / Full Moon), set {{code|tf_forced_holiday}} to the proper value in order to use that item. See [[#Useful information|below]] for a list of values. Specifically, use {{code|tf_forced_holiday 8}} (Full Moon) for Halloween-restricted items.
 +
 
 +
===Recording===
 +
* '''Start recording''' in your screen recording software. Don't move your mouse until you have had the time to read all the attributes. The mouse cursor must be visible on the recording.
 +
* Without moving your mouse off of the item slot, press {{key|ESC}} to close the backpack.
 +
** If the item's tooltip covers up part of or the entirety of the item slot (which is the case for items with large descriptions), move your mouse away from the slot to let the viewer see the item's icon for 2 seconds, and then press {{key|ESC}}.
 +
** Optional: you may switch away and then back to the weapon (make sure to let all animations play out in full) to demonstrate the holstering and equipping animations.
 +
* Demonstrate the item. There are exceptions, but the process generally goes like this for non-melee weapons:
 
** Wait a few seconds doing nothing.
 
** Wait a few seconds doing nothing.
 +
** If the weapon has an inspection animation, perform it, and then wait another second after the animation ends before moving on.
 
** Shoot once at the Pyro. Wait a bit.
 
** Shoot once at the Pyro. Wait a bit.
 
** Finish off the Pyro.
 
** Finish off the Pyro.
 
** Kill the Soldier. If the weapon is a melee weapon, you can jump out of the initial zone.
 
** Kill the Soldier. If the weapon is a melee weapon, you can jump out of the initial zone.
** Kill the Medic.
+
** Kill the Medic. If you are using a melee weapon, give yourself crits by pressing {{Key|Shift}} while hitting the Medic.
** Eventually, try to hit the target at the far back (it is not destructible, but a small "HIT!" effect will show)
+
** If you are demonstrating a non-melee weapon, try to shoot the wooden target at the far back.
** If the weapon has a tauntkill, tauntkill the Spy (he is hiding behind one of the crates)
+
** Reloading: Reload only when the demonstrated weapon is fully out of ammo, or when it's the end of the first clip. Always let the reload animation finish completely. This rule doesn't apply to non-demonstrated weapons, to other players/bots involved in the demonstration, and to clips other than the first (Pyro+Soldier+Medic) one.
** 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.
+
** After the final reload, taunt, and then wait for the camera to move '''all the way back''' to the first-person perspective.
* '''End the recording.'''
+
*** If the weapon has a Kill taunt, use it on the Spy (he is hiding behind one of the crates). The Spy must not show up on the video until the time to taunt kill him has come.
 +
* For melee weapons, the procedure is slightly different: Pyro and Soldier are the same, but once they are dead, you must:
 +
** Walk to the Medic
 +
** Stop walking when you are close enough to be able to hit the Medic
 +
** (Wait 1 second, staring at the Medic)
 +
** Hold {{Key|Shift}}
 +
** (Wait 2 seconds, still staring at the Medic but this time with your weapon glowing)
 +
** Kill the medic, still holding {{Key|Shift}}
 +
** (Wait for 1 second, looking at the Medic's dead body) (You may have to wait longer if your class decided to say a voice clip; in this case, wait until the voice clip is over)
 +
** Release {{Key|Shift}}
 +
** (Wait one more second)
 +
** Taunt as usual
 +
** '''If the weapon cannot crit randomly but can crit under certain circumstances''' ([[Gunslinger]]), then you are free to do whatever you want as long as you make it crit at least once, whether that is during the first (main) clip or not.
 +
** '''If the weapon can crit randomly and can also crit under certain circumstances''' ([[Sun on a Stick]]), then show both the crit on the Medic as described above and the special-circumstances crit using any way you want.
 +
** '''If the weapon cannot crit by itself in any way but can be made to crit with an external source ([[Kritzkrieg]] etc)''' ([[Southern Hospitality]]), then don't show crits. Just kill the Medic without crits.
 +
* For items that are equippable by multiple classes:
 +
** For weapons, demonstrate the weapon on each class individually, and concatenate the videos, including a backpack view for each class.
 +
** For cosmetics with gameplay effects (usually just changing the killfeed) which work the same way across all classes, demonstrate in full for one class only, and then have each subsequent class only show the loadout view and the in-game view of the cosmetic. No need to re-demonstrate the gameplay effect.
 +
* If the weapon has resistance/vulnerability to fire/explosive/bullets/etc., show a split-screen with and without the items equipped (and if necessary, equipped but holstered). (See the [[Chargin' Targe]] video for an example.)
 +
* If the item has other attributes, do what you feel is best to demonstrate the effect of that attribute.
 +
* '''End the recording'''.
 +
 
 +
===Post-processing===
 +
* You may not modify the contrast, speed, size, etc. of the video.
 +
* Add one of the <code>training_vid_*.mp3</code> files extracted from {{code|.../steam/steamapps/common/Team Fortress 2/tf/tf2_sound_misc_dir.vpk → sound → misc}}. If necessary, adjust the relative volumes between music and in-game sounds to match the ratio of the reference video. The default volume should be okay though. You can also use [https://drive.google.com/drive/folders/1qA_cADqpKxrlNDrBpgHYE2ZOmgVJUriz?usp=sharing this set of pre-lengthened music files] ([https://www.mediafire.com/download/y0gjm9yekjj6zzx/Demonstration+Music+v2.rar MediaFire mirror]) by [[User:Karmacharger|Karmacharger]].
 +
* Edit your video so it's just like the video already on the channel. Add fade out effects to the end of the video, at the start of the video, and before and after every scene transition.
 +
* Export/Convert your video to a web-friendly format: It is recommended that you use HEVC/h265 compression. '''Only 60 FPS videos are accepted''' (FPS are capped to 60 in YouTube).
 +
 
 +
===Submission===
 +
When the video is finished, upload it to a file hosting service ([https://drive.google.com/ Google Drive] is preferred, as it allows for viewing the video before downloading). If you do not have a file hosting service that can preview videos, please upload your video to [https://www.youtube.com/ YouTube] as "Unlisted". Then provide the URL of the video or file sharing host to the [[Team Fortress Wiki talk:Weapon Demonstration|Talk page]] by pasting the link after <code>| video = </code>. Make sure to not include any other comments after that, just the link. If it's uploaded to YouTube '''keep the original video file''' as you will have to upload it to some file hosting service in order for it to be uploaded to Official TF Wiki channels.
 +
 
 +
When you've pasted the link, make sure to change the <code>| status =</code> from {{code|nodemo}} to {{code|review needed}}.
 +
 
 +
<!-- Once the final version of the demonstration is accepted by a project reviewer, '''.dem files must be provided''' for each clip in the demonstration. Check out [[Help:Recording demos]] for help on how to do that, though the only commands you need are <code>record somefilename</code> and <code>stop</code>. The demos should be uploaded [https://weaponref.wiki.tf/ here]. Please [[Special:EmailUser/WindPower|email WindPower]] to get a password.-->
 +
|}
 +
 
 +
{| class="collapsible collapsed" width="100%"
 +
! colspan="1" class="header" align="left"|
 +
 
 +
==Talk page reservations==
 +
|-
 +
|
 +
On the [[Team Fortress Wiki talk:Weapon Demonstration|talk page]], anyone can reserve a demonstration that is either needed or to be redone. A reservation is only meant to serve as an indication that someone is already working on a demonstration, in order to avoid conflicts and frustration later when multiple people have both worked on their own versions of the same demonstration, and only one version can be kept. As such, anyone is free to override reservations as long as they don't mind having to scrap their version if the person who reserved the demonstration posts their version reasonably soon.
 +
 
 +
Some conditions must be met in order to reserve a demonstration:
 +
* There must not be another valid reservation on the demonstration
 +
* The item must not have been released in the past week (this condition doesn't apply if the item is up for redo in less than a week)
 +
* The reservation is only valid for two weeks after being posted on the talk page
 +
* One person may not hold more than 4 reservations at a time unless all of their reservations apply to closely-related items for which the demonstrations would have a lot of overlap (for example, five reskins of the same item)
 +
* For demonstrations that need to be redone and that have been up for redo for less than a week, the creator of the previous version may override any reservation on that demonstration and have their reservation take priority. To do this, the creator must explicitly post within 48 hours of the section appearing on the talk page and must have less than 4 other active reservations.
 +
* If you have had less than 5 demonstration videos approved in the past, you can only reserve demonstrations for items that have been released for over 2 weeks. This is to ensure that new demonstrations primarily get done by demonstrators who already know how to create a video meeting all the requirements, thus having quick review time.
 +
 
 +
To reserve a demonstration, please write <code><nowiki>~~~~</nowiki></code> after the <code>| reservation =</code> . If the section does not exist, you may create it using {{tl|Demo Header}} and {{tl|DemoEntry}}. Make sure your signature contains your Wiki username.
 +
|}
 +
 
 +
{| class="collapsible collapsed" width="100%"
 +
! colspan="1" class="header" align="left"|
 +
 
 +
==Useful information==
 +
|-
 +
|
 +
Below is a list of console commands that might help when demonstrating more complex behaviors. Most of these work only when <code>sv_cheats</code> has been set to 1.
 +
 
 +
=== Map chat commands ===
 +
As of March 2024, {{code|tr_karma_wiki}} and {{code|tr_karma_event_wiki}} includes [[VScript]]s that can be used via the chat typing the following commands. Remember that the chat is hidden if you executed demonstration_basic.cfg and can only be seen if you open it.
 +
* {{code|!demo}} - Enables the same server settings for demonstration from the demonstratin_basic.cfg file.
 +
* {{code|!c}} - Toggles a critical boost on the user.
 +
* {{code|!n}} - Toggles {{code|noclip}} on the user.
 +
* {{code|!p}} - Spawns a certain ammo or health pack at the player's crosshair. Usage: {{code|!p <<PACK>>}}. {{code|PACK}} can be: {{code|al}}: ammo large, {{code|am}}: ammo medium, {{code|as}}: ammo small, {{code|hl}}: health large, {{code|hm}}: health medium, {{code|hs}}: health small, {{code|clear}}: delete all packs.
 +
* {{code|!r}} - Regenerates the player (gives health and ammo).
 +
* {{code|!clear}} - Deletes ragdolls and weapons on ground.
 +
 
 +
You can bind a key to one of the commands as follows: {{code|bind "kp_end" "say !c"}}.
 +
 
 +
=== Setting up a server ===
 +
Setting up a server can be very easily done by using a simple launch option command, {{code|-enablefakeip}}. This uses an IP that's already port forwarded, removing any need for this to be done manually, allowing players to connect to your game. To set up a server this way, do the following steps:
 +
# Paste {{code|-enablefakeip}} in your ''Team Fortress 2'''s launch options.
 +
# Launch ''Team Fortress 2''.
 +
# Type in console {{code|sv_lan 0}}.
 +
# Launch a server using the {{code|map}} command in console, for example {{code|map tr_karma}}.
 +
# Disconnect entirely from this server, as a bug currently prevents connection to the item servers.
 +
# Re-launch the server using the {{code|map}} command in console.
 +
# Look up the IP in the console, it should be something like {{code|FakeIP allocation succeeded: XXX.XXX.XX.XX:XXXXX, XXXXX}}, the numbers before the comma are the IP + the port. For example, if the console puts out {{code|FakeIP allocation succeeded: 169.254.11.69:36680, 36681}}, then other players will have to type {{code|connect 169.254.11.69:36680}} into their console to connect. <!-- NOTE: These IPs belong to Valve IIRC, this IP was used in a genuine example and is not a real person's IP. Posting it here is no danger. -->
 +
 
 +
===General console commands===
 +
*<code>bind ''<key> <command>''</code> - 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.
 +
*<code>impulse 101</code> - Restores the player's health and ammo.
 +
*<code>hurtme ''<number>''</code> - Deals the stated amount of damage to the player. Can be used with a negative number to heal or overheal yourself.
 +
*<code>getpos</code> - Displays the current position and rotation (aiming angle) of the player in x, y, and z coordinates.
 +
*<code>setpos ''<x y z>''</code> - Teleports the player to a given position. Use the numbers acquired from <code>getpos</code> to place yourself into that same exact position.
 +
*<code>setang ''<x y z>''</code> - Sets the view angle of the player, akin to <code>setpos</code>. Use with the numbers from <code>getpos</code> to make your crosshair point the exact same way. The <code><z></code> parameter should be left at 0, or else the camera will appear to be tilting onto its side.
 +
*<code>ent_create ''<entity name>''</code> - Spawns a health kit or ammo box at the player's crosshair when used with entity names <code>item_ammopack_small</code>, <code>item_ammopack_medium</code>, <code>item_ammopack_full</code>, <code>item_healthkit_small</code>, <code>item_healthkit_medium</code>, or <code>item_healthkit_full</code>.
 +
::If in tr_karma, you can use the !p chat command instead. If not, you can use [http://pastebin.com/f3JhawHY this script], which binds the spawning of health kits and ammo boxes to {{Key|Numpad}} keys.
 +
*<code>mp_restartgame 1</code> - Restarts the map without rebooting the server, as opposed to the <code>map</code> command. You can use it with the name of the current map to reload the map, cleaning it of bodies, excess blood, and bullet marks.
 +
*<code>r_cleardecals</code> - Clears all decals (blood and bullet holes) from the map.
 +
*<code>cl_jiggle_bone_framerate_cutoff</code> - the minimum framerate at which the item's jigglebones still work. It is set to 20 FPS by default, lower it to the desired value if you're rendering at low FPS.
 +
*<code>ent_fire team_round_timer addtime ''<number>''</code> - Adds time to the timer of the round. Can be used with a negative number to remove time instead.
 +
*<code>cl_yawspeed ''<value>''</code> - Adjusts left/right turning (yaw) speed. Value should be changed to match the duration of a taunt (if infinite, simply set to a value that feels right). Use in combination with a {{code|+right}} and {{code|+left}} keybind to smoothly rotate the camera around your class.
 +
*<code>tf_use_match_hud 0</code> - Disables the team information HUD on the top of the screen.
 +
*<code>hud_reloadscheme</code> - Refreshes the TF2 HUD.
 +
*{{code|tf_forced_holiday}} <0-11> - Forces holiday mode (0: default; 1: TFBirthday; 2: Halloween; 3: Christmas; 8: FullMoon)
 +
 
 +
===Bot scripting commands===
 +
*<code>bot -team XX -class XX -name XX</code> - Adds a [[Bots#Puppet bots|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 is on the BLU team, and have a single-digit postfix if there is more than one bot of the same class on the given team. This command is not to be confused with <code>addbot</code>, which adds an AI-controlled bot instead of a puppet bot.
 +
:Example: <code>bot -team blu -class medic -name "Friendly Medic"; bot -team red -class heavy -name "Heavy 1"; bot -team red -class heavy name "Heavy 2"</code>
 +
*<code>bot_command ''<bot name>'' ''<console command>''</code> - Makes the specified bot perform the specified command. Particularly useful for making engineer bots enter build mode.
 +
:Example: <code>bot_command "Friendly Engineer" build ''<number from 0 to 3>''</code> (0 for the Dispenser, 1 for the Teleporter Entrance, 2 for the Sentry, and 3 for the Teleport Exit)
 +
*<code>bot_mimic ''<0 or 1>''</code> - 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 {{Key|Mouse2}} with the mimic option on. Note that Engineer bots will not mimic you creating buildings as an Engineer, you must use <code>bot_command ''<bot name>'' build ''<number>''</code> instead.
 +
*<code>bot_mimic_yaw_offset ''<angle from 0 to 360>''</code> - Makes the bots face in a direction this angle from the player while the <code>bot_mimic</code> is active. By default it is set to <code>180</code> so each bot faces the player when stared at.
 +
*<code>bot_dontmove ''<0 or 1>''</code> - Allows or prevents all bots from moving. Takes priority over <code>bot_mimic</code>.
 +
*<code>bot_refill</code> - Restores ammo and health for all bots.
 +
*<code>bot_teleport ''<name> <x y z x1 y1 z1>''</code> - Teleports the specified bot to the given coordinates. <code>X</code>, <code>y</code> and <code>z</code> define the position and <code>x1</code>, <code>y1</code> and <code>z1</code> define 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 <code>getpos</code> command.
 +
*<code>cc_bot_selectweapon ''<name> <slot>''</code> - Forces a bot to switch to a specified weapon slot.
 +
:Example: <code>cc_bot_selectweapon heavy 2</code> will make a bot named "Heavy" switch to his Fists.
 +
*<code>bot_forcefireweapon ''<weapon name>''</code> - Makes all the bots fire the specified weapon if they possess it. This can be used to make only one bot fire its weapon instead of all the bots when using the <code>bot_forceattack</code> command. 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 [[List_of_useful_console_commands#weapon_commands|this page]] for a full list of valid weapon names.
 +
:Example:
 +
:<code>alias "+rocket" "bot_forcefireweapon tf_weapon_rocketlauncher";</code>
 +
:<code>alias "-rocket" "bot_forcefireweapon randomword";</code>
 +
:<code>alias "+flame" "bot_forcefireweapon tf_weapon_flamethrower";</code>
 +
:<code>alias "-flame" "bot_forcefireweapon herpderp";</code>
 +
:<code>bind f +flame;</code>
 +
:<code>bind t +rocket</code>
 +
*<code>bot_mirror "x"</code> if you replace <code>x</code> with the name of a bot it will force that bot to mirror whatever items you have equipped allowing them to hold non-stock items such as the Sandvich.
 +
*<code>bot_forceattack ''<0 or 1>''</code> - Make all bots perform their primary attack (<code>+attack</code>)
 +
*<code>bot_forceattack2 ''<0 or 1>''</code> - Make all bots perform their secondary attack (<code>+attack2</code>)
 +
:Whilst the above two commands may not seem as immediately useful as <code>bot_forecefireweapon</code>, 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:
 +
::<code>alias +cloak "bot_forceattack 1; bot_forceattack2 1"</code>
 +
::<code>alias -cloak "bot_forceattack 0; bot_forceattack2 0"</code>
 +
::<code>bind key +cloak</code>
 +
 
 +
{{c|Note:}} You cannot 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.
 +
:Example:
 +
:<code>bind p "bot_teleport Friendly Spy x y z x1 y1 z1"</code> - Wrong.
 +
:<code>bind p "exec action.cfg"</code> while the file <code>action.cfg</code> contains <code>bot_teleport "Friendly Spy" x y z x1 y1 z1</code> - Correct.
  
=== Post-processing ===
+
=== List of screen recording programs ===
* You may not modify contrast, speed, size etc. of the video.
+
These programs have been successfully used to create demonstrations videos in the past.
* Add one of the <code>training_vid_*.mp3</code> files in <code>team fortress 2 content.gcf -> sound\misc</code>. 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 [http://sourceforge.net/projects/x264vfw/ x264vfw], single-pass, quantizer-based, with q '''smaller than or equal to 20'''.
 
* It is recommended to record using [http://www.fraps.com/ Fraps] or Source Recorder. With the latter, however, you cannot record the first step, backpack view, of the process but you can add it in using a video editor.
 
* The video should not be longer than about a minute.
 
  
== Submission ==
+
* '''[[Help:Recording demos|Source Recorder]]''' is part of TF2, and should be used for in-game footage when doing so has no visible side-effects.
Please upload your video to [http://www.youtube.com/ Youtube], as "Unlisted". Then provide the URL to this video on [[Team Fortress Wiki talk:Weapon Demonstration|the talk page]]. '''Keep the original video file''', as you will have to upload it to some file hosting service in order for it to be uploaded to the Official TF2 Wiki's Youtube Channel.
+
** Although not required, '''[https://code.google.com/archive/p/srcdemo2/ SrcDemo²]''' can be used with it to make it less painful to record smooth high-framerate footage.
 +
* '''[https://obsproject.com/ Open Broadcaster Software]'''. Remember to adjust the video quality settings in ''Output'' -> ''Recording'' -> Recording Quality = High Quality (refrain to use higher values, as it will increase file sizes unnecessarily) and in ''Video''.
 +
* '''[https://fraps.com Fraps]''' (full version only, require purchase)
 +
* '''[https://www.nvidia.com/en-us/geforce/geforce-experience/shadowplay/ ShadowPlay]''' from Nvidia's Geforce Experience (Nvidia graphics card required)
 +
* '''[https://support.microsoft.com/en-us/windows/record-a-game-clip-on-your-pc-with-xbox-game-bar-2f477001-54d4-1276-9144-b0416a307f3c Xbox Game Bar]''' (Windows 10 built-in)
 +
|}
 +
|}
  
== Weapons ==
+
{{Team Fortress Wiki:Weapon Demonstration/List}}
* {{Icon weapon|weapon=Ambassador|icon-size=16x16px}} [[Ambassador]] - {{c|done|Done but needs to be redone (old config)}}
 
* {{Icon weapon|weapon=Axtinguisher|icon-size=16x16px}} [[Axtinguisher]] - {{c|Done|Done but needs to be redone (old config). Reserved by Armisael}}
 
* {{Icon weapon|weapon=Backburner|icon-size=16x16px}} [[Backburner]] - {{c|Done|Done but needs to be redone (old config)}}
 
* {{Icon weapon|weapon=Bat|icon-size=16x16px}} [[Bat]] - {{c|done}}
 
* {{Icon weapon|weapon=Battalion's Backup|icon-size=16x16px}} [[Battalion's Backup]] - {{c|Done|Done but needs to be redone without clock}}
 
* {{Icon weapon|weapon=Big Kill|icon-size=16x16px}} [[Big Kill]] - {{c|Done|Done but needs to be redone (old config)}}
 
* {{Icon weapon|weapon=Black Box|icon-size=16x16px}} [[Black Box]] - {{c|Done|Done but needs to be redone (old config)}}
 
* {{Icon weapon|weapon=Blutsauger|icon-size=16x16px}} [[Blutsauger]] - {{c|Done|Done but needs to be redone (old config)}}
 
* {{Icon weapon|weapon=Bonesaw|icon-size=16x16px}} [[Bonesaw]] - {{c|Done|Done but needs to be redone (old config)}}
 
* {{Icon weapon|weapon=Bonk! Atomic Punch|icon-size=16x16px}} [[Bonk! Atomic Punch]] - {{c|Done}}
 
* {{Icon weapon|weapon=Bottle|icon-size=16x16px}} [[Bottle]] - {{c|Done}}
 
* {{Icon weapon|weapon=Buff Banner|icon-size=16x16px}} [[Buff Banner]] - {{c|Done|Done but needs to be redone without clock and with fast weapon switch}}
 
* {{Icon weapon|weapon=Bushwacka|icon-size=16x16px}} [[Bushwacka]] {{c|Reserved by iPood}}
 
* {{Icon weapon|weapon=Chargin' Targe|icon-size=16x16px}} [[Chargin' Targe]]
 
* {{Icon weapon|weapon=Cloak and Dagger|icon-size=16x16px}} [[Cloak and Dagger]]
 
* {{Icon weapon|weapon=Crit-a-Cola|icon-size=16x16px}} [[Crit-a-Cola]] {{c|Reserved by Armisael}}
 
* {{Icon weapon|weapon=Dalokohs Bar|icon-size=16x16px}} [[Dalokohs Bar]] {{c|Reserved by Armisael}}
 
* {{Icon weapon|weapon=Darwin's Danger Shield|icon-size=16x16px}} [[Darwin's Danger Shield]] - Plan: Have another Sniper without the shield take a shot from the Direct Hit point-blank (140 damage). Then do the same to the Sniper with the shield, who survives.
 
* {{Icon weapon|weapon=Dead Ringer|icon-size=16x16px}} [[Dead Ringer]]
 
* {{Icon weapon|weapon=Degreaser|icon-size=16x16px}} [[Degreaser]] - {{c|Done|Done but needs to be redone (Weird flame thing)}}
 
* {{Icon weapon|weapon=Direct Hit|icon-size=16x16px}} [[Direct Hit]] - {{c|done}}
 
* {{Icon weapon|weapon=Disguise Kit|icon-size=16x16px}} [[Disguise Kit]] - Plan: Likely requires first person view, third person view, and enemy third person view. Have the disguised Spy use an enemy teleporter. First try to use enemy teleporter without disguise, and run in front of a sentry. Take damage, get out, teleport, get in the front of the sentry to show that it don't target you, use teleporter, kill engy and sap. Something i would think it's gonna be cool: Fade to a new scene, undisguised, get out of cover and make a soldier shoot you. Hide, disguise as a friendly heavy, show up, and the soldier runs away. Kill him with a Ambassador headshot and taunt with the disguise kit.
 
* {{Icon weapon|weapon=Electro Sapper|icon-size=16x16px}} [[Electro Sapper]] - {{c|Done}}
 
* {{Icon weapon|weapon=enthusiast's timepiece|icon-size=16x16px}} [[Enthusiast's Timepiece]]
 
* {{Icon weapon|weapon=Equalizer|icon-size=16x16px}} [[Equalizer]] {{c|Reserved by iPood}}
 
* {{Icon weapon|weapon=Eyelander|icon-size=16x16px}} [[Eyelander]]
 
* {{Icon weapon|weapon=Fire Axe|icon-size=16x16px}} [[Fire Axe]] - {{c|done}}
 
* {{Icon weapon|weapon=Fists|icon-size=16x16px}} [[Fists]] - {{c|done}}
 
* {{Icon weapon|weapon=Flamethrower|icon-size=16x16px}} [[Flamethrower]] - {{c|done|Done but needs to be redone more slowly}}
 
* {{Icon weapon|weapon=Flare Gun|icon-size=16x16px}} [[Flare Gun]] - {{c|done}}
 
* {{Icon weapon|weapon=Force-A-Nature|icon-size=16x16px}} [[Force-A-Nature]] - {{c|done}}
 
* {{Icon weapon|weapon=Frontier Justice|icon-size=16x16px}} [[Frontier Justice]] {{c|Reserved by Armisael}}
 
* {{Icon weapon|weapon=Frying Pan|icon-size=16x16px}} [[Frying Pan]] - {{c|done}}
 
* {{Icon weapon|weapon=Gloves of Running Urgently|icon-size=16x16px}} [[Gloves of Running Urgently]] - {{c|done}}
 
* {{Icon weapon|weapon=Golden Wrench|icon-size=16x16px}} [[Golden Wrench]] - {{c|Reserved by The Medik}}
 
* {{Icon weapon|weapon=Grenade Launcher|icon-size=16x16px}} [[Grenade Launcher]]
 
* {{Icon weapon|weapon=Gunboats|icon-size=16x16px}} [[Gunboats]] {{c|Reserved by Armisael}}
 
* {{Icon weapon|weapon=Gunslinger|icon-size=16x16px}} [[Gunslinger]] - {{c|done}}
 
* {{Icon weapon|weapon=Holy Mackerel|icon-size=16x16px}} [[Holy Mackerel]] - {{c|done}}
 
* {{Icon weapon|weapon=Homewrecker|icon-size=16x16px}} [[Homewrecker]] - {{c|Reserved by Armisael}}
 
* {{Icon weapon|weapon=Horseless Headless Horsemann's Headtaker|icon-size=16x16px}} [[Horseless Headless Horsemann's Headtaker]]
 
* {{Icon weapon|weapon=Huntsman|icon-size=16x16px}} [[Huntsman]] {{c|Reserved by iPood}}
 
* {{Icon weapon|weapon=Invisibility Watch|icon-size=16x16px}} [[Invisibility Watch]]
 
* {{Icon weapon|weapon=iron curtain|icon-size=16x16px}} [[Iron Curtain]] {{c|wait|Reserved by sShaDOhsS}}
 
* {{Icon weapon|weapon=Jarate|icon-size=16x16px}} [[Jarate]] - {{c|Done|Done but needs to be redone to show cloaked spy. Fix reserved by Armisael}}
 
* {{Icon weapon|weapon=Killing Gloves of Boxing|icon-size=16x16px}} [[Killing Gloves of Boxing]] - {{c|Done}}
 
* {{Icon weapon|weapon=Knife|icon-size=16x16px}} [[Knife]] - {{c|wait|Reserved by natemckn}}
 
* {{Icon weapon|weapon=Kritzkrieg|icon-size=16x16px}} [[Kritzkrieg]]
 
* {{Icon weapon|weapon=Kukri|icon-size=16x16px}} [[Kukri]] - {{c|done}}
 
* {{Icon weapon|weapon=L'Etranger|icon-size=16x16px}} [[L'Etranger]] - {{c|wait|Reserved by Jackisaspy}}
 
* {{Icon weapon|weapon=Lugermorph|icon-size=16x16px}} [[Lugermorph]] - {{c|done}}
 
* {{Icon weapon|weapon=Mad Milk|icon-size=16x16px}} [[Mad Milk]] - {{c|Reserved by Armisael}}
 
* {{Icon weapon|weapon=Medigun|icon-size=16x16px}} [[Medi Gun]]
 
* {{Icon weapon|weapon=Minigun|icon-size=16x16px}} [[Minigun]] - {{c|done}}
 
* {{Icon weapon|weapon=Natascha|icon-size=16x16px}} [[Natascha]] - {{c|done}}
 
* {{Icon weapon|weapon=builder|icon-size=16x16px}} [[PDA]]
 
* {{Icon weapon|weapon=Pain Train|icon-size=16x16px}} [[Pain Train]] - {{c|wait|Reserved by Swordz}}
 
* {{Icon weapon|weapon=Pistol|icon-size=16x16px}} [[Pistol]] - Need to do both for Scout and for Engineer, then concatenate both videos
 
* {{Icon weapon|weapon=Powerjack|icon-size=16x16px}} [[Powerjack]] - {{c|done|Done but needs to be redone with updated config (round timer) Reserved by Armisael}}
 
* {{Icon weapon|weapon=Razorback|icon-size=16x16px}} [[Razorback]] - {{c|done|done but needs to be redone (aspect ratio)}}
 
* {{Icon weapon|weapon=Revolver|icon-size=16x16px}} [[Revolver]] - {{c|Reserved by Swordz}}
 
* {{Icon weapon|weapon=Rocket Jumper|icon-size=16x16px}} [[Rocket Jumper]] - {{c|Reserved by Smashman}}
 
* {{Icon weapon|weapon=Rocket Launcher|icon-size=16x16px}} [[Rocket Launcher]] - {{c|done| done but needs to be redone (show splash)}}
 
* {{Icon weapon|weapon=Sandman|icon-size=16x16px}} [[Sandman]] - Tauntkill from behind if possible, to show how far the corpse goes {{c|Reserved by iPood}}
 
* {{Icon weapon|weapon=Sandvich|icon-size=16x16px}} [[Sandvich]] - Plan: Have the enemies damage yourself by pressing F (or manually set your health to 1); eat sandvich; spawn damaged BLU Sniper bot; throw sandvich on the ground in front of him; make him pick up sandvich, showing his health bar go up; taunt with sandvich (same as eating). Use fades to cut between sandvich recharges.
 
* {{Icon weapon|weapon=Scattergun|icon-size=16x16px}} [[Scattergun]] - {{c|done}}
 
* {{Icon weapon|weapon=Scotsman's Skullcutter|icon-size=16x16px}} [[Scotsman's Skullcutter]] - {{c|done}}
 
* {{Icon weapon|weapon=Scottish Resistance|icon-size=16x16px}} [[Scottish Resistance]] {{c|Reserved by iPood}}
 
* {{Icon weapon|weapon=Shortstop|icon-size=16x16px}} [[Shortstop]] - {{c|done}}
 
* {{Icon weapon|weapon=Shotgun|icon-size=16x16px}} [[Shotgun]] - {{c|Reserved by Armisael}}
 
* {{Icon weapon|weapon=Shovel|icon-size=16x16px}} [[Shovel]] {{c|done}}
 
* {{Icon weapon|weapon=Sniper Rifle|icon-size=16x16px}} [[Sniper Rifle]] - {{c|done}}
 
* {{Icon weapon|weapon=Southern Hospitality|icon-size=16x16px}} [[Southern Hospitality]] - {{c|done}}
 
* {{Icon weapon|weapon=Sticky Jumper|icon-size=16x16px}} [[Sticky Jumper]]
 
* {{Icon weapon|weapon=Stickybomb Launcher|icon-size=16x16px}} [[Stickybomb Launcher]] - {{c|Done|Done but needs to be redone (old config)}}
 
* {{Icon weapon|weapon=Submachine Gun|icon-size=16x16px}} [[Submachine Gun]] - {{c|Done}}
 
* {{Icon weapon|weapon=Sydney Sleeper|icon-size=16x16px}} [[Sydney Sleeper]] - {{c|wait|Reserved by CWalkthroughs}}
 
* {{Icon weapon|weapon=Syringe Gun|icon-size=16x16px}} [[Syringe Gun]] - {{c|done|done but needs to be redone (old config)}}
 
* {{Icon weapon|weapon=Tribalman's Shiv|icon-size=16x16px}} [[Tribalman's Shiv]] - {{c|wait|Reserved by Smashman}}
 
* {{Icon weapon|weapon=Vita-Saw|icon-size=16x16px}} [[Vita-Saw]] - {{c|wait|Reserved by CWalkthroughs}}
 
* {{Icon weapon|weapon=Wrangler|icon-size=16x16px}} [[Wrangler]] - {{c|Done}}
 
* {{Icon weapon|weapon=Wrench|icon-size=16x16px}} [[Wrench]] - {{c|wait|Reserved by Smashman}}
 
* {{Icon weapon|weapon=Your Eternal Reward|icon-size=16x16px}} [[Your Eternal Reward]] - Plan: Likely requires first person view and enemy third person view.
 
* {{Icon weapon|weapon=Übersaw|icon-size=16x16px}} [[Übersaw]] - {{c|done|Done}}
 

Latest revision as of 01:09, 2 November 2024

Weapon Demonstration Project

Thats a wrap.png

The Weapon Demonstration project's goal is to build a complete library of videos demonstrating the various aspects of all weapons, game mechanics, tools, and taunts in Team Fortress 2.

  • The idea: To have one consistent video style demonstrating how weapons, game mechanics, tools and taunts work.
  • The objective: To demonstrate how everything works: viewmodels, animations, special abilities, etc.
  • The benefits: Consistent, one video per page, looks good.

Anyone who meets the requirements can make a demonstration video that is needed for an item and submit the video for review, if the video meets the standard and is approved by the project reviewers, your video will be uploaded to the Official TF2 Wiki Channel on YouTube and Bilibili. Check the section below for detailed requirements and a guide on how to make a demonstration video. You may also find the demonstration video that is needed or needs to be redone on this page. Feel free to ask any questions before starting making the demonstration on the talk page.

Project reviewers: Ashe, GrampaSwood. A video only needs approval from one Project reviewer for publication. While anyone can provide feedback on anyone else's video, only the Project reviewers may give the final stamp of approval for video publication.

Reference video

Following the structure of the following videos should give you a basic idea of what is expected. Visit the Official TF2 Wiki YouTube Channel for more videos.

Weapon

Taunt

Tool

Key

  • T (Talk): Link to talk page section
  • D (thumbnail Download): Direct link to the thumbnail image. Turns red when there is no thumbnail uploaded. How to make thumbnails.
  • U (thumbnail Upload): Link to thumbnail upload page. The file name and description are automatically populated; only the image file needs to be selected from the user's computer.

Due to MediaWiki limitations, D and U need to be both displayed at all times, even though they are mutually exclusive.

Needed Demonstrations

Taunts

Tools

Mechanics

Action

Game modes

Demonstrations that need to be redone

Done