Apex Legends coll*
entity only triggers
#85
Replies: 6 comments 3 replies
-
Example Entity>>> import bsp_tool
>>> b = bsp_tool.load_bsp("E:/Mod/ApexLegends/season15/1nov22/maps/mp_lobby.bsp")
>>> {print(f"{k:<16} {v}") for k, v in b.external.ENTITIES[5].items()}
model *12
cubeMapIndex 0
mins -3968.000000 -1024.000000 -1536.000000
maxs 3968.000000 1024.000000 1536.000000
cubemapID 0
origin 8254 -2386 512
target_noRename 0
target env_gladcard_pfb18827b123a9d8a3
priority 10
classname envmap_volume
*coll0 QAAAADgAAABEAAAAAQAAAAAAAAAAAQAAXAAAAFwAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYQBgAAAAAAAEAS4xBUT09MU1xUT09MU0VOVk1BUFZPTFVNRQAIBgABAAAAAAAAAAAAAAAAAAAANgCEAOAA0ACE
*coll1 AOAAMACEACAAMACEACAA0AB8AOAA0AB8ACAA0AB8ACAAMAB8AOAAMAABAwQFBwAEAQIGAwADBAEHAgAAAFAAAAAAEHAADAAwAAgYMAEUABABDAAQAgAQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
*coll2 AAAAAAAAAAAAAAAAAAAAAACEAHwAfAB8AHwAhACEAIQA4AAgACAAIAAgAOAA4ADgANAAMAAwADAAMADQANAA0AAAAAAAAAAAGAAAABEAAAA=
{None} Structure sizes>>> {len(e["*coll0"]) for e in b.external.ENTITIES.search(classname="envmap_volume")}
{160}
>>> {len(e["*coll1"]) for e in b.external.ENTITIES.search(classname="envmap_volume")}
{160}
>>> {len(e["*coll2"]) for e in b.external.ENTITIES.search(classname="envmap_volume")}
{108} As bytes>>> len(base64.b64decode(b.external.ENTITIES[5]["*coll0"]))
120
>>> len(base64.b64decode(b.external.ENTITIES[5]["*coll1"]))
120
>>> len(base64.b64decode(b.external.ENTITIES[5]["*coll2"]))
80 |
Beta Was this translation helpful? Give feedback.
-
None of the >>> {print(c) for c in b.external.CUBEMAPS}
Cubemap(origin=vec3(8393.0, -2385.0, 1539.0), unknown=0)
Cubemap(origin=vec3(12.0, 5721.0, 32.0), unknown=0)
Cubemap(origin=vec3(11811.0, 286.0, 66.0), unknown=0)
Cubemap(origin=vec3(5120.0, -168.0, 53.0), unknown=0)
Cubemap(origin=vec3(3105.0, 25.0, 535.0), unknown=0)
Cubemap(origin=vec3(-29.0, 581.0, 95.0), unknown=0)
{None}
>>> {print(e["cubemapID"], e["origin"]) for e in b.external.ENTITIES.search(classname="envmap_volume")}
0 8254 -2386 512
3 8175 -8177.5 -6439
3 -96 1204 112
3 -8230 -7644 360
5 2 816 144
2 11805 517 29
3 4096 11360 256
3 5088 506 26
3 7224 506 26
3 9312 506 26
3 2976 506 26
3 11328 3978 512
3 0 5760 256
3 4096 6338 256
3 11200 8320 256
{None}
>>> |
Beta Was this translation helpful? Give feedback.
-
Viewing >>> import base64
>>> from bsp_tool.extensions.diff import xxd
>>> {print(L) for L in xxd(base64.b64decode(b.external.ENTITIES[5]["*coll0"]))}
0x00000000: 40 00 00 00 38 00 00 00 44 00 00 00 01 00 00 00 00 00 00 00 00 01 00 00 5C 00 00 00 5C 00 00 00 ....8...D...............\...\...
0x00000020: 5C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 36 10 06 00 00 00 00 00 00 \......................6........
0x00000040: 40 12 E3 10 54 4F 4F 4C 53 5C 54 4F 4F 4C 53 45 4E 56 4D 41 50 56 4F 4C 55 4D 45 00 08 06 00 01 ....TOOLS\TOOLSENVMAPVOLUME.....
0x00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 36 00 84 00 E0 00 D0 00 84 ...............6........
{None}
>>> {print(L) for L in xxd(base64.b64decode(b.external.ENTITIES[5]["*coll1"]))}
0x00000000: 00 E0 00 30 00 84 00 20 00 30 00 84 00 20 00 D0 00 7C 00 E0 00 D0 00 7C 00 20 00 D0 00 7C 00 20 ...0.....0......................
0x00000020: 00 30 00 7C 00 E0 00 30 00 01 03 04 05 07 00 04 01 02 06 03 00 03 04 01 07 02 00 00 00 50 00 00 .0.....0.....................P..
0x00000040: 00 00 10 70 00 0C 00 30 00 08 18 30 01 14 00 10 01 0C 00 10 02 00 10 70 00 00 00 00 00 00 00 00 ...p...0...0...........p........
0x00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........................
{None}
>>> {print(L) for L in xxd(base64.b64decode(b.external.ENTITIES[5]["*coll2"]))}
0x00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 84 00 7C 00 7C 00 7C 00 7C 00 84 00 84 00 84 ................................
0x00000020: 00 E0 00 20 00 20 00 20 00 20 00 E0 00 E0 00 E0 00 D0 00 30 00 30 00 30 00 30 00 D0 00 D0 00 D0 ...................0.0.0.0......
0x00000040: 00 00 00 00 00 00 00 00 18 00 00 00 11 00 00 00 ................
{None} |
Beta Was this translation helpful? Give feedback.
-
According to @r-ex this is similar to |
Beta Was this translation helpful? Give feedback.
-
Could we create a trigger w/ vscript and dump the |
Beta Was this translation helpful? Give feedback.
-
Some entities have more than 3 |
Beta Was this translation helpful? Give feedback.
-
Apex Legends maps use a
"*coll0" "<base64>"
form for triggersSeems line an evolution of Titanfall 2's plaintext brushes & planes.
For decompiling & compiling maps we need to understand & re-create these structures.
Beta Was this translation helpful? Give feedback.
All reactions