aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers/mod
diff options
context:
space:
mode:
Diffstat (limited to 'Northstar.CustomServers/mod')
-rw-r--r--Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg6
-rw-r--r--Northstar.CustomServers/mod/maps/mp_complex3_script.ent13234
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut4
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_items.nut20
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_menu_callbacks.gnut2
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_utility_shared.nut3
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_xp.gnut39
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers.gnut13
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut2
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/conversation/_grunt_chatter_mp.gnut195
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut45
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/faction_xp.gnut3
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_at.nut20
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut9
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/lobby/_lobby.gnut12
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut1
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut34
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut4
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut5
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut2
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut11
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_stats.nut1043
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/spawn.nut9
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut4
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_northstar_utils.gnut6
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_progression.nut1117
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_utility_all.gnut8
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan_xp.gnut3
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapon_xp.gnut5
29 files changed, 15781 insertions, 78 deletions
diff --git a/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg b/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg
index d92ca3ec..bd422783 100644
--- a/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg
+++ b/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg
@@ -6,7 +6,6 @@ ns_report_sp_server_to_masterserver 0 // whether this server should report itsel
ns_auth_allow_insecure 0 // keep this to 0 unless you want to allow people to join without masterserver auth/persistence
ns_erase_auth_info 1 // keep this to 1 unless you're testing and crashing alot, so you don't have to go through the northstar lobby to reauth
-ns_player_auth_port 8081 // this can be whatever, make sure it's portforwarded over tcp
ns_masterserver_hostname "https://northstar.tf" // masterserver hostname
everything_unlocked 1 // unlock everything
@@ -22,4 +21,7 @@ sv_updaterate_mp 20 // default updaterate: 20 tick
sv_minupdaterate 20 // unsure if this actually works, but if it does, should set minimum client updaterate
sv_max_snapshots_multiplayer 300 // this needs to be updaterate * 15, or clients will dc in killreplay
net_data_block_enabled 0 // not really sure on this, have heard datablock could have security issues? doesn't seem to have any adverse effects being disabled
-host_skip_client_dll_crc 1 // allow people to run modded client dlls, this is mainly so people running pilot visor colour mods can keep those, since they use a client.dll edit \ No newline at end of file
+host_skip_client_dll_crc 1 // allow people to run modded client dlls, this is mainly so people running pilot visor colour mods can keep those, since they use a client.dll edit
+
+announcementVersion 1
+announcement #PROGRESSION_ANNOUNCEMENT_BODY \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/maps/mp_complex3_script.ent b/Northstar.CustomServers/mod/maps/mp_complex3_script.ent
new file mode 100644
index 00000000..df26fd80
--- /dev/null
+++ b/Northstar.CustomServers/mod/maps/mp_complex3_script.ent
@@ -0,0 +1,13234 @@
+ENTITIES01
+{
+"spawnflags" "0"
+"scale" "1"
+"angles" "0 -12.363 0"
+"origin" "-3966.17 -2563 748"
+"targetname" "info_player_start_7"
+"classname" "info_player_start"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_at" "0"
+"origin" "-6248 -1288 520"
+"link_to_guid_0" "3148974f"
+"link_guid" "e2596db6"
+"hardpointGroup" "p"
+"gamemode_tday" "1"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"classname" "info_hardpoint"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_at" "0"
+"origin" "-3688 -2288 720"
+"link_to_guid_0" "5bdcb1bf"
+"link_guid" "9ef44891"
+"hardpointGroup" "p"
+"gamemode_tday" "1"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"classname" "info_hardpoint"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_at" "0"
+"origin" "-896 -2880 520"
+"link_to_guid_0" "a6716741"
+"link_guid" "f137536f"
+"hardpointGroup" "p"
+"gamemode_tday" "1"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"classname" "info_hardpoint"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_at" "0"
+"origin" "-3624 -4216 640"
+"link_to_guid_0" "c9c2695"
+"link_guid" "24221b55"
+"hardpointGroup" "p"
+"gamemode_tday" "1"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"classname" "info_hardpoint"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_at" "0"
+"origin" "-3752 -96 560"
+"link_to_guid_0" "17679895"
+"link_guid" "bf771060"
+"hardpointGroup" "p"
+"gamemode_tday" "1"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"classname" "info_hardpoint"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 69.653 0"
+"origin" "-8484.94 -2690.44 603.359"
+"targetname" "prop_static_83"
+"spawnflags" "4"
+"solid" "6"
+"model" "models/containers/gas_tank.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 74.349 0"
+"origin" "-8474.32 -2693.28 603.359"
+"targetname" "prop_static_83"
+"spawnflags" "4"
+"solid" "6"
+"model" "models/containers/gas_tank.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -15 0"
+"origin" "-8442.56 -2694.55 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 35.353 0"
+"origin" "-8428.26 -2695.27 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 140.285 0"
+"origin" "-8435.99 -2693.2 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 162.106 0"
+"origin" "-8448.62 -2693.96 585.359"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -95.139 0"
+"origin" "-8445.15 -2704.21 585.359"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -15 0"
+"origin" "-8432.59 -2707.57 585.359"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -13.747 0"
+"origin" "-8477.69 -2690.31 651.359"
+"targetname" "func_model_225"
+"spawnflags" "4"
+"model" "models/containers/styrofoam_box_short_dirty.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -15 0"
+"origin" "-8472.39 -2693.8 585.359"
+"targetname" "func_model_242"
+"model" "models/containers/styrofoam_box_dirty.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -30.172 0"
+"origin" "-8446.78 -2698.6 651.359"
+"targetname" "func_model_225"
+"spawnflags" "4"
+"model" "models/containers/styrofoam_box_short_dirty.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -15 0"
+"origin" "-8461.88 -2689.37 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 35.353 0"
+"origin" "-8447.58 -2690.1 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 140.285 0"
+"origin" "-8455.31 -2688.02 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -15 0"
+"origin" "-8485.06 -2683.16 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 35.353 0"
+"origin" "-8470.76 -2683.88 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 140.285 0"
+"origin" "-8478.49 -2681.81 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -15 0"
+"origin" "-8434.97 -2704.86 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -15 0"
+"origin" "-8465.88 -2696.58 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 140.285 0"
+"origin" "-8455.45 -2696.27 627.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 35.353 0"
+"origin" "-8472.83 -2691.61 627.359"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -13.747 0"
+"origin" "-8439.05 -2700.67 603.359"
+"targetname" "func_model_225"
+"spawnflags" "4"
+"model" "models/containers/styrofoam_box_short_dirty.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "-2.2039e-006 140.285 1.12504e-006"
+"origin" "-8454.93 -2694.34 603.639"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "2.4724e-006 -15 0"
+"origin" "-8452.22 -2691.96 603.639"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 89.4372 0"
+"origin" "-8463.43 -2695.17 603.359"
+"targetname" "prop_static_83"
+"spawnflags" "4"
+"solid" "6"
+"model" "models/containers/gas_tank.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 119.849 0"
+"origin" "-8397.44 -2748.86 585.86"
+"targetname" "func_model_287"
+"model" "models/containers/crate_blue_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -60.1509 0"
+"origin" "-8380.52 -2778.35 585.86"
+"targetname" "func_model_287"
+"model" "models/containers/crate_blue_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 116.955 0"
+"origin" "-8384.52 -2763.35 628.36"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -151.236 0"
+"origin" "-8370.71 -2785.4 628.36"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -151.236 0"
+"origin" "-8384.12 -2778.11 628.36"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 120.523 0"
+"origin" "-8397.78 -2735.22 652.36"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 121.152 0"
+"origin" "-8408.19 -2741.19 652.36"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 121.152 0"
+"origin" "-8401.72 -2752.46 652.36"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 120.523 0"
+"origin" "-8391.31 -2746.49 652.36"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 120.523 0"
+"origin" "-8384.34 -2758.63 652.36"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 94.0521 0"
+"origin" "-8381.52 -2776.61 652.36"
+"targetname" "func_model_224"
+"spawnflags" "4"
+"model" "models/hardware/paint_container_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -19.5849 0"
+"origin" "-8398.65 -2766.85 580.86"
+"targetname" "func_model_297"
+"model" "models/containers/styrofoam_lid_dirty.mdl"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 119.849 0"
+"origin" "-8382.2 -2776.43 604.36"
+"targetname" "prop_static_3"
+"spawnflags" "4"
+"solid" "6"
+"model" "models/containers/box_mini_plastic.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"forcetoenablemotion" "10"
+"fadedist" "1200"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "-0.6507 -21.8879 -90"
+"origin" "-8346.46 -2848.61 607.86"
+"targetname" "prop_static_83"
+"spawnflags" "4"
+"solid" "6"
+"model" "models/containers/gas_tank.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -150.802 0"
+"origin" "-8357.11 -2814.72 604.36"
+"targetname" "prop_static_83"
+"spawnflags" "4"
+"solid" "6"
+"model" "models/containers/gas_tank.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -155.498 0"
+"origin" "-8351.13 -2825.12 604.36"
+"targetname" "prop_static_83"
+"spawnflags" "4"
+"solid" "6"
+"model" "models/containers/gas_tank.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 31.4211 0"
+"origin" "-8336.32 -2856.97 604.36"
+"targetname" "prop_static_83"
+"spawnflags" "4"
+"solid" "6"
+"model" "models/containers/gas_tank.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "0.8"
+"angles" "0 119.849 180"
+"origin" "-8357.91 -2816.33 662.235"
+"targetname" "func_model_287"
+"model" "models/containers/crate_blue_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 122.844 0"
+"origin" "-8359.79 -2822.08 627.36"
+"targetname" "func_model_225"
+"spawnflags" "4"
+"model" "models/containers/styrofoam_box_short_dirty.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 130.405 0"
+"origin" "-8357.34 -2822.34 586.36"
+"targetname" "prop_static_3"
+"solid" "6"
+"model" "models/hardware/paint_container_metal.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -83.9714 0"
+"origin" "-8336.39 -2847.8 586.36"
+"targetname" "prop_static_3"
+"solid" "6"
+"model" "models/hardware/paint_container_metal.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -150.151 0"
+"origin" "-8361.71 -2808.71 586.36"
+"targetname" "prop_static_3"
+"solid" "6"
+"model" "models/hardware/paint_container_metal.mdl"
+"luxelsize" "16"
+"lightingMethod" "0"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -69.2394 0"
+"origin" "-8342.32 -2848.36 627.36"
+"targetname" "func_model_225"
+"spawnflags" "4"
+"model" "models/containers/styrofoam_box_short_dirty.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 28.2831 0"
+"origin" "-8322.86 -2875.99 586.36"
+"targetname" "func_model_895"
+"spawnflags" "4"
+"model" "models/containers/crate_orange_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -61.7169 0"
+"origin" "-8313.16 -2888.88 586.36"
+"targetname" "func_model_895"
+"spawnflags" "4"
+"model" "models/containers/crate_orange_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -151.717 0"
+"origin" "-8304.44 -2908.08 586.36"
+"targetname" "func_model_895"
+"spawnflags" "4"
+"model" "models/containers/crate_orange_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -137.524 0"
+"origin" "-8296.97 -2921.09 586.36"
+"targetname" "func_model_895"
+"spawnflags" "4"
+"model" "models/containers/crate_orange_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 31.9871 0"
+"origin" "-8321.86 -2877.73 604.36"
+"targetname" "func_model_895"
+"spawnflags" "4"
+"model" "models/containers/crate_orange_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 27.1071 0"
+"origin" "-8314.89 -2889.87 604.36"
+"targetname" "func_model_895"
+"spawnflags" "4"
+"model" "models/containers/crate_orange_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -80.9149 0"
+"origin" "-8303.94 -2908.95 604.36"
+"targetname" "func_model_895"
+"spawnflags" "4"
+"model" "models/containers/crate_orange_plastic.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 114.489 0"
+"origin" "-8317.92 -2884.58 652.36"
+"targetname" "func_model_225"
+"spawnflags" "4"
+"model" "models/containers/styrofoam_box_short_dirty.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -59.5809 0"
+"origin" "-8297.61 -2917.99 628.36"
+"targetname" "func_model_225"
+"spawnflags" "4"
+"model" "models/containers/styrofoam_box_short_dirty.mdl"
+"forcetoenablemotion" "10"
+"fadedist" "1500"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 20.8021 0"
+"origin" "-8300.88 -2922.38 604.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -82.5729 0"
+"origin" "-8294.08 -2926.26 604.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -99.5309 0"
+"origin" "-8315.2 -2901.47 604.36"
+"targetname" "func_model_240"
+"spawnflags" "4"
+"model" "models/hardware/paint_spraycan_closed.mdl"
+"forcetoenablemotion" "5"
+"fadedist" "1000"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 119.849 0"
+"origin" "-8302.32 -2913.79 652.36"
+"targetname" "func_model_218"
+"model" "models/containers/styrofoam_box_long_dirty.mdl"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "4.26799e-006 -145.253 6.43766e-008"
+"origin" "-4448.12 -4514.19 666.181"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "4.26799e-006 64.3103 6.43766e-008"
+"origin" "-6668.7 -636.537 545.181"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "-2.53273e-006 -107.57 -1.67088e-006"
+"origin" "-6664.16 -937.235 545.181"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "4.26799e-006 32.1242 6.43766e-008"
+"origin" "-5892.35 775.76 872.583"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "4.26799e-006 32.1242 6.43766e-008"
+"origin" "-5615.16 -881.698 600.583"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 32.8045 2.59711e-006"
+"origin" "-8307.97 -1570.87 872.582"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 149.842 0"
+"origin" "-8655.45 -2144.56 586"
+"targetname" "func_static_1"
+"physicsmode" "1"
+"model" "models/containers/barrel.mdl"
+"forcetoenablemotion" "0"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -135 0"
+"origin" "-8631.4 -2171.43 586"
+"targetname" "func_static_1"
+"physicsmode" "1"
+"model" "models/containers/barrel.mdl"
+"forcetoenablemotion" "0"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -78.0148 0"
+"origin" "-8600.29 -2114.86 586"
+"targetname" "func_static_1"
+"physicsmode" "1"
+"model" "models/containers/barrel.mdl"
+"forcetoenablemotion" "0"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -135 0"
+"origin" "-8638.48 -2161.53 656"
+"targetname" "func_static_1"
+"solid" "6"
+"model" "models/containers/box_large_plastic.mdl"
+"forcetoenablemotion" "1"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -135 0"
+"origin" "-8596.76 -2119.81 656"
+"targetname" "func_static_1"
+"solid" "6"
+"model" "models/containers/box_large_plastic.mdl"
+"forcetoenablemotion" "1"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -45 0"
+"origin" "-8516.15 -2300.83 586"
+"targetname" "func_static_1"
+"solid" "6"
+"model" "models/containers/box_large_plastic.mdl"
+"forcetoenablemotion" "1"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -45 0"
+"origin" "-8570.59 -2246.38 586"
+"targetname" "func_static_1"
+"solid" "6"
+"model" "models/containers/box_large_plastic.mdl"
+"forcetoenablemotion" "1"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "0 -45 0"
+"origin" "-8594.63 -2222.34 586"
+"targetname" "func_static_1"
+"solid" "6"
+"model" "models/containers/box_large_plastic.mdl"
+"forcetoenablemotion" "1"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "1.40406e-006 59.3433 -2.16305e-006"
+"origin" "-7348.92 -477.003 596.582"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "0.98919"
+"angles" "89.9558 0 -36.2377"
+"origin" "-7993.88 -1240.76 576.988"
+"targetname" "prop_physics_1"
+"spawnflags" "4"
+"model" "models/containers/can_red_soda.mdl"
+"collide_titan" "0"
+"collide_sight" "0"
+"collide_human" "0"
+"collide_bullet" "0"
+"collide_ai" "0"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "0.98919"
+"angles" "89.9558 0 -126.238"
+"origin" "-7996 -1194.28 577.489"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "0.876748"
+"angles" "89.9558 0 -134.246"
+"origin" "-7463.83 -1274.32 588.877"
+"targetname" "prop_physics_1"
+"spawnflags" "4"
+"model" "models/containers/can_red_soda.mdl"
+"collide_titan" "0"
+"collide_sight" "0"
+"collide_human" "0"
+"collide_bullet" "0"
+"collide_ai" "0"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "0.876748"
+"angles" "89.9558 0 135.754"
+"origin" "-7504.36 -1281.92 589.321"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1.19801"
+"angles" "89.9558 0 -128.72"
+"origin" "-6799.69 -346.635 581.197"
+"targetname" "prop_physics_1"
+"spawnflags" "4"
+"model" "models/containers/can_red_soda.mdl"
+"collide_titan" "0"
+"collide_sight" "0"
+"collide_human" "0"
+"collide_bullet" "0"
+"collide_ai" "0"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1.19801"
+"angles" "89.9558 0 141.28"
+"origin" "-6855.82 -351.639 581.804"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "0.892666"
+"angles" "89.9558 0 94.2158"
+"origin" "-7214.96 -435.646 576.893"
+"targetname" "prop_physics_1"
+"spawnflags" "4"
+"model" "models/containers/can_red_soda.mdl"
+"collide_titan" "0"
+"collide_sight" "0"
+"collide_human" "0"
+"collide_bullet" "0"
+"collide_ai" "0"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "0.892666"
+"angles" "89.9558 0 4.2156"
+"origin" "-7181.8 -461.404 577.346"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "89.9558 0 -70.039"
+"origin" "-6909.78 -873.816 524.998"
+"targetname" "prop_physics_1"
+"spawnflags" "4"
+"model" "models/containers/can_red_soda.mdl"
+"collide_titan" "0"
+"collide_sight" "0"
+"collide_human" "0"
+"collide_bullet" "0"
+"collide_ai" "0"
+"classname" "prop_physics"
+}
+{
+"spawnflags" "1"
+"skin" "0"
+"shadowcastdist" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"pressuredelay" "0"
+"physicsmode" "0"
+"physdamagescale" "0.1"
+"PerformanceMode" "0"
+"nodamageforces" "0"
+"minhealthdmg" "0"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"massScale" "0"
+"inertiaScale" "1.0"
+"forcetoenablemotion" "0"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"Damagetype" "0"
+"damagetoenablemotion" "0"
+"allowfunnel" "1"
+"scale" "1"
+"angles" "89.9558 0 -160.039"
+"origin" "-6937.7 -835.964 525.505"
+"targetname" "func_static_1428"
+"model" "models/containers/can_blue_soda.mdl"
+"classname" "prop_physics"
+}
+{
+"editorclass" "trigger_fw_territory"
+"origin" "-6879.19 -581.853 796"
+"wait" "0"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "1"
+"StartDisabled" "0"
+"spawnflags" "64"
+"triggerFilterUseNew" "1"
+"link_guid" "25060c9d8d9"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 -0 -0 -223.44238"
+"*trigger_brush_0_plane_1" "1 0 0 2033.6353"
+"*trigger_brush_0_plane_2" "0 -1 0 -114.55118"
+"*trigger_brush_0_plane_3" "0 1 0 2275.4695"
+"*trigger_brush_0_plane_4" "0 0 -1 296"
+"*trigger_brush_0_plane_5" "0 0 1 296"
+"*trigger_brush_0_plane_6" "0.70710683 0.70710671 0 2026.9972"
+"*trigger_brush_0_plane_7" "0.99972111 -0.023614977 0 2013.3975"
+"*trigger_brush_0_plane_8" "-0.70710683 -0.70710677 -0 -1506.9976"
+"*trigger_brush_0_plane_9" "-0.70710701 0.70710653 0 1191.0017"
+"*trigger_brush_0_plane_10" "0.70710689 0.70710677 0 2026.9973"
+"*trigger_brush_0_plane_11" "0.99972117 -0.023614977 0 2013.3977"
+"*trigger_brush_0_plane_12" "-0.70710683 -0.70710683 0 -1506.9976"
+"*trigger_brush_0_plane_13" "-0.70710707 0.70710659 0 1191.0018"
+"*trigger_brush_0_plane_14" "0.92833394 0.37174723 0 2197.5474"
+"*trigger_brush_0_plane_15" "0.37174726 -0.92833406 0 643.34802"
+"*trigger_brush_1_plane_0" "-1 -0 -0 -591.1377"
+"*trigger_brush_1_plane_1" "1 0 0 2361.7329"
+"*trigger_brush_1_plane_2" "-0 -1 -0 -889.54016"
+"*trigger_brush_1_plane_3" "0 1 0 2660.1355"
+"*trigger_brush_1_plane_4" "0 0 -1 296"
+"*trigger_brush_1_plane_5" "0 0 1 296"
+"*trigger_brush_1_plane_6" "-0.70710683 -0.70710671 -0 -2026.9973"
+"*trigger_brush_1_plane_7" "0.70710683 -0.70710671 0 768.99762"
+"*trigger_brush_1_plane_8" "0.70710677 0.70710677 0 2570.9971"
+"*trigger_brush_1_plane_9" "-0.70710677 0.70710677 0 1191.0024"
+"*trigger_brush_1_plane_10" "0.70710689 -0.70710671 0 768.99786"
+"*trigger_brush_1_plane_11" "0.70710683 0.70710683 0 2570.9976"
+"*trigger_brush_1_plane_12" "-0.70710665 0.70710689 0 1191.0029"
+"*trigger_brush_2_plane_0" "-1 -0 -0 1043.6934"
+"*trigger_brush_2_plane_1" "1 -0 -0 -446.89502"
+"*trigger_brush_2_plane_2" "0 -1 0 2660.1357"
+"*trigger_brush_2_plane_3" "0 1 0 -2094.4504"
+"*trigger_brush_2_plane_4" "0 0 -1 296"
+"*trigger_brush_2_plane_5" "0 0 1 296"
+"*trigger_brush_2_plane_6" "-0.26079348 -0.96539462 -0 2684.6282"
+"*trigger_brush_2_plane_7" "0.9750666 0.22191244 -0 -1026.0696"
+"*trigger_brush_2_plane_8" "0.35897923 0.93334556 0 -2293.9731"
+"*trigger_brush_2_plane_9" "-0.97132921 0.23773833 0 419.68182"
+"*trigger_brush_2_plane_10" "-0.26079351 -0.96539462 -0 2684.6282"
+"*trigger_brush_2_plane_11" "0.9750666 0.22191243 0 -1026.0696"
+"*trigger_brush_2_plane_12" "-0.97132933 0.23773836 0 419.68188"
+"*trigger_brush_2_plane_13" "-0.86105388 -0.50851375 0 2169.4092"
+"*trigger_brush_2_plane_14" "0.69279945 -0.72113037 -0 1608.696"
+"*trigger_brush_2_plane_15" "0.75594574 0.65463442 0 -1881.3237"
+"*trigger_brush_2_plane_16" "-0.46336862 0.88616568 0 -1418.2866"
+"*trigger_brush_3_plane_0" "-1 0 0 2361.7397"
+"*trigger_brush_3_plane_1" "1 0 0 1920.4985"
+"*trigger_brush_3_plane_2" "0 -1 0 2250.0139"
+"*trigger_brush_3_plane_3" "0 1 0 1907.7739"
+"*trigger_brush_3_plane_4" "0 0 -1 296"
+"*trigger_brush_3_plane_5" "0 0 1 296"
+"*trigger_brush_3_plane_6" "-0.35897923 -0.93334556 -0 2293.9731"
+"*trigger_brush_3_plane_7" "0.70710677 0.70710677 -0 1506.9974"
+"*trigger_brush_3_plane_8" "0.70710677 -0.70710683 0 1208.9976"
+"*trigger_brush_3_plane_9" "-0.70710689 -0.70710665 0 2149.0024"
+"*trigger_brush_3_plane_10" "-0.70710683 0.70710677 0 1191.0022"
+"*trigger_brush_3_plane_11" "0.70710683 0.70710683 0 1506.9976"
+"*trigger_brush_3_plane_12" "0.70710671 -0.70710683 0 1208.9976"
+"*trigger_brush_3_plane_13" "-0.70710695 -0.70710671 0 2149.0027"
+"*trigger_brush_3_plane_14" "-0.70710689 0.70710677 0 1191.0023"
+"*trigger_brush_3_plane_15" "0.2075914 -0.97821563 0 2088.8511"
+"*trigger_bounds_mins" "-2361.7397 -2660.1357 -296"
+"*trigger_bounds_maxs" "2361.7329 2660.1355 296"
+}
+{
+"model" "*1"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-7273.76 -262.241 830"
+"startDisconnected" "0"
+"link_guid" "250c09f3be6"
+"classname" "func_brush"
+}
+{
+"editorclass" "info_fw_team_tower"
+"teamnumber" "3"
+"spawnflags" "0"
+"model" "models/props/generator_coop/generator_coop_medium.mdl"
+"scale" "1"
+"angles" "0 45.1013 0"
+"origin" "-7274.49 -264.029 640"
+"radius" "1"
+"link_to_guid_1" "250c09f3be6"
+"link_to_guid_0" "25060c9d8d9"
+"link_guid" "250f840be54"
+"classname" "info_target"
+}
+{
+"spawnflags" "0"
+"scale" "1"
+"angles" "16.3574 55.7916 -1.02973e-015"
+"origin" "-9592.83 -5363.1 1083.69"
+"targetname" "spec_cam2"
+"target" "escape_node2"
+"classname" "info_target"
+}
+{
+"spawnflags" "0"
+"scale" "1"
+"angles" "0 32.194 0"
+"origin" "-9424.58 -4026.32 688"
+"targetname" "escape_node2"
+"classname" "info_target"
+}
+{
+"spawnflags" "0"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-640 1856 704"
+"targetname" "escape_node3"
+"classname" "info_target"
+}
+{
+"spawnflags" "0"
+"scale" "1"
+"angles" "0.0015841 -78.187 0.31054"
+"origin" "-1510.63 2845.77 1260.03"
+"targetname" "spec_cam3"
+"target" "escape_node3"
+"classname" "info_target"
+}
+{
+"spawnflags" "0"
+"scale" "1"
+"angles" "0 129.018 0"
+"origin" "-1449.94 395.183 680"
+"targetname" "escape_node1"
+"classname" "info_target"
+}
+{
+"spawnflags" "0"
+"scale" "1"
+"angles" "0 -50.606 0"
+"origin" "-2105.68 1100.57 1024"
+"targetname" "spec_cam1"
+"target" "escape_node1"
+"classname" "info_target"
+}
+{
+"origin" "-8108 -3596 784"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "nonphaseshift"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "3"
+"triggerFilterUseNew" "1"
+"targetname" "trigger_hardpoint_A1"
+"classname" "trigger_capture_point"
+"*trigger_brush_0_plane_0" "-1 0 0 948"
+"*trigger_brush_0_plane_1" "1 0 0 948"
+"*trigger_brush_0_plane_2" "0 -1 0 764"
+"*trigger_brush_0_plane_3" "0 1 0 764"
+"*trigger_brush_0_plane_4" "-0 0 -1 304"
+"*trigger_brush_0_plane_5" "-0 -0 1 304"
+"*trigger_brush_0_plane_6" "-0.86514002 -0.50153041 -0 757.96295"
+"*trigger_brush_0_plane_7" "0.95562351 -0.29459071 0 817.55389"
+"*trigger_brush_0_plane_8" "0.26159054 0.96517897 0 537.5415"
+"*trigger_brush_0_plane_9" "-0.25997347 -0.96561575 -0 576.54688"
+"*trigger_brush_0_plane_10" "-0.96106929 0.27630743 0 945.35583"
+"*trigger_brush_0_plane_11" "-0.86513996 -0.50153041 0 757.96295"
+"*trigger_brush_0_plane_12" "-0.2599735 -0.96561587 -0 576.54694"
+"*trigger_brush_0_plane_13" "-0.96106935 0.27630743 0 945.3559"
+"*trigger_brush_0_plane_14" "0.48327103 -0.87547076 0 968.48773"
+"*trigger_brush_0_plane_15" "0.87587523 0.48253766 0 975.091"
+"*trigger_brush_0_plane_16" "-0.49087024 0.87123269 0 1040.6466"
+"*trigger_bounds_mins" "-948 -764 -304"
+"*trigger_bounds_maxs" "948 763.99994 304"
+}
+{
+"origin" "-1056 184 832"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "nonphaseshift"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "3"
+"triggerFilterUseNew" "1"
+"targetname" "trigger_hardpoint_C1"
+"classname" "trigger_capture_point"
+"*trigger_brush_0_plane_0" "-1 -0 -0 704"
+"*trigger_brush_0_plane_1" "1 -0 -0 704"
+"*trigger_brush_0_plane_2" "-0 -1 -0 824"
+"*trigger_brush_0_plane_3" "0 1 0 824"
+"*trigger_brush_0_plane_4" "0 0 -1 384"
+"*trigger_brush_0_plane_5" "0 0 1 384"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 1080.4592"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 0 1080.4592"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 1080.4592"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 1080.4592"
+"*trigger_bounds_mins" "-704 -824 -384"
+"*trigger_bounds_maxs" "704 824 384"
+}
+{
+"origin" "-4552 -1864 768"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "nonphaseshift"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "3"
+"triggerFilterUseNew" "1"
+"targetname" "trigger_hardpoint_B1"
+"classname" "trigger_capture_point"
+"*trigger_brush_0_plane_0" "-1 -0 -0 376"
+"*trigger_brush_0_plane_1" "1 0 0 376"
+"*trigger_brush_0_plane_2" "-0 -1 -0 520"
+"*trigger_brush_0_plane_3" "0 1 0 520"
+"*trigger_brush_0_plane_4" "-0 0 -1 96"
+"*trigger_brush_0_plane_5" "-0 -0 1 96"
+"*trigger_brush_0_plane_6" "0 -0.0033803894 -0.99999428 94.241646"
+"*trigger_brush_0_plane_7" "-0.70710677 0.70710677 0 633.56763"
+"*trigger_brush_0_plane_8" "-0.70710677 -0.70710677 -0 633.56763"
+"*trigger_brush_0_plane_9" "0.70710677 -0.70710677 0 633.56763"
+"*trigger_brush_0_plane_10" "0.70710677 0.70710677 0 633.56763"
+"*trigger_bounds_mins" "-376 -520 -96"
+"*trigger_bounds_maxs" "376 520 96"
+}
+{
+"editorclass" "info_bomb_mode_pilot_defuse_point"
+"spawnflags" "0"
+"origin" "-6258.77 -506.916 588"
+"teamnumber" "3"
+"classname" "info_target"
+}
+{
+"editorclass" "info_bomb_mode_pilot_defuse_point"
+"spawnflags" "0"
+"origin" "-16 -2528 528"
+"teamnumber" "2"
+"classname" "info_target"
+}
+{
+"editorclass" "info_bomb_mode_bomb"
+"spawnflags" "0"
+"origin" "-3733.81 -73.9383 553.108"
+"classname" "info_target"
+}
+{
+"editorclass" "info_bomb_mode_bomb"
+"spawnflags" "0"
+"origin" "-4263.48 -4642.26 652.991"
+"classname" "info_target"
+}
+{
+"editorclass" "info_bomb_mode_base"
+"spawnflags" "0"
+"origin" "-759.944 -2094.34 519.999"
+"teamnumber" "2"
+"classname" "info_target"
+}
+{
+"editorclass" "info_bomb_mode_base"
+"spawnflags" "0"
+"origin" "-6937.51 -1231.18 523.996"
+"teamnumber" "3"
+"classname" "info_target"
+}
+{
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-11520 10880 10536"
+"script_name" "menu_camera_target"
+"classname" "info_target_clientside"
+}
+{
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-11520 11136 10496"
+"script_name" "menu_scene_ref"
+"classname" "info_target_clientside"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"origin" "-6576 -6864 -104"
+"targetname" "at_hardpoint_blackbox"
+"link_to_guid_0" "27528a1afab"
+"link_guid" "2758215f435"
+"hardpointGroup" "p"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"gamemode_at" "1"
+"classname" "info_hardpoint"
+}
+{
+"origin" "-6576 -6864 -40"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"triggerFilterUseNew" "1"
+"link_guid" "27528a1afab"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 128"
+"*trigger_brush_0_plane_1" "1 -0 -0 128"
+"*trigger_brush_0_plane_2" "-0 -1 -0 128"
+"*trigger_brush_0_plane_3" "0 1 0 128"
+"*trigger_brush_0_plane_4" "0 0 -1 128"
+"*trigger_brush_0_plane_5" "-0 -0 1 128"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 181.01933"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 0 181.01933"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 181.01933"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 181.01933"
+"*trigger_bounds_mins" "-128 -128 -128"
+"*trigger_bounds_maxs" "128 128 128"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"origin" "-6256 -6864 -104"
+"targetname" "at_hardpoint_blackbox1"
+"link_to_guid_0" "2759b6c10ad"
+"link_guid" "275ca0c34a7"
+"hardpointGroup" "p"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"gamemode_at" "1"
+"classname" "info_hardpoint"
+}
+{
+"origin" "-6256 -6864 -40"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"triggerFilterUseNew" "1"
+"link_guid" "2759b6c10ad"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 128"
+"*trigger_brush_0_plane_1" "1 -0 -0 128"
+"*trigger_brush_0_plane_2" "-0 -1 -0 128"
+"*trigger_brush_0_plane_3" "0 1 0 128"
+"*trigger_brush_0_plane_4" "0 0 -1 128"
+"*trigger_brush_0_plane_5" "-0 -0 1 128"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 181.01933"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 0 181.01933"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 181.01933"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 181.01933"
+"*trigger_bounds_mins" "-128 -128 -128"
+"*trigger_bounds_maxs" "128 128 128"
+}
+{
+"origin" "-6256 -7184 -40"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"triggerFilterUseNew" "1"
+"link_guid" "275da28a532"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 128"
+"*trigger_brush_0_plane_1" "1 -0 -0 128"
+"*trigger_brush_0_plane_2" "-0 -1 -0 128"
+"*trigger_brush_0_plane_3" "0 1 0 128"
+"*trigger_brush_0_plane_4" "0 0 -1 128"
+"*trigger_brush_0_plane_5" "-0 -0 1 128"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 181.01933"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 0 181.01933"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 181.01933"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 181.01933"
+"*trigger_bounds_mins" "-128 -128 -128"
+"*trigger_bounds_maxs" "128 128 128"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"origin" "-6256 -7184 -104"
+"targetname" "at_hardpoint_blackbox2"
+"link_to_guid_0" "275da28a532"
+"link_guid" "275edb69c4d"
+"hardpointGroup" "p"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"gamemode_at" "1"
+"classname" "info_hardpoint"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"origin" "-6576 -7184 -104"
+"targetname" "at_hardpoint_blackbox3"
+"link_to_guid_0" "275cd46eda5"
+"link_guid" "2751884002b"
+"hardpointGroup" "p"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"gamemode_at" "1"
+"classname" "info_hardpoint"
+}
+{
+"origin" "-6576 -7184 -40"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"triggerFilterUseNew" "1"
+"link_guid" "275cd46eda5"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 128"
+"*trigger_brush_0_plane_1" "1 -0 -0 128"
+"*trigger_brush_0_plane_2" "-0 -1 -0 128"
+"*trigger_brush_0_plane_3" "0 1 0 128"
+"*trigger_brush_0_plane_4" "0 0 -1 128"
+"*trigger_brush_0_plane_5" "-0 -0 1 128"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 181.01933"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 0 181.01933"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 181.01933"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 181.01933"
+"*trigger_bounds_mins" "-128 -128 -128"
+"*trigger_bounds_maxs" "128 128 128"
+}
+{
+"origin" "-5840 -6864 -40"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"triggerFilterUseNew" "1"
+"link_guid" "275e36af485"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 -0 -0 192"
+"*trigger_brush_0_plane_1" "1 -0 0 192"
+"*trigger_brush_0_plane_2" "-0 -1 -0 192"
+"*trigger_brush_0_plane_3" "0 1 0 192"
+"*trigger_brush_0_plane_4" "0 0 -1 128"
+"*trigger_brush_0_plane_5" "-0 -0 1 128"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 271.52899"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 -0 271.52899"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 271.52899"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 271.52899"
+"*trigger_bounds_mins" "-192 -192 -128"
+"*trigger_bounds_maxs" "192 192 128"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"origin" "-5840 -6864 -104"
+"targetname" "at_hardpoint_blackbox4"
+"link_to_guid_0" "275e36af485"
+"link_guid" "275fa2f4f04"
+"hardpointGroup" "s"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"gamemode_at" "1"
+"classname" "info_hardpoint"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"origin" "-5392 -6864 -104"
+"targetname" "at_hardpoint_blackbox5"
+"link_to_guid_0" "275ddde673b"
+"link_guid" "2753df97a78"
+"hardpointGroup" "s"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"gamemode_at" "1"
+"classname" "info_hardpoint"
+}
+{
+"origin" "-5392 -6864 -40"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"triggerFilterUseNew" "1"
+"link_guid" "275ddde673b"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 -0 -0 192"
+"*trigger_brush_0_plane_1" "1 -0 0 192"
+"*trigger_brush_0_plane_2" "-0 -1 -0 192"
+"*trigger_brush_0_plane_3" "0 1 0 192"
+"*trigger_brush_0_plane_4" "0 0 -1 128"
+"*trigger_brush_0_plane_5" "-0 -0 1 128"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 271.52899"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 -0 271.52899"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 271.52899"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 271.52899"
+"*trigger_bounds_mins" "-192 -192 -128"
+"*trigger_bounds_maxs" "192 192 128"
+}
+{
+"origin" "-5392 -7312 -40"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"triggerFilterUseNew" "1"
+"link_guid" "275ac23c51f"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 -0 -0 192"
+"*trigger_brush_0_plane_1" "1 -0 0 192"
+"*trigger_brush_0_plane_2" "-0 -1 -0 192"
+"*trigger_brush_0_plane_3" "0 1 0 192"
+"*trigger_brush_0_plane_4" "0 0 -1 128"
+"*trigger_brush_0_plane_5" "-0 -0 1 128"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 271.52899"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 -0 271.52899"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 271.52899"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 271.52899"
+"*trigger_bounds_mins" "-192 -192 -128"
+"*trigger_bounds_maxs" "192 192 128"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"origin" "-5392 -7312 -104"
+"targetname" "at_hardpoint_blackbox6"
+"link_to_guid_0" "275ac23c51f"
+"link_guid" "275cbcacf82"
+"hardpointGroup" "s"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"gamemode_at" "1"
+"classname" "info_hardpoint"
+}
+{
+"model" "models/communication/terminal_com_station_tall.mdl"
+"hardpointName" "random"
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"origin" "-5840 -7312 -104"
+"targetname" "at_hardpoint_blackbox7"
+"link_to_guid_0" "2759e570221"
+"link_guid" "27590ba1b72"
+"hardpointGroup" "s"
+"gamemode_sur" "0"
+"gamemode_lh" "0"
+"gamemode_cp" "0"
+"gamemode_at" "1"
+"classname" "info_hardpoint"
+}
+{
+"origin" "-5840 -7312 -40"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"triggerFilterUseNew" "1"
+"link_guid" "2759e570221"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 -0 -0 192"
+"*trigger_brush_0_plane_1" "1 -0 0 192"
+"*trigger_brush_0_plane_2" "-0 -1 -0 192"
+"*trigger_brush_0_plane_3" "0 1 0 192"
+"*trigger_brush_0_plane_4" "0 0 -1 128"
+"*trigger_brush_0_plane_5" "-0 -0 1 128"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 271.52899"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 -0 271.52899"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 271.52899"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 271.52899"
+"*trigger_bounds_mins" "-192 -192 -128"
+"*trigger_bounds_maxs" "192 192 128"
+}
+{
+"origin" "-5009.8 -4210.14 671.526"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_1_easy" "1"
+"damagemodel" "0"
+"damagecap" "20"
+"triggerFilterUseNew" "1"
+"mobility_2_normal" "0"
+"damageSourceName" "burn"
+"damage" "10"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 21.77832"
+"*trigger_brush_0_plane_1" "1 0 0 21.771973"
+"*trigger_brush_0_plane_2" "0 -1 0 20.042969"
+"*trigger_brush_0_plane_3" "0 1 0 20.052246"
+"*trigger_brush_0_plane_4" "0.00016665296 6.251569e-005 -1 18.119028"
+"*trigger_brush_0_plane_5" "-0.00016378085 -5.835561e-005 1 18.118982"
+"*trigger_brush_0_plane_6" "0.17627637 -0.98434073 -4.0189021e-005 19.384438"
+"*trigger_brush_0_plane_7" "0.98433661 0.17629911 0.00015777189 20.173597"
+"*trigger_brush_0_plane_8" "-0.17627142 0.98434162 2.4551438e-005 19.05201"
+"*trigger_brush_0_plane_9" "-0.98956627 0.14407825 -0.00013696289 20.649738"
+"*trigger_brush_0_plane_10" "0.82067442 -0.57139605 9.4199539e-005 21.93189"
+"*trigger_brush_0_plane_11" "-0.57138246 -0.8206839 -0.0001399785 17.561274"
+"*trigger_brush_0_plane_12" "-0.82069337 0.57136887 -0.00010190317 20.345854"
+"*trigger_brush_0_plane_13" "0.57139683 0.82067388 0.00014767883 18.677172"
+"*trigger_brush_0_plane_14" "0.17627637 -0.98434073 0 19.385166"
+"*trigger_brush_0_plane_15" "0.17627141 -0.98434162 0 19.383736"
+"*trigger_brush_0_plane_16" "0.98433489 0.17630903 0 20.170713"
+"*trigger_brush_0_plane_17" "0.98433667 0.17629911 -0 20.176456"
+"*trigger_brush_0_plane_18" "-0.17626645 0.98434252 0 19.052406"
+"*trigger_brush_0_plane_19" "-0.17627141 0.98434162 0 19.051565"
+"*trigger_brush_0_plane_20" "-0.98956412 0.14409372 0 20.647114"
+"*trigger_brush_0_plane_21" "-0.98956639 0.14407825 0 20.652224"
+"*trigger_brush_0_plane_22" "0.8206687 -0.57140434 0 21.930241"
+"*trigger_brush_0_plane_23" "0.82067454 -0.57139611 0 21.933601"
+"*trigger_brush_0_plane_24" "-0.57138246 -0.82068402 -0 17.563808"
+"*trigger_brush_0_plane_25" "-0.82070088 0.57135814 0 20.343922"
+"*trigger_brush_0_plane_26" "-0.82069343 0.57136881 0 20.3477"
+"*trigger_brush_0_plane_27" "0.57139134 0.82067776 -0 18.679781"
+"*trigger_brush_0_plane_28" "0.57140237 0.82067001 0 18.674438"
+"*trigger_brush_0_plane_29" "-0.91751391 -0.39770368 -0.00016278407 22.460146"
+"*trigger_bounds_mins" "-21.77832 -20.042969 -18.123047"
+"*trigger_bounds_maxs" "21.771973 20.052345 18.12262"
+}
+{
+"origin" "-4979.47 -4239.79 669.121"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_1_easy" "1"
+"damagemodel" "0"
+"damagecap" "20"
+"triggerFilterUseNew" "1"
+"mobility_2_normal" "0"
+"damageSourceName" "burn"
+"damage" "10"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 22.675781"
+"*trigger_brush_0_plane_1" "1 0 0 22.670898"
+"*trigger_brush_0_plane_2" "0 -1 0 21.022461"
+"*trigger_brush_0_plane_3" "0 1 0 21.017578"
+"*trigger_brush_0_plane_4" "0 0 -1 19.994141"
+"*trigger_brush_0_plane_5" "0 0 1 19.994568"
+"*trigger_brush_0_plane_6" "-0.79023558 0.61255193 -0.017547544 19.368935"
+"*trigger_brush_0_plane_7" "-0.61217505 -0.7877965 0.067958973 19.915857"
+"*trigger_brush_0_plane_8" "0.79024911 -0.61253446 0.017546039 19.839951"
+"*trigger_brush_0_plane_9" "0.83065367 0.55366367 -0.058915287 21.821468"
+"*trigger_brush_0_plane_10" "0.0277991 0.064444266 0.99753404 18.568161"
+"*trigger_brush_0_plane_11" "-0.12590383 0.99019819 -0.060462583 18.096422"
+"*trigger_brush_0_plane_12" "0.9916538 0.12390357 -0.035645492 21.509848"
+"*trigger_brush_0_plane_13" "-0.027795117 -0.064435109 -0.99753475 18.398573"
+"*trigger_brush_0_plane_14" "0.12591469 -0.99019766 0.060449135 18.870047"
+"*trigger_brush_0_plane_15" "-0.99164891 -0.12394232 0.035647802 21.617529"
+"*trigger_brush_0_plane_16" "-0.11031668 0 -0.99389642 20.323952"
+"*trigger_brush_0_plane_17" "0 0.085939594 0.99630034 19.237625"
+"*trigger_brush_0_plane_18" "-0.78962427 0.61359054 0 19.692518"
+"*trigger_brush_0_plane_19" "-0.99961174 0 0.027862126 22.167356"
+"*trigger_brush_0_plane_20" "0 0.028639561 0.99958974 19.452505"
+"*trigger_brush_0_plane_21" "-0.02220404 0 0.99975342 20.130083"
+"*trigger_brush_0_plane_22" "0 -0.99792051 0.064456455 19.89064"
+"*trigger_brush_0_plane_23" "-0.61264962 -0.79035473 0 21.120331"
+"*trigger_brush_0_plane_24" "0 -0.085925035 -0.99630165 19.084589"
+"*trigger_brush_0_plane_25" "0.78964102 -0.61356914 0 20.160496"
+"*trigger_brush_0_plane_26" "0.11033292 0 0.9938947 20.542135"
+"*trigger_brush_0_plane_27" "0.99961174 0 -0.027862221 22.156351"
+"*trigger_brush_0_plane_28" "0 -0.045882083 -0.99894691 19.118061"
+"*trigger_brush_0_plane_29" "0.068414442 0 -0.99765694 20.797762"
+"*trigger_brush_0_plane_30" "0.83084786 0.5564996 0 22.878237"
+"*trigger_brush_0_plane_31" "0 0.99791962 -0.064470463 19.885517"
+"*trigger_brush_0_plane_32" "-0 0.060945805 0.99814111 19.166637"
+"*trigger_brush_0_plane_33" "-0.1239908 0.99228328 0 19.186661"
+"*trigger_brush_0_plane_34" "0.99201429 0.12612571 -0 22.159206"
+"*trigger_brush_0_plane_35" "0.035918012 -0 0.99935478 19.754478"
+"*trigger_brush_0_plane_36" "-0.035910171 0 -0.99935496 19.534838"
+"*trigger_brush_0_plane_37" "0 -0.060938403 -0.99814153 18.994009"
+"*trigger_brush_0_plane_38" "-0.99200934 -0.12616478 -0 22.260799"
+"*trigger_brush_0_plane_39" "0.12399895 -0.99228233 0 19.948387"
+"*trigger_brush_0_plane_40" "0.41424116 0.90745842 -0.070168488 23.463116"
+"*trigger_bounds_mins" "-22.675793 -21.022488 -19.994152"
+"*trigger_bounds_maxs" "22.67091 21.017591 19.994577"
+}
+{
+"origin" "-6630.51 -3874.89 545.789"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_1_easy" "1"
+"damagemodel" "0"
+"damagecap" "20"
+"triggerFilterUseNew" "1"
+"mobility_2_normal" "0"
+"damageSourceName" "burn"
+"damage" "10"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 23.161621"
+"*trigger_brush_0_plane_1" "1 0 0 23.152832"
+"*trigger_brush_0_plane_2" "0 -1 0 18.999268"
+"*trigger_brush_0_plane_3" "0 1 0 18.994873"
+"*trigger_brush_0_plane_4" "0 0 -1 20.728516"
+"*trigger_brush_0_plane_5" "0 0 1 20.728699"
+"*trigger_brush_0_plane_6" "0.072347663 -0.99576795 -0.056674022 18.008764"
+"*trigger_brush_0_plane_7" "0.97601706 0.082389019 -0.20150122 19.375139"
+"*trigger_brush_0_plane_8" "-0.07234402 0.99576789 0.05668062 17.779463"
+"*trigger_brush_0_plane_9" "-0.94880831 0.23674069 0.20908532 18.678394"
+"*trigger_brush_0_plane_10" "0.20531863 -0.040751129 0.97784638 17.118582"
+"*trigger_brush_0_plane_11" "-0.63899124 -0.76236641 0.10240906 15.904586"
+"*trigger_brush_0_plane_12" "-0.74129868 0.64586955 0.1825617 18.554268"
+"*trigger_brush_0_plane_13" "-0.20530531 0.040738355 -0.97784972 16.622938"
+"*trigger_brush_0_plane_14" "0.63898653 0.76237053 -0.10240788 17.836845"
+"*trigger_brush_0_plane_15" "0.74129188 -0.6458807 -0.18254977 20.810663"
+"*trigger_brush_0_plane_16" "-0.20217523 -0 -0.97934932 17.345173"
+"*trigger_brush_0_plane_17" "0 -0.99913335 -0.041623548 18.290937"
+"*trigger_brush_0_plane_18" "0.084106304 -0.99645674 0 18.969072"
+"*trigger_brush_0_plane_19" "0.97865915 0 -0.20549038 20.138351"
+"*trigger_brush_0_plane_20" "0.99737042 0.072472855 0 22.431414"
+"*trigger_brush_0_plane_21" "0 0.05682518 -0.99838412 20.255196"
+"*trigger_brush_0_plane_22" "-0.084103674 0.99645692 0 18.711605"
+"*trigger_brush_0_plane_23" "0 0.99913311 0.041630547 18.28121"
+"*trigger_brush_0_plane_24" "0.20219001 -0 0.97934633 17.831245"
+"*trigger_brush_0_plane_25" "-0.97865975 0 0.20548709 20.146931"
+"*trigger_brush_0_plane_26" "-0.9707675 0.24002215 0 21.741335"
+"*trigger_brush_0_plane_27" "0 -0.27201349 0.96229345 21.163248"
+"*trigger_brush_0_plane_28" "-0 0.13312577 0.99109912 21.450081"
+"*trigger_brush_0_plane_29" "0.15823317 0 0.98740178 18.252949"
+"*trigger_brush_0_plane_30" "0.23913115 0 0.97098726 18.046215"
+"*trigger_brush_0_plane_31" "0.65689623 0.75398088 -0 19.52286"
+"*trigger_brush_0_plane_32" "0.7663759 -0.6423924 0 23.598701"
+"*trigger_brush_0_plane_33" "-0.23910885 -0 -0.97099274 17.447922"
+"*trigger_brush_0_plane_34" "-0.65690094 -0.75397676 0 17.549532"
+"*trigger_brush_0_plane_35" "-0.76638836 0.64237756 0 21.289915"
+"*trigger_brush_0_plane_36" "-0 -0.13313271 -0.99109828 21.574442"
+"*trigger_brush_0_plane_37" "-0.15824135 0 -0.98740047 17.899864"
+"*trigger_brush_0_plane_38" "0 0.27198976 -0.96230012 21.282295"
+"*trigger_brush_0_plane_39" "-0.93328655 -0.30895549 0.18309207 20.327454"
+"*trigger_bounds_mins" "-23.161669 -18.999268 -20.728502"
+"*trigger_bounds_maxs" "23.152775 18.994848 20.728708"
+}
+{
+"origin" "-6752.38 -3850.29 591.335"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_1_easy" "1"
+"damagemodel" "0"
+"damagecap" "20"
+"triggerFilterUseNew" "1"
+"mobility_2_normal" "0"
+"damageSourceName" "burn"
+"damage" "10"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 29.717285"
+"*trigger_brush_0_plane_1" "1 0 0 29.714844"
+"*trigger_brush_0_plane_2" "0 -1 0 27.994873"
+"*trigger_brush_0_plane_3" "0 1 0 27.990967"
+"*trigger_brush_0_plane_4" "0 0 -1 28.347107"
+"*trigger_brush_0_plane_5" "0 0 1 28.34668"
+"*trigger_brush_0_plane_6" "-0.35651442 0.88672775 0.29429817 22.655819"
+"*trigger_brush_0_plane_7" "-0.90868795 -0.40231937 0.11146893 22.658901"
+"*trigger_brush_0_plane_8" "0.35651633 -0.88672686 -0.29429838 22.658344"
+"*trigger_brush_0_plane_9" "0.97479039 0.10128918 -0.19880684 25.473263"
+"*trigger_brush_0_plane_10" "0.21724674 -0.22769055 0.9491896 21.361078"
+"*trigger_brush_0_plane_11" "0.39044589 0.91150326 0.129282 21.358908"
+"*trigger_brush_0_plane_12" "0.89463139 -0.34251106 -0.28691611 24.921045"
+"*trigger_brush_0_plane_13" "-0.21725486 0.22769006 -0.94918787 21.361015"
+"*trigger_brush_0_plane_14" "-0.3904449 -0.9115029 -0.1292876 21.363583"
+"*trigger_brush_0_plane_15" "-0.89462113 0.3425425 0.2869105 24.921858"
+"*trigger_brush_0_plane_16" "-0.40486702 0.9143756 0 27.965538"
+"*trigger_brush_0_plane_17" "0 0.97241479 0.23325837 23.848343"
+"*trigger_brush_0_plane_18" "0.12175279 -0 0.99256045 26.3246"
+"*trigger_brush_0_plane_19" "-0.92782265 -0.37302157 0 24.995735"
+"*trigger_brush_0_plane_20" "-0.97479403 0 0.22310717 25.834534"
+"*trigger_brush_0_plane_21" "0 -0.31499946 0.94909179 26.044333"
+"*trigger_brush_0_plane_22" "-0.12176256 -0 -0.99255919 26.325142"
+"*trigger_brush_0_plane_23" "0 -0.97241485 -0.23325837 23.8522"
+"*trigger_brush_0_plane_24" "0.40485916 -0.91437912 0 27.967974"
+"*trigger_brush_0_plane_25" "0.97479415 0 -0.22310589 25.83219"
+"*trigger_brush_0_plane_26" "0.99862283 0.052462563 0 29.311333"
+"*trigger_brush_0_plane_27" "0 0.2442729 -0.96970654 26.390877"
+"*trigger_brush_0_plane_28" "-0.35755318 -0.93389279 0 24.051094"
+"*trigger_brush_0_plane_29" "0 -0.14042859 0.99009079 26.638908"
+"*trigger_brush_0_plane_30" "0.30539426 0 0.95222604 25.900644"
+"*trigger_brush_0_plane_31" "0.91922188 -0.39373985 0 30.03582"
+"*trigger_brush_0_plane_32" "0.35755575 0.93389171 -0 24.04635"
+"*trigger_brush_0_plane_33" "0 0.14043257 -0.99009031 26.638762"
+"*trigger_brush_0_plane_34" "-0.3053968 0 -0.95222515 25.901608"
+"*trigger_brush_0_plane_35" "-0.91921216 0.39376283 0 30.036396"
+"*trigger_brush_0_plane_36" "0.80246222 0.59530187 -0.040865496 27.527145"
+"*trigger_bounds_mins" "-29.717148 -27.994802 -28.347107"
+"*trigger_bounds_maxs" "29.714777 27.990847 28.34668"
+}
+{
+"origin" "-6863.43 -3565.73 649.505"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_1_easy" "1"
+"damagemodel" "0"
+"damagecap" "20"
+"triggerFilterUseNew" "1"
+"mobility_2_normal" "0"
+"damageSourceName" "burn"
+"damage" "10"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 22.392578"
+"*trigger_brush_0_plane_1" "1 0 0 22.38623"
+"*trigger_brush_0_plane_2" "0 -1 0 23.695801"
+"*trigger_brush_0_plane_3" "0 1 0 23.701904"
+"*trigger_brush_0_plane_4" "0 0 -1 22.756958"
+"*trigger_brush_0_plane_5" "0 0 1 22.756592"
+"*trigger_brush_0_plane_6" "-0.79363966 0.59335631 0.13440391 19.363192"
+"*trigger_brush_0_plane_7" "-0.60828322 -0.76986647 -0.19312474 19.924692"
+"*trigger_brush_0_plane_8" "0.79365343 -0.59333885 -0.13439952 19.84547"
+"*trigger_brush_0_plane_9" "0.82803267 0.54273474 0.14071582 21.814674"
+"*trigger_brush_0_plane_10" "-0.011122293 -0.23502477 0.97192574 18.448565"
+"*trigger_brush_0_plane_11" "-0.13108115 0.96393937 0.23160015 18.086199"
+"*trigger_brush_0_plane_12" "0.99130905 0.12482663 0.041529257 21.507544"
+"*trigger_brush_0_plane_13" "0.011131484 0.23503047 -0.97192425 18.517982"
+"*trigger_brush_0_plane_14" "0.13107763 -0.96394128 -0.23159409 18.880201"
+"*trigger_brush_0_plane_15" "-0.99130905 -0.12482665 -0.04152919 21.619696"
+"*trigger_brush_0_plane_16" "-0.78463531 0.61995769 0 21.717289"
+"*trigger_brush_0_plane_17" "-0.3026042 0 0.9531163 24.282679"
+"*trigger_brush_0_plane_18" "0 0.22091037 -0.97529411 18.879345"
+"*trigger_brush_0_plane_19" "-0.16696684 -0 -0.98596251 23.528826"
+"*trigger_brush_0_plane_20" "-0.59878683 -0.80090845 -0 23.1381"
+"*trigger_brush_0_plane_21" "-0 -0.97198671 -0.23503631 19.936106"
+"*trigger_brush_0_plane_22" "0.78464919 -0.61994004 0 22.185463"
+"*trigger_brush_0_plane_23" "0.30263686 0 -0.95310599 24.525101"
+"*trigger_brush_0_plane_24" "0.31883568 -0 0.94781005 25.59812"
+"*trigger_brush_0_plane_25" "-0 0.97198439 0.23504555 19.941891"
+"*trigger_brush_0_plane_26" "0.82108754 0.57080221 -0 24.242928"
+"*trigger_brush_0_plane_27" "-0.99087983 -0.13474874 0 22.387548"
+"*trigger_brush_0_plane_28" "-0.041856475 0 0.99912369 22.207701"
+"*trigger_brush_0_plane_29" "0.12492958 -0.99216563 0 22.642241"
+"*trigger_brush_0_plane_30" "-0.12493286 0.99216515 0 21.886036"
+"*trigger_brush_0_plane_31" "0.99087977 0.13474873 -0 22.278454"
+"*trigger_brush_0_plane_32" "0.04186533 0 -0.99912328 22.463369"
+"*trigger_brush_0_plane_33" "0.40965781 0.88560075 0.21884184 23.453144"
+"*trigger_bounds_mins" "-22.392578 -23.695826 -22.756931"
+"*trigger_bounds_maxs" "22.38623 23.701887 22.756578"
+}
+{
+"origin" "-5083.35 -3813.92 658.865"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_1_easy" "1"
+"damagemodel" "0"
+"damagecap" "20"
+"triggerFilterUseNew" "1"
+"mobility_2_normal" "0"
+"damageSourceName" "burn"
+"damage" "10"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 22.353027"
+"*trigger_brush_0_plane_1" "1 0 0 22.356445"
+"*trigger_brush_0_plane_2" "0 -1 0 20.129639"
+"*trigger_brush_0_plane_3" "0 1 0 20.134277"
+"*trigger_brush_0_plane_4" "0 0 -1 20.002502"
+"*trigger_brush_0_plane_5" "0 0 1 20.002197"
+"*trigger_brush_0_plane_6" "0.092027478 -0.99034268 -0.10369346 18.011898"
+"*trigger_brush_0_plane_7" "0.98560303 0.075766191 0.15114939 19.300398"
+"*trigger_brush_0_plane_8" "-0.092014894 0.99034363 0.10369541 17.776217"
+"*trigger_brush_0_plane_9" "-0.96412814 0.24129748 -0.11060037 18.7479"
+"*trigger_brush_0_plane_10" "-0.14183062 -0.11611505 0.98305714 16.76276"
+"*trigger_brush_0_plane_11" "-0.63186896 -0.75383621 -0.18020141 15.959561"
+"*trigger_brush_0_plane_12" "-0.76200849 0.64669693 -0.03355841 18.604645"
+"*trigger_brush_0_plane_13" "0.14184251 0.11611181 -0.98305583 16.9785"
+"*trigger_brush_0_plane_14" "0.63186169 0.75384116 0.18020649 17.781702"
+"*trigger_brush_0_plane_15" "0.76199979 -0.6467073 0.033555906 20.760326"
+"*trigger_brush_0_plane_16" "0 -0.99309695 -0.11729673 18.357685"
+"*trigger_brush_0_plane_17" "0.07664188 -0.99705875 0 19.670906"
+"*trigger_brush_0_plane_18" "0.15159363 0 -0.9884429 18.960403"
+"*trigger_brush_0_plane_19" "0.9897514 -0 0.14280061 20.011522"
+"*trigger_brush_0_plane_20" "0 -0.10413853 0.9945628 19.340891"
+"*trigger_brush_0_plane_21" "0.99570972 0.092532285 -0 21.656448"
+"*trigger_brush_0_plane_22" "-0.076628812 0.9970597 0 19.459202"
+"*trigger_brush_0_plane_23" "0 0.99309695 0.11729673 18.384413"
+"*trigger_brush_0_plane_24" "-0.15158319 0 0.98844451 18.718756"
+"*trigger_brush_0_plane_25" "-0.98975176 0 -0.14279857 20.243675"
+"*trigger_brush_0_plane_26" "0 0.14999454 -0.9886868 19.526537"
+"*trigger_brush_0_plane_27" "-0.97394067 0.22680272 0 20.504448"
+"*trigger_brush_0_plane_28" "-0.6470865 -0.7624166 0 18.720362"
+"*trigger_brush_0_plane_29" "-0.27426073 0 0.96165532 19.786783"
+"*trigger_brush_0_plane_30" "-0.76640385 0.6423589 0 19.165703"
+"*trigger_brush_0_plane_31" "0 0.051804371 0.99865729 20.25021"
+"*trigger_brush_0_plane_32" "-0.043983713 0 0.9990322 19.274397"
+"*trigger_brush_0_plane_33" "0 -0.23249318 0.97259808 20.278576"
+"*trigger_brush_0_plane_34" "-0 -0.05182166 -0.99865639 20.061886"
+"*trigger_brush_0_plane_35" "0.043999169 0 -0.99903154 19.21018"
+"*trigger_brush_0_plane_36" "0 0.23250006 -0.97259635 20.0965"
+"*trigger_brush_0_plane_37" "0.27426839 0 -0.96165317 20.379969"
+"*trigger_brush_0_plane_38" "0.76639473 -0.64236981 0 21.327457"
+"*trigger_brush_0_plane_39" "0.64707154 0.76242924 0 20.551546"
+"*trigger_brush_0_plane_40" "-0.93809688 -0.30126056 -0.17092778 20.400368"
+"*trigger_bounds_mins" "-22.353048 -20.129639 -20.002504"
+"*trigger_bounds_maxs" "22.356396 20.134279 20.002209"
+}
+{
+"SuppressAnimSounds" "0"
+"StartDisabled" "0"
+"spawnflags" "0"
+"solid" "6"
+"skin" "0"
+"SetBodyGroup" "0"
+"rendermode" "0"
+"renderfx" "0"
+"rendercolor" "255 255 255"
+"renderamt" "255"
+"RandomAnimation" "0"
+"pressuredelay" "0"
+"PerformanceMode" "0"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"mingpulevel" "0"
+"mincpulevel" "0"
+"MinAnimTime" "5"
+"maxgpulevel" "0"
+"maxcpulevel" "0"
+"MaxAnimTime" "10"
+"HoldAnimation" "0"
+"gamemode_tdm" "1"
+"gamemode_sur" "1"
+"gamemode_lts" "1"
+"gamemode_lh" "1"
+"gamemode_fd" "1"
+"gamemode_ctf" "1"
+"gamemode_cp" "1"
+"fadedist" "-1"
+"ExplodeRadius" "0"
+"ExplodeDamage" "0"
+"drawinfastreflection" "0"
+"disableX360" "0"
+"disableshadows" "0"
+"disablereceiveshadows" "0"
+"DisableBoneFollowers" "0"
+"collide_titan" "1"
+"collide_ai" "1"
+"ClientSide" "0"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-784 7760 2304"
+"script_name" "rings_pristine"
+"model" "models/props/timeshift_rings_animated.mdl"
+"classname" "prop_dynamic"
+}
+{
+"spawnflags" "0"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-1270.75 -1694.72 647.999"
+"targetname" "intermission"
+"classname" "info_target"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -44.724 0"
+"origin" "-5903.3 1066.05 724.634"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -44.724 0"
+"origin" "-5943.3 1026.05 724.634"
+"classname" "info_node_cover_stand"
+}
+{
+"origin" "-1692.96 -828.384 1487"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"triggerFilterUseNew" "1"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamBeast" "1"
+"targetname" "trigger_nessy"
+"classname" "trigger_once"
+"*trigger_brush_0_plane_0" "-1 0 0 22.049438"
+"*trigger_brush_0_plane_1" "1 0 0 22.049194"
+"*trigger_brush_0_plane_2" "0 -1 0 22.049194"
+"*trigger_brush_0_plane_3" "0 1 0 22.049255"
+"*trigger_brush_0_plane_4" "6.4687615e-006 -4.0451205e-006 -1 16"
+"*trigger_brush_0_plane_5" "-6.4687406e-006 4.0451073e-006 1 16"
+"*trigger_brush_0_plane_6" "0.84787196 -0.53020108 8.4913063e-006 15.999903"
+"*trigger_brush_0_plane_7" "-0.53020018 -0.8478725 -8.1072972e-007 16.000036"
+"*trigger_brush_0_plane_8" "-0.84787196 0.53020108 -8.4913063e-006 16.000143"
+"*trigger_brush_0_plane_9" "0.53020018 0.8478725 8.1072972e-007 15.99996"
+"*trigger_brush_0_plane_10" "0.84787196 -0.53020108 0 15.999767"
+"*trigger_brush_0_plane_11" "-0.53020018 -0.8478725 -0 16.00005"
+"*trigger_brush_0_plane_12" "-0.84787196 0.53020108 0 16.000006"
+"*trigger_brush_0_plane_13" "0.53020018 0.8478725 -0 15.99997"
+"*trigger_brush_0_plane_14" "0.22462773 -0.97444457 5.4309844e-006 22.627359"
+"*trigger_brush_0_plane_15" "0.97444463 0.22462772 6.5775362e-006 22.627329"
+"*trigger_brush_0_plane_16" "-0.97444463 -0.22462772 -6.5775362e-006 22.627554"
+"*trigger_brush_0_plane_17" "-0.22462773 0.97444457 -5.4309844e-006 22.627476"
+"*trigger_bounds_mins" "-22.049438 -22.049194 -16.000122"
+"*trigger_bounds_maxs" "22.049194 22.049255 16.000122"
+}
+{
+"origin" "-3680 -4240 1320"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damagecap" "20"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 -0 -0 -256"
+"*trigger_brush_0_plane_1" "1 -0 -0 1504"
+"*trigger_brush_0_plane_2" "-0 -1 -0 1712"
+"*trigger_brush_0_plane_3" "0 1 0 -152"
+"*trigger_brush_0_plane_4" "0 -0 -1 80"
+"*trigger_brush_0_plane_5" "0 0 1 80"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 -288.49957"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 0 1029.5475"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 2274.0552"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 956.0083"
+"*trigger_brush_1_plane_0" "-1 -0 -0 2096"
+"*trigger_brush_1_plane_1" "1 0 0 256"
+"*trigger_brush_1_plane_2" "-0 -1 -0 1712"
+"*trigger_brush_1_plane_3" "0 1 0 -1544"
+"*trigger_brush_1_plane_4" "0 -0 -1 80"
+"*trigger_brush_1_plane_5" "0 0 1 80"
+"*trigger_brush_1_plane_6" "-0.70710677 0.70710677 0 390.323"
+"*trigger_brush_1_plane_7" "-0.70710677 -0.70710677 0 2692.6626"
+"*trigger_brush_1_plane_8" "0.70710677 -0.70710677 0 1391.5861"
+"*trigger_brush_1_plane_9" "0.70710677 0.70710677 0 -910.75348"
+"*trigger_brush_2_plane_0" "-1 0 0 -1504"
+"*trigger_brush_2_plane_1" "1 -0 0 2096"
+"*trigger_brush_2_plane_2" "-0 -1 -0 1712"
+"*trigger_brush_2_plane_3" "-0 1 -0 624"
+"*trigger_brush_2_plane_4" "0 -0 -1 80"
+"*trigger_brush_2_plane_5" "0 0 1 80"
+"*trigger_brush_2_plane_6" "-0.70710677 0.70710677 0 -622.25391"
+"*trigger_brush_2_plane_7" "-0.70710677 -0.70710677 0 147.07825"
+"*trigger_brush_2_plane_8" "0.70710677 -0.70710677 0 2692.6626"
+"*trigger_brush_2_plane_9" "0.70710677 0.70710677 0 1923.3304"
+"*trigger_brush_3_plane_0" "-1 -0 -0 -256"
+"*trigger_brush_3_plane_1" "1 -0 -0 1504"
+"*trigger_brush_3_plane_2" "0 -1 0 20"
+"*trigger_brush_3_plane_3" "0 1 0 1712"
+"*trigger_brush_3_plane_4" "0 -0 -1 80"
+"*trigger_brush_3_plane_5" "0 0 1 80"
+"*trigger_brush_3_plane_6" "-0.70710677 0.70710677 0 1029.5475"
+"*trigger_brush_3_plane_7" "-0.70710677 -0.70710677 0 -166.8772"
+"*trigger_brush_3_plane_8" "0.70710677 -0.70710677 0 1077.6306"
+"*trigger_brush_3_plane_9" "0.70710677 0.70710677 0 2274.0552"
+"*trigger_brush_4_plane_0" "-1 -0 -0 -256"
+"*trigger_brush_4_plane_1" "1 -0 -0 1504"
+"*trigger_brush_4_plane_2" "-0 -1 -0 152"
+"*trigger_brush_4_plane_3" "-0 1 -0 -20"
+"*trigger_brush_4_plane_4" "0 -0 -1 80"
+"*trigger_brush_4_plane_5" "0 0 1 80"
+"*trigger_brush_4_plane_6" "-0.7288481 0.68467546 0 -290.65579"
+"*trigger_brush_4_plane_7" "0.70710677 -0.70710677 -0 1170.9688"
+"*trigger_brush_4_plane_8" "0.70710677 0.70710677 -0 1049.3464"
+"*trigger_brush_4_plane_9" "-0.91778958 -0.39706707 0 -174.59995"
+"*trigger_brush_4_plane_10" "-0.3970671 0.91778958 0 -169.24129"
+"*trigger_bounds_mins" "-2096 -1712 -80"
+"*trigger_bounds_maxs" "2096 1712 80"
+}
+{
+"editorclass" "trigger_mp_spawn_zone"
+"origin" "-8259.93 -3898.29 768"
+"link_to_guid_0" "8d5c25db"
+"link_guid" "20bff3cf"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 1676.9395"
+"*trigger_brush_0_plane_1" "1 0 0 1676.9297"
+"*trigger_brush_0_plane_2" "0 -1 0 1431.5415"
+"*trigger_brush_0_plane_3" "0 1 0 1431.54"
+"*trigger_brush_0_plane_4" "0 0 -1 384"
+"*trigger_brush_0_plane_5" "0 0 1 384"
+"*trigger_brush_0_plane_6" "0.86856514 -0.49557504 0 1230.6445"
+"*trigger_brush_0_plane_7" "0.32101053 0.94707561 -0 969.97974"
+"*trigger_brush_0_plane_8" "-0.97844875 0.20648976 0 1471.5179"
+"*trigger_brush_0_plane_9" "-0.25945646 -0.96575481 -0 1226.8235"
+"*trigger_brush_0_plane_10" "0.8685652 -0.4955751 0 1230.6445"
+"*trigger_brush_0_plane_11" "0.32101053 0.94707572 -0 969.97986"
+"*trigger_brush_0_plane_12" "-0.97844887 0.20648979 0 1471.5182"
+"*trigger_brush_0_plane_13" "0.38473445 -0.92302728 0 1552.2231"
+"*trigger_brush_0_plane_14" "0.93492395 0.35484812 0 1729.538"
+"*trigger_brush_0_plane_15" "-0.49514958 0.86880779 0 1838.814"
+"*trigger_brush_0_plane_16" "-0.85243279 -0.5228368 0 1858.1025"
+"*trigger_bounds_mins" "-1676.9395 -1431.5415 -384"
+"*trigger_bounds_maxs" "1676.9297 1431.54 384"
+}
+{
+"editorclass" "trigger_mp_spawn_zone"
+"origin" "-1096 -1064 836"
+"link_to_guid_0" "7a915f75"
+"link_guid" "376be52c"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 -0 792"
+"*trigger_brush_0_plane_1" "1 0 0 792"
+"*trigger_brush_0_plane_2" "-0 -1 -0 728"
+"*trigger_brush_0_plane_3" "0 1 0 728"
+"*trigger_brush_0_plane_4" "-0 0 -1 316"
+"*trigger_brush_0_plane_5" "0 0 1 316"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 1074.8022"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 -0 1074.8022"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 1074.8022"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 1074.8022"
+"*trigger_bounds_mins" "-792 -728 -316"
+"*trigger_bounds_maxs" "792 728 316"
+}
+{
+"editorclass" "trigger_mp_spawn_zone"
+"origin" "-3344 -32 832"
+"link_guid" "c73b1ba0"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 -528"
+"*trigger_brush_0_plane_1" "1 -0 0 1456"
+"*trigger_brush_0_plane_2" "-0 -1 -0 1120"
+"*trigger_brush_0_plane_3" "0 1 0 96"
+"*trigger_brush_0_plane_4" "-0 0 -1 320"
+"*trigger_brush_0_plane_5" "0 0 1 320"
+"*trigger_brush_0_plane_6" "0.61887223 0.7854917 0 402.17172"
+"*trigger_brush_0_plane_7" "0.61887223 0.78549176 -0 402.17175"
+"*trigger_brush_0_plane_8" "-0.43653622 0.89968669 0 -144.1212"
+"*trigger_brush_0_plane_9" "-0.70710677 -0.70710677 0 418.60721"
+"*trigger_brush_0_plane_10" "0.70710677 -0.70710677 0 1821.5071"
+"*trigger_brush_0_plane_11" "0.89968669 0.43653628 0 1032.6772"
+"*trigger_brush_1_plane_0" "-1 0 -0 1456"
+"*trigger_brush_1_plane_1" "1 -0 -0 528"
+"*trigger_brush_1_plane_2" "-0 -1 -0 1120"
+"*trigger_brush_1_plane_3" "-0 1 0 1120"
+"*trigger_brush_1_plane_4" "-0 0 -1 320"
+"*trigger_brush_1_plane_5" "0 0 1 320"
+"*trigger_brush_1_plane_6" "-0.70710677 0.70710677 0 1323.7039"
+"*trigger_brush_1_plane_7" "-0.70710683 0.70710683 0 1323.7039"
+"*trigger_brush_1_plane_8" "-0.70710677 -0.70710677 -0 1821.5071"
+"*trigger_brush_1_plane_9" "0.70710677 -0.70710677 -0 1165.312"
+"*trigger_brush_1_plane_10" "0.70710677 0.70710677 0 1165.312"
+"*trigger_bounds_mins" "-1456 -1120 -320"
+"*trigger_bounds_maxs" "1456 1120 320"
+}
+{
+"editorclass" "trigger_mp_spawn_zone"
+"origin" "-7140.16 -1396.14 772"
+"link_guid" "e620fcf0"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 2224.2539"
+"*trigger_brush_0_plane_1" "1 0 0 2224.2637"
+"*trigger_brush_0_plane_2" "0 -1 0 2217.8926"
+"*trigger_brush_0_plane_3" "0 1 0 2217.8877"
+"*trigger_brush_0_plane_4" "0 -0 -1 380"
+"*trigger_brush_0_plane_5" "0 0 1 380"
+"*trigger_brush_0_plane_6" "0.72732341 -0.68629485 0 1703.6879"
+"*trigger_brush_0_plane_7" "0.68394107 0.72953725 -0 1429.9221"
+"*trigger_brush_0_plane_8" "-0.70123887 -0.71292639 -0 1406.1461"
+"*trigger_brush_0_plane_9" "-0.71656835 0.69751686 0 1744.0974"
+"*trigger_brush_0_plane_10" "0.72732347 -0.68629491 0 1703.688"
+"*trigger_brush_0_plane_11" "0.68394113 0.72953725 -0 1429.9222"
+"*trigger_brush_0_plane_12" "-0.71656841 0.69751692 0 1744.0975"
+"*trigger_bounds_mins" "-2224.2539 -2217.8926 -380"
+"*trigger_bounds_maxs" "2224.2637 2217.8877 380"
+}
+{
+"editorclass" "trigger_mp_spawn_zone"
+"origin" "-1312 -3120 836"
+"link_to_guid_0" "e620fcf0"
+"link_guid" "8d5c25db"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 -0 -0 1712"
+"*trigger_brush_0_plane_1" "1 0 -0 1712"
+"*trigger_brush_0_plane_2" "-0 -1 -0 1328"
+"*trigger_brush_0_plane_3" "0 1 0 1328"
+"*trigger_brush_0_plane_4" "-0 0 -1 316"
+"*trigger_brush_0_plane_5" "0 0 1 316"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 2149.6045"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 0 2149.6045"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 2149.6045"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 2149.6045"
+"*trigger_bounds_mins" "-1712 -1328 -316"
+"*trigger_bounds_maxs" "1712 1328 316"
+}
+{
+"editorclass" "trigger_mp_spawn_zone"
+"origin" "-5934.88 798.942 772"
+"link_guid" "7a915f75"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 1485.8599"
+"*trigger_brush_0_plane_1" "1 0 0 1485.8623"
+"*trigger_brush_0_plane_2" "0 -1 0 1490.5747"
+"*trigger_brush_0_plane_3" "0 1 0 1490.5756"
+"*trigger_brush_0_plane_4" "0 -0 -1 380"
+"*trigger_brush_0_plane_5" "0 0 1 380"
+"*trigger_brush_0_plane_6" "-0.68394113 -0.72953719 -0 989.97607"
+"*trigger_brush_0_plane_7" "0.70748007 0.70673329 0 1003.9444"
+"*trigger_brush_0_plane_8" "0.72732341 -0.68629485 0 1126.6088"
+"*trigger_brush_0_plane_9" "-0.71656853 0.69751674 0 1089.8322"
+"*trigger_brush_0_plane_10" "-0.68394113 -0.72953725 -0 989.97614"
+"*trigger_brush_0_plane_11" "0.72732347 -0.68629491 0 1126.6089"
+"*trigger_bounds_mins" "-1485.8599 -1490.5747 -380"
+"*trigger_bounds_maxs" "1485.8622 1490.5756 380"
+}
+{
+"editorclass" "trigger_mp_spawn_zone"
+"origin" "-4848 -4232 836"
+"link_to_guid_0" "c73b1ba0"
+"link_guid" "891ea354"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 -0 1824"
+"*trigger_brush_0_plane_1" "1 0 0 1824"
+"*trigger_brush_0_plane_2" "0 -1 0 1240"
+"*trigger_brush_0_plane_3" "0 1 0 1240"
+"*trigger_brush_0_plane_4" "-0 0 -1 316"
+"*trigger_brush_0_plane_5" "0 0 1 316"
+"*trigger_brush_0_plane_6" "0.70710677 0.70710677 -0 1861.105"
+"*trigger_brush_0_plane_7" "0.70710683 0.70710683 0 1861.1052"
+"*trigger_brush_0_plane_8" "-0.70710677 0.70710677 0 2166.5752"
+"*trigger_brush_0_plane_9" "-0.70710677 -0.70710677 0 2166.5752"
+"*trigger_brush_0_plane_10" "0.70710677 -0.70710677 0 2166.5752"
+"*trigger_bounds_mins" "-1824 -1240 -316"
+"*trigger_bounds_maxs" "1824 1240 316"
+}
+{
+"spawnflags" "0"
+"scale" "1"
+"angles" "-5 69 3.06941e-016"
+"origin" "-2120 -2960 -6692"
+"targetname" "spacenode"
+"collide_titan" "0"
+"classname" "info_target"
+}
+{
+"origin" "-1504 160 -516"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"targetname" "trigger_hurt_1"
+"damagecap" "90000"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 13184"
+"*trigger_brush_0_plane_1" "1 0 0 13184"
+"*trigger_brush_0_plane_2" "-0 -1 -0 15648"
+"*trigger_brush_0_plane_3" "0 1 0 15648"
+"*trigger_brush_0_plane_4" "0 0 -1 764"
+"*trigger_brush_0_plane_5" "0 0 1 764"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 20387.303"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 0 20387.303"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 20387.303"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 20387.303"
+"*trigger_bounds_mins" "-13184 -15648 -764"
+"*trigger_bounds_maxs" "13184 15648 764"
+}
+{
+"editorclass" "info_attrition_camp"
+"origin" "-716 728 560"
+"radius" "2000"
+"phase_9" "0"
+"phase_8" "0"
+"phase_7" "0"
+"phase_6" "0"
+"phase_5" "0"
+"phase_4" "0"
+"phase_3" "1"
+"phase_2" "1"
+"phase_1" "0"
+"height" "500"
+"gamemode_fw" "0"
+"classname" "info_target"
+}
+{
+"editorclass" "info_attrition_camp"
+"origin" "-8544 -3920 580.002"
+"radius" "1700"
+"phase_9" "0"
+"phase_8" "0"
+"phase_7" "0"
+"phase_6" "0"
+"phase_5" "0"
+"phase_4" "0"
+"phase_3" "1"
+"phase_2" "1"
+"phase_1" "0"
+"height" "500"
+"gamemode_fw" "0"
+"classname" "info_target"
+}
+{
+"editorclass" "info_attrition_camp"
+"origin" "-3888 -2308 725.73"
+"radius" "1800"
+"phase_9" "0"
+"phase_8" "0"
+"phase_7" "0"
+"phase_6" "0"
+"phase_5" "0"
+"phase_4" "0"
+"phase_3" "1"
+"phase_2" "0"
+"phase_1" "1"
+"height" "500"
+"gamemode_fw" "0"
+"classname" "info_target"
+}
+{
+"editorclass" "info_attrition_bank"
+"radius" "256"
+"model" "models/Robots/mobile_hardpoint/mobile_hardpoint.mdl"
+"height" "256"
+"scale" "1"
+"angles" "-2.44662 -0.1162 -6.31668"
+"origin" "-3728.92 -249.347 570.834"
+"classname" "info_target"
+}
+{
+"editorclass" "info_attrition_bank"
+"radius" "256"
+"model" "models/Robots/mobile_hardpoint/mobile_hardpoint.mdl"
+"height" "256"
+"scale" "1"
+"angles" "-0.0219147 45 -0.000732113"
+"origin" "-4634.46 -4318.01 643.997"
+"classname" "info_target"
+}
+{
+"editorclass" "script_power_up_other"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "3.31448 90.4263 0.0792013"
+"origin" "-3792.41 -260.96 570.401"
+"powerUpType" "mp_loot_titan_build_credit"
+"classname" "script_ref"
+}
+{
+"editorclass" "script_power_up_other"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "-5.19204e-005 90.4217 5.11617e-005"
+"origin" "-4133.64 -4605.58 644.989"
+"powerUpType" "mp_loot_titan_build_credit"
+"classname" "script_ref"
+}
+{
+"editorclass" "script_power_up_other"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0.0002205 90.4217 -0.000274384"
+"origin" "-9398.19 -4025.82 578.673"
+"powerUpType" "mp_loot_titan_build_credit"
+"classname" "script_ref"
+}
+{
+"editorclass" "script_power_up_other"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0.00735007 136.844 -0.00725995"
+"origin" "-1248.99 839.02 752.045"
+"powerUpType" "mp_loot_titan_build_credit"
+"classname" "script_ref"
+}
+{
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"gamemode_sur" "1"
+"gamemode_lh" "1"
+"gamemode_cp" "1"
+"gamemode_at" "0"
+"scale" "1"
+"angles" "0 167.628 0"
+"origin" "-8154.63 -3522 580.361"
+"link_guid" "dfc2c4f3"
+"triggerTarget" "trigger_hardpoint_A1"
+"targetname" "info_hardpoint_1"
+"target" "assault_hardpoint_far_A*"
+"nearTarget" "assault_hardpoint_near_A*"
+"model" "models/Robots/mobile_hardpoint/mobile_hardpoint.mdl"
+"hardpointName" "titangarage"
+"hardpointGroup" "A"
+"classname" "info_hardpoint"
+}
+{
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"gamemode_sur" "1"
+"gamemode_lh" "1"
+"gamemode_cp" "1"
+"gamemode_at" "0"
+"scale" "1"
+"angles" "0 -138.254 0"
+"origin" "-4333.02 -2155.06 695.002"
+"link_guid" "7749b115"
+"triggerTarget" "trigger_hardpoint_B1"
+"targetname" "info_hardpoint_3"
+"target" "assault_hardpoint_far_B*"
+"nearTarget" "assault_hardpoint_near_B*"
+"model" "models/Robots/mobile_hardpoint/mobile_hardpoint.mdl"
+"hardpointName" "dogwhistle"
+"hardpointGroup" "B"
+"classname" "info_hardpoint"
+}
+{
+"hardpointFrontlineYaw" "0"
+"hardpointFrontlineOverride" "0"
+"gamemode_tday" "0"
+"gamemode_sur" "1"
+"gamemode_lh" "1"
+"gamemode_cp" "1"
+"gamemode_at" "0"
+"scale" "1"
+"angles" "0 -114.836 0"
+"origin" "-1390.34 2.709 520.001"
+"link_guid" "2a84a088"
+"triggerTarget" "trigger_hardpoint_C1"
+"targetname" "info_hardpoint_2"
+"target" "assault_hardpoint_far_C*"
+"nearTarget" "assault_hardpoint_near_C*"
+"model" "models/Robots/mobile_hardpoint/mobile_hardpoint.mdl"
+"hardpointName" "market"
+"hardpointGroup" "C"
+"classname" "info_hardpoint"
+}
+{
+"editorclass" "info_bomb_mode_bomb"
+"spawnflags" "0"
+"origin" "-4470.68 -2688.15 724.001"
+"classname" "info_target"
+}
+{
+"editorclass" "script_power_up_other"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0 90 2.53193e-006"
+"origin" "-4612.01 -2544.57 716.025"
+"powerUpType" "mp_loot_titan_build_credit"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_lts_bomb_site"
+"teamnumber" "2"
+"spawnflags" "0"
+"model" "models/props/generator_coop/generator_coop_medium.mdl"
+"origin" "-3798.73 -258.059 587.091"
+"bombSiteLocation" "0"
+"classname" "info_target"
+}
+{
+"editorclass" "info_lts_bomb_site"
+"teamnumber" "2"
+"spawnflags" "0"
+"model" "models/props/generator_coop/generator_coop_medium.mdl"
+"origin" "-2614.51 -3454.96 644"
+"bombSiteLocation" "1"
+"classname" "info_target"
+}
+{
+"origin" "-6248 -1288 616"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"link_guid" "3148974f"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 316.78223"
+"*trigger_brush_0_plane_1" "1 0 0 316.78223"
+"*trigger_brush_0_plane_2" "0 -1 0 316.78247"
+"*trigger_brush_0_plane_3" "0 1 0 316.78241"
+"*trigger_brush_0_plane_4" "-0 0 -1 96"
+"*trigger_brush_0_plane_5" "-0 -0 1 96"
+"*trigger_brush_0_plane_6" "-0.7049914 -0.70921588 -0 224.00005"
+"*trigger_brush_0_plane_7" "-0.70921636 0.70499092 0 223.99983"
+"*trigger_brush_0_plane_8" "0.70499128 0.70921594 0 224"
+"*trigger_brush_0_plane_9" "0.70921642 -0.7049908 0 223.99986"
+"*trigger_brush_0_plane_10" "-0.70921636 0.70499086 0 223.99983"
+"*trigger_brush_0_plane_11" "0.70921648 -0.70499086 0 223.99988"
+"*trigger_bounds_mins" "-316.78223 -316.78247 -96"
+"*trigger_bounds_maxs" "316.78223 316.78241 96"
+}
+{
+"origin" "-3688 -2288 816"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"link_guid" "5bdcb1bf"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 316.78223"
+"*trigger_brush_0_plane_1" "1 0 0 316.78223"
+"*trigger_brush_0_plane_2" "0 -1 0 316.78247"
+"*trigger_brush_0_plane_3" "0 1 0 316.78241"
+"*trigger_brush_0_plane_4" "-0 0 -1 96"
+"*trigger_brush_0_plane_5" "-0 -0 1 96"
+"*trigger_brush_0_plane_6" "-0.7049908 -0.70921642 -0 224.00003"
+"*trigger_brush_0_plane_7" "-0.70921642 0.7049908 0 224.00003"
+"*trigger_brush_0_plane_8" "0.7049908 0.70921642 0 224.00003"
+"*trigger_brush_0_plane_9" "0.70921642 -0.7049908 0 223.99986"
+"*trigger_brush_0_plane_10" "-0.70499086 -0.70921648 -0 224.00005"
+"*trigger_brush_0_plane_11" "-0.70921648 0.70499086 0 224.00005"
+"*trigger_brush_0_plane_12" "0.70499086 0.70921648 -0 224.00005"
+"*trigger_brush_0_plane_13" "0.70921648 -0.70499086 0 223.99988"
+"*trigger_bounds_mins" "-316.78247 -316.78235 -96"
+"*trigger_bounds_maxs" "316.78235 316.78247 96"
+}
+{
+"origin" "-896 -2880 616"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"link_guid" "a6716741"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 225.83789"
+"*trigger_brush_0_plane_1" "1 0 0 225.83783"
+"*trigger_brush_0_plane_2" "0 -1 0 225.83789"
+"*trigger_brush_0_plane_3" "0 1 0 225.83789"
+"*trigger_brush_0_plane_4" "-0 0 -1 96"
+"*trigger_brush_0_plane_5" "-0 -0 1 96"
+"*trigger_brush_0_plane_6" "-0.99996608 -0.0082386546 -0 224.00003"
+"*trigger_brush_0_plane_7" "-0.0082386546 0.99996608 0 224.00005"
+"*trigger_brush_0_plane_8" "0.99996608 0.0082385186 0 224"
+"*trigger_brush_0_plane_9" "0.0082386564 -0.99996608 0 224.00003"
+"*trigger_brush_0_plane_10" "-0.99996614 -0.0082386555 0 224.00005"
+"*trigger_brush_0_plane_11" "-0.0082386555 0.99996614 0 224.00005"
+"*trigger_brush_0_plane_12" "0.99996614 0.0082385195 0 224.00002"
+"*trigger_brush_0_plane_13" "0.0082386564 -0.99996614 0 224.00006"
+"*trigger_brush_0_plane_14" "-0.71290839 0.70125717 0 316.78387"
+"*trigger_brush_0_plane_15" "-0.70125717 -0.71290839 0 316.78387"
+"*trigger_brush_0_plane_16" "0.70125723 0.71290833 0 316.78387"
+"*trigger_brush_0_plane_17" "0.71290827 -0.70125717 0 316.78381"
+"*trigger_bounds_mins" "-225.83789 -225.83789 -96"
+"*trigger_bounds_maxs" "225.83783 225.83789 96"
+}
+{
+"origin" "-3624 -4216 736"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"link_guid" "c9c2695"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 316.78223"
+"*trigger_brush_0_plane_1" "1 0 0 316.78223"
+"*trigger_brush_0_plane_2" "0 -1 0 316.78247"
+"*trigger_brush_0_plane_3" "0 1 0 316.78241"
+"*trigger_brush_0_plane_4" "-0 0 -1 96"
+"*trigger_brush_0_plane_5" "-0 -0 1 96"
+"*trigger_brush_0_plane_6" "-0.70880991 -0.70539957 -0 223.99986"
+"*trigger_brush_0_plane_7" "-0.70539927 0.70881015 0 224.00011"
+"*trigger_brush_0_plane_8" "0.70881015 0.70539927 0 223.99994"
+"*trigger_brush_0_plane_9" "0.70539904 -0.70881045 0 224.00003"
+"*trigger_brush_0_plane_10" "0.70881021 0.70539927 0 223.99997"
+"*trigger_bounds_mins" "-316.78296 -316.78271 -96"
+"*trigger_bounds_maxs" "316.78296 316.78296 96"
+}
+{
+"origin" "-3752 -96 656"
+"wait" "1"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "0"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "none"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4097"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"link_guid" "17679895"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 0 0 316.78223"
+"*trigger_brush_0_plane_1" "1 0 0 316.78223"
+"*trigger_brush_0_plane_2" "0 -1 0 316.78247"
+"*trigger_brush_0_plane_3" "0 1 0 316.78241"
+"*trigger_brush_0_plane_4" "-0 0 -1 96"
+"*trigger_brush_0_plane_5" "-0 -0 1 96"
+"*trigger_brush_0_plane_6" "-0.70880991 -0.70539957 -0 223.99986"
+"*trigger_brush_0_plane_7" "-0.70539945 0.70880997 0 224.00002"
+"*trigger_brush_0_plane_8" "0.70880991 0.70539957 0 224"
+"*trigger_brush_0_plane_9" "0.70539951 -0.70880997 0 224.00003"
+"*trigger_brush_0_plane_10" "-0.70539945 0.70881003 0 224.00003"
+"*trigger_brush_0_plane_11" "0.70539945 -0.70880997 0 224.00003"
+"*trigger_bounds_mins" "-316.78284 -316.78284 -96"
+"*trigger_bounds_maxs" "316.78296 316.7829 96"
+}
+{
+"spawnflags" "0"
+"origin" "-3824 -72 640"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-3824 88 624"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-3664 -72 656"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-3824 -248 624"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-4000 -72 736"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-4610.47 -4408.71 676.989"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-4522.47 -4504.71 676.989"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-4306.47 -4712.71 676.989"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-4138.47 -4712.71 676.989"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-3930.47 -4680.71 676.989"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-3754.47 -4520.71 676.989"
+"classname" "info_node"
+}
+{
+"spawnflags" "0"
+"origin" "-3418.47 -4184.71 676.989"
+"classname" "info_node"
+}
+{
+"editorclass" "info_fw_turret_site"
+"spawnflags" "0"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0 135 0"
+"origin" "-6522 -1025 533"
+"link_to_guid_1" "cd6e529e"
+"link_to_guid_0" "1e132096"
+"link_guid" "1e3bbebe"
+"turretId" "7"
+"teamnumber" "3"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_turret_site"
+"spawnflags" "0"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "-0.0980319 -171.596 -0.00220506"
+"origin" "-6239.68 -4216.72 521.118"
+"link_to_guid_1" "ee670072"
+"link_to_guid_0" "4b6be066"
+"link_guid" "237cf48f"
+"turretId" "0"
+"teamnumber" "4"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_turret_site"
+"teamnumber" "4"
+"spawnflags" "0"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3818.28 -319.059 613.368"
+"link_to_guid_1" "c86bd441"
+"link_to_guid_0" "6668019f"
+"link_guid" "c9f7aad1"
+"turretId" "2"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_turret_site"
+"teamnumber" "4"
+"spawnflags" "0"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0 90 -8.60438e-006"
+"origin" "-4384 -2680 756"
+"link_to_guid_1" "3b7f5395"
+"link_to_guid_0" "2365c1c9"
+"link_guid" "394a1d3c"
+"turretId" "1"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_team_tower"
+"spawnflags" "0"
+"model" "models/props/generator_coop/generator_coop_medium.mdl"
+"scale" "1"
+"angles" "-2.48038e-006 90 0"
+"origin" "-454.381 -2886.73 520.827"
+"link_to_guid_1" "63693a5c"
+"link_to_guid_0" "128fc74f"
+"link_guid" "a2589c18"
+"teamnumber" "2"
+"radius" "1"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_turret_site"
+"spawnflags" "0"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "3.35337e-006 90 0"
+"origin" "-760 -3872 521"
+"link_to_guid_1" "feb9084e"
+"link_to_guid_0" "bcd0f203"
+"link_guid" "868d19d2"
+"turretId" "3"
+"teamnumber" "2"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_camp"
+"spawnflags" "0"
+"model" "models/vehicle/escape_pod/escape_pod.mdl"
+"height" "256"
+"origin" "-1248 448 656"
+"link_to_guid_8" "ffdb91c1"
+"link_to_guid_7" "fc571b81"
+"link_to_guid_6" "f983fcd0"
+"link_to_guid_5" "de85a29e"
+"link_to_guid_4" "ccdc3db0"
+"link_to_guid_3" "bdc38ac8"
+"link_to_guid_2" "563b6eff"
+"link_to_guid_1" "4359bf3d"
+"link_to_guid_0" "2f988812"
+"link_guid" "a9394e76"
+"radius" "900"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_camp"
+"spawnflags" "0"
+"model" "models/vehicle/escape_pod/escape_pod.mdl"
+"height" "256"
+"origin" "-4368 -2136 700"
+"link_to_guid_11" "f57064db"
+"link_to_guid_10" "df5a7c37"
+"link_to_guid_9" "a1a2ede5"
+"link_to_guid_8" "9c0be084"
+"link_to_guid_7" "7c9125e7"
+"link_to_guid_6" "436573d6"
+"link_to_guid_5" "36aeef28"
+"link_to_guid_4" "2639b847"
+"link_to_guid_3" "234799c3"
+"link_to_guid_2" "1b61f1e1"
+"link_to_guid_1" "194727c5"
+"link_to_guid_0" "5496c0f"
+"link_guid" "df7be002"
+"radius" "800"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_camp"
+"spawnflags" "0"
+"model" "models/vehicle/escape_pod/escape_pod.mdl"
+"height" "256"
+"origin" "-8064 -3544 667.01"
+"link_to_guid_8" "d982b5e0"
+"link_to_guid_7" "d57a2bb3"
+"link_to_guid_6" "d284dc2c"
+"link_to_guid_5" "a7db3193"
+"link_to_guid_4" "9503c7f8"
+"link_to_guid_3" "88df464c"
+"link_to_guid_2" "3adb10c9"
+"link_to_guid_1" "388cbaa5"
+"link_to_guid_0" "2266d6e2"
+"link_guid" "539c61dc"
+"radius" "900"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_turret_site"
+"spawnflags" "0"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0 65.8114 0"
+"origin" "-7869.5 -1013.15 681"
+"link_to_guid_1" "9b60b1b0"
+"link_to_guid_0" "7491589"
+"link_guid" "7070a0e2"
+"turretId" "6"
+"teamnumber" "3"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_turret_site"
+"spawnflags" "0"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0 135 0"
+"origin" "-6649 362 585"
+"link_to_guid_1" "9b6a7479"
+"link_to_guid_0" "6c2dd43f"
+"link_guid" "ef8ee88b"
+"turretId" "8"
+"teamnumber" "3"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_turret_site"
+"spawnflags" "0"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0.603044 90 -1.33634"
+"origin" "-949.577 -2882.28 533.149"
+"link_to_guid_1" "ce6e0c03"
+"link_to_guid_0" "436209f5"
+"link_guid" "f4757f6f"
+"turretId" "4"
+"teamnumber" "2"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_turret_site"
+"spawnflags" "0"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "-1.1511e-005 90 -5.58721e-005"
+"origin" "-957.242 -1445.11 520.999"
+"link_to_guid_1" "3566e2c0"
+"link_to_guid_0" "263c3de7"
+"link_guid" "6c185b79"
+"turretId" "5"
+"teamnumber" "2"
+"classname" "info_target"
+}
+{
+"editorclass" "info_fw_battery_port"
+"spawnflags" "0"
+"model" "models/props/battery_port/battery_port_animated.mdl"
+"scale" "1"
+"angles" "3.10056e-006 90 -1.52373e-006"
+"origin" "-4384 -2534 725.88"
+"link_guid" "3b7f5395"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4422 -2642 716"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4422 -2718 716"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4346 -2642 716"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4346 -2718 716"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4384 -2534 716"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4422 -2718 726"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4422 -2642 726"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4346 -2642 726"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4346 -2718 726"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4346 -2718 736"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4346 -2642 736"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4422 -2718 736"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4422 -2642 736"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4346 -2642 746"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4422 -2718 746"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4346 -2718 746"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4422 -2642 746"
+"classname" "script_ref"
+}
+{
+"model" "*2"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-4384 -2626 886"
+"link_guid" "2365c1c9"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3726 -65 530"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -281 564"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -357 564"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -357 564"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -281 564"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_battery_port"
+"spawnflags" "0"
+"model" "models/props/battery_port/battery_port_animated.mdl"
+"scale" "1"
+"angles" "3.10056e-006 90 -1.52373e-006"
+"origin" "-3726 -65 549.88"
+"link_guid" "6668019f"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3726 -65 540"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -357 574"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -357 574"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -281 574"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -281 574"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -357 584"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -357 584"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -281 584"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -281 584"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -281 594"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -281 594"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -357 594"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -357 594"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -281 604"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -281 604"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3856 -357 604"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-3780 -357 604"
+"classname" "script_ref"
+}
+{
+"model" "*3"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-3790.5 -210 722"
+"link_guid" "c86bd441"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 97.0737 0"
+"origin" "-6197.48 -4250.06 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 97.0737 0"
+"origin" "-6282.25 -4183.92 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_battery_port"
+"spawnflags" "0"
+"model" "models/props/battery_port/battery_port_animated.mdl"
+"scale" "1"
+"angles" "3.10056e-006 45.0117 -1.52373e-006"
+"origin" "-6081.35 -4053.12 545.88"
+"link_guid" "ee670072"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 97.0737 0"
+"origin" "-6272.91 -4259.4 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45.0117 0"
+"origin" "-6081.35 -4053.12 536"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 97.0737 0"
+"origin" "-6206.85 -4174.57 512"
+"classname" "script_ref"
+}
+{
+"model" "*4"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-6177.5 -4151 678"
+"link_guid" "4b6be066"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45.0117 0"
+"origin" "-6081.35 -4053.12 526"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-722 -3834 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-798 -3834 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-722 -3910 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-608 -3870 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-798 -3910 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_battery_port"
+"spawnflags" "0"
+"model" "models/props/battery_port/battery_port_animated.mdl"
+"scale" "1"
+"angles" "3.10056e-006 90 -1.52373e-006"
+"origin" "-608 -3870 521.88"
+"link_guid" "feb9084e"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-912 -2920 522"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-912 -2844 522"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-988 -2844 522"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-988 -2920 522"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-834 -2880 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_battery_port"
+"spawnflags" "0"
+"model" "models/props/battery_port/battery_port_animated.mdl"
+"scale" "1"
+"angles" "3.10056e-006 90 -1.52373e-006"
+"origin" "-834 -2880 521.88"
+"link_guid" "ce6e0c03"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-919 -1623 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-995 -1483 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_battery_port"
+"spawnflags" "0"
+"model" "models/props/battery_port/battery_port_animated.mdl"
+"scale" "1"
+"angles" "3.10056e-006 90 -1.52373e-006"
+"origin" "-919 -1623 521.88"
+"link_guid" "263c3de7"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-995 -1407 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-919 -1407 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-919 -1483 512"
+"classname" "script_ref"
+}
+{
+"model" "*5"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-702.5 -3872 686"
+"link_guid" "bcd0f203"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"model" "*6"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-911.5 -2880 686"
+"link_guid" "436209f5"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"model" "*7"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-955.5 -1515 686"
+"link_guid" "3566e2c0"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6702.86 362.291 576"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6649.12 416.031 576"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_battery_port"
+"spawnflags" "0"
+"model" "models/props/battery_port/battery_port_animated.mdl"
+"scale" "1"
+"angles" "3.10056e-006 45 -1.52373e-006"
+"origin" "-6766.12 247.122 585.88"
+"link_guid" "6c2dd43f"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6649.11 308.55 576"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6595.37 362.29 576"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6766.12 247.122 576"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6468.37 -1024.71 524"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_battery_port"
+"spawnflags" "0"
+"model" "models/props/battery_port/battery_port_animated.mdl"
+"scale" "1"
+"angles" "3.10056e-006 45 -1.52373e-006"
+"origin" "-6799.12 -875.88 533.88"
+"link_guid" "cd6e529e"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6522.11 -1078.45 524"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6522.12 -970.969 524"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6799.12 -875.88 524"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6575.86 -1024.71 524"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6522.11 -1078.45 514"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6575.86 -1024.71 514"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7819.05 -993.456 632"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7888.55 -962.627 632"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 11.1616 0"
+"origin" "-7927.69 -782.723 576"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7919.35 -1032.1 632"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7849.92 -1062.91 632"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_battery_port"
+"spawnflags" "0"
+"model" "models/props/battery_port/battery_port_animated.mdl"
+"scale" "1"
+"angles" "3.10056e-006 11.1616 -1.52373e-006"
+"origin" "-7927.69 -782.723 585.88"
+"link_guid" "7491589"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7819.05 -993.456 642"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7849.92 -1062.91 642"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7919.35 -1032.1 642"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7888.55 -962.627 642"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7819.05 -993.456 652"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7919.35 -1032.1 652"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7849.92 -1062.91 652"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7888.55 -962.627 652"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7849.92 -1062.91 662"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7888.55 -962.627 662"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7919.35 -1032.1 662"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7819.05 -993.456 662"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7819.05 -993.456 672"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7919.35 -1032.1 672"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7888.55 -962.627 672"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 66.0615 0"
+"origin" "-7849.92 -1062.91 672"
+"classname" "script_ref"
+}
+{
+"model" "*8"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-6680.75 331.983 750"
+"link_guid" "9b6a7479"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"model" "*9"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-6633.75 -977.05 686"
+"link_guid" "1e132096"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"model" "*10"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-7869.28 -925.873 774"
+"link_guid" "9b60b1b0"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"model" "*11"
+"triangle_collision" "1"
+"editorclass" "func_brush_navmesh_separator"
+"origin" "-452 -2886 732"
+"link_guid" "63693a5c"
+"startDisconnected" "0"
+"classname" "func_brush"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-912 -2920 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-988 -2920 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-988 -2844 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-912 -2844 512"
+"classname" "script_ref"
+}
+{
+"editorclass" "info_fw_foundation_plate"
+"spawnflags" "0"
+"model" "models/industrial/grate_mod.mdl"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-6468.37 -1024.71 514"
+"classname" "script_ref"
+}
+{
+"editorclass" "trigger_fw_territory"
+"origin" "-728 -2828 885"
+"wait" "0"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "0"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "0"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "1"
+"StartDisabled" "0"
+"spawnflags" "64"
+"link_guid" "128fc74f"
+"triggerFilterUseNew" "1"
+"classname" "trigger_multiple"
+"*trigger_brush_0_plane_0" "-1 -0 -0 904"
+"*trigger_brush_0_plane_1" "1 0 0 1336"
+"*trigger_brush_0_plane_2" "-0 -1 -0 1588"
+"*trigger_brush_0_plane_3" "-0 1 0 996"
+"*trigger_brush_0_plane_4" "0 0 -1 395"
+"*trigger_brush_0_plane_5" "0 0 1 395"
+"*trigger_brush_0_plane_6" "-0.70710677 0.70710677 0 1343.5029"
+"*trigger_brush_0_plane_7" "-0.70710677 -0.70710677 -0 1762.1101"
+"*trigger_brush_0_plane_8" "0.70710677 -0.70710677 0 2067.5801"
+"*trigger_brush_0_plane_9" "0.70710677 0.70710677 0 1648.9729"
+"*trigger_brush_1_plane_0" "-1 -0 -0 1336"
+"*trigger_brush_1_plane_1" "1 0 0 1336"
+"*trigger_brush_1_plane_2" "0 -1 -0 -996"
+"*trigger_brush_1_plane_3" "-0 1 -0 1588"
+"*trigger_brush_1_plane_4" "0 0 -1 395"
+"*trigger_brush_1_plane_5" "0 0 1 395"
+"*trigger_brush_1_plane_6" "-0.70710677 0.70710677 -0 2067.5801"
+"*trigger_brush_1_plane_7" "-0.70710677 -0.70710677 -0 240.41632"
+"*trigger_brush_1_plane_8" "0.70710677 -0.70710677 0 240.41632"
+"*trigger_brush_1_plane_9" "0.70710677 0.70710677 0 2067.5801"
+"*trigger_bounds_mins" "-1336 -1588 -395"
+"*trigger_bounds_maxs" "1336 1588 395"
+}
+{
+"model" "*12"
+"triangle_collision" "1"
+"editorclass" "func_brush_fw_territory_border"
+"origin" "-1051 -2171 728"
+"VisibilityFlags" "2"
+"useNonLocalWorldLights" "0"
+"startdisabled" "0"
+"solidity" "1"
+"solidbsp" "0"
+"gamemode_tdm" "0"
+"gamemode_lh" "0"
+"gamemode_fw" "1"
+"gamemode_ffa" "0"
+"gamemode_ctf" "0"
+"gamemode_cp" "0"
+"gamemode_at" "0"
+"drawinfastreflection" "0"
+"disableshadows" "0"
+"bakedSunFraction" "-1.0"
+"teamnumber" "2"
+"classname" "func_brush"
+}
+{
+"model" "*13"
+"triangle_collision" "1"
+"editorclass" "func_brush_fw_territory_border"
+"origin" "-6613 -1533.5 674"
+"useNonLocalWorldLights" "0"
+"teamnumber" "3"
+"startdisabled" "0"
+"solidity" "1"
+"solidbsp" "0"
+"gamemode_tdm" "0"
+"gamemode_lh" "0"
+"gamemode_fw" "1"
+"gamemode_ffa" "0"
+"gamemode_ctf" "0"
+"gamemode_cp" "0"
+"gamemode_at" "0"
+"drawinfastreflection" "0"
+"disableshadows" "0"
+"bakedSunFraction" "-1.0"
+"VisibilityFlags" "4"
+"classname" "func_brush"
+}
+{
+"model" "*14"
+"triangle_collision" "1"
+"editorclass" "func_brush_fw_territory_border"
+"origin" "-1051 -2170.5 728"
+"useNonLocalWorldLights" "0"
+"startdisabled" "0"
+"solidity" "1"
+"solidbsp" "0"
+"gamemode_tdm" "0"
+"gamemode_lh" "0"
+"gamemode_fw" "1"
+"gamemode_ffa" "0"
+"gamemode_ctf" "0"
+"gamemode_cp" "0"
+"gamemode_at" "0"
+"drawinfastreflection" "0"
+"disableshadows" "0"
+"bakedSunFraction" "-1.0"
+"teamnumber" "2"
+"VisibilityFlags" "4"
+"classname" "func_brush"
+}
+{
+"model" "*15"
+"triangle_collision" "1"
+"editorclass" "func_brush_fw_territory_border"
+"origin" "-6614 -1533.5 674"
+"VisibilityFlags" "2"
+"useNonLocalWorldLights" "0"
+"teamnumber" "3"
+"startdisabled" "0"
+"solidity" "1"
+"solidbsp" "0"
+"gamemode_tdm" "0"
+"gamemode_lh" "0"
+"gamemode_fw" "1"
+"gamemode_ffa" "0"
+"gamemode_ctf" "0"
+"gamemode_cp" "0"
+"gamemode_at" "0"
+"drawinfastreflection" "0"
+"disableshadows" "0"
+"bakedSunFraction" "-1.0"
+"classname" "func_brush"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -70.647 0"
+"origin" "-1398.96 873.896 574.188"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4448 -1480 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4448 -1536 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4448 -1592 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-4600 -1568 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-4712 -1568 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-4656 -1568 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-4768 -1568 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4604 -1368 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4220 -1782 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4540 -1784 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-4792 -1724 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4844 -1784 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4844 -2152 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-4792 -2100 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-4488 -2100 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-4436 -2152 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-4648 -1924 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 174.242 0"
+"origin" "-3516.01 -2612.4 736"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -134.404 0"
+"origin" "-4005.21 -2549.17 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -134.404 0"
+"origin" "-3969.21 -2585.17 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-3363.85 -2041.39 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-3364.24 -2092.28 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-2396.24 -2092.28 656"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-2395.85 -2041.39 656"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-3612.05 -2210.29 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 45 0"
+"origin" "-3647.46 -2175.76 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4258 -2710 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4258 -2660 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-5034 -2714 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-5034 -2664 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-4758 -2662 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-4758 -2712 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 124.91 0"
+"origin" "-5305.57 -2280.73 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 124.91 0"
+"origin" "-5346.53 -2309.39 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -55.09 0"
+"origin" "-5463.47 -2054.61 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -55.09 0"
+"origin" "-5504.43 -2083.27 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4822 -2766 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-4970 -2610 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-4200 -2766 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 137.849 0"
+"origin" "-3978.23 -2674.54 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 135.697 0"
+"origin" "-3527.69 -2204.18 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -55.171 0"
+"origin" "-5292.38 -1858.66 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 49.7768 0"
+"origin" "-4953.45 -3057.54 720"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -45.163 0"
+"origin" "-6104.11 -1467.31 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -45.163 0"
+"origin" "-6068.72 -1432.03 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -45.163 0"
+"origin" "-5880.11 -1255.31 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -45.163 0"
+"origin" "-6282.72 -1650.03 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 45.2765 0"
+"origin" "-6525.59 -1797.7 592"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 45.2765 0"
+"origin" "-6485.59 -1837.7 592"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 44.837 0"
+"origin" "-6592.69 -1784.11 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 44.837 0"
+"origin" "-6656.69 -1716.11 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -135.163 0"
+"origin" "-6819.31 -1879.89 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -135.163 0"
+"origin" "-6675.31 -2023.89 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 44.837 0"
+"origin" "-6616.69 -1416.11 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -135.163 0"
+"origin" "-7161.31 -2245.89 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -135.163 0"
+"origin" "-7383.31 -2023.89 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 44.837 0"
+"origin" "-7372.69 -1516.11 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -134.724 0"
+"origin" "-5710.41 -974.3 592"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -135.163 0"
+"origin" "-5745.31 -889.89 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -134.724 0"
+"origin" "-5836.41 -898.3 592"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -134.724 0"
+"origin" "-6372.41 -690.3 592"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -134.724 0"
+"origin" "-6420.41 -650.3 592"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -134.724 0"
+"origin" "-6460.41 -610.3 592"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -135.163 0"
+"origin" "-6305.31 -725.89 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -135.163 0"
+"origin" "-6481.31 -555.89 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 44.837 0"
+"origin" "-6090.69 -350.11 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 44.837 0"
+"origin" "-5666.69 33.89 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -135.163 0"
+"origin" "-6045.31 -305.89 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -20.865 0"
+"origin" "-5194.72 232.223 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 159.135 0"
+"origin" "-5075.28 189.78 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4882 184 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-4882 -306 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -25.868 0"
+"origin" "-5272.05 6.83351 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -134.691 0"
+"origin" "-6613.74 55.0701 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -134.691 0"
+"origin" "-6895.74 339.07 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -45.061 0"
+"origin" "-5494.43 573.319 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -25.868 0"
+"origin" "-5784.05 154.834 592"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -44.691 0"
+"origin" "-7145.07 -729.74 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 75.477 0"
+"origin" "-7936.67 -3117.23 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 67.9382 0"
+"origin" "-8116.76 -3943.04 612.36"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -22.062 0"
+"origin" "-8131.04 -3881.24 612.36"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 74.9241 0"
+"origin" "-8443.99 -4197.42 612.36"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 75.0976 0"
+"origin" "-8591.52 -2940.22 596.36"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -14.449 0"
+"origin" "-8625.64 -2878.83 596.36"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -14.902 0"
+"origin" "-8646.22 -3144.48 588.36"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -14.902 0"
+"origin" "-8186.22 -3268.48 588.36"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -14.902 0"
+"origin" "-7738.22 -3388.48 588.36"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -14.411 0"
+"origin" "-7861.12 -3839.65 612.36"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 75.098 0"
+"origin" "-7821.52 -3916.22 588.36"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 44.4931 0"
+"origin" "-8843.46 -4036.85 588.36"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 11.4796 0"
+"origin" "-9137.74 -3522.5 612.36"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -23.152 0"
+"origin" "-6910.97 -3776.88 612.36"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 24.3059 0"
+"origin" "-7612.21 -4206.92 612.36"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -135.244 0"
+"origin" "-5389.49 -3299.08 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -135.244 0"
+"origin" "-5428.86 -3259.31 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -134.26 0"
+"origin" "-5311.26 -3375.59 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -134.26 0"
+"origin" "-5271.21 -3414.68 720"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 45.6407 0"
+"origin" "-5198.86 -3069.67 720"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -106.038 0"
+"origin" "-2273.51 -2344.4 656"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -70.647 0"
+"origin" "-2784.97 -2332.36 656"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-2606.61 -1979.85 656"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -90 0"
+"origin" "-2451.72 -1980.24 656"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -2.2529 0"
+"origin" "-8502.15 -4125.32 612.36"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -83.909 0"
+"origin" "-1470.54 649.606 574.188"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -70.647 0"
+"origin" "-1646.96 681.896 574.188"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -47.145 0"
+"origin" "-1909.06 268.227 574.188"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -89.666 0"
+"origin" "-1188.89 -5.46055 534.188"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -89.666 0"
+"origin" "-1128.89 -5.4606 534.188"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -45.361 0"
+"origin" "-1702.89 389.442 574.188"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -50.123 0"
+"origin" "-1915.84 473.333 574.185"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -89.666 0"
+"origin" "-664 608 608"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -89.666 0"
+"origin" "-432 332 616"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -89.666 0"
+"origin" "-432 1192 592"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -106.195 0"
+"origin" "-640.812 -190.785 591.967"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -73.007 0"
+"origin" "-1373.04 -230.614 536.005"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -89.666 0"
+"origin" "-1300.89 -605.461 534.188"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -106.195 0"
+"origin" "-612.868 1338.66 586.157"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -82.54 0"
+"origin" "-1021.68 1162.37 574.188"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -121.825 0"
+"origin" "-1467.78 -599.512 534.188"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -143.868 0"
+"origin" "-167.517 1018.96 595.376"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 75.8469 0"
+"origin" "-7529.91 -2887.76 592"
+"classname" "info_node_cover_stand"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-4581.92 -1857.53 755.998"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-3202.13 -2679.22 772"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-4996.1 848.459 640"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "3.20383 -2583.9 584"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-4126.89 -3645.28 708.992"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-8254.52 -4383.02 668.36"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-8468.17 -2480.01 644.36"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-7833.18 -1925.19 644.125"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-8326.67 -1573.78 644"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-5844.11 -121.301 644"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-6128.37 -720.44 644"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-6707.37 -1812.42 643.999"
+"classname" "info_node_safe_hint"
+}
+{
+"spawnflags" "0"
+"nodeFOV" "360"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "102"
+"origin" "-5257.23 -3233.01 775.998"
+"classname" "info_node_safe_hint"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-707.71 -2674.11 543.997"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-704 -3212 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -178.666 0"
+"origin" "-617.141 -2875.04 543.998"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-460 -3100 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -125.081 0"
+"origin" "-833.472 -2284.29 543.998"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 90 0"
+"origin" "-832.73 -3601.05 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -1.40334e-014 0"
+"origin" "-1399.71 -2731.27 671.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -6.4689 0"
+"origin" "-1399.62 -2638.84 671.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-1480 -3028 672"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-1720 -3100 676"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-1720 -2660 676"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-1992 -2828 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-1992 -2936 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-2180 -2984 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-2016 -2576 676"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 56.2721 0"
+"origin" "-1949.45 -3509.17 676"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-2812.8 -2664.66 740"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 25.6162 0"
+"origin" "-2812.01 -3011.4 740"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -32.531 0"
+"origin" "-2828.86 -3205.67 740"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -6.2179 0"
+"origin" "-3032 -3416.73 740"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 0.0768 0"
+"origin" "-3104.63 -3485.69 740"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-2861.49 -2863.76 740"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 180 0"
+"origin" "-2704 -2396 676"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -134.33 0"
+"origin" "-2761.52 -3471.39 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -134.33 0"
+"origin" "-2684.26 -3546.82 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -134.639 0"
+"origin" "-3202.47 -3376.52 740"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -134.859 0"
+"origin" "-3200.63 -4278.03 676.992"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -134.639 0"
+"origin" "-3550.71 -3621.72 676.992"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 155.979 0"
+"origin" "-3463.88 -4643.98 804.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 133.053 0"
+"origin" "-3741.32 -4907.18 805"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 166.354 0"
+"origin" "-3675.16 -4826.35 805"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 114.473 0"
+"origin" "-3983 -4975.73 805"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 88.2126 0"
+"origin" "-4256.72 -4967.88 805"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 46.6407 0"
+"origin" "-4512.85 -4891.3 805"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 41.8151 0"
+"origin" "-4563.67 -4841.39 805.001"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 42.579 0"
+"origin" "-4859.07 -4548.38 805"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -120.962 0"
+"origin" "-3986.54 -3549.94 676.992"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -113.45 0"
+"origin" "-4188.01 -3705.29 676.991"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 66.5706 0"
+"origin" "-4238.87 -3829.87 676.992"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 62.3857 0"
+"origin" "-4364.49 -4336.36 677.088"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 44.8382 0"
+"origin" "-4309.25 -4380.65 677.117"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 37.7505 0"
+"origin" "-4071.07 -4137.88 676.992"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 139.865 0"
+"origin" "-4222.27 -4375.36 677.088"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 167.789 0"
+"origin" "-3955.13 -4117.21 677.088"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 80.8422 0"
+"origin" "-4411.09 -4892.87 805"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 89.7471 0"
+"origin" "-4326.31 -4894.97 805"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 70.1256 0"
+"origin" "-3910.69 -4912.43 805"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 45.67 0"
+"origin" "-2818.48 -3682.61 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 45.67 0"
+"origin" "-2885.74 -3615.18 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 36.5559 0"
+"origin" "-2609.52 -3780.17 676"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 31.9057 0"
+"origin" "-3696.58 -3757.97 676.992"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -23.621 0"
+"origin" "-7441.27 -898.424 612.001"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -23.621 0"
+"origin" "-8041.74 -1434.98 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 37.0224 0"
+"origin" "-7080.78 161.468 615.988"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 53.6677 0"
+"origin" "-6786.92 -124.946 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -33.427 0"
+"origin" "-6075.92 526.058 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -35.245 0"
+"origin" "-6677.06 -1246.48 547.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 138.638 0"
+"origin" "-2417.65 -1009.07 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 141.758 0"
+"origin" "-2332.31 -564.011 544.001"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 160.837 0"
+"origin" "-2624.02 -519.857 544.001"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 169.628 0"
+"origin" "-2689.16 -113.007 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 133.483 0"
+"origin" "-2829.19 -642.056 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 149.3 0"
+"origin" "-1979.57 -1001.11 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 134.155 0"
+"origin" "-2184.13 -999.64 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 149.3 0"
+"origin" "-1686.79 -1189.54 551.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 171.47 0"
+"origin" "-1357.28 -1042.66 543.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -179.666 0"
+"origin" "-1235.46 -715.11 534.188"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -34.978 0"
+"origin" "-2730.88 -458.32 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -35.71 0"
+"origin" "-2775.54 -520.54 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -9.6773 0"
+"origin" "-2266.83 -844.802 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 3.901 0"
+"origin" "-2043.38 -1151.14 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -64.026 0"
+"origin" "-2482.02 -350.092 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -30.214 0"
+"origin" "-2714.15 -751.932 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -45.244 0"
+"origin" "-5714.85 -3386.19 631.998"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -45.244 0"
+"origin" "-5778.85 -3454.19 631.998"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -45.162 0"
+"origin" "-5143.75 -3664.94 683.684"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -28.251 0"
+"origin" "-5595.25 -3691.11 631.998"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 28.2911 0"
+"origin" "-6336.37 -3733.64 583.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 43.454 0"
+"origin" "-6046.74 -4089.17 567.998"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 45.5625 0"
+"origin" "-6442.85 -4307.03 596.727"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 43.454 0"
+"origin" "-6411.68 -3979.16 544.059"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -135.616 0"
+"origin" "-5636.21 -3055.44 743.998"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -134.748 0"
+"origin" "-5911.06 -3640.23 615.998"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -158.587 0"
+"origin" "-5575.21 -3991.75 616.151"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -135.047 0"
+"origin" "-5652.33 -3892.95 616.263"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -109.894 0"
+"origin" "-6004.29 -3569.17 615.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 47.6708 0"
+"origin" "-6118.64 -4004.42 567.998"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 47.6708 0"
+"origin" "-5953.49 -4363.76 551.998"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 166.432 0"
+"origin" "-5926.31 -4057.69 583.998"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -142.99 0"
+"origin" "-6006.69 -3895.67 591.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 44.8896 0"
+"origin" "-6334.8 -4509.46 596.59"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 169.812 0"
+"origin" "-4504.9 -4068.47 676.998"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 134.202 0"
+"origin" "-4950.18 -4283.5 691.021"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 141.776 0"
+"origin" "-4755.07 -3956.47 706.986"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 136.692 0"
+"origin" "-4788.98 -4236.91 677.36"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 142.275 0"
+"origin" "-4860.91 -4054.94 689.753"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 145.937 0"
+"origin" "-4658.05 -4180.44 677.005"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 135.456 0"
+"origin" "-4556.96 -4489.46 676.997"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 141.59 0"
+"origin" "-4368.02 -4659.16 677.095"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 50.3557 0"
+"origin" "-3067.86 -4140.96 676.992"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 31.9057 0"
+"origin" "-3220.18 -3619.63 676.991"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 128.27 0"
+"origin" "-6730.49 -4096.46 596.637"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 144.639 0"
+"origin" "-7016.04 -3992.89 615.352"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 144.639 0"
+"origin" "-6970.05 -3936.68 613.751"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 137.753 0"
+"origin" "-6828.88 -3835.72 613.356"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 127.562 0"
+"origin" "-6906.02 -4206.28 621.319"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -30.354 0"
+"origin" "-7229.86 -3833.26 628.919"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -30.354 0"
+"origin" "-7189.66 -3781.25 615.588"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 1.4328 0"
+"origin" "-7652.91 -3868.36 613.737"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 169.997 0"
+"origin" "-3390.69 -409.783 628.126"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 145.444 0"
+"origin" "-3539.24 -628.953 653.85"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 170.226 0"
+"origin" "-3422.48 163.181 678.375"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 153.366 0"
+"origin" "-3977.6 -507.186 620.654"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -87.59 0"
+"origin" "-4051.64 -1031.06 642.338"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -106.967 0"
+"origin" "-3654.05 -1080.95 691.825"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 12.1599 0"
+"origin" "-4318.36 -436.306 653.563"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 36.0196 0"
+"origin" "-4284.9 -513.31 662.829"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -11.207 0"
+"origin" "-4220.42 -156.665 650.563"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -1.414 0"
+"origin" "-4181.35 -321.315 624.302"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -1.414 0"
+"origin" "-4146.35 640.5 599.621"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -1.414 0"
+"origin" "-4251.01 554.427 604.121"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 178.584 0"
+"origin" "-3355.36 -264.48 591.022"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 178.584 0"
+"origin" "-3434.78 494.689 570.717"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 178.584 0"
+"origin" "-3370.48 572.305 569.7"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 169.186 0"
+"origin" "-3338.88 371.23 595.424"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -87.59 0"
+"origin" "-3826.48 103.86 556.936"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -94.751 0"
+"origin" "-3612.14 -8.40236 573.338"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -100.359 0"
+"origin" "-3683.58 -455.71 633.426"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -93.066 0"
+"origin" "-3761.73 -451.058 623.982"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -94.751 0"
+"origin" "-3613.3 411.581 580.228"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -119.661 0"
+"origin" "-4356.36 485.86 609.257"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -67.568 0"
+"origin" "-3133.43 306.76 585.95"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -41.623 0"
+"origin" "-3233.32 119.493 660.132"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -52.608 0"
+"origin" "-3168.23 169.574 666.278"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -3.2097 0"
+"origin" "-3645.72 -387.85 633.759"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -15.827 0"
+"origin" "-5718.78 266.283 612"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 149.723 0"
+"origin" "-6117.19 -1016.82 548"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 134.837 0"
+"origin" "-6511.07 -1400.55 548"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 149.723 0"
+"origin" "-6988.63 -863.72 556"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -121.753 0"
+"origin" "-7241.91 -1372.73 556"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -134.726 0"
+"origin" "-6574.62 -1243.04 547.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -59.767 0"
+"origin" "-4954.64 413.425 612"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -147.04 0"
+"origin" "-5435.04 961.184 608"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -152.864 0"
+"origin" "-5958.78 512.058 612"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -137.45 0"
+"origin" "-6242.19 758.578 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -116.477 0"
+"origin" "-7831.51 -202.67 628"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 52.7583 0"
+"origin" "-7270.91 -2360.21 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -85.297 0"
+"origin" "-4082.07 -369.953 635.191"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 36.0196 0"
+"origin" "-4220.19 -580.09 662.354"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -62.22 0"
+"origin" "-4760.92 -245.885 605.061"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -106.967 0"
+"origin" "-3491.43 -947.177 682.578"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -88.642 0"
+"origin" "-3806.81 -915.8 630.794"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -88.642 0"
+"origin" "-3941.86 -835.906 621.134"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 65.2752 0"
+"origin" "-4196.32 -1418.68 747.066"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 91.358 0"
+"origin" "-3929.93 -1441.03 756.15"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 91.358 0"
+"origin" "-3775.94 -1462.05 754.149"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 91.358 0"
+"origin" "-3842.78 -1503.14 752.756"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -45.827 0"
+"origin" "-6790.89 -742.16 556"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -45.827 0"
+"origin" "-6766.08 -864.268 556"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -45.827 0"
+"origin" "-6587.41 -782.693 556.001"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -6.8311 0"
+"origin" "-7206.05 -1215.3 556.001"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -45.827 0"
+"origin" "-6327.11 -1407.17 547.996"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -45.827 0"
+"origin" "-6088.45 -1240.85 547.997"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 177.117 0"
+"origin" "-6528.74 -915.604 555.999"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 134.344 0"
+"origin" "-6842.1 -1983.31 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -172.091 0"
+"origin" "-2720.74 -3872.36 676"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -104.654 0"
+"origin" "-7818.54 -2545.53 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -106.009 0"
+"origin" "-7399.23 -2652.41 612"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -104.654 0"
+"origin" "-7682.55 -2236.73 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -103.491 0"
+"origin" "-7539.35 -2731.02 612.361"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -106.182 0"
+"origin" "-7556.15 -2515.44 612"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -103.272 0"
+"origin" "-7677.14 -2555.86 608"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 47.2903 0"
+"origin" "-7227.17 -1653.07 620"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 68.2386 0"
+"origin" "-7138.14 -1745.69 620"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -35.745 0"
+"origin" "-7295.84 -854.727 611.999"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 163.129 0"
+"origin" "-1079.54 -1393.29 543.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 164.256 0"
+"origin" "-644.283 -1287.47 551.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 163.129 0"
+"origin" "-608.017 -1548.47 543.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 121.938 0"
+"origin" "-1044.76 -1919.15 551.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -96.65 0"
+"origin" "-837.209 -1825.28 543.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -96.65 0"
+"origin" "-903.926 -1817.26 544"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 88.1533 0"
+"origin" "-912.089 -1918.1 543.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 109.373 0"
+"origin" "-773.872 -1925.72 543.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -96.65 0"
+"origin" "-652.95 -1876.11 544.306"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 146.327 0"
+"origin" "-671.199 -1642.57 543.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 138.57 0"
+"origin" "-562.81 -1962.17 545.867"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 158.674 0"
+"origin" "-498.6 -2227.35 551.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 90.7323 0"
+"origin" "-620.521 -2460.53 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 90.6667 0"
+"origin" "-560.453 -2459.98 545.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 90.7323 0"
+"origin" "-894.677 -2483.51 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 90.6667 0"
+"origin" "-1112.58 -2730.83 551.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 90.6667 0"
+"origin" "-664.477 -3024.61 544"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -89.333 0"
+"origin" "-741.66 -2149.92 544.001"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -92.033 0"
+"origin" "-1111.41 -2322.08 552"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -44.455 0"
+"origin" "-1293.77 -1707.54 551.999"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -45.719 0"
+"origin" "-1251.96 -1672.37 551.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -44.385 0"
+"origin" "-1455.92 -1275.27 551.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -45.719 0"
+"origin" "-1489.37 -964.045 544"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -44.385 0"
+"origin" "-1578.43 -999.334 544"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -90.518 0"
+"origin" "-1084.1 -953.878 546.075"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -96.65 0"
+"origin" "-732.146 -1010.05 552"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -1.2453 0"
+"origin" "-1537.71 -2839.76 676"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 3.1461 0"
+"origin" "-1517.71 -2924.2 676"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 139.352 0"
+"origin" "-2670.74 -602.656 543.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 149.245 0"
+"origin" "-1335.03 -1348.38 551.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 163.141 0"
+"origin" "-1032.31 -1085.11 543.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 74.4128 0"
+"origin" "-7853.43 -3034.08 612.36"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 74.4128 0"
+"origin" "-7751.29 -3071.42 612.36"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 167.629 0"
+"origin" "-5558.09 239.798 608"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 166.842 0"
+"origin" "-5227.33 360.85 613.635"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 135.208 0"
+"origin" "-5036.83 -214.626 613.635"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -150.455 0"
+"origin" "-5086.52 870.636 608"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -72.328 0"
+"origin" "-7478.87 -1322.08 620"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -49.23 0"
+"origin" "-7623.01 -1502.26 620"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -65.552 0"
+"origin" "-7408.93 -1568.43 619.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 129.387 0"
+"origin" "-7336.82 -1684.9 620.003"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 98.3354 0"
+"origin" "-7571.35 -1622.74 620"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 42.8562 0"
+"origin" "-7656.57 -851.33 608.001"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 50.9043 0"
+"origin" "-7387.3 -708.065 610.848"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -43.957 0"
+"origin" "-7396.13 -598.89 607.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -135.93 0"
+"origin" "-7294.09 -599.115 608.001"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -91.508 0"
+"origin" "-7590.79 -518.696 608"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -44.973 0"
+"origin" "-8232.15 -1676.94 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -44.973 0"
+"origin" "-8297.91 -2135.64 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -44.973 0"
+"origin" "-7915.97 -2454.28 612"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -45.665 0"
+"origin" "-7837.14 -2371.42 612"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -57.871 0"
+"origin" "-7613.43 -2143.64 612"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -44.634 0"
+"origin" "-8221.14 -1858.24 612"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -44.634 0"
+"origin" "-8328.48 -1787.78 612"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -44.634 0"
+"origin" "-8105.31 -1568.36 612"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 135.07 0"
+"origin" "-7298.37 -1518.83 620"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 98.8941 0"
+"origin" "-7408.47 -2129.94 620"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 75.1534 0"
+"origin" "-8007.74 -1160.66 608"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 44.2621 0"
+"origin" "-7462.92 -338.168 608"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 62.0431 0"
+"origin" "-7068.96 -645.363 611.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 60.7599 0"
+"origin" "-7127.36 -397.457 608.001"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 60.7599 0"
+"origin" "-6927.11 -247.45 607.997"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 48.9231 0"
+"origin" "-7026.65 -5.52116 608.269"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 44.1453 0"
+"origin" "-6898.84 -14.349 608.002"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 15.7763 0"
+"origin" "-7300.53 28.8221 615.989"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 15.7763 0"
+"origin" "-7312.08 -81.1711 615.989"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -142.622 0"
+"origin" "-6235.65 488.89 608"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -142.622 0"
+"origin" "-6285.76 583.541 608"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -93.005 0"
+"origin" "-7723.87 -317.694 620"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -110.578 0"
+"origin" "-7905.4 -806.484 608"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -110.545 0"
+"origin" "-8213.91 -1169.36 615.987"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -45.24 0"
+"origin" "-7779.74 -1457.22 620.001"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -118.793 0"
+"origin" "-7262.46 -2112.76 620"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 134.921 0"
+"origin" "-7069.4 -2059.8 619.999"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 134.921 0"
+"origin" "-6965.36 -2039.65 619.999"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 134.921 0"
+"origin" "-7067.73 -2181.29 620"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 134.438 0"
+"origin" "-7030.15 -1103.6 548.001"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 136.86 0"
+"origin" "-6958.79 -1023.52 548.001"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -122.915 0"
+"origin" "-6945.45 -1438.47 556.001"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -122.915 0"
+"origin" "-7076.89 -1356.67 547.999"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -27.741 0"
+"origin" "-6712.3 -1092.64 548.002"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -134.322 0"
+"origin" "-5838.37 -3486.14 623.998"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -134.322 0"
+"origin" "-5496.42 -3821.66 631.422"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -140.821 0"
+"origin" "-5635.04 -3386.63 639.998"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 44.8896 0"
+"origin" "-6389.73 -4358.61 596.68"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 45.8775 0"
+"origin" "-6190.79 -4504.95 596.59"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 39.1821 0"
+"origin" "-6138.37 -4365.84 543.997"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 49.869 0"
+"origin" "-6376.99 -4116.28 544.057"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 27.2854 0"
+"origin" "-6635.28 -4149.75 596.612"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 65.6465 0"
+"origin" "-5782.65 -4230.55 583.998"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 26.5723 0"
+"origin" "-6314.25 -3798.62 575.997"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 127.22 0"
+"origin" "-3975.97 -999.631 640.261"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 92.9475 0"
+"origin" "-3872.5 -954.094 635.842"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 39.1837 0"
+"origin" "-3746.29 -970.234 648.015"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 46.5053 0"
+"origin" "-3724.16 -1060.16 683.97"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 161.034 0"
+"origin" "-4931.75 -34.5351 612"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 167.601 0"
+"origin" "-4781.9 31.9081 609.512"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -88.88 0"
+"origin" "-3746.59 -1326.22 758.167"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -88.88 0"
+"origin" "-3862.17 -1403.46 755.403"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -88.88 0"
+"origin" "-4003.82 -1376.79 756.963"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -88.88 0"
+"origin" "-3818.67 -1310.57 736.729"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -88.88 0"
+"origin" "-3934.48 -1329.37 736.936"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 37.525 0"
+"origin" "-3261.78 -3825.89 676.991"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 42.1465 0"
+"origin" "-3004.11 -3943.44 676.99"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 29.8149 0"
+"origin" "-3785.85 -3979.67 676.99"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 146.092 0"
+"origin" "-7418.79 -3618.09 613.878"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 172.826 0"
+"origin" "-7497.34 -3881.1 613.738"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 164.11 0"
+"origin" "-7547.81 -3444.96 613.877"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 157.092 0"
+"origin" "-7382.1 -3382.33 613.951"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 171.98 0"
+"origin" "-7485.88 -4015.78 613.548"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 157.092 0"
+"origin" "-7068.7 -3627.8 630.557"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 135.409 0"
+"origin" "-7242 -3626.56 613.868"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 172.826 0"
+"origin" "-8034.04 -3907.92 612.36"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -16.281 0"
+"origin" "-8775.36 -3606.64 612.36"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -21.388 0"
+"origin" "-8728.06 -3723.08 612.36"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -16.725 0"
+"origin" "-8815.03 -3338.83 612.36"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -16.725 0"
+"origin" "-8472.9 -3035.34 612.361"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -16.725 0"
+"origin" "-8565.71 -3076.37 612.361"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -14.902 0"
+"origin" "-8536.68 -3642.07 612.36"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 150.096 0"
+"origin" "-6212.22 -1136.77 547.999"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 150.096 0"
+"origin" "-6376.93 -1153.07 548.001"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 150.096 0"
+"origin" "-6414.51 -1276.82 548.001"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 150.096 0"
+"origin" "-6223.32 -1303.52 547.999"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 169.832 0"
+"origin" "-5966.13 -1125.8 547.999"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -38.38 0"
+"origin" "-5580.96 453.289 612"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -11.798 0"
+"origin" "-5505.55 126.512 608"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -23.195 0"
+"origin" "-5691.8 369.818 608"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 179.146 0"
+"origin" "-5036.52 317.736 612"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 168.352 0"
+"origin" "-5023.53 106.622 611.999"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 139.991 0"
+"origin" "-4948.58 -138.127 612"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 175.641 0"
+"origin" "-4429.96 -6.77726 602.128"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -174.096 0"
+"origin" "-4064.05 -2378.34 745.168"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 0 0"
+"origin" "-5046.06 -2380.52 745.707"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 133.798 0"
+"origin" "-2495.17 -3816.94 676"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 177.129 0"
+"origin" "-2066.1 -3675.86 676"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 179.93 0"
+"origin" "-2192.01 -2920.02 676"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 88.3595 0"
+"origin" "-2666.73 -3245.09 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -99.291 0"
+"origin" "-2636.56 -2930.83 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -99.69 0"
+"origin" "-2271.33 -2856.08 676"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -99.291 0"
+"origin" "-2536.56 -2538.83 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 93.3102 0"
+"origin" "-2538.32 -2696.92 676"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 121.451 0"
+"origin" "-2235.09 -2639.19 675.999"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "98"
+"scale" "1"
+"angles" "0 -4.3496 0"
+"origin" "-4401.73 -4281.28 677.088"
+"classname" "info_node_cover_left"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "80"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "99"
+"scale" "1"
+"angles" "0 -19.849 0"
+"origin" "-4269.17 -4009.47 676.992"
+"classname" "info_node_cover_right"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 12.1031 0"
+"origin" "-4586.41 -4582 677.095"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 12.1031 0"
+"origin" "-4728.61 -4679.2 805"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -17.189 0"
+"origin" "-4572.98 -4366.2 676.992"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 45.1009 0"
+"origin" "-3993.2 -4718.89 676.992"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 45.1009 0"
+"origin" "-3937.2 -4774.89 676.992"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -138.479 0"
+"origin" "-3158.38 -3881.2 676.992"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "100"
+"scale" "1"
+"angles" "0 -138.479 0"
+"origin" "-3102.38 -3937.2 676.992"
+"classname" "info_node_cover_stand"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 46.1752 0"
+"origin" "-3862.58 -4359.17 676.991"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 -133.625 0"
+"origin" "-3489.45 -4008.82 676.991"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 135.596 0"
+"origin" "-3206.01 -4144.01 676.991"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 135.596 0"
+"origin" "-3781.91 -4714.67 676.994"
+"classname" "info_node_cover_crouch"
+}
+{
+"TargetNode" "-1"
+"spawnflags" "0"
+"nodeFOV" "120"
+"MinimumState" "1"
+"MaximumState" "3"
+"IgnoreFacing" "2"
+"hinttype" "101"
+"scale" "1"
+"angles" "0 135.596 0"
+"origin" "-3669.82 -4608.87 676.989"
+"classname" "info_node_cover_crouch"
+}
+{
+"editorclass" "script_power_up_other"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0 90 2.53193e-006"
+"origin" "-5243 -3233 712"
+"powerUpType" "mp_loot_titan_build_credit_lts"
+"classname" "script_ref"
+}
+{
+"editorclass" "script_power_up_other"
+"model" "models/communication/flag_base_red.mdl"
+"scale" "1"
+"angles" "0 90 2.53193e-006"
+"origin" "-4492.01 -1536.57 692.025"
+"powerUpType" "mp_loot_titan_build_credit_lts"
+"classname" "script_ref"
+}
+{
+"origin" "-7697.6 -3277.22 2118"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damagecap" "20"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 455.62012"
+"*trigger_brush_0_plane_1" "1 0 0 455.61328"
+"*trigger_brush_0_plane_2" "0 -1 0 513.23438"
+"*trigger_brush_0_plane_3" "0 1 0 513.2417"
+"*trigger_brush_0_plane_4" "0 -0 -1 182"
+"*trigger_brush_0_plane_5" "-0 -0 1 182"
+"*trigger_brush_0_plane_6" "-0.98972714 0.14296904 0 393.67426"
+"*trigger_brush_0_plane_7" "0.14312822 0.98970413 0 461.63812"
+"*trigger_brush_0_plane_8" "0.98972714 -0.14296904 0 393.66644"
+"*trigger_brush_0_plane_9" "-0.14312822 -0.98970413 -0 461.63187"
+"*trigger_brush_0_plane_10" "-0.98972714 0.14296903 0 393.67426"
+"*trigger_brush_0_plane_11" "0.14312823 0.98970425 -0 461.63818"
+"*trigger_brush_0_plane_12" "0.98972714 -0.14296903 0 393.66644"
+"*trigger_brush_0_plane_13" "-0.14312823 -0.98970425 -0 461.6319"
+"*trigger_brush_0_plane_14" "-0.59868395 0.80098528 0 604.84576"
+"*trigger_brush_0_plane_15" "-0.80098528 -0.59868395 0 604.74408"
+"*trigger_brush_0_plane_16" "0.80098528 0.59868395 0 604.74304"
+"*trigger_brush_0_plane_17" "0.59868395 -0.80098528 0 604.83582"
+"*trigger_bounds_mins" "-455.62012 -513.23438 -182"
+"*trigger_bounds_maxs" "455.61328 513.2417 182"
+}
+{
+"origin" "-10901 -6447.86 1272"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damagecap" "20"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 3209.627"
+"*trigger_brush_0_plane_1" "1 0 0 3209.6821"
+"*trigger_brush_0_plane_2" "0 -1 0 1600.1504"
+"*trigger_brush_0_plane_3" "0 1 0 1600.1563"
+"*trigger_brush_0_plane_4" "0 0 -1 2132"
+"*trigger_brush_0_plane_5" "-0 0 1 2132"
+"*trigger_brush_0_plane_6" "-0.93357444 0.35838348 0 3260.9895"
+"*trigger_brush_0_plane_7" "0.35853338 0.93351692 0 461.64783"
+"*trigger_brush_0_plane_8" "0.93357444 -0.35838348 0 3261.0391"
+"*trigger_brush_0_plane_9" "-0.35853338 -0.93351692 -0 461.62238"
+"*trigger_brush_0_plane_10" "-0.93357456 0.35838351 0 3260.99"
+"*trigger_brush_0_plane_11" "0.93357456 -0.35838351 0 3261.0396"
+"*trigger_brush_0_plane_12" "-0.40664804 0.91358483 0 2632.5132"
+"*trigger_brush_0_plane_13" "-0.91358477 -0.40664807 0 2632.0728"
+"*trigger_brush_0_plane_14" "0.91358477 0.40664807 0 2632.1255"
+"*trigger_brush_0_plane_15" "0.40664804 -0.91358483 0 2632.5305"
+"*trigger_bounds_mins" "-3209.627 -1600.1503 -2132"
+"*trigger_bounds_maxs" "3209.6821 1600.1563 2132"
+}
+{
+"origin" "-12224.3 -2684.64 1302"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damagecap" "20"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 1919.71"
+"*trigger_brush_0_plane_1" "1 0 0 1919.6924"
+"*trigger_brush_0_plane_2" "0 -1 0 2792.1941"
+"*trigger_brush_0_plane_3" "0 1 0 2792.1877"
+"*trigger_brush_0_plane_4" "0 0 -1 2162"
+"*trigger_brush_0_plane_5" "0 -0 1 2162"
+"*trigger_brush_0_plane_6" "0.35838318 0.93357456 0 2582.3491"
+"*trigger_brush_0_plane_7" "0.93351686 -0.35853344 0 1064.5466"
+"*trigger_brush_0_plane_8" "-0.3583833 -0.93357456 -0 2582.3618"
+"*trigger_brush_0_plane_9" "-0.93351692 0.35853329 0 1064.5614"
+"*trigger_brush_0_plane_10" "0.93351698 -0.35853344 0 1064.5468"
+"*trigger_brush_0_plane_11" "-0.35838333 -0.93357462 -0 2582.3618"
+"*trigger_brush_0_plane_12" "-0.93351704 0.35853329 0 1064.5614"
+"*trigger_brush_0_plane_13" "0.91358483 0.40664819 0 2578.9524"
+"*trigger_brush_0_plane_14" "-0.40664828 0.91358477 0 2578.5479"
+"*trigger_brush_0_plane_15" "0.4066481 -0.91358483 0 2578.5464"
+"*trigger_brush_0_plane_16" "-0.91358471 -0.40664825 0 2578.9709"
+"*trigger_bounds_mins" "-1919.7101 -2792.1941 -2162"
+"*trigger_bounds_maxs" "1919.6924 2792.1877 2162"
+}
+{
+"origin" "-9678.93 1486.6 1272"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damagecap" "20"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 1984.2383"
+"*trigger_brush_0_plane_1" "1 0 0 1984.2451"
+"*trigger_brush_0_plane_2" "0 -1 0 2092.8115"
+"*trigger_brush_0_plane_3" "0 1 0 2092.8159"
+"*trigger_brush_0_plane_4" "0 0 -1 2132"
+"*trigger_brush_0_plane_5" "-0 0 1 2132"
+"*trigger_brush_0_plane_6" "0.66694921 0.74510318 0 2141.3713"
+"*trigger_brush_0_plane_7" "0.74499589 -0.66706908 0 745.94049"
+"*trigger_brush_0_plane_8" "-0.66694921 -0.74510318 -0 2141.3635"
+"*trigger_brush_0_plane_9" "-0.74499589 0.66706902 0 745.93823"
+"*trigger_brush_0_plane_10" "-0.66694921 -0.74510324 -0 2141.3635"
+"*trigger_brush_0_plane_11" "-0.74499595 0.66706908 0 745.93829"
+"*trigger_bounds_mins" "-1984.2383 -2092.8115 -2132"
+"*trigger_bounds_maxs" "1984.2452 2092.8157 2132"
+}
+{
+"origin" "-6096.88 -6585.13 3646"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damagecap" "20"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 186.99512"
+"*trigger_brush_0_plane_1" "1 0 0 187.00488"
+"*trigger_brush_0_plane_2" "0 -1 0 195.37012"
+"*trigger_brush_0_plane_3" "0 1 0 195.37988"
+"*trigger_brush_0_plane_4" "0 0 -1 1534"
+"*trigger_brush_0_plane_5" "-0 0 1 1534"
+"*trigger_brush_0_plane_6" "-0.93360478 0.35830453 0 140.7215"
+"*trigger_brush_0_plane_7" "0.35880053 0.93341428 0 155.19298"
+"*trigger_brush_0_plane_8" "0.93355304 -0.35843927 0 140.74951"
+"*trigger_brush_0_plane_9" "-0.35841355 -0.93356293 -0 155.23872"
+"*trigger_brush_0_plane_10" "-0.93360478 0.35830456 0 140.7215"
+"*trigger_brush_0_plane_11" "0.9335531 -0.35843927 0 140.74953"
+"*trigger_brush_0_plane_12" "-0.35841355 -0.93356299 -0 155.23874"
+"*trigger_brush_0_plane_13" "-0.40655595 0.91362584 0 209.29874"
+"*trigger_brush_0_plane_14" "-0.91354162 -0.40674537 0 209.26328"
+"*trigger_brush_0_plane_15" "0.91365522 0.40649006 0 209.22247"
+"*trigger_brush_0_plane_16" "0.40667942 -0.91357088 0 209.2924"
+"*trigger_bounds_mins" "-186.99512 -195.37012 -1534"
+"*trigger_bounds_maxs" "187.00488 195.37988 1534"
+}
+{
+"origin" "-5132.81 -6293.13 3646"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damagecap" "20"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 96.314941"
+"*trigger_brush_0_plane_1" "1 0 0 96.310059"
+"*trigger_brush_0_plane_2" "0 -1 0 95.370117"
+"*trigger_brush_0_plane_3" "0 1 0 95.379883"
+"*trigger_brush_0_plane_4" "0 0 -1 1534"
+"*trigger_brush_0_plane_5" "-0 0 1 1534"
+"*trigger_brush_0_plane_6" "-0.93378407 0.35783696 0 75.044144"
+"*trigger_brush_0_plane_7" "0.3588675 0.93338853 0 73.302734"
+"*trigger_brush_0_plane_8" "0.93338954 -0.35886484 0 75.00016"
+"*trigger_brush_0_plane_9" "-0.35842046 -0.93356025 -0 73.376137"
+"*trigger_brush_0_plane_10" "0.3588675 0.93338859 -0 73.302734"
+"*trigger_brush_0_plane_11" "0.9333896 -0.35886484 0 75.000168"
+"*trigger_brush_0_plane_12" "-0.35842046 -0.93356031 -0 73.376129"
+"*trigger_brush_0_plane_13" "-0.40675199 0.91353858 0 104.95502"
+"*trigger_brush_0_plane_14" "-0.91344124 -0.40697074 0 104.91621"
+"*trigger_brush_0_plane_15" "0.91376239 0.40624902 0 104.86583"
+"*trigger_brush_0_plane_16" "0.40646777 -0.91366512 0 104.89292"
+"*trigger_bounds_mins" "-96.314941 -95.370117 -1534"
+"*trigger_bounds_maxs" "96.310059 95.379883 1534"
+}
+{
+"origin" "-5816.81 -7577.13 3646"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damagecap" "20"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 96.314941"
+"*trigger_brush_0_plane_1" "1 0 0 96.310059"
+"*trigger_brush_0_plane_2" "0 -1 0 95.370117"
+"*trigger_brush_0_plane_3" "0 1 0 95.379883"
+"*trigger_brush_0_plane_4" "0 0 -1 1534"
+"*trigger_brush_0_plane_5" "-0 0 1 1534"
+"*trigger_brush_0_plane_6" "-0.93378407 0.35783696 0 75.044144"
+"*trigger_brush_0_plane_7" "0.3588675 0.93338853 0 73.302734"
+"*trigger_brush_0_plane_8" "0.93338954 -0.35886484 0 75.00016"
+"*trigger_brush_0_plane_9" "-0.35842046 -0.93356025 -0 73.376137"
+"*trigger_brush_0_plane_10" "0.3588675 0.93338859 -0 73.302734"
+"*trigger_brush_0_plane_11" "0.9333896 -0.35886484 0 75.000168"
+"*trigger_brush_0_plane_12" "-0.35842046 -0.93356031 -0 73.376129"
+"*trigger_brush_0_plane_13" "-0.40675199 0.91353858 0 104.95502"
+"*trigger_brush_0_plane_14" "-0.91344124 -0.40697074 0 104.91621"
+"*trigger_brush_0_plane_15" "0.91376239 0.40624902 0 104.86583"
+"*trigger_brush_0_plane_16" "0.40646777 -0.91366512 0 104.89292"
+"*trigger_bounds_mins" "-96.314941 -95.370117 -1534"
+"*trigger_bounds_maxs" "96.310059 95.379883 1534"
+}
+{
+"origin" "-7132.81 -7741.13 3646"
+"triggerNearbyRadius" "0"
+"triggerFilterTeamOther" "1"
+"triggerFilterTeamNeutral" "1"
+"triggerFilterTeamMilitia" "1"
+"triggerFilterTeamIMC" "1"
+"triggerFilterTeamBeast" "1"
+"triggerFilterPlayer" "all"
+"triggerFilterPhaseShift" "any"
+"triggerFilterNpcOwnedByPlayer" "any"
+"triggerFilterNpcFlip" "0"
+"triggerFilterNpc" "all"
+"triggerFilterNonCharacter" "0"
+"StartDisabled" "0"
+"spawnflags" "4099"
+"nodmgforce" "1"
+"mobility_3_hard" "1"
+"mobility_2_normal" "1"
+"mobility_1_easy" "1"
+"damageSourceName" "fall"
+"damagemodel" "0"
+"damagecap" "20"
+"damage" "10000"
+"triggerFilterUseNew" "1"
+"classname" "trigger_hurt"
+"*trigger_brush_0_plane_0" "-1 0 0 96.314941"
+"*trigger_brush_0_plane_1" "1 0 0 96.310059"
+"*trigger_brush_0_plane_2" "0 -1 0 95.370117"
+"*trigger_brush_0_plane_3" "0 1 0 95.379883"
+"*trigger_brush_0_plane_4" "0 0 -1 1534"
+"*trigger_brush_0_plane_5" "-0 0 1 1534"
+"*trigger_brush_0_plane_6" "-0.93378407 0.35783696 0 75.044144"
+"*trigger_brush_0_plane_7" "0.3588675 0.93338853 0 73.302734"
+"*trigger_brush_0_plane_8" "0.93338954 -0.35886484 0 75.00016"
+"*trigger_brush_0_plane_9" "-0.35842046 -0.93356025 -0 73.376137"
+"*trigger_brush_0_plane_10" "0.3588675 0.93338859 -0 73.302734"
+"*trigger_brush_0_plane_11" "0.9333896 -0.35886484 0 75.000168"
+"*trigger_brush_0_plane_12" "-0.35842046 -0.93356031 -0 73.376129"
+"*trigger_brush_0_plane_13" "-0.40675199 0.91353858 0 104.95502"
+"*trigger_brush_0_plane_14" "-0.91344124 -0.40697074 0 104.91621"
+"*trigger_brush_0_plane_15" "0.91376239 0.40624902 0 104.86583"
+"*trigger_brush_0_plane_16" "0.40646777 -0.91366512 0 104.89292"
+"*trigger_bounds_mins" "-96.314941 -95.370117 -1534"
+"*trigger_bounds_maxs" "96.310059 95.379883 1534"
+}
+
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut
index da4e50f5..191c3b24 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut
@@ -27,7 +27,9 @@ HarvesterStruct function SpawnHarvester( vector origin, vector angles, int healt
harvester.SetShieldHealthMax( shieldHealth )
harvester.SetShieldHealth( shieldHealth )
harvester.EnableAttackableByAI( 30, 0, AI_AP_FLAG_NONE )
- SetObjectCanBeMeleed( harvester, false )
+ SetCustomSmartAmmoTarget( harvester, true )
+ SetObjectCanBeMeleed( harvester, true )
+ SetVisibleEntitiesInConeQueriableEnabled( harvester, true )
SetTeam(harvester,team)
// create dangerous area to all AI because we dont want any AI clipping into the harvester ever
// radius of 90 cos thats like 7.5 metres? AI shouldnt rally need to get closer than that (except nuke titans and stalkers)
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_items.nut b/Northstar.CustomServers/mod/scripts/vscripts/_items.nut
index 539b72bc..a5c3e270 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_items.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_items.nut
@@ -5698,7 +5698,13 @@ bool function IsUnlockValid( string ref, string parentRef = "" )
bool function IsSubItemLocked( entity player, string ref, string parentRef )
{
- if ( DevEverythingUnlocked() )
+ if ( DevEverythingUnlocked( player ) )
+ return false
+
+ if ( IsItemPurchasableEntitlement( ref, parentRef ) )
+ return false
+
+ if ( GetItemType( ref ) == eItemTypes.PRIME_TITAN || GetSubitemType( parentRef, ref ) == eItemTypes.PRIME_TITAN )
return false
if ( IsItemInEntitlementUnlock( ref, parentRef ) )
@@ -5817,7 +5823,13 @@ bool function IsSubItemLocked( entity player, string ref, string parentRef )
bool function IsItemLocked( entity player, string ref )
{
- if ( DevEverythingUnlocked() )
+ if ( DevEverythingUnlocked( player ) )
+ return false
+
+ if ( IsItemPurchasableEntitlement( ref ) )
+ return false
+
+ if ( GetItemType( ref ) == eItemTypes.PRIME_TITAN )
return false
if ( IsItemInEntitlementUnlock( ref ) )
@@ -5906,7 +5918,7 @@ bool function IsItemLockedForEntitlement( entity player, string ref, string pare
bool function IsSubItemOwned( entity player, string ref, string parentRef )
{
- if ( DevEverythingUnlocked() )
+ if ( DevEverythingUnlocked( player ) )
return false
Assert( IsValid( player ) )
@@ -5990,7 +6002,7 @@ bool function IsSubItemOwned( entity player, string ref, string parentRef )
bool function IsItemOwned( entity player, string ref )
{
- if ( DevEverythingUnlocked() )
+ if ( DevEverythingUnlocked( player ) )
return false
Assert( IsValid( player ) )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_menu_callbacks.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_menu_callbacks.gnut
index 1092bf2d..6499faa2 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_menu_callbacks.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_menu_callbacks.gnut
@@ -65,6 +65,8 @@ bool function ClientCommandCallback_GenUp( entity player, array<string> args )
player.GenChanged()
player.XPChanged()
}
+
+ RegenPersistentLoadouts(player)
return true
} \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_utility_shared.nut b/Northstar.CustomServers/mod/scripts/vscripts/_utility_shared.nut
index c5887f2b..47dd9294 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_utility_shared.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_utility_shared.nut
@@ -1601,6 +1601,9 @@ float function GetPulseFrac( rate = 1, startTime = 0 )
bool function IsPetTitan( titan )
{
Assert( titan.IsTitan() )
+
+ if ( !titan.GetTitanSoul() )
+ return false
return titan.GetTitanSoul().GetBossPlayer() != null
}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_xp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_xp.gnut
index 6f044b7a..2b95d1a8 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_xp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_xp.gnut
@@ -1,6 +1,7 @@
global function SvXP_Init
global function PlayerProgressionAllowed
global function HandleXPGainForScoreEvent
+global function AddXP
void function SvXP_Init()
{
@@ -29,46 +30,38 @@ bool function PlayerProgressionAllowed( entity player )
void function HandleXPGainForScoreEvent( entity player, ScoreEvent event )
{
// note: obviously all xp stuff can be cheated in if people want to on customs, this is mainly just here for fun for those who want it and feature completeness
- // most score events don't have this, so we'll set this to the xp value of other categories later if needed
+
int xpValue = ScoreEvent_GetXPValue( event )
int weaponXp = ScoreEvent_GetXPValueWeapon( event )
int titanXp = ScoreEvent_GetXPValueTitan( event )
-
- if ( xpValue < weaponXp )
- xpValue = weaponXp
- else if ( xpValue < titanXp )
- xpValue = titanXp
+ int factionXp = ScoreEvent_GetXPValueFaction( event )
entity weapon = player.GetActiveWeapon()
- if ( IsValid( weapon ) && ShouldTrackXPForWeapon( weapon.GetWeaponClassName() ) )
- AddWeaponXP( player, xpValue )
+ if ( IsValid( weapon ) && ShouldTrackXPForWeapon( weapon.GetWeaponClassName() ) && weaponXp != 0 )
+ AddWeaponXP( player, weaponXp )
// if we specifically gain titan xp, then give titan xp no matter what, otherwise only give it when we're in a titan
- if ( titanXp != 0 || player.IsTitan() )
- AddTitanXP( player, xpValue )
-
- // most events don't have faction xp but almost everything should give it
- int factionXp = ScoreEvent_GetXPValueFaction( event )
- if ( xpValue > factionXp )
- factionXp = xpValue
- else if ( xpValue < factionXp )
- xpValue = factionXp
+ if ( titanXp != 0 )
+ AddTitanXP( player, titanXp )
if ( factionXp != 0 )
AddFactionXP( player, factionXp )
- if ( xpValue == 0 )
- return
-
// global xp
+ if ( xpValue != 0 )
+ AddXP( player, xpValue )
+}
+
+void function AddXP( entity player, int amount )
+{
int oldXp = player.GetPersistentVarAsInt( "xp" )
- if(oldXp<0) oldXp = 0
+ if( oldXp < 0 ) oldXp = 0
int oldLevel = GetLevelForXP( oldXp )
- player.SetPersistentVar( "xp", min( oldXp + xpValue, PlayerGetMaxXPPerGen() ) )
+ player.SetPersistentVar( "xp", min( oldXp + amount, PlayerGetMaxXPPerGen() ) )
player.XPChanged() // network xp change to client, gen can't change here
int newXp = player.GetPersistentVarAsInt( "xp" )
int newLevel = GetLevelForXP( newXp )
if ( newLevel != oldLevel )
Remote_CallFunction_NonReplay( player, "ServerCallback_PlayerLeveledUp", player.GetPersistentVarAsInt( "gen" ), newLevel )
-} \ No newline at end of file
+}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers.gnut
index 9717c76d..89fb7a82 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers.gnut
@@ -60,6 +60,19 @@ function AiSoldiers_Init()
level.COOP_AT_WEAPON_RATES[ "mp_weapon_smr" ] <- 0.4
level.COOP_AT_WEAPON_RATES[ "mp_weapon_mgl" ] <- 0.1
+ // add stub death callback, because in _codecallbacks_common.gnut there is
+ // CodeCallback_OnEntityKilled which is only called when an entity is being tracked. An
+ // entity is set to be tracked if it has a death callback for it's class, unfortunately this
+ // is then relayed to clients and used for client side death callbacks. The end result of
+ // not having this function called is that clients become completely unaware of any grunt
+ // deaths. A noticeable difference here is that grunts do not play the kill confirmed audio
+ // except on War Games, which does register a callback for grunt deaths to make them dissolve.
+ //
+ // Whilst this may seem like a bit of a hacky solution, it is generally better than simply
+ // tracking all entities. If a different callback is created in the future for grunt deaths
+ // that is not specific to a gamemode, map, etc. then this could be removed
+ AddDeathCallback( "npc_soldier", void function( entity guy, var damageInfo ){} )
+
PrecacheSprite( $"sprites/glow_05.vmt" )
FlagInit( "disable_npcs" )
FlagInit( "Disable_IMC" )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
index f193643c..eb4e111c 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
@@ -266,6 +266,8 @@ void function UseBurnCardWeapon( entity weapon, entity player )
PlayerEarnMeter_SetRewardUsed( player )
thread PlayerInventory_PopInventoryItem( player )
+
+ UpdatePlayerStat( player, "misc_stats", "boostsActivated" )
}
void function UseBurnCardWeaponInCriticalSection( entity weapon, entity ownerPlayer )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/conversation/_grunt_chatter_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_grunt_chatter_mp.gnut
index 1a70c289..4eb423fd 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/conversation/_grunt_chatter_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_grunt_chatter_mp.gnut
@@ -1,11 +1,33 @@
global function GruntChatter_MP_Init
global function PlayGruntChatterMPLine
+const float CHATTER_FRIENDLY_GRUNT_DOWN_DIST_MAX = 1100.0
+const float CHATTER_SQUAD_DEPLETED_FRIENDLY_NEARBY_DIST = 650.0 // if any other friendly grunt is within this dist, squad deplete chatter won't play
+const float CHATTER_ENEMY_TITAN_DOWN_DIST_MAX = 1500.0
+const float CHATTER_NEARBY_GRUNT_TRACEFRAC_MIN = 0.95 // for when we need "LOS" trace
+
void function GruntChatter_MP_Init()
{
- //ShGruntChatter_MP_Init()
+ Assert( IsMultiplayer(), "MP Grunt chatter is restricted to Multiplayer only." )
+
+ AddCallback_OnPlayerKilled( GruntChatter_OnPlayerOrNPCKilled )
+ AddCallback_OnNPCKilled( GruntChatter_OnPlayerOrNPCKilled )
}
+
+
+
+/*=====================================================================================================================================================
+ _____ _ _____ _ _ _ __ __ _ _ _ _
+ / ____| | | / ____|| | | | | | | \/ | | || | (_) | |
+ | | __ _ __ _ _ _ __ | |_ | | | |__ __ _ | |_ | |_ ___ _ __ | \ / | _ _ | || |_ _ _ __ | | __ _ _ _ ___ _ __
+ | | |_ || '__|| | | || '_ \ | __| | | | '_ \ / _` || __|| __|/ _ \| '__| | |\/| || | | || || __|| || '_ \ | | / _` || | | | / _ \| '__|
+ | |__| || | | |_| || | | || |_ | |____ | | | || (_| || |_ | |_| __/| | | | | || |_| || || |_ | || |_) || || (_| || |_| || __/| |
+ \_____||_| \__,_||_| |_| \__| \_____||_| |_| \__,_| \__| \__|\___||_| |_| |_| \__,_||_| \__||_|| .__/ |_| \__,_| \__, | \___||_|
+ | | __/ |
+ |_| |___/
+/*===================================================================================================================================================*/
+
void function PlayGruntChatterMPLine( entity grunt, string conversationType )
{
#if !GRUNT_CHATTER_MP_ENABLED
@@ -15,4 +37,175 @@ void function PlayGruntChatterMPLine( entity grunt, string conversationType )
foreach ( entity player in GetPlayerArray() )
if ( ShouldPlayGruntChatterMPLine( conversationType, player, grunt ) )
Remote_CallFunction_Replay( player, "ServerCallback_PlayGruntChatterMP", GetConversationIndex( conversationType ), grunt.GetEncodedEHandle() )
+}
+
+void function GruntChatter_OnPlayerOrNPCKilled( entity deadGuy, entity attacker, var damageInfo )
+{
+ if ( !IsValid( deadGuy ) || !IsValid( attacker ) )
+ return
+
+ if( IsGrunt( attacker ) && IsPilot( deadGuy ) )
+ PlayGruntChatterMPLine( attacker, "bc_killenemypilot" )
+ else
+ GruntChatter_TryEnemyTitanDown( deadGuy )
+
+ if ( IsGrunt( deadGuy ) )
+ {
+ GruntChatter_TryFriendlyDown( deadGuy )
+ GruntChatter_TrySquadDepleted( deadGuy )
+ }
+}
+
+void function GruntChatter_TryFriendlyDown( entity deadGuy )
+{
+ entity closestGrunt = GruntChatter_FindClosestFriendlyHumanGrunt_LOS( deadGuy.GetOrigin(), deadGuy.GetTeam(), CHATTER_FRIENDLY_GRUNT_DOWN_DIST_MAX )
+ if ( !closestGrunt )
+ return
+
+ if ( !GruntChatter_CanGruntChatterNow( closestGrunt ) )
+ return
+
+ PlayGruntChatterMPLine( closestGrunt, "bc_allygruntdown" )
+}
+
+void function GruntChatter_TrySquadDepleted( entity deadGuy )
+{
+ string deadGuySquadName = expect string( deadGuy.kv.squadname )
+ if ( deadGuySquadName == "" )
+ return
+
+ array<entity> squad = GetNPCArrayBySquad( deadGuySquadName )
+ entity lastSquadMember
+ if ( squad.len() == 1 )
+ lastSquadMember = squad[0]
+
+ if ( !GruntChatter_CanGruntChatterNow( lastSquadMember ) )
+ return
+
+ if ( lastSquadMember.GetNPCState() == "idle" )
+ return
+
+ // if another grunt from another squad is nearby, don't chatter about being alone
+ array<entity> nearbyGrunts = GetNearbyFriendlyGrunts( lastSquadMember.GetOrigin(), lastSquadMember.GetTeam(), CHATTER_SQUAD_DEPLETED_FRIENDLY_NEARBY_DIST )
+ nearbyGrunts.fastremovebyvalue( lastSquadMember )
+ if ( nearbyGrunts.len() )
+ return
+
+ PlayGruntChatterMPLine( lastSquadMember, "bc_squaddeplete" )
+}
+
+void function GruntChatter_TryEnemyTitanDown( entity deadGuy )
+{
+ if ( deadGuy.IsTitan() )
+ {
+ entity closestGrunt = GruntChatter_FindClosestEnemyHumanGrunt_LOS( deadGuy.GetOrigin(), deadGuy.GetTeam(), CHATTER_ENEMY_TITAN_DOWN_DIST_MAX )
+ if ( !closestGrunt )
+ return
+
+ PlayGruntChatterMPLine( closestGrunt, "bc_enemytitandown" )
+ }
+}
+
+entity function GruntChatter_FindClosestEnemyHumanGrunt_LOS( vector searchOrigin, int enemyTeam, float searchDist )
+{
+ array<entity> humanGrunts = GetNearbyEnemyHumanGrunts( searchOrigin, enemyTeam, searchDist )
+ return GruntChatter_GetClosestGrunt_LOS( humanGrunts, searchOrigin )
+}
+
+entity function GruntChatter_FindClosestFriendlyHumanGrunt_LOS( vector searchOrigin, int friendlyTeam, float searchDist )
+{
+ array<entity> humanGrunts = GetNearbyFriendlyHumanGrunts( searchOrigin, friendlyTeam, searchDist )
+ return GruntChatter_GetClosestGrunt_LOS( humanGrunts, searchOrigin )
+}
+
+entity function GruntChatter_GetClosestGrunt_LOS( array<entity> nearbyGrunts, vector searchOrigin )
+{
+ entity closestGrunt = null
+ float closestDist = 10000
+
+ foreach ( grunt in nearbyGrunts )
+ {
+ vector gruntOrigin = grunt.GetOrigin()
+
+ // CanSee doesn't return true if the target is dead
+ if ( !GruntChatter_CanGruntTraceToLocation( grunt, searchOrigin ) )
+ continue
+
+ if ( !closestGrunt )
+ {
+ closestGrunt = grunt
+ continue
+ }
+
+ float distFromSearchOrigin = Distance( grunt.GetOrigin(), searchOrigin )
+
+ if ( closestDist > distFromSearchOrigin )
+ continue
+
+ closestGrunt = grunt
+ closestDist = distFromSearchOrigin
+ }
+
+ return closestGrunt
+}
+
+bool function GruntChatter_CanGruntTraceToLocation( entity grunt, vector traceEnd )
+{
+ float traceFrac = TraceLineSimple( grunt.GetOrigin(), traceEnd, grunt )
+ return traceFrac > CHATTER_NEARBY_GRUNT_TRACEFRAC_MIN
+}
+
+array<entity> function GetNearbyFriendlyHumanGrunts( vector searchOrigin, int friendlyTeam, float ornull searchRange = null )
+{
+ array<entity> nearbyGrunts = GetNearbyFriendlyGrunts( searchOrigin, friendlyTeam, searchRange )
+ array<entity> humanGrunts = []
+ foreach ( grunt in nearbyGrunts )
+ {
+ if ( grunt.IsMechanical() )
+ continue
+
+ humanGrunts.append( grunt )
+ }
+
+ return humanGrunts
+}
+
+array<entity> function GetNearbyEnemyHumanGrunts( vector searchOrigin, int enemyTeam, float ornull searchRange = null )
+{
+ array<entity> nearbyGrunts = GetNearbyEnemyGrunts( searchOrigin, enemyTeam, searchRange )
+ array<entity> humanGrunts = []
+ foreach ( grunt in nearbyGrunts )
+ {
+ if ( grunt.IsMechanical() )
+ continue
+
+ humanGrunts.append( grunt )
+ }
+
+ return humanGrunts
+}
+
+bool function GruntChatter_CanGruntChatterNow( entity grunt )
+{
+ if ( !IsAlive( grunt ) )
+ return false
+
+ if ( !GruntChatter_IsGruntTypeEligibleForChatter( grunt ) )
+ return false
+
+ if ( grunt.ContextAction_IsMeleeExecution() )
+ return false
+
+ string squadname = expect string( grunt.kv.squadname )
+ // we only care about this because the grunt conversation system wants it
+ return squadname != ""
+}
+
+bool function GruntChatter_IsGruntTypeEligibleForChatter( entity grunt )
+{
+ if ( !IsGrunt( grunt ) )
+ return false
+
+ // mechanical grunts don't chatter
+ return !grunt.IsMechanical()
} \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut b/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut
index f23c841d..af074689 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut
@@ -422,6 +422,40 @@ void function Evac( int evacTeam, float initialWait, float arrivalTime, float wa
foreach ( entity otherPlayer in GetPlayerArray() )
Remote_CallFunction_NonReplay( otherPlayer, "ServerCallback_EvacObit", player.GetEncodedEHandle() )
}
+
+ // award player score to evacing team
+ int evacCount = 0
+ array<entity> evacingPlayers = GetPlayerArrayOfTeam( dropship.GetTeam() ) // all players that are supposed to evac in the dropship
+
+ // count how many players are in the dropship
+ foreach ( entity player in evacingPlayers )
+ {
+ if ( !PlayerInDropship( player, dropship ) )
+ continue
+
+ evacCount++
+ }
+
+ bool allEvac = evacCount == evacingPlayers.len()
+
+ foreach(entity player in evacingPlayers)
+ {
+ if ( !PlayerInDropship( player, dropship ) )
+ continue
+
+ AddPlayerScore( player, "HotZoneExtract" )
+ UpdatePlayerStat( player, "misc_stats", "evacsSurvived" )
+
+ if ( allEvac )
+ AddPlayerScore( player, "TeamBonusFullEvac" )
+ }
+
+ // sole survivor (but not the only one on the team)
+ if ( evacCount == 1 && !allEvac )
+ {
+ // we can assume there is one player in the array because otherwise evacCount wouldn't be 1
+ AddPlayerScore( evacingPlayers[0], "SoleSurvivor" )
+ }
}
void function AddPlayerToEvacDropship( entity dropship, entity player )
@@ -442,6 +476,8 @@ void function AddPlayerToEvacDropship( entity dropship, entity player )
if ( !PlayerInDropship( player, dropship ) )
return
+ UpdatePlayerStat( player, "misc_stats", "evacsAttempted" )
+
// need to cancel if the dropship dies
dropship.EndSignal( "OnDeath", "OnDestroy" )
@@ -507,6 +543,15 @@ void function CheckIfAnyPlayerLeft( int evacTeam )
SetTeamActiveObjective( evacTeam, "EG_DropshipExtractEvacPlayersKilled" )
SetTeamActiveObjective( GetOtherTeam( evacTeam ), "EG_StopExtractEvacPlayersKilled" )
thread EvacEpilogueCompleted( null )
+
+ // score for killing the entire evacing team
+ foreach ( entity player in GetPlayerArray() )
+ {
+ if ( player.GetTeam() == evacTeam )
+ continue
+
+ AddPlayerScore( player, "TeamBonusKilledAll")
+ }
}
)
while( true )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/faction_xp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/faction_xp.gnut
index 5fd7d101..6555c875 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/faction_xp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/faction_xp.gnut
@@ -3,8 +3,11 @@ global function AddFactionXP
void function AddFactionXP( entity player, int amount )
{
string faction = GetFactionChoice( player )
+ int oldLevel = FactionGetLevel( player, faction )
// increment xp
player.SetPersistentVar( "factionXP[" + faction + "]", min( FactionGetXP( player, faction ) + amount, FactionGetMaxXP( faction ) ) )
// note: no notif for faction level up
+ if ( FactionGetLevel( player, faction ) != oldLevel )
+ AddPlayerScore( player, "FactionLevelUp" )
} \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_at.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_at.nut
index c61cb585..93a3aa16 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_at.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_at.nut
@@ -107,7 +107,6 @@ void function GamemodeAt_Init()
// Set-up score callbacks
ScoreEvent_SetupEarnMeterValuesForMixedModes()
- AddDamageFinalCallback( "npc_titan", OnNPCTitanFinalDamaged )
AddCallback_OnPlayerKilled( AT_PlayerOrNPCKilledScoreEvent )
AddCallback_OnNPCKilled( AT_PlayerOrNPCKilledScoreEvent )
@@ -1658,9 +1657,10 @@ void function AT_HandleBossTitanSpawn( entity titan, AT_WaveOrigin campData, int
titan.Minimap_AlwaysShow( TEAM_MILITIA, null )
thread BountyBossHighlightThink( titan )
- // set up titan-specific death callbacks, mark it as bounty boss for finalDamageCallbacks to work
+ // set up titan-specific death callbacks, mark it as bounty boss
file.titanIsBountyBoss[ titan ] <- true
file.bountyTitanRewards[ titan ] <- ATTRITION_SCORE_BOSS_DAMAGE
+ AddEntityCallback_OnPostDamaged( titan, OnBountyTitanPostDamage )
AddEntityCallback_OnKilled( titan, OnBountyTitanKilled )
titan.GetTitanSoul().soul.skipDoomState = true
@@ -1684,13 +1684,7 @@ void function BountyBossHighlightThink( entity titan )
}
}
-void function OnNPCTitanFinalDamaged( entity titan, var damageInfo )
-{
- if ( titan in file.titanIsBountyBoss )
- OnBountyTitanDamaged( titan, damageInfo )
-}
-
-void function OnBountyTitanDamaged( entity titan, var damageInfo )
+void function OnBountyTitanPostDamage( entity titan, var damageInfo )
{
entity attacker = DamageInfo_GetAttacker( damageInfo )
if ( !IsValid( attacker ) ) // delayed by projectile shots
@@ -1703,14 +1697,6 @@ void function OnBountyTitanDamaged( entity titan, var damageInfo )
return
}
- // respawn FUCKED UP pilot weapon against titan's damage calculation, have to copy-paste this check from Titan_NPCTookDamage()
- if ( HeavyArmorCriticalHitRequired( damageInfo ) &&
- CritWeaponInDamageInfo( damageInfo ) &&
- !IsCriticalHit( attacker, titan, DamageInfo_GetHitBox( damageInfo ), DamageInfo_GetDamage( damageInfo ), DamageInfo_GetDamageType( damageInfo ) ) &&
- IsValid( attacker ) &&
- !attacker.IsTitan() )
- return
-
int rewardSegment = ATTRITION_SCORE_BOSS_DAMAGE
int healthSegment = titan.GetMaxHealth() / rewardSegment
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut b/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut
index 6f228f7c..60bad8d1 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut
@@ -20,6 +20,7 @@ void function Sv_ItemInventory_Init()
{
AddCallback_OnClientConnected( Sv_ItemInventory_OnClientConnected )
AddCallback_OnPlayerGetsNewPilotLoadout( Sv_ItemInventory_OnPlayerGetsNewPilotLoadout )
+ AddCallback_GameStateEnter( eGameState.Prematch, PrematchClearInventory )
}
void function Sv_ItemInventory_OnClientConnected( entity player )
@@ -27,6 +28,14 @@ void function Sv_ItemInventory_OnClientConnected( entity player )
file.playerInventoryStacks[ player ] <- []
}
+void function PrematchClearInventory() // vanilla behavior
+{
+ foreach( entity player in GetPlayerArray() )
+ {
+ PlayerInventory_TakeAllInventoryItems( player )
+ }
+}
+
void function Sv_ItemInventory_OnPlayerGetsNewPilotLoadout( entity player, PilotLoadoutDef newPilotLoadout )
{
array<InventoryItem> playerInventoryStack = file.playerInventoryStacks[ player ]
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/lobby/_lobby.gnut b/Northstar.CustomServers/mod/scripts/vscripts/lobby/_lobby.gnut
index ae933b71..8b65ec93 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/lobby/_lobby.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/lobby/_lobby.gnut
@@ -14,6 +14,7 @@ void function Lobby_Init()
{
// non-private lobby clientcommands
AddClientCommandCallback( "StartPrivateMatchSearch", ClientCommandCallback_StartPrivateMatchSearch )
+ AddClientCommandCallback( "SetAnnouncementVersionSeen", ClientCommandCallback_SetAnnouncementVersionSeen )
}
}
@@ -37,3 +38,14 @@ bool function ClientCommandCallback_StartPrivateMatchSearch( entity player, arra
return true
}
+
+bool function ClientCommandCallback_SetAnnouncementVersionSeen( entity player, array<string> args )
+{
+ if ( args.len() < 1 )
+ return false
+
+ int version = int( args[0] )
+
+ player.SetPersistentVar( "announcementVersionSeen", version )
+ return true
+}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut b/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut
index ccccefaf..d2be2ab4 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut
@@ -17,6 +17,7 @@ void function PrivateMatchModesInit()
AddPrivateMatchModeSettingEnum( "#MODE_SETTING_CATEGORY_PILOT", "boosts_enabled", [ "#SETTING_DEFAULT", "#SETTING_DISABLED" ], "1" )
AddPrivateMatchModeSettingEnum( "#MODE_SETTING_CATEGORY_PILOT", "earn_meter_pilot_overdrive", [ "#SETTING_DISABLED", "#SETTING_ENABLED", "Only" ], "1" )
AddPrivateMatchModeSettingArbitrary( "#MODE_SETTING_CATEGORY_PILOT", "earn_meter_pilot_multiplier", "1.0" )
+ AddPrivateMatchModeSettingArbitrary( "#MODE_SETTING_CATEGORY_PILOT", "player_force_respawn", "5" )
AddPrivateMatchModeSettingArbitrary( "#MODE_SETTING_CATEGORY_TITAN", "earn_meter_titan_multiplier", "1.0" )
AddPrivateMatchModeSettingEnum( "#MODE_SETTING_CATEGORY_TITAN", "aegis_upgrades", [ "#SETTING_DISABLED", "#SETTING_ENABLED" ], "0" )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut
index ec426754..bab7eaed 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut
@@ -134,6 +134,15 @@ void function CodeCallback_OnClientConnectionCompleted( entity player )
Lobby_OnClientConnectionCompleted( player )
return
}
+ else if ( !IsFDMode( GAMETYPE ) )
+ {
+ // reset this for non-fd modes
+ // for some reason the postgame scoreboard uses this to
+ // determine if it should show the FD aegis rank one
+ // FD should either set this in their own mode, or add an else
+ // to this if statement when it releases
+ player.SetPersistentVar( "lastFDTitanRef", "" )
+ }
player.hasConnected = true
@@ -274,6 +283,9 @@ void function PostDeathThread_MP( entity player, var damageInfo ) // based on ga
ClearRespawnAvailable( player )
+ // reset this so that we default to pilot spawn
+ player.SetPersistentVar( "spawnAsTitan", false )
+
OnThreadEnd( function() : ( player )
{
if ( !IsValid( player ) )
@@ -379,6 +391,13 @@ void function PostDeathThread_MP( entity player, var damageInfo ) // based on ga
SetRespawnAvailable( player )
wait respawnDelay
+
+ int forceRespawn = GetCurrentPlaylistVarInt( "player_force_respawn", -1 )
+
+ // -1 is disabled, anything over is the time we wait in seconds
+ // before respawning the player
+ if( forceRespawn >= 0 )
+ thread ForceRespawnMeSignalAfterDelay( player, forceRespawn )
player.WaitSignal( "RespawnMe" ) // set in base_gametype: ClientCommand_RespawnPlayer
@@ -398,6 +417,21 @@ void function PostDeathThread_MP( entity player, var damageInfo ) // based on ga
}
}
+// idk if this is a good delay or if it matches vanilla
+void function ForceRespawnMeSignalAfterDelay( entity player, int delay = 5 )
+{
+ player.EndSignal( "RespawnMe" )
+ player.EndSignal( "OnDestroy" )
+
+ if( player.IsWatchingKillReplay() )
+ player.WaitSignal( "KillCamOver" )
+
+ wait delay
+
+ printt( format( "Forcing player respawn for player %s (took >%d seconds to respawn)", player.GetPlayerName(), delay ) )
+ player.Signal( "RespawnMe" )
+}
+
void function PlayerWatchesKillReplayWrapper( entity player, entity attacker, float timeSinceAttackerSpawned, float timeOfDeath, float beforeTime, table replayTracker )
{
player.EndSignal( "RespawnMe" )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
index 16a3ce92..0ababfc7 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
@@ -58,7 +58,9 @@ void function CodeCallback_MatchIsOver()
#if MP
void function PopulatePostgameData()
{
- // something's busted here because this isn't showing automatically on match end, ag
+ // show the postgame scoreboard summary
+ SetUIVar( level, "showGameSummary", true )
+
foreach ( entity player in GetPlayerArray() )
{
int teams = GetCurrentPlaylistVarInt( "max_teams", 2 )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut
index 0555df9b..23ae37a1 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut
@@ -188,7 +188,8 @@ void function SpawnPlayerIntoDropship( entity player )
}
// respawn player and holster their weapons so they aren't out
- player.RespawnPlayer( null )
+ if ( !IsAlive( player ) )
+ player.RespawnPlayer( null )
HolsterAndDisableWeapons(player)
player.DisableWeaponViewModel()
@@ -255,4 +256,4 @@ void function PlayerJumpsFromDropship( entity player )
WaitFrame()
TryGameModeAnnouncement( player )
-} \ No newline at end of file
+}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
index 46b39ebc..3426cec5 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
@@ -800,6 +800,8 @@ void function SetWinner( int team, string winningReason = "", string losingReaso
}
else
SetGameState( eGameState.WinnerDetermined )
+
+ ScoreEvent_MatchComplete( team )
}
}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
index dacd43b0..0b55e9ff 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
@@ -7,6 +7,7 @@ global function ScoreEvent_PlayerKilled
global function ScoreEvent_TitanDoomed
global function ScoreEvent_TitanKilled
global function ScoreEvent_NPCKilled
+global function ScoreEvent_MatchComplete
global function ScoreEvent_SetEarnMeterValues
global function ScoreEvent_SetupEarnMeterValuesForMixedModes
@@ -230,7 +231,15 @@ void function ScoreEvent_NPCKilled( entity victim, entity attacker, var damageIn
catch ( ex ) {}
}
-
+void function ScoreEvent_MatchComplete( int winningTeam )
+{
+ foreach( entity player in GetPlayerArray() )
+ {
+ AddPlayerScore( player, "MatchComplete" )
+ if ( player.GetTeam() == winningTeam )
+ AddPlayerScore( player, "MatchVictory" )
+ }
+}
void function ScoreEvent_SetEarnMeterValues( string eventName, float earned, float owned, float coreScale = 1.0 )
{
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_stats.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_stats.nut
index 0e8b58f4..208e6da1 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_stats.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_stats.nut
@@ -1,3 +1,5 @@
+untyped // because entity.s
+
global function Stats_Init
global function AddStatCallback
global function Stats_SaveStatDelayed
@@ -12,67 +14,1084 @@ global function PreScoreEventUpdateStats
global function PostScoreEventUpdateStats
global function Stats_OnPlayerDidDamage
+struct {
+ table< string, array<string> > refs
+ table< string, array< void functionref( entity, float, string ) > > callbacks
+
+ table< entity, table< string, int > > cachedIntStatChanges
+ table< table< string, float > > cachedFloatStatChanges
+
+ table< entity, float > playerKills
+ table< entity, float > playerKillsPvp
+ table< entity, float > playerDeaths
+ table< entity, float > playerDeathsPvp
+
+ bool isFirstStrike = true
+} file
+
void function Stats_Init()
{
+ AddCallback_OnPlayerKilled( OnPlayerOrNPCKilled )
+ AddCallback_OnNPCKilled( OnPlayerOrNPCKilled )
+ AddCallback_OnPlayerRespawned( OnPlayerRespawned )
+ AddCallback_OnClientConnected( OnClientConnected )
+ AddCallback_OnClientDisconnected( OnClientDisconnected )
+ AddCallback_GameStateEnter( eGameState.WinnerDetermined, OnWinnerDetermined )
+ thread HandleDistanceAndTimeStats_Threaded()
+ thread SaveStatsPeriodically_Threaded()
}
-void function AddStatCallback(string statCategory, string statAlias, string statSubAlias, void functionref(entity, float, string) callback, string subRef)
+void function AddStatCallback( string statCategory, string statAlias, string statSubAlias, void functionref( entity, float, string ) callback, string subRef )
{
+ if ( !IsValidStat( statCategory, statAlias, statSubAlias ) )
+ throw format( "INVALID STAT: %s : %s : %s", statCategory, statAlias, statSubAlias )
+
+
+ string statVar = GetStatVar( statCategory, statAlias, statSubAlias )
+ if ( statVar in file.refs )
+ {
+ file.refs[ statVar ].append( subRef )
+ file.callbacks[ statVar ].append( callback )
+ }
+ else
+ {
+ file.refs[ statVar ] <- [ subRef ]
+ file.callbacks[ statVar ] <- [ callback ]
+ }
}
-void function Stats_SaveStatDelayed(entity player, string statCategory, string statAlias, string statSubAlias)
+// a lot of this file seems to be doing caching of stats in some way
+void function Stats_SaveStatDelayed( entity player, string statCategory, string statAlias, string statSubAlias, float delay = 0.1 )
{
+ // idk how long the delay is meant to be but whatever
+ wait delay
+
+ if ( !IsValid( player ) )
+ return
+
+ Stats_SaveStat( player, statCategory, statAlias, statSubAlias )
+}
+
+void function Stats_SaveAllStats( entity player )
+{
+ if ( player in file.cachedIntStatChanges )
+ {
+ foreach( string key, int val in file.cachedIntStatChanges[ player ] )
+ {
+ player.SetPersistentVar( key, player.GetPersistentVarAsInt( key ) + val )
+ }
+
+ delete file.cachedIntStatChanges[ player ]
+ }
+ // save cached float stat change
+ if ( player in file.cachedFloatStatChanges )
+ {
+ foreach( string key, float val in file.cachedFloatStatChanges[ player ] )
+ {
+ player.SetPersistentVar( key, expect float( player.GetPersistentVar( key ) ) + val )
+ }
+ delete file.cachedFloatStatChanges[ player ]
+ }
}
-int function PlayerStat_GetCurrentInt(entity player, string statCategory, string statAlias, string statSubAlias)
+void function Stats_SaveStat( entity player, string statCategory, string statAlias, string statSubAlias )
{
+ string stat = GetStatVar( statCategory, statAlias, statSubAlias )
+ // save cached int stat change
+ if ( player in file.cachedIntStatChanges && stat in file.cachedIntStatChanges[ player ] )
+ {
+ player.SetPersistentVar( stat, player.GetPersistentVarAsInt( stat ) + file.cachedIntStatChanges[ player ][ stat ] )
+ delete file.cachedIntStatChanges[ player ][ stat ]
+ return
+ }
+ // save cached float stat change
+ if ( player in file.cachedFloatStatChanges && stat in file.cachedFloatStatChanges[ player ] )
+ {
+ player.SetPersistentVar( stat, expect float( player.GetPersistentVar( stat ) ) + file.cachedFloatStatChanges[ player ][ stat ] )
+ delete file.cachedFloatStatChanges[ player ][ stat ]
+ return
+ }
+}
+
+// this gets the cached change, not the actual value
+int function PlayerStat_GetCurrentInt( entity player, string statCategory, string statAlias, string statSubAlias )
+{
+ string str = GetStatVar( statCategory, statAlias, statSubAlias )
+
+ if ( player in file.cachedIntStatChanges && str in file.cachedIntStatChanges[ player ] )
+ return file.cachedIntStatChanges[ player ][ str ]
return 0
}
-float function PlayerStat_GetCurrentFloat(entity player, string statCategory, string statAlias, string statSubAlias)
+// this gets the cached change, not the actual value
+float function PlayerStat_GetCurrentFloat( entity player, string statCategory, string statAlias, string statSubAlias )
{
+ string str = GetStatVar( statCategory, statAlias, statSubAlias )
+
+ if ( player in file.cachedFloatStatChanges && str in file.cachedFloatStatChanges[ player ] )
+ return file.cachedFloatStatChanges[ player ][ str ]
return 0
}
-void function UpdatePlayerStat(entity player, string statCategory, string subStat, int count = 0)
+void function UpdatePlayerStat( entity player, string statCategory, string subStat, int count = 1, string statAlias = "" )
{
+ if ( !IsValid( player ) )
+ return
+
+ Stats_IncrementStat( player, statCategory, subStat, statAlias, count.tofloat() )
+}
+
+void function IncrementPlayerDidPilotExecutionWhileCloaked( entity player )
+{
+ UpdatePlayerStat( player, "kills_stats", "pilotExecutePilotWhileCloaked" )
+}
+
+void function UpdateTitanDamageStat( entity attacker, float savedDamage, var damageInfo )
+{
+ if ( !IsValid( attacker ) )
+ return
+
+ Stats_IncrementStat( attacker, "titan_stats", "titanDamage", GetTitanCharacterName( attacker ), savedDamage )
+}
+
+void function UpdateTitanWeaponDamageStat( entity attacker, float savedDamage, var damageInfo )
+{
+ if ( !IsValid( attacker ) )
+ return
+
+ string weaponName = GetPersistenceRefFromDamageInfo( damageInfo )
+ if ( weaponName == "" )
+ return
+
+ Stats_IncrementStat( attacker, "weapon_stats", "titanDamage", weaponName, savedDamage )
+}
+
+void function UpdateTitanCoreEarnedStat( entity player, entity titan, int count = 1 )
+{
+ if ( !IsValid( player ) )
+ return
+
+ if ( !IsValid( titan ) )
+ return
+
+ Stats_IncrementStat( player, "titan_stats", "coresEarned", GetTitanCharacterName( titan ), count.tofloat() )
+}
+
+void function PreScoreEventUpdateStats( entity attacker, entity ent )
+{
+ // used to track kill streaks ending i think ( that stuff gets reset during score event update )
+}
+
+void function PostScoreEventUpdateStats( entity attacker, entity ent )
+{
+ if ( !attacker.IsPlayer() )
+ return
+ // used to track kill streaks starting maybe
+ if ( attacker.s.currentKillstreak == KILLINGSPREE_KILL_REQUIREMENT )
+ {
+ // killingSpressAs_<chassis>
+ if ( attacker.IsTitan() )
+ Stats_IncrementStat( attacker, "kills_stats", "killingSpressAs_" + GetTitanCharacterName( attacker ), "", 1.0 )
+
+ entity weapon = attacker.GetActiveWeapon()
+ // I guess if you dont have a valid active weapon when you get awarded a killing spree
+ // you dont get the stat. Too bad!
+ if ( !IsValid( weapon ) )
+ return
+ Stats_IncrementStat( attacker, "weapon_kill_stats", "killingSprees", weapon.GetWeaponClassName(), 1.0 )
+ }
+}
+
+void function Stats_OnPlayerDidDamage( entity victim, var damageInfo )
+{
+ // try and get the player
+ entity attacker = DamageInfo_GetAttacker( damageInfo )
+ // get the player from their titan
+ if ( attacker.IsTitan() && IsPetTitan( attacker ) )
+ attacker = attacker.GetTitanSoul().GetBossPlayer()
+
+ if ( !attacker.IsPlayer() )
+ return
+
+ string weaponName = GetPersistenceRefFromDamageInfo( damageInfo )
+ if ( weaponName == "" )
+ return
+
+ Stats_IncrementStat( attacker, "weapon_stats", "shotsHit", weaponName, 1.0 )
+
+ if ( DamageInfo_GetCustomDamageType( damageInfo ) & DF_CRITICAL )
+ Stats_IncrementStat( attacker, "weapon_stats", "critHits", weaponName, 1.0 )
+ if ( DamageInfo_GetCustomDamageType( damageInfo ) & DF_HEADSHOT )
+ Stats_IncrementStat( attacker, "weapon_stats", "headshots", weaponName, 1.0 )
+}
+
+void function Stats_IncrementStat( entity player, string statCategory, string statAlias, string statSubAlias, float amount )
+{
+ if ( !IsValidStat( statCategory, statAlias, statSubAlias ) )
+ {
+ printt( "invalid stat: " + statCategory + " : " + statAlias + " : " + statSubAlias )
+ return
+ }
+
+ string str = GetStatVar( statCategory, statAlias, statSubAlias )
+ int type = GetStatVarType( statCategory, statAlias, statSubAlias )
+
+ // stupid exception because respawn set this up as an int in script
+ // but it is actually a float, so the game will crash if we don't fix it somewhere
+ // i dont feel like committing all of sh_stats.gnut so im doing this instead
+ if ( str == "mapStats[%mapname%].hoursPlayed[%gamemode%]" )
+ type = ePlayerStatType.FLOAT
+
+ // this is rather hacky
+ string mode = GAMETYPE
+ int difficulty = GetDifficultyLevel()
+ if ( difficulty >= 5 )
+ return
+
+ string saveVar = Stats_GetFixedSaveVar( str, GetMapName(), mode, difficulty.tostring() )
+ // check if the map and mode exist in persistence
+ try
+ {
+ PersistenceGetEnumIndexForItemName( "gamemodes", mode )
+ PersistenceGetEnumIndexForItemName( "maps", GetMapName() )
+ }
+ catch( ex )
+ {
+ // if we have an invalid mode or map for persistence, and it is used in the
+ // persistence string, we can't save the persistence so we have to just return
+ if ( str != saveVar )
+ {
+ printt( ex )
+ return
+ }
+ }
+ str = saveVar
+
+ switch ( type )
+ {
+ case ePlayerStatType.INT:
+ // populate table if needed
+ if ( !( player in file.cachedIntStatChanges ) )
+ file.cachedIntStatChanges[ player ] <- {}
+ if ( !( str in file.cachedIntStatChanges[ player ] ) )
+ file.cachedIntStatChanges[ player ][ str ] <- 0
+
+ file.cachedIntStatChanges[ player ][ str ] += amount.tointeger()
+ break
+ case ePlayerStatType.FLOAT:
+ // populate table if needed
+ if ( !( player in file.cachedFloatStatChanges ) )
+ file.cachedFloatStatChanges[ player ] <- {}
+ if ( !( str in file.cachedFloatStatChanges[ player ] ) )
+ file.cachedFloatStatChanges[ player ][ str ] <- 0.0
+
+ file.cachedFloatStatChanges[ player ][ str ] += amount
+ break
+ default:
+ throw "UNIMPLEMENTED STAT TYPE: " + type
+ }
+
+ // amount here is never used
+ Stats_RunCallbacks( str, player, amount )
+}
+
+void function Stats_RunCallbacks( string statVar, entity player, float change )
+{
+ if ( !( statVar in file.refs ) )
+ return
+
+ for( int i = 0; i < file.refs[ statVar ].len(); i++ )
+ {
+ string ref = file.refs[ statVar ][ i ]
+ void functionref( entity, float, string ) callback = file.callbacks[ statVar ][ i ]
+
+ callback( player, change, ref )
+ }
+}
+
+void function OnClientConnected( entity player )
+{
+ Stats_IncrementStat( player, "game_stats", "game_joined", "", 1.0 )
+}
+
+void function OnClientDisconnected( entity player )
+{
+ Stats_SaveAllStats( player )
+ // maybe we can save this stuff, but idk if we can access persistence in this callback
+ if ( player in file.cachedIntStatChanges )
+ delete file.cachedIntStatChanges[ player ]
+
+ if ( player in file.cachedFloatStatChanges )
+ delete file.cachedFloatStatChanges[ player ]
+}
+
+void function OnPlayerOrNPCKilled( entity victim, entity attacker, var damageInfo )
+{
+ if ( victim.IsPlayer() )
+ thread SetLastPosForDistanceStatValid_Threaded( victim, false )
+
+ HandleDeathStats( victim, attacker, damageInfo )
+ HandleKillStats( victim, attacker, damageInfo )
+ HandleWeaponKillStats( victim, attacker, damageInfo )
+ HandleTitanStats( victim, attacker, damageInfo )
+}
+
+void function HandleDeathStats( entity player, entity attacker, var damageInfo )
+{
+ if ( !IsValid( player ) || !player.IsPlayer() )
+ return
+
+ if ( player in file.playerDeaths )
+ file.playerDeaths[ player ]++
+ else
+ file.playerDeaths[ player ] <- 1.0
+ // total
+ Stats_IncrementStat( player, "deaths_stats", "total", "", 1.0 )
+
+ // these all rely on the attacker being valid
+ if ( IsValid( attacker ) )
+ {
+ // totalPVP
+ // note: I'm not sure if owned entities count towards totalPVP
+ // such as auto-titans, turrets, etc.
+ if ( attacker.IsPlayer() || attacker.GetBossPlayer() )
+ {
+ if ( player in file.playerDeathsPvp )
+ file.playerDeathsPvp[ player ]++
+ else
+ file.playerDeathsPvp[ player ] <- 1.0
+ Stats_IncrementStat( player, "deaths_stats", "totalPVP", "", 1.0 )
+ }
+
+ // byPilots
+ if ( IsPilot( attacker ) )
+ Stats_IncrementStat( player, "deaths_stats", "byPilots", "", 1.0 )
+
+ // byTitan_<chassis>
+ if ( attacker.IsTitan() && attacker.IsPlayer() )
+ Stats_IncrementStat( player, "deaths_stats", "byTitan_" + GetTitanCharacterName( attacker ), "", 1.0 )
+
+ // bySpectres
+ if ( IsSpectre( attacker ) )
+ Stats_IncrementStat( player, "deaths_stats", "bySpectres", "", 1.0 )
+
+ // byGrunts
+ if ( IsGrunt( attacker ) )
+ Stats_IncrementStat( player, "deaths_stats", "byGrunts", "", 1.0 )
+
+ // byNPCTitans_<chassis>
+ if ( attacker.IsTitan() && attacker.IsNPC() )
+ Stats_IncrementStat( player, "deaths_stats", "byNPCTitans_" + GetTitanCharacterName( attacker ), "", 1.0 )
+ }
+
+ // asPilot
+ if ( IsPilot( player ) )
+ Stats_IncrementStat( player, "deaths_stats", "asPilot", "", 1.0 )
+
+ // asTitan_<chassis>
+ if ( player.IsTitan() )
+ Stats_IncrementStat( player, "deaths_stats", "asTitan_" + GetTitanCharacterName( player ), "", 1.0 )
+
+ // suicides
+ if ( IsSuicide( attacker, player, DamageInfo_GetDamageSourceIdentifier( damageInfo ) ) )
+ Stats_IncrementStat( player, "deaths_stats", "suicides", "", 1.0 )
+
+ // whileEjecting
+ if ( player.p.pilotEjecting )
+ Stats_IncrementStat( player, "deaths_stats", "whileEjecting", "", 1.0 )
+}
+
+void function HandleWeaponKillStats( entity victim, entity attacker, var damageInfo )
+{
+ if ( !IsValid( attacker ) )
+ return
+
+ // get the player and it's pet titan
+ entity player
+ entity playerPetTitan
+ if ( attacker.IsPlayer() )
+ {
+ // the player is just the attacker
+ player = attacker
+ playerPetTitan = player.GetPetTitan()
+ }
+ else if ( attacker.IsTitan() && IsPetTitan( attacker ) )
+ {
+ // the attacker is the player's auto titan
+ player = attacker.GetTitanSoul().GetBossPlayer()
+ playerPetTitan = attacker
+ }
+ else
+ {
+ // attacker could be something like an NPC, or worldspawn
+ return
+ }
+
+ string damageSourceStr = GetPersistenceRefFromDamageInfo( damageInfo )
+ // cant do weapon stats for no weapon
+ if ( damageSourceStr == "" )
+ return
+
+ // check things once, for performance
+ int damageSource = DamageInfo_GetDamageSourceIdentifier( damageInfo )
+ bool victimIsPlayer = victim.IsPlayer()
+ bool victimIsNPC = victim.IsNPC()
+ bool victimIsPilot = IsPilot( victim )
+ bool victimIsTitan = victim.IsTitan()
+
+ // total
+ Stats_IncrementStat( player, "weapon_kill_stats", "total", damageSourceStr, 1.0 )
+
+ // pilots
+ if ( victimIsPilot )
+ Stats_IncrementStat( player, "weapon_kill_stats", "pilots", damageSourceStr, 1.0 )
+
+ // ejecting_pilots
+ if ( victimIsPilot && victim.p.pilotEjecting )
+ Stats_IncrementStat( player, "weapon_kill_stats", "ejecting_pilots", damageSourceStr, 1.0 )
+
+ // titansTotal
+ if ( victimIsTitan )
+ Stats_IncrementStat( player, "weapon_kill_stats", "titansTotal", damageSourceStr, 1.0 )
+ // spectres
+ if ( IsSpectre( victim ) )
+ Stats_IncrementStat( player, "weapon_kill_stats", "spectres", damageSourceStr, 1.0 )
+
+ // marvins
+ if ( IsMarvin( victim ) )
+ Stats_IncrementStat( player, "weapon_kill_stats", "marvins", damageSourceStr, 1.0 )
+
+ // grunts
+ if ( IsGrunt( victim ) )
+ Stats_IncrementStat( player, "weapon_kill_stats", "grunts", damageSourceStr, 1.0 )
+
+ // ai
+ if ( victimIsNPC )
+ Stats_IncrementStat( player, "weapon_kill_stats", "ai", damageSourceStr, 1.0 )
+
+ // titans_<chassis>
+ if ( victimIsPlayer && victimIsTitan )
+ Stats_IncrementStat( player, "weapon_kill_stats", "titans_" + GetTitanCharacterName( victim ), damageSourceStr, 1.0 )
+
+ // npcTitans_<chassis>
+ if ( victimIsNPC && victimIsTitan )
+ Stats_IncrementStat( player, "weapon_kill_stats", "npcTitans_" + GetTitanCharacterName( victim ), damageSourceStr, 1.0 )
}
-void function IncrementPlayerDidPilotExecutionWhileCloaked(entity player)
+void function HandleKillStats( entity victim, entity attacker, var damageInfo )
{
+ if ( !IsValid( attacker ) )
+ return
+ // get the player and it's pet titan
+ entity player
+ entity playerPetTitan
+ if ( attacker.IsPlayer() )
+ {
+ // the player is just the attacker
+ player = attacker
+ playerPetTitan = player.GetPetTitan()
+ }
+ else if ( attacker.IsTitan() && IsPetTitan( attacker ) )
+ {
+ // the attacker is the player's auto titan
+ player = attacker.GetTitanSoul().GetBossPlayer()
+ playerPetTitan = attacker
+ }
+ else
+ {
+ // attacker could be something like an NPC, or worldspawn
+ return
+ }
+
+ // check things once, for performance
+ int damageSource = DamageInfo_GetDamageSourceIdentifier( damageInfo )
+ bool victimIsPlayer = victim.IsPlayer()
+ bool victimIsNPC = victim.IsNPC()
+ bool victimIsPilot = IsPilot( victim )
+ bool victimIsTitan = victim.IsTitan()
+
+ if ( player in file.playerKills )
+ file.playerKills[ player ]++
+ else
+ file.playerKills[ player ] <- 1.0
+ // total
+ Stats_IncrementStat( player, "kills_stats", "total", "", 1.0 )
+
+ // totalPVP
+ if ( victimIsPlayer )
+ {
+ if ( player in file.playerKillsPvp )
+ file.playerKillsPvp[ player ]++
+ else
+ file.playerKillsPvp[ player ] <- 1.0
+ Stats_IncrementStat( player, "kills_stats", "totalPVP", "", 1.0 )
+ }
+
+ // pilots
+ if ( victimIsPilot )
+ Stats_IncrementStat( player, "kills_stats", "pilots", "", 1.0 )
+
+ // spectres
+ if ( IsSpectre( victim ) )
+ Stats_IncrementStat( player, "kills_stats", "spectres", "", 1.0 )
+
+ // marvins
+ if ( IsMarvin( victim ) )
+ Stats_IncrementStat( player, "kills_stats", "marvins", "", 1.0 )
+
+ // grunts
+ if ( IsGrunt( victim ) )
+ Stats_IncrementStat( player, "kills_stats", "grunts", "", 1.0 )
+
+ // totalTitans
+ if ( victimIsTitan )
+ Stats_IncrementStat( player, "kills_stats", "totalTitans", "", 1.0 )
+
+ // totalPilots
+ if ( victimIsPilot )
+ Stats_IncrementStat( player, "kills_stats", "totalPilots", "", 1.0 )
+
+ // totalNPC
+ if ( victimIsNPC )
+ Stats_IncrementStat( player, "kills_stats", "totalNPC", "", 1.0 )
+
+ // totalTitansWhileDoomed
+ if ( victimIsTitan && attacker.IsTitan() && GetDoomedState( attacker ) )
+ Stats_IncrementStat( player, "kills_stats", "totalTitansWhileDoomed", "", 1.0 )
+
+ // asPilot
+ if ( IsPilot( attacker ) )
+ Stats_IncrementStat( player, "kills_stats", "asPilot", "", 1.0 )
+
+ // totalAssists
+ // assistsTotal ( weapon_kill_stats )
+ // note: eww
+ table<int, bool> alreadyAssisted
+ foreach( DamageHistoryStruct attackerInfo in victim.e.recentDamageHistory )
+ {
+ if ( !IsValid( attackerInfo.attacker ) || !attackerInfo.attacker.IsPlayer() || attackerInfo.attacker == victim )
+ continue
+
+ bool exists = attackerInfo.attacker.GetEncodedEHandle() in alreadyAssisted ? true : false
+ if( attackerInfo.attacker != attacker && !exists )
+ {
+ alreadyAssisted[ attackerInfo.attacker.GetEncodedEHandle() ] <- true
+ Stats_IncrementStat( attackerInfo.attacker, "kills_stats", "totalAssists", "", 1.0 )
+
+ string source = DamageSourceIDToString( attackerInfo.damageSourceId )
+
+ if ( IsValidStatItemString( source ) )
+ Stats_IncrementStat( attacker, "weapon_kill_stats", "assistsTotal", source, 1.0 )
+ }
+ }
+
+ // asTitan_<chassis>
+ if ( player.IsTitan() )
+ Stats_IncrementStat( player, "kills_stats", "asTitan_" + GetTitanCharacterName( player ), "", 1.0 )
+
+ // firstStrikes
+ if ( file.isFirstStrike && attacker.IsPlayer() && victimIsPlayer )
+ {
+ Stats_IncrementStat( player, "kills_stats", "firstStrikes", "", 1.0 )
+ file.isFirstStrike = false
+ }
+
+ // ejectingPilots
+ if ( victimIsPilot && victim.p.pilotEjecting )
+ Stats_IncrementStat( player, "kills_stats", "ejectingPilots", "", 1.0 )
+
+ // whileEjecting
+ if ( attacker.IsPlayer() && attacker.p.pilotEjecting )
+ Stats_IncrementStat( player, "kills_stats", "whileEjecting", "", 1.0 )
+
+ // cloakedPilots
+ if ( victimIsPilot && IsCloaked( victim ) )
+ Stats_IncrementStat( player, "kills_stats", "cloakedPilots", "", 1.0 )
+
+ // whileCloaked
+ if ( attacker == player && IsCloaked( attacker ) )
+ Stats_IncrementStat( player, "kills_stats", "whileCloaked", "", 1.0 )
+
+ // wallrunningPilots
+ if ( victimIsPilot && victim.IsWallRunning() )
+ Stats_IncrementStat( player, "kills_stats", "wallrunningPilots", "", 1.0 )
+
+ // whileWallrunning
+ if ( attacker == player && attacker.IsWallRunning() )
+ Stats_IncrementStat( player, "kills_stats", "whileWallrunning", "", 1.0 )
+
+ // wallhangingPilots
+ if ( victimIsPilot && victim.IsWallHanging() )
+ Stats_IncrementStat( player, "kills_stats", "wallhangingPilots", "", 1.0 )
+
+ // whileWallhanging
+ if ( attacker == player && attacker.IsWallHanging() )
+ Stats_IncrementStat( player, "kills_stats", "whileWallhanging", "", 1.0 )
+
+ // pilotExecution
+ if ( damageSource == eDamageSourceId.human_execution )
+ Stats_IncrementStat( player, "kills_stats", "pilotExecution", "", 1.0 )
+
+ // pilotExecutePilot
+ if ( victimIsPilot && damageSource == eDamageSourceId.human_execution )
+ Stats_IncrementStat( player, "kills_stats", "pilotExecutePilot", "", 1.0 )
+
+ // pilotKillsWithHoloPilotActive
+ if ( victimIsPilot && GetDecoyActiveCountForPlayer( player ) > 0 )
+ Stats_IncrementStat( player, "kills_stats", "pilotKillsWithHoloPilotActive", "", 1.0 )
+
+ // pilotKillsWithAmpedWallActive
+ if ( victimIsPilot && GetAmpedWallsActiveCountForPlayer( player ) > 0 )
+ Stats_IncrementStat( player, "kills_stats", "pilotKillsWithAmpedWallActive", "", 1.0 )
+
+ // pilotExecutePilotUsing_<execution>
+ if ( victimIsPilot && damageSource == eDamageSourceId.human_execution )
+ Stats_IncrementStat( player, "kills_stats", "pilotExecutePilotUsing_" + player.p.lastExecutionUsed, "", 1.0 )
+
+ // pilotKickMelee
+ if ( damageSource == eDamageSourceId.human_melee )
+ Stats_IncrementStat( player, "kills_stats", "pilotKickMelee", "", 1.0 )
+
+ // pilotKickMeleePilot
+ if ( victimIsPilot && damageSource == eDamageSourceId.human_melee )
+ Stats_IncrementStat( player, "kills_stats", "pilotKickMeleePilot", "", 1.0 )
+
+ // titanMelee
+ if ( DamageIsTitanMelee( damageSource ) )
+ Stats_IncrementStat( player, "kills_stats", "titanMelee", "", 1.0 )
+
+ // titanMeleePilot
+ if ( victimIsPilot && DamageIsTitanMelee( damageSource ) )
+ Stats_IncrementStat( player, "kills_stats", "titanMeleePilot", "", 1.0 )
+
+ // titanStepCrush
+ if ( IsTitanCrushDamage( damageInfo ) )
+ Stats_IncrementStat( player, "kills_stats", "titanStepCrush", "", 1.0 )
+
+ // titanStepCrushPilot
+ if ( victimIsPilot && IsTitanCrushDamage( damageInfo ) )
+ Stats_IncrementStat( player, "kills_stats", "titanStepCrushPilot", "", 1.0 )
+
+ // titanExocution<capitalisedChassis>
+ // note: RESPAWN WHY? EXPLAIN
+ if ( damageSource == eDamageSourceId.titan_execution )
+ {
+ string titanName = GetTitanCharacterName( player )
+ titanName = titanName.slice( 0, 1 ).toupper() + titanName.slice( 1, titanName.len() )
+ Stats_IncrementStat( player, "kills_stats", "titanExocution" + titanName, "", 1.0 )
+ }
+
+ // titanFallKill
+ if ( damageSource == eDamageSourceId.damagedef_titan_fall )
+ Stats_IncrementStat( player, "kills_stats", "titanFallKill", "", 1.0 )
+
+ // petTitanKillsFollowMode
+ if ( attacker == playerPetTitan && player.GetPetTitanMode() == eNPCTitanMode.FOLLOW )
+ Stats_IncrementStat( player, "kills_stats", "petTitanKillsFollowMode", "", 1.0 )
+
+ // petTitanKillsGuardMode
+ if ( attacker == playerPetTitan && player.GetPetTitanMode() == eNPCTitanMode.STAY )
+ Stats_IncrementStat( player, "kills_stats", "petTitanKillsGuardMode", "", 1.0 )
+
+ // rodeo_total
+ if ( damageSource == eDamageSourceId.rodeo_battery_removal )
+ Stats_IncrementStat( player, "kills_stats", "rodeo_total", "", 1.0 )
+
+ // pilot_headshots_total
+ if ( victimIsPilot && DamageInfo_GetCustomDamageType( damageInfo ) & DF_HEADSHOT )
+ Stats_IncrementStat( player, "kills_stats", "pilot_headshots_total", "", 1.0 )
+
+ // evacShips
+ if ( IsEvacDropship( victim ) )
+ Stats_IncrementStat( player, "kills_stats", "evacShips", "", 1.0 )
+
+ // nuclearCore
+ if ( damageSource == eDamageSourceId.damagedef_nuclear_core )
+ Stats_IncrementStat( player, "kills_stats", "nuclearCore", "", 1.0 )
+
+ // meleeWhileCloaked
+ if ( IsCloaked( attacker ) && damageSource == eDamageSourceId.human_melee )
+ Stats_IncrementStat( player, "kills_stats", "meleeWhileCloaked", "", 1.0 )
+
+ // titanKillsAsPilot
+ if ( victimIsTitan && IsPilot( attacker ) )
+ Stats_IncrementStat( player, "kills_stats", "titanKillsAsPilot", "", 1.0 )
+
+ // pilotKillsWhileStimActive
+ if ( victimIsPilot && StatusEffect_Get( attacker, eStatusEffect.stim_visual_effect ) <= 0 )
+ Stats_IncrementStat( player, "kills_stats", "pilotKillsWhileStimActive", "", 1.0 )
+
+ // pilotKillsAsTitan
+ if ( victimIsPilot && attacker.IsTitan() )
+ Stats_IncrementStat( player, "kills_stats", "pilotKillsAsTitan", "", 1.0 )
+
+ // pilotKillsAsPilot
+ if ( victimIsPilot && IsPilot( attacker ) )
+ Stats_IncrementStat( player, "kills_stats", "pilotKillsAsPilot", "", 1.0 )
+
+ // titanKillsAsTitan
+ if ( victimIsTitan && attacker.IsTitan() )
+ Stats_IncrementStat( player, "kills_stats", "titanKillsAsTitan", "", 1.0 )
}
-void function UpdateTitanDamageStat(entity attacker, float savedDamage, var damageInfo)
+void function HandleTitanStats( entity victim, entity attacker, var damageInfo )
{
+ if ( !IsValid( attacker ) )
+ return
+
+ // get the player and it's pet titan
+ entity player
+ entity playerPetTitan
+ if ( attacker.IsPlayer() )
+ {
+ // the player is just the attacker
+ player = attacker
+ playerPetTitan = player.GetPetTitan()
+ }
+ else if ( attacker.IsTitan() && IsPetTitan( attacker ) )
+ {
+ // the attacker is the player's auto titan
+ player = attacker.GetTitanSoul().GetBossPlayer()
+ playerPetTitan = attacker
+ }
+ else
+ {
+ // attacker could be something like an NPC, or worldspawn
+ return
+ }
+
+ int damageSource = DamageInfo_GetDamageSourceIdentifier( damageInfo )
+ bool victimIsPlayer = victim.IsPlayer()
+ bool victimIsNPC = victim.IsNPC()
+ bool victimIsPilot = IsPilot( victim )
+ bool victimIsTitan = victim.IsTitan()
+ bool titanIsPrime = IsTitanPrimeTitan( player )
+ // pilots
+ if ( victimIsPilot && attacker.IsTitan() )
+ Stats_IncrementStat( player, "titan_stats", "pilots", GetTitanCharacterName( attacker ), 1.0 )
+
+ // titansTotal
+ if ( victimIsTitan && attacker.IsTitan() )
+ Stats_IncrementStat( player, "titan_stats", "titansTotal", GetTitanCharacterName( attacker ), 1.0 )
+
+ // pilotsAsPrime
+ if ( victimIsPilot && attacker.IsTitan() && titanIsPrime )
+ Stats_IncrementStat( player, "titan_stats", "pilotsAsPrime", GetTitanCharacterName( attacker ), 1.0 )
+
+ // titansAsPrime
+ if ( victimIsTitan && attacker.IsTitan() && titanIsPrime )
+ Stats_IncrementStat( player, "titan_stats", "titansAsPrime", GetTitanCharacterName( attacker ), 1.0 )
+
+ // executionsAsPrime
+ if ( damageSource == eDamageSourceId.titan_execution && attacker.IsTitan() && titanIsPrime )
+ Stats_IncrementStat( player, "titan_stats", "executionsAsPrime", GetTitanCharacterName( attacker ), 1.0 )
}
-void function UpdateTitanWeaponDamageStat(entity attacker, float savedDamage, var damageInfo)
+void function OnPlayerRespawned( entity player )
{
+ thread SetLastPosForDistanceStatValid_Threaded( player, true )
+}
+
+void function OnWinnerDetermined()
+{
+ // award players for match completed, wins, and losses
+ foreach ( entity player in GetPlayerArray() )
+ {
+ Stats_IncrementStat( player, "game_stats", "game_completed", "", 1.0 )
+
+ if ( player.GetTeam() == GetWinningTeam() )
+ Stats_IncrementStat( player, "game_stats", "game_won", "", 1.0 )
+ else
+ Stats_IncrementStat( player, "game_stats", "game_lost", "", 1.0 )
+ }
+
+ if ( IsValidGamemodeString( GAMETYPE ) )
+ {
+ // award players with matches played on the mode
+ foreach ( entity player in GetPlayerArray() )
+ {
+ Stats_IncrementStat( player, "game_stats", "mode_played", GAMETYPE, 1.0 )
+
+ if ( player.GetTeam() == GetWinningTeam() )
+ Stats_IncrementStat( player, "game_stats", "mode_won", GAMETYPE, 1.0 )
+ }
+ }
+
+ // update player's KD
+ foreach ( entity player in GetPlayerArray() )
+ {
+ // kd stats
+ // index 0 is most recent game
+ // index 9 is least recent game
+ float playerKills = ( player in file.playerKills ) ? file.playerKills[ player ] : 0.0
+ float playerDeaths = ( player in file.playerDeaths ) ? file.playerDeaths[ player ] : 0.0
+ float kdratio_match
+ if ( playerDeaths == 0.0 )
+ kdratio_match = playerKills
+ else
+ kdratio_match = playerKills / playerDeaths
+
+ float playerKillsPvp = ( player in file.playerKillsPvp ) ? file.playerKillsPvp[ player ] : 0.0
+ float playerDeathsPvp = ( player in file.playerDeathsPvp ) ? file.playerDeathsPvp[ player ] : 0.0
+ float kdratiopvp_match
+ if ( playerDeathsPvp == 0.0 )
+ kdratiopvp_match = playerKillsPvp
+ else
+ kdratiopvp_match = playerKillsPvp / playerDeathsPvp
+
+ float totalDeaths = player.GetPersistentVarAsInt( "deathStats.total" ).tofloat()
+ float totalKills = player.GetPersistentVarAsInt( "killStats.total" ).tofloat()
+ float totalDeathsPvp = player.GetPersistentVarAsInt( "deathStats.totalPVP" ).tofloat()
+ float totalKillsPvp = player.GetPersistentVarAsInt( "killStats.totalPVP" ).tofloat()
+ float kdratio_lifetime
+ if ( totalDeaths == 0.0 )
+ kdratio_lifetime = totalKills
+ else
+ kdratio_lifetime = totalKills / totalDeaths
+ float kdratio_lifetimepvp
+ if ( totalDeathsPvp == 0.0 )
+ kdratio_lifetimepvp = totalKillsPvp
+ else
+ kdratio_lifetimepvp = totalKillsPvp / totalDeathsPvp
+
+ // shift stats by 1 to make room for new game data
+ for ( int i = NUM_GAMES_TRACK_KDRATIO - 2; i >= 0; --i )
+ {
+ player.SetPersistentVar( format( "kdratio_match[%i]", ( i + 1 ) ), player.GetPersistentVar( format("kdratio_match[%i]", i ) ) )
+ player.SetPersistentVar( format( "kdratiopvp_match[%i]", ( i + 1 ) ), player.GetPersistentVar( format( "kdratiopvp_match[%i]", i ) ) )
+ }
+ // add new game data
+ player.SetPersistentVar( "kdratio_match[0]", kdratio_match )
+ player.SetPersistentVar( "kdratiopvp_match[0]", kdratiopvp_match )
+ player.SetPersistentVar( "kdratio_lifetime", kdratio_lifetime )
+ player.SetPersistentVar( "kdratio_lifetime_pvp", kdratio_lifetimepvp )
+ }
+
+ // award mvp and top 3 in each team
+ if ( !IsFFAGame() )
+ {
+ string gamemode = GameRules_GetGameMode()
+ int functionref( entity, entity ) compareFunc = GameMode_GetScoreCompareFunc( gamemode )
+
+ for( int team = 0; team < MAX_TEAMS; team++ )
+ {
+ array<entity> players = GetPlayerArrayOfTeam( team )
+ if ( compareFunc == null )
+ {
+ printt( "gamemode doesn't have a compare func to get the top 3" )
+ return
+ }
+ players.sort( compareFunc )
+ int maxAwards = int( min( players.len(), 3 ) )
+ for ( int i = 0; i < maxAwards; i++ )
+ {
+ if ( i == 0 )
+ Stats_IncrementStat( players[ i ], "game_stats", "mvp", "", 1.0 )
+ Stats_IncrementStat( players[ i ], "game_stats", "top3OnTeam", "", 1.0 )
+ }
+ }
+
+ }
+}
+void function SetLastPosForDistanceStatValid_Threaded( entity player, bool val )
+{
+ WaitFrame()
+ if ( !IsValid( player ) )
+ return
+ player.p.lastPosForDistanceStatValid = val
}
-void function UpdateTitanCoreEarnedStat( entity player, entity titan )
+// Respawn did this through stuff found in _entitystructs.gnut (stuff like stats_wallrunTime)
+// but their implementation seems kinda bad. The advantage it has over this method is not polling
+// every 0.25 seconds, and using movement callbacks and stuff instead. However, since i can't find
+// callbacks for things like changing weapon, i would have to poll for that *anyway* and thus,
+// there is no point in doing things Respawn's way here
+void function HandleDistanceAndTimeStats_Threaded()
{
+ // just to be safe
+ if ( IsLobby() )
+ return
+
+ while ( GetGameState() < eGameState.Playing )
+ WaitFrame()
+
+ float lastTickTime = Time()
+
+ while( true )
+ {
+ // track distance stats
+ foreach ( entity player in GetPlayerArray() )
+ {
+ if ( player.p.lastPosForDistanceStatValid )
+ {
+ // not 100% sure on using Distance2D over Distance tbh
+ float distInches = Distance2D( player.p.lastPosForDistanceStat, player.GetOrigin() )
+ float distMiles = distInches / 63360.0
+
+ // more generic distance stats
+ Stats_IncrementStat( player, "distance_stats", "total", "", distMiles )
+ if ( player.IsTitan() )
+ {
+ Stats_IncrementStat( player, "distance_stats", "asTitan_" + GetTitanCharacterName( player ), "", distMiles )
+ Stats_IncrementStat( player, "distance_stats", "asTitan", "", distMiles )
+ }
+ else
+ Stats_IncrementStat( player, "distance_stats", "asPilot", "", distMiles )
+
+
+ string state = ""
+ // specific distance stats
+ if ( player.IsWallRunning() )
+ state = "wallrunning"
+ else if ( PlayerIsRodeoingTitan( player ) )
+ {
+ if ( player.GetTitanSoulBeingRodeoed().GetTeam() == player.GetTeam() )
+ state = "onFriendlyTitan"
+ else
+ state = "onEnemyTitan"
+ }
+ else if ( player.IsZiplining() )
+ state = "ziplining"
+ else if ( !player.IsOnGround() )
+ state = "inAir"
+
+ if ( state != "" )
+ Stats_IncrementStat( player, "distance_stats", state, "", distMiles )
+ }
+
+ player.p.lastPosForDistanceStat = player.GetOrigin()
+ }
+
+ float timeSeconds = Time() - lastTickTime
+ float timeHours = timeSeconds / 3600.0
+
+ // track time stats
+ foreach ( entity player in GetPlayerArray() )
+ {
+ // first tick i dont count
+ if ( timeSeconds == 0 )
+ break
+
+ // more generic time stats
+ Stats_IncrementStat( player, "time_stats", "hours_total", "", timeHours )
+ if ( player.IsTitan() )
+ {
+ Stats_IncrementStat( player, "time_stats", "hours_as_titan_" + GetTitanCharacterName( player ), "", timeHours )
+ Stats_IncrementStat( player, "time_stats", "hours_as_titan", "", timeHours )
+ }
+ else
+ Stats_IncrementStat( player, "time_stats", "hours_as_pilot", "", timeHours )
+
+ string state = ""
+ // specific time stats
+ if ( !IsAlive( player ) )
+ state = "hours_dead"
+ else if ( player.IsWallHanging() )
+ state = "hours_wallhanging"
+ else if ( player.IsWallRunning() )
+ state = "hours_wallrunning"
+ else if ( !player.IsOnGround() )
+ state = "hours_inAir"
+ if ( state != "" )
+ Stats_IncrementStat( player, "time_stats", state, "", timeHours )
+
+ // weapon time stats
+ entity activeWeapon = player.GetActiveWeapon()
+ if ( IsValid( activeWeapon ) )
+ {
+ if ( IsValidStatItemString( activeWeapon.GetWeaponClassName() ) )
+ Stats_IncrementStat( player, "weapon_stats", "hoursUsed", activeWeapon.GetWeaponClassName(), timeHours )
+
+ foreach( entity weapon in player.GetMainWeapons() )
+ {
+ if ( IsValidStatItemString( weapon.GetWeaponClassName() ) )
+ Stats_IncrementStat( player, "weapon_stats", "hoursEquipped", weapon.GetWeaponClassName(), timeHours )
+ }
+ }
+
+ // map time stats
+ Stats_IncrementStat( player, "game_stats", "hoursPlayed", "", timeHours )
+ }
+
+ lastTickTime = Time()
+ // not rly worth doing this every frame, just a couple of times per second should be fine
+ wait 0.25
+ }
+}
+
+// this is kinda shit
+void function SaveStatsPeriodically_Threaded()
+{
+ while( true )
+ {
+ foreach( entity player in GetPlayerArray() )
+ Stats_SaveAllStats( player )
+ wait 5
+ }
}
-void function PreScoreEventUpdateStats(entity attacker, entity ent)
+bool function IsValidGamemodeString( string mode )
{
+ int gameModeCount = PersistenceGetEnumCount( "gameModes" )
+ for ( int modeIndex = 0; modeIndex < gameModeCount; modeIndex++ )
+ {
+ string gameModeName = PersistenceGetEnumItemNameForIndex( "gameModes", modeIndex )
+
+ if ( gameModeName == mode )
+ return true
+ }
+ return false
}
-void function PostScoreEventUpdateStats(entity attacker, entity ent)
+bool function IsValidStatItemString( string item )
{
+ foreach( str in shGlobalMP.statsItemsList )
+ {
+ if ( str == item )
+ return true
+ }
+ return false
}
-void function Stats_OnPlayerDidDamage(entity player, var damageInfo)
+string function GetPersistenceRefFromDamageInfo( var damageInfo )
{
+ string damageSourceString = DamageSourceIDToString( DamageInfo_GetDamageSourceIdentifier( damageInfo ) )
+
+ foreach( str in shGlobalMP.statsItemsList )
+ {
+ if ( str == damageSourceString )
+ return damageSourceString
+ }
+ return ""
+}
+
+bool function DamageIsTitanMelee( int damageSourceId )
+{
+ switch( damageSourceId )
+ {
+ case eDamageSourceId.melee_titan_punch:
+ case eDamageSourceId.melee_titan_punch_ion:
+ case eDamageSourceId.melee_titan_punch_legion:
+ case eDamageSourceId.melee_titan_punch_tone:
+ case eDamageSourceId.melee_titan_punch_scorch:
+ case eDamageSourceId.melee_titan_punch_northstar:
+ case eDamageSourceId.melee_titan_punch_fighter:
+ case eDamageSourceId.melee_titan_sword:
+ case eDamageSourceId.melee_titan_sword_aoe:
+ return true
+ default:
+ return false
+ }
+ unreachable
}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn.nut
index 5bf150c0..4956375b 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn.nut
@@ -261,9 +261,12 @@ bool function IsSpawnpointValid( entity spawnpoint, int team )
return false
}
- array<entity> projectiles = GetProjectileArrayEx( "any", TEAM_ANY, TEAM_ANY, spawnpoint.GetOrigin(), 600 )
- foreach ( entity projectile in projectiles )
- if ( projectile.GetTeam() != team )
+ const minEnemyDist = 1000.0 // about 20 meters?
+ // in rsquirrel extend returns null unlike in vanilla squirrel
+ array< entity > spawnBlockers = GetPlayerArrayEx( "any", TEAM_ANY, TEAM_ANY, spawnpoint.GetOrigin(), minEnemyDist )
+ spawnBlockers.extend( GetProjectileArrayEx( "any", TEAM_ANY, TEAM_ANY, spawnpoint.GetOrigin(), minEnemyDist ) )
+ foreach ( entity blocker in spawnBlockers )
+ if ( blocker.GetTeam() != team )
return false
// los check
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut b/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut
index 85f5aa05..7a7498b8 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut
@@ -785,7 +785,7 @@ bool function IsSettingPrimeTitanWithoutSetFile( entity player, string loadoutTy
bool function SkipItemLockedCheck( entity player, string ref, string parentRef, string loadoutProperty ) //Hack: Skip entitlement related unlock checks for now. Can fail.
{
- if ( DevEverythingUnlocked() )
+ if ( DevEverythingUnlocked( player ) )
return true
//if ( IsItemInEntitlementUnlock( ref ) && IsLobby() ) //TODO: Look into restricting this to lobby only? But entitlement checks can fail randomly...
@@ -3993,7 +3993,7 @@ bool function IsValidTitanLoadoutIndex( int loadoutIndex )
bool function HasPrimeToMatchExecutionType( entity player, int itemType )
{
- if ( DevEverythingUnlocked() )
+ if ( DevEverythingUnlocked( player ) )
return true
switch( itemType )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_northstar_utils.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_northstar_utils.gnut
index b26e48ca..f8597744 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/sh_northstar_utils.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_northstar_utils.gnut
@@ -1,11 +1,5 @@
globalize_all_functions
-// whether the server is a modded, northstar server
-bool function IsNorthstarServer()
-{
- return GetConVarBool( "ns_is_modded_server" )
-}
-
// whether the game should return to the lobby on GameRules_EndMatch()
bool function ShouldReturnToLobby()
{
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_progression.nut b/Northstar.CustomServers/mod/scripts/vscripts/sh_progression.nut
new file mode 100644
index 00000000..ceb5e837
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_progression.nut
@@ -0,0 +1,1117 @@
+global function Progression_Init
+global function ProgressionEnabledForPlayer
+#if CLIENT || UI
+global function Progression_SetPreference
+global function Progression_GetPreference
+global function UpdateCachedLoadouts_Delayed
+#endif
+
+#if SP // literally just stub the global functions and call it a day
+
+void function Progression_Init() {}
+bool function ProgressionEnabledForPlayer( entity player ) { return false }
+#if CLIENT || UI
+void function Progression_SetPreference( bool enabled ) {}
+bool function Progression_GetPreference() { return false }
+void function UpdateCachedLoadouts_Delayed() {}
+#endif // CLIENT || UI
+
+#else // MP || UI basically
+
+// SO FOR SOME GOD DAMN REASON, PUTTING THESE INTO ONE STRUCT
+// AND PUTTING THE #if STUFF AROUND THE VARS CAUSES A COMPILE
+// ERROR, SO I HAVE TO DO THIS AWFULNESS
+
+#if SERVER
+struct {
+ table<entity, bool> progressionEnabled
+} file
+#else // UI || CLIENT
+struct {
+ bool isUpdatingCachedLoadouts = false
+} file
+#endif
+
+
+void function Progression_Init()
+{
+ #if SERVER
+ AddCallback_OnClientDisconnected( OnClientDisconnected )
+ AddClientCommandCallback( "ns_progression", ClientCommand_SetProgression )
+ AddCallback_GameStateEnter( eGameState.Playing, OnPlaying )
+ #elseif CLIENT
+ AddCallback_OnClientScriptInit( OnClientScriptInit )
+ #endif
+}
+
+bool function ProgressionEnabledForPlayer( entity player )
+{
+ #if SERVER
+ if ( player in file.progressionEnabled )
+ return file.progressionEnabled[player]
+
+ return false
+ #else // CLIENT || UI
+ return GetConVarBool( "ns_progression_enabled" )
+ #endif
+}
+
+#if SERVER
+void function OnPlaying()
+{
+ SetUIVar( level, "penalizeDisconnect", false ) // dont show the "you will lose merits thing"
+}
+
+void function OnClientDisconnected( entity player )
+{
+ // cleanup table when player leaves
+ if ( player in file.progressionEnabled )
+ delete file.progressionEnabled[player]
+}
+
+bool function ClientCommand_SetProgression( entity player, array<string> args )
+{
+ if ( args.len() != 1 )
+ return false
+ if ( args[0] != "0" && args[0] != "1" )
+ return false
+
+ file.progressionEnabled[player] <- args[0] == "1"
+
+ // loadout validation when progression is turned on
+ if ( file.progressionEnabled[player] )
+ ValidateEquippedItems( player )
+
+ return true
+}
+#endif
+
+#if CLIENT
+void function OnClientScriptInit( entity player )
+{
+ // unsure if this is needed, just being safe
+ if ( player != GetLocalClientPlayer() )
+ return
+
+ Progression_SetPreference( GetConVarBool( "ns_progression_enabled" ) )
+ UpdateCachedLoadouts_Delayed()
+}
+#endif
+
+#if CLIENT || UI
+void function Progression_SetPreference( bool enabled )
+{
+ SetConVarBool( "ns_progression_enabled", enabled )
+
+ #if CLIENT
+ GetLocalClientPlayer().ClientCommand( "ns_progression " + enabled.tointeger() )
+ #else // UI
+ ClientCommand( "ns_progression " + enabled.tointeger() )
+ #endif
+}
+
+bool function Progression_GetPreference()
+{
+ return GetConVarBool( "ns_progression_enabled" )
+}
+
+void function UpdateCachedLoadouts_Delayed()
+{
+ if ( file.isUpdatingCachedLoadouts )
+ return
+
+ file.isUpdatingCachedLoadouts = true
+
+ #if UI
+ RunClientScript( "UpdateCachedLoadouts_Delayed" ) // keep client and UI synced
+ #else // CLIENT
+ RunUIScript( "UpdateCachedLoadouts_Delayed" ) // keep client and UI synced
+ #endif
+
+ thread UpdateCachedLoadouts_Threaded()
+}
+
+void function UpdateCachedLoadouts_Threaded()
+{
+ wait 1.0 // give the server time to network our new persistence
+
+ UpdateCachedLoadouts()
+
+ // below here is just making all the menu models update properly and such
+
+ #if UI
+ uiGlobal.pilotSpawnLoadoutIndex = GetPersistentSpawnLoadoutIndex( GetUIPlayer(), "pilot" )
+ uiGlobal.titanSpawnLoadoutIndex = GetPersistentSpawnLoadoutIndex( GetUIPlayer(), "titan" )
+ #endif
+
+ #if CLIENT
+ entity player = GetLocalClientPlayer()
+ ClearAllTitanPreview( player )
+ ClearAllPilotPreview( player )
+ UpdateTitanModel( player, GetPersistentSpawnLoadoutIndex( player, "titan" ) )
+ UpdatePilotModel( player, GetPersistentSpawnLoadoutIndex( player, "pilot" ) )
+ #endif
+
+ file.isUpdatingCachedLoadouts = false
+}
+#endif
+
+#if SERVER
+void function ValidateEquippedItems( entity player )
+{
+ printt( "VALIDATING EQUIPPED ITEMS FOR PLAYER: " + player.GetPlayerName() )
+
+ // banner
+ CallingCard card = PlayerCallingCard_GetActive( player )
+ if ( IsItemLocked( player, card.ref ) )
+ {
+ printt( "- BANNER CARD IS LOCKED, RESETTING" )
+ PlayerCallingCard_SetActiveByRef( player, "callsign_16_col" ) // copied from _persistentdata.gnut
+ }
+
+ // patch
+ CallsignIcon icon = PlayerCallsignIcon_GetActive( player )
+ if ( IsItemLocked( player, icon.ref ) )
+ {
+ printt( "- BANNER PATCH IS LOCKED, RESETTING" )
+ PlayerCallsignIcon_SetActiveByRef( player, "gc_icon_titanfall" ) // copied from _persistentdata.gnut
+ }
+
+ // faction
+ int factionIndex = player.GetPersistentVarAsInt( "factionChoice" )
+ string factionRef = PersistenceGetEnumItemNameForIndex( "faction", factionIndex )
+ if ( IsItemLocked( player, factionRef ) )
+ {
+ printt( "- FACTION IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "factionChoice", "faction_marauder" ) // im so sorry that i am setting you to use sarah, you don't deserve this
+ }
+
+ // boost
+ BurnReward reward = BurnReward_GetById( player.GetPersistentVarAsInt( "burnmeterSlot" ) )
+ if ( IsItemLocked( player, reward.ref ) )
+ {
+ printt( "- BOOST IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "burnmeterSlot", BurnReward_GetByRef( "burnmeter_amped_weapons" ).id )
+ }
+
+ // titan loadouts
+ for ( int titanLoadoutIndex = 0; titanLoadoutIndex < NUM_PERSISTENT_TITAN_LOADOUTS; titanLoadoutIndex++ )
+ {
+ printt( "- VALIDATING TITAN LOADOUT: " + titanLoadoutIndex )
+
+ bool isSelected = titanLoadoutIndex == player.GetPersistentVarAsInt( "titanSpawnLoadout.index" )
+ TitanLoadoutDef loadout = GetTitanLoadout( player, titanLoadoutIndex )
+ TitanLoadoutDef defaultLoadout = shGlobal.defaultTitanLoadouts[titanLoadoutIndex]
+
+ printt( " - CHASSIS: " + loadout.titanClass )
+
+ // passive1 - "Titan Kit" (things like overcore)
+ if ( loadout.passive1 != defaultLoadout.passive1 && IsSubItemLocked( player, loadout.passive1, loadout.titanClass ) )
+ {
+ printt( " - TITAN KIT EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].passive1", defaultLoadout.passive1 )
+ }
+
+ // passive2 - "<chassis> Kit" (things like zero point tripwire)
+ if ( loadout.passive2 != defaultLoadout.passive2 && IsSubItemLocked( player, loadout.passive2, loadout.titanClass ) )
+ {
+ printt( " - CHASSIS KIT EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].passive2", defaultLoadout.passive2 )
+ }
+
+ // passive3 - "Titanfall Kit" (warpfall/dome shield)
+ if ( loadout.passive3 != defaultLoadout.passive3 && IsSubItemLocked( player, loadout.passive3, loadout.titanClass ) )
+ {
+ printt( " - TITANFALL KIT EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].passive3", defaultLoadout.passive3 )
+ }
+
+ // passive4 - monarch core 1
+ if ( loadout.passive4 != defaultLoadout.passive4 && IsSubItemLocked( player, loadout.passive4, loadout.titanClass ) )
+ {
+ printt( " - MONARCH CORE 1 KIT EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].passive4", defaultLoadout.passive4 )
+ }
+
+ // passive5 - monarch core 2
+ if ( loadout.passive5 != defaultLoadout.passive5 && IsSubItemLocked( player, loadout.passive5, loadout.titanClass ) )
+ {
+ printt( " - MONARCH CORE 2 KIT EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].passive5", defaultLoadout.passive5 )
+ }
+
+ // passive6 - monarch core 3
+ if ( loadout.passive6 != defaultLoadout.passive6 && IsSubItemLocked( player, loadout.passive6, loadout.titanClass ) )
+ {
+ printt( " - MONARCH CORE 3 KIT EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].passive6", defaultLoadout.passive6 )
+ }
+
+ // titanExecution
+ if ( !IsRefValid( loadout.titanExecution ) || !IsValidTitanExecution( titanLoadoutIndex, "titanExecution", "", loadout.titanExecution ) )
+ {
+ printt( " - TITAN EXECUTION IS INVALID FOR CHASSIS, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].titanExecution", defaultLoadout.titanExecution )
+ }
+ else if ( IsItemLocked( player, loadout.titanExecution ) )
+ {
+ printt( " - TITAN EXECUTION EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].titanExecution", defaultLoadout.titanExecution )
+ }
+ else if ( GetItemData( loadout.titanExecution ).reqPrime && IsItemLocked( player, loadout.primeTitanRef ) )
+ {
+ printt( " - PRIME TITAN EXECUTION EQUIPPED WHEN PRIME TITAN IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].titanExecution", defaultLoadout.titanExecution )
+ }
+
+ // skinIndex
+ // camoIndex
+ if ( loadout.skinIndex == TITAN_SKIN_INDEX_CAMO )
+ {
+ array<ItemData> camoSkins = GetAllItemsOfType( eItemTypes.CAMO_SKIN )
+ if ( loadout.camoIndex >= camoSkins.len() || loadout.camoIndex < 0 )
+ {
+ printt( " - INVALID TITAN CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].skinIndex", defaultLoadout.skinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].camoIndex", defaultLoadout.camoIndex )
+ }
+ else
+ {
+ ItemData camoSkin = camoSkins[loadout.camoIndex]
+ if ( IsSubItemLocked( player, camoSkin.ref, loadout.titanClass ) )
+ {
+ printt( " - TITAN CAMO/SKIN EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].skinIndex", defaultLoadout.skinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].camoIndex", defaultLoadout.camoIndex )
+ }
+ }
+ }
+ else if ( loadout.skinIndex == 0 )
+ {
+ if ( loadout.camoIndex != 0 )
+ {
+ printt( " - INVALID TITAN CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].skinIndex", defaultLoadout.skinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].camoIndex", defaultLoadout.camoIndex )
+ }
+ }
+ else
+ {
+ string ref = GetSkinRefFromTitanClassAndPersistenceValue( loadout.titanClass, loadout.skinIndex )
+ if ( ref == INVALID_REF )
+ {
+ printt( " - INVALID TITAN WARPAINT, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].skinIndex", defaultLoadout.skinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].camoIndex", defaultLoadout.camoIndex )
+ }
+ else if ( IsSubItemLocked( player, ref, loadout.titanClass ) )
+ {
+ printt( " - TITAN WARPAINT EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].skinIndex", defaultLoadout.skinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].camoIndex", defaultLoadout.camoIndex )
+ }
+ }
+
+ // decalIndex
+ string noseArtRef = GetNoseArtRefFromTitanClassAndPersistenceValue( loadout.titanClass, loadout.decalIndex )
+ if ( loadout.decalIndex != defaultLoadout.decalIndex && IsSubItemLocked( player, noseArtRef, loadout.titanClass ) )
+ {
+ printt( " - NOSE ART EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].decalIndex", defaultLoadout.decalIndex )
+ }
+
+ // primarySkinIndex
+ // primaryCamoIndex
+ if ( loadout.primarySkinIndex == WEAPON_SKIN_INDEX_CAMO )
+ {
+ array<ItemData> camoSkins = GetAllItemsOfType( eItemTypes.CAMO_SKIN )
+ if ( loadout.primaryCamoIndex >= camoSkins.len() || loadout.primaryCamoIndex < 0 )
+ {
+ printt( " - INVALID WEAPON CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primarySkinIndex", defaultLoadout.primarySkinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primaryCamoIndex", defaultLoadout.primaryCamoIndex )
+ }
+ else
+ {
+ ItemData camoSkin = camoSkins[loadout.primaryCamoIndex]
+ if ( IsSubItemLocked( player, camoSkin.ref, loadout.titanClass ) )
+ {
+ printt( " - WEAPON CAMO/SKIN EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primarySkinIndex", defaultLoadout.primarySkinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primaryCamoIndex", defaultLoadout.primaryCamoIndex )
+ }
+ }
+ }
+ else if ( loadout.primarySkinIndex == 0 && loadout.primaryCamoIndex != 0 )
+ {
+ // titan weapons do not have skins, if we ever do add them lots of stuff will
+ //need a refactor outside of here so with that being said, i cannot be bothered
+ printt( " - INVALID WEAPON CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primarySkinIndex", defaultLoadout.primarySkinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primaryCamoIndex", defaultLoadout.primaryCamoIndex )
+ }
+
+
+ // isPrime
+ if ( loadout.isPrime == "titan_is_prime" && IsItemLocked( player, loadout.primeTitanRef ) )
+ {
+ printt( " - PRIME TITAN EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].isPrime", defaultLoadout.isPrime )
+ }
+
+ // primeSkinIndex
+ // primeCamoIndex
+ if ( loadout.primeSkinIndex == TITAN_SKIN_INDEX_CAMO )
+ {
+ array<ItemData> camoSkins = GetAllItemsOfType( eItemTypes.CAMO_SKIN )
+ if ( loadout.primeCamoIndex >= camoSkins.len() || loadout.primeCamoIndex < 0 )
+ {
+ printt( " - INVALID TITAN CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primeSkinIndex", defaultLoadout.primeSkinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primeCamoIndex", defaultLoadout.primeCamoIndex )
+ }
+ else
+ {
+ ItemData camoSkin = camoSkins[loadout.primeCamoIndex]
+ if ( IsSubItemLocked( player, camoSkin.ref, loadout.titanClass ) )
+ {
+ printt( " - TITAN CAMO/SKIN EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primeSkinIndex", defaultLoadout.primeSkinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primeCamoIndex", defaultLoadout.primeCamoIndex )
+ }
+ }
+ }
+ else if ( loadout.primeSkinIndex == 0 )
+ {
+ if ( loadout.primeCamoIndex != 0 )
+ {
+ printt( " - INVALID TITAN CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primeSkinIndex", defaultLoadout.primeSkinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primeCamoIndex", defaultLoadout.primeCamoIndex )
+ }
+ }
+ else
+ {
+ printt( " - INVALID PRIME TITAN SKIN, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primeSkinIndex", defaultLoadout.primeSkinIndex )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primeCamoIndex", defaultLoadout.primeCamoIndex )
+ }
+
+ // primeDecalIndex
+ string primeNoseArtRef = GetNoseArtRefFromTitanClassAndPersistenceValue( loadout.titanClass, loadout.primeDecalIndex )
+ if ( loadout.primeDecalIndex != defaultLoadout.primeDecalIndex && IsSubItemLocked( player, primeNoseArtRef, loadout.titanClass ) )
+ {
+ printt( " - PRIME NOSE ART EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].primeDecalIndex", defaultLoadout.primeDecalIndex )
+ }
+
+ // showArmBadge - equipped and shouldnt be able to
+ if ( loadout.showArmBadge && !CanEquipArmBadge( player, loadout.titanClass ) )
+ {
+ printt( " - ARM BADGE EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanLoadouts[" + titanLoadoutIndex + "].showArmBadge", defaultLoadout.showArmBadge )
+ }
+
+ // equipped titan loadout - equipped titan class is locked
+ if ( isSelected && IsItemLocked( player, loadout.titanClass ) )
+ {
+ printt( " - SELECTED TITAN CLASS IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "titanSpawnLoadout.index", 0 )
+ Remote_CallFunction_NonReplay( player, "ServerCallback_UpdateTitanModel", 0 )
+ }
+ }
+
+ Remote_CallFunction_NonReplay( player, "ServerCallback_UpdateTitanModel", player.GetPersistentVarAsInt( "titanSpawnLoadout.index" ) )
+
+ // pilot loadouts
+ for ( int pilotLoadoutIndex = 0; pilotLoadoutIndex < NUM_PERSISTENT_PILOT_LOADOUTS; pilotLoadoutIndex++ )
+ {
+ printt( "- VALIDATING PILOT LOADOUT: " + pilotLoadoutIndex )
+
+ bool isSelected = pilotLoadoutIndex == player.GetPersistentVarAsInt( "pilotSpawnLoadout.index" )
+ PilotLoadoutDef loadout = GetPilotLoadout( player, pilotLoadoutIndex )
+ PilotLoadoutDef defaultLoadout = shGlobal.defaultPilotLoadouts[pilotLoadoutIndex]
+
+ // note: for readability, I have added {} around the different items,
+ // so that you can collapse them in visual studio code (and other good IDEs)
+
+ // tactical
+ {
+ if ( !IsRefValid( loadout.suit ) )
+ {
+ printt( " - TACTICAL IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].suit", defaultLoadout.suit )
+ }
+ else if ( IsItemLocked( player, loadout.suit ) )
+ {
+ printt( " - TACTICAL IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].suit", defaultLoadout.suit )
+ }
+ }
+
+ // ordnance
+ {
+ if ( !IsRefValid( loadout.ordnance ) )
+ {
+ printt( " - ORDNANCE IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].ordnance", defaultLoadout.ordnance )
+ }
+ else if ( IsItemLocked( player, loadout.ordnance ) )
+ {
+ printt( " - ORDNANCE IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].ordnance", defaultLoadout.ordnance )
+ }
+ }
+
+ // race ( gender )
+ {
+ if ( !IsRefValid( loadout.race ) )
+ {
+ printt( " - GENDER IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].race", defaultLoadout.race )
+ }
+ else if ( IsItemLocked( player, loadout.race ) )
+ {
+ printt( " - GENDER IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].race", defaultLoadout.race )
+ }
+ }
+
+ // camoIndex
+ // skinIndex
+ {
+ if ( loadout.skinIndex == PILOT_SKIN_INDEX_CAMO )
+ {
+ array<ItemData> camoSkins = GetAllItemsOfType( eItemTypes.CAMO_SKIN_PILOT )
+ if ( loadout.camoIndex >= camoSkins.len() || loadout.camoIndex < 0 )
+ {
+ printt( " - INVALID PILOT CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].skinIndex", defaultLoadout.skinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].camoIndex", defaultLoadout.camoIndex )
+ }
+ else
+ {
+ ItemData camoSkin = camoSkins[loadout.camoIndex]
+ if ( IsItemLocked( player, camoSkin.ref ) )
+ {
+ printt( " - PILOT CAMO/SKIN EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].skinIndex", defaultLoadout.skinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].camoIndex", defaultLoadout.camoIndex )
+ }
+ }
+ }
+ else if ( loadout.skinIndex == 0 )
+ {
+ if ( loadout.camoIndex != 0 )
+ {
+ printt( " - INVALID PILOT CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].skinIndex", defaultLoadout.skinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].camoIndex", defaultLoadout.camoIndex )
+ }
+ }
+ else
+ {
+ // pilots can't have skins other than 0 and 1 right?
+ printt( " - INVALID PILOT SKIN, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].skinIndex", defaultLoadout.skinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].camoIndex", defaultLoadout.camoIndex )
+ }
+ }
+
+ // primary weapon
+ {
+ if ( !IsRefValid( loadout.primary ) || GetItemType( loadout.primary ) != eItemTypes.PILOT_PRIMARY )
+ {
+ printt( " - PRIMARY WEAPON IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primary", defaultLoadout.primary )
+ }
+ else if ( IsItemLocked( player, loadout.primary ) )
+ {
+ printt( " - PRIMARY WEAPON IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primary", defaultLoadout.primary )
+ }
+ }
+
+ // primary weapon mods
+ {
+ // mod1
+ if ( loadout.primaryMod1 == "" )
+ {
+ // do nothing
+ }
+ else if ( !HasSubitem( loadout.primary, loadout.primaryMod1 ) )
+ {
+ printt( " - PRIMARY WEAPON MOD 1 IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryMod1", defaultLoadout.primaryMod1 )
+ }
+ else if ( IsSubItemLocked( player, loadout.primaryMod1, loadout.primary ) )
+ {
+ printt( " - PRIMARY WEAPON MOD 1 IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryMod1", defaultLoadout.primaryMod1 )
+ }
+ // mod2
+ if ( loadout.primaryMod2 == "" )
+ {
+ // do nothing
+ }
+ else if ( IsSubItemLocked( player, "primarymod2", loadout.primary ) )
+ {
+ printt( " - PRIMARY WEAPON MOD 2 SLOT IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryMod2", defaultLoadout.primaryMod2 )
+ }
+ else if ( !HasSubitem( loadout.primary, loadout.primaryMod2 ) )
+ {
+ printt( " - PRIMARY WEAPON MOD 2 IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryMod2", defaultLoadout.primaryMod2 )
+ }
+ else if ( IsSubItemLocked( player, loadout.primaryMod2, loadout.primary ) )
+ {
+ printt( " - PRIMARY WEAPON MOD 2 IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryMod2", defaultLoadout.primaryMod2 )
+ }
+ else if ( loadout.primaryMod2 == loadout.primaryMod1 && loadout.primaryMod2 != "" )
+ {
+ printt( " - PRIMARY WEAPON MOD 2 IS DUPLICATE, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryMod2", defaultLoadout.primaryMod2 )
+ }
+ else if ( loadout.primaryAttachment == "threat_scope" )
+ {
+ printt( " - PRIMARY WEAPON MOD 2 IS SET WITH THREAT SCOPE, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryMod2", defaultLoadout.primaryMod2 )
+ }
+ // attachment
+ if ( loadout.primaryAttachment == "" )
+ {
+ // do nothing
+ }
+ else if ( !HasSubitem( loadout.primary, loadout.primaryAttachment ) )
+ {
+ printt( " - PRIMARY WEAPON ATTACHMENT IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryAttachment", defaultLoadout.primaryAttachment )
+ }
+ else if ( IsSubItemLocked( player, loadout.primaryAttachment, loadout.primary ) )
+ {
+ printt( " - PRIMARY WEAPON ATTACHMENT IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryAttachment", defaultLoadout.primaryAttachment )
+ }
+ // mod3 (pro screen)
+ if ( loadout.primaryMod3 == "" )
+ {
+ // do nothing
+ }
+ else if ( loadout.primaryMod3 == "pro_screen" )
+ {
+ // fuck you and your three mod slot stuff
+ printt( " - PRIMARY WEAPON PRO SCREEN IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryMod3", defaultLoadout.primaryMod3 )
+ }
+ else if ( IsSubItemLocked( player, loadout.primaryMod3, loadout.primary ) )
+ {
+ printt( " - PRIMARY WEAPON PRO SCREEN IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryMod3", defaultLoadout.primaryMod3 )
+ }
+ }
+
+ // primary weapon camoIndex
+ // primary weapon skinIndex
+ {
+ if ( loadout.primarySkinIndex == WEAPON_SKIN_INDEX_CAMO )
+ {
+ array<ItemData> camoSkins = GetAllItemsOfType( eItemTypes.CAMO_SKIN )
+ if ( loadout.primaryCamoIndex >= camoSkins.len() || loadout.primaryCamoIndex < 0 )
+ {
+ printt( " - INVALID PRIMARY WEAPON CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primarySkinIndex", defaultLoadout.primarySkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryCamoIndex", defaultLoadout.primaryCamoIndex )
+ }
+ else
+ {
+ ItemData camoSkin = camoSkins[loadout.primaryCamoIndex]
+ if ( IsSubItemLocked( player, camoSkin.ref, loadout.primary ) )
+ {
+ printt( " - PRIMARY WEAPON CAMO/SKIN EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primarySkinIndex", defaultLoadout.primarySkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryCamoIndex", defaultLoadout.primaryCamoIndex )
+ }
+ }
+ }
+ else if ( loadout.primarySkinIndex == 0 )
+ {
+ if ( loadout.primaryCamoIndex != 0 )
+ {
+ printt( " - INVALID PRIMARY WEAPON CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primarySkinIndex", defaultLoadout.primarySkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryCamoIndex", defaultLoadout.primaryCamoIndex )
+ }
+ }
+ else
+ {
+ string warpaintRef = GetWeaponWarpaintRefByIndex( loadout.primarySkinIndex, loadout.primary )
+ if ( warpaintRef == INVALID_REF || IsSubItemLocked( player, warpaintRef, loadout.primary ) )
+ {
+ printt( " - PRIMARY WEAPON SKIN LOCKED/INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primarySkinIndex", defaultLoadout.primarySkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].primaryCamoIndex", defaultLoadout.primaryCamoIndex )
+ }
+ }
+ }
+
+ // secondary weapon
+ {
+ if ( !IsRefValid( loadout.secondary ) || GetItemType( loadout.secondary ) != eItemTypes.PILOT_SECONDARY )
+ {
+ printt( " - SECONDARY WEAPON IS LOCKED, RESETTING" )
+ string ref = defaultLoadout.secondary
+ if ( loadout.secondary == ref ) // item dupes swap
+ {
+ ref = defaultLoadout.weapon3
+ }
+ else if ( ItemsInSameMenuCategory( loadout.secondary, ref ) ) // category dupes assign value to other slot and swap
+ {
+ ref = defaultLoadout.weapon3
+ }
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondary", ref )
+ }
+ else if ( IsItemLocked( player, loadout.secondary ) )
+ {
+ printt( " - SECONDARY WEAPON IS LOCKED, RESETTING" )
+ string ref = defaultLoadout.secondary
+ if ( loadout.weapon3 == ref ) // item dupes swap
+ {
+ ref = defaultLoadout.weapon3
+ }
+ else if ( ItemsInSameMenuCategory( loadout.weapon3, ref ) ) // category dupes assign value to other slot and swap
+ {
+ ref = defaultLoadout.weapon3
+ }
+
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondary", ref )
+ }
+ }
+
+ // secondary weapon mods
+ {
+ // mod1
+ if ( loadout.secondaryMod1 == "" )
+ {
+ // do nothing
+ }
+ else if ( !HasSubitem( loadout.secondary, loadout.secondaryMod1 ) )
+ {
+ printt( " - SECONDARY WEAPON MOD 1 IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryMod1", defaultLoadout.secondaryMod1 )
+ }
+ else if ( IsSubItemLocked( player, loadout.secondaryMod1, loadout.secondary ) )
+ {
+ printt( " - SECONDARY WEAPON MOD 1 IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryMod1", defaultLoadout.secondaryMod1 )
+ }
+ // mod2
+ if ( loadout.secondaryMod2 == "" )
+ {
+ // do nothing
+ }
+ else if ( IsSubItemLocked( player, "secondarymod2", loadout.secondary ) )
+ {
+ printt( " - SECONDARY WEAPON MOD 2 SLOT IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryMod2", defaultLoadout.secondaryMod2 )
+ }
+ else if ( !HasSubitem( loadout.secondary, loadout.secondaryMod2 ) )
+ {
+ printt( " - SECONDARY WEAPON MOD 2 IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryMod2", defaultLoadout.secondaryMod2 )
+ }
+ else if ( IsSubItemLocked( player, loadout.secondaryMod2, loadout.secondary ) )
+ {
+ printt( " - SECONDARY WEAPON MOD 2 IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryMod2", defaultLoadout.secondaryMod2 )
+ }
+ else if ( loadout.secondaryMod2 == loadout.secondaryMod1 && loadout.secondaryMod2 != "" )
+ {
+ printt( " - SECONDARY WEAPON MOD 2 IS DUPLICATE, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryMod2", defaultLoadout.secondaryMod2 )
+ }
+ // mod3 (pro screen)
+ if ( loadout.secondaryMod3 == "" )
+ {
+ // do nothing
+ }
+ else if ( loadout.secondaryMod3 == "pro_screen" )
+ {
+ // fuck you and your three mod slot stuff
+ printt( " - SECONDARY WEAPON PRO SCREEN IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryMod3", defaultLoadout.secondaryMod3 )
+ }
+ else if ( IsSubItemLocked( player, "secondarymod3", loadout.secondary ) )
+ {
+ printt( " - SECONDARY WEAPON PRO SCREEN IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryMod3", defaultLoadout.secondaryMod3 )
+ }
+ }
+
+ // secondary weapon camoIndex
+ // secondary weapon skinIndex
+ {
+ if ( loadout.secondarySkinIndex == WEAPON_SKIN_INDEX_CAMO )
+ {
+ array<ItemData> camoSkins = GetAllItemsOfType( eItemTypes.CAMO_SKIN )
+ if ( loadout.secondaryCamoIndex >= camoSkins.len() || loadout.secondaryCamoIndex < 0 )
+ {
+ printt( " - INVALID SECONDARY WEAPON CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondarySkinIndex", defaultLoadout.secondarySkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryCamoIndex", defaultLoadout.secondaryCamoIndex )
+ }
+ else
+ {
+ ItemData camoSkin = camoSkins[loadout.secondaryCamoIndex]
+ if ( IsSubItemLocked( player, camoSkin.ref, loadout.secondary ) )
+ {
+ printt( " - SECONDARY WEAPON CAMO/SKIN EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondarySkinIndex", defaultLoadout.secondarySkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryCamoIndex", defaultLoadout.secondaryCamoIndex )
+ }
+ }
+ }
+ else if ( loadout.secondarySkinIndex == 0 )
+ {
+ if ( loadout.secondaryCamoIndex != 0 )
+ {
+ printt( " - INVALID SECONDARY WEAPON CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondarySkinIndex", defaultLoadout.secondarySkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryCamoIndex", defaultLoadout.secondaryCamoIndex )
+ }
+ }
+ else
+ {
+ string warpaintRef = GetWeaponWarpaintRefByIndex( loadout.secondarySkinIndex, loadout.secondary )
+ if ( warpaintRef == INVALID_REF || IsSubItemLocked( player, warpaintRef, loadout.secondary ) )
+ {
+ printt( " - SECONDARY WEAPON SKIN LOCKED/INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondarySkinIndex", defaultLoadout.secondarySkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].secondaryCamoIndex", defaultLoadout.secondaryCamoIndex )
+ }
+ }
+ }
+
+ // weapon3
+ // note: these are always eItemTypes.PILOT_SECONDARY
+ {
+ if ( !IsRefValid( loadout.weapon3 ) || GetItemType( loadout.weapon3 ) != eItemTypes.PILOT_SECONDARY )
+ {
+ printt( " - WEAPON3 WEAPON IS LOCKED, RESETTING" )
+ string ref = defaultLoadout.weapon3
+ if ( loadout.weapon3 == ref ) // item dupes swap
+ {
+ ref = defaultLoadout.secondary
+ }
+ else if ( ItemsInSameMenuCategory( loadout.weapon3, ref ) ) // category dupes assign value to other slot and swap
+ {
+ ref = defaultLoadout.secondary
+ }
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3", ref )
+ }
+ else if ( IsItemLocked( player, loadout.weapon3 ) )
+ {
+ printt( " - TERTIARY WEAPON IS LOCKED, RESETTING" )
+ string ref = defaultLoadout.weapon3
+ if ( loadout.secondary == ref ) // item dupes swap
+ {
+ ref = defaultLoadout.secondary
+ }
+ else if ( ItemsInSameMenuCategory( loadout.secondary, ref ) ) // category dupes assign value to other slot and swap
+ {
+ ref = defaultLoadout.secondary
+ }
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3", ref )
+ }
+ }
+
+ // weapon3 mods
+ {
+ // mod1
+ if ( loadout.weapon3Mod1 == "" )
+ {
+ // do nothing
+ }
+ else if ( !HasSubitem( loadout.weapon3, loadout.weapon3Mod1 ) )
+ {
+ printt( " - WEAPON3 MOD 1 IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3Mod1", defaultLoadout.weapon3Mod1 )
+ }
+ else if ( IsSubItemLocked( player, loadout.weapon3Mod1, loadout.weapon3 ) )
+ {
+ printt( " - WEAPON3 MOD 1 IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3Mod1", defaultLoadout.weapon3Mod1 )
+ }
+ // mod2
+ if ( loadout.weapon3Mod2 == "" )
+ {
+ // do nothing
+ }
+ else if ( IsSubItemLocked( player, "secondarymod2", loadout.weapon3 ) )
+ {
+ printt( " - WEAPON3 MOD 2 SLOT IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3Mod2", defaultLoadout.weapon3Mod2 )
+ }
+ else if ( !HasSubitem( loadout.weapon3, loadout.weapon3Mod2 ) )
+ {
+ printt( " - WEAPON3 MOD 2 IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3Mod2", defaultLoadout.weapon3Mod2 )
+ }
+ else if ( IsSubItemLocked( player, loadout.weapon3Mod2, loadout.weapon3 ) )
+ {
+ printt( " - WEAPON3 MOD 2 IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3Mod2", defaultLoadout.weapon3Mod2 )
+ }
+ else if ( loadout.weapon3Mod2 == loadout.weapon3Mod1 && loadout.weapon3Mod2 != "" )
+ {
+ printt( " - WEAPON3 MOD 2 IS DUPLICATE, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3Mod2", defaultLoadout.weapon3Mod2 )
+ }
+ // mod3 (pro screen)
+ if ( loadout.weapon3Mod3 == "" )
+ {
+ // do nothing
+ }
+ else if ( loadout.weapon3Mod3 != "pro_screen" )
+ {
+ // fuck you and your three mod slot stuff
+ printt( " - WEAPON3 PRO SCREEN IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3Mod3", defaultLoadout.weapon3Mod3 )
+ }
+ else if ( IsSubItemLocked( player, "secondarymod3", loadout.weapon3 ) )
+ {
+ printt( " - WEAPON3 PRO SCREEN IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3Mod3", defaultLoadout.weapon3Mod3 )
+ }
+ }
+
+ // weapon3 camoIndex
+ // weapon3 skinIndex
+ {
+ if ( loadout.weapon3SkinIndex == WEAPON_SKIN_INDEX_CAMO )
+ {
+ array<ItemData> camoSkins = GetAllItemsOfType( eItemTypes.CAMO_SKIN )
+ if ( loadout.weapon3CamoIndex >= camoSkins.len() || loadout.weapon3CamoIndex < 0 )
+ {
+ printt( " - INVALID TERTIARY WEAPON CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3SkinIndex", defaultLoadout.weapon3SkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3CamoIndex", defaultLoadout.weapon3CamoIndex )
+ }
+ else
+ {
+ ItemData camoSkin = camoSkins[loadout.weapon3CamoIndex]
+ if ( IsSubItemLocked( player, camoSkin.ref, loadout.weapon3 ) )
+ {
+ printt( " - TERTIARY WEAPON CAMO/SKIN EQUIPPED WHEN LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3SkinIndex", defaultLoadout.weapon3SkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3CamoIndex", defaultLoadout.weapon3CamoIndex )
+ }
+ }
+ }
+ else if ( loadout.weapon3SkinIndex == 0 )
+ {
+ if ( loadout.weapon3CamoIndex != 0 )
+ {
+ printt( " - INVALID TERTIARY WEAPON CAMO/SKIN, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3SkinIndex", defaultLoadout.weapon3SkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3CamoIndex", defaultLoadout.weapon3CamoIndex )
+ }
+ }
+ else
+ {
+ string warpaintRef = GetWeaponWarpaintRefByIndex( loadout.weapon3SkinIndex, loadout.weapon3 )
+ if ( warpaintRef == INVALID_REF || IsSubItemLocked( player, warpaintRef, loadout.weapon3 ) )
+ {
+ printt( " - TERTIARY WEAPON SKIN LOCKED/INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3SkinIndex", defaultLoadout.weapon3SkinIndex )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].weapon3CamoIndex", defaultLoadout.weapon3CamoIndex )
+ }
+ }
+ }
+
+ // kit 1
+ {
+ if ( !IsRefValid( loadout.passive1 ) || GetItemType( loadout.passive1 ) != eItemTypes.PILOT_PASSIVE1 )
+ {
+ printt( " - KIT 1 IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].passive1", defaultLoadout.passive1 )
+ }
+ else if ( IsItemLocked( player, loadout.passive1 ) )
+ {
+ printt( " - KIT 1 IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].passive1", defaultLoadout.passive1 )
+ }
+ }
+
+ // kit 2
+ {
+ if ( !IsRefValid( loadout.passive2 ) || GetItemType( loadout.passive2 ) != eItemTypes.PILOT_PASSIVE2 )
+ {
+ printt( " - KIT 2 IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].passive2", defaultLoadout.passive2 )
+ }
+ else if ( IsItemLocked( player, loadout.passive2 ) )
+ {
+ printt( " - KIT 2 IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].passive2", defaultLoadout.passive2 )
+ }
+ }
+
+ // execution
+ // note: not sure why defaultLoadout has this set to "", but neck snap should be default
+ {
+ if ( !IsRefValid( loadout.execution ) || GetItemType( loadout.execution ) != eItemTypes.PILOT_EXECUTION )
+ {
+ printt( " - EXECUTION IS INVALID, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].execution", "execution_neck_snap" )
+ }
+ else if ( IsItemLocked( player, loadout.execution ) )
+ {
+ printt( " - EXECUTION IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotLoadouts[" + pilotLoadoutIndex + "].execution", "execution_neck_snap" )
+ }
+ }
+
+ // equipped pilot loadout
+ {
+ if ( isSelected && IsItemLocked( player, "pilot_loadout_" + ( pilotLoadoutIndex + 1 ) ) )
+ {
+ printt( " - SELECTED PILOT LOADOUT IS LOCKED, RESETTING" )
+ player.SetPersistentVar( "pilotSpawnLoadout.index", 0 )
+ Remote_CallFunction_NonReplay( player, "ServerCallback_UpdatePilotModel", 0 )
+ }
+ }
+ }
+
+ Remote_CallFunction_NonReplay( player, "ServerCallback_UpdatePilotModel", player.GetPersistentVarAsInt( "pilotSpawnLoadout.index" ) )
+
+ printt( "ITEM VALIDATION COMPLETE FOR PLAYER: " + player.GetPlayerName() )
+}
+
+// basically just PopulateTitanLoadoutFromPersistentData but without validation, we are doing the validation in a better way
+// that doesnt just kick the player and reset the entire loadout, since we want to only reset parts of the loadout that we need
+TitanLoadoutDef function GetTitanLoadout( entity player, int loadoutIndex )
+{
+ TitanLoadoutDef loadout
+
+ loadout.name = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "name" )
+ loadout.titanClass = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "titanClass" )
+ loadout.primaryMod = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "primaryMod" )
+ loadout.special = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "special" )
+ loadout.antirodeo = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "antirodeo" )
+ loadout.passive1 = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "passive1" )
+ loadout.passive2 = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "passive2" )
+ loadout.passive3 = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "passive3" )
+ loadout.passive4 = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "passive4" )
+ loadout.passive5 = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "passive5" )
+ loadout.passive6 = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "passive6" )
+ loadout.camoIndex = GetPersistentLoadoutValueInt( player, "titan", loadoutIndex, "camoIndex" )
+ loadout.skinIndex = GetPersistentLoadoutValueInt( player, "titan", loadoutIndex, "skinIndex" ) //Important: Skin index needs to be gotten after camoIndex for loadout validation purposes
+ loadout.decalIndex = GetPersistentLoadoutValueInt( player, "titan", loadoutIndex, "decalIndex" )
+ loadout.primaryCamoIndex = GetPersistentLoadoutValueInt( player, "titan", loadoutIndex, "primaryCamoIndex" )
+ loadout.primarySkinIndex = GetPersistentLoadoutValueInt( player, "titan", loadoutIndex, "primarySkinIndex" ) //Important: Skin index needs to be gotten after camoIndex for loadout validation purposes
+ loadout.titanExecution = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "titanExecution" )
+ loadout.showArmBadge = GetPersistentLoadoutValueInt( player, "titan", loadoutIndex, "showArmBadge" )
+
+ //Prime Titan related vars
+ loadout.isPrime = GetPersistentLoadoutValue( player, "titan", loadoutIndex, "isPrime" )
+ loadout.primeCamoIndex = GetPersistentLoadoutValueInt( player, "titan", loadoutIndex, "primeCamoIndex" )
+ loadout.primeSkinIndex = GetPersistentLoadoutValueInt( player, "titan", loadoutIndex, "primeSkinIndex" ) //Important: Skin index needs to be gotten after camoIndex for loadout validation purposes
+ loadout.primeDecalIndex = GetPersistentLoadoutValueInt( player, "titan", loadoutIndex, "primeDecalIndex" )
+
+ UpdateDerivedTitanLoadoutData( loadout )
+ OverwriteLoadoutWithDefaultsForSetFile( loadout )
+
+ return loadout
+}
+
+// basically just PopulatePilotLoadoutFromPersistentData but without validation, we are doing the validation in a better way
+// that doesnt just kick the player and reset the entire loadout, since we want to only reset parts of the loadout that we need
+PilotLoadoutDef function GetPilotLoadout( entity player, int loadoutIndex )
+{
+ PilotLoadoutDef loadout
+
+ loadout.name = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "name" )
+ loadout.suit = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "suit" )
+ loadout.race = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "race" )
+ loadout.execution = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "execution" )
+ loadout.primary = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "primary" )
+ loadout.primaryAttachment = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "primaryAttachment" )
+ loadout.primaryMod1 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "primaryMod1" )
+ loadout.primaryMod2 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "primaryMod2" )
+ loadout.primaryMod3 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "primaryMod3" )
+ loadout.secondary = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "secondary" )
+ loadout.secondaryMod1 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "secondaryMod1" )
+ loadout.secondaryMod2 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "secondaryMod2" )
+ loadout.secondaryMod3 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "secondaryMod3" )
+ loadout.weapon3 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "weapon3" )
+ loadout.weapon3Mod1 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "weapon3Mod1" )
+ loadout.weapon3Mod2 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "weapon3Mod2" )
+ loadout.weapon3Mod3 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "weapon3Mod3" )
+ loadout.ordnance = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "ordnance" )
+ loadout.passive1 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "passive1" )
+ loadout.passive2 = GetPersistentLoadoutValue( player, "pilot", loadoutIndex, "passive2" )
+ loadout.camoIndex = GetPersistentLoadoutValueInt( player, "pilot", loadoutIndex, "camoIndex" )
+ loadout.skinIndex = GetPersistentLoadoutValueInt( player, "pilot", loadoutIndex, "skinIndex" ) //Important: Skin index needs to be gotten after camoIndex for loadout validation purposes
+ loadout.primaryCamoIndex = GetPersistentLoadoutValueInt( player, "pilot", loadoutIndex, "primaryCamoIndex" )
+ loadout.primarySkinIndex = GetPersistentLoadoutValueInt( player, "pilot", loadoutIndex, "primarySkinIndex" ) //Important: Skin index needs to be gotten after camoIndex for loadout validation purposes
+ loadout.secondaryCamoIndex = GetPersistentLoadoutValueInt( player, "pilot", loadoutIndex, "secondaryCamoIndex" )
+ loadout.secondarySkinIndex = GetPersistentLoadoutValueInt( player, "pilot", loadoutIndex, "secondarySkinIndex" ) //Important: Skin index needs to be gotten after camoIndex for loadout validation purposes
+ loadout.weapon3CamoIndex = GetPersistentLoadoutValueInt( player, "pilot", loadoutIndex, "weapon3CamoIndex" )
+ loadout.weapon3SkinIndex = GetPersistentLoadoutValueInt( player, "pilot", loadoutIndex, "weapon3SkinIndex" ) //Important: Skin index needs to be gotten after camoIndex for loadout validation purposes
+
+ UpdateDerivedPilotLoadoutData( loadout )
+
+ return loadout
+}
+
+bool function CanEquipArmBadge( entity player, string titanClass )
+{
+ string skinRef
+ switch ( titanClass )
+ {
+ case "ion":
+ skinRef = "ion_skin_fd"
+ break
+ case "scorch":
+ skinRef = "scorch_skin_fd"
+ break
+ case "northstar":
+ skinRef = "northstar_skin_fd"
+ break
+ case "ronin":
+ skinRef = "ronin_skin_fd"
+ break
+ case "tone":
+ skinRef = "tone_skin_fd"
+ break
+ case "legion":
+ skinRef = "legion_skin_fd"
+ break
+ case "vanguard":
+ skinRef = "monarch_skin_fd"
+ break
+ }
+
+ return !IsSubItemLocked( player, skinRef, titanClass )
+}
+
+string function GetWeaponWarpaintRefByIndex( int skinIndex, string parentRef )
+{
+ ItemData parentItem = GetItemData( parentRef )
+ foreach ( subItem in parentItem.subitems )
+ {
+ if ( GetSubitemType( parentRef, subItem.ref ) != eItemTypes.WEAPON_SKIN )
+ continue
+ if ( subItem.i.skinIndex != skinIndex )
+ continue
+
+ return subItem.ref
+ }
+
+ return INVALID_REF
+}
+#endif // SERVER
+
+#endif // MP
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_utility_all.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_utility_all.gnut
index 7f356a18..9e762985 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/sh_utility_all.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_utility_all.gnut
@@ -362,7 +362,7 @@ string function StringReplace( string baseString, string searchString, string re
source = part1 + replaceString + part2
loopedOnce = true
- findResult = source.find( searchString )
+ findResult = source.find( searchString, findResult + replaceString.len() )
}
return baseString
@@ -386,8 +386,12 @@ float function RoundToNearestMultiplier( float value, float multiplier )
return value
}
-function DevEverythingUnlocked()
+function DevEverythingUnlocked( entity player = null )
{
+ // check if player has opted into progression or not
+ if ( player != null && ProgressionEnabledForPlayer( player ) )
+ return false
+
return EverythingUnlockedConVarEnabled()
}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/titan_xp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan_xp.gnut
index 4bfeb4f8..0436a393 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/titan_xp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan_xp.gnut
@@ -10,5 +10,8 @@ void function AddTitanXP( entity player, int amount )
// level up notif
if ( TitanGetLevel( player, titan ) != oldLevel )
+ {
Remote_CallFunction_NonReplay( player, "ServerCallback_TitanLeveledUp", shTitanXP.titanClasses.find( titan ), TitanGetGen( player, titan ), TitanGetLevel( player, titan ) )
+ AddPlayerScore( player, "TitanLevelUp" )
+ }
} \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/weapon_xp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/weapon_xp.gnut
index 8e100257..4e25e301 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/weapon_xp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapon_xp.gnut
@@ -12,8 +12,11 @@ void function AddWeaponXP( entity player, int amount )
// level up notif
if ( WeaponGetLevel( player, weaponClassname ) != oldLevel )
+ {
Remote_CallFunction_NonReplay( player, "ServerCallback_WeaponLeveledUp", shWeaponXP.weaponClassNames.find( weaponClassname ), WeaponGetGen( player, weaponClassname ), WeaponGetLevel( player, weaponClassname ) )
-
+ AddPlayerScore( player, "WeaponLevelUp" )
+ }
+
// proscreen
if ( player == activeWeapon.GetProScreenOwner() )
{