Difference between revisions of "Team Fortress Wiki:3D Models"

From Team Fortress Wiki
Jump to: navigation, search
m (Weapons)
m (Weapons: Removed airstrike projectile)
 
(216 intermediate revisions by 30 users not shown)
Line 1: Line 1:
The '''3D Models''' project's goal is to construct pseudo 3D images of the weapons in ''Team Fortress 2'' that can be freely rotated.
+
{{Help navbar}}
 +
The '''3D Models''' project's goal is to construct pseudo-3D images of the weapons in ''Team Fortress 2'' that can be freely rotated.
  
 
== Example ==
 
== Example ==
Line 11: Line 12:
  
 
== Requirements ==
 
== Requirements ==
*[http://www.python.org/getit/releases/2.6.6/ Python 2.6 (32-bit version)] (python-2.6.6.msi)
+
* [https://www.microsoft.com/windows Windows]
*[http://www.rutherfurd.net/python/sendkeys/ SendKeys] (SendKeys-0.3.win32-py2.6.exe)
+
* [https://store.steampowered.com/app/440/Team_Fortress_2 TF2]
*[http://www.pythonware.com/products/pil/index.htm Python Imaging Library (PIL)] (PIL-1.1.7.win32-py2.6.exe)
+
* HLMV (included as a part of TF2)
*[http://sourceforge.net/projects/pywin32/files/pywin32/Build216/ pywin32] (pywin32-216.win32-py2.6.exe)
+
** (optionally) [[vdc:Half-Life Model Viewer++|HLMV++]]
*[http://sourceforge.net/projects/numpy/files/NumPy/1.6.1/ NumPy] (numpy-1.6.1-win32-superpack-python2.6.exe)
+
* [https://www.python.org/downloads/release/python-379 Python 3.7.9]
*[http://www.lfd.uci.edu/~gohlke/pythonlibs/#cython cython] (Cython-0.15.1.win32-py2.6.‌exe)
+
* [https://github.com/jbzdarkid/3D-Models-automaton/releases/latest/download/3D-Models-automation.zip A copy of the automaton repository]
*[http://dl.dropbox.com/u/105828/SendKeys.py Modified SendKeys.py]
 
*(''Optional'') [http://www.voidspace.org.uk/downloads/psyco-2.0.0.win32-py2.6.zip Psyco] for speed improvements (available for 32-bit Python only)
 
 
 
'''OR'''
 
 
 
*[http://www.mediafire.com/?cfc1uuwu74oyy23 Preinstalled image of the Python installation with all modules] ('''STRONGLY RECOMMENDED''')
 
 
 
Also:
 
*[http://go.microsoft.com/?linkid=7729279 Visual C++ 2008 Express Edition with SP1] ('''Must be 2008''', more recent versions will not work. Untick SQL server option) (vcsetup.exe)
 
*[http://upload.gaiatools.com/files/wikitools_mod_0.7z wikitools]
 
*[http://github.com/Moussekateer/3D-Models-automaton The automaton script]
 
*The Source SDK
 
*The sdktools_beta
 
*[http://nemesis.thewavelength.net/index.php?p=25 GCFScape]
 
*For models that need to be recompiled: [http://www.hl2.boo.pl/applications/MdlDecompilerFixed/MDL%20Decompiler%20Fixed.rar MDL Decompiler] and [http://www.chaosincarnate.net/cannonfodder/cftools.htm StudioCompiler].
 
  
 
== Initial setup ==
 
== Initial setup ==
 
=== Installation ===
 
=== Installation ===
* If manually installing Python:
+
Please follow the latest instructions at [https://github.com/jbzdarkid/3D-Models-automaton#installation-steps the 3D-Models-automaton repo].
** Install Python 2.6 and the required libraries (SendKeys, PIL, pywin32, NumPy and cython) and install Visual Studio Express 2008 C++ Express Edition.
 
** Extract the wikitools zipped file into the same directory as the script.
 
** Install the Source SDK from the Tools part of Steam. This is only needed for the files, not for any of the functions!
 
** Copy the MDL Decompiler .exe to {{code|\Steam\steamapps\<username>\sourcesdk\bin\ep1\bin}}.
 
** Navigate to {{code|\Python26\Lib\site-packages}} and replace SendKeys.py with the modified version linked above.
 
* Otherwise extract the zipped Python folder somewhere.
 
* Download and save the automaton scripts to an easily accessible folder.
 
* Copy {{code|fireLayeredSlowTiled512.vtf}} to {{code|\Steam\steamapps\common\Team Fortress 2\tf\custom\folder\materials\effects\tiledfire}}.
 
* Copy {{code|background.vtf}} to {{code|\Steam\steamapps\common\Team Fortress 2\tf\custom\folder\materials\hlmv}}.
 
* Set up HLMV to produce the highest quality images possible by following the guide found [[Help:Model_Viewer#Setup|here]].
 
 
 
=== Setting up automate.py ===
 
[[File:3D Tutorial HLMV Coordinates.png|400px|thumb|HLMV screen where 1 is the location of {{code|fileButtonCoordindates}}, 2 is the location of {{code|optionsButtonCoodinates}}, and 3 is the boundary for {{code|imgCropBoundaries}}.]]
 
 
 
* Open HLMV and maximize it.
 
* Take a screenshot and paste it into an image viewer such as paint.NET or Adobe Photoshop.
 
* Take note of the following pixel coordinates for your screen size.
 
** {{code|monitorResolution}} is simply a list of your screen resolution.
 
** {{code|imgCropBoundaries}} is the boundary of the window the model in HLMV is contained within. The format is;
 
*** <nowiki>[pixel distance of left boundary from left of screen, pixel distance of top boundary from top of screen, pixel distance of right boundary from left of screen, pixel distance of bottom boundary from top of screen]</nowiki>
 
*** You should leave a few pixels gap from the window edge.
 
* {{code|fileButtonCoordindates}} is a tuple of the center x,y coordinates for the File menu button in HLMV.
 
* Close any programs that may interrupt or interfere with the process.
 
* You are now set to take the images.
 
  
 
== Workflow ==
 
== Workflow ==
 
=== Taking images ===
 
=== Taking images ===
* Open up a weapon model in HLMV and center the model using {{code|Options -> Center View}}.
+
* Open up the weapon in HLMV and ensure it rotates properly. There are three possible outcomes here:
* If the model does not face you directly when centered, it will need to be [[Team Fortress Wiki:3D Models#Recompiling models|recompiled]] with a new rotation.
+
** The model will rotate around the bottom corner of the model. If so, you will need to make use of <code>rotation_offset</code>.
 +
*** First, reset the model's position with Options &rarr; Center View.
 +
*** Then, from <code>cmd</code>, navigate to the folder containing <code>automate.py</code> and run <code>mem trans</code>, noting the second value (the Y translation).
 +
*** Back in HLMV, rotate the model so that it is facing right. Hold down {{Key|Shift}} and move the model sideways so that it is centered in the circle that appears.
 +
*** Go back to <code>cmd</code>, and run <code>mem trans</code> again, once again noting the second value.
 +
*** The difference between the current value and the initial value is the <code>rotation_offset</code> value to set in <code>automate.py</code>.
 +
** The model will rotate around the wrong plane or the model will not rotate around the vertical or horizontal center. If so, the model will need to be [[#Recompiling models|recompiled]].
 +
** The model will rotate around the vertical '''and''' horizontal center of the model. If so, you are good to go.
 +
* Center the model using Options &rarr; Center View.
 +
* If the model does not face you directly when centered, it will need to be [[#Recompiling models|recompiled]] with a new rotation.
 
* Zoom the model out so that it is as large as possible, but will not clip outside the viewer window when rotated or tilted.
 
* Zoom the model out so that it is as large as possible, but will not clip outside the viewer window when rotated or tilted.
* If the model has a fire overlay, see the [[Team Fortress Wiki:3D Models#Installation|Installation]] section on this page or the [[Help:Model_Viewer#Program_limitations|Program Limitations]] section on the Help: Model Viewer page on how to remove it.
 
 
* If the light source produces a glare that interferes with the model, hold {{Key|Ctrl}} and drag the light source around with the mouse until it is in a better position.
 
* If the light source produces a glare that interferes with the model, hold {{Key|Ctrl}} and drag the light source around with the mouse until it is in a better position.
* Open regedit, navigate to {{code|\HKEY_CURRENT_USER\Software\Valve\hlmv}}, and locate the registry key entry for the model. This will be in the form of {{code|models.weapons.c_models.c_wrench.c_wrench.mdl}}.
+
* Run the script, from the command line. Navigate to the folder containing the scripts and type <code>python automate.py</code>.
* Copy and paste this key name into automate.py in the model = HLMVModelRegistryKey() entry.
+
* After the image finishes rotating, switch back to the command line and follow the prompts to upload the file.
* Copy the {{code|Trans}} key entry for the model into automateDis as the {{code|intialTranslation}} argument. (Don't forget to add the commas to separate the values)
 
* Rotate the model by dragging near the center of the viewer.
 
* There will be three possible outcomes here.
 
** The model will rotate around the bottom corner of the model. If so, you will need to make use of {{code|rotationOffset}}.
 
*** Rotate the model so that it is facing left. Hold down {{Key|Shift}} and move the model sideways so that it is centered in the circle that appears.
 
*** Press {{Key|F5}} in HLMV, and then in regedit. Note the new 'y' Trans value. The difference between the current value and the initial value is the {{code|rotationOffset}} value.
 
** The model will rotate around the wrong plane or the model will not rotate around the vertical or horizontal center. If so, the model will need to be recompiled. See the section on [[Team Fortress Wiki:3D Models#Recompiling models|recompiling models]].
 
** The model will rotate around the vertical '''and''' horizontal center of the model. If so, you are good to go.
 
* Set the item name in the script for {{code|itemName}}. It is suggested you initially set this to 'User <username> <item>' so you can see the item looks fine before being moved to the correct title.
 
* The script is started as so. From the commandline, navigate to the folder containing the scripts and type <code>python automate.py</code>.
 
* You will be asked to enter the folder name for the generated images.
 
* The script will now automate taking the required images. It is best not to try and use your computer while the script is running as it will likely result in an incorrect output.
 
** To interrupt the image taking process, turn on Caps Lock.
 
 
 
=== Painted hats ===
 
* Coming soon
 
  
 
=== Team-colored models ===
 
=== Team-colored models ===
* Extract the VMTs for the model from the {{code|tf2_misc_dir.vpk}} appropriate folder directories in the {{code|/custom/folder}}.
+
* This is now very simple, simply change this in HLMV (Model &rarr; Skin #), then re-run the script.
* In the automate.py script set {{code|teamColours}} to {{code|True}} and set the paths to the VMTs for {{code|REDVMTFile}} and {{code|BLUVMTFile}}.
 
  
 
=== Models with other class arms/models blocking the view ===
 
=== Models with other class arms/models blocking the view ===
 
* If you wish to remove a model from the viewer (for example the Sniper's arms holding onto the view model Sniper Rifle), click on the Model tab in HLMV and find out which VMTs are being used for the model textures.
 
* If you wish to remove a model from the viewer (for example the Sniper's arms holding onto the view model Sniper Rifle), click on the Model tab in HLMV and find out which VMTs are being used for the model textures.
* Extract the VMTs using GCFScape to the same path in your {{code|/custom/folder}} and open them up in a text editor.
+
* Extract the VMTs using GCFScape to the same path in your <code>/custom/folder</code> and open them up in a text editor.
* Inside the {{code|"VertexLitGeneric"}} curly brackets add the line {{code|"$no_draw" "1"}}. This will make this part of the model invisible in HLMV.
+
* Inside the <code>"VertexLitGeneric"</code> curly brackets add the line <code>"$no_draw" "1"</code>. This will make this part of the model invisible in HLMV.
  
 
=== Recompiling models ===
 
=== Recompiling models ===
* Open the model in HLMV.
+
* First, check [[TFW:3D Models/Weapons|here]] to see if a model has already been recompiled.
* Launch GCFScape and load {{code|tf2_misc_dir.vpk}}.
+
* Download and install [http://steamcommunity.com/groups/CrowbarTool Crowbar], [https://web.archive.org/web/20191202141812/http://nemesis.thewavelength.net/index.php?p=25 GCFScape], and the Source SDK (Steam -> Library -> Tools)
* Navigate to {{code|tf\models\weapons}} and extract the relevant weapon folder to {{code|\Steam\steamapps\common\Team Fortress 2\tf\custom\folder\models\weapons}}.
+
* Extract the model with GCFScape, decompile with Crowbar.
* Launch MDL Decompiler, tick "do not fix rotations on animations", set your output directory to the same folder where the model was extracted, and extract.
+
* For the most part, adding <code>$autocenter</code> to the .qc file should do the trick. If not, try using <code>$origin X Y Z</code>. For more complex concerns, see {{vdc|Category:QC Commands}}.
* Unfortunately, you are not done. The animation sequences you have just decompiled are all horribly borked. Launch StudioCompiler, go to the Model Decompile tab, and decompile the same model (this time leaving "do not fix rotations" unticked). The decompiler will throw you an error. That is fine. Click okay and it will finish extracting. Make sure you output to the SAME directory as the previous step so that the files will be overwritten.
+
* Recompile the model with Crowbar. You should be good to go!
* Open up the outputted {{code|mdldecompiler.qc}} and change the $model line's value for the .dmx.smd file to not include a directory. i.e. change {{code|parts/dmx/c_wrench.dmx.smd}} to {{code|c_wrench.dmx.smd}}.
 
* Open up idle.smd in a text editor. You will find an entry/entries that start with time 0/1/etc. The 2nd/3rd/4th numbers in the entry correspond to back/forth, side to side, and up/down translations, respectively. The 5th/6th/7th numbers in the entry correspond to x, y, and z rotations, respectively. Correct these values for all lines (or delete the all the time lines except for the first) and save.
 
* Go back to StudioCompiler, go to the Model Compile tab, go to the {{code|Compile w/Existing QC}} section, select your {{code|mdldecompiler.qc}} which you just edited, and press compile. '''Note:''' If you get a compiler error about write access, it is probably because the directory that the compiler wants to output to as specified in the .qc doesn't exist. Create it.
 
* '''Note:''' If StudioCompiler is crashing or otherwise fails to compile, you can compile manually (which is faster too). Open the command line to the directory with your "mdldecompiler.qc" and enter:
 
** {{code|"[STEAMAPPS DIRECTORY]\common\Team Fortrees 2\bin\studiomdl" -game "[STEAMAPPS DIRECTORY]\common\Team Fortrees 2\tf" mdldecompiler.qc}}
 
* Press {{Key|F5}} in HLMV to refresh the model state. If the model still does not rotate in the correct plane/center of the model, change the values again and recompile. This may require a lot of trial and error.
 
* After successfully recentering the model, copy the recompiled .mdl, .vtx, .phy, and .vvd files into a zipped folder and upload to a file sharing site (preferably [http://www.mediafire.com/ MediaFire]) to post on the project page.
 
  
== Uploading your image for submission ==
+
== Uploading your image ==
* Post a link to the image on the [[Team Fortress Wiki talk:3D Models|Talk page]] under a section titled after the weapon's name, along with your parameters for the script (weapon key name, initial rotation, initial translation, offsets, etc).
+
* This should happen automatically. If it does not, ensure that you have poster installed via <code>pip install -U poster</code>.
* Keep a copy of the individual frame images somewhere safe in case they are needed in the near future.
 
  
 
== Tips and debugging ==
 
== Tips and debugging ==
* If your HLMV is opening too slowly, adjust the time in the {{code|mouse.sleep(time in seconds)}} entry that follows opening HLMV.
+
* You can set <code>vertical_rotations = 0</code> to generate the model with no tilting, or reduce the number of rotations with <code>number_of_images</code>.
* If something interrupts the image taking process, you can continue where you left off by setting the {{code|n}} argument in the automateDis method.
 
** You can also use this to check the images are coming out right by interrupting the script and checking the images. If the rotation looks okay, continue where you left off.
 
* You can also set the disableXRotation argument to {{code|True}} to just rotate the model with no tilt to see if it looks fine.
 
 
* You will find it '''much''' easier when recompiling models to find out if they're centered correctly by checking the 'Ground' checkbox in HLMV and refreshing the model every time you make a change and recompile.
 
* You will find it '''much''' easier when recompiling models to find out if they're centered correctly by checking the 'Ground' checkbox in HLMV and refreshing the model every time you make a change and recompile.
 +
* If the 3D image's starting position isn't centered, click the edit button on the 3D image file's page and change "startframe" to whichever frame number is the centered frame.
  
 
== Models repository ==
 
== Models repository ==
Line 127: Line 70:
 
== Weapons ==
 
== Weapons ==
 
=== Needed weapons ===
 
=== Needed weapons ===
{{c|Note}}: Reserve the weapon you are working on by placing the line '<nowiki>{{c|info}} - Reserved by [[User:<username>|<username>]]</nowiki>' on the relevant weapon line. If you have any problems with a model, please post on the [[Team Fortress Wiki talk:3D Models|Talk page]] under a section titled after the weapon's name.
+
* None
 
 
'''Scout Weapons:'''
 
{{Columns-list|4|
 
* {{icon item|Festive Scattergun|30px}} [[Festive Scattergun]] (RED needs battery added)
 
* {{icon item|Silver Botkiller Scattergun Mk.I|30px}} [[Silver Botkiller Scattergun Mk.I]]
 
* {{icon item|Gold Botkiller Scattergun Mk.I|30px}} [[Gold Botkiller Scattergun Mk.I]]
 
* {{icon item|Rust Botkiller Scattergun Mk.I|30px}} [[Rust Botkiller Scattergun Mk.I]]
 
* {{icon item|Blood Botkiller Scattergun Mk.I|30px}} [[Blood Botkiller Scattergun Mk.I]]
 
* {{icon item|Carbonado Botkiller Scattergun Mk.I|30px}} [[Carbonado Botkiller Scattergun Mk.I]]
 
* {{icon item|Diamond Botkiller Scattergun Mk.I|30px}} [[Diamond Botkiller Scattergun Mk.I]]
 
* {{icon item|Silver Botkiller Scattergun Mk.II|30px}} [[Silver Botkiller Scattergun Mk.II]]
 
* {{icon item|Gold Botkiller Scattergun Mk.II|30px}} [[Gold Botkiller Scattergun Mk.II]]
 
* {{icon item|Australium Scattergun|30px}} [[Australium Scattergun]]
 
* {{icon item|Festive Force-A-Nature|30px}} [[Festive Force-A-Nature]]
 
* {{icon item|Australium Force-A-Nature|30px}} [[Australium Force-A-Nature]]
 
* {{icon item|Festive Holy Mackerel|30px}} [[Festive Holy Mackerel]]
 
 
 
'''Soldier Weapons:'''
 
* {{icon item|Silver Botkiller Rocket Launcher Mk.I|30px}} [[Silver Botkiller Rocket Launcher Mk.I]]
 
* {{icon item|Gold Botkiller Rocket Launcher Mk.I|30px}} [[Gold Botkiller Rocket Launcher Mk.I]]
 
* {{icon item|Rust Botkiller Rocket Launcher Mk.I|30px}} [[Rust Botkiller Rocket Launcher Mk.I]]
 
* {{icon item|Blood Botkiller Rocket Launcher Mk.I|30px}} [[Blood Botkiller Rocket Launcher Mk.I]]
 
* {{icon item|Carbonado Botkiller Rocket Launcher Mk.I|30px}} [[Carbonado Botkiller Rocket Launcher Mk.I]]
 
* {{icon item|Diamond Botkiller Rocket Launcher Mk.I|30px}} [[Diamond Botkiller Rocket Launcher Mk.I]]
 
* {{icon item|Silver Botkiller Rocket Launcher Mk.II|30px}} [[Silver Botkiller Rocket Launcher Mk.II]]
 
* {{icon item|Gold Botkiller Rocket Launcher Mk.II|30px}} [[Gold Botkiller Rocket Launcher Mk.II]]
 
* {{icon item|Australium Rocket Launcher|30px}} [[Australium Rocket Launcher]]
 
* {{icon item|Festive Black Box|30px}} [[Festive Black Box]]
 
* {{icon item|Australium Black Box|30px}} [[Australium Black Box]]
 
* {{icon item|Festive Buff Banner|30px}} [[Festive Buff Banner]]
 
* {{icon item|Equalizer|30px}} [[Equalizer]] (Needs Update)
 
 
 
'''Pyro Weapons:'''
 
* {{icon item|Silver Botkiller Flame Thrower Mk.I|30px}} [[Silver Botkiller Flame Thrower Mk.I]]
 
* {{icon item|Gold Botkiller Flame Thrower Mk.I|30px}} [[Gold Botkiller Flame Thrower Mk.I]]
 
* {{icon item|Rust Botkiller Flame Thrower Mk.I|30px}} [[Rust Botkiller Flame Thrower Mk.I]]
 
* {{icon item|Blood Botkiller Flame Thrower Mk.I|30px}} [[Blood Botkiller Flame Thrower Mk.I]]
 
* {{icon item|Carbonado Botkiller Flame Thrower Mk.I|30px}} [[Carbonado Botkiller Flame Thrower Mk.I]]
 
* {{icon item|Diamond Botkiller Flame Thrower Mk.I|30px}} [[Diamond Botkiller Flame Thrower Mk.I]]
 
* {{icon item|Silver Botkiller Flame Thrower Mk.II|30px}} [[Silver Botkiller Flame Thrower Mk.II]]
 
* {{icon item|Gold Botkiller Flame Thrower Mk.II|30px}} [[Gold Botkiller Flame Thrower Mk.II]]
 
* {{icon item|Australium Flamethrower|30px}} [[Australium Flamethrower]]
 
* {{icon item|Festive Flare Gun|30px}} [[Festive Flare Gun]]
 
* {{icon item|Festive Axtinguisher|30px}} [[Festive Axtinguisher]]
 
* {{icon item|Australium Axtinguisher|30px}} [[Australium Axtinguisher]]
 
* {{icon item|Lollichop|30px}} [[Lollichop]]
 
 
 
'''Demoman Weapons:'''
 
* {{icon item|Festive Grenade Launcher|30px}} [[Festive Grenade Launcher]]
 
* {{icon item|Australium Grenade Launcher|30px}} [[Australium Grenade Launcher]]
 
* {{icon item|Silver Botkiller Stickybomb Launcher Mk.I|30px}} [[Silver Botkiller Stickybomb Launcher Mk.I]]
 
* {{icon item|Gold Botkiller Stickybomb Launcher Mk.I|30px}} [[Gold Botkiller Stickybomb Launcher Mk.I]]
 
* {{icon item|Rust Botkiller Stickybomb Launcher Mk.I|30px}} [[Rust Botkiller Stickybomb Launcher Mk.I]]
 
* {{icon item|Blood Botkiller Stickybomb Launcher Mk.I|30px}} [[Blood Botkiller Stickybomb Launcher Mk.I]]
 
* {{icon item|Carbonado Botkiller Stickybomb Launcher Mk.I|30px}} [[Carbonado Botkiller Stickybomb Launcher Mk.I]]
 
* {{icon item|Diamond Botkiller Stickybomb Launcher Mk.I|30px}} [[Diamond Botkiller Stickybomb Launcher Mk.I]]
 
* {{icon item|Silver Botkiller Stickybomb Launcher Mk.II|30px}} [[Silver Botkiller Stickybomb Launcher Mk.II]]
 
* {{icon item|Gold Botkiller Stickybomb Launcher Mk.II|30px}} [[Gold Botkiller Stickybomb Launcher Mk.II]]
 
* {{icon item|Australium Stickybomb Launcher|30px}} [[Australium Stickybomb Launcher]]
 
* {{icon item|Festive Eyelander|30px}} [[Festive Eyelander]]
 
* {{icon item|Australium Eyelander|30px}} [[Australium Eyelander]]
 
 
 
'''Heavy Weapons:'''
 
* {{icon item|Silver Botkiller Minigun Mk.I|30px}} [[Silver Botkiller Minigun Mk.I]]
 
* {{icon item|Gold Botkiller Minigun Mk.I|30px}} [[Gold Botkiller Minigun Mk.I]]
 
* {{icon item|Rust Botkiller Minigun Mk.I|30px}} [[Rust Botkiller Minigun Mk.I]]
 
* {{icon item|Blood Botkiller Minigun Mk.I|30px}} [[Blood Botkiller Minigun Mk.I]]
 
* {{icon item|Carbonado Botkiller Minigun Mk.I|30px}} [[Carbonado Botkiller Minigun Mk.I]]
 
* {{icon item|Diamond Botkiller Minigun Mk.I|30px}} [[Diamond Botkiller Minigun Mk.I]]
 
* {{icon item|Silver Botkiller Minigun Mk.II|30px}} [[Silver Botkiller Minigun Mk.II]]
 
* {{icon item|Gold Botkiller Minigun Mk.II|30px}} [[Gold Botkiller Minigun Mk.II]]
 
* {{icon item|Australium Minigun|30px}} [[Australium Minigun]]
 
* {{icon item|Australium Tomislav|30px}} [[Australium Tomislav]]
 
* {{icon item|Festive Sandvich|30px}} [[Festive Sandvich]]
 
* {{icon item|Robo-Sandvich|30px}} [[Robo-Sandvich]]
 
* {{icon item|Festive Gloves of Running Urgently|30px}} [[Festive Gloves of Running Urgently]]
 
 
 
'''Engineer Weapons:'''
 
* {{icon item|Australium Frontier Justice|30px}} [[Australium Frontier Justice]]
 
* {{icon item|Festive Wrangler|30px}} [[Festive Wrangler]]
 
* {{icon item|Silver Botkiller Wrench Mk.I|30px}} [[Silver Botkiller Wrench Mk.I]]
 
* {{icon item|Gold Botkiller Wrench Mk.I|30px}} [[Gold Botkiller Wrench Mk.I]]
 
* {{icon item|Rust Botkiller Wrench Mk.I|30px}} [[Rust Botkiller Wrench Mk.I]]
 
* {{icon item|Blood Botkiller Wrench Mk.I|30px}} [[Blood Botkiller Wrench Mk.I]]
 
* {{icon item|Carbonado Botkiller Wrench Mk.I|30px}} [[Carbonado Botkiller Wrench Mk.I]]
 
* {{icon item|Diamond Botkiller Wrench Mk.I|30px}} [[Diamond Botkiller Wrench Mk.I]]
 
* {{icon item|Silver Botkiller Wrench Mk.II|30px}} [[Silver Botkiller Wrench Mk.II]]
 
* {{icon item|Gold Botkiller Wrench Mk.II|30px}} [[Gold Botkiller Wrench Mk.II]]
 
* {{icon item|Festive Wrench|30px}} [[Festive Wrench]]
 
* {{icon item|Australium Wrench|30px}} [[Australium Wrench]]
 
 
 
'''Medic Weapons:'''
 
* {{icon item|Australium Blutsauger|30px}} [[Australium Blutsauger]]
 
* {{icon item|Festive Crusader's Crossbow|30px}} [[Festive Crusader's Crossbow]]
 
* {{icon item|Silver Botkiller Medi Gun Mk.I|30px}} [[Silver Botkiller Medi Gun Mk.I]]
 
* {{icon item|Gold Botkiller Medi Gun Mk.I|30px}} [[Gold Botkiller Medi Gun Mk.I]]
 
* {{icon item|Rust Botkiller Medi Gun Mk.I|30px}} [[Rust Botkiller Medi Gun Mk.I]]
 
* {{icon item|Blood Botkiller Medi Gun Mk.I|30px}} [[Blood Botkiller Medi Gun Mk.I]]
 
* {{icon item|Carbonado Botkiller Medi Gun Mk.I|30px}} [[Carbonado Botkiller Medi Gun Mk.I]]
 
* {{icon item|Diamond Botkiller Medi Gun Mk.I|30px}} [[Diamond Botkiller Medi Gun Mk.I]]
 
* {{icon item|Silver Botkiller Medi Gun Mk.II|30px}} [[Silver Botkiller Medi Gun Mk.II]]
 
* {{icon item|Gold Botkiller Medi Gun Mk.II|30px}} [[Gold Botkiller Medi Gun Mk.II]]
 
* {{icon item|Australium Medi Gun|30px}} [[Australium Medi Gun]]
 
* {{icon item|Vaccinator|30px}} [[Vaccinator]]
 
* {{icon item|Festive Ubersaw|30px}} [[Festive Ubersaw]]
 
 
 
'''Sniper Weapons:'''
 
* {{icon item|Silver Botkiller Sniper Rifle Mk.I|30px}} [[Silver Botkiller Sniper Rifle Mk.I]]
 
* {{icon item|Gold Botkiller Sniper Rifle Mk.I|30px}} [[Gold Botkiller Sniper Rifle Mk.I]]
 
* {{icon item|Rust Botkiller Sniper Rifle Mk.I|30px}} [[Rust Botkiller Sniper Rifle Mk.I]]
 
* {{icon item|Blood Botkiller Sniper Rifle Mk.I|30px}} [[Blood Botkiller Sniper Rifle Mk.I]]
 
* {{icon item|Carbonado Botkiller Sniper Rifle Mk.I|30px}} [[Carbonado Botkiller Sniper Rifle Mk.I]]
 
* {{icon item|Diamond Botkiller Sniper Rifle Mk.I|30px}} [[Diamond Botkiller Sniper Rifle Mk.I]]
 
* {{icon item|Silver Botkiller Sniper Rifle Mk.II|30px}} [[Silver Botkiller Sniper Rifle Mk.II]]
 
* {{icon item|Gold Botkiller Sniper Rifle Mk.II|30px}} [[Gold Botkiller Sniper Rifle Mk.II]]
 
* {{icon item|Australium Sniper Rifle|30px}} [[Australium Sniper Rifle]]
 
* {{icon item|Festive Huntsman|30px}} [[Festive Huntsman]]
 
* {{icon item|Australium SMG|30px}} [[Australium SMG]]
 
* {{icon item|Festive Jarate|30px}} [[Festive Jarate]]
 
 
 
'''Spy Weapons:'''
 
* {{icon item|Festive Ambassador|30px}} [[Festive Ambassador]]
 
* {{icon item|Australium Ambassador|30px}} [[Australium Ambassador]]
 
* {{icon item|Silver Botkiller Knife Mk.I|30px}} [[Silver Botkiller Knife Mk.I]]
 
* {{icon item|Gold Botkiller Knife Mk.I|30px}} [[Gold Botkiller Knife Mk.I]]
 
* {{icon item|Rust Botkiller Knife Mk.I|30px}} [[Rust Botkiller Knife Mk.I]]
 
* {{icon item|Blood Botkiller Knife Mk.I|30px}} [[Blood Botkiller Knife Mk.I]]
 
* {{icon item|Carbonado Botkiller Knife Mk.I|30px}} [[Carbonado Botkiller Knife Mk.I]]
 
* {{icon item|Diamond Botkiller Knife Mk.I|30px}} [[Diamond Botkiller Knife Mk.I]]
 
* {{icon item|Silver Botkiller Knife Mk.II|30px}} [[Silver Botkiller Knife Mk.II]]
 
* {{icon item|Gold Botkiller Knife Mk.II|30px}} [[Gold Botkiller Knife Mk.II]]
 
* {{icon item|Australium Knife|30px}} [[Australium Knife]]
 
* {{icon item|Festive Sapper|30px}} [[Festive Sapper]]
 
* {{icon item|Invisibility Watch|30px}} [[Invisibility Watch]]
 
* {{icon item|Quackenbirdt|30px}} [[Quackenbirdt]]
 
 
 
'''Multiple Class Weapons:'''
 
* {{icon item|Bat Outta Hell|30px}} [[Bat Outta Hell]]
 
* {{icon item|Golden Frying Pan|30px}} [[Golden Frying Pan]]
 
}}
 
  
 
=== Finished weapons ===
 
=== Finished weapons ===
 
{{Columns-list|4|
 
{{Columns-list|4|
 +
* {{icon item|Air Strike|30px}} [[Air Strike]]
 
* {{icon item|Ali Baba's Wee Booties|30px}} [[Ali Baba's Wee Booties]]
 
* {{icon item|Ali Baba's Wee Booties|30px}} [[Ali Baba's Wee Booties]]
* {{icon item|Ambassador|30px}} [[Ambassador]]
+
* {{icon item|Ambassador|30px}} [[Ambassador|Ambassador: Multiple Skins]]
 
* {{icon item|Amputator|30px}} [[Amputator]]
 
* {{icon item|Amputator|30px}} [[Amputator]]
 +
* {{icon item|Ap-Sap|30px}} [[Ap-Sap]]
 
* {{icon item|Apoco-Fists|30px}} [[Apoco-Fists]]
 
* {{icon item|Apoco-Fists|30px}} [[Apoco-Fists]]
* {{icon item|Ap-Sap|30px}} [[Ap-Sap]]
 
 
* {{icon item|Atomizer|30px}} [[Atomizer]]
 
* {{icon item|Atomizer|30px}} [[Atomizer]]
* {{icon item|AWPer_Hand|30px}} [[AWPer Hand]]
+
* {{icon item|AWPer Hand|30px}} [[AWPer Hand]]
* {{icon item|Axtinguisher|30px}} [[Axtinguisher]]
+
* {{icon item|Axtinguisher|30px}} [[Axtinguisher|Axtinguisher: Multiple Skins]]
 
* {{icon item|Baby Face's Blaster|30px}} [[Baby Face's Blaster]]
 
* {{icon item|Baby Face's Blaster|30px}} [[Baby Face's Blaster]]
 
* {{icon item|Backburner|30px}} [[Backburner]]
 
* {{icon item|Backburner|30px}} [[Backburner]]
 +
* {{icon item|Back Scatter|30px}} [[Back Scatter]]
 
* {{icon item|Back Scratcher|30px}} [[Back Scratcher]]
 
* {{icon item|Back Scratcher|30px}} [[Back Scratcher]]
* {{icon item|Bat|30px}} [[Bat]]
+
* {{icon item|B.A.S.E. Jumper|30px}} [[B.A.S.E. Jumper]]
 +
* {{icon item|Bat|30px}} [[Bat|Bat: Multiple Skins]]
 +
* {{icon item|Bat Outta Hell|30px}} [[Bat Outta Hell]]
 +
* {{icon item|Batsaber|30px}} [[Batsaber]]
 
* {{icon item|Battalion's Backup|30px}} [[Battalion's Backup]]
 
* {{icon item|Battalion's Backup|30px}} [[Battalion's Backup]]
 
* {{icon item|Bazaar Bargain|30px}} [[Bazaar Bargain]]
 
* {{icon item|Bazaar Bargain|30px}} [[Bazaar Bargain]]
Line 288: Line 96:
 
* {{icon item|Big Earner|30px}} [[Big Earner]]
 
* {{icon item|Big Earner|30px}} [[Big Earner]]
 
* {{icon item|Big Kill|30px}} [[Big Kill]]
 
* {{icon item|Big Kill|30px}} [[Big Kill]]
* {{icon item|Black Box|30px}} [[Black Box]]
+
* {{icon item|Black Box|30px}} [[Black Box|Black Box: Multiple Skins]]
 
* {{icon item|Black Rose|30px}} [[Black Rose]]
 
* {{icon item|Black Rose|30px}} [[Black Rose]]
* {{icon item|Blutsauger|30px}} [[Blutsauger]]
+
* {{icon item|Blutsauger|30px}} [[Blutsauger|Blutsauger: Multiple Skins]]
 
* {{icon item|Bonesaw|30px}} [[Bonesaw]]
 
* {{icon item|Bonesaw|30px}} [[Bonesaw]]
* {{icon item|Bonk! Atomic Punch|30px}} [[Bonk! Atomic Punch]]
+
* {{icon item|Bonk! Atomic Punch|30px}} [[Bonk! Atomic Punch|Bonk! Atomic Punch: Multiple Skins]]
 
* {{icon item|Bootlegger|30px}} [[Bootlegger]]
 
* {{icon item|Bootlegger|30px}} [[Bootlegger]]
 
* {{icon item|Boston Basher|30px}} [[Boston Basher]]
 
* {{icon item|Boston Basher|30px}} [[Boston Basher]]
 
* {{icon item|Bottle|30px}} [[Bottle]]
 
* {{icon item|Bottle|30px}} [[Bottle]]
 
* {{icon item|Brass Beast|30px}} [[Brass Beast]]
 
* {{icon item|Brass Beast|30px}} [[Brass Beast]]
 +
* {{icon item|Bread Bite|30px}} [[Bread Bite]]
 
* {{icon item|Buffalo Steak Sandvich|30px}} [[Buffalo Steak Sandvich]]
 
* {{icon item|Buffalo Steak Sandvich|30px}} [[Buffalo Steak Sandvich]]
* {{icon item|Buff Banner|30px}} [[Buff Banner]]
+
* {{icon item|Buff Banner|30px}} [[Buff Banner|Buff Banner: Multiple Skins]]
 
* {{icon item|Bushwacka|30px}} [[Bushwacka]]
 
* {{icon item|Bushwacka|30px}} [[Bushwacka]]
 
* {{icon item|Candy Cane|30px}} [[Candy Cane]]
 
* {{icon item|Candy Cane|30px}} [[Candy Cane]]
* {{icon item|Chargin' Targe|30px}} [[Chargin' Targe]]
+
* {{icon item|Chargin' Targe|30px}} [[Chargin' Targe|Chargin' Targe: Multiple Skins]]
 
* {{icon item|Claidheamh Mòr|30px}} [[Claidheamh Mòr]]
 
* {{icon item|Claidheamh Mòr|30px}} [[Claidheamh Mòr]]
 +
* {{icon item|Classic|30px}} [[Classic]]
 
* {{icon item|Cleaner's Carbine|30px}} [[Cleaner's Carbine]]
 
* {{icon item|Cleaner's Carbine|30px}} [[Cleaner's Carbine]]
 
* {{icon item|Cloak and Dagger|30px}} [[Cloak and Dagger]]
 
* {{icon item|Cloak and Dagger|30px}} [[Cloak and Dagger]]
Line 311: Line 121:
 
* {{icon item|Cozy Camper|30px}} [[Cozy Camper]]
 
* {{icon item|Cozy Camper|30px}} [[Cozy Camper]]
 
* {{icon item|Crit-a-Cola|30px}} [[Crit-a-Cola]]
 
* {{icon item|Crit-a-Cola|30px}} [[Crit-a-Cola]]
* {{icon item|Crusader's Crossbow|30px}} [[Crusader's Crossbow]]
+
* {{icon item|Crossing Guard|30px}} [[Crossing Guard]]
* {{icon item|Dalokohs Bar|30px}} [[Dalokohs Bar]]
+
* {{icon item|Crusader's Crossbow|30px}} [[Crusader's Crossbow|Crusader's Crossbow: Multiple Skins]]
 
* {{icon item|Darwin's Danger Shield|30px}} [[Darwin's Danger Shield]]
 
* {{icon item|Darwin's Danger Shield|30px}} [[Darwin's Danger Shield]]
 
* {{icon item|Dead Ringer|30px}} [[Dead Ringer]]
 
* {{icon item|Dead Ringer|30px}} [[Dead Ringer]]
Line 321: Line 131:
 
* {{icon item|Disciplinary Action|30px}} [[Disciplinary Action]]
 
* {{icon item|Disciplinary Action|30px}} [[Disciplinary Action]]
 
* {{icon item|Disguise Kit|30px}} [[Disguise Kit]]
 
* {{icon item|Disguise Kit|30px}} [[Disguise Kit]]
* {{icon item|Electro Sapper|30px}} [[Electro Sapper]]
+
* {{icon item|Dragon's Fury|30px}} [[Dragon's Fury]]
 +
* {{icon item|Electro Sapper|30px}} [[Electro Sapper|Electro Sapper: Multiple Skins]]
 
* {{icon item|Enforcer|30px}} [[Enforcer]]
 
* {{icon item|Enforcer|30px}} [[Enforcer]]
 
* {{icon item|Enthusiast's Timepiece|30px}} [[Enthusiast's Timepiece]]
 
* {{icon item|Enthusiast's Timepiece|30px}} [[Enthusiast's Timepiece]]
 +
* {{icon item|Equalizer|30px}} [[Equalizer]]
 
* {{icon item|Escape Plan|30px}} [[Escape Plan]]
 
* {{icon item|Escape Plan|30px}} [[Escape Plan]]
 
* {{icon item|Eureka Effect|30px}} [[Eureka Effect]]
 
* {{icon item|Eureka Effect|30px}} [[Eureka Effect]]
 
* {{icon item|Eviction Notice|30px}} [[Eviction Notice]]
 
* {{icon item|Eviction Notice|30px}} [[Eviction Notice]]
* {{icon item|Eyelander|30px}} [[Eyelander]]
+
* {{icon item|Eyelander|30px}} [[Eyelander|Eyelander: Multiple Skins]]
 
* {{icon item|Family Business|30px}} [[Family Business]]
 
* {{icon item|Family Business|30px}} [[Family Business]]
 
* {{icon item|Fan O'War|30px}} [[Fan O'War]]
 
* {{icon item|Fan O'War|30px}} [[Fan O'War]]
* {{icon item|Festive Bat|30px}} [[Festive Bat]]
 
* {{icon item|Festive Flamethrower|30px}} [[Festive Flamethrower]]
 
* {{icon item|Festive Frontier Justice|30px}} [[Festive Frontier Justice]]
 
* {{icon item|Festive Minigun|30px}} [[Festive Minigun]]
 
* {{icon item|Festive Rocket Launcher|30px}} [[Festive Rocket Launcher]]
 
* {{icon item|Festive Scattergun|30px}} [[Festive Scattergun]]
 
* {{icon item|Festive Sniper Rifle|30px}} [[Festive Sniper Rifle]]
 
* {{icon item|Festive Stickybomb Launcher|30px}} [[Festive Stickybomb Launcher]]
 
 
* {{icon item|Fire Axe|30px}} [[Fire Axe]]
 
* {{icon item|Fire Axe|30px}} [[Fire Axe]]
 
* {{icon item|Fishcake|30px}} [[Fishcake]]
 
* {{icon item|Fishcake|30px}} [[Fishcake]]
 +
* {{icon item|Fists of Steel|30px}} [[Fists of Steel]]
 
* {{icon item|Fists|30px}} [[Fists]]
 
* {{icon item|Fists|30px}} [[Fists]]
* {{icon item|Fists of Steel|30px}} [[Fists of Steel]]
+
* {{icon item|Flame Thrower|30px}} [[Flame Thrower|Flame Thrower: Multiple Skins]]
* {{icon item|Flamethrower|30px}} [[Flamethrower]]
+
* {{icon item|Flare Gun|30px}} [[Flare Gun|Flare Gun: Multiple Skins]]
* {{icon item|Flare Gun|30px}} [[Flare Gun]]
+
* {{icon item|Flying Guillotine|30px}} [[Flying Guillotine]]
* {{icon item|Flying Guillotine|30px}} [[Flying Guillotine]]  
+
* {{icon item|Force-A-Nature|30px}} [[Force-A-Nature|Force-A-Nature: Multiple Skins]]
* {{icon item|Force-A-Nature|30px}} [[Force-A-Nature]]
+
* {{icon item|Fortified Compound|30px}} [[Fortified Compound]]
 
* {{icon item|Freedom Staff|30px}} [[Freedom Staff]]
 
* {{icon item|Freedom Staff|30px}} [[Freedom Staff]]
* {{icon item|Frontier Justice|30px}} [[Frontier Justice]]
+
* {{icon item|Frontier Justice|30px}} [[Frontier Justice|Frontier Justice: Multiple Skins]]
 
* {{icon item|Frying Pan|30px}} [[Frying Pan]]
 
* {{icon item|Frying Pan|30px}} [[Frying Pan]]
* {{icon item|Gloves of Running Urgently|30px}} [[Gloves of Running Urgently]]
+
* {{icon item|Gas Passer|30px}} [[Gas Passer]]
 +
* {{icon item|Giger Counter|30px}} [[Giger Counter]]
 +
* {{icon item|Gloves of Running Urgently|30px}} [[Gloves of Running Urgently|Gloves of Running Urgently: Multiple Skins]]
 +
* {{icon item|Golden Frying Pan|30px}} [[Golden Frying Pan]]
 
* {{icon item|Golden Wrench|30px}} [[Golden Wrench]]
 
* {{icon item|Golden Wrench|30px}} [[Golden Wrench]]
* {{icon item|Grenade Launcher|30px}} [[Grenade Launcher]]
+
* {{icon item|Grenade Launcher|30px}} [[Grenade Launcher|Grenade Launcher: Multiple Skins]]
 
* {{icon item|Gunboats|30px}} [[Gunboats]]
 
* {{icon item|Gunboats|30px}} [[Gunboats]]
 
* {{icon item|Gunslinger|30px}} [[Gunslinger]]
 
* {{icon item|Gunslinger|30px}} [[Gunslinger]]
 
* {{icon item|Half-Zatoichi|30px}} [[Half-Zatoichi]]
 
* {{icon item|Half-Zatoichi|30px}} [[Half-Zatoichi]]
* {{icon item|Ham_Shank|30px}} [[Ham Shank]]
+
* {{icon item|Ham Shank|30px}} [[Ham Shank]]
 
* {{icon item|Hitman's Heatmaker|30px}} [[Hitman's Heatmaker]]
 
* {{icon item|Hitman's Heatmaker|30px}} [[Hitman's Heatmaker]]
 
* {{icon item|Holiday Punch|30px}} [[Holiday Punch]]
 
* {{icon item|Holiday Punch|30px}} [[Holiday Punch]]
* {{icon item|Holy Mackerel|30px}} [[Holy Mackerel]]
+
* {{icon item|Holy Mackerel|30px}} [[Holy Mackerel|Holy Mackerel: Multiple Skins]]
 
* {{icon item|Homewrecker|30px}} [[Homewrecker]]
 
* {{icon item|Homewrecker|30px}} [[Homewrecker]]
 
* {{icon item|Horseless Headless Horsemann's Headtaker|30px}} [[Horseless Headless Horsemann's Headtaker]]
 
* {{icon item|Horseless Headless Horsemann's Headtaker|30px}} [[Horseless Headless Horsemann's Headtaker]]
* {{icon item|Huntsman|30px}} [[Huntsman]]
+
* {{icon item|Hot Hand|30px}} [[Hot Hand]]
 +
* {{icon item|Huntsman|30px}} [[Huntsman|Huntsman: Multiple Skins]]
 
* {{icon item|Huo-Long Heater|30px}} [[Huo-Long Heater]]
 
* {{icon item|Huo-Long Heater|30px}} [[Huo-Long Heater]]
 +
* {{icon item|Invisibility Watch|30px}} [[Invisibility Watch]]
 
* {{icon item|Iron Curtain|30px}} [[Iron Curtain]]
 
* {{icon item|Iron Curtain|30px}} [[Iron Curtain]]
 
* {{icon item|Jag|30px}} [[Jag]]
 
* {{icon item|Jag|30px}} [[Jag]]
* {{icon item|Jarate|30px}} [[Jarate]]
+
* {{icon item|Jarate|30px}} [[Jarate|Jarate: Multiple Skins]]
 
* {{icon item|Killing Gloves of Boxing|30px}} [[Killing Gloves of Boxing]]
 
* {{icon item|Killing Gloves of Boxing|30px}} [[Killing Gloves of Boxing]]
* {{icon item|Knife|30px}} [[Knife]]
+
* {{icon item|Knife|30px}} [[Knife|Knife: Multiple Skins]]
 
* {{icon item|Kritzkrieg|30px}} [[Kritzkrieg]]
 
* {{icon item|Kritzkrieg|30px}} [[Kritzkrieg]]
 
* {{icon item|Kukri|30px}} [[Kukri]]
 
* {{icon item|Kukri|30px}} [[Kukri]]
Line 373: Line 183:
 
* {{icon item|Liberty Launcher|30px}} [[Liberty Launcher]]
 
* {{icon item|Liberty Launcher|30px}} [[Liberty Launcher]]
 
* {{icon item|Loch-n-Load|30px}} [[Loch-n-Load]]
 
* {{icon item|Loch-n-Load|30px}} [[Loch-n-Load]]
 +
* {{icon item|Lollichop|30px}} [[Lollichop]]
 
* {{icon item|Loose Cannon|30px}} [[Loose Cannon]]
 
* {{icon item|Loose Cannon|30px}} [[Loose Cannon]]
 
* {{icon item|Lugermorph|30px}} [[Lugermorph]]
 
* {{icon item|Lugermorph|30px}} [[Lugermorph]]
Line 381: Line 192:
 
* {{icon item|Market Gardener|30px}} [[Market Gardener]]
 
* {{icon item|Market Gardener|30px}} [[Market Gardener]]
 
* {{icon item|Maul|30px}} [[Maul]]
 
* {{icon item|Maul|30px}} [[Maul]]
* {{icon item|Medi Gun|30px}} [[Medi Gun]]
+
* {{icon item|Medi Gun|30px}} [[Medi Gun|Medi Gun: Multiple Skins]]
* {{icon item|Memory Maker|30px}} [[Memory Maker]]  
+
* {{icon item|Memory Maker|30px}} [[Memory Maker]]
* {{icon item|Minigun|30px}} [[Minigun]]
+
* {{icon item|Mutated Milk|30px}} [[Mutated Milk]]
 
* {{icon item|Natascha|30px}} [[Natascha]]
 
* {{icon item|Natascha|30px}} [[Natascha]]
 +
* {{icon item|Necro Smasher|30px}} [[Necro Smasher]]
 
* {{icon item|Neon Annihilator|30px}} [[Neon Annihilator]]
 
* {{icon item|Neon Annihilator|30px}} [[Neon Annihilator]]
 
* {{icon item|Nessie's Nine Iron|30px}} [[Nessie's Nine Iron]]
 
* {{icon item|Nessie's Nine Iron|30px}} [[Nessie's Nine Iron]]
 +
* {{icon item|Nostromo Napalmer|30px}} [[Nostromo Napalmer]]
 
* {{icon item|Original|30px}} [[Original]]
 
* {{icon item|Original|30px}} [[Original]]
 
* {{icon item|Overdose|30px}} [[Overdose]]
 
* {{icon item|Overdose|30px}} [[Overdose]]
Line 398: Line 211:
 
* {{icon item|Powerjack|30px}} [[Powerjack]]
 
* {{icon item|Powerjack|30px}} [[Powerjack]]
 
* {{icon item|Pretty Boy's Pocket Pistol|30px}} [[Pretty Boy's Pocket Pistol]]
 
* {{icon item|Pretty Boy's Pocket Pistol|30px}} [[Pretty Boy's Pocket Pistol]]
 +
* {{icon item|Prinny Machete|30px}} [[Prinny Machete]]
 +
* {{icon item|Quackenbirdt|30px}} [[Quackenbirdt]]
 
* {{icon item|Quick-Fix|30px}} [[Quick-Fix]]
 
* {{icon item|Quick-Fix|30px}} [[Quick-Fix]]
 
* {{icon item|Rainblower|30px}} [[Rainblower]]
 
* {{icon item|Rainblower|30px}} [[Rainblower]]
Line 404: Line 219:
 
* {{icon item|Rescue Ranger|30px}} [[Rescue Ranger]]
 
* {{icon item|Rescue Ranger|30px}} [[Rescue Ranger]]
 
* {{icon item|Reserve Shooter|30px}} [[Reserve Shooter]]
 
* {{icon item|Reserve Shooter|30px}} [[Reserve Shooter]]
* {{icon item|Revolver|30px}} [[Revolver]]
+
* {{icon item|Revolver|30px}} [[Revolver|Revolver: Multiple Skins]]
 
* {{icon item|Righteous Bison|30px}} [[Righteous Bison]]
 
* {{icon item|Righteous Bison|30px}} [[Righteous Bison]]
 +
* {{icon item|Robo-Sandvich|30px}} [[Robo-Sandvich]]
 
* {{icon item|Rocket Jumper|30px}} [[Rocket Jumper]]
 
* {{icon item|Rocket Jumper|30px}} [[Rocket Jumper]]
* {{icon item|Rocket Launcher|30px}} [[Rocket Launcher]]
+
* {{icon item|Rocket Launcher|30px}} [[Rocket Launcher|Rocket Launcher: Multiple Skins]]
 
* {{icon item|Sandman|30px}} [[Sandman]]
 
* {{icon item|Sandman|30px}} [[Sandman]]
* {{icon item|Sandvich|30px}} [[Sandvich]]
+
* {{icon item|Sandvich|30px}} [[Sandvich|Sandvich: Multiple Skins]]
 +
* {{icon item|Sapper|30px}} [[Sapper]]
 
* {{icon item|Saxxy|30px}} [[Saxxy]]
 
* {{icon item|Saxxy|30px}} [[Saxxy]]
* {{icon item|Scattergun|30px}} [[Scattergun]]
+
* {{icon item|Scattergun|30px}} [[Scattergun|Scattergun: Multiple Skins]]
 
* {{icon item|Scorch Shot|30px}} [[Scorch Shot]]
 
* {{icon item|Scorch Shot|30px}} [[Scorch Shot]]
 
* {{icon item|Scotsman's Skullcutter|30px}} [[Scotsman's Skullcutter]]
 
* {{icon item|Scotsman's Skullcutter|30px}} [[Scotsman's Skullcutter]]
 
* {{icon item|Scottish Handshake|30px}} [[Scottish Handshake]]
 
* {{icon item|Scottish Handshake|30px}} [[Scottish Handshake]]
 
* {{icon item|Scottish Resistance|30px}} [[Scottish Resistance]]
 
* {{icon item|Scottish Resistance|30px}} [[Scottish Resistance]]
 +
* {{icon item|Second Banana|30px}} [[Second Banana]]
 +
* {{icon item|Self-Aware Beauty Mark|30px}} [[Self-Aware Beauty Mark]]
 
* {{icon item|Shahanshah|30px}} [[Shahanshah]]
 
* {{icon item|Shahanshah|30px}} [[Shahanshah]]
 
* {{icon item|Sharp Dresser|30px}} [[Sharp Dresser]]
 
* {{icon item|Sharp Dresser|30px}} [[Sharp Dresser]]
Line 421: Line 240:
 
* {{icon item|Short Circuit|30px}} [[Short Circuit]]
 
* {{icon item|Short Circuit|30px}} [[Short Circuit]]
 
* {{icon item|Shortstop|30px}} [[Shortstop]]
 
* {{icon item|Shortstop|30px}} [[Shortstop]]
* {{icon item|Shotgun|30px}} [[Shotgun]]
+
* {{icon item|Shotgun|30px}} [[Shotgun|Shotgun: Multiple Skins]]
 
* {{icon item|Shovel|30px}} [[Shovel]]
 
* {{icon item|Shovel|30px}} [[Shovel]]
* {{icon item|Sniper Rifle|30px}} [[Sniper Rifle]]
+
* {{icon item|SMG|30px}} [[SMG|SMG: Multiple Skins]]
 +
* {{icon item|Snack Attack|30px}} [[Snack Attack]]
 +
* {{icon item|Sniper Rifle|30px}} [[Sniper Rifle|Sniper Rifle: Multiple Skins]]
 
* {{icon item|Soda Popper|30px}} [[Soda Popper]]
 
* {{icon item|Soda Popper|30px}} [[Soda Popper]]
 
* {{icon item|Solemn Vow|30px}} [[Solemn Vow]]
 
* {{icon item|Solemn Vow|30px}} [[Solemn Vow]]
Line 429: Line 250:
 
* {{icon item|Splendid Screen|30px}} [[Splendid Screen]]
 
* {{icon item|Splendid Screen|30px}} [[Splendid Screen]]
 
* {{icon item|Spy-cicle|30px}} [[Spy-cicle]]
 
* {{icon item|Spy-cicle|30px}} [[Spy-cicle]]
* {{icon item|Stickybomb Launcher|30px}} [[Stickybomb Launcher]]
 
 
* {{icon item|Sticky Jumper|30px}} [[Sticky Jumper]]
 
* {{icon item|Sticky Jumper|30px}} [[Sticky Jumper]]
* {{icon item|Submachine Gun|30px}} [[Submachine Gun]]
 
 
* {{icon item|Sun-on-a-Stick|30px}} [[Sun-on-a-Stick]]
 
* {{icon item|Sun-on-a-Stick|30px}} [[Sun-on-a-Stick]]
 
* {{icon item|Sydney Sleeper|30px}} [[Sydney Sleeper]]
 
* {{icon item|Sydney Sleeper|30px}} [[Sydney Sleeper]]
 
* {{icon item|Syringe Gun|30px}} [[Syringe Gun]]
 
* {{icon item|Syringe Gun|30px}} [[Syringe Gun]]
 +
* {{icon item|Thermal Thruster|30px}} [[Thermal Thruster]]
 
* {{icon item|Third Degree|30px}} [[Third Degree]]
 
* {{icon item|Third Degree|30px}} [[Third Degree]]
 
* {{icon item|Three-Rune Blade|30px}} [[Three-Rune Blade]]
 
* {{icon item|Three-Rune Blade|30px}} [[Three-Rune Blade]]
* {{icon item|Tomislav|30px}} [[Tomislav]]
+
* {{icon item|Tomislav|30px}} [[Tomislav|Tomislav: Multiple Skins]]
 +
* {{icon item|Tide Turner|30px}} [[Tide Turner]]
 +
* {{icon item|Toolbox|30px}} [[Toolbox]]
 
* {{icon item|Tribalman's Shiv|30px}} [[Tribalman's Shiv]]
 
* {{icon item|Tribalman's Shiv|30px}} [[Tribalman's Shiv]]
* {{icon item|Übersaw|30px}} [[Übersaw]]
+
* {{icon item|Übersaw|30px}} [[Übersaw|Übersaw: Multiple Skins]]
 
* {{icon item|Ullapool Caber|30px}} [[Ullapool Caber]]
 
* {{icon item|Ullapool Caber|30px}} [[Ullapool Caber]]
 
* {{icon item|Unarmed Combat|30px}} [[Unarmed Combat]]
 
* {{icon item|Unarmed Combat|30px}} [[Unarmed Combat]]
 +
* {{icon item|Vaccinator|30px}} [[Vaccinator]]
 
* {{icon item|Vita-Saw|30px}} [[Vita-Saw]]
 
* {{icon item|Vita-Saw|30px}} [[Vita-Saw]]
 
* {{icon item|Wanga Prick|30px}} [[Wanga Prick]]
 
* {{icon item|Wanga Prick|30px}} [[Wanga Prick]]
Line 447: Line 270:
 
* {{icon item|Widowmaker|30px}} [[Widowmaker]]
 
* {{icon item|Widowmaker|30px}} [[Widowmaker]]
 
* {{icon item|Winger|30px}} [[Winger]]
 
* {{icon item|Winger|30px}} [[Winger]]
* {{icon item|Wrangler|30px}} [[Wrangler]]
+
* {{icon item|Wrangler|30px}} [[Wrangler|Wrangler: Multiple Skins]]
 
* {{icon item|Wrap Assassin|30px}} [[Wrap Assassin]]
 
* {{icon item|Wrap Assassin|30px}} [[Wrap Assassin]]
* {{icon item|Wrench|30px}} [[Wrench]]
+
* {{icon item|Wrench|30px}} [[Wrench|Wrench: Multiple Skins]]
 
* {{icon item|Your Eternal Reward|30px}} [[Your Eternal Reward]]
 
* {{icon item|Your Eternal Reward|30px}} [[Your Eternal Reward]]
 
}}
 
}}
 +
 +
== Action Slot Items ==
 +
=== Needed Action slot items ===
 +
 +
'''All Class Action Slot Items:'''
 +
* None
 +
 +
=== Finished Action slot items ===
 +
* {{icon item|Battery Canteens|30px}} [[Battery Canteens]]
 +
* {{icon item|Duck Journal|30px}} [[Duck Journal]]
 +
* {{icon item|Fancy Spellbook|30px}} [[Fancy Spellbook]]
 +
* {{icon item|Fireproof Secret Diary|30px}} [[Fireproof Secret Diary]]
 +
* {{icon item|Grappling Hook|30px}} [[Grappling Hook]]
 +
* {{icon item|Kritz or Treat Canteen|30px}} [[Kritz or Treat Canteen]]
 +
* {{icon item|Power Up Canteen|30px}} [[Power Up Canteen]]

Latest revision as of 17:28, 20 February 2024

The 3D Models project's goal is to construct pseudo-3D images of the weapons in Team Fortress 2 that can be freely rotated.

Example

https://wiki.teamfortress.com/w/images/6/6a/Detonator_RED_3D.jpg?2018072610024612838,280,233,3,0,193,111,56,152,110,115,146,109,175,194,106,266,153,106,367,147,105,472,194,84,608,155,83,762,146,80,924,194,63,1098,157,60,1295,145,57,1503,194,44,1705,161,40,1932,145,35,2173,195,29,2392,165,24,2635,147,19,2895,195,20,3123,171,14,3377,151,7,3646,196,17,3872,177,11,4122,154,4,4386,198,22,4597,182,16,4829,159,9,5073,204,37,5255,188,31,5454,164,25,5663,210,61,5803,192,56,5955,168,51,6114,214,92,6203,195,89,6298,170,86,6396,215,114,6447,196,115,6497,172,115,6545,214,98,6633,195,95,6727,170,94,6825,210,78,6965,192,71,7116,168,68,7275,204,60,7457,188,49,7656,164,45,7865,198,46,8076,182,30,8308,159,25,8552,196,35,8778,177,17,9028,154,10,9292,195,31,9520,171,11,9774,151,2,10043,194,30,10263,165,12,10506,147,0,10766,194,33,10968,161,12,11195,145,2,11436,194,42,11610,157,21,11807,145,14,12015,194,58,12151,155,42,12306,146,35,12469,194,82,12560,153,72,12661,147,69https://wiki.teamfortress.com/w/images/3/36/Detonator_BLU_3D.jpg?2018072610042612842,280,232,3,0,193,111,56,153,110,114,146,110,173,194,106,264,154,106,365,146,105,470,194,84,607,155,82,761,146,80,923,194,62,1097,158,59,1294,145,56,1502,195,43,1704,162,39,1931,145,35,2172,195,28,2392,166,23,2635,148,18,2896,195,19,3125,171,14,3379,151,7,3649,196,17,3875,177,11,4125,154,4,4389,198,22,4600,182,16,4832,159,10,5076,203,37,5258,187,32,5457,164,25,5666,209,61,5806,191,57,5957,167,52,6116,213,92,6205,194,90,6299,170,87,6397,214,114,6448,195,114,6498,171,115,6546,213,98,6635,194,95,6729,170,93,6827,209,78,6967,191,70,7118,168,68,7277,203,60,7459,187,48,7658,164,44,7867,198,45,8078,182,30,8310,159,25,8554,196,35,8780,177,17,9030,154,10,9294,195,31,9523,171,11,9777,151,1,10047,195,30,10267,166,12,10510,148,0,10771,194,33,10973,162,12,11200,145,2,11441,194,42,11615,158,22,11812,145,14,12020,194,58,12157,155,42,12311,146,36,12473,194,82,12564,154,72,12665,146,69

Pictogram comment.png Note This is not for the faint of heart. It requires a bit of knowledge on how both VMTs and HLMV work, and a lot of time and patience since a lot of models will not be centered correctly by default, thus requiring plenty of tweaking to get them ready for the process.

Requirements

Initial setup

Installation

Please follow the latest instructions at the 3D-Models-automaton repo.

Workflow

Taking images

  • Open up the weapon in HLMV and ensure it rotates properly. There are three possible outcomes here:
    • The model will rotate around the bottom corner of the model. If so, you will need to make use of rotation_offset.
      • First, reset the model's position with Options → Center View.
      • Then, from cmd, navigate to the folder containing automate.py and run mem trans, noting the second value (the Y translation).
      • Back in HLMV, rotate the model so that it is facing right. Hold down ⇧ Shift and move the model sideways so that it is centered in the circle that appears.
      • Go back to cmd, and run mem trans again, once again noting the second value.
      • The difference between the current value and the initial value is the rotation_offset value to set in automate.py.
    • The model will rotate around the wrong plane or the model will not rotate around the vertical or horizontal center. If so, the model will need to be recompiled.
    • The model will rotate around the vertical and horizontal center of the model. If so, you are good to go.
  • Center the model using Options → Center View.
  • If the model does not face you directly when centered, it will need to be recompiled with a new rotation.
  • Zoom the model out so that it is as large as possible, but will not clip outside the viewer window when rotated or tilted.
  • If the light source produces a glare that interferes with the model, hold Ctrl and drag the light source around with the mouse until it is in a better position.
  • Run the script, from the command line. Navigate to the folder containing the scripts and type python automate.py.
  • After the image finishes rotating, switch back to the command line and follow the prompts to upload the file.

Team-colored models

  • This is now very simple, simply change this in HLMV (Model → Skin #), then re-run the script.

Models with other class arms/models blocking the view

  • If you wish to remove a model from the viewer (for example the Sniper's arms holding onto the view model Sniper Rifle), click on the Model tab in HLMV and find out which VMTs are being used for the model textures.
  • Extract the VMTs using GCFScape to the same path in your /custom/folder and open them up in a text editor.
  • Inside the "VertexLitGeneric" curly brackets add the line "$no_draw" "1". This will make this part of the model invisible in HLMV.

Recompiling models

  • First, check here to see if a model has already been recompiled.
  • Download and install Crowbar, GCFScape, and the Source SDK (Steam -> Library -> Tools)
  • Extract the model with GCFScape, decompile with Crowbar.
  • For the most part, adding $autocenter to the .qc file should do the trick. If not, try using $origin X Y Z. For more complex concerns, see Category:QC Commands on the Valve Developer Community.
  • Recompile the model with Crowbar. You should be good to go!

Uploading your image

  • This should happen automatically. If it does not, ensure that you have poster installed via pip install -U poster.

Tips and debugging

  • You can set vertical_rotations = 0 to generate the model with no tilting, or reduce the number of rotations with number_of_images.
  • You will find it much easier when recompiling models to find out if they're centered correctly by checking the 'Ground' checkbox in HLMV and refreshing the model every time you make a change and recompile.
  • If the 3D image's starting position isn't centered, click the edit button on the 3D image file's page and change "startframe" to whichever frame number is the centered frame.

Models repository

Weapons

Needed weapons

  • None

Finished weapons

Action Slot Items

Needed Action slot items

All Class Action Slot Items:

  • None

Finished Action slot items