# Decompiling Maps

Decompiling is the process of taking a compiled level and generating a source that can be opened in a map editor. Decompiled levels mimic the original source, they are not exact reproductions. This makes them useful for learning, measurement, and inspection, but not direct recompilation. The original source is ideal for reproductions or modifications.

Releasing reproductions, modifications, or approximations of another's work without permission nor credit is frowned upon and may be considered as a copyright violation.

## Tools

• EntSpy (used to view and edit the entities of a BSP without recompiling)
• BSPSource (open source map decompiler for Source engine maps, based on VMEX)
• VMEX (decompiler for Source engine maps)
• MapFool (helps porting HL1 maps to Source)
• xwad (command-line tool to convert texture formats)

Tools for the HL1-engine:

## Getting dirty

The latest decompiler is BSPSource. Since it is written in Java you need to have the Java Runtime Environment (JRE) installed, which can be downloaded from Oracle. Once installed, you are ready to decompile your first map.

## Extracting Valve maps

Most maps do not need to be extracted. The .bsp files are usually located in /<game name>/<game name>/maps/.

(Note: This tutorial assumes that you have opted into the SteamPipe beta for any Orange Box titles. Games released after 2007 or games that are multiplayer titles will have already stashed their content in \steamapps\common\.)

1. Install GCFScape.
2. After you install GCFScape, go to File >> Open.
• For Counter-Strike: Source maps, open \steamapps\common\counter-strike source\cstrike\strike_pak_dir.vpk
• For Day of Defeat: Source maps, open \steamapps\common\Day of Defeat Source\dod\dod_pak_dir.vpk
• For Half-Life 2 maps, open \steamapps\common\half-life 2\hl2\hl2_misc_dir.vpk
• For Half-Life 2: Deathmatch maps, open \steamapps\common\half-life 2 deathmatch\hl2mp\hl2mp_pak_dir.vpk
• For Half-Life 2: Episode One maps, open \steamapps\common\half-life 2\episodic\ep1_pak_dir.vpk
• For Half-Life 2: Episode Two maps, open \steamapps\common\half-life 2\ep2\ep2_pak_dir.vpk
• For Left 4 Dead maps, open steamapps\common\left 4 dead\l4d\pak01_dir.vpk
• For Left 4 Dead 2 maps, open steamapps\common\left 4 dead 2\l4d2\pak01_dir.vpk
• For Team Fortress 2 maps, open steamapps\common\Team Fortress 2\tf\maps
Note:Left 4 Dead, Left 4 Dead 2, and Portal 2 also have other folders for DLCs, for examples: steamapps\common\portal2\portal2_dlc1\pak01_dir.vpk and steamapps\common\left 4 dead\l4d_dlc1\pak01_dir.vpk .

3. Browse the directory until you find a \maps\ folder. Each location varies per game.
4. Right-click on the BSP file you want, then click Extract or drag the file from the GCF into a folder.

## Before you go

Before you take this jump to run off and decompile a map take a second or two to think, "What am I trying to learn/do?". Read the included TXT files, you may just find the creator's e-mail, and that could be more helpful than you imagine.

Some mappers will offer up help and advice, they may even go so far as to provide perfect examples of what you were trying to "borrow" from the map.