The Particle Editor in Counter-Strike 2 Workshop Tools is turned off by default. Valve ships the tool and then hides it behind two config blocks that name csgo as an excluded mod. Comment those blocks out and the editor appears, ready to open .vpcf files, which is the extension Source 2 uses for a particle system.[1][2]
This is the same editor that shipped with the Dota 2 Workshop Tools, and most of the documented particle knowledge for Source 2 still lives under the Dota 2 pages.[1]
Two files to edit
The editor is gated in two places, and Valve is explicit that both must be edited.[1]
The first is game/bin/sdkenginetools.txt. Find the section where m_Name = "pet", which is the Particle Editor entry. Its m_AssetTypes list holds particle_asset, and its m_ExcludeFromMods list names csgo. Comment out the m_ExcludeFromMods block and the entry looks like this:[1]
Code: Select all
{
m_Name = "pet"
m_FriendlyName = "Particle Editor"
m_Library = "tools/pet.dll"
m_ToolIcon = "game:tools/images/pet/appicon.ico"
m_AssetTypes =
[\
"particle_asset",\
]
//m_ExcludeFromMods =
//[\
// "csgo",\
//]
},Code: Select all
particle_asset =
{
_class = "CResourceAssetTypeInfo"
m_FriendlyName = "Particle System"
m_Ext = "vpcf"
m_IconLg = "game:tools/images/assettypes/particles_lg.png"
m_IconSm = "game:tools/images/assettypes/particles_sm.png"
m_CompilerIdentifier = "CompileParticle"
m_bPrefersLivePreview = true
m_bUnrecognizedReferencesAreErrors = true
m_Blocks =
[\
{\
m_BlockID = "DATA"\
m_Encoding = "RESOURCE_ENCODING_KV3"\
},\
]
//m_HideForRetailMods =
//[\
// "csgo",\
//]
}What you get once it is enabled
A particle system in Source 2 is not just sprites. The engine can render sprites, lights, models and text as particles, and it can run physical simulations over thousands of particles at once.[2] The editor is the tool that builds those effects, from ambient dust motes to full physics driven systems.[2]
Valve splits the documentation into the moving parts of a particle system. Each of these is a category of node you build with:[1]
- Renderers decide what the particle looks like when it is drawn.[1]
- Operators change particle state over time, such as movement, rotation or fade.[1]
- Initializers set the starting values when the particle is born.[1]
- Emitters spawn the particles and control how many and how fast.[1]
- Constraints clamp or clamp-like behaviour, keeping particles inside bounds.[1]
- Forces apply push, gravity and similar effects.[1]
- Properties hold the values the system reads, including Control Point data that a map or script can feed in at runtime.[1]
Where to start learning it
- Read the Particle System Overview page, which explains the architecture before you touch a node.[1]
- Open the Particle Editor page for the interface itself.[1]
- Follow Particle Effect Tutorial 1, the one worked example Valve ships.[1]
- When you need real effects to copy, grab Easter Prefabs, a community collection of Source 2 particle prefabs for CS2 covering weather, flashlights and underwater effects.[1]
The editor does not show up at all. You edited only one of the two files. Both sdkenginetools.txt and assettypes_common.txt have to be changed.[1]
You are editing the wrong game folder. The community guide places the file at steamapps/common/Counter-Strike Global Offensive/game/bin/sdkenginetools.txt.[2]
The .vpcf file will not open. A particle system is a particle_asset with extension vpcf and compiler CompileParticle. If the asset type is still hidden, the file has nothing to bind to.[1]
References show as errors. The particle_asset block sets m_bUnrecognizedReferencesAreErrors to true, so a broken reference stops the compile rather than silently dropping the effect.[1]
Sources