bsp_tool

Python library for analysing .bsp files

View the Project on GitHub snake-biscuits/bsp_tool

Titanfall Series

Developers: Respawn Entertainment & NEXON

BspClass Bsp version Game Branch script Supported lumps Unused lumps Coverage
RespawnBsp 29 Titanfall respawn.titanfall 67 / 72 56 92.36%
RespawnBsp 29 Titanfall: Online respawn.titanfall 67 / 72 56 92.36%
RespawnBsp 36 Titanfall 2 Tech Test respawn.titanfall2 69 / 76 52 88.91%
RespawnBsp 37 Titanfall 2 respawn.titanfall2 69 / 76 52 88.91%

References

Extracting .bsps

Titanfall Engine .bsp, .bsp_lump & .ent are stored in .vpk files. Extracting these files to work on them requires Titanfall Engine specific tools:

Once you have chosen your extraction tool:

Extraction Tools

NOTE: Apex's GAME_LUMP lump version should be the same as the version of the .bsp it is in

Supported Lumps

Lump index Hex index Bsp version Lump name Lump version LumpClass Coverage
0 0000 29 ENTITIES 0 shared.Entities 100%
1 0001 29 PLANES 1 id_software.quake3.Plane 100%
2 0002 29 TEXTURE_DATA 1 respawn.titanfall.TextureData 100%
3 0003 29 VERTICES 0 id_software.quake.Vertex 100%
4 0004 29 UNUSED_4 0 0%
4 0004 37 LIGHTPROBE_PARENT_INFOS 0 0%
5 0005 29 UNUSED_5 0 0%
5 0005 37 SHADOW_ENVIRONMENTS 0 respawn.titanfall2.ShadowEnvironment 100%
6 0006 29 UNUSED_6 0 0%
6 0006 37 LIGHTPROBE_BSP_NODES 0 respawn.titanfall2.LightProbeBSPNode 100%
7 0007 29 UNUSED_7 0 0%
7 0007 37 LIGHTPROBE_BSP_REF_IDS 0 0%
8 0008 29 UNUSED_8 0 0%
9 0009 29 UNUSED_9 0 0%
10 000A 29 UNUSED_10 0 0%
11 000B 29 UNUSED_11 0 0%
12 000C 29 UNUSED_12 0 0%
13 000D 29 UNUSED_13 0 0%
14 000E 29 MODELS 0 respawn.titanfall.Model 100%
15 000F 29 UNUSED_15 0 0%
16 0010 29 UNUSED_16 0 0%
17 0011 29 UNUSED_17 0 0%
18 0012 29 UNUSED_18 0 0%
19 0013 29 UNUSED_19 0 0%
20 0014 29 UNUSED_20 0 0%
21 0015 29 UNUSED_21 0 0%
22 0016 29 UNUSED_22 0 0%
23 0017 29 UNUSED_23 0 0%
24 0018 29 ENTITY_PARTITIONS 0 respawn.titanfall.EntityPartitions 100%
25 0019 29 UNUSED_25 0 0%
26 001A 29 UNUSED_26 0 0%
27 001B 29 UNUSED_27 0 0%
28 001C 29 UNUSED_28 0 0%
29 001D 29 PHYSICS_COLLIDE 0 0%
30 001E 29 VERTEX_NORMALS 0 id_software.quake.Vertex 100%
31 001F 29 UNUSED_31 0 0%
32 0020 29 UNUSED_32 0 0%
33 0021 29 UNUSED_33 0 0%
34 0022 29 UNUSED_34 0 0%
35 0023 29 GAME_LUMP - lumps.GameLump 90%
35 0023 29 GAME_LUMP.sprp 12 respawn.titanfall.GameLump_SPRPv12 60%
35 0023 29 GAME_LUMP.sprp.leaves 12 shared.UnsignedShorts 100%
35 0023 29 GAME_LUMP.sprp.props 12 respawn.titanfall.StaticPropv12 94%
35 0023 37 GAME_LUMP.sprp 13 respawn.titanfall2.GameLump_SPRPv13 40%
35 0023 37 GAME_LUMP.sprp.props 13 respawn.titanfall2.StaticPropv13 92%
35 0023 37 GAME_LUMP.sprp.unknown_3 13 0%
36 0024 29 LEAF_WATER_DATA 1 valve.source.LeafWaterData 100%
37 0025 29 UNUSED_37 0 0%
38 0026 29 UNUSED_38 0 0%
39 0027 29 UNUSED_39 0 0%
40 0028 29 PAKFILE 0 valve.source.PakFile 100%
41 0029 29 UNUSED_41 0 0%
42 002A 29 CUBEMAPS 0 respawn.titanfall.Cubemap 50%
43 002B 29 TEXTURE_DATA_STRING_DATA 0 valve.source.TextureDataStringData 100%
44 002C 29 TEXTURE_DATA_STRING_TABLE 0 shared.UnsignedInts 100%
45 002D 29 UNUSED_45 0 0%
46 002E 29 UNUSED_46 0 0%
47 002F 29 UNUSED_47 0 0%
48 0030 29 UNUSED_48 0 0%
49 0031 29 UNUSED_49 0 0%
50 0032 29 UNUSED_50 0 0%
51 0033 29 UNUSED_51 0 0%
52 0034 29 UNUSED_52 0 0%
53 0035 29 UNUSED_53 0 0%
54 0036 29 WORLD_LIGHTS 1 respawn.titanfall.WorldLight 100%
54 0036 37 WORLD_LIGHTS 2 respawn.titanfall2.WorldLightv2 89%
54 0036 37 WORLD_LIGHTS 3 respawn.titanfall2.WorldLightv3 85%
55 0037 29 UNUSED_55 0 0%
55 0037 37 WORLD_LIGHT_PARENT_INFOS 0 0%
56 0038 29 UNUSED_56 0 0%
57 0039 29 UNUSED_57 0 0%
58 003A 29 UNUSED_58 0 0%
59 003B 29 UNUSED_59 0 0%
60 003C 29 UNUSED_60 0 0%
61 003D 29 UNUSED_61 0 0%
62 003E 29 PHYSICS_LEVEL 0 0%
63 003F 29 UNUSED_63 0 0%
64 0040 29 UNUSED_64 0 0%
65 0041 29 UNUSED_65 0 0%
66 0042 29 TRICOLL_TRIANGLES 2 respawn.titanfall.TricollTriangle 100%
67 0043 29 UNUSED_67 0 0%
68 0044 29 TRICOLL_NODES 1 respawn.titanfall.TricollNode 100%
69 0045 29 TRICOLL_HEADERS 1 respawn.titanfall.TricollHeader 100%
70 0046 29 PHYSICS_TRIANGLES 0 0%
71 0047 29 VERTEX_UNLIT 0 respawn.titanfall.VertexUnlit 100%
72 0048 29 VERTEX_LIT_FLAT 1 respawn.titanfall.VertexLitFlat 100%
73 0049 29 VERTEX_LIT_BUMP 1 respawn.titanfall.VertexLitBump 100%
74 004A 29 VERTEX_UNLIT_TS 0 respawn.titanfall.VertexUnlitTS 100%
75 004B 29 VERTEX_BLINN_PHONG 0 respawn.titanfall.VertexBlinnPhong 100%
76 004C 29 VERTEX_RESERVED_5 0 0%
77 004D 29 VERTEX_RESERVED_6 0 0%
78 004E 29 VERTEX_RESERVED_7 0 0%
79 004F 29 MESH_INDICES 0 shared.UnsignedShorts 100%
80 0050 29 MESHES 0 respawn.titanfall.Mesh 100%
80 0050 37 MESHES 0 respawn.titanfall2.Mesh 100%
81 0051 29 MESH_BOUNDS 0 respawn.titanfall.MeshBounds 100%
82 0052 29 MATERIAL_SORTS 0 respawn.titanfall.MaterialSort 100%
83 0053 29 LIGHTMAP_HEADERS 1 respawn.titanfall.LightmapHeader 100%
84 0054 29 UNUSED_84 0 0%
85 0055 29 CM_GRID 0 respawn.titanfall.Grid 100%
86 0056 29 CM_GRID_CELLS 0 respawn.titanfall.GridCell 100%
87 0057 29 CM_GEO_SETS 0 respawn.titanfall.GeoSet 100%
87 0057 37 CM_GEO_SETS 0 respawn.titanfall2.GeoSet 50%
88 0058 29 CM_GEO_SET_BOUNDS 0 respawn.titanfall.Bounds 100%
89 0059 29 CM_PRIMITIVES 0 respawn.titanfall.Primitive 100%
90 005A 29 CM_PRIMITIVE_BOUNDS 0 respawn.titanfall.Bounds 100%
91 005B 29 CM_UNIQUE_CONTENTS 0 shared.UnsignedInts 100%
92 005C 29 CM_BRUSHES 0 respawn.titanfall.Brush 100%
93 005D 29 CM_BRUSH_SIDE_PLANE_OFFSETS 0 shared.UnsignedShorts 100%
94 005E 29 CM_BRUSH_SIDE_PROPERTIES 0 respawn.titanfall.BrushSideProperty 100%
95 005F 29 CM_BRUSH_SIDE_TEXTURE_VECTORS 0 respawn.titanfall.TextureVector 100%
96 0060 29 TRICOLL_BEVEL_STARTS 0 shared.UnsignedShorts 100%
97 0061 29 TRICOLL_BEVEL_INDICES 0 shared.UnsignedInts 100%
98 0062 29 LIGHTMAP_DATA_SKY 0 extensions.lightmaps.extract 100%
98 0062 37 LIGHTMAP_DATA_SKY 0 extensions.lightmaps.extract 100%
99 0063 29 CSM_AABB_NODES 0 respawn.titanfall.CSMAABBNode 100%
100 0064 29 CSM_OBJ_REFERENCES 0 shared.UnsignedShorts 100%
101 0065 29 LIGHTPROBES 0 respawn.titanfall.LightProbe 100%
102 0066 29 STATIC_PROP_LIGHTPROBE_INDICES 0 0%
103 0067 29 LIGHTPROBE_TREE 0 respawn.titanfall.LightProbeTree 100%
104 0068 29 LIGHTPROBE_REFERENCES 0 respawn.titanfall.LightProbeRef 100%
104 0068 37 LIGHTPROBE_REFERENCES 0 respawn.titanfall2.LightProbeRef 66%
105 0069 29 LIGHTMAP_DATA_REAL_TIME_LIGHTS 0 extensions.lightmaps.extract 100%
105 0069 37 LIGHTMAP_DATA_REAL_TIME_LIGHTS 0 extensions.lightmaps.extract 100%
106 006A 29 CELL_BSP_NODES 0 respawn.titanfall.CellBSPNode 100%
107 006B 29 CELLS 0 respawn.titanfall.Cell 100%
108 006C 29 PORTALS 0 respawn.titanfall.Portal 100%
109 006D 29 PORTAL_VERTICES 0 id_software.quake.Vertex 100%
110 006E 29 PORTAL_EDGES 0 id_software.quake.Edge 100%
111 006F 29 PORTAL_VERTEX_EDGES 0 respawn.titanfall.PortalIndexSet 100%
112 0070 29 PORTAL_VERTEX_REFERENCES 0 shared.UnsignedShorts 100%
113 0071 29 PORTAL_EDGE_REFERENCES 0 shared.UnsignedShorts 100%
114 0072 29 PORTAL_EDGE_INTERSECT_AT_EDGE 0 respawn.titanfall.PortalIndexSet 100%
115 0073 29 PORTAL_EDGE_INTERSECT_AT_VERTEX 0 respawn.titanfall.PortalIndexSet 100%
116 0074 29 PORTAL_EDGE_INTERSECT_HEADER 0 respawn.titanfall.PortalEdgeIntersectHeader 100%
117 0075 29 OCCLUSION_MESH_VERTICES 0 id_software.quake.Vertex 100%
118 0076 29 OCCLUSION_MESH_INDICES 0 shared.Shorts 100%
119 0077 29 CELL_AABB_NODES 0 respawn.titanfall.CellAABBNode 100%
120 0078 29 OBJ_REFERENCES 0 shared.UnsignedShorts 100%
121 0079 29 OBJ_REFERENCE_BOUNDS 0 respawn.titanfall.ObjRefBounds 100%
122 007A 29 UNUSED_122 0 0%
122 007A 37 LIGHTMAP_DATA_RTL_PAGE 0 0%
123 007B 29 LEVEL_INFO 0 respawn.titanfall.LevelInfo 100%
124 007C 29 SHADOW_MESH_OPAQUE_VERTICES 0 id_software.quake.Vertex 100%
125 007D 29 SHADOW_MESH_ALPHA_VERTICES 0 respawn.titanfall.ShadowMeshAlphaVertex 100%
126 007E 29 SHADOW_MESH_INDICES 0 shared.UnsignedShorts 100%
127 007F 29 SHADOW_MESHES 0 respawn.titanfall.ShadowMesh 100%