Team Fortress 2

Team Fortress 2

Not enough ratings
Making TF2 Effects #3 - Files O' Plenty
By ๖ۣۜξ͜͡INDIRENEEDOFAFEMME
Part 3 of a multi-part series detailing all the different elements of creating TF2 Unusual effects in-depth!
This guide covers the purpose of VTF and VMT files, programs used to make them and view official in-game content, and how to create an animated sprite.
2
   
Award
Favorite
Favorited
Unfavorite
Part III - Files O' Plenty
< ~40-minute read >

Welcome to Part III of the Making Unusual Effects series! In this guide, I’ll teach you how to go the extra mile in creating particle effects by adding your own custom materials. Some may consider this crucial to making effects, but it really depends on what your goal is. If you’re looking to make effects more unique, then knowing the info below will tell you exactly how to do that! To start: this will require a few external programs that are necessary to access some of TF2’s files, so this guide will be written more in-depth to explain everything you need to know.
Section 1 - VTF?! (and VMT)
Starting off, the first program you will need to download is called VTFEdit. This program is the best tool (that I know of) for accessing, modifying, and creating files with the .vtf and .vmt extensions. “VTF” stands for Valve Texture Format, and “VMT” stands for Valve Material Type. As you can likely tell, these are file types specifically made by Valve for use in their games. Later on I’ll explain where to locate these files for TF2 along with some other info.

Secondly comes GCFScape, a program used to access some of the large file bundles present in Valve’s games. This program is used to locate specific files (like VTF and VMT files) which are made by Valve and aren’t as accessible as simply opening a few folders.

To download these programs, I highly recommend using the Nem’s Tools GitHub Archive (Nem is the creator of both these tools, but their website no longer functions and is currently being preserved through Web Archive). To ensure that Steam does not prevent the links from working, there are spaces in between the URLs that you can remove when pasting the link into your browser.

VTFEdit v1.3.3: https://nemstools.github.io/pages/VTFLib-Download.html
GCFScape v1.8.6: https://nemstools.github.io/pages/GCFScape-Download.html
(After a discussion with Steam Support, I pray these links functions and I will not face any issues for having them.)

There will be a lot of information regarding different versions and download methods, but you ONLY need the one at the very top labeled “Download from Web Archive”, then “Installer”. The file size should be 2,112 KB for VTFEdit and 525 KB for GCFScape, just to ensure you are looking at the right ones.





Section 1.1 - Making a Custom Sprite
Once you have finished downloading both programs, you should now have something that looks like the two images below:





Pretty fancy looking, eh? No? Well, that’s alright. They’re easy to use, at least. Let’s jump into using these for the first time, starting with VTFEdit. First, you’ll want to click “File”, then “Import”. Then, you- … Oh yeah, you probably don’t have any sprites to use yet. No worries! As a good guide creator, it is my duty to prepare you all with the materials you need to get to work. Here, have this sprite I made in, like, ten minutes.



I don’t want to hear any comments about its size. In fact, the size of your sprites is actually quite important! Er.. more on that later. For now, just click on the image and copy the “steamuserimages” URL at the top. Paste it into your browser and save the image somewhere, preferably in a new folder dedicated to all the custom TF2 assets you’ll be making! Once that’s done, repeat the “click File then Import” step in VTFEdit, then select the sprite you saved.



Once you have selected an image to import, you’ll be prompted with the real scary part. Luckily for you, this isn’t scary at all because we can completely ignore it! There is basically no reason to ever change any of the settings here. Just click “OK”, and you will see the sprite now visible in the program.
An important note to make is that there is now a black background behind the sprite. This is the way that VTFEdit handles “Alpha”, or transparency. Anything that is colored fully black will not be rendered if you use this sprite in the game. So, you might be thinking to yourself, “Kevin! Isn’t the outline of the banana black? Won’t that cause a problem?” Well, I actually didn’t think of this the first time I made the sprite! It was fully black. The version you are using now uses an RGB (5, 5, 5) outline, which is still black, but not the kind that is considered transparent (0, 0, 0).

Now, to make your first VTF file, all you have to do is click “File”, then “Save as…”. It’s really that easy. VTFEdit will automatically have you save the file as a .vtf, which is needed in order to know what image you are actually trying to bring into the game. Things get a little more complex when making a VMT. Start by going into the “Options” tab at the top of the program window and seeing if the “Auto Create VMT File” option is currently checked. If it is, uncheck it. Otherwise, the program will create a VMT file with default VMT settings as soon as you save a VTF file. We do not want the default settings for VMTs. Now, click the “Tools” tab, then click “Create VMT File”.



When you first open up this menu, the tab is text to “Textures”, and the “Base Texture 1” field will contain the file path of where you saved your sprite. Instead, we’ll change it so the very last part (the file name as you saved it) stays the same, but everything before it is replaced with the text “effects/workshop/”. When TF2 finds this .vmt file (which we will set up in a moment), it reads the file path line and starts looking in its own data for a folder named “effects”, followed by a subfolder called “workshop”, and then a file called “banana”. If these can’t be found, or if they are set incorrectly to something else, the sprite you made will not appear.

Next, we can switch from the Textures tab at the top to the Options tab. As you would expect, there are options! You can see three drop-down list fields, one text string field, and a bunch of checkboxes. We only need to touch the top drop-down list called “Shader”, as well as some of the checkboxes.

First, instead of clicking the arrow on the right to open the drop-down menu, click directly on the LightmappedGeneric text and replace it with SpriteCard. This is not typically an option in the drop-down menu, but it works! The reason why we change this is because LightmappedGeneric is used specifically for map geometry, which is obviously not what we are working with.

Now for the checkboxes. By default, “Translucent” will be enabled. This will turn a sprite slightly transparent which we don’t want, so it can be unchecked. We only need to check off two, “Vertex Alpha” and “Vertex Color”. Vertex Alpha allows for the transparency of the sprite to be changed, and Vertex Color allows the color to be changed. If you do not want either of these, just make sure to uncheck them when making the file or remove the “$vertexalpha” / “$vertexcolor” strings from the created .vmt file.

Your end result should look like this:



You can now click “Create” and save the .vmt file in the same folder as where you saved the .vtf file. Make sure they both have the same name just to keep track of them, since they work as a pair.
Remember when I mentioned sprite size mattering? Well, I wasn’t joking about that. It’s necessary that you have your sprite sized as a power of 2, meaning its resolution should be anywhere from 1x1 to 2048x2048 pixels in size. If it is not, it will not be able to render in the game.
Section 2 - Did It Work?
Remember earlier when I mentioned that TF2 checks its own data to find specific folders? Well, fun fact, those folders likely do not exist in your data yet, so you will have to create them yourself. This is easy, though. Open your PC’s file explorer and start by going to the C:/ drive. Navigate down this path: C:\Program Files (x86)\Steam\steamapps\common\Team Fortress 2\tf\materials by either clicking into your file path and pasting that path, or by clicking all the folders in order until you reach “materials”.
Now you just need to create two folders inside of “materials”. One should be named “effects” and the other “workshop”, just like in the .vmt file we made. The effects folder can stay inside of materials, but the workshop folder must be dragged into the effects folder.



Let’s go back a few more steps to when you saved the .vtf and .vmt files. Go to the location where they were saved and copy both files, then paste them inside the new tf/materials/effects/workshop folder. Now TF2 will be able to properly locate these files, and you’ve successfully imported a custom sprite into the game!

Let’s launch the game now, making sure to check our launch options and adding “-tools” to the launch options list, as well as setting our status on Steam to Invisible so as to not accidentally flash our IP to anyone who might be looking at our in-game status. If they cannot see your in-game status because you changed your profile settings to hide it, there’s no need to use Invisible mode.



After clicking the “Tools” tab at the top of your screen, switching to Particle Editor, and creating a new file, you’ll be back to an old, familiar face made up of dark gray windows and white text. This process will be much quicker than the last two guides, since we’re just checking if our one sprite was created properly. Let’s click the Create button in the top right of the Particle System Definition Browser, naming this new particle system whatever we want.

Then, below this window, we can see new information in the Properties. Click the [...] button next to “materials” to open up the Materials Browser. Now, just type the name of the file you saved into the Filter field and you should see it appear! If you named it something like “banana”, you’ll probably have to scroll a bit to find your file. It will show the file path we wrote in the .vmt file, so we know for a fact that it is ours.



Section 2.1 - It Does! (if you did it correctly)
Wow, look at that! A custom sprite! I bet Valve is so jealous they don’t have that kind of skill!
Now, before I have my door broken down by an angry employee, click the “Open” button to use this sprite, then switch the Properties tab to Renderer. Right-click the empty space below the tab and add in a render_animated_sprites function. Switch the tab from Renderer to Emitter, right-click the empty space below, and add an emit continuously function. It doesn’t really matter how much the emission rate is, since we’re just trying to prove that this works. However, if your computer is the type to get mad when a lot of particles are on screen, you can go back to the Properties tab and set the max_particles variable from 1000 to 1.

I could tell you that we completed the task and that there is nothing left to do, but I think there is a bit more worth showing off if this is your first time handling a custom sprite. To prove that our work is just as capable as anything else, let’s add some other functions to this system. If you have read the last two guides (or the last paragraph), I can trust you to know how to add new functions to a system. Let’s start by changing our tab to Operators; I’ll leave you to make yours look like the picture below.



Remember that for Alpha Fade and Decay, you should set the start_alpha variable to 0 so it does not start fully opaque. Unless you want it to do that, of course. Using this function and seeing it change from nothing to something will prove that Vertex Alpha is working correctly!

The same will go for the Initializers tab. Simply add the functions below, making sure to set Lifetime Random’s min and max values to 1 and Position Modify Offset Random’s min and max to “0 0 14”, otherwise the particles will not appear or may be hidden inside the players’ heads.



For this, you are free to use Color Random to change the sprite to any color you want. Make a moldy banana, a spicy banana, a… pink banana, if that’s your thing! If the color properly changes to something different from the original, that means Vertex Color is working! We did it! You should now have a color-changing banana that can fade in and out. How does it look in-game, though?

Section 2.2 - In-Game Preview
This will be quick! Using the top left window inside the editor, let’s make a new system that we’ll call “parent”. The name does not need to be specific, as long as you know it’s the parent system. All we need to do is change the properties window tab to Children, right-click in the empty space once more, and add the other particle system. The banana should be visible in the Preview Panel (bottom right) again.

We have done almost all the setup needed to get the effect to show in the game, so let’s actually start the game up! Press F10 to switch to Game Mode, then F11 to make the game window fullscreen. Open up the console and type “map itemtest” to launch the itemtest map.

With a local server created on the itemtest map, join the RED team and pick any class you like. Open up the console again and this time, just type “itemtest”. You’ll be shown the itemtest menu, and if you have used the other two guides prior to this one, you should already have a .itf file saved.



In this case, just click the “Load Test Setup” button and open the .itf file you created, which should spawn one bot per class on BLU team with a Sunbeams Unusual Cap. If that’s not the case, go ahead and select all the options described to make this happen, then click “Save Test Setup”. The name of your .itf file doesn’t matter. Once this is done, click “Apply Test Items”.



You should have a room full of BLU bots with the Sunbeams Unusual Cap now. We can perform the last step needed to prove that our effect is working properly.

Pressing F10 and F11 to re-enter the particle editor, we select the “parent” system we made and click the Copy button, naming our next system “superrare_beams1”. Make sure to spell it exactly as written here, since this will not work otherwise as we are replacing the pre-existing Sunbeams effect with our own.
Internally, the particle system for Sunbeams is called “superrare_beams1”, so we are overwriting that system this way. If done correctly, you should notice that the Sunbeams effect on the bots suddenly disappears when our new system is created.

Once again pressing F10 and F11 to re-enter the game, we can open the console once more, entering the command “record fix; stop” to start and instantly end a demo recording. This is a good way to “refresh” the game if there are graphical bugs occurring. Now, you can finally witness our new creation as it would appear if it were officially added to the game!

Section 3 - You Did It Again, Again!
Congratulations! You just added a custom sprite into the game to be used in your new effects! However, some of you may want to hold that joy in for just a bit longer. There is actually more to learn, still. I made you download GCFScape along with VTFEdit at the start, right? How come we haven’t used that yet? Let’s first go into the detail of what this program is used for, then we will finish off the guide with another short tutorial about making sprites that animate!
Section 4 - GCFScape
Unlike VTFEdit, GCFScape is not something you start inside of the program to use. If you recall the file paths I mentioned before in Section 1.2 when we copied our .vtf and .vmt files to the Team Fortress 2 folders, go back to that folder location and take a few steps back until you’re in Team Fortress 2/tf. Scroll down until you find a list of files with the “VPK” extension.

These are Valve Paks, which exist in most Source games that Valve has made. As you can guess by the first part of each file, these are specifically the ones for TF2. If the icon for these still looks like a blank white page, select one of the .vpk files (preferably tf2_misc_dir.vpk) and right-click it. Click the “Open with…” option and choose GCFScape as the program to use, setting it as the default program to use for this file type. GCFScape will open, displaying a confirmation message in its console along with some folder libraries. Each .vpk file’s icon should have now changed to the one pictured below.



If you didn’t open the tf2_misc_dir file first, now would be a good time to. You only have to double-left-click the file now, and GCFScape should open if you set it to the default program to use.



As I said when describing the use for GCFScape, this program gives us access to officially used content in the game. For us, the most important content in the misc_dir file is the “materials” folder and the “particles” folder. The materials folder contains all of the official .vmt files you see when selecting a material to use for your particle systems in the editor, as well as their associated .vtf files. The particles folder contains the complete .pcf files that house all the particle systems, and this is where you can find official Unusual effects (along with other particles).

To find the various sprites used in Unusual effects, go to “materials”, then “effects”. You may want to access another folder after this depending on what you are looking for, however, you should never touch the “workshop” folder. This is content produced by other people like you whose work was officially added to the game, and it is still those people’s property. Unless you were given permission to use those files by their creator(s), stay out of trouble by simply not using any of the content in that folder.

For the “particles” folder, you can access all the Valve-made Unusual effects in the item_fx.pcf file. All other Unusual effects were community created, and you can find these by looking for the naming scheme (halloweenYEAR, smissmasYEAR, summerYEAR). These can be useful resources to study the techniques used by other creators, but once again, do NOT use any of the custom sprites with “effects/workshop/” paths unless you made them or got permission to use them! You may also not find some of the functions in these effects useful since they can often be nondescript or tricky to understand the purpose of.

As an example, let’s use that item_fx.pcf file and bring it into the game so we can learn more about it. With GCFScape opened up to the “particles” folder in the tf2_misc_dir.vpk file, scroll down until you find “item_fx.pcf”. Open your file explorer to Team Fortress 2/tf, this time going to its “particles” folder. Now, simply drag the .pcf file from GCFScape to the tf/particles folder.



That’s all you have to do to import official content into the game for you to look at! Opening up TF2 again, we can click on the File tab at the top of the screen, then click Open. With the folder location to open from set to “Team Fortress 2/tf/particles”, going down the list will show the item_fx.pcf file. You can open it and view all the Valve-made content inside!



This file contains all the data for the effects made from Series 1 to Scream Fortress VI, a whole four years in history! Of course, that’s a pretty small number compared to other relevant dates in TF2 before today. That just about wraps up the explanation for GCFScape! You can do the same steps above in order to import Valve-made .vtf and .vmt files, which you may want to do in case you feel that a .vmt file needs to be modified.
Section 5 - Animated Sprites
If you are at this section, you likely want to know how to create sprites that have frames and can animate. Well, I will start this off by saying that the traditional method is complicated. So complicated that someone felt the need to make an executable script that mostly automates the process. That person in question is 9joao6, and they were kind enough to give me permission to release their script for your own use. Trust me, you will need it. This being said, I will obviously not be giving instructions on the traditional method as even I don’t know how to do it properly.

To begin making animated sprites, you first need sprites to animate; a collection of frames that create the full animation you want to use as a sprite in the game. In the case that you want to use this information, but don’t have any sprites to use, feel free to use my example with the link below. If the link does not work, contact me!

https://drive.google.com/file/d/1S2aSJHpHAwYuIBZyk2K1Yr77VVUez053/view?usp=sharing



The .zip file contains 16 sprite frames for a custom poker chip I made and used in my “Head of the Table” effect. The files are named as such in order to be compatible with 9joao6’s script, which requires each frame to be named in numeric order starting from 0. You can download the script here:

https://drive.google.com/file/d/14SN7ml6cN1zYLGf0P3KEIy1B9miGPK3I/view?usp=sharing

When you have both .zip files, it does not matter where you unzip them to. I would suggest having one large folder for workshop creation, containing a folder with the sheetToParticle files in it along with another folder for all forms of custom sprite files; animated, single-frame, .png, .vtf & .vmt, etc. Once you’re organized, you can copy all the poker chip sprites together and paste them in the “frames” folder that came with the sheetToParticle zip.

Now, you won’t be able to use the script. Er… won’t? Why? Well, there’s still two more things you need to have downloaded in order for the script to operate. First is Python, which the script was made with. You can find downloads for Python on their official website, https://www.python.org/downloads/ . When installing, there is no need to modify any settings from the default unless you know what you are doing when changing them.

Next, you just need to have Source Filmmaker installed. The script requires the program to be installed so it can access some of its files and actually create the sprite sheet. With both programs downloaded, we can start making sprite sheets!

Section 5.1 - Using The sheetToParticle Script
So, let me get one thing straight first. Naturally, you might want to open the “png2tga.exe” file because of the .exe extension. It’s familiar, and you have very likely opened something with that extension before. That is not the case here. The reason you downloaded Python was to access the “sheetToParticle.py” file, which is just the extension for Python scripts.

Like we did with GCFScape and .vpk files, start by selecting the sheetToParticle.py file and right-clicking it. Select “Open with…” and choose Python as the default program to use for this file type if it is not already set to do so. When you open the file, you will be met with the Command Prompt window with some text inside, pictured below.



If you followed the instructions from the section above, you will have already copied all the frames of the poker chip animation and pasted them into the “frames” folder that came with the sheetToParticle .zip file. The example file names for each frame given by the script are actually what it requires you to name each one (as mentioned before), but this has already been done for you. We can now press Enter to continue.



Next, the script asks you for the file path that leads to Source Filmmaker’s “game” folder, which is why I mentioned needing to install the program earlier. As we will see in a moment, this script makes use of a few files found deeper in the Source Filmmaker folders that are needed to create sprite sheets the traditional way. All we are doing here is having the process automated for our convenience. Unless you have “Program Files (x86)” stored on a different drive, the path to use should be C:\Program Files (x86)\Steam\steamapps\common\SourceFilmmaker\game .

After confirming this, the script will ask you what to name the .vtf (and .vmt) file it will produce. You can name this anything as long as you don’t include spaces or symbols other than an underscore or dash (capital letters are fine). Then, the script will ask if the material should loop, which it always should unless you only want your sprite to complete its animation once and then stop.



Now, a .mks file is created with the name you used. A .mks file is basically just a modified text document that contains specific information similar to code that is read by a mksheet.exe file. This file is usually located in the “bin” folder of various Source games, along with vtex.exe. You do not need to touch any of these .exe files unless you plan on making sprite sheets the traditional way. Unless we need to make a change to our .mks file (which may sometimes be necessary; just right-click the file and open it with Notepad), we can press Enter to continue.



The script will then explain exactly what it is doing to create the sheet; creating a .tga file that combines all of our sprite frames into one image, reading the instructions written inside the .mks file, saving and creating a few new files, and eventually preparing a completed .vtf file for us. If any of that looks confusing, then that is exactly why we use the script. There are still a couple more steps left to do, so let’s continue.



First, the script will ask if you also want to create a VMT file, which is usually always a good idea to get. Next, it will ask if the sprite frames should blend together when they animate. Blending frames means that the last frame on screen will animate twice before disappearing. Rather than the animation going from frame 1 -> frame 2 -> frame 3, it goes from frame 1 -> (frame 1 & frame 2) -> (frame 2 & frame 3) and so on. In our case, we do not want this.

Pressing Enter once more confirms that our VMT is now completed, and the script reminds us to change the $basetexture path inside the file to ensure it is correct. We will do that in a moment, but first, a little secret: we’re still not done! Despite the completion message appearing, pressing enter one more time gives us one last option to convert our VTF file to TF2’s format. This is very important to do because it literally will not work in-game otherwise. Once we tell it “(y)es”, the script closes and we are finally done.
Section 5.2 - Setup and In-Game Preview 2
We’re so close to finishing now! There are just a few more steps left to do to make sure we have succeeded. With our .vtf and .vmt sprite sheet files created, let’s start by doing as the script told us and editing the .vmt file. If you have not already, make sure VTFEdit is the default program set to open both .vtf and .vmt file types. Open up your new .vmt file, which will contain text that basically defines the “rules” that our sprite should follow.



As an example, this is what the .vmt file looks like for the version of the poker chip sprite I used in my published effect. All you need to do is change the $basetexture path to be “effects/workshop/<vtf file name>”. This is the same thing we did when we created our VMT file through the Tools tab in this program.

Depending on what you want your sprite to do, you can add new rules like “$vertexcolor” or “$additive”. In my case, I did not need to add $vertexcolor, but I did so anyway out of habit. You will not need anything other than the $basetexture line and the $blendframes line, which should be set to 0 as we told the script to not make our frames blend. You may also notice that this material type is set to “SpriteCard” since we are using sprites, and in this case, we created an actual card (or sheet) for them.

With the .vmt file modified to use the correct base texture file path, we can once again copy the VTF and VMT files from where they were saved by the sheetToParticle script and paste them into the Team Fortress 2/tf/materials/effects/workshop folder. Now, it is time to launch the game again and see if our files appear.

To set up a new PCF file, refer back to Section 2.2 when we did the In-Game Preview for the first time. The setup for this should be identical, except when you search for the name of your new sprite, you will notice that it may look different from normal.



Our sprite sheet was formatted to include every frame side-by-side in a rectangle. Depending on the amount of frames, the rectangle may be 2x2 or 16x16. If you do not have enough frames to completely fill the rectangle, the last few spaces will just be empty. You can still use any number of frames, given your sprites are not too high of a resolution.

The reason I say “rectangle” rather than “square” is because the shape may not always be square if the amount of frames is a number like 5 or 17. TF2 will only allow you to render a sprite material whose combined resolution is 2048x2048 pixels in size. If I wanted to animate this poker chip with incredibly fine detail, I could instead use 64 sprites rather than 16. The sprite sheet’s current size is 512x512, so adding 3 more of them in a square shape would combine to a total 2048x2048 size.

To find out how many frames of animation can fit in a sprite sheet, use the equation 2048 / (sprite resolution / 4). If the answer is a decimal, it will not work.


Like before, you will create two new particle systems first; one for the poker chip sprite, and an empty “parent” that has the other system as a child. For the poker chip system, we need to change a few things to actually make the sprite animate. When you are in the Renderer tab, make sure to set render_animated_sprite’s animation rate from 0.1… to 32, as well as setting “use animation rate as FPS” from 0 to 1 (false to true). This will now make the sprite animate at 32 FPS, which is twice the number of frames we had.

In the Emitter tab, set the emission_rate from 100 to 1. We will now have just one sprite on screen at a time rather than 100, which would make it hard to tell that our sprite is animating. Lastly, you do not need Alpha Fade and Decay in the Operators tab or Alpha Random in Initializers. If you did not add “$vertexalpha” to the VMT file for your sprite, it will not be affected by functions that modify the Alpha value.

Once you have created your “parent” system and have added the poker chip system as a child, we can press F10 and F11 to enter the game in fullscreen and start a local server on “map itemtest” (in the console). We can then open the “itemtest” (in the console) panel and use our .itf file test setup to spawn in all our test bots. Pressing F10 and F11 again, we can select the “parent” particle system and click the Copy button to the right, naming the new system “superrare_beams1”. Entering the game once again and typing “record fix; stop” in the console to “refresh” the game, we can witness our beautiful creation!

Section 6 - You Did It For Real This Time!
If everything went correctly, you should now have a head-sized red-and-white poker chip spinning above everyone’s head! The sprite sheet we made was created, imported, and animated successfully! You now understand the fundamentals behind a core component of effect making! With this newfound power, you can go on to create great works with others, or even handle things yourself if you feel confident enough!

Part IV will be much shorter than these last three guides, explaining the different “types” of Unusual effects that exist in the game, what they “mean”, and why they don’t matter. Creating effects should be a way of expressing your ideas, and though there are some loose boundaries for this, anything is capable of becoming an official product someday*.

*unless it sucks

View the last part here:
https://steamcommunity.com/sharedfiles/filedetails/?id=2834458525
14 Comments
๖ۣۜξ͜͡INDIRENEEDOFAFEMME  [author] Dec 27, 2024 @ 8:41am 
huh! that's an interesting one. my first guess would be to navigate to your Source Filmmaker/game/bin folder and delete any files that would have been generated by the script running (specifically things like .mks files). this should clear out any junk files that aren't being overwritten by the script and would cause it to break further. as to why the looping question would cause it to act funny, i'd say just try options between yes/no and clearing out the bin folder if necessary
Doku Dec 27, 2024 @ 1:45am 
So for the script part, I get it going up until it asks for looping, which once I say yes, it closes the window entirely
theres also some errors in the script for some reason; https://imgur.com/a/S41iYkB
Helsi Nov 3, 2024 @ 8:25pm 
How to decompile a vtf file created via mksheet
๖ۣۜξ͜͡INDIRENEEDOFAFEMME  [author] Jul 30, 2024 @ 9:02am 
yes, so long as Valve made it first. anything that comes from the tf/workshop directory means it was created by a community member, so you would have to track them down and ask for permission before doing anything with it
bandage Jul 29, 2024 @ 11:30pm 
Are Valve sprite sheets allowed to be edited?
๖ۣۜξ͜͡INDIRENEEDOFAFEMME  [author] Jul 25, 2024 @ 5:49pm 
make sure that your sprite resolution is square (64x64, 128x128, 256x256 etc). there is also a limit to how many sprites of a certain resolution can be put into a sheet. i believe the limit for 128x is 32 sprites, for 256x it's 16, 512x is 8, and so on.
FF006A Apr 30, 2024 @ 5:05am 
Sorry, can I still ask you about the particle editor?
๖ۣۜξ͜͡INDIRENEEDOFAFEMME  [author] Apr 19, 2024 @ 10:37am 
so, when it comes to MKS files, its often agreed upon that the whole system is kinda wack to do manually (hence, Section 5). i don't recall the exact method of how to do it manually, because it IS actually necessary in some niche situations, but i'd consider just digging deeper and asking around some more
FF006A Apr 19, 2024 @ 5:24am 
Is there any code tutorial about MKS files? I don’t quite understand the "sequence 0 ~ 3" description on the official website
๖ۣۜξ͜͡INDIRENEEDOFAFEMME  [author] Aug 25, 2023 @ 11:04am 
that's great to hear! i'm very glad you found this resource useful!