Team Fortress 2

Team Fortress 2

79 ratings
Making TF2 Effects #1 - The Starter Guide
By ๖ۣۜζ͜͡uncle dungarees
Part 1 of a multi-part series detailing all the different elements of creating TF2 Unusual effects in-depth!
This guide covers opening the Particle Editor and creating "Burning Flames" from scratch.
4
   
Award
Favorite
Favorited
Unfavorite
Part I - Making "Burning Flames"
< ~30 min. read >

If you’re reading this guide, you likely have an interest in how Unusual Effects in Team Fortress 2 actually work. We’ve all been there at some point, wondering how these unique shapes and colors that bring an element of rarity and uniqueness to cosmetics are actually made. I’m kevin supermarket, and I want to bring to a future community of creators this full-fledged guide on how these special sprites really work and how to make your very own!
Section 0 - Before We Start
Before we begin, a quick note:
  • This guide is the first of a series covering pretty much all bases in the particle editing process from opening the editor for the first time to submitting an effect to the public workshop. This guide specifically goes over the many features of the Particle Editor and how to create the “Burning Flames” effect from scratch and how to preview it in-game.

  • It may also look very long, but this is just from the pictures used to help guide you through the process! Without all 48 images (okay, maybe that is a lot), this guide would probably be a quarter of the size but harder to confidently follow along.

  • If you believe this guide could be improved in any way, leave a comment below! Any real critiques and replies help!
Section 1 - What's an Editor?
NOTE: THE OLD METHOD NO LONGER WORKS!
Because of the x64 update for Team Fortress 2, the game no longer runs through the tf.exe file. Instead, it's tf_win64.exe, and this hasn't been updated to support the -tools launch option yet. Luckily, there is a workaround!

First, navigate to your Team Fortress 2 folder. You can do this by right-clicking the game in your Steam Library, hovering over the "Manage" option, and clicking "Browse local files". Now, create a text file inside of this folder. You can name it anything you want, I named mine "tools". In this file, write tf.exe -novid -tools and then save the file. Close your text editor and go back to the Team Fortress 2 folder.

Right-click your newly made text file and click the Rename option, then change the file's extension from .txt to .bat. You can now launch this file by double-clicking on it like you're opening a Steam game. It will open up the Command Prompt before starting the old version of TF2 in the Particle editor. Congratulations! You can move on with the guide now!


Upon running the game, you’ll be greeted by an eerie dark-gray screen. From here on out, this is what the front door to home looks like. To get inside, just click the Tools button located at the very top of the screen and select Particle Editor. For me, this reads “CoolerPET” because I’m using a special-made version created by Sigmarune. The pictures will still look the same as the standard PET.


Now, let’s open up a fresh file. Just click the “File” button and select “New”.

Section 2 - The Particle Editor
Oh boy, that’s a lot of stuff. No worries though, it becomes pretty easy to manage once you know what it’s all for. Let’s start with what these four windows are.
  • At the top left is the “Particle System Browser”. Every particle you create is known as a particle system, and the name you choose for it is displayed in the browser window.
  • At the top right is the “Console/Engine Viewport”. This window doesn’t serve much of a purpose other than seeing the actual game from inside the editor.
  • At the bottom right is the “Particle Preview” window, which should explain itself. Whenever you select a particle system from the browser, it will display in the black area of the preview window. You can change the background and show some useless debug visuals with the options on the left. If you click a particle system and nothing is displaying, then either the system has no info, or something has gone wrong.
  • Finally, at the bottom left is the “Properties” window where all the magic happens. All functions of this window are covered in another guide, so if you want to know what a function within this window does, you can reference that!
    By default, the dropdown tab is set to “Properties”, but you can click on it to switch to 7 other options. Some of these are not needed for this practice, so don’t worry about them all just yet!
Now, let’s start making the particle!
Section 3 - Making a Primary Particle
To begin, we will look at the Particle System Browser and click the button labeled Create on the right side of the window.


In the middle of your screen is the Name prompt, which you can write anything into for now. The name you give to this particle system doesn’t matter, but the name of another system we create later will. I’ll be naming it “flames_demo” for this example.
When making your own submission, it's common practice to write system names as "unusual_<yournamehere>", adding extra tags at the end if your system is something specific like "_smoke" or "_glow". This becomes "utaunt_..." when doing taunt effects.


Section 3.1 - Properties
Now that you’ve created a particle system, you’ll see a couple changes: the preview window now has a 3D cursor inside of it, but more importantly, there’s a ton of nonsense in the Properties window! You’re currently looking at all the properties of your system, but the only values you’ll likely ever change are the name, max_particles, and material.
Let’s start with the material first, as this is how we choose the sprites that will show up in our effect. Start by clicking the small [...] button next to “vgui/white”.




This is the .VMT list! Once again, it may look pretty scary at first, but you only need to use the list at the bottom left to get the job done. This list shows every texture file used in TF2, as well as certain shared resources from Half-Life. The only thing that matters here is what the sprites look like.
We’re looking for a sprite in particular named flamethrowerfire102.vmt, so click the text box next to “Filter” and type in “flamethrowerfire” (no spaces).


You’ll see a new sprite appear on the two right windows, and the first file on the list is the one we’re looking for. Click the “Open” button at the bottom left to select it (or double-click the file in the list).


Your particle material should now be set to “particle\flamethrowerfire\flamethrowerfire102.vmt”. Not “..._gray”, not “...128”. That’s all you need to do for this tab!

Section 3.2 - Renderer
Click on the drop-down menu on the left of the Properties window to open up the list of property types. We will go from “Properties” to “Renderer”.



The window will become blank again with the list on the left stating “No particle functions”. We’ll add one by right-clicking inside of that space and clicking Add…



For this effect, we want to render an animated sprite. There are 4 kinds of renderers, but render_animated_sprites and render_rope are the ones used most often. Select render_animated_sprites.


You’re now met with even more data! Once again, if you want to know what all of these do, be sure to check the Part VI guide. For this effect, we will only be changing three values: animation rate (how fast the sprite animates; we’re using a SpriteCard .vmt file, which contains multiple frames of animation), animation_fit_lifetime, and use animation rate as FPS (uses the value of animation rate as ticks/frames rather than seconds).
Normally, for effects that do not contain animation frames (just one sprite in the .VMT preview), there is no need to change any of the renderer values as this only affects sprites that do animate.

First, start by changing “animation rate” from 0.1 to 30, as this is what the real Burning Flames uses. Then, change both “animation_fit_lifetime” and “use animation rate as FPS from False” (will show up as 0 normally) to True (change it to 1). These combined will let the sprites animate at a 30FPS rate. 60 is not always used because for sprite sheets with less frames, animating at that rate would be too fast.


You’re done with the Renderer tab! Not that hard, right? If these property values appear in a different order for you, that’s just one of the many quirks to expect from a Valve-made application. It will still work the same regardless of how it’s listed.
Let’s move on to the next tab. Select the drop-down menu that currently reads “Renderer” and switch it to “Emitter”.

Section 3.3 - Emitter
You may have noticed that we skipped over a bunch of tabs in the list and almost cut right to the end. This is fine, as doing the Renderer and Emitter first lets you see your particle faster. The combination of these two is what makes the particle appear in the Particle Preview window.

Let’s start by right-clicking the darker area under the drop-down menu again and clicking Add. Between the three emitters, select “emit_continuously”. We only need to change one value this time, known as emission_rate (how many particles to emit in 1 second). The default value of 100 is way too many for this particle, so let’s change it to 16.



The emitter is complete now, and you should see a flashy fire sprite in the previewer. The particle count in the bottom right will keep increasing until it hits the limit of 1000 (it says 1004, but there’s always a little extra than the actual limit). This is because the sprites currently have nothing to stop them from existing, so they live forever until we add functions to change it. We’ll start to do this in the next tab. Select “Emitter” and switch to “Operators”.

Section 3.4 - Operators
This tab and the Initializers tab are the most work-intensive ones, as you will be adding and managing the most functions there. They are in charge of controlling the way sprites move, emit, are colored, and more.
Let’s start by adding some of the most important operators that many effects have: Alpha Fade and Decay, Movement Basic, and Movement Lock to Control Point. For Alpha Fade and Decay, three things need to be done to this function:
  • Change “start_alpha” to 0, so it emits with full transparency
  • Change “end_fade_in_time” to 0.33, so the sprite goes from transparent to opaque faster
  • Change “start_fade_out_time” to 0.99, so the sprite basically never fades out to transparent
Don’t worry if the values you put in are suddenly changed to super long numbers (as seen below). This is just another thing that the editor does, and the numbers are usually too small to change your desired result in any way.
Section 3.4 - contd.
After completing this step, you may notice that the Particle Count in the previewer is now limited to 16. Telling the sprites when to fade in and out also tells them when to finish their active time. Another function will be added later to better assist this.

Next, Movement Basic. Two values need to be changed: gravity and drag. For most functions with a vector3 value type (the 0 0 0 you see for gravity), this refers to X Y Z respectively. Here, we will make the value 0 0 90 to make the particle move upwards. Setting drag to 0.5 makes the pull of gravity slower and smoother. You only need a small amount of drag to achieve the right balance in most cases.

Now, Movement Lock to Control Point. You almost never need to change values with this function, but for Burning Flames, the sprites actually trail a little behind the hat that it’s on. Four values are changed to do this:
  • “start_fadeout_max” -> 0.3 (latest time to begin fading out)
  • “start_fadeout_min” -> 0.2 (earliest time to begin fading out)
  • “end_fadeout_max” -> 0.7 (latest time to end fading out)
  • “end_fadeout_min” -> 0.6 (earliest time to end fading out)


Just three more functions to go for this section! Let’s right-click the function list again and add the rest. We’ll need Color Fade, Radius Scale and Rotation Spin Roll. If you’re like me and prefer sorting out your functions in any way, you can right click on the name of one (or use PageUp/PageDown with a function selected) to move it up or down in the list.


Color Fade will transition the sprite from its base color to whatever we choose. First, let’s change fade_end_time to 0.5. These two values look like any other, but actually work in a unique way. Instead of meaning time in seconds, any number between 0 and 1 is used as a percentage. If your sprite is active for 2.5 seconds for example, setting fade_end_time to 0.5 (50%) makes it so the color is finished fading after only 1.25 seconds from its start.

Now, to give the fire that dark-orange color, we get to modify the color value of this function. Burning Flames uses “242 101 0 255”, and these values correspond to Red Green Blue Alpha. You can change the numbers yourself, or you can click the box next to the numbers to open up the color picker.


Now for Radius Scale! IF YOU HAVE ANY ISSUES RELATED TO PHOTOSENSITIVITY, BE CAUTIOUS WHILE DOING THIS PART! PARTICLES MAY FLASH COLORS RAPIDLY IN PREVIEW! If you do, you can close the preview window by either clicking the [X] at the top right of it, or by clicking “View” at the top of your screen and deselecting “Particle System Preview”. Go back to View and enable it again once another statement says it’s good to.

Four values here will be changed:
  • “end_time” -> 0.5 (when the sprite should stop scaling)
  • “radius_start_scale” -> 6 (how big the sprite should be relative to its current size when it emits)
  • “radius_end_scale” -> 3 (same thing, but when it stops emitting; in this case, the sprite shrinks because it starts bigger than it ends)
  • “scale_bias” -> 0.75 (“percentage” value between 0 and 1 that changes how fast a sprite goes from its start scale to end scale)
Your sprite should now be super large and flashy, sort of twisting in on itself.


Last (and easiest) is Rotation Spin Roll. Only one thing needs to change, spin_rate_degrees, which is how many degrees from 0 it will rotate. This value just needs to be set to 12.
The original Burning Flames contains 2 RSR functions, but one of them doesn’t actually do anything, so I have no idea why that is!


That completes the Operators section! These six functions build the core for how the particle moves, fades, scales, and changes color! We continue to establish this in the next tab: the Initializers. Click “Operators” and switch it to “Initializers”.

Section 3.5 - Initializers
The Initializers provide a different array of functions that all work to do similar things to the Operators. We’ll be working with even more functions, so I’ll try my best to keep things short.
First, let’s add a few to work with for now. These will be Alpha Random, Color Random, and Lifetime from Sequence. Burning Flames also contains Lifetime Random, but since Lifetime Sequence is more appropriate for a SpriteCard file (and because removing it doesn’t change anything visually while using Lifetime from Sequence), we won’t be using it.

Alpha Random has 2 changed values: alpha_min is set to 55 and alpha_max is set to 85. Like Color Fade & Color Random, alpha affects the transparency of the sprite for the whole time that it’s active. 55 and 85 are lower values, which is important here! This sprite is naturally very bright at full opacity, so stacking multiple on top of one another makes it sort of blinding to look at. Reducing the alpha clears the visual up.

Color Random has two options for color which the sprites can choose any value between, giving some variance when they emit. color1 is set to “255 229 210 255”, and color2 is set to “255 220 195 255”. You might notice that these colors are very close to white instead of orange. This is because the sprite itself is already colored, so changing it this way makes it just a little bit more orange than normal. A deeper color would cause it to look like the ending of the effect.

Lifetime from Sequence is a simple one, as Frames Per Second just needs to be set to 30. This makes each sprite live for 30 frames.


Let’s do a few more functions: Position Within Sphere Random, Position Modify Offset, and Radius Random. Position Within Sphere & Modify Offset are mandatory for every effect you make. Without these, your effect will glitch out when trying to preview in-game, either appearing in one spot on the map or not appearing at all.

For Position Within Sphere, all we need to do is set distance_max to 5. You’ll see a yellow wireframe sphere around the 3D cursor and particle now, which represents the distance you’ve set. The edges of the sphere are the limits of where your sprites can spawn at.

Position Modify Offset has both offset min and offset max set to “0 0 5”. This raises the effect up and causes the effect to appear higher on the hat. Changing the X or Y values is usually not necessary unless you’re changing it with local space, where the coordinates and directions work completely different anyways.

Radius Random is also an easy one, setting radius_min to 2 and radius_max to 3. You might notice the effect taking shape now, resembling the real deal more.

AT THIS POINT, IT IS SAFE TO REOPEN THE PARTICLE PREVIEWER!


Now let’s finish this section off with the last two initializers: Rotation Random and Sequence Random.

Rotation Random works similarly to Rotation Spin Roll where the values you change resemble degrees. rotation_offset_min is set to -12, and rotation_offset_max is set to 12. Using a negative number here makes the sprite go in a clockwise direction, so you’re only rotating between 24 degrees (-12 to 12) rather than wrapping completely around the circle (12 to 348). This function gives a bit of movement variance to make the fire seem more real.
Section 3.5 - contd.
Sequence Random lets you choose what frame of the spritesheet animation to start from, beginning at 0 and ending at the total frame count minus one. Here, sequence_max is set to 4, so the sprites can start from anywhere between frame 1 and frame 5.


Congratulations, you’ve created the primary sprite to Burning Flames! Yes, I’m defining primary sprite, as there’s actually another system for the effect that helps to sell the visual of fire burning something. You should still be pretty proud of yourself, and hopefully a little more insightful on how particle making works. In the next section, I’ll talk about how a small detail can make a big impact on effects.
Section 4 - Making a Secondary Particle
Let’s start by going back to the Particle Browser (top left) window and clicking the Create button again. The name still doesn’t matter for this system, so I'll call it “smoke_demo”. As you can guess, this part will go over adding some backing smoke to your flame to make it more realistic. Realism isn’t a very important part of making effects, since obviously most of them aren’t at all. However, adding some small details in appropriate amounts can help highlight different parts of your effect.


Now we’re back to square one. The process for this is just like making the primary particle, so I’ll quickly go over the steps for this part.

Section 4.1 - Same As Before
Starting at the Properties tab, we’ll select a new material. There’s a large variety of smoke sprites to choose from, but for accuracy, we want “rocketrailsmoke”. Click the [...] button by “vgui/white” (the default material) and search “rocket”. You might have to scroll a bit to find the correct one, but we’re looking for “effects\rocketrailsmoke.vmt”. Once you’ve found it, select it and change your Properties tab to Renderer.


Right-click the space under “Renderer”, add a new function, and pick “render_animated_sprites”. Set animation_fit_lifetime and use animation rate as FPS to 1 (true). We won’t worry about animation rate this time as the original effect does not change this from the default.


Switch from Renderer to Emitter. Add in the “emit_continuously” emitter and change the emission_rate to 12. Then, switch from Emitter to Operator. We’re starting to work fast now!

This smoke uses almost all the same operators as the flame: Alpha Fade and Decay, Color Fade, Movement Basic, Radius Scale, and Rotation Spin Roll. Movement Lock to Control Point is not included in order to make the smoke trail away from the hat completely while moving instead of remaining locked in one spot.

Add in Alpha Fade and Decay and don’t edit any values. None of them need to be modified this time. Add Color Fade and change the color to “54 48 43 255”, as well as setting fade_end_time to 0.5.
For Movement Basic, set the gravity to "0 0 120" and the drag to 0.2. This causes a further, quicker rise into the air compared to the flame.
Four values are changed in Radius Scale:
  • end_time is set to 0.8
  • radius_start_scale is set to 2
  • radius_end_scale is set to 5 (this makes it grow instead of shrink)
  • scale_bias is set to 0.7
Just like the flames, Rotation Spin Roll has spin_rate_degrees set to 12. That’s all we need for the Operators! Let’s change over to Initializers now.



All the initializers except for one are the same as the flame. The one difference is the use of Lifetime Random instead of Lifetime From Sequence, but I won’t question it this time. Let’s start with the first few: Alpha Random, Color Random, and Lifetime Random.

The smoke is even more transparent than the flame, with Alpha Random’s alpha_min set to 16 and alpha_max set to 32.
Color Random’s two colors are set to “255 120 0 255” and “255 174 0 255”. This should be an orange and a yellow.
Lifetime Random has lifetime_min set to 0.5 and lifetime_max set to 0.6, making each sprite active for only around half a second.


Let’s do the rest of the Initializers: Position Within Sphere Random, Position Modify Offset, Radius Random, Rotation Random, and Sequence Random. A lot of names, I’m sure, but you can get through it!

Position Within Sphere has no values modified. Position Modify Offset has both offset min and offset max set to “0 0 8”, raised slightly higher above the flame. This is balanced by the spherical area that the fire spawns inside, spreading out to cover more area.
Radius Random has radius_min set to 2 and radius_max set to 4. Rotation Random has rotation_offset_min set to -20, and rotation_offset_max set to 20. Like before, this allows the sprite to rotate between just 40 degrees rather than a whole circle.
Sequence Random has sequence_max set to 4, so the sprite can be anywhere between frame 1 and 5.


This completes the Initializers, and there’s only one thing left to do now! Switch from Initializers to ForceGenerators. You’ll very rarely use this in effect making as it is more of an advanced option, but it contains a few functions that produce neat effects when used.

Add a new function in ForceGenerators called random force. Set the min force to “-200 -200 -200” and max force to “200 200 200”. This essentially negates the effect of Movement Basic’s gravity, going up less and staying more centered. Since the lifetime of this system is so short, the sprites don’t shoot out in a bunch of different directions as it would at this force if it lived longer.

The backing sprite is now done. If you compare this to the original Burning Flames smoke, you may notice that it’s colored darker than the one we just made. To be honest, I have no idea why that’s the case. There may be some very minor function somewhere that’s different from normal which causes this, but for the time being, it’s nothing to worry about.
Let’s focus more on the fact that You Just Created Burning Flames!

The two systems for the effect are completed now, so all that’s left is to combine them into one system and look at it in-game!
Section 5 - Making a Parent System
This section will be pretty short, as creating a parent system is really simple. A “parent system” is a system that holds all the systems that actually contain your effect data. These systems are now children to the parent, and we’ll make it official in a moment.
First, start by creating a new system. The general rule of thumb is to name the parent “<your_effect_name>_parent”, as it helps make it clear to you and anybody else what system houses the full combined effect. I’ll be naming mine “flames_parent”.


All you need to do is change your Properties tab to Children. Right-click the space under it to add a new child. You’ll see that your options are between the two other systems in your browser list.


For parents, we’ll add all the systems we want to combine currently as children. First, add your smoke system to the child list, then add your flame system. Order matters here, as the first system in the list will render behind the systems below it.


You should now have a preview of the combined Burning Flames effect! That’s all you need to do for parenting. Creating an “empty” system to hold your other systems comes in handy when trying to order which one shows on top of another. It also prevents some potential bugs when used in the game. We can now get to the good part: the in-game preview!
Section 6 - Previewing an Effect
BEFORE CONTINUING TO THIS SECTION, PLEASE BE SURE TO SET YOUR STEAM STATUS TO OFFLINE or INVISIBLE! IF YOU DON'T, YOUR IP CAN BE SEEN THROUGH YOUR GAME INFO! Alternatively, you can set "Game details" to Friends Only or Private in your profile's Privacy Settings. Thanks to Kwas for pointing this out!

While you’re working in the editor, there are two buttons which are critical for the in-game previewing process: F10 and F11. F10 will switch the focus from the Particle Editor to in-game, and F11 makes it fullscreen. Start by pressing F10 first, then F11 to enter the game.


Open up the console and type in your first command: map itemtest.


Upon pressing enter, the game will freeze up for a moment as it loads you into the workshopper’s secret hangout spot, the “itemtest” map. Once it’s completed, the screen may look a little buggy, but you just have to press Esc and enter the server normally.


Section 6.1 - Preparing a Test Setup
You’re now in itemtest! You can choose any team or class you like (I like RED Pyro, just because moving BLU bots around through airblasting is useful). We’ll perform the next command now to start the previewing: itemtest.



You should now see a large fancy window with a whole bunch of buttons. We only need to use a couple of them for now. Start by selecting “All classes” in the Testing Classes box.


Next, we’ll click the large ADD button for Headgear. Though you’re presented with a list of every cosmetic in the game upon clicking the “Or an existing item” dropdown menu, there are actually very few hats that work. Most of the time, the Unusual Cap is used, so scroll down and select it. For “Unusual effect”, any of them can technically be used, but I prefer to use Sunbeams.


Optionally, you can also check an additional “BLU Team” box on the right to set the bot’s team to BLU.

With these options selected, you can now click OK. We’ll save the settings that we have just chosen by clicking the “Save Test Setup” button on the left.


You can name your test setup anything you’d like. Once it’s saved, just click the “Apply Test Setup” button.


If everything has gone right, you should be forced into a stock loadout wearing an Unusual Cap with Sunbeams on it. A bot will be clipping through you (if you haven’t moved anywhere), and all of BLU team will be wearing the same hat as you. You can move around and look at the bots freely.

Section 6.2 - Overwriting a Particle
Now, we’ll change the effect on the hat from Sunbeams to our version of Burning Flames. We’ll press F10 and F11 again to go back into the Particle Editor. You’ll notice that your top right window shows a minimized version of the game.

To overwrite a particle, let’s select our parent system. Instead of creating a new system this time, we’ll click “Copy” to duplicate the parent. The name for this system is VERY important, as only one typo will prevent it from working properly. This system needs to be called superrare_beams1, as this is what Sunbeams is named internally.


Click OK to confirm it, and you’ll have a new system that looks identical to your parent. Press F10 and F11 to go back into the game. You’ll see now that the Unusual effects have disappeared from everyone’s hat, so we’ll need to reload it.
Open up the console and put in the last command: record fix; stop.


This will begin to record a demo file named “fix”, and then immediately stop it. This is a useful way to reload the game while inside of it, and can fix certain bugs like incorrect weapon displays or invisible players. For now, we’re just using it to reload the Unusual effect being worn.


You should now see all of the bots wearing the Burning Flames effect that you just created! If this is not the case, make sure that you’ve done all the steps correctly: setting the Unusual effect being worn to Sunbeams, copying your parent system and naming it “superrare_beams1”, and running the “record fix; stop” command in the console. If you need to reload the game to update your effect in-game, just run the “record fix; stop” command again.
Section 7 - You Did It!
Give yourself a pat on the back, because you’ve just completed making an Unusual effect from scratch! You’ve learned about the Particle Editor and how to launch it, how to create particle systems, how to select sprites, how to modify them, and how to preview it all in the game. If you’ve stuck through to the end, then you’ve now got what it takes to create your own effects! ONCE YOU HAVE QUIT THE GAME AFTER ENTERING ITEMTEST, YOU CAN CHANGE YOUR STEAM STATUS BACK!

Thank you for reading this guide, and be sure to visit the other parts of the series (soon to be written & published) if you want to learn more advanced parts of the Unusual-making process. Part II will be a quick recap course over all that you've learned from this guide as we tackle a new effect type: Taunt Unusuals. Future parts will also cover making your own sprites, finding the files of other official effects, and more!

View the last part here:
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2821958046
View the next part here:
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2834458525
35 Comments
da703337 16 Dec, 2024 @ 6:17pm 
IP does not seem to display in status, at least for me.
๖ۣۜζ͜͡uncle dungarees  [author] 5 Dec, 2024 @ 10:10am 
assuming you're running the PET correctly as of the x64 update (by making a .bat file and launching it from the TF2 folder), i'm not sure where the issue would lie... sometimes it just takes pressing the buttons a few more times in different orders until control is restored, but you should definitely be able to toggle the console on once you're in the game
Ghillie 5 Dec, 2024 @ 3:10am 
I'm having some trouble. When in the particle editor tool, pressing f10 then f11 loads me onto the main menu for TF, but no keyboard or mouse inputs are going through, so I'm unable to open the console. Not sure what to do here
the sunflower man 12 Oct, 2024 @ 2:05pm 
ive completed the tutorial word for word but the effect isnt on any of the bots heads it is in the air
Chillum 23 Jul, 2024 @ 1:07pm 
I made my first effect with your help thanks a lot! Congrats on the Psycho-Delic getting in!
SteelMillLover8 19 Jul, 2024 @ 1:35pm 
rahhh!! the scream fortress update will be all unusuals created by me!!!!! (jk but this is a great tutorial! :steamthumbsup:)
BoltTheSuperDog45 18 Jul, 2024 @ 12:04am 
damn
well ok
๖ۣۜζ͜͡uncle dungarees  [author] 17 Jul, 2024 @ 10:16pm 
ah, videos aren't really in my scope, unfortunately. i mean, heck, there were supposed to be more guides than what i've put out, but i simply moved on with life and never got back around to it. considering i don't even work with particles anymore, it's not likely i will...
BoltTheSuperDog45 17 Jul, 2024 @ 1:51pm 
well can you make a video like that?
๖ۣۜζ͜͡uncle dungarees  [author] 17 Jul, 2024 @ 9:44am 
oh yes, this is something i should probably update the guide to mention. because TF2 recently updated to x64, it does not launch the same application as it used to. in order to open the PET now, you have to navigate to your "steamapps/common/Team Fortress 2" folder. create a text file and name it anything you'd like (i named mine tools). inside of it, put tf.exe -novid -tools and save the file. change the extension of it from .txt to .bat, then run the file. it should open TF2 with the old version of the game, this time in the particle editor.