What is the PCF file format?
A .pcf file is a particle system definition file used by Valve's Source 1 engine. Games such as Team Fortress 2, Portal 2, Left 4 Dead 2, and CS:GO store all visual particle effects - explosions, muzzle flashes, smoke, and fire - in .pcf files.
The format uses Valve's DMX (Data Model Exchange) binary serialization. Each file begins with a null-terminated ASCII header string such as <!-- dmx encoding binary_proto 5 format pcf 2 that identifies the encoding version. The file is organized into three sections: a string dictionary, an element dictionary of typed attribute-value pairs, and the particle system data tree. Each ParticleSystemDefinition element references operators, renderers, emitters, initializers, and constraints by name. Multiple particle systems can coexist in one .pcf.
Before the Source engine can load a .pcf at runtime, its path must be registered in particles_manifest.txt. The canonical editing tool is the Source Particle Editor bundled with the Valve SDK tools via Steam.
Five binary format versions exist, from Binary 2 PCF 1 (The Orange Box, 2007) through Binary 5 PCF 2 (Alien Swarm, 2010 and later Source 1 games). Source 2 games - including Dota 2, CS2, and Half-Life: Alyx - use .vpcf text files in KeyValues3 format instead, making .pcf a Source 1-only format.
Security & safety
RISK: LOWPCF files are pure data (particle system definitions) and do not execute code. They can only be 'run' by the Source Engine; opening them in the Particle Editor or a text editor is safe. Malicious PCF files could theoretically exploit a parsing bug in the Source Engine, but no such CVEs are known. Download PCF mods only from trusted community sources (Steam Workshop, gamebanana.com) to avoid bundled malware in zip archives.
Format details
in a nutshell- Microsoft Source Profiler command file - db_name incorrectly lists this - Microsoft Source Profiler (a 1990s Visual C++ tool) also used .pcf; that tool is long discontinued and irrelevant to current use.
- PuTTY Configuration File - Some versions of PuTTY session exporters used .pcf for exported session configurations.
- X11 Portable Compiled Font - Unix X Window System bitmap font files; binary compiled form of BDF fonts. Used on Linux/BSD X servers.
Programs that open PCF files
Technical details
deep spec| Magic bytes | Null-terminated ASCII header beginning `<!-- dmx encoding binary_proto` at offset 0 |
| Byte order | Little-endian |
| Container | DMX (Valve Data Model Exchange) binary serialization |
| Operator architecture | Each `ParticleSystemDefinition` chains emitters, initializers, operators, forces, constraints, and renderers as typed DMX elements |
| Build tooling | Source Particle Editor (part of Hammer/Source SDK on Steam) provides live-preview WYSIWYG authoring for `.pcf` files |
| Typical size | 2 KB - 500 KB (simple effects to complex multi-system files) |
| File structure | Three sections: string dictionary, element dictionary, and particle system data tree |
| Known binary versions | 5 versions: Binary 2 DMX 1 through Binary 5 PCF 2; version encoded in the ASCII header string |
| Current version | Binary 5 PCF 2, used from Alien Swarm (2010) through latest Source 1 games |
| Manifest requirement | Path must be listed in `particles_manifest.txt` before the Source engine can load the file at runtime |
| Multi-system support | Multiple `ParticleSystemDefinition` elements can coexist in a single file |
| Source 2 equivalent | `.vpcf` (text KeyValues3 format) used in Dota 2, CS2, and Half-Life: Alyx |
| Platforms | Windows, Linux, macOS (Steam/Source Engine platforms) |
| Released | 2007 (The Orange Box / Team Fortress 2 era; replaced hardcoded engine particles) |
| Latest version | Binary 5 PCF 2 (used since Alien Swarm, 2010); CS2/Source 2 uses VPCF (text) |
| Specification | developer.valvesoftware.com |
PCF conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about PCF files.