Why are the official .VMF's so leaky and broken?

MOCOLONI

L6: Sharp Member
Dec 16, 2014
373
89
A friend of mine recently decided to remake official maps using the official .VMF's that were published by Valve on June 15, 2009. However, the two maps he touched are already broken when trying to compile them, either giving leaks or fatal errors related to areaportals. I helped him fixing a CONTENTS_SOLID problem on the first map by deleting a SKIP brush (since no other workaround could help). The second one, however, is giving us both just troubles because of entities outside the maps, many areaportal errors and constant game crashes. It's just that; we open these maps in Hammer and just compile them without performing any changes, and all it does is report all these problems. Did Valve actually break them intentionally or are the updates to Hammer responsible for it? I just keep seeing that VBSP, VVIS and VRAD usually have different dates (latest: June 14, 2017).

Here's the compile log of, let's say, sfk_ctf_2fort.vmf, and it's just the VBSP (no VIS nor RAD):

materialPath: C:\Program Files (x86)\Steam\steamapps\common\Team Fortress 2\tf\materials
Loading C:\Users\Alex\Mapping\Team Fortress 2\ctf_2fort\sdk_ctf_2fort.vmf
ConVarRef mat_reduceparticles doesn't point to an existing ConVar
Patching WVT material: maps/sdk_ctf_2fort/nature/blendgroundtogravel001_wvt_patch
Patching WVT material: maps/sdk_ctf_2fort/nature/blendgroundtograss001_wvt_patch
Patching WVT material: maps/sdk_ctf_2fort/nature/blendgroundtograss003_nodetail_wvt_patch
fixing up env_cubemap materials on brush sides...
0...1...2...3...4...5...6...7...8...9...100...1...2...3...4...5...6...7...8...9...10Processing areas...done (0)
Building Faces...done (0)
Occluder "occluder_red_front1" straddles multiple areas. This is invalid!
Occluder "occluder_red_front1" straddles multiple areas. This is invalid!
Occluder "occluder_red_front1" straddles multiple areas. This is invalid!
Occluder "occluder_red_front4" straddles multiple areas. This is invalid!
Occluder "occluder_red_front4" straddles multiple areas. This is invalid!
Occluder "occluder_blue_front1b" straddles multiple areas. This is invalid!
Occluder "occluder_blue_front1b" straddles multiple areas. This is invalid!
Occluder "occluder_blue_front1b" straddles multiple areas. This is invalid!
Chop Details...done (1)
Find Visible Detail Sides...
Merged 1208 detail faces...done (1)
Merging details...done (1)
FixTjuncs...
PruneNodes...
WriteBSP...
done (1)
writing C:\Users\Alex\Mapping\Team Fortress 2\ctf_2fort\sdk_ctf_2fort.prt...Building visibility clusters...
done (0)
*** Error: Skybox vtf files for skybox/sky_tf2_04 weren't compiled with the same size texture and/or same flags!
Can't load skybox file skybox/sky_tf2_04 to build the default cubemap!
*** Error: Skybox vtf files for skybox/sky_tf2_04 weren't compiled with the same size texture and/or same flags!
Can't load skybox file skybox/sky_tf2_04 to build the default cubemap!
Finding displacement neighbors...
Finding lightmap sample positions...
Displacement Alpha : 0...1...2...3...4...5...6...7...8...9...10
Building Physics collision data...
WARNING: Map using power 4 displacements, terrain physics cannot be compressed, map will need additional memory and CPU.
done (2) (4366807 bytes)
Static prop models/props_mining/ceiling_pipe_64.mdl outside the map (1269.00, 1600.00, 488.00)
Static prop models/props_mining/ceiling_pipe_64.mdl outside the map (-1061.00, 1712.00, 488.00)
Static prop models/props_mining/ceiling_pipe_128.mdl outside the map (1408.00, 1258.57, 503.37)
Static prop models/props_mining/ceiling_pipe_128.mdl outside the map (1536.00, 1258.57, 503.37)
Static prop models/props_mining/ceiling_pipe_64.mdl outside the map (-1269.00, -1600.00, 488.00)
Static prop models/props_mining/ceiling_pipe_128.mdl outside the map (-1408.00, -1258.57, 503.37)
Static prop models/props_mining/ceiling_pipe_128.mdl outside the map (-1536.00, -1258.57, 503.37)
Static prop models/props_mining/ceiling_pipe_64.mdl outside the map (1061.00, -1712.00, 488.00)
Placing detail props : 0...1...2...3...4...5...6...7...8...9...10
Compacting texture/material tables...
Reduced 13796 texinfos to 5840
Reduced 374 texdatas to 291 (14234 bytes to 10177)
Writing C:\Users\Alex\Mapping\Team Fortress 2\ctf_2fort\sdk_ctf_2fort.bsp
Wrote ZIP buffer, estimated size 91666, actual size 66394
27 seconds elapsed
 

Hyperion

L16: Grid Member
aa
Jun 8, 2015
840
659
Most of the maps are decompiles and that process isn't 100% error free
 

Tumby

aa
May 12, 2013
1,087
1,196
The engine has changed so much over the years that compiling maps that are this old is nearly impossible. For example, you would need to turn half of goldrush and hydro into models or you will consistently hit the brush, brush sides or t-junct limits.

It might also happen that hammer has trouble loading a brush. When that happens, hammer will say that one or more brushes couldn't load and it asks you if you want to save the map with the broken brush removed. Redownload a fresh copy from the SDK and see if it does that. If so, you will have to find the brush yourself somehow as no tools exist for that.
 

MOCOLONI

L6: Sharp Member
Dec 16, 2014
373
89
The engine has changed so much over the years that compiling maps that are this old is nearly impossible. For example, you would need to turn half of goldrush and hydro into models or you will consistently hit the brush, brush sides or t-junct limits.

It might also happen that hammer has trouble loading a brush. When that happens, hammer will say that one or more brushes couldn't load and it asks you if you want to save the map with the broken brush removed. Redownload a fresh copy from the SDK and see if it does that. If so, you will have to find the brush yourself somehow as no tools exist for that.
I expected the TF2/Hammer updates could've brought problems when it comes to compiling a 2009 .VMF with all that content in it. And no, neither of the 2 maps we tried to edit had invalid solids; Hammer loaded them up properly, but to fix a problem in the first map I had to remove a Skip/Hint brush, which is absurd yet useful to fix the issue.