Porting Half-Life maps

From Valve Developer Community
Jump to: navigation, search

Any GoldSrc mapper looking to start working with Source has given thought to porting over their existing work. Generally the easy way to do this is to load the .RMF into the new Hammer and update the textures and entities. If that isn't available, this tutorial shows how to port a map from a decompile.


Many tools exist for the purpose of decompilation and porting, but the ones we're looking at are called BSP2Map (decompile) and MapFool (update). Be sure all the WADs needed for the map are handy.


As BSP2Map is a command line utility, run it from the Command Prompt with the BSP in question as an argument (e.g. bsp2map c1a0.bsp).

A decompiled copy of dod_avalanche without fixed textures

None of the textures will exist in the map, so you'll have to use MapFool to update their location. Load your map into MapFool and load the WADs (from File > Options...) and .map into it. After loading all the WADs, point MapFool towards the location of your copy of Vtex and where you want it to dump all your textures.

Using "Upgrade Obsolete Entities" from the Tools menu, change any obsolete or deprecated entities to their Source counterparts (func_illusionary turns into func_brush entities with the solidity turned off, for example).

Porting textures

Export all the textures in the WADs to TGA. Navigate to it and turn them into materials using Vtex. Some textures can't be converted right away because Source requires all textures to be in powers of two. Any irregularly sized textures will need to be resized in an image editor before recompilation.

Assuming everything was put in its proper place, you should have an almost perfect replica of your favorite HL1 map. Don't compile right off the bat, however. The way BSP2Map works is that, instead of creating one solid, it creates six very thin solids. This almost certainly will lead to broken solids and going way over VBSP's compile limit.

You'll have to fix all of this yourself, fortunately. Half-Life 2 BSPs solve the problem by saving the original solids in the map, so it's simply a matter of extracting them.

External Links