Overview
BSPSource supports decompiling maps from a wide variety of Source engine games. The tool uses Steam Application IDs to identify games and apply game-specific decompilation logic.Automatic Detection
BSPSource automatically detects the source game by analyzing:- BSP file version
- Entity class names in the map
- Map file name patterns
--appid flag (CLI) or set the App ID in the GUI.
Supported Games
Valve Games
Half-Life 2
App ID:
220BSP Version: 17-20File Pattern: d1_*, d2_*, d3_*The original Half-Life 2 campaign maps.Half-Life 2: Episode One
App ID:
380BSP Version: 20Episode One campaign maps.Half-Life 2: Episode Two
App ID:
420BSP Version: 20Episode Two campaign maps.Half-Life 2: Deathmatch
App ID:
320BSP Version: 19Multiplayer deathmatch maps for Half-Life 2.Half-Life: Source
App ID:
280BSP Version: 19The original Half-Life remade in Source engine.Portal
App ID:
400BSP Version: 19File Pattern: testchmb_*Original Portal test chamber maps.Portal 2
App ID:
620BSP Version: 21File Pattern: sp_a1_* through sp_a5_*, mp_coop_*Portal 2 single-player and co-op maps. Includes Perpetual Testing Initiative (PTI) support.Team Fortress 2
App ID:
440BSP Version: 20File Pattern: cp_*, pl_*, koth_*, ctf_*, arena_*, mvm_*, etc.Team Fortress 2 maps across all game modes (Control Points, Payload, King of the Hill, Capture the Flag, Mann vs Machine, etc.).Counter-Strike: Source
App ID:
240BSP Version: 19-20File Pattern: de_*, cs_*Classic CS:S bomb defusal and hostage rescue maps.Counter-Strike: Global Offensive
App ID:
730BSP Version: 20-21File Pattern: de_*, cs_*, ar_*CS:GO competitive, casual, and Arms Race maps.Day of Defeat: Source
App ID:
300BSP Version: 19File Pattern: dod_*World War II themed multiplayer maps.Left 4 Dead
App ID:
500BSP Version: 20File Pattern: l4d_*, c1m* through c5m*Left 4 Dead co-op campaign and versus maps.Left 4 Dead 2
App ID:
550BSP Version: 20-21File Pattern: c1m* through c14m*Left 4 Dead 2 campaigns including DLC and community maps.Alien Swarm
App ID:
630BSP Version: 21Top-down co-op shooter maps.Dota 2
App ID:
570BSP Version: 20-27Dota 2 game maps. Note: Dota 2 uses a heavily modified Source engine.Third-Party Games
Black Mesa
App ID:
362890BSP Version: 20-21Fan-made remake of Half-Life in Source engine.Garry's Mod
App ID:
4000BSP Version: VariesSandbox game supporting maps from multiple Source games.Insurgency
App ID:
222880BSP Version: 20-21Tactical shooter maps.No More Room in Hell
App ID:
224260BSP Version: 20Survival horror co-op maps.Contagion
App ID:
238430BSP Version: 20Zombie survival maps.Blade Symphony
App ID:
225600BSP Version: 20Sword fighting duel maps.Synergy
App ID:
17520BSP Version: 20Co-op mod for Half-Life 2.Zombie Panic! Source
App ID:
17500BSP Version: 19-20Zombies vs survivors multiplayer maps.Dear Esther
App ID:
203810BSP Version: 20Story-driven exploration game.Zeno Clash
App ID:
22200BSP Version: 19First-person brawler maps.Tactical Intervention
App ID:
51100BSP Version: 20Counter-terrorism tactical shooter.The Ship
App ID:
2400BSP Version: 17-19Murder mystery multiplayer game.Bloody Good Time
App ID:
2450BSP Version: 19Spiritual successor to The Ship.Dark Messiah of Might and Magic
App ID:
2100BSP Version: 18-19Action RPG with Source engine.Vampire: The Masquerade - Bloodlines
App ID:
2600BSP Version: 17RPG using early Source engine.SiN Episodes: Emergence
App ID:
1300BSP Version: 19First-person shooter episode.Postal III
App ID:
10220BSP Version: 20Controversial action game.Vindictus (Mabinogi Heroes)
App ID:
212160BSP Version: 20Action MMORPG using Source engine.Titanfall
App ID:
1454890BSP Version: Heavily modifiedMultiplayer FPS with mechs. Uses heavily modified Source engine.Experimental / Community Engines
Strata Source
App ID:
-1000 (Custom)Community-maintained fork of Source engine with modern features.Uses a custom negative app ID since it’s not an official Steam game.
Cyber Diver
App ID:
-500 (Custom)Custom Source engine project.Uses a custom negative app ID.
Listing App IDs
CLI
List all supported games and their app IDs:GUI
In the GUI, go to Other Options tab and click List App IDs.Programmatically
Using App IDs
When to Set App ID Manually
Manually specify the app ID when:- Auto-detection fails - The map doesn’t have clear game identifiers
- Custom maps - Community maps that don’t follow naming conventions
- Modified BSP files - BSP files edited with custom tools
- Cross-game maps - Maps designed for multiple games
How to Set App ID
- CLI
- GUI
- API
Use the Force Team Fortress 2 decompilation:
--appid flag:BSP Version Compatibility
BSPSource supports BSP versions from Source engine games:| BSP Version | Games | Notes |
|---|---|---|
| 17 | Half-Life 2 (early), Vampire: Bloodlines | Early Source engine |
| 18 | Dark Messiah | Transitional version |
| 19 | HL2, CS:S, HL:S, DoD:S, Portal | Most common older version |
| 20 | HL2:EP1, HL2:EP2, TF2, L4D, CS:GO | Standard Source 2007+ |
| 21 | Portal 2, Alien Swarm, L4D2 | Source 2009+ |
| 22-27 | Dota 2 | Heavily modified Source |
Game-Specific Features
Team Fortress 2
TF2 maps are detected by prefixes:cp_*- Control Pointspl_*- Payloadplr_*- Payload Racekoth_*- King of the Hillctf_*- Capture the Flagarena_*- Arenamvm_*- Mann vs Machinetc_*- Territory Controlsd_*- Special Delivery
Portal 2
Portal 2 maps use specific naming:sp_a1_*throughsp_a5_*- Single-player chaptersmp_coop_*- Co-op maps
Left 4 Dead / L4D2
Campaign maps are organized by chapters:c1m1_*,c1m2_*, etc. - Campaign 1, Map 1, 2…- Up to
c14m*in L4D2 (including DLC)
Counter-Strike Series
CS maps follow conventions:de_*- Bomb Defusal (Demolition)cs_*- Hostage Rescuear_*- Arms Race (CS:GO)
Unsupported Games
The following Source engine games are not currently supported:- Source 2 games (Dota 2 Reborn, Half-Life: Alyx, Counter-Strike 2) - Different engine
- Apex Legends - Heavily modified Source, proprietary format
- Respawn games (Titanfall 2 is partially supported)
- Non-Source games - BSPSource only works with Source engine BSP files
If you need support for an unlisted Source engine game, please open an issue with sample BSP files.
Game Detection Examples
Example 1: Auto-Detection Success
- File pattern:
cp_*(Control Point) - BSP version: 20
- Entities: TF2-specific entities
- Result: Correctly identifies as Team Fortress 2 (app ID 440)
Example 2: Auto-Detection Failure
- Non-standard file name
- Generic entities only
- Result: Falls back to UNKNOWN (app ID 0)
Example 3: Cross-Game Map
Some maps work in multiple games (e.g., HL2 and Garry’s Mod):See Also
- CLI Reference - Using
--appidflag - Configuration - Setting
defaultAppId - GUI Usage - Using app ID in GUI