aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers
diff options
context:
space:
mode:
authorBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-08-31 23:14:58 +0100
committerBobTheBob <32057864+BobTheBob9@users.noreply.github.com>2021-08-31 23:14:58 +0100
commit9a96d0bff56f1969c68bb52a2f33296095bdc67d (patch)
tree4175928e488632705692e3cccafa1a38dd854615 /Northstar.CustomServers
parent27bd240871b7c0f2f49fef137718b2e3c208e3b4 (diff)
downloadNorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.tar.gz
NorthstarMods-9a96d0bff56f1969c68bb52a2f33296095bdc67d.zip
move to new mod format
Diffstat (limited to 'Northstar.CustomServers')
-rw-r--r--Northstar.CustomServers/mod.json36
-rw-r--r--Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg8
-rw-r--r--Northstar.CustomServers/mod/cfg/server/persistent_player_data_version_231.pdef (renamed from Northstar.CustomServers/cfg/server/persistent_player_data_version_231.pdef)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_drone.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_drone.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_dropship.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_dropship.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_flyer.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_flyer.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_frag_drone.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_frag_drone.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_goliath.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_goliath.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_gunship.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_gunship.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_marvin.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_marvin.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan_enhanced.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan_enhanced.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan_enhanced_guard.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan_enhanced_guard.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan_guard.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan_guard.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite_assassin.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite_assassin.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite_assassin_cqb.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite_assassin_cqb.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite_assassin_sniper.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite_assassin_sniper.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_prowler.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_prowler.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_prowler_cqb.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_prowler_cqb.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_soldier.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_soldier.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_sp_auto_titan.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_sp_auto_titan.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_sp_npc_titan_proto_stasisgun.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_sp_npc_titan_proto_stasisgun.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_sp_soldier.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_sp_soldier.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_spectre.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_spectre.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_stalker.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_stalker.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_stalker_crawling.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_stalker_crawling.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_super_spectre.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_super_spectre.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_buddy.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_buddy.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_long_range.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_long_range.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_melee.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_melee.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_melee_core.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_melee_core.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_ogre_meteor.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_ogre_meteor.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_ogre_minigun.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_ogre_minigun.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_ogre_minigun_nuke.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_ogre_minigun_nuke.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_rocketeer.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_rocketeer.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_shotgun.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_shotgun.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_sniper.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behavior_titan_sniper.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/behaviors.txt (renamed from Northstar.CustomServers/scripts/aibehavior/behaviors.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aibehavior/common_schedules.txt (renamed from Northstar.CustomServers/scripts/aibehavior/common_schedules.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/base_vehicle.txt (renamed from Northstar.CustomServers/scripts/aisettings/base_vehicle.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/classes.txt (renamed from Northstar.CustomServers/scripts/aisettings/classes.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_bullseye.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_bullseye.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_beam.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_beam.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_cloaked.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_cloaked.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_plasma.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_plasma.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_plasma_fast.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_plasma_fast.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_plasma_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_plasma_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_rocket.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_rocket.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_rocket_fast.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_rocket_fast.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_shield.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_shield.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_worker.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_worker.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_drone_worker_fast.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_drone_worker_fast.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_dropship.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_dropship.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_dropship_dogfighter.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_dropship_dogfighter.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_dropship_hero.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_dropship_hero.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_frag_drone.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_frag_drone.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_frag_drone_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_frag_drone_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_frag_drone_throwable.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_frag_drone_throwable.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_gunship.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_gunship.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_gunship_scripted.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_gunship_scripted.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_marvin.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_marvin.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_pilot_elite.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_assassin.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_assassin.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_assassin_cqb.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_assassin_cqb.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_assassin_sniper.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_assassin_sniper.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_s2s.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_s2s.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_prowler.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_prowler.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_bish.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_bish.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_blisk.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_blisk.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_drone_summoner.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_drone_summoner.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_hero_bear.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_hero_bear.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_hero_sarah.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_hero_sarah.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_pve_eliteguard.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_pve_eliteguard.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_pve_sandbox.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_pve_sandbox.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_pve_specialist.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_pve_specialist.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_shield_captain.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_shield_captain.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_sidearm.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_sidearm.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_specialist.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_specialist.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_specialist_militia.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_specialist_militia.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_spyglass.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_spyglass.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_training_sentry.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_soldier_training_sentry.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_spectre.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_spectre.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_spectre_mortar.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_spectre_mortar.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_stalker.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_stalker.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_crawling.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_stalker_crawling.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_crawling_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_stalker_crawling_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_crawling_mossy.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_stalker_crawling_mossy.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_stalker_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_zombie.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_stalker_zombie.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_zombie_mossy.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_stalker_zombie_mossy.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_super_spectre.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_aitdm.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_super_spectre_aitdm.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_burnmeter.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_super_spectre_burnmeter.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_calmer.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_super_spectre_calmer.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_super_spectre_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_arc.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_arc.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_ion_prime_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_ion_prime_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_stickybomb.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_stickybomb.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_stickybomb_boss_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_stickybomb_boss_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_stickybomb_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_stickybomb_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_boss_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_boss_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_fd_sniper.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_fd_sniper.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_mortar.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_mortar.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_vanguard.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_vanguard.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_vanguard_boss_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_vanguard_boss_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_vanguard_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_vanguard_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_ion_prime.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_ion_prime.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_rocketeer.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_rocketeer.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_stickybomb.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_stickybomb.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_tone_prime.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_tone_prime.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_tracker.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_tracker.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_vanguard.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_vanguard.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_fighter.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_fighter.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_legion_prime.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_legion_prime.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_meteor.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_meteor.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_minigun.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_minigun.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_scorch_prime.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_scorch_prime.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_arc.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_arc.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_leadwall.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_leadwall.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_northstar_prime.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_northstar_prime.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_ronin_prime.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_ronin_prime.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_sniper.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_sniper.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_buddy.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_buddy.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_buddy_s2s.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_buddy_s2s.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_buddy_skyway.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_buddy_skyway.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_mortar.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_mortar.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_nuke.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_nuke.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_fighter.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_fighter.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_fighter_berserker_core.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_fighter_berserker_core.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_legion_prime_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_legion_prime_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor_boss_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor_boss_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor_nuke.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor_nuke.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun_boss_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun_boss_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun_nuke.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun_nuke.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_scorch_prime_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_scorch_prime_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_proto_stasisgun.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_proto_stasisgun.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_sarah.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_sarah.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_sniper.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_sniper.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_arc.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_arc.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_arc.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_arc.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_boss_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_boss_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_shift_core.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_shift_core.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_northstar_prime_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_northstar_prime_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_rocketeer.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_rocketeer.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_rocketeer_dash_core.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_rocketeer_dash_core.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper_boss_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper_boss_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper_bounty.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper_bounty.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_titan_vanguard.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_titan_vanguard.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_mega.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_attrition.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_mega_attrition.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_fortwar.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_mega_fortwar.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_frontierdefense.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_mega_frontierdefense.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_nowindup.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_mega_nowindup.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_old.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_mega_old.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_windup.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_mega_windup.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_ap.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_ap.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_ap_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_ap_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_at.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_at.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_at_fd.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_at_fd.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_plasma.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_plasma.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_plasma_skyway.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_plasma_skyway.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_tactical_ability.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_tactical_ability.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_tday.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_tday.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_windup.txt (renamed from Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_windup.txt)0
-rw-r--r--Northstar.CustomServers/mod/scripts/aisettings/synced_melee_data.rson (renamed from Northstar.CustomServers/scripts/aisettings/synced_melee_data.rson)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_anim.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_anim.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_auto_precache.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_auto_precache.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_bubble_shield.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_bubble_shield.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_codecallbacks_common.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_codecallbacks_common.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_codecallbacks_player_input.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_codecallbacks_player_input.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_control_panel.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_control_panel.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_dogfighter.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_dogfighter.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_entitystructs.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_entitystructs.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_global_entities.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_global_entities.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_harvester.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_health_regen.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_health_regen.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_init.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_init.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_loadouts_mp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_mapspawn.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_mapspawn.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_menu_callbacks.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_menu_callbacks.gnut)5
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_misc.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_misc.gnut)13
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_networkvars.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_networkvars.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_objective.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_objective.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_on_spawned.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_on_spawned.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_pain_death_sounds.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_pain_death_sounds.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_passives.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_passives.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_ping.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_ping.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_powerup.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_powerup.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_remote_functions_mp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_remote_functions_mp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_script_movers.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_script_movers.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_script_movers_light.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_script_movers_light.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_script_triggers.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_script_triggers.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_side_notifications.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_side_notifications.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_store.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_store.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_trigger_functions.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_trigger_functions.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_utility.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_utility.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_utility_shared.nut (renamed from Northstar.CustomServers/scripts/vscripts/_utility_shared.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_viewcone.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_viewcone.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_vscript.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_vscript.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_xp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/_xp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_boss_titan.gnut794
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_chatter.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_chatter.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_cloak_drone.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_cloak_drone.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_drone.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_drone.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_emp_titans.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_emp_titans.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_gunship.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_gunship.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_lethality.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_lethality.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_marvin_faces.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_marvin_faces.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_marvin_jobs.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_marvin_jobs.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_marvins.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_marvins.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_mortar_spectres.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_mortar_spectres.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_mortar_titans.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_mortar_titans.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_nuke_titans.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_nuke_titans.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_personal_shield.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_personal_shield.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_pilots.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_pilots.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_sniper_titans.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_sniper_titans.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_soldiers.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers_mp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_soldiers_mp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers_sp.gnut17
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_spawn.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_spawn.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_spawn_content.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_spawn_content.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_spectre.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_spectre.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_stalker.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_stalker.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_stationary_firing_positions.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_stationary_firing_positions.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_suicide_spectres.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_suicide_spectres.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_turret.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut72
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_utility.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_ai_utility.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_droppod.gnut187
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_droppod_fireteam.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_droppod_fireteam.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_grunt_chatter.gnut1786
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_squad_spawn.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_squad_spawn.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/ai/_titan_npc_behavior.gnut (renamed from Northstar.CustomServers/scripts/vscripts/ai/_titan_npc_behavior.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut (renamed from Northstar.CustomServers/scripts/vscripts/burnmeter/_burnmeter.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/class/CHardPointEntity.nut (renamed from Northstar.CustomServers/scripts/vscripts/class/CHardPointEntity.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/class/cai_basenpc.nut (renamed from Northstar.CustomServers/scripts/vscripts/class/cai_basenpc.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/class/cbasecombatcharacter.nut (renamed from Northstar.CustomServers/scripts/vscripts/class/cbasecombatcharacter.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/class/cbaseentity.nut (renamed from Northstar.CustomServers/scripts/vscripts/class/cbaseentity.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/class/cplayer.nut (renamed from Northstar.CustomServers/scripts/vscripts/class/cplayer.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/class/ctitansoul.nut (renamed from Northstar.CustomServers/scripts/vscripts/class/ctitansoul.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/conversation/_battle_chatter.gnut (renamed from Northstar.CustomServers/scripts/vscripts/conversation/_battle_chatter.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/conversation/_conversation_schedule.gnut (renamed from Northstar.CustomServers/scripts/vscripts/conversation/_conversation_schedule.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/conversation/_faction_dialogue.gnut (renamed from Northstar.CustomServers/scripts/vscripts/conversation/_faction_dialogue.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/conversation/_grunt_chatter_mp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/conversation/_grunt_chatter_mp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/conversation/_spectre_chatter_mp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/conversation/_spectre_chatter_mp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter.gnut (renamed from Northstar.CustomServers/scripts/vscripts/earn_meter/sv_earn_meter.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut (renamed from Northstar.CustomServers/scripts/vscripts/evac/_evac.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/faction_xp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/faction_xp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_ai_frontline.gnut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_ai_frontline.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_ai_gamemodes.gnut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_ai_gamemodes.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_capture_point.gnut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_capture_point.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_featured_mode_settings.gnut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_featured_mode_settings.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_frontline.gnut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_frontline.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_aitdm.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_aitdm.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_at.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_at.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_coliseum.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_coliseum.nut)3
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_cp.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_cp.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ctf.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ffa.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ffa.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fra.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_fra.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_lts.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_lts.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_mfd.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_mfd.nut)4
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ps.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ps.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_speedball.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_tdm.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_tdm.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ttdm.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ttdm.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_hardpoints.gnut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_hardpoints.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_spawnpoints.gnut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/_spawnpoints.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/sh_gamemodes.gnut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/sh_gamemodes_custom.gnut (renamed from Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes_custom.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut (renamed from Northstar.CustomServers/scripts/vscripts/item_inventory/sv_item_inventory.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/lobby/_lobby.gnut (renamed from Northstar.CustomServers/scripts/vscripts/lobby/_lobby.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/lobby/_private_lobby.gnut (renamed from Northstar.CustomServers/scripts/vscripts/lobby/_private_lobby.gnut)25
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_lobby.gnut (renamed from Northstar.CustomServers/scripts/vscripts/lobby/sh_lobby.gnut)139
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut55
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/melee/_melee.gnut (renamed from Northstar.CustomServers/scripts/vscripts/melee/_melee.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/melee/_melee_rewards.gnut (renamed from Northstar.CustomServers/scripts/vscripts/melee/_melee_rewards.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/melee/_melee_synced_human.gnut (renamed from Northstar.CustomServers/scripts/vscripts/melee/_melee_synced_human.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/melee/_melee_synced_titan.gnut (renamed from Northstar.CustomServers/scripts/vscripts/melee/_melee_synced_titan.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_ai_mp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_ai_mp.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_superspectre.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_ai_superspectre.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_base_gametype.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_base_gametype_mp.gnut)2
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_battery_port.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_battery_port.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_bleedout.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_bleedout.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_challenges.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_challenges.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_changemap.nut)10
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_classic_mp.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_no_intro.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_classic_mp_no_intro.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_codecallbacks.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_codecallbacks.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_dropship_spawn_common.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_dropship_spawn_common.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_gamestate.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_gamestate_mp.nut)1
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_goblin_dropship.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_goblin_dropship.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_lasermesh.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_lasermesh.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_loadout_crate.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_loadout_crate.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_mp_mapspawn.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_mp_mapspawn.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_music.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_music.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_pickups.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups_glow.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_pickups_glow.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_playlist.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_playlist.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_revive.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_revive.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_score.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_serverflags.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_serverflags.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_sniper_spectres.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_sniper_spectres.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_spawn_functions.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_spawn_functions.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_spectre_rack.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_spectre_rack.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_stats.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_stats.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_titan_npc.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_titan_npc.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_titan_tether.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_titan_tether.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_titan_transfer.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_titan_transfer.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_tonecontroller.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_tonecontroller.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_utility_mp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_utility_mp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_vr.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/_vr.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/_lf_maps_shared.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/_lf_maps_shared.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_angel_city.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_angel_city.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_angel_city_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_angel_city_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_black_water_canal.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_black_water_canal.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_black_water_canal_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_black_water_canal_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_coliseum.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_coliseum.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_coliseum_column.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_coliseum_column.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_colony02.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_colony02.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_colony02_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_colony02_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_complex3.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_complex3.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_crashsite3.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_crashsite3.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_drydock.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_drydock.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_drydock_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_drydock_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_eden.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_eden.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_forwardbase_kodai.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_glitch.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_glitch.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_glitch_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_glitch_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_grave.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_grave.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_grave_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_grave_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_homestead.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_homestead_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_deck.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_deck.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_meadow.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_meadow.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_stacks.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_stacks.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_township.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_township.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_traffic.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_traffic.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_uma.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_uma.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_relic02.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_relic02.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_relic02_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_relic02_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_rise.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_rise.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_rise_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_rise_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_thaw.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_thaw.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_thaw_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_thaw_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_wargames.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames_fd.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/levels/mp_wargames_fd.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/pintelemetry.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/pintelemetry.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/player_cloak.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/player_cloak.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/spawn.nut (renamed from Northstar.CustomServers/scripts/vscripts/mp/spawn.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_debug.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/spawn_debug.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_on_friendly.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/spawn_on_friendly.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_wave.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/spawn_wave.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_wave_dropship.gnut (renamed from Northstar.CustomServers/scripts/vscripts/mp/spawn_wave_dropship.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/pilot/_leeching.gnut (renamed from Northstar.CustomServers/scripts/vscripts/pilot/_leeching.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/pilot/_pilot_leeching.gnut (renamed from Northstar.CustomServers/scripts/vscripts/pilot/_pilot_leeching.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/pilot/_slamzoom.nut (renamed from Northstar.CustomServers/scripts/vscripts/pilot/_slamzoom.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/pilot/_zipline.gnut (renamed from Northstar.CustomServers/scripts/vscripts/pilot/_zipline.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/pilot/class_wallrun.gnut (renamed from Northstar.CustomServers/scripts/vscripts/pilot/class_wallrun.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo.gnut (renamed from Northstar.CustomServers/scripts/vscripts/rodeo/_rodeo.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo_titan.gnut (renamed from Northstar.CustomServers/scripts/vscripts/rodeo/_rodeo_titan.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_calling_cards.gnut (renamed from Northstar.CustomServers/scripts/vscripts/sh_calling_cards.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts_mp.nut (renamed from Northstar.CustomServers/scripts/vscripts/sh_loadouts_mp.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_northstar_utils.gnut (renamed from Northstar.CustomServers/scripts/vscripts/sh_northstar_utils.gnut)9
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_remote_functions_mp_custom.gnut (renamed from Northstar.CustomServers/scripts/vscripts/sh_remote_functions_mp_custom.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_stats.gnut (renamed from Northstar.CustomServers/scripts/vscripts/sh_stats.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/superbar/orbitalstrike.nut (renamed from Northstar.CustomServers/scripts/vscripts/superbar/orbitalstrike.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/superbar/smokescreen.nut (renamed from Northstar.CustomServers/scripts/vscripts/superbar/smokescreen.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sv_globals.gnut (renamed from Northstar.CustomServers/scripts/vscripts/sv_globals.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_battery_generator.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan/_replacement_titans.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans_drop.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan/_replacement_titans_drop.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_commands.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan/_titan_commands.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_health.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan/_titan_health.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_hints.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan/_titan_hints.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_hotdrop.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan/_titan_hotdrop.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_triple_health.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan/_titan_triple_health.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan/class_titan.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan_xp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/titan_xp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/vehicle/_vehicle_behavior.gnut (renamed from Northstar.CustomServers/scripts/vscripts/vehicle/_vehicle_behavior.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/vehicle/_vehicle_dropship_new.nut (renamed from Northstar.CustomServers/scripts/vscripts/vehicle/_vehicle_dropship_new.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapon_xp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/weapon_xp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_arc_cannon.nut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_arc_cannon.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_at_turrets.gnut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_ball_lightning.gnut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_ball_lightning.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_cloaker.gnut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_cloaker.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_grenade.nut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_grenade.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_particle_wall.gnut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_particle_wall.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_team_emp.gnut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_team_emp.gnut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_vortex.nut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_vortex.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_weapon_dialogue.nut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_weapon_dialogue.nut)0
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/weapons/_weapon_utility.nut (renamed from Northstar.CustomServers/scripts/vscripts/weapons/_weapon_utility.nut)0
-rw-r--r--Northstar.CustomServers/scripts/vscripts/ai/_droppod.gnut6
-rw-r--r--Northstar.CustomServers/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut21
425 files changed, 3125 insertions, 68 deletions
diff --git a/Northstar.CustomServers/mod.json b/Northstar.CustomServers/mod.json
index 6e4d2d58f..547a1b8c4 100644
--- a/Northstar.CustomServers/mod.json
+++ b/Northstar.CustomServers/mod.json
@@ -1,15 +1,19 @@
{
- "ApiId" : "Northstar.CustomServers",
- "Name" : "Northstar.CustomServers",
- "Description" : "Various script patches to fix and reimplement functionality for custom multiplayer servers",
- "Authors" : [
- "BobTheBob"
- ],
- "Contacts" : [
- "BobTheBob#1150"
+ "Name": "Northstar.CustomServers",
+
+ "ConVars": [
+ {
+ "Name": "ns_lobby_type",
+ "DefaultValue": "0"
+ },
+
+ {
+ "Name": "ns_should_return_to_lobby",
+ "DefaultValue": "1"
+ }
],
- "Version" : "0.1",
- "CustomScripts": [
+
+ "Scripts": [
{
"Path": "_misc.gnut",
"RunOn": "SERVER && MP",
@@ -44,12 +48,16 @@
{
"Path": "gamemodes/_gamemode_fra.nut",
"RunOn": "SERVER && MP",
- "ServerPreCallback": "GamemodeFRA_AddAdditionalInitCallback"
+ "ServerCallback": {
+ "Before": "GamemodeFRA_AddAdditionalInitCallback"
+ }
},
{
"Path": "gamemodes/_featured_mode_settings.gnut",
"RunOn": "SERVER && MP",
- "ServerCallback": "FeaturedModeSettings_Init"
+ "ServerCallback": {
+ "After": "FeaturedModeSettings_Init"
+ }
},
{
@@ -64,7 +72,9 @@
{
"Path": "_loadouts_mp.gnut",
"RunOn": "SERVER && MP",
- "ServerCallback": "SvLoadoutsMP_Init"
+ "ServerCallback": {
+ "After": "SvLoadoutsMP_Init"
+ }
},
{
diff --git a/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg b/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg
new file mode 100644
index 000000000..09d2d72c0
--- /dev/null
+++ b/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg
@@ -0,0 +1,8 @@
+//ns_auth_allow_insecure 1
+ns_server_name "boba server (very cool)"
+ns_server_desc "fucign badass dude "
+
+everything_unlocked 1
+cl_updaterate_mp 60
+sv_updaterate_mp 60
+sv_max_snapshots_multiplayer 1500 \ No newline at end of file
diff --git a/Northstar.CustomServers/cfg/server/persistent_player_data_version_231.pdef b/Northstar.CustomServers/mod/cfg/server/persistent_player_data_version_231.pdef
index c4af215ab..c4af215ab 100644
--- a/Northstar.CustomServers/cfg/server/persistent_player_data_version_231.pdef
+++ b/Northstar.CustomServers/mod/cfg/server/persistent_player_data_version_231.pdef
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_drone.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_drone.txt
index 64f151c78..64f151c78 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_drone.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_drone.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_dropship.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_dropship.txt
index a3a712e92..a3a712e92 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_dropship.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_dropship.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_flyer.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_flyer.txt
index a7a995f5b..a7a995f5b 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_flyer.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_flyer.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_frag_drone.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_frag_drone.txt
index c7459d714..c7459d714 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_frag_drone.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_frag_drone.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_goliath.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_goliath.txt
index c4dad6ab0..c4dad6ab0 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_goliath.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_goliath.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_gunship.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_gunship.txt
index b62c07933..b62c07933 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_gunship.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_gunship.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_marvin.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_marvin.txt
index 351b9ff7c..351b9ff7c 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_marvin.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_marvin.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan.txt
index 74742e99b..74742e99b 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan_enhanced.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan_enhanced.txt
index 8e1bc7c1b..8e1bc7c1b 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan_enhanced.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan_enhanced.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan_enhanced_guard.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan_enhanced_guard.txt
index e68c6ab5c..e68c6ab5c 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan_enhanced_guard.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan_enhanced_guard.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan_guard.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan_guard.txt
index 07dacfaad..07dacfaad 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_mp_auto_titan_guard.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_mp_auto_titan_guard.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite.txt
index e68f7ddbd..e68f7ddbd 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite_assassin.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite_assassin.txt
index 278d48732..278d48732 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite_assassin.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite_assassin.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite_assassin_cqb.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite_assassin_cqb.txt
index 282e9b9b7..282e9b9b7 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite_assassin_cqb.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite_assassin_cqb.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite_assassin_sniper.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite_assassin_sniper.txt
index 144654ab0..144654ab0 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_pilot_elite_assassin_sniper.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_pilot_elite_assassin_sniper.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_prowler.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_prowler.txt
index f5feb8c76..f5feb8c76 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_prowler.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_prowler.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_prowler_cqb.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_prowler_cqb.txt
index bff35f0ba..bff35f0ba 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_prowler_cqb.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_prowler_cqb.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_soldier.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_soldier.txt
index 106014c3a..106014c3a 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_soldier.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_soldier.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_sp_auto_titan.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_sp_auto_titan.txt
index be309949d..be309949d 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_sp_auto_titan.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_sp_auto_titan.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_sp_npc_titan_proto_stasisgun.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_sp_npc_titan_proto_stasisgun.txt
index b93d22497..b93d22497 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_sp_npc_titan_proto_stasisgun.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_sp_npc_titan_proto_stasisgun.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_sp_soldier.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_sp_soldier.txt
index 38ed82e52..38ed82e52 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_sp_soldier.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_sp_soldier.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_spectre.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_spectre.txt
index 66937c70b..66937c70b 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_spectre.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_spectre.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_stalker.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_stalker.txt
index 9bc1782a8..9bc1782a8 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_stalker.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_stalker.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_stalker_crawling.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_stalker_crawling.txt
index fac61cf58..fac61cf58 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_stalker_crawling.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_stalker_crawling.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_super_spectre.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_super_spectre.txt
index 341dd67a7..341dd67a7 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_super_spectre.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_super_spectre.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan.txt
index 6070c68eb..6070c68eb 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_buddy.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_buddy.txt
index 5636f2677..5636f2677 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_buddy.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_buddy.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_long_range.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_long_range.txt
index 0c378fe94..0c378fe94 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_long_range.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_long_range.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_melee.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_melee.txt
index d1f1b2677..d1f1b2677 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_melee.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_melee.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_melee_core.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_melee_core.txt
index 821938301..821938301 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_melee_core.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_melee_core.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_ogre_meteor.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_ogre_meteor.txt
index e189a512b..e189a512b 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_ogre_meteor.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_ogre_meteor.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_ogre_minigun.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_ogre_minigun.txt
index 8b13b689f..8b13b689f 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_ogre_minigun.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_ogre_minigun.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_ogre_minigun_nuke.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_ogre_minigun_nuke.txt
index 037f15054..037f15054 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_ogre_minigun_nuke.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_ogre_minigun_nuke.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_rocketeer.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_rocketeer.txt
index c9a25afec..c9a25afec 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_rocketeer.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_rocketeer.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_shotgun.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_shotgun.txt
index fe78babd4..fe78babd4 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_shotgun.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_shotgun.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_sniper.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_sniper.txt
index 87fa003f8..87fa003f8 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behavior_titan_sniper.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behavior_titan_sniper.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/behaviors.txt b/Northstar.CustomServers/mod/scripts/aibehavior/behaviors.txt
index 5fac79770..5fac79770 100644
--- a/Northstar.CustomServers/scripts/aibehavior/behaviors.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/behaviors.txt
diff --git a/Northstar.CustomServers/scripts/aibehavior/common_schedules.txt b/Northstar.CustomServers/mod/scripts/aibehavior/common_schedules.txt
index 8ef03ec42..8ef03ec42 100644
--- a/Northstar.CustomServers/scripts/aibehavior/common_schedules.txt
+++ b/Northstar.CustomServers/mod/scripts/aibehavior/common_schedules.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/base_vehicle.txt b/Northstar.CustomServers/mod/scripts/aisettings/base_vehicle.txt
index a13b30665..a13b30665 100644
--- a/Northstar.CustomServers/scripts/aisettings/base_vehicle.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/base_vehicle.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/classes.txt b/Northstar.CustomServers/mod/scripts/aisettings/classes.txt
index d250e2df9..d250e2df9 100644
--- a/Northstar.CustomServers/scripts/aisettings/classes.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/classes.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_bullseye.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_bullseye.txt
index 13a22de6a..13a22de6a 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_bullseye.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_bullseye.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone.txt
index e2b658354..e2b658354 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_beam.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_beam.txt
index 388ee3d69..388ee3d69 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_beam.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_beam.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_cloaked.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_cloaked.txt
index 1f1fe0793..1f1fe0793 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_cloaked.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_cloaked.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_plasma.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_plasma.txt
index dd2665a4c..dd2665a4c 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_plasma.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_plasma.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_plasma_fast.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_plasma_fast.txt
index c05037c25..c05037c25 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_plasma_fast.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_plasma_fast.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_plasma_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_plasma_fd.txt
index 661403673..661403673 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_plasma_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_plasma_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_rocket.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_rocket.txt
index d330a3d25..d330a3d25 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_rocket.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_rocket.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_rocket_fast.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_rocket_fast.txt
index 7bd1a3e4c..7bd1a3e4c 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_rocket_fast.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_rocket_fast.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_shield.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_shield.txt
index e4e56d124..e4e56d124 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_shield.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_shield.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_worker.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_worker.txt
index f400d2c5f..f400d2c5f 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_worker.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_worker.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_drone_worker_fast.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_worker_fast.txt
index e9e470bdd..e9e470bdd 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_drone_worker_fast.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_drone_worker_fast.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_dropship.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_dropship.txt
index 851b8f644..851b8f644 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_dropship.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_dropship.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_dropship_dogfighter.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_dropship_dogfighter.txt
index a2c6c88e2..a2c6c88e2 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_dropship_dogfighter.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_dropship_dogfighter.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_dropship_hero.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_dropship_hero.txt
index a7b9214cf..a7b9214cf 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_dropship_hero.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_dropship_hero.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_frag_drone.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_frag_drone.txt
index 9b435cdb7..9b435cdb7 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_frag_drone.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_frag_drone.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_frag_drone_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_frag_drone_fd.txt
index ce679d194..ce679d194 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_frag_drone_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_frag_drone_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_frag_drone_throwable.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_frag_drone_throwable.txt
index 53458c3cc..53458c3cc 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_frag_drone_throwable.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_frag_drone_throwable.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_gunship.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_gunship.txt
index e4df1fe1f..e4df1fe1f 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_gunship.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_gunship.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_gunship_scripted.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_gunship_scripted.txt
index e387551f3..e387551f3 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_gunship_scripted.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_gunship_scripted.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_marvin.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_marvin.txt
index 495f3cceb..495f3cceb 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_marvin.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_marvin.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite.txt
index 8bd840296..8bd840296 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_assassin.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_assassin.txt
index 144d4df19..144d4df19 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_assassin.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_assassin.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_assassin_cqb.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_assassin_cqb.txt
index 74bf638ef..74bf638ef 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_assassin_cqb.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_assassin_cqb.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_assassin_sniper.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_assassin_sniper.txt
index f9885b1d5..f9885b1d5 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_assassin_sniper.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_assassin_sniper.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_s2s.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_s2s.txt
index 2a497d2ea..2a497d2ea 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_pilot_elite_s2s.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_pilot_elite_s2s.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_prowler.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_prowler.txt
index 1df9538f0..1df9538f0 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_prowler.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_prowler.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier.txt
index e5dcfeb17..e5dcfeb17 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_bish.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_bish.txt
index b4e6eee54..b4e6eee54 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_bish.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_bish.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_blisk.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_blisk.txt
index 82548c97e..82548c97e 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_blisk.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_blisk.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_drone_summoner.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_drone_summoner.txt
index 2ebedae21..2ebedae21 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_drone_summoner.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_drone_summoner.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_hero_bear.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_hero_bear.txt
index d10daea62..d10daea62 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_hero_bear.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_hero_bear.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_hero_sarah.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_hero_sarah.txt
index fcc3901b6..fcc3901b6 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_hero_sarah.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_hero_sarah.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_pve_eliteguard.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_pve_eliteguard.txt
index f09efadad..f09efadad 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_pve_eliteguard.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_pve_eliteguard.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_pve_sandbox.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_pve_sandbox.txt
index cb4e5784e..cb4e5784e 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_pve_sandbox.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_pve_sandbox.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_pve_specialist.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_pve_specialist.txt
index d3abdef29..d3abdef29 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_pve_specialist.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_pve_specialist.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_shield_captain.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_shield_captain.txt
index 96516c659..96516c659 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_shield_captain.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_shield_captain.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_sidearm.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_sidearm.txt
index e5062df0d..e5062df0d 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_sidearm.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_sidearm.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_specialist.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_specialist.txt
index fc7a77a0f..fc7a77a0f 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_specialist.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_specialist.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_specialist_militia.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_specialist_militia.txt
index f08a13469..f08a13469 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_specialist_militia.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_specialist_militia.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_spyglass.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_spyglass.txt
index 6fd6c86d5..6fd6c86d5 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_spyglass.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_spyglass.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_soldier_training_sentry.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_training_sentry.txt
index 37634d9a4..37634d9a4 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_soldier_training_sentry.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_soldier_training_sentry.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_spectre.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_spectre.txt
index 27efebad2..27efebad2 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_spectre.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_spectre.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_spectre_mortar.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_spectre_mortar.txt
index 6c2151ebd..6c2151ebd 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_spectre_mortar.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_spectre_mortar.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_stalker.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker.txt
index ae3347e9d..ae3347e9d 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_stalker.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_stalker_crawling.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_crawling.txt
index 3a2516717..3a2516717 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_stalker_crawling.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_crawling.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_stalker_crawling_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_crawling_fd.txt
index 62a9d7ebd..62a9d7ebd 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_stalker_crawling_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_crawling_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_stalker_crawling_mossy.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_crawling_mossy.txt
index 48fc894dd..48fc894dd 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_stalker_crawling_mossy.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_crawling_mossy.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_stalker_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_fd.txt
index cc21b4418..cc21b4418 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_stalker_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_stalker_zombie.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_zombie.txt
index fddee0fbf..fddee0fbf 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_stalker_zombie.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_zombie.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_stalker_zombie_mossy.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_zombie_mossy.txt
index 8dccbf6f1..8dccbf6f1 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_stalker_zombie_mossy.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_stalker_zombie_mossy.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre.txt
index f5d30aa5a..f5d30aa5a 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre_aitdm.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_aitdm.txt
index 1a9e1cf11..1a9e1cf11 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre_aitdm.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_aitdm.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre_burnmeter.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_burnmeter.txt
index fc52becda..fc52becda 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre_burnmeter.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_burnmeter.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre_calmer.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_calmer.txt
index 0acb249fc..0acb249fc 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre_calmer.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_calmer.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_fd.txt
index 3a6a9da77..3a6a9da77 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_super_spectre_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_super_spectre_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan.txt
index b2d7f38fb..b2d7f38fb 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_arc.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_arc.txt
index 5cd5c2a3e..5cd5c2a3e 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_arc.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_arc.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas.txt
index 8ac0d2eab..8ac0d2eab 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_ion_prime_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_ion_prime_bounty.txt
index c042f71d6..c042f71d6 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_ion_prime_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_ion_prime_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_stickybomb.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_stickybomb.txt
index 0ce4acb3b..0ce4acb3b 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_stickybomb.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_stickybomb.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_stickybomb_boss_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_stickybomb_boss_fd.txt
index 0da91a358..0da91a358 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_stickybomb_boss_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_stickybomb_boss_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_stickybomb_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_stickybomb_bounty.txt
index 8fcda68e9..8fcda68e9 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_stickybomb_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_stickybomb_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker.txt
index 5a57b9ee7..5a57b9ee7 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_boss_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_boss_fd.txt
index 07a653c11..07a653c11 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_boss_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_boss_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_bounty.txt
index dc413e82b..dc413e82b 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_fd_sniper.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_fd_sniper.txt
index 1703dd9f8..1703dd9f8 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_fd_sniper.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_fd_sniper.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_mortar.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_mortar.txt
index 8dfc4baae..8dfc4baae 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_tracker_mortar.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_tracker_mortar.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_vanguard.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_vanguard.txt
index ec63b128d..ec63b128d 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_vanguard.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_vanguard.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_vanguard_boss_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_vanguard_boss_fd.txt
index 335eee599..335eee599 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_vanguard_boss_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_vanguard_boss_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_vanguard_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_vanguard_bounty.txt
index eebad86a3..eebad86a3 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_atlas_vanguard_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_atlas_vanguard_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto.txt
index 14f3c2456..14f3c2456 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas.txt
index 17a65f129..17a65f129 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_ion_prime.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_ion_prime.txt
index 5545e3d7f..5545e3d7f 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_ion_prime.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_ion_prime.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_rocketeer.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_rocketeer.txt
index 48fa9b994..48fa9b994 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_rocketeer.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_rocketeer.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_stickybomb.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_stickybomb.txt
index 72307ee8b..72307ee8b 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_stickybomb.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_stickybomb.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_tone_prime.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_tone_prime.txt
index a475466f3..a475466f3 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_tone_prime.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_tone_prime.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_tracker.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_tracker.txt
index 55bc4b0a3..55bc4b0a3 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_tracker.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_tracker.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_vanguard.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_vanguard.txt
index 9e0028889..9e0028889 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_atlas_vanguard.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_atlas_vanguard.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre.txt
index e291df60f..e291df60f 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_fighter.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_fighter.txt
index 921055c00..921055c00 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_fighter.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_fighter.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_legion_prime.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_legion_prime.txt
index 16afd2268..16afd2268 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_legion_prime.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_legion_prime.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_meteor.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_meteor.txt
index 385a401b8..385a401b8 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_meteor.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_meteor.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_minigun.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_minigun.txt
index 33e9b2632..33e9b2632 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_minigun.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_minigun.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_scorch_prime.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_scorch_prime.txt
index 8f0928b0a..8f0928b0a 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_ogre_scorch_prime.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_ogre_scorch_prime.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder.txt
index a1a6fbe97..a1a6fbe97 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_arc.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_arc.txt
index 82e384e84..82e384e84 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_arc.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_arc.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_leadwall.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_leadwall.txt
index 81896b86f..81896b86f 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_leadwall.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_leadwall.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_northstar_prime.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_northstar_prime.txt
index 0ce6d33e7..0ce6d33e7 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_northstar_prime.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_northstar_prime.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_ronin_prime.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_ronin_prime.txt
index 0d00942fe..0d00942fe 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_ronin_prime.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_ronin_prime.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_sniper.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_sniper.txt
index b43a5a0c6..b43a5a0c6 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_auto_stryder_sniper.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_auto_stryder_sniper.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_buddy.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_buddy.txt
index 453f0d2cb..453f0d2cb 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_buddy.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_buddy.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_buddy_s2s.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_buddy_s2s.txt
index 83b687ca7..83b687ca7 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_buddy_s2s.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_buddy_s2s.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_buddy_skyway.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_buddy_skyway.txt
index 12403bef0..12403bef0 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_buddy_skyway.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_buddy_skyway.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_mortar.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_mortar.txt
index 7f80721db..7f80721db 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_mortar.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_mortar.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_nuke.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_nuke.txt
index 3cd1eabb4..3cd1eabb4 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_nuke.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_nuke.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre.txt
index 7a284ae8f..7a284ae8f 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_fighter.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_fighter.txt
index d1f504777..d1f504777 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_fighter.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_fighter.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_fighter_berserker_core.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_fighter_berserker_core.txt
index c3058416b..c3058416b 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_fighter_berserker_core.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_fighter_berserker_core.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_legion_prime_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_legion_prime_bounty.txt
index 9c1028391..9c1028391 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_legion_prime_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_legion_prime_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor.txt
index b935f34a2..b935f34a2 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor_boss_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor_boss_fd.txt
index ce863d299..ce863d299 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor_boss_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor_boss_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor_bounty.txt
index 62a8afad8..62a8afad8 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor_nuke.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor_nuke.txt
index 5a73c6f0e..5a73c6f0e 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_meteor_nuke.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_meteor_nuke.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun.txt
index 16055d80f..16055d80f 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun_boss_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun_boss_fd.txt
index 2587a3315..2587a3315 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun_boss_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun_boss_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun_bounty.txt
index aa4ab86fe..aa4ab86fe 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun_nuke.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun_nuke.txt
index fba50cbaf..fba50cbaf 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_minigun_nuke.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_minigun_nuke.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_scorch_prime_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_scorch_prime_bounty.txt
index d8a8510d3..d8a8510d3 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_ogre_scorch_prime_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_ogre_scorch_prime_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_proto_stasisgun.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_proto_stasisgun.txt
index 57bd78644..57bd78644 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_proto_stasisgun.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_proto_stasisgun.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_sarah.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_sarah.txt
index 1030ad4ec..1030ad4ec 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_sarah.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_sarah.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_sniper.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_sniper.txt
index c4be82ae3..c4be82ae3 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_sniper.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_sniper.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder.txt
index 6257f3770..6257f3770 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_arc.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_arc.txt
index 37aec44e8..37aec44e8 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_arc.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_arc.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall.txt
index fc2111c1a..fc2111c1a 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_arc.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_arc.txt
index bdbfb50d2..bdbfb50d2 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_arc.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_arc.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_boss_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_boss_fd.txt
index 17f702ce6..17f702ce6 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_boss_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_boss_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_bounty.txt
index c5892a673..c5892a673 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_shift_core.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_shift_core.txt
index 9729cb7e6..9729cb7e6 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_leadwall_shift_core.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_leadwall_shift_core.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_northstar_prime_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_northstar_prime_bounty.txt
index 131a10854..131a10854 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_northstar_prime_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_northstar_prime_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_rocketeer.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_rocketeer.txt
index 2fa07fa78..2fa07fa78 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_rocketeer.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_rocketeer.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_rocketeer_dash_core.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_rocketeer_dash_core.txt
index b96916425..b96916425 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_rocketeer_dash_core.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_rocketeer_dash_core.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper.txt
index b23e493e6..b23e493e6 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper_boss_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper_boss_fd.txt
index 90493d793..90493d793 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper_boss_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper_boss_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper_bounty.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper_bounty.txt
index 26c2ddc8d..26c2ddc8d 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper_bounty.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper_bounty.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper_fd.txt
index 2a156b9a6..2a156b9a6 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_stryder_sniper_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_stryder_sniper_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_titan_vanguard.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_vanguard.txt
index 09daba770..09daba770 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_titan_vanguard.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_titan_vanguard.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega.txt
index f44fa5c0b..f44fa5c0b 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_attrition.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_attrition.txt
index 8ea04829f..8ea04829f 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_attrition.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_attrition.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_fortwar.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_fortwar.txt
index 4c06f5d6a..4c06f5d6a 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_fortwar.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_fortwar.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_frontierdefense.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_frontierdefense.txt
index 1cb89fe6a..1cb89fe6a 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_frontierdefense.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_frontierdefense.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_nowindup.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_nowindup.txt
index 91fc60a65..91fc60a65 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_nowindup.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_nowindup.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_old.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_old.txt
index ba3cff002..ba3cff002 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_old.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_old.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_windup.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_windup.txt
index adbd3e885..adbd3e885 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_mega_windup.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_mega_windup.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry.txt
index f5dfa5f74..f5dfa5f74 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_ap.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_ap.txt
index 9ec586110..9ec586110 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_ap.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_ap.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_ap_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_ap_fd.txt
index 16cce927a..16cce927a 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_ap_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_ap_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_at.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_at.txt
index 58a5c49ce..58a5c49ce 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_at.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_at.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_at_fd.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_at_fd.txt
index f120c79ba..f120c79ba 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_burn_card_at_fd.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_burn_card_at_fd.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_plasma.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_plasma.txt
index bad53ace5..bad53ace5 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_plasma.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_plasma.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_plasma_skyway.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_plasma_skyway.txt
index 1244c353c..1244c353c 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_plasma_skyway.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_plasma_skyway.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_tactical_ability.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_tactical_ability.txt
index ad6a15c0d..ad6a15c0d 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_tactical_ability.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_tactical_ability.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_tday.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_tday.txt
index c94ada19d..c94ada19d 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_tday.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_tday.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_windup.txt b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_windup.txt
index 4d92d825e..4d92d825e 100644
--- a/Northstar.CustomServers/scripts/aisettings/npc_turret_sentry_windup.txt
+++ b/Northstar.CustomServers/mod/scripts/aisettings/npc_turret_sentry_windup.txt
diff --git a/Northstar.CustomServers/scripts/aisettings/synced_melee_data.rson b/Northstar.CustomServers/mod/scripts/aisettings/synced_melee_data.rson
index f07e21c46..f07e21c46 100644
--- a/Northstar.CustomServers/scripts/aisettings/synced_melee_data.rson
+++ b/Northstar.CustomServers/mod/scripts/aisettings/synced_melee_data.rson
diff --git a/Northstar.CustomServers/scripts/vscripts/_anim.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_anim.gnut
index 2ead1d306..2ead1d306 100644
--- a/Northstar.CustomServers/scripts/vscripts/_anim.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_anim.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_auto_precache.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_auto_precache.gnut
index 75c7873ef..75c7873ef 100644
--- a/Northstar.CustomServers/scripts/vscripts/_auto_precache.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_auto_precache.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_bubble_shield.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_bubble_shield.gnut
index 30758becd..30758becd 100644
--- a/Northstar.CustomServers/scripts/vscripts/_bubble_shield.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_bubble_shield.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_codecallbacks_common.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_codecallbacks_common.gnut
index b08fdcf1a..b08fdcf1a 100644
--- a/Northstar.CustomServers/scripts/vscripts/_codecallbacks_common.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_codecallbacks_common.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_codecallbacks_player_input.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_codecallbacks_player_input.gnut
index 120620566..120620566 100644
--- a/Northstar.CustomServers/scripts/vscripts/_codecallbacks_player_input.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_codecallbacks_player_input.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_control_panel.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_control_panel.gnut
index f9d7a4ff8..f9d7a4ff8 100644
--- a/Northstar.CustomServers/scripts/vscripts/_control_panel.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_control_panel.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_dogfighter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_dogfighter.gnut
index db6161738..db6161738 100644
--- a/Northstar.CustomServers/scripts/vscripts/_dogfighter.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_dogfighter.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_entitystructs.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_entitystructs.gnut
index 378ceae38..378ceae38 100644
--- a/Northstar.CustomServers/scripts/vscripts/_entitystructs.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_entitystructs.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_global_entities.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_global_entities.gnut
index 767436d9c..767436d9c 100644
--- a/Northstar.CustomServers/scripts/vscripts/_global_entities.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_global_entities.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_harvester.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/_harvester.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_harvester.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_health_regen.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_health_regen.gnut
index ded25dc3d..ded25dc3d 100644
--- a/Northstar.CustomServers/scripts/vscripts/_health_regen.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_health_regen.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_init.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_init.gnut
index fc9fe2b98..fc9fe2b98 100644
--- a/Northstar.CustomServers/scripts/vscripts/_init.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_init.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_loadouts_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut
index 2b7b90b3b..2b7b90b3b 100644
--- a/Northstar.CustomServers/scripts/vscripts/_loadouts_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_mapspawn.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_mapspawn.gnut
index 3efee093e..3efee093e 100644
--- a/Northstar.CustomServers/scripts/vscripts/_mapspawn.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_mapspawn.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_menu_callbacks.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_menu_callbacks.gnut
index 5b2c2c531..c116ac33b 100644
--- a/Northstar.CustomServers/scripts/vscripts/_menu_callbacks.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_menu_callbacks.gnut
@@ -7,8 +7,11 @@ void function MenuCallbacks_Init()
bool function ClientCommandCallback_LeaveMatch( entity player, array<string> args )
{
- SavePdataForEntityIndex( player.GetPlayerIndex() )
+ // todo: ideally, it'd be nice to get clients to return to lobby here, rather than just dcing them
+ // kind of a pain tho, since we'd have to get it to call script code without a remote func, since that'd break compatibility
+
ClientCommand( player, "disconnect" )
+ //ClientCommand( player, "setplaylist tdm; map mp_lobby" )
return true
} \ No newline at end of file
diff --git a/Northstar.CustomServers/scripts/vscripts/_misc.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_misc.gnut
index ef7e629fa..20b53c502 100644
--- a/Northstar.CustomServers/scripts/vscripts/_misc.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_misc.gnut
@@ -1,4 +1,4 @@
-//todo figure out where these should be and move them to those places
+//todo figure out where these stub functions should be and move them to those places
global function Spotting_Init
global function FW_Border_GlobalInit
global function IsVDUTitan
@@ -12,7 +12,16 @@ void function Spotting_Init()
void function FW_Border_GlobalInit()
{
- AddSpawnCallbackEditorClass( "func_brush", "func_brush_fw_territory_border", void function( entity e ) { GameModeRemove( e ) } )
+ AddSpawnCallbackEditorClass( "func_brush", "func_brush_fw_territory_border", RemoveFWBorder )
+}
+
+void function RemoveFWBorder( entity border )
+{
+ if ( GameModeRemove( border ) )
+ return
+
+ if ( !border.HasKey( "gamemode_" + GAMETYPE ) )
+ border.Destroy()
}
bool function IsVDUTitan(entity titan)
diff --git a/Northstar.CustomServers/scripts/vscripts/_networkvars.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_networkvars.gnut
index 14990a152..14990a152 100644
--- a/Northstar.CustomServers/scripts/vscripts/_networkvars.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_networkvars.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_objective.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_objective.gnut
index 893861bf0..893861bf0 100644
--- a/Northstar.CustomServers/scripts/vscripts/_objective.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_objective.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_on_spawned.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_on_spawned.gnut
index d1935d629..d1935d629 100644
--- a/Northstar.CustomServers/scripts/vscripts/_on_spawned.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_on_spawned.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_pain_death_sounds.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_pain_death_sounds.gnut
index 10d2b6166..10d2b6166 100644
--- a/Northstar.CustomServers/scripts/vscripts/_pain_death_sounds.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_pain_death_sounds.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_passives.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_passives.gnut
index 1264686ec..1264686ec 100644
--- a/Northstar.CustomServers/scripts/vscripts/_passives.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_passives.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_ping.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_ping.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/_ping.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_ping.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_powerup.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_powerup.gnut
index 03b9fcfc7..03b9fcfc7 100644
--- a/Northstar.CustomServers/scripts/vscripts/_powerup.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_powerup.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_remote_functions_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_remote_functions_mp.gnut
index 567954b18..567954b18 100644
--- a/Northstar.CustomServers/scripts/vscripts/_remote_functions_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_remote_functions_mp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_script_movers.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_script_movers.gnut
index ca7b839b8..ca7b839b8 100644
--- a/Northstar.CustomServers/scripts/vscripts/_script_movers.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_script_movers.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_script_movers_light.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_script_movers_light.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/_script_movers_light.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_script_movers_light.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_script_triggers.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_script_triggers.gnut
index c5e026b3c..c5e026b3c 100644
--- a/Northstar.CustomServers/scripts/vscripts/_script_triggers.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_script_triggers.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_side_notifications.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_side_notifications.gnut
index 2b3d39931..2b3d39931 100644
--- a/Northstar.CustomServers/scripts/vscripts/_side_notifications.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_side_notifications.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_store.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_store.gnut
index 5ebf090ab..5ebf090ab 100644
--- a/Northstar.CustomServers/scripts/vscripts/_store.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_store.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_trigger_functions.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_trigger_functions.gnut
index 0f82d9a6b..0f82d9a6b 100644
--- a/Northstar.CustomServers/scripts/vscripts/_trigger_functions.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_trigger_functions.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_utility.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_utility.gnut
index 50851dae0..50851dae0 100644
--- a/Northstar.CustomServers/scripts/vscripts/_utility.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_utility.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_utility_shared.nut b/Northstar.CustomServers/mod/scripts/vscripts/_utility_shared.nut
index e3cb0dbfb..e3cb0dbfb 100644
--- a/Northstar.CustomServers/scripts/vscripts/_utility_shared.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_utility_shared.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/_viewcone.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_viewcone.gnut
index 025c9dfd8..025c9dfd8 100644
--- a/Northstar.CustomServers/scripts/vscripts/_viewcone.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_viewcone.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_vscript.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_vscript.gnut
index 52b69c5da..52b69c5da 100644
--- a/Northstar.CustomServers/scripts/vscripts/_vscript.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_vscript.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/_xp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_xp.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/_xp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_xp.gnut
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_boss_titan.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_boss_titan.gnut
new file mode 100644
index 000000000..da3058d78
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_boss_titan.gnut
@@ -0,0 +1,794 @@
+global function PlayerParentTest
+
+global function AIBossTitan_Init
+global function OnBossTitanPrimaryFire
+global function IsVDUTitan
+global function IsBossTitan
+global function GetBossTitanCharacterModel
+
+global function BossTitanRetreat
+global function BossTitanAdvance
+global function IsMercTitan
+global function GetMercCharacterID
+global function BossTitanIntro
+global function BossTitanVDUEnabled
+global function BossTitanPlayerView
+
+global function MakeMidHealthTitan
+
+global const float SLAMZOOM_TIME = 1.0
+global const float BOSS_TITAN_CORE_DAMAGE_SCALER_LOW = 0.6
+global const float BOSS_TITAN_CORE_DAMAGE_SCALER = 0.5
+
+void function AIBossTitan_Init()
+{
+ if ( IsMultiplayer() )
+ return
+
+ FlagInit( "BossTitanViewFollow" )
+
+ AddSpawnCallback( "npc_titan", NPCTitanSpawned )
+ AddDeathCallback( "npc_titan", OnBossTitanDeath )
+ AddCallback_OnTitanDoomed( OnBossTitanDoomed )
+ AddCallback_OnTitanHealthSegmentLost( OnTitanLostSegment )
+
+ AddSyncedMeleeServerCallback( GetSyncedMeleeChooser( "titan", "titan" ), OnBossTitanExecuted )
+
+ PrecacheParticleSystem( $"P_VDU_mflash" )
+
+ RegisterSignal( "BossTitanStartAnim" )
+ RegisterSignal( "BossTitanIntroEnded" )
+}
+
+void function OnBossTitanExecuted( SyncedMeleeChooser actions, SyncedMelee action, entity attacker, entity victim )
+{
+ if ( victim.IsNPC() && IsVDUTitan( victim ) && BossTitanVDUEnabled( victim ) )
+ {
+ string name = victim.ai.bossCharacterName == "" ? "Generic1" : victim.ai.bossCharacterName
+ int bossID = GetBossTitanID( name )
+ foreach ( player in GetPlayerArray() )
+ {
+ if ( player == attacker || IsMercTitan( victim ) )
+ {
+ Remote_CallFunction_NonReplay( player, "ServerCallback_BossTitanDeath", victim.GetEncodedEHandle(), bossID )
+ }
+ }
+ }
+}
+
+void function OnBossTitanDeath( entity titan, var damageInfo )
+{
+ int damageSourceId = DamageInfo_GetDamageSourceIdentifier( damageInfo )
+ if ( damageSourceId == eDamageSourceId.titan_execution )
+ return
+
+ entity soul = titan.GetTitanSoul()
+ if ( soul.IsEjecting() )
+ return
+
+ entity attacker = DamageInfo_GetAttacker( damageInfo )
+
+ if ( IsVDUTitan( titan ) && BossTitanVDUEnabled( titan ) )
+ {
+ foreach ( player in GetPlayerArray() )
+ {
+ if ( player == attacker || IsMercTitan( titan ) )
+ {
+ string name = titan.ai.bossCharacterName == "" ? "Generic1" : titan.ai.bossCharacterName
+ Remote_CallFunction_NonReplay( player, "ServerCallback_BossTitanDeath", titan.GetEncodedEHandle(), GetBossTitanID( name ) )
+ }
+ }
+ }
+}
+
+void function OnBossTitanDoomed( entity titan, var damageInfo )
+{
+ entity attacker = DamageInfo_GetAttacker( damageInfo )
+
+ if ( IsVDUTitan( titan ) && BossTitanVDUEnabled( titan ) )
+ {
+ foreach ( player in GetPlayerArray() )
+ {
+ if ( player == attacker || IsMercTitan( titan ) )
+ Remote_CallFunction_NonReplay( player, "ServerCallback_BossTitanDoomed", titan.GetEncodedEHandle() )
+ }
+ }
+}
+
+void function OnBossTitanCoreMitigation( entity titan, var damageInfo )
+{
+ int damageSourceID = DamageInfo_GetDamageSourceIdentifier( damageInfo )
+ switch ( damageSourceID )
+ {
+ case eDamageSourceId.mp_titancore_salvo_core:
+ DamageInfo_ScaleDamage( damageInfo, BOSS_TITAN_CORE_DAMAGE_SCALER_LOW )
+ return
+
+ // case eDamageSourceId.mp_titancore_laser_cannon: laser core handles this in mp_titanweapon_lasercannon.nut
+ case eDamageSourceId.mp_titancore_flame_wave:
+ case eDamageSourceId.mp_titancore_flame_wave_secondary:
+ case eDamageSourceId.mp_titancore_shift_core:
+ case eDamageSourceId.mp_titanweapon_flightcore_rockets:
+ case eDamageSourceId.mp_titancore_amp_core:
+ case damagedef_nuclear_core:
+ DamageInfo_ScaleDamage( damageInfo, BOSS_TITAN_CORE_DAMAGE_SCALER )
+ return
+ }
+
+ // SMART CORE
+ array<string> weaponMods = GetWeaponModsFromDamageInfo( damageInfo )
+ if ( weaponMods.contains( "Smart_Core" ) )
+ {
+ DamageInfo_ScaleDamage( damageInfo, BOSS_TITAN_CORE_DAMAGE_SCALER )
+ // DamageInfo_ScaleDamage( damageInfo, BOSS_TITAN_CORE_DAMAGE_SCALER_LOW )
+ return
+ }
+}
+
+void function NPCTitanSpawned( entity titan )
+{
+ Assert( !IsMultiplayer() )
+
+ if ( titan.GetTeam() == TEAM_IMC )
+ {
+ switch ( titan.ai.bossTitanType )
+ {
+ case TITAN_WEAK:
+ case TITAN_HENCH:
+ MakeMidHealthTitan( titan )
+
+ case TITAN_BOSS:
+ RegisterBossTitan( titan )
+ ApplyTitanDamageState( titan )
+
+ if ( titan.ai.bossTitanType == TITAN_BOSS )
+ AddEntityCallback_OnDamaged( titan, OnBossTitanCoreMitigation )
+
+ if ( titan.HasKey( "skip_boss_intro" ) && titan.GetValueForKey( "skip_boss_intro" ) == "1" )
+ return
+ thread BossTitanNoIntro( titan )
+ break;
+
+
+ case TITAN_MERC:
+ // TODO: This SetSkin() call should move to RegisterBossTitan() when the above TITAN_BOSS stuff is cleaned up/removed.
+ titan.SetSkin( 1 ) // all titan models have a boss titan version of the skin at index 1
+ RegisterBossTitan( titan )
+ ApplyTitanDamageState( titan )
+
+ AddEntityCallback_OnDamaged( titan, OnBossTitanCoreMitigation )
+
+ if ( titan.HasKey( "skip_boss_intro" ) && titan.GetValueForKey( "skip_boss_intro" ) == "1" )
+ return
+
+ if ( !titan.ai.bossTitanPlayIntro )
+ return
+
+ foreach ( player in GetPlayerArray() )
+ {
+ thread BossTitanIntro( player, titan )
+ }
+ break
+
+ // case TITAN_WEAK:
+ // MakeLowHealthTitan( titan )
+ // break
+
+ case TITAN_AUTO:
+ if ( !IsMultiplayer() && GetMapName() == "sp_hub_timeshift" || GetMapName() == "sp_timeshift_spoke02" )
+ MakeLowHealthTitan( titan )
+ break
+ default:
+ return
+ }
+ }
+}
+
+void function BossTitanNoIntro( entity titan )
+{
+ FlagWait( "PlayerDidSpawn" )
+
+ entity player = GetPlayerArray()[0]
+
+ player.EndSignal( "OnDeath" )
+ titan.EndSignal( "OnDeath" )
+
+ // Wait until player sees the boss titan
+ waitthread WaitForHotdropToEnd( titan )
+
+ while ( 1 )
+ {
+ waitthread WaitTillLookingAt( player, titan, true, 60, 5100 )
+ if ( titan.GetEnemy() == null )
+ titan.WaitSignal( "OnSeeEnemy" )
+ else
+ break
+ }
+
+ if ( BossTitanVDUEnabled( titan ) )
+ Remote_CallFunction_NonReplay( player, "ServerCallback_BossTitanNoIntro", titan.GetEncodedEHandle() )
+ AddEntityCallback_OnDamaged( titan, OnBossTitanDamaged )
+ AddTitanCallback_OnHealthSegmentLost( titan, OnBossTitanLostSegment )
+}
+
+void function BossTitanIntro( entity player, entity titan, BossTitanIntroData ornull introdata = null )
+{
+ Assert( titan.IsNPC() )
+ Assert( titan.ai.bossCharacterName != "" )
+
+ if ( introdata == null )
+ {
+ BossTitanIntroData defaultData = GetBossTitanIntroData( titan.ai.bossCharacterName )
+ introdata = defaultData
+ }
+
+ expect BossTitanIntroData( introdata )
+
+ player.EndSignal( "OnDeath" )
+ titan.EndSignal( "OnDeath" )
+
+ HideCrit( titan )
+ titan.SetValidHealthBarTarget( false )
+ titan.SetInvulnerable()
+
+ // Wait until player sees the boss titan
+
+ while ( titan.e.isHotDropping )
+ {
+ WaitFrame()
+ }
+
+ HideName( titan )
+ titan.kv.allowshoot = 0
+
+ if ( introdata.waitToStartFlag != "" )
+ FlagWait( introdata.waitToStartFlag )
+
+ if ( introdata.waitForLookat )
+ waitthread WaitTillLookingAt( player, titan, introdata.lookatDoTrace, introdata.lookatDegrees, introdata.lookatMinDist )
+
+ while ( IsPlayerDisembarking( player ) || IsPlayerEmbarking( player ) )
+ {
+ WaitFrame()
+ }
+
+ BossTitanData bossTitanData = GetBossTitanData( titan.ai.bossCharacterName )
+
+ // Create a ref node to animate on
+ vector refPos
+ vector refAngles
+
+ if ( bossTitanData.introAnimTitanRef != "" )
+ {
+ entity titanAnimRef = GetEntByScriptName( bossTitanData.introAnimTitanRef )
+ refPos = titanAnimRef.GetOrigin()
+ refAngles = titanAnimRef.GetAngles()
+ }
+ else
+ {
+ refPos = titan.GetOrigin()
+
+ vector vecToPlayer = Normalize( player.GetOrigin() - titan.GetOrigin() )
+ refAngles = VectorToAngles( vecToPlayer )
+ refAngles = FlattenAngles( refAngles )
+ }
+
+ entity ref
+ if ( introdata.parentRef != null )
+ {
+ ref = introdata.parentRef
+ }
+ else
+ ref = CreateScriptRef( refPos, refAngles )
+
+ entity soul = titan.GetTitanSoul()
+ if ( IsValid( soul.soul.bubbleShield ) )
+ {
+ soul.soul.bubbleShield.Destroy()
+ }
+
+ // Freeze player and clear up the screen
+ StartBossIntro( player, titan, introdata )
+ player.Hide()
+ player.SetVelocity( <0,0,0> )
+ player.FreezeControlsOnServer()
+ player.SetNoTarget( true )
+ player.SetInvulnerable()
+
+ // Do special player view movement
+ FlagSet( "BossTitanViewFollow" )
+
+ // Animate the boss titan
+ entity pilot = CreatePropDynamic( GetBossTitanCharacterModel( titan ) )
+ if ( introdata.parentRef != null )
+ {
+ if ( introdata.parentAttach != "" )
+ {
+ pilot.SetParent( introdata.parentRef, introdata.parentAttach )
+ }
+ else
+ {
+ pilot.SetParent( introdata.parentRef )
+ }
+ }
+ SetTeam( pilot, TEAM_IMC )
+
+ string pilotAnimName = bossTitanData.introAnimPilot
+ string titanAnimName = bossTitanData.introAnimTitan
+
+ float introDuration = 6.0
+
+ Assert( titan.Anim_HasSequence( titanAnimName ), "Your boss titan does not have an intro animation set, or it is missing." )
+
+ introDuration = titan.GetSequenceDuration( titanAnimName )
+
+ svGlobal.levelEnt.Signal( "BossTitanStartAnim" )
+
+ if ( introdata.parentAttach != "" )
+ {
+ thread PlayAnim( pilot, pilotAnimName, ref, introdata.parentAttach, 0.0 )
+ thread PlayAnim( titan, titanAnimName, ref, introdata.parentAttach, 0.0 )
+ }
+ else
+ {
+ thread PlayAnim( pilot, pilotAnimName, ref, 0.0 )
+ thread PlayAnim( titan, titanAnimName, ref, 0.0 )
+ }
+
+ Objective_Hide( player )
+
+ thread BossTitanPlayerView( player, titan, ref, bossTitanData.titanCameraAttachment )
+
+ wait introDuration - SLAMZOOM_TIME
+
+ // Player view returns to normal
+ FlagClear( "BossTitanViewFollow" )
+ EndBossIntro( player, titan )
+
+ wait SLAMZOOM_TIME
+
+ // Return the player screen and movement back to normal
+ player.UnfreezeControlsOnServer()
+ player.SetNoTarget( false )
+ player.ClearInvulnerable()
+ player.Show()
+ pilot.Destroy()
+
+ if ( IsValid( titan ) )
+ {
+ titan.ClearInvulnerable()
+ titan.Solid()
+ AddEntityCallback_OnDamaged( titan, OnBossTitanDamaged )
+ AddTitanCallback_OnHealthSegmentLost( titan, OnBossTitanLostSegment )
+ ShowName( titan )
+ titan.SetValidHealthBarTarget( true )
+ ShowCrit( titan )
+ Signal( titan, "BossTitanIntroEnded" )
+ }
+
+ wait 0.5
+
+ if ( Flag( "AutomaticCheckpointsEnabled" ) )
+ {
+ if ( introdata.checkpointOnlyIfPlayerTitan )
+ {
+ if ( player.IsTitan() )
+ CheckPoint_Forced()
+ }
+ else
+ CheckPoint_Forced()
+ }
+
+ wait 1.0
+
+ titan.kv.allowshoot = 1
+ Remote_CallFunction_NonReplay( player, "ServerCallback_BossTitanPostIntro", titan.GetEncodedEHandle(), BossTitanVDUEnabled( titan ) )
+}
+
+void function PlayerParentTest()
+{
+ entity player = GetPlayerArray()[0]
+
+ vector moverStartPos = player.EyePosition()
+ vector moverStartAng = FlattenAngles( player.GetAngles() )
+ entity mover = CreateScriptMover( moverStartPos, moverStartAng )
+
+ player.SnapEyeAngles( moverStartAng )
+ player.SetParent( mover, "", true )
+}
+
+void function BossTitanPlayerView( entity player, entity titan, entity ref, string titanCameraAttachment )
+{
+ bool hasTitanCameraAttachment = titanCameraAttachment != ""
+
+ EndSignal( player, "OnDeath" )
+ EndSignal( titan, "OnDeath" )
+
+ vector moverStartPos = player.CameraPosition()
+
+ vector camFeetDiff = < 0,0,-185 >//player.GetOrigin() - player.CameraPosition()
+
+ vector moverStartAng = player.CameraAngles()
+ entity mover = CreateScriptMover( moverStartPos, moverStartAng )
+
+ // player.SnapEyeAngles( moverStartAng )
+ // player.SetParent( mover, "", true )
+ // ViewConeZero( player )
+
+ entity camera = CreateEntity( "point_viewcontrol" )
+ camera.kv.spawnflags = 56 // infinite hold time, snap to goal angles, make player non-solid
+
+ camera.SetOrigin( player.CameraPosition() )
+ camera.SetAngles( player.CameraAngles() )
+ DispatchSpawn( camera )
+
+ camera.SetParent( mover, "", false )
+
+ OnThreadEnd(
+ function() : ( player, titan, mover, camera )
+ {
+ if ( IsValid( camera ) )
+ {
+ camera.Destroy()
+ }
+
+ mover.Destroy()
+
+ if ( IsValid( player ) )
+ {
+ player.ClearParent()
+ player.ClearViewEntity()
+ RemoveCinematicFlag( player, CE_FLAG_HIDE_MAIN_HUD )
+ RemoveCinematicFlag( player, CE_FLAG_TITAN_3P_CAM )
+ }
+
+ if ( IsAlive( titan ) && titan.IsNPC() )
+ {
+ titan.SetNoTarget( false )
+ titan.DisableNPCFlag( NPC_IGNORE_ALL )
+ }
+ }
+ )
+
+ // Slam Zoom In
+ float slamZoomTime = SLAMZOOM_TIME
+ float slamZoomTimeAccel = 0.3
+ float slamZoomTimeDecel = 0.3
+ vector viewOffset = < 200, 100, 160 >
+
+ vector viewPos = ref.GetOrigin() + ( AnglesToForward( ref.GetAngles() ) * viewOffset.x ) + ( AnglesToRight( ref.GetAngles() ) * viewOffset.y ) + ( AnglesToUp( ref.GetAngles() ) * viewOffset.z )
+ vector viewAngles = ref.GetAngles() + <0,180,0>
+ if ( hasTitanCameraAttachment )
+ {
+ WaitFrame()
+ int titanCameraAttachmentID = titan.LookupAttachment( titanCameraAttachment )
+ viewPos = titan.GetAttachmentOrigin( titanCameraAttachmentID )
+ viewAngles = titan.GetAttachmentAngles( titanCameraAttachmentID )
+ }
+
+ float blendTime = 0.5
+ float waittime = 0.3
+ float moveTime = slamZoomTime - blendTime - waittime
+
+ float startTime = Time()
+
+ player.SetVelocity( < 0,0,0 > )
+ player.MakeInvisible()
+ HolsterAndDisableWeapons( player )
+
+ wait waittime // wait for the AI to blend into the anim
+
+ if ( titan.IsNPC() )
+ {
+ titan.SetNoTarget( true )
+ titan.EnableNPCFlag( NPC_IGNORE_ALL )
+ }
+
+ AddCinematicFlag( player, CE_FLAG_HIDE_MAIN_HUD )
+ AddCinematicFlag( player, CE_FLAG_TITAN_3P_CAM )
+
+ mover.SetOrigin( player.CameraPosition() )
+ mover.SetAngles( player.CameraAngles() )
+ player.SetViewEntity( camera, true )
+
+ player.SetPredictionEnabled( false )
+ OnThreadEnd(
+ function() : ( player )
+ {
+ if ( IsValid( player ) )
+ player.SetPredictionEnabled( true )
+ }
+ )
+
+ while ( Time() - startTime < moveTime )
+ {
+ if ( hasTitanCameraAttachment )
+ {
+ int titanCameraAttachmentID = titan.LookupAttachment( titanCameraAttachment )
+ viewPos = titan.GetAttachmentOrigin( titanCameraAttachmentID )
+ viewAngles = titan.GetAttachmentAngles( titanCameraAttachmentID )
+ }
+ mover.NonPhysicsMoveTo( viewPos, moveTime - (Time() - startTime), 0, 0 )
+ mover.NonPhysicsRotateTo( viewAngles, moveTime - (Time() - startTime), 0, 0 )
+ wait 0.1
+ }
+
+ if ( hasTitanCameraAttachment )
+ {
+ mover.SetParent( titan, titanCameraAttachment, false, blendTime )
+ }
+
+ wait 0.5
+
+ int tagID = titan.LookupAttachment( "CHESTFOCUS" )
+ while ( Flag( "BossTitanViewFollow" ) )
+ {
+ vector lookVec = Normalize( titan.GetAttachmentOrigin( tagID ) - mover.GetOrigin() )
+ vector angles = VectorToAngles( lookVec )
+ if ( !hasTitanCameraAttachment )
+ mover.NonPhysicsRotateTo( angles, 0.2, 0.0, 0.0 )
+ WaitFrame()
+ }
+
+ // Slam Zoom Out
+
+ mover.ClearParent()
+
+ startTime = Time()
+ while ( Time() - startTime < slamZoomTime )
+ {
+ moverStartPos = player.GetOrigin() - camFeetDiff
+ moverStartAng = FlattenAngles( player.GetAngles() )
+ mover.NonPhysicsMoveTo( moverStartPos, slamZoomTime - (Time() - startTime), 0, 0 )
+ mover.NonPhysicsRotateTo( moverStartAng, slamZoomTime - (Time() - startTime), 0, 0 )
+ wait 0.1
+ }
+
+ // mover.NonPhysicsMoveTo( moverStartPos, slamZoomTime, slamZoomTimeDecel, slamZoomTimeAccel )
+ // mover.NonPhysicsRotateTo( moverStartAng, slamZoomTime, slamZoomTimeDecel, slamZoomTimeAccel )
+ // wait slamZoomTime
+
+ ClearPlayerAnimViewEntity( player )
+ player.SnapEyeAngles( moverStartAng )
+ DeployAndEnableWeapons( player )
+ player.MakeVisible()
+
+ EmitSoundOnEntity( player, "UI_Lobby_RankChip_Disable" )
+}
+
+void function OnBossTitanDamaged( entity titan, var damageInfo )
+{
+}
+
+void function OnBossTitanLostSegment( entity titan, entity attacker )
+{
+ if ( !titan.IsNPC() || !BossTitanVDUEnabled( titan ) )
+ return
+
+ foreach ( player in GetPlayerArray() )
+ {
+ if ( player == attacker || IsMercTitan( titan ) )
+ Remote_CallFunction_NonReplay( player, "ServerCallback_BossTitanLostSegment", titan.GetEncodedEHandle(), GetTitanCurrentRegenTab( titan ) )
+ }
+}
+
+void function OnBossTitanPrimaryFire( entity titan )
+{
+}
+
+bool function IsVDUTitan( entity titan )
+{
+ Assert( IsSingleplayer() )
+
+ if ( titan.GetTeam() != TEAM_IMC )
+ return false
+
+ switch ( titan.ai.bossTitanType )
+ {
+ case TITAN_AUTO:
+ case TITAN_WEAK:
+ return false
+
+ case TITAN_HENCH:
+ case TITAN_MERC:
+ case TITAN_BOSS:
+ return true
+ }
+
+ Assert( 0, "Unknown boss titan type " + titan.ai.bossTitanType )
+ unreachable
+}
+
+bool function IsBossTitan( entity titan )
+{
+ Assert( IsSingleplayer() )
+
+ if ( titan.GetTeam() != TEAM_IMC )
+ return false
+
+ switch ( titan.ai.bossTitanType )
+ {
+ case TITAN_MERC:
+ case TITAN_BOSS:
+ return true
+ }
+
+ return false
+}
+
+int function GetMercCharacterID( entity titan )
+{
+ return titan.ai.mercCharacterID
+}
+
+asset function GetBossTitanCharacterModel( entity titan )
+{
+ int mercCharacterID = GetMercCharacterID( titan )
+ return GetMercCharacterModel( mercCharacterID )
+}
+
+void function OnTitanLostSegment( entity titan, entity attacker )
+{
+ entity player
+
+ if ( !titan.IsPlayer() )
+ player = titan.GetBossPlayer()
+ else
+ player = titan
+
+ if ( !IsValid( player ) )
+ return
+
+ if ( !IsValid( attacker ) )
+ return
+
+ if ( !attacker.IsNPC() || !IsVDUTitan( attacker ) || !BossTitanVDUEnabled( attacker ) )
+ return
+
+ Remote_CallFunction_NonReplay( player, "BossTitanPlayerLostHealthSegment", GetSegmentHealthForTitan( titan ) )
+}
+
+void function BossTitanRetreat( entity titan )
+{
+ if ( !IsVDUTitan( titan ) || !BossTitanVDUEnabled( titan ) )
+ return
+
+ foreach ( player in GetPlayerArray() )
+ {
+ Remote_CallFunction_NonReplay( player, "ServerCallback_BossTitanRetreat", titan.GetEncodedEHandle() )
+ }
+}
+
+void function BossTitanAdvance( entity titan )
+{
+ if ( !IsVDUTitan( titan ) || !BossTitanVDUEnabled( titan ) )
+ return
+
+ foreach ( player in GetPlayerArray() )
+ {
+ Remote_CallFunction_NonReplay( player, "ServerCallback_BossTitanAdvance", titan.GetEncodedEHandle() )
+ }
+}
+
+/*
+------------------------------------------------------------
+Low Health Titans
+------------------------------------------------------------
+*/
+
+void function MakeLowHealthTitan( entity ent )
+{
+ entity soul = ent.GetTitanSoul()
+ soul.soul.regensHealth = false
+ thread SetHealthValuesForLowHealth( soul )
+ //ent.SetValidHealthBarTarget( false )
+
+ ent.TakeOffhandWeapon( OFFHAND_ORDNANCE )
+ ent.TakeOffhandWeapon( OFFHAND_ANTIRODEO )
+ ent.TakeOffhandWeapon( OFFHAND_EQUIPMENT )
+ ent.TakeOffhandWeapon( OFFHAND_SPECIAL )
+}
+
+void function MakeMidHealthTitan( entity ent )
+{
+ entity soul = ent.GetTitanSoul()
+ soul.soul.regensHealth = false
+ thread SetHealthValuesForMidHealth( soul )
+}
+
+void function SetHealthValuesForMidHealth( entity soul )
+{
+ soul.EndSignal( "OnDestroy" )
+ WaitEndFrame() // wait for a bunch of variables to start up
+ soul.Signal( SIGNAL_TITAN_HEALTH_REGEN )
+ soul.Signal( "StopShieldRegen" )
+ soul.SetShieldHealth( 0 )
+
+ entity titan = soul.GetTitan()
+ int numSegments = ( titan.GetMaxHealth() / GetSegmentHealthForTitan( titan ) ) - 2
+ Assert( numSegments > 0 )
+ SetSoulBatteryCount( soul, numSegments )
+ if ( IsAlive( titan ) )
+ {
+ soul.soul.skipDoomState = true
+ int segmentHealth = GetSegmentHealthForTitan( titan ) * numSegments
+ titan.SetMaxHealth( segmentHealth )
+ titan.SetHealth( segmentHealth )
+ titan.kv.healthEvalMultiplier = 2
+ }
+
+ titan.Signal( "WeakTitanHealthInitialized" )
+
+ ApplyTitanDamageState( titan )
+}
+
+void function SetHealthValuesForLowHealth( entity soul )
+{
+ soul.EndSignal( "OnDestroy" )
+ WaitEndFrame() // wait for a bunch of variables to start up
+ soul.Signal( SIGNAL_TITAN_HEALTH_REGEN )
+ soul.Signal( "StopShieldRegen" )
+ soul.SetShieldHealth( 0 )
+
+ int numSegments = 2
+
+ SetSoulBatteryCount( soul, numSegments )
+ entity titan = soul.GetTitan()
+ if ( IsAlive( titan ) )
+ {
+ soul.soul.skipDoomState = true
+ int segmentHealth = GetSegmentHealthForTitan( titan ) * numSegments
+ titan.SetMaxHealth( segmentHealth )
+ titan.SetHealth( segmentHealth )
+ titan.kv.healthEvalMultiplier = 2
+ }
+
+ titan.Signal( "WeakTitanHealthInitialized" )
+
+ ApplyTitanDamageState( titan )
+}
+
+void function ApplyTitanDamageState( entity titan )
+{
+ array<float> healthScale = [
+ 1.0,
+ 0.6,
+ 0.3,
+ 0.1
+ ]
+
+ int state = 0
+
+ if ( titan.HasKey( "DamageState" ) )
+ {
+ state = int( titan.GetValueForKey( "DamageState" ) )
+ }
+
+ titan.SetHealth( titan.GetMaxHealth() * healthScale[state] )
+
+ if ( state >= 1 )
+ {
+ string part = [
+ "left_arm",
+ "right_arm"
+ ].getrandom()
+ GibBodyPart( titan, part )
+ }
+
+ if ( state >= 2 )
+ GibBodyPart( titan, "torso" )
+}
+
+bool function IsMercTitan( entity titan )
+{
+ if ( IsMultiplayer() )
+ return false
+ if ( titan.GetTeam() != TEAM_IMC )
+ return false
+ return titan.ai.bossTitanType == TITAN_MERC
+}
+
+bool function BossTitanVDUEnabled( entity titan )
+{
+ return titan.ai.bossTitanVDUEnabled
+} \ No newline at end of file
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_chatter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_chatter.gnut
index 0429895b1..0429895b1 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_chatter.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_chatter.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_cloak_drone.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_cloak_drone.gnut
index e3addf812..e3addf812 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_cloak_drone.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_cloak_drone.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_drone.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_drone.gnut
index c0d56de73..c0d56de73 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_drone.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_drone.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_emp_titans.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_emp_titans.gnut
index 638166c83..638166c83 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_emp_titans.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_emp_titans.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_gunship.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_gunship.gnut
index 2f1fdc96f..2f1fdc96f 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_gunship.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_gunship.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_lethality.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_lethality.gnut
index 771fe6d93..771fe6d93 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_lethality.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_lethality.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_marvin_faces.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_marvin_faces.gnut
index e6d3bcf0a..e6d3bcf0a 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_marvin_faces.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_marvin_faces.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_marvin_jobs.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_marvin_jobs.gnut
index 588b4d75e..588b4d75e 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_marvin_jobs.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_marvin_jobs.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_marvins.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_marvins.gnut
index fc8b7d1ee..fc8b7d1ee 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_marvins.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_marvins.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_mortar_spectres.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_mortar_spectres.gnut
index 4aa3ac302..4aa3ac302 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_mortar_spectres.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_mortar_spectres.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_mortar_titans.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_mortar_titans.gnut
index 08598808a..08598808a 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_mortar_titans.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_mortar_titans.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_nuke_titans.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_nuke_titans.gnut
index 0d4b43c92..0d4b43c92 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_nuke_titans.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_nuke_titans.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_personal_shield.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_personal_shield.gnut
index f1fbdb80f..f1fbdb80f 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_personal_shield.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_personal_shield.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_pilots.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_pilots.gnut
index 3c2e36ce0..3c2e36ce0 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_pilots.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_pilots.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_sniper_titans.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_sniper_titans.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_sniper_titans.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_sniper_titans.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_soldiers.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers.gnut
index 9717c76d9..9717c76d9 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_soldiers.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_soldiers_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers_mp.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_soldiers_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers_mp.gnut
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers_sp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers_sp.gnut
new file mode 100644
index 000000000..6faf66491
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_soldiers_sp.gnut
@@ -0,0 +1,17 @@
+global function IsAutoPopulateEnabled
+
+bool function IsAutoPopulateEnabled( var team = null )
+{
+ if ( IsNPCSpawningEnabled() == false )
+ return false
+
+ if ( Flag( "disable_npcs" ) )
+ return false
+
+ if ( team == TEAM_MILITIA && Flag( "Disable_MILITIA" ) )
+ return false
+ if ( team == TEAM_IMC && Flag( "Disable_IMC" ) )
+ return false
+
+ return true
+} \ No newline at end of file
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_spawn.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_spawn.gnut
index 7e4d2cddf..7e4d2cddf 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_spawn.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_spawn.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_spawn_content.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_spawn_content.gnut
index c6e7f9f4e..c6e7f9f4e 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_spawn_content.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_spawn_content.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_spectre.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_spectre.gnut
index 214aff96e..214aff96e 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_spectre.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_spectre.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_stalker.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_stalker.gnut
index f49560e02..f49560e02 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_stalker.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_stalker.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_stationary_firing_positions.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_stationary_firing_positions.gnut
index 50b6cc759..50b6cc759 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_stationary_firing_positions.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_stationary_firing_positions.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_suicide_spectres.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_suicide_spectres.gnut
index f8e0652ce..f8e0652ce 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_suicide_spectres.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_suicide_spectres.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_turret.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret.gnut
index eca5849bf..eca5849bf 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_turret.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret.gnut
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut
new file mode 100644
index 000000000..e34b30826
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_turret_sentry.gnut
@@ -0,0 +1,72 @@
+global function AiTurretSentry_Init
+
+const DEAD_SENTRY_TURRET_FX = $"P_impact_exp_med_air"
+const DEAD_SENTRY_TURRET_SFX = "SentryTurret_DeathExplo"
+const SENTRY_TURRET_AIM_FX_RED = $"P_wpn_lasercannon_aim_short"
+const SENTRY_TURRET_AIM_FX_BLUE = $"P_wpn_lasercannon_aim_short_blue"
+
+void function AiTurretSentry_Init()
+{
+ PrecacheParticleSystem( DEAD_SENTRY_TURRET_FX )
+ //PrecacheParticleSystem( SENTRY_TURRET_AIM_FX_RED )
+ //PrecacheParticleSystem( SENTRY_TURRET_AIM_FX_BLUE )
+ //PrecacheParticleSystem( SENTRY_TURRET_AIM_FX2 )
+
+ AddSpawnCallback( "npc_turret_sentry", LightTurretSpawnFunction )
+ AddDeathCallback( "npc_turret_sentry", LightTurretDeathFX )
+
+ //RegisterSignal( "TurretDisabled" )
+ //RegisterSignal( "HandleTargetDeath" )
+ //RegisterSignal( "OnPlayerDisconnectResetTurret" )
+ //RegisterSignal( "Deactivate_Turret" )
+ //RegisterSignal( "TurretShieldWallRelease")
+ //RegisterSignal( "DestroyShieldFX")
+}
+
+void function LightTurretDeathFX( entity turret, var damageInfo )
+{
+ turret.SetBodygroup( 0, 1 )
+
+ int turretEHandle = turret.GetEncodedEHandle()
+ array<entity> players = GetPlayerArray()
+ foreach( player in players )
+ {
+ Remote_CallFunction_Replay( player, "ServerCallback_TurretRefresh", turretEHandle )
+ }
+
+ EmitSoundAtPosition( turret.GetTeam(), turret.GetOrigin(), DEAD_SENTRY_TURRET_SFX )
+ PlayFX( DEAD_SENTRY_TURRET_FX, turret.GetOrigin() + Vector( 0,0,38 ) ) // played with a slight offset as requested by BigRig
+}
+
+//////////////////////////////////////////////////////////
+void function LightTurretSpawnFunction( entity turret )
+{
+ turret.UnsetUsable()
+
+// float windupTime = TurretGetWindupTime( turret )
+// if ( windupTime > 0 )
+// thread HACK_TurretManagePreAttack( turret, OnWindupBegin_SentryTurret, OnWindupEnd_Turret )
+//
+ if ( turret.Dev_GetAISettingByKeyField( "aim_laser_disabled" ) )
+ return
+
+ thread SentryTurretAimLaser( turret )
+}
+
+void function SentryTurretAimLaser( entity turret )
+{
+ entity fx1 = PlayLoopFXOnEntity( SENTRY_TURRET_AIM_FX_RED, turret, "camera_glow", null, null, ENTITY_VISIBLE_TO_ENEMY )
+ entity fx2 = PlayLoopFXOnEntity( SENTRY_TURRET_AIM_FX_BLUE, turret, "camera_glow", null, null, ENTITY_VISIBLE_TO_FRIENDLY )
+
+ OnThreadEnd(
+ function() : ( fx1, fx2 )
+ {
+ if ( IsValid( fx1 ) )
+ EffectStop( fx1 )
+ if ( IsValid( fx2 ) )
+ EffectStop( fx2 )
+ }
+ )
+
+ WaitSignal( turret, "OnDeath" )
+}
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_ai_utility.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_utility.gnut
index 67c686003..67c686003 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_ai_utility.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_ai_utility.gnut
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/ai/_droppod.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_droppod.gnut
new file mode 100644
index 000000000..40a7d9328
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_droppod.gnut
@@ -0,0 +1,187 @@
+untyped
+
+global function DropPod_Init
+
+global function CreateDropPod
+global function LaunchAnimDropPod
+global function GetDropPodAnimDuration
+global function CreateDropPodSmokeTrail
+
+const DP_COLL_MODEL = $"models/vehicle/droppod_fireteam/droppod_fireteam_collision.mdl"
+const DROPPOD_MODEL = $"models/vehicle/droppod_fireteam/droppod_fireteam.mdl"
+
+function DropPod_Init()
+{
+ PrecacheModel( DROPPOD_MODEL )
+
+ RegisterSignal( "OnLaunch" )
+ RegisterSignal( "OnImpact" )
+
+ PrecacheModel( DP_COLL_MODEL )
+
+ PrecacheEffect( $"droppod_trail" )
+ PrecacheEffect( $"droppod_impact" )
+}
+
+
+function GetDropPodAnimDuration()
+{
+ // hack seems bad to spawn an ent to get this info
+ entity dropPod = CreateDropPod()
+
+ local animDuration = dropPod.GetSequenceDuration( "pod_testpath" )
+ dropPod.Destroy()
+
+ return animDuration
+}
+
+function LaunchAnimDropPod( entity dropPod, string anim, vector targetOrigin, vector targetAngles )
+{
+ dropPod.EndSignal( "OnDestroy" )
+ dropPod.EnableRenderAlways()
+
+ dropPod.s.launchAnim <- anim
+
+ int team = dropPod.GetTeam()
+
+ entity ref = CreateOwnedScriptMover( dropPod )
+ ref.SetOrigin( targetOrigin )
+ ref.SetAngles( targetAngles )
+
+ OnThreadEnd(
+ function () : ( dropPod, ref )
+ {
+ if ( IsValid( dropPod ) )
+ {
+ dropPod.ClearParent()
+ }
+
+ if ( IsValid( ref ) )
+ ref.Kill_Deprecated_UseDestroyInstead()
+ }
+ )
+
+ local e = {}
+ e.targetOrigin <- targetOrigin
+ e.targetAngles <- targetAngles
+
+ AddAnimEvent( dropPod, "OnImpact", DropPodOnImpactFXAndShake, e )
+ EmitSoundOnEntity( dropPod, "spectre_drop_pod" )
+
+ FirstPersonSequenceStruct sequence
+ sequence.thirdPersonAnim = anim
+
+ sequence.blendTime = 0.0
+ sequence.attachment = "ref"
+ sequence.useAnimatedRefAttachment = true
+ //DrawArrow( ref.GetOrigin(), ref.GetAngles(), 5, 100 )
+ waitthread FirstPersonSequence( sequence, dropPod, ref )
+ dropPod.DisableRenderAlways()
+// WaitFrame()
+}
+
+function CheckPlayersIntersectingPod( pod, targetOrigin )
+{
+ array<entity> playerList = GetPlayerArray()
+
+ // Multiplying the bounds by 1.42 to ensure this encloses the droppod when it's rotated 45 degrees
+ local mins = pod.GetBoundingMins() * 1.42 + targetOrigin
+ local maxs = pod.GetBoundingMaxs() * 1.42 + targetOrigin
+ local safeRadiusSqr = 250 * 250
+
+ foreach ( player in playerList )
+ {
+ local playerOrigin = player.GetOrigin()
+
+ if ( DistanceSqr( targetOrigin, playerOrigin ) > safeRadiusSqr )
+ continue
+
+ local playerMins = player.GetBoundingMins() + playerOrigin
+ local playerMaxs = player.GetBoundingMaxs() + playerOrigin
+
+ if ( BoxIntersectsBox( mins, maxs, playerMins, playerMaxs ) )
+ return true
+ }
+
+ return false
+}
+
+entity function CreateDropPod( vector ornull origin = null, vector ornull angles = null )
+{
+ entity prop_dynamic = CreateEntity( "prop_dynamic" )
+ prop_dynamic.SetValueForModelKey( DROPPOD_MODEL )
+ prop_dynamic.kv.contents = int( prop_dynamic.kv.contents ) & ~CONTENTS_TITANCLIP
+ prop_dynamic.kv.fadedist = -1
+ prop_dynamic.kv.renderamt = 255
+ prop_dynamic.kv.rendercolor = "255 255 255"
+ prop_dynamic.kv.solid = 6 // 0 = no collision, 2 = bounding box, 6 = use vPhysics, 8 = hitboxes only
+ if ( origin )
+ {
+ prop_dynamic.SetOrigin( expect vector( origin ) )
+ if ( angles )
+ prop_dynamic.SetAngles( expect vector( angles ) )
+ }
+ DispatchSpawn( prop_dynamic )
+
+ return prop_dynamic
+}
+
+void function PushPlayerAndCreateDropPodCollision( entity pod, vector targetOrigin )
+{
+ pod.EndSignal( "OnDestroy" )
+
+ entity point_push = CreateEntity( "point_push" )
+ point_push.kv.spawnflags = 8
+ point_push.kv.enabled = 1
+ point_push.kv.magnitude = 140.0 * 0.75 //Compensate for reduced player gravity to match R1
+ point_push.kv.radius = 192.0
+ point_push.SetOrigin( targetOrigin + Vector( 0.0, 0.0, 32.0 ) )
+ DispatchSpawn( point_push )
+
+ OnThreadEnd(
+ function() : ( point_push )
+ {
+ point_push.Fire( "Kill", "", 0.0 )
+ }
+ )
+
+ while ( CheckPlayersIntersectingPod( pod, targetOrigin ) )
+ wait( 0.1 )
+
+ pod.Solid()
+}
+
+function DropPodOnImpactFX( droppod, e )
+{
+ PlayImpactFXTable( expect vector( e.targetOrigin ), expect entity( droppod ), HOTDROP_IMPACT_FX_TABLE )
+}
+
+void function DropPodOnImpactFXAndShake( entity droppod )
+{
+ var e = GetOptionalAnimEventVar( droppod, "OnImpact" )
+ DropPodOnImpactFX( droppod, e )
+ CreateShake( expect vector( e.targetOrigin ), 7, 0.15, 1.75, 768 )
+
+ // 1 - No Damage - Only Force
+ // 2 - Push players
+ // 8 - Test LOS before pushing
+ local flags = 11
+ local impactOrigin = e.targetOrigin + Vector( 0,0,10 )
+ local impactRadius = 192
+ thread PushPlayerAndCreateDropPodCollision( droppod, expect vector( e.targetOrigin ) )
+}
+
+
+function CreateDropPodSmokeTrail( pod )
+{
+ entity smokeTrail = CreateEntity( "info_particle_system" )
+ smokeTrail.SetValueForEffectNameKey( $"droppod_trail" )
+ smokeTrail.kv.start_active = 0
+ DispatchSpawn( smokeTrail )
+
+ smokeTrail.SetOrigin( pod.GetOrigin() + Vector( 0, 0, 152 ) )
+ smokeTrail.SetParent( pod )
+
+ return smokeTrail
+}
+
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_droppod_fireteam.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_droppod_fireteam.gnut
index b93631ac8..b93631ac8 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_droppod_fireteam.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_droppod_fireteam.gnut
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/ai/_grunt_chatter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_grunt_chatter.gnut
new file mode 100644
index 000000000..f5c0c84d9
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_grunt_chatter.gnut
@@ -0,0 +1,1786 @@
+// _grunt_chatter.gnut
+
+global function GruntChatter_Init
+global function GruntChatter_AddCategory
+global function GruntChatter_AddEvent
+global function GruntChatter_TryCloakedPilotSpotted
+global function GruntChatter_TryThrowingGrenade
+global function GruntChatter_TryFriendlyEquipmentDeployed
+global function GruntChatter_TryPersonalShieldDamaged
+global function GruntChatter_TryDisplacingFromDangerousArea
+global function GruntChatter_TryEnemyTimeShifted
+global function GruntChatter_TryIncomingSpawn
+global function GruntChatter_TryPlayerPilotReloading
+global function GruntChatter_TryGruntFlankedByPlayer
+
+const float CHATTER_THINK_WAIT = 1.0
+const float CHATTER_SIGNAL_INTERRUPT_WAIT = 1.0 // how often the grunts will interrupt their signal waiting thread to check their kv timers
+const float CHATTER_EVENT_EXPIRE_TIME = 3.0 // chatter events get thrown away when they're at least this old
+
+const float CHATTER_PLAYER_COMBAT_STATE_CHANGE_DEBOUNCE = 1.5
+
+const float CHATTER_PILOT_LOST_NEARBY_TEAMMATE_DIST = 1024.0
+const float CHATTER_PLAYER_CLOSE_MIN_DIST = 370.0 // all squad members have to be at least this far away from enemy to say they lost visual
+
+const float CHATTER_PILOT_SPOTTED_CLOSE_DIST = 600.0
+const float CHATTER_PILOT_SPOTTED_MID_DIST = 1100.0
+const float CHATTER_PILOT_SPOTTED_NEARBY_TEAMMATE_DIST = 1024.0
+
+const float CHATTER_PILOT_SPOTTED_MID_DIST_MOVING_MIN_SPEED = 170.0
+
+const float CHATTER_PILOT_SPOTTED_RANGE_DIST_MIN = 600.0
+const float CHATTER_PILOT_SPOTTED_RANGE_DIST_MAX = 1400.0
+const float CHATTER_PILOT_SPOTTED_RANGE_DIST_20 = 787.0
+const float CHATTER_PILOT_SPOTTED_RANGE_DIST_25 = 984.0
+const float CHATTER_PILOT_SPOTTED_RANGE_DIST_30 = 1181.0
+const float CHATTER_PILOT_SPOTTED_RANGE_DIST_35 = 1378.0
+
+const float CHATTER_PILOT_DECOY_SPOTTED_DIST_MAX = 1500.0
+
+const float CHATTER_ENEMY_GRUNT_SPOTTED_DIST = 1250.0
+const float CHATTER_ENEMY_TITAN_SPOTTED_DIST = 3000.0
+const float CHATTER_ENEMY_TITAN_SPOTTED_DIST_CLOSE = 1024.0
+const float CHATTER_ENEMY_SPECTRE_SPOTTED_DIST = 1250.0
+const float CHATTER_ENEMY_SPECTRE_SPOTTED_DIST_CLOSE = 650.0
+const float CHATTER_ENEMY_TICK_SPOTTED_DIST = 1024.0
+
+const float CHATTER_PILOT_SPOTTED_ABOVE_DIST_MIN = 128.0
+const float CHATTER_PILOT_SPOTTED_ABOVE_DIST_MAX = 1024.0
+const float CHATTER_PILOT_SPOTTED_ABOVE_RADIUS = 450.0
+const float CHATTER_PILOT_SPOTTED_BELOW_DIST_MIN = 128.0
+const float CHATTER_PILOT_SPOTTED_BELOW_DIST_MAX = 1024.0
+const float CHATTER_PILOT_SPOTTED_BELOW_RADIUS = 512.0
+
+const float CHATTER_GRUNT_ENEMY_OUT_OF_SIGHT_TIME = 15.0
+
+const float CHATTER_FRIENDLY_EQUIPMENT_DEPLOYED_NEARBY_DIST = 900.0 // distance from the Specialist that a Grunt will chatter about him deploying things
+
+const bool CHATTER_DO_UNSUSPECTING_PILOT_CALLOUTS = false // couldn't get it working well enough in time just in script... next game maybe
+const float CHATTER_UNSUSPECTING_PILOT_TARGET_DIST_MAX = 512.0
+const float CHATTER_UNSUSPECTING_PILOT_TARGET_MIN_DOT_REAR = 0.65
+const float CHATTER_UNSUSPECTING_PILOT_MAX_SPEED = 170.0 // player has to be below this speed to trigger "unsuspecting pilot"
+const float CHATTER_UNSUSPECTING_PILOT_STATETIME_MIN = 2.0 // how long the player has to be in "unsuspecting state" before we try to chatter about it
+
+const float CHATTER_SEE_CLOAKED_PILOT_MIN_DOT_REAR = 0.65
+
+const float CHATTER_SUPPRESSION_EXPIRE_TIME = 0.2 // secs after kv.lastSuppressionTime that we will be ok with adding a chatter event about it
+const float CHATTER_MISS_FAST_TARGET_EXPIRE_TIME = 0.5 // secs after kv.lastMissFastPlayerTime that we will be ok with adding a chatter event about it
+const float CHATTER_MISS_FAST_TARGET_MIN_SPEED = 350.0 // min "speed" that player needs to be moving to trigger a missing fast player callout
+
+const float CHATTER_PILOT_LOW_HEALTH_FRAC = 0.35 // below this fraction of pilot maxhealth, enemies can chatter about pilot low health
+const float CHATTER_PILOT_LOW_HEALTH_RANGE = 1024.0 // beyond this distance, enemies won't chatter about pilot low health
+const float CHATTER_PLAYER_RELOADING_RANGE = 800.0
+
+const float CHATTER_NEARBY_GRUNT_TRACEFRAC_MIN = 0.95 // for when we need "LOS" trace
+
+const float CHATTER_ENEMY_PILOT_MULTIKILL_EXPIRETIME = 4.5 // max time between kills to trigger multikill callout
+const int CHATTER_PILOT_MULTIKILL_MIN_KILLS = 3
+
+const float CHATTER_FRIENDLY_GRUNT_DOWN_DIST_MAX = 1100.0
+const float CHATTER_FRIENDLY_TITAN_DOWN_DIST_MAX = 1500.0
+const float CHATTER_ENEMY_PILOT_DOWN_DIST_MAX = 600.0
+const float CHATTER_ENEMY_GRUNT_DOWN_DIST_MAX = 800.0
+const float CHATTER_ENEMY_TITAN_DOWN_DIST_MAX = 1500.0
+const float CHATTER_ENEMY_SPECTRE_DOWN_DIST_MAX = 800.0
+
+const float CHATTER_NEARBY_TITAN_DIST = 1024.0
+const float CHATTER_NEARBY_REAPER_DIST = 1024.0
+const float CHATTER_NEARBY_SPECTRE_DIST = 800.0
+
+const float CHATTER_ENEMY_TIME_SHIFT_NEARBY_DIST = 700.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_DANGEROUS_AREA_NEARBY_RANGE = 512.0
+
+struct ChatterCategory
+{
+ string alias
+ int priority = -1
+ string timer
+ string secondaryTimer
+ bool trackEventTarget
+ bool resetTargetKillChain
+}
+
+struct ChatterEvent
+{
+ ChatterCategory& category
+ entity npc = null
+ bool hasNPC = false
+ entity target = null
+ bool hasTarget = false
+ bool isValid = false
+ float time = -1
+}
+
+struct
+{
+ array<ChatterEvent> chatterEvents = []
+ table< string, ChatterCategory > chatterCategories
+ int usedEventTargetsArrayHandle
+
+ int pilotKillChainCounter = 0
+ float lastPilotKillTime = -1
+
+ int debugLevel = 0
+} file
+
+void function GruntChatter_Init()
+{
+ Assert( IsSingleplayer(), "Grunt chatter is only set up for SP." )
+
+ AddSpawnCallback( "player", GruntChatter_OnPlayerSpawned )
+ AddSpawnCallback( "npc_soldier", GruntChatter_OnGruntSpawned )
+ AddSpawnCallback( "npc_turret_sentry", GruntChatter_OnSentryTurretSpawned )
+
+ RegisterSignal( "GruntChatter_CombatStateChangeThread" )
+ RegisterSignal( "GruntChatter_Interrupt" )
+
+ file.usedEventTargetsArrayHandle = CreateScriptManagedEntArray()
+
+ AddCallback_OnPlayerKilled( GruntChatter_OnPlayerOrNPCKilled )
+ AddCallback_OnNPCKilled( GruntChatter_OnPlayerOrNPCKilled )
+ AddDeathCallback( "player_decoy", GruntChatter_OnPilotDecoyKilled )
+
+ GruntChatter_SharedInit()
+}
+
+void function GruntChatter_OnPlayerSpawned( entity player )
+{
+ thread GruntChatter_PlayerThink( player )
+ thread GruntChatter_TrackGruntCombatStateVsPlayer( player )
+
+ if ( CHATTER_DO_UNSUSPECTING_PILOT_CALLOUTS )
+ thread GruntChatter_DetectPlayerPilotUnsuspecting( player )
+}
+
+void function GruntChatter_OnGruntSpawned( entity grunt )
+{
+ if( IsMultiplayer() )
+ return
+
+ if ( !GruntChatter_IsGruntTypeEligibleForChatter( grunt ) )
+ return
+
+ AddEntityCallback_OnDamaged( grunt, GruntChatter_OnGruntDamaged )
+
+ thread GruntChatter_GruntSignalWait( grunt )
+}
+
+void function GruntChatter_OnSentryTurretSpawned( entity turret )
+{
+ if ( turret.GetTeam() != TEAM_IMC )
+ return
+
+ thread GruntChatter_TurretSignalWait( turret )
+}
+
+// ==== chatter mission control ====
+void function GruntChatter_AddCategory( string chatterAlias, int priority, string timerAlias, string secondaryTimerAlias, bool trackEventTarget, bool resetTargetKillChain )
+{
+ Assert( !( chatterAlias in file.chatterCategories ), "Chatter alias already set up: " + chatterAlias )
+ Assert( TimerExists( timerAlias ), "Grunt chatter timer not set up in grunt_chatter_timers.csv: " + timerAlias )
+
+ ChatterCategory newCategory
+ newCategory.alias = chatterAlias
+ newCategory.priority = priority
+ newCategory.timer = timerAlias
+ newCategory.trackEventTarget = trackEventTarget
+ newCategory.resetTargetKillChain = resetTargetKillChain
+
+ if ( secondaryTimerAlias != "" )
+ newCategory.secondaryTimer = secondaryTimerAlias
+
+ file.chatterCategories[ chatterAlias ] <- newCategory
+}
+
+// add a grunt to have him chatter specifically
+// target: must be alive or else event won't fire
+void function GruntChatter_AddEvent( string alias, entity ornull npc = null, entity ornull target = null )
+{
+ Assert( alias in file.chatterCategories, "Couldn't find chatter category alias " + alias + ", was it set up?" )
+
+ ChatterEvent newEvent
+ newEvent.category = file.chatterCategories[ alias ]
+ newEvent.isValid = true
+ newEvent.time = Time()
+
+ if ( npc != null )
+ {
+ newEvent.npc = expect entity( npc )
+ newEvent.hasNPC = true
+ }
+
+ if ( file.chatterCategories[ alias ].trackEventTarget )
+ Assert( target != null, "Category " + file.chatterCategories[ alias ].alias + " requires a target to track for its events." )
+
+ if ( file.chatterCategories[ alias ].resetTargetKillChain )
+ Assert( target != null, "Category " + file.chatterCategories[ alias ].alias + " requires a target on which to record kill chains." )
+
+ if ( target != null )
+ {
+ newEvent.target = expect entity( target )
+ newEvent.hasTarget = true
+ }
+
+ if ( file.debugLevel > 1 )
+ printt( "ADDING EVENT:", newEvent.category.alias )
+
+ file.chatterEvents.append( newEvent )
+}
+
+void function GruntChatter_AddToUsedEventTargets( entity ent )
+{
+ Assert( !GruntChatter_EventTargetAlreadyUsed( ent ), "Ent already added to event targets: " + ent )
+ AddToScriptManagedEntArray( file.usedEventTargetsArrayHandle, ent )
+}
+
+bool function GruntChatter_EventTargetAlreadyUsed( entity ent )
+{
+ return ScriptManagedEntArrayContains( file.usedEventTargetsArrayHandle, ent )
+}
+
+void function GruntChatter_PlayerThink( entity player )
+{
+ player.EndSignal( "OnDestroy" )
+
+ while ( 1 )
+ {
+ wait CHATTER_THINK_WAIT
+
+ // squad conversations don't play to dead players
+ if ( !IsAlive( player ) )
+ continue
+
+ if ( player.GetForcedDialogueOnly() )
+ continue
+
+ if ( !file.chatterEvents.len() )
+ continue
+
+ if ( !TimerCheck( "chatter_global" ) )
+ continue
+
+ // prune expired chatter events if necessary
+ GruntChatter_RemoveExpiredEventsFromQueue()
+
+ // process chatter events
+ array< ChatterEvent > currChatterEvents = file.chatterEvents
+
+ ChatterEvent eventToPlay
+
+ foreach ( chatterEvent in currChatterEvents )
+ {
+ // check timer
+ if ( !TimerCheck( chatterEvent.category.timer ) )
+ continue
+
+ // check priority vs currently selected
+ if ( chatterEvent.category.priority < eventToPlay.category.priority )
+ continue
+
+ // check ents are still legit
+ if ( chatterEvent.hasNPC )
+ {
+ if ( !GruntChatter_CanGruntChatterNow( chatterEvent.npc ) )
+ continue
+
+ if ( !GruntChatter_CanGruntChatterToPlayer( chatterEvent.npc, player ) )
+ continue
+ }
+
+ if ( chatterEvent.hasTarget && !GruntChatter_CanChatterEventUseEnemyTarget( chatterEvent ) )
+ continue
+
+ // check which event is more current
+ if ( eventToPlay.time > chatterEvent.time )
+ continue
+
+ eventToPlay = chatterEvent
+ }
+
+ if ( eventToPlay.isValid )
+ {
+ string alias = eventToPlay.category.alias
+ string timer = eventToPlay.category.timer
+
+ entity grunt = eventToPlay.npc
+ // if the event didn't include a grunt, use the closest grunt as the source
+ if ( !IsValid( grunt ) )
+ {
+ // only human grunts should talk
+ array<entity> nearbyGrunts = GetNearbyEnemyHumanGrunts( player.GetOrigin(), player.GetTeam() )
+
+ if ( !nearbyGrunts.len() )
+ {
+ if ( file.debugLevel > 0 )
+ printt( "GRUNT CHATTER: can't play chatter event because nobody is close enough:", alias )
+
+ continue
+ }
+
+ nearbyGrunts = ArrayClosest( nearbyGrunts, player.GetOrigin() )
+ grunt = nearbyGrunts[0]
+ }
+
+ Assert( IsAlive( grunt ), "Grunt chatter error: need a grunt to talk" )
+
+ if ( file.debugLevel > 0 )
+ printt( "GRUNT CHATTER:", alias )
+
+ if ( eventToPlay.category.trackEventTarget )
+ GruntChatter_AddToUsedEventTargets( eventToPlay.target )
+
+ if ( eventToPlay.category.resetTargetKillChain )
+ GruntChatter_ResetPilotKillChain( eventToPlay.target )
+
+ PlaySquadConversationToAll( alias, grunt )
+ ChatterTimerReset( eventToPlay )
+
+ // throw away all the old chatter events now that we processed one
+ GruntChatter_FlushEventQueue()
+ }
+ }
+}
+
+void function GruntChatter_FlushEventQueue()
+{
+ file.chatterEvents = []
+}
+
+void function GruntChatter_RemoveExpiredEventsFromQueue()
+{
+ array< ChatterEvent > recentEvents = []
+ foreach ( event in file.chatterEvents )
+ {
+ if ( Time() - event.time >= CHATTER_EVENT_EXPIRE_TIME )
+ {
+ if ( file.debugLevel > 1 )
+ printt( "expired event:", event.category.alias, "time:", Time() - event.time )
+
+ continue
+ }
+
+ recentEvents.append( event )
+ }
+
+ file.chatterEvents = recentEvents
+}
+
+void function ChatterTimerReset( ChatterEvent event )
+{
+ TimerReset( "chatter_global" )
+ TimerReset( event.category.timer )
+
+ if ( event.category.secondaryTimer != "" )
+ TimerReset( event.category.secondaryTimer )
+}
+
+
+// ==== combat state tracking ====
+void function GruntChatter_TrackGruntCombatStateVsPlayer( entity player )
+{
+ player.EndSignal( "OnDestroy" )
+
+ while ( 1 )
+ {
+ wait 1.0
+
+ if ( !IsAlive( player ) )
+ continue
+
+ int currState = GruntChatter_GetGruntCombatStateVsPlayer( player )
+
+ if ( currState == svGlobalSP.gruntCombatState )
+ continue
+
+ if ( file.debugLevel > 1 )
+ printt( "combat state change:", currState )
+
+ thread GruntChatter_TryPlayerPilotCombatStateChange( player, currState, svGlobalSP.gruntCombatState )
+
+ svGlobalSP.gruntCombatState = currState
+ }
+}
+
+int function GruntChatter_GetGruntCombatStateVsPlayer( entity player )
+{
+ array<entity> enemies = GetNPCArrayEx( "npc_soldier", TEAM_ANY, player.GetTeam(), Vector( 0, 0, 0 ), -1 )
+ ArrayRemoveDead( enemies )
+
+ int currState = eGruntCombatState.IDLE
+
+ foreach ( npc in enemies )
+ {
+ if ( !IsAlive( npc ) )
+ continue
+
+ if ( npc.GetNPCState() == "alert" && currState != eGruntCombatState.COMBAT )
+ currState = eGruntCombatState.ALERT
+ else if ( npc.GetNPCState() == "combat" && npc.GetEnemy() == player )
+ return eGruntCombatState.COMBAT
+ }
+
+ return currState
+}
+
+
+// ==== player event handling ====
+// not currently used - I can't make it work well enough in script. Maybe code next game.
+void function GruntChatter_DetectPlayerPilotUnsuspecting( entity player )
+{
+ player.EndSignal( "OnDestroy" )
+
+ bool resetUnsuspectingTime = true
+ float unsuspectingTime = -1
+ array<entity> nearbyGrunts
+
+ while ( 1 )
+ {
+ if ( resetUnsuspectingTime )
+ {
+ if ( Time() - unsuspectingTime >= CHATTER_UNSUSPECTING_PILOT_STATETIME_MIN )
+ if ( file.debugLevel > 2 )
+ printt( "========== RESET UNSUSPECTING!" )
+
+ unsuspectingTime = Time()
+ }
+
+ wait 1.0
+
+ if ( !IsAlive( player ) )
+ continue
+
+ if ( !IsPilot( player ) )
+ continue
+
+ if ( Length( player.GetVelocity() ) > CHATTER_UNSUSPECTING_PILOT_MAX_SPEED )
+ continue
+
+ array<entity> validGrunts
+
+ nearbyGrunts = GetNearbyEnemyHumanGrunts( player.GetOrigin(), player.GetTeam(), CHATTER_UNSUSPECTING_PILOT_TARGET_DIST_MAX )
+ if ( !nearbyGrunts.len() )
+ continue
+
+ foreach ( grunt in nearbyGrunts )
+ {
+ if ( grunt.GetEnemy() != player )
+ continue
+
+ // don't care about facing direction, just if he can trace to the player
+ if ( !GruntChatter_CanGruntTraceToLocation( grunt, player.EyePosition() ) )
+ continue
+
+ if ( !GruntChatter_IsTargetFacingAway( grunt, player, CHATTER_UNSUSPECTING_PILOT_TARGET_MIN_DOT_REAR ) )
+ continue
+
+ validGrunts.append( grunt )
+ }
+
+ if ( !validGrunts.len() )
+ continue
+
+ resetUnsuspectingTime = false
+
+ if ( file.debugLevel > 2 )
+ printt( "========== PLAYER IS UNSUSPECTING!" )
+
+ if ( unsuspectingTime < Time() && Time() - unsuspectingTime < CHATTER_UNSUSPECTING_PILOT_STATETIME_MIN )
+ continue
+
+ if ( !TimerCheck( "chatter_pilot_target_unsuspecting" ) )
+ {
+ if ( file.debugLevel > 2 )
+ printt( "waiting for UNSUSPECTING chatter timer...")
+
+ continue
+ }
+
+ entity closestGrunt = GetClosest( validGrunts, player.GetOrigin() )
+ GruntChatter_AddEvent( "gruntchatter_pilot_target_unsuspecting", closestGrunt, player )
+
+ resetUnsuspectingTime = true
+ }
+}
+
+
+// ==== grunt event handling ====
+void function GruntChatter_GruntSignalWait( entity grunt )
+{
+ grunt.EndSignal( "OnDeath" )
+ grunt.EndSignal( "OnDestroy" )
+
+ while ( 1 )
+ {
+ thread GruntChatter_InterruptSignal( grunt )
+ table result = WaitSignal( grunt, "OnFoundEnemy", "OnSeeEnemy", "OnLostEnemy", "GruntChatter_Interrupt" )
+
+ string signal = expect string( result.signal )
+
+ switch( signal )
+ {
+ // Sees target for the first time, or switches back to a target
+ case "OnFoundEnemy":
+ entity enemy = expect entity( result.value )
+ GruntChatter_TryOnFoundEnemy( grunt, enemy )
+ break
+
+ // Sees active target ent again
+ case "OnSeeEnemy":
+ entity enemy = expect entity( result.activator )
+ GruntChatter_TryPlayerPilotSpotted( grunt, enemy, signal )
+ break
+
+ // can no longer see active target ent
+ case "OnLostEnemy":
+ entity lostEnemy = expect entity( result.activator )
+ GruntChatter_TryPilotLost( grunt, lostEnemy )
+
+ // Grunt will send OnLost and OnFound at the same time if switching targets
+ entity newEnemy = grunt.GetEnemy()
+ if ( IsAlive( newEnemy ) )
+ GruntChatter_TryOnFoundEnemy( grunt, newEnemy )
+ break
+
+ case "GruntChatter_Interrupt":
+ GruntChatter_CheckGruntForEvents( grunt )
+ break
+ }
+ }
+}
+
+void function GruntChatter_TryOnFoundEnemy( entity grunt, entity enemy )
+{
+ GruntChatter_TryPlayerPilotSpotted( grunt, enemy, "OnFoundEnemy" )
+ GruntChatter_TryEnemySpotted( grunt, enemy )
+}
+
+void function GruntChatter_InterruptSignal( entity grunt )
+{
+ grunt.EndSignal( "OnDeath" )
+ grunt.EndSignal( "OnDestroy" )
+
+ grunt.EndSignal( "OnFoundEnemy" )
+ grunt.EndSignal( "OnSeeEnemy" )
+ grunt.EndSignal( "OnLostEnemy" )
+
+ wait CHATTER_SIGNAL_INTERRUPT_WAIT
+ grunt.Signal( "GruntChatter_Interrupt" )
+}
+
+// tries to send all valid events, lets the priority system handle which one should play
+void function GruntChatter_CheckGruntForEvents( entity grunt )
+{
+ GruntChatter_TryFriendlyPassingNearby( grunt )
+
+ // everything below this cares about having a living target
+ entity target = grunt.GetEnemy()
+ if ( !IsAlive( target ) )
+ return
+
+ GruntChatter_HACK_TryPilotTargetOutOfSight( grunt, target )
+ GruntChatter_TrySuppressingPilotTarget( grunt, target )
+ GruntChatter_TryMissingFastTarget( grunt, target )
+ GruntChatter_TryPilotLowHealth( grunt, target )
+ GruntChatter_TryEngagingNonPilotTarget( grunt, target )
+}
+
+// HACK fakey pilot lost if player out of sight for a while
+void function GruntChatter_HACK_TryPilotTargetOutOfSight( entity grunt, entity target )
+{
+ entity gruntEnemy = grunt.GetEnemy()
+
+ if ( !IsAlive( gruntEnemy ) )
+ return
+
+ if ( !IsPilot( gruntEnemy ) )
+ return
+
+ if ( grunt.GetNPCState() != "combat" )
+ return
+
+ if ( grunt.GetEnemyLastTimeSeen() == 0 )
+ return
+
+ if ( Time() - grunt.GetEnemyLastTimeSeen() < CHATTER_GRUNT_ENEMY_OUT_OF_SIGHT_TIME )
+ return
+
+ //if ( file.debugLevel > 1 )
+ // printt( "FAKEY LOST TARGET" )
+
+ if ( !TimerCheck( "chatter_pilot_lost" ) )
+ return
+
+ GruntChatter_TryPilotLost( grunt, gruntEnemy )
+}
+
+void function GruntChatter_TryPlayerPilotCombatStateChange( entity player, int currState, int prevState )
+{
+ // these lines are mostly written as if the state changes are happening during combat vs a Pilot
+ if ( !IsPilot( player ) )
+ return
+
+ player.Signal( "GruntChatter_CombatStateChangeThread" )
+ player.EndSignal( "GruntChatter_CombatStateChangeThread" )
+ player.EndSignal( "OnDeath" )
+
+ wait CHATTER_PLAYER_COMBAT_STATE_CHANGE_DEBOUNCE
+
+ string alias = ""
+ switch ( currState )
+ {
+ case eGruntCombatState.ALERT:
+ alias = "gruntchatter_statechange_idle2alert"
+ if ( prevState == eGruntCombatState.COMBAT )
+ alias = "gruntchatter_statechange_combat2alert"
+ break
+
+ case eGruntCombatState.COMBAT:
+ alias = "gruntchatter_statechange_idle2combat"
+ if ( prevState == eGruntCombatState.ALERT )
+ alias = "gruntchatter_statechange_alert2combat"
+ break
+ }
+
+ if ( alias == "" )
+ return
+
+ GruntChatter_AddEvent( alias )
+}
+
+void function GruntChatter_TryPilotLost( entity grunt, entity enemy )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ if ( !IsAlive( enemy ) || !IsPilot( enemy ) )
+ return
+
+ if ( !TimerCheck( "chatter_pilot_lost" ) )
+ return
+
+ // if anyone near you can see the enemy, don't say we lost the target
+ if ( CanNearbyGruntTeammatesSeeEnemy( grunt, enemy, CHATTER_PILOT_LOST_NEARBY_TEAMMATE_DIST ) )
+ return
+
+ // if a nearby friendly grunt is close to the enemy don't chatter about losing sight of the enemy
+ if ( GruntChatter_IsFriendlyGruntCloseToLocation( grunt.GetTeam(), enemy.GetOrigin(), CHATTER_PLAYER_CLOSE_MIN_DIST ) )
+ return
+
+ string alias = "gruntchatter_pilot_lost"
+ array<entity> nearbyGrunts = GetNearbyFriendlyGrunts( grunt.GetOrigin(), grunt.GetTeam(), CHATTER_PILOT_LOST_NEARBY_TEAMMATE_DIST )
+ if ( nearbyGrunts.len() >= 2 && RandomInt( 100 ) < 40 )
+ alias = "gruntchatter_pilot_lost_neg"
+
+ GruntChatter_AddEvent( alias, grunt )
+}
+
+void function GruntChatter_TryPlayerPilotSpotted( entity grunt, entity player, string resultSignal )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ if ( !IsAlive( player ) || !player.IsPlayer() || !IsPilot( player ) )
+ return
+
+ if ( TimerCheck ( "chatter_pilot_spotted" ) )
+ {
+ string spottedAlias = "gruntchatter_pilot_spotted"
+
+ if ( resultSignal == "OnFoundEnemy" )
+ {
+ if ( svGlobalSP.gruntCombatState != eGruntCombatState.COMBAT )
+ {
+ spottedAlias = "gruntchatter_pilot_first_sighting"
+ }
+ }
+ else
+ {
+ float distToPilot = Distance( grunt.GetOrigin(), player.GetOrigin() )
+ bool canSeePilot = grunt.CanSee( player )
+ bool pilotIsMoving = Length( player.GetVelocity() ) >= CHATTER_PILOT_SPOTTED_MID_DIST_MOVING_MIN_SPEED
+
+ if ( canSeePilot )
+ {
+ if ( distToPilot <= CHATTER_PILOT_SPOTTED_CLOSE_DIST )
+ {
+ spottedAlias = "gruntchatter_pilot_spotted_close_range"
+ }
+ else if ( canSeePilot && distToPilot > CHATTER_PILOT_SPOTTED_CLOSE_DIST && distToPilot <= CHATTER_PILOT_SPOTTED_MID_DIST )
+ {
+ spottedAlias = "gruntchatter_pilot_spotted_mid_range"
+ if ( pilotIsMoving )
+ spottedAlias = "gruntchatter_pilot_spotted_mid_range_moving"
+ }
+
+ if ( TimerCheck( "chatter_pilot_spotted_specific_range" ) && RandomInt( 100 ) < 40 )
+ {
+ table<string, float> rangeDists
+ rangeDists["chatter_pilot_spotted_specific_range_20"] <- CHATTER_PILOT_SPOTTED_RANGE_DIST_20
+ rangeDists["chatter_pilot_spotted_specific_range_25"] <- CHATTER_PILOT_SPOTTED_RANGE_DIST_25
+ rangeDists["chatter_pilot_spotted_specific_range_30"] <- CHATTER_PILOT_SPOTTED_RANGE_DIST_30
+ rangeDists["chatter_pilot_spotted_specific_range_35"] <- CHATTER_PILOT_SPOTTED_RANGE_DIST_35
+
+ if ( distToPilot >= CHATTER_PILOT_SPOTTED_RANGE_DIST_MIN && distToPilot <= CHATTER_PILOT_SPOTTED_RANGE_DIST_MAX )
+ {
+ string closestAlias
+ float closestDist
+ foreach ( rangeAlias, rangeDist in rangeDists )
+ {
+ float thisDist = fabs( distToPilot - rangeDist )
+ if ( closestAlias == "" || thisDist < closestDist )
+ {
+ closestAlias = rangeAlias
+ closestDist = thisDist
+ }
+ }
+
+ spottedAlias = closestAlias
+ }
+ }
+ }
+ }
+
+ GruntChatter_AddEvent( spottedAlias, grunt )
+ }
+
+ if ( TimerCheck ( "chatter_pilot_spotted_abovebelow" ) )
+ {
+ bool isEnemyAbove = GruntChatter_IsEnemyAbove( grunt, player )
+ bool isEnemyBelow = GruntChatter_IsEnemyBelow( grunt, player )
+
+ if ( isEnemyAbove )
+ GruntChatter_AddEvent( "gruntchatter_pilot_spotted_above", grunt )
+ else if ( isEnemyBelow )
+ GruntChatter_AddEvent( "gruntchatter_pilot_spotted_below", grunt )
+ }
+}
+
+void function GruntChatter_TryEnemySpotted( entity grunt, entity spottedEnemy )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ if ( !IsAlive( spottedEnemy ) )
+ return
+
+ if ( spottedEnemy.GetTeam() == grunt.GetTeam() )
+ return
+
+ string alias = ""
+ float distToSpottedEnemy = Distance( grunt.GetOrigin(), spottedEnemy.GetOrigin() )
+
+ // TODO move to data files
+ if ( IsGrunt( spottedEnemy ) && TimerCheck( "chatter_enemy_grunt_spotted" ) && distToSpottedEnemy <= CHATTER_ENEMY_GRUNT_SPOTTED_DIST )
+ {
+ alias = "gruntchatter_enemy_grunt_spotted"
+ }
+ else if ( spottedEnemy.IsTitan() && TimerCheck( "chatter_enemy_titan_spotted" ) && distToSpottedEnemy <= CHATTER_ENEMY_TITAN_SPOTTED_DIST )
+ {
+ alias = "gruntchatter_enemy_titan_spotted"
+ if ( distToSpottedEnemy <= CHATTER_ENEMY_TITAN_SPOTTED_DIST_CLOSE )
+ alias = "gruntchatter_enemy_titan_spotted_close"
+ }
+ else if ( IsSpectre( spottedEnemy ) && TimerCheck( "chatter_enemy_spectre_spotted" ) && distToSpottedEnemy <= CHATTER_ENEMY_SPECTRE_SPOTTED_DIST )
+ {
+ alias = "gruntchatter_enemy_spectre_spotted"
+ if ( distToSpottedEnemy <= CHATTER_ENEMY_SPECTRE_SPOTTED_DIST_CLOSE )
+ alias = "gruntchatter_enemy_spectre_spotted_close"
+ }
+ else if ( IsTick( spottedEnemy ) && TimerCheck( "chatter_enemy_tick_spotted" ) && distToSpottedEnemy <= CHATTER_ENEMY_TICK_SPOTTED_DIST )
+ {
+ alias = "gruntchatter_enemy_tick_spotted"
+ }
+ else if ( IsPilotDecoy( spottedEnemy ) && TimerCheck( "chatter_enemy_pilot_decoy_spotted" ) && distToSpottedEnemy <= CHATTER_PILOT_DECOY_SPOTTED_DIST_MAX )
+ {
+ alias = "gruntchatter_enemy_pilot_decoy_spotted"
+ }
+
+ if ( alias == "" )
+ return
+
+ GruntChatter_AddEvent( alias, grunt, spottedEnemy )
+}
+
+void function GruntChatter_TryEngagingNonPilotTarget( entity grunt, entity target )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ if ( !IsAlive( target ) )
+ return
+
+ string alias = ""
+
+ if ( IsGrunt( target ) && TimerCheck( "chatter_engaging_grunt" ) )
+ {
+ alias = "gruntchatter_engaging_grunt"
+ }
+ else if ( IsSpectre( target ) && TimerCheck( "chatter_engaging_spectre" ) )
+ {
+ alias = "gruntchatter_engaging_spectre"
+ if ( IsValid( target.GetBossPlayer() ) )
+ alias = "gruntchatter_engaging_hacked_spectre"
+ }
+ else if ( IsProwler( target ) && TimerCheck( "chatter_engaging_prowler" ) )
+ {
+ alias = "gruntchatter_engaging_prowler"
+ }
+ else if ( IsStalker( target ) && TimerCheck( "chatter_engaging_stalker" ) )
+ {
+ alias = "gruntchatter_engaging_stalker"
+ }
+
+ if ( alias == "" )
+ return
+
+ GruntChatter_AddEvent( alias, grunt, target )
+}
+
+void function GruntChatter_TryCloakedPilotSpotted( entity grunt, entity pilot )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ if ( !IsAlive( pilot ) )
+ return
+
+ if ( !IsCloaked( pilot ) )
+ return
+
+ // note: CanSee doesn't work when player is cloaked (as expected...)
+ if ( !GruntChatter_CanGruntTraceToLocation( grunt, pilot.EyePosition() ) )
+ return
+
+ if ( GruntChatter_IsTargetFacingAway( pilot, grunt, CHATTER_SEE_CLOAKED_PILOT_MIN_DOT_REAR ) )
+ return
+
+ GruntChatter_AddEvent( "gruntchatter_pilot_spotted_cloaked", grunt )
+}
+
+void function GruntChatter_TryPersonalShieldDamaged( entity shieldOwner )
+{
+ GruntChatter_AddEvent( "gruntchatter_personal_shield_damaged", shieldOwner )
+}
+
+void function GruntChatter_TryFriendlyEquipmentDeployed( entity deployer, string equipmentClassName )
+{
+ string alias = ""
+ string timerAlias = ""
+
+ // TODO move to data files
+ switch ( equipmentClassName )
+ {
+ case "npc_drone":
+ alias = "gruntchatter_friendly_drone_deployed"
+ timerAlias = "chatter_friendly_drone_deployed"
+ break
+
+ case "mp_weapon_frag_drone":
+ alias = "gruntchatter_friendly_tick_deployed"
+ timerAlias = "chatter_friendly_tick_deployed"
+ break
+ }
+
+ if ( alias == "" )
+ return
+
+ if ( !TimerCheck( timerAlias ) )
+ return
+
+ entity closestGrunt = GruntChatter_FindClosestFriendlyHumanGrunt_LOS( deployer.GetOrigin(), deployer.GetTeam(), CHATTER_FRIENDLY_EQUIPMENT_DEPLOYED_NEARBY_DIST )
+ if ( !closestGrunt )
+ return
+
+ GruntChatter_AddEvent( alias, closestGrunt )
+}
+
+void function GruntChatter_TryDisplacingFromDangerousArea( entity displacingGrunt )
+{
+ string dangerousAreaWeaponName = displacingGrunt.GetDangerousAreaWeapon()
+ GruntChatter_TryDangerousAreaWeapon( displacingGrunt, dangerousAreaWeaponName )
+}
+
+void function GruntChatter_TryDangerousAreaWeapon( entity grunt, string dangerousAreaWeaponName )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ string alias
+ string timerAlias
+
+ // TODO move to data files
+ switch ( dangerousAreaWeaponName )
+ {
+ case "mp_weapon_frag_grenade": //Since GruntChatter_TryDangerousAreaWeapon() is called from both CodeDialogue_DangerousAreaDisplace() and GruntChatter_OnGruntDamaged() this has bugs; a grunt who was not in the dangerous area created but took damage from the frag grenade will say VO like "Incoming Frag!! Take cover!". Not worth fixing this late in.
+ alias = "gruntchatter_dangerous_area_frag"
+ timerAlias = "chatter_dangerous_area_frag"
+ break
+
+ case "mp_weapon_grenade_emp": //This is triggered from GruntChatter_OnGruntDamaged(), since arc grenades don't create a dangerousarea
+ alias = "gruntchatter_dangerous_area_arc_grenade"
+ timerAlias = "chatter_dangerous_area_arc_grenade"
+ break
+
+ case "mp_weapon_thermite_grenade":
+ alias = "gruntchatter_dangerous_area_thermite"
+ timerAlias = "chatter_dangerous_area_thermite"
+ break
+
+ case "mp_weapon_grenade_gravity":
+ alias = "gruntchatter_dangerous_area_grav_grenade"
+ timerAlias = "chatter_dangerous_area_grav_grenade"
+ break
+
+ case "mp_weapon_grenade_electric_smoke":
+ alias = "gruntchatter_dangerous_area_esmoke"
+ timerAlias = "chatter_dangerous_area_esmoke"
+ break
+ }
+
+ if ( alias == "" )
+ return
+
+ if ( !TimerCheck ( timerAlias ) )
+ return
+
+ // all grunts in the area will try to call it out, in case this guy dies
+ array<entity> nearbyGrunts = GetNearbyFriendlyGrunts( grunt.GetOrigin(), grunt.GetTeam(), CHATTER_DANGEROUS_AREA_NEARBY_RANGE )
+ foreach ( nearbyGrunt in nearbyGrunts )
+ GruntChatter_AddEvent( alias, nearbyGrunt )
+}
+
+void function GruntChatter_TryEnemyTimeShifted( entity timeShiftedEnemy )
+{
+ if ( !IsAlive( timeShiftedEnemy ) )
+ return
+
+ if ( !TimerCheck( "chatter_enemy_time_shifted" ) )
+ return
+
+ entity closestGrunt = GruntChatter_FindClosestEnemyHumanGrunt_LOS( timeShiftedEnemy.GetOrigin(), timeShiftedEnemy.GetTeam(), CHATTER_ENEMY_TIME_SHIFT_NEARBY_DIST )
+ if ( !closestGrunt )
+ return
+
+ GruntChatter_AddEvent( "gruntchatter_enemy_time_shifted", closestGrunt )
+}
+
+void function GruntChatter_OnGruntDamaged( entity grunt, var damageInfo )
+{
+ if ( !IsValid( grunt ) )
+ return
+
+ string damageWeaponName
+ int damageSourceID = DamageInfo_GetDamageSourceIdentifier( damageInfo )
+ table dmgSources = expect table( getconsttable().eDamageSourceId )
+ foreach ( name, id in dmgSources )
+ {
+ if ( id == damageSourceID )
+ {
+ damageWeaponName = expect string( name )
+ break
+ }
+ }
+
+ if ( damageWeaponName != "" )
+ GruntChatter_TryDangerousAreaWeapon( grunt, damageWeaponName )
+}
+
+void function GruntChatter_OnPlayerOrNPCKilled( entity deadGuy, entity attacker, var damageInfo )
+{
+ if ( !IsValid( deadGuy ) )
+ return
+
+ if ( deadGuy.GetTeam() == TEAM_IMC )
+ {
+ GruntChatter_TryEnemyPlayerPilot_Multikill( deadGuy, damageInfo )
+ GruntChatter_TryEnemyPlayerPilot_MobilityKill( deadGuy, damageInfo )
+ GruntChatter_TryFriendlyDown( deadGuy )
+ GruntChatter_TrySquadDepleted( deadGuy )
+ }
+ else
+ {
+ GruntChatter_TryEnemyDown( deadGuy )
+ }
+}
+
+void function GruntChatter_OnPilotDecoyKilled( entity decoy, var damageInfo )
+{
+ GruntChatter_TryEnemyDown( decoy )
+}
+
+void function GruntChatter_TryEnemyPlayerPilot_Multikill( entity deadGuy, var damageInfo )
+{
+ if ( !TimerCheck( "chatter_enemy_pilot_multikill" ) )
+ return
+
+ // don't worry about larger targets
+ if ( !IsHumanSized( deadGuy ) )
+ return
+
+ int customDamageType = DamageInfo_GetCustomDamageType( damageInfo )
+
+ // explosive kills don't count for pilot multikills
+ if ( customDamageType & DF_EXPLOSION )
+ return
+
+ entity attacker = DamageInfo_GetAttacker( damageInfo )
+ if ( !IsPilot( attacker ) )
+ return
+
+ // -- multikills --
+ if ( !GruntChatter_IsKillChainStillActive( attacker ) )
+ GruntChatter_ResetPilotKillChain( attacker )
+
+ GruntChatter_UpdatePilotKillChain( attacker )
+
+ if ( GruntChatter_GetPilotKillChain( attacker ) < CHATTER_PILOT_MULTIKILL_MIN_KILLS )
+ return
+
+ entity closestGrunt = GruntChatter_FindClosestFriendlyHumanGrunt_LOS( deadGuy.GetOrigin(), deadGuy.GetTeam(), CHATTER_FRIENDLY_GRUNT_DOWN_DIST_MAX )
+ if ( !closestGrunt )
+ return
+
+ GruntChatter_AddEvent( "gruntchatter_enemy_pilot_multikill", closestGrunt, attacker )
+}
+
+void function GruntChatter_TryEnemyPlayerPilot_MobilityKill( entity deadGuy, var damageInfo )
+{
+ if ( !TimerCheck( "chatter_enemy_pilot_mobility_kill" ) )
+ return
+
+ // don't worry about larger targets
+ if ( !IsHumanSized( deadGuy ) )
+ return
+
+ entity attacker = DamageInfo_GetAttacker( damageInfo )
+ if ( !IsPilot( attacker ) )
+ return
+
+ if ( attacker.IsOnGround() )
+ return
+
+ float targetSpeed = Length( attacker.GetVelocity() )
+ if ( !attacker.IsWallRunning() && targetSpeed < CHATTER_MISS_FAST_TARGET_MIN_SPEED )
+ return
+
+ entity closestGrunt = GruntChatter_FindClosestFriendlyHumanGrunt_LOS( deadGuy.GetOrigin(), deadGuy.GetTeam(), CHATTER_FRIENDLY_GRUNT_DOWN_DIST_MAX )
+ if ( !closestGrunt )
+ return
+
+ GruntChatter_AddEvent( "gruntchatter_enemy_pilot_mobility_kill", closestGrunt, attacker )
+}
+
+void function GruntChatter_TryFriendlyDown( entity deadGuy )
+{
+ string alias = ""
+ float searchRange = -1.0
+
+ if ( IsGrunt( deadGuy ) && TimerCheck( "chatter_friendly_grunt_down" ) )
+ {
+ alias = "gruntchatter_friendly_grunt_down"
+ if ( svGlobalSP.gruntCombatState == eGruntCombatState.IDLE )
+ alias = "gruntchatter_friendly_grunt_down_notarget"
+
+ searchRange = CHATTER_FRIENDLY_GRUNT_DOWN_DIST_MAX
+ }
+ else if ( deadGuy.IsTitan() && TimerCheck( "chatter_friendly_titan_down" ) )
+ {
+ alias = "gruntchatter_friendly_titan_down"
+ searchRange = CHATTER_FRIENDLY_TITAN_DOWN_DIST_MAX
+ }
+
+ if ( alias == "" )
+ return
+
+ entity closestGrunt = GruntChatter_FindClosestFriendlyHumanGrunt_LOS( deadGuy.GetOrigin(), deadGuy.GetTeam(), searchRange )
+ if ( !closestGrunt )
+ return
+
+ GruntChatter_AddEvent( alias, closestGrunt )
+}
+
+void function GruntChatter_TrySquadDepleted( entity deadGuy )
+{
+ if ( !TimerCheck( "chatter_squad_depleted" ) )
+ return
+
+ if ( !IsGrunt( deadGuy ) )
+ return
+
+ string deadGuySquadName = GetSquadName( deadGuy )
+ if ( deadGuySquadName == "" )
+ return
+
+ array<entity> squad = GetNPCArrayBySquad( deadGuySquadName )
+ entity lastSquadMember
+ if ( squad.len() == 1 )
+ lastSquadMember = squad[0]
+
+ if ( !GruntChatter_CanGruntChatterNow( lastSquadMember ) )
+ return
+
+ // if state is idle, don't freak out about being alone
+ 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
+
+ GruntChatter_AddEvent( "gruntchatter_squad_depleted", lastSquadMember )
+}
+
+void function GruntChatter_TryEnemyDown( entity deadGuy )
+{
+ string alias = ""
+ float searchRange = -1.0
+
+ if ( IsPilot( deadGuy ) && TimerCheck( "chatter_enemy_pilot_down" ) )
+ {
+ alias = "gruntchatter_enemy_pilot_down"
+ searchRange = CHATTER_ENEMY_PILOT_DOWN_DIST_MAX
+ }
+ else if ( IsGrunt( deadGuy ) && TimerCheck( "chatter_enemy_grunt_down" ) )
+ {
+ alias = "gruntchatter_enemy_grunt_down"
+ searchRange = CHATTER_ENEMY_GRUNT_DOWN_DIST_MAX
+ }
+ else if ( deadGuy.IsTitan() && TimerCheck( "chatter_enemy_titan_down" ) )
+ {
+ alias = "gruntchatter_enemy_titan_down"
+ searchRange = CHATTER_ENEMY_TITAN_DOWN_DIST_MAX
+ }
+ else if ( IsSpectre( deadGuy ) && TimerCheck( "chatter_enemy_spectre_down" ) )
+ {
+ alias = "gruntchatter_enemy_spectre_down"
+ searchRange = CHATTER_ENEMY_SPECTRE_DOWN_DIST_MAX
+ }
+ else if ( IsPilotDecoy( deadGuy ) && TimerCheck( "chatter_enemy_pilot_decoy_revealed" ) )
+ {
+ alias = "gruntchatter_enemy_pilot_decoy_revealed"
+ searchRange = CHATTER_PILOT_DECOY_SPOTTED_DIST_MAX
+ }
+
+ if ( alias == "" )
+ return
+
+ entity closestGrunt = GruntChatter_FindClosestEnemyHumanGrunt_LOS( deadGuy.GetOrigin(), deadGuy.GetTeam(), searchRange )
+ if ( !closestGrunt )
+ return
+
+ // HACK- squad conversations don't play to dead players
+ if ( alias == "gruntchatter_enemy_pilot_down" )
+ {
+ HACK_GruntChatter_TryEnemyPilotDown( deadGuy, closestGrunt )
+ return
+ }
+
+ GruntChatter_AddEvent( alias, closestGrunt )
+}
+
+void function HACK_GruntChatter_TryEnemyPilotDown( entity deadGuy, entity closestGrunt )
+{
+ if ( !deadGuy.IsPlayer() )
+ return
+
+ if ( deadGuy.GetForcedDialogueOnly() )
+ return
+
+ TimerReset( "chatter_enemy_pilot_down" )
+
+ string rawAlias = "diag_imc_grunt1_bc_killenemypilot_01"
+ if ( CoinFlip() )
+ rawAlias = "diag_imc_grunt1_bc_killenemypilot_02"
+
+ EmitSoundOnEntity( closestGrunt, rawAlias )
+}
+
+void function GruntChatter_TryThrowingGrenade( entity grunt )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ entity enemy = grunt.GetEnemy()
+ if ( !IsAlive( enemy ) )
+ return
+
+ if ( !TimerCheck( "chatter_throwing_grenade" ) )
+ return
+
+ string alias = ""
+ // TODO move to data files
+ switch ( grunt.kv.grenadeWeaponName )
+ {
+ case "mp_weapon_frag_grenade":
+ alias = "gruntchatter_throwing_grenade_frag"
+ break
+
+ case "mp_weapon_grenade_electric_smoke":
+ alias = "gruntchatter_throwing_grenade_electric_smoke"
+ break
+
+ case "mp_weapon_thermite_grenade":
+ alias = "gruntchatter_throwing_grenade_thermite"
+ break
+ }
+
+ if ( alias == "" )
+ return
+
+ GruntChatter_AddEvent( alias, grunt )
+}
+
+// TODO move to data files
+void function GruntChatter_TryFriendlyPassingNearby( entity grunt )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ // these lines are written as if the grunts are in combat
+ if ( grunt.GetNPCState() != "combat" )
+ return
+
+ if ( TimerCheck( "chatter_nearby_friendly_titan" ) )
+ {
+ array<entity> nearbyTitans = GetNPCArrayEx( "npc_titan", grunt.GetTeam(), TEAM_ANY, grunt.GetOrigin(), CHATTER_NEARBY_TITAN_DIST )
+ entity nearbyTitan
+ foreach ( titan in nearbyTitans )
+ {
+ if ( !IsAlive( titan ) )
+ continue
+
+ if ( GetDoomedState( titan ) )
+ continue
+
+ if ( GruntChatter_EventTargetAlreadyUsed( titan ) )
+ continue
+
+ nearbyTitan = titan
+ break
+ }
+
+ if ( nearbyTitan )
+ GruntChatter_AddEvent( "gruntchatter_nearby_friendly_titan", grunt, nearbyTitan )
+ }
+
+ if ( TimerCheck( "chatter_nearby_friendly_reaper" ) )
+ {
+ array<entity> nearbyReapers = GetNPCArrayEx( "npc_super_spectre", grunt.GetTeam(), TEAM_ANY, grunt.GetOrigin(), CHATTER_NEARBY_REAPER_DIST )
+ foreach ( reaper in nearbyReapers )
+ {
+ if ( !IsAlive( reaper ) )
+ continue
+
+ if ( GetDoomedState( reaper ) )
+ continue
+
+ if ( GruntChatter_EventTargetAlreadyUsed( reaper ) )
+ continue
+
+ GruntChatter_AddEvent( "gruntchatter_nearby_friendly_reaper", grunt, reaper )
+ break
+ }
+ }
+
+ if ( TimerCheck( "chatter_nearby_friendly_spectre" ) )
+ {
+ array<entity> nearbySpectres = GetNPCArrayEx( "npc_spectre", grunt.GetTeam(), TEAM_ANY, grunt.GetOrigin(), CHATTER_NEARBY_SPECTRE_DIST )
+ if ( nearbySpectres.len() )
+ {
+ entity closestSpectre = GetClosest( nearbySpectres, grunt.GetOrigin() )
+ GruntChatter_AddEvent( "gruntchatter_nearby_friendly_spectre", grunt, closestSpectre )
+ }
+ }
+}
+
+void function GruntChatter_TryIncomingSpawn( entity inboundEnt, vector arrivalLocation )
+{
+ if ( !IsValid( inboundEnt ) )
+ return
+
+ string alias
+ string timer
+ float nearbyRange
+ entity closestGrunt
+
+ // TODO move to data files
+ if ( inboundEnt.GetTeam() == TEAM_IMC )
+ {
+ switch ( inboundEnt.GetClassName() )
+ {
+ case "npc_titan":
+ alias = "gruntchatter_incoming_friendly_titanfall"
+ timer = "chatter_incoming_friendly_titanfall"
+ nearbyRange = CHATTER_NEARBY_TITAN_DIST
+ break
+
+ case "npc_super_spectre":
+ alias = "gruntchatter_incoming_friendly_reaperfall"
+ timer = "chatter_incoming_friendly_reaperfall"
+ nearbyRange = CHATTER_NEARBY_REAPER_DIST
+ break
+ }
+
+ if ( alias == "" )
+ return
+
+ closestGrunt = GruntChatter_FindClosestFriendlyHumanGrunt_LOS( arrivalLocation, inboundEnt.GetTeam(), nearbyRange )
+ if ( !closestGrunt )
+ return
+ }
+ else if ( inboundEnt.GetTeam() == TEAM_MILITIA )
+ {
+ switch ( inboundEnt.GetClassName() )
+ {
+ case "npc_titan":
+ alias = "gruntchatter_incoming_enemy_titanfall"
+ timer = "chatter_incoming_enemy_titanfall"
+ nearbyRange = CHATTER_NEARBY_TITAN_DIST
+ break
+ }
+
+ if ( alias == "" )
+ return
+
+ closestGrunt = GruntChatter_FindClosestEnemyHumanGrunt_LOS( arrivalLocation, inboundEnt.GetTeam(), nearbyRange )
+ if ( !closestGrunt )
+ return
+ }
+
+ // NOTE- can't send the target for these events because the distance check to where the titanfall starts will fail
+ GruntChatter_AddEvent( alias, closestGrunt )
+}
+
+void function GruntChatter_TrySuppressingPilotTarget( entity grunt, entity target )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ if ( !IsAlive( target ) )
+ return
+
+ // this is mostly useful for players
+ if ( !target.IsPlayer() )
+ return
+
+ if ( !IsPilot( target ) )
+ return
+
+ if ( !TimerCheck( "chatter_suppressingLKP_start" ) )
+ return
+
+ string STR_lastSuppressionTime = expect string( grunt.kv.lastSuppressionTime ) // hacky
+ float lastSuppressionTime = STR_lastSuppressionTime.tofloat()
+ float validRecentWindow_suppression = Time() - CHATTER_SUPPRESSION_EXPIRE_TIME
+
+ if ( lastSuppressionTime < validRecentWindow_suppression )
+ return
+
+ GruntChatter_AddEvent( "gruntchatter_suppressingLKP_start", grunt )
+}
+
+void function GruntChatter_TryMissingFastTarget( entity grunt, entity target )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ if ( !IsAlive( target ) )
+ return
+
+ if ( !IsPilot( target ) )
+ return
+
+ if ( !TimerCheck( "chatter_missing_fast_target" ) )
+ return
+
+ float targetSpeed = Length( target.GetVelocity() )
+ if ( targetSpeed < CHATTER_MISS_FAST_TARGET_MIN_SPEED )
+ return
+
+ string STR_lastMissFastPlayerTime = expect string( grunt.kv.lastMissFastPlayerTime ) // hacky
+ float lastMissFastPlayerTime = STR_lastMissFastPlayerTime.tofloat()
+ float validRecentWindow_missFastTarget = Time() - CHATTER_MISS_FAST_TARGET_EXPIRE_TIME
+
+ if ( lastMissFastPlayerTime < validRecentWindow_missFastTarget )
+ return
+
+ GruntChatter_AddEvent( "gruntchatter_missing_fast_target", grunt )
+}
+
+void function GruntChatter_TryPilotLowHealth( entity grunt, entity target )
+{
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return
+
+ if ( !IsAlive( target ) )
+ return
+
+ if ( !IsPilot( target ) )
+ return
+
+ if ( !TimerCheck( "chatter_pilot_low_health" ) )
+ return
+
+ if ( target.GetHealth().tofloat() / target.GetMaxHealth().tofloat() > CHATTER_PILOT_LOW_HEALTH_FRAC )
+ return
+
+ if ( Distance( grunt.GetOrigin(), target.GetOrigin() ) > CHATTER_PILOT_LOW_HEALTH_RANGE )
+ return
+
+ GruntChatter_AddEvent( "gruntchatter_pilot_low_health", grunt )
+}
+
+void function GruntChatter_TryPlayerPilotReloading( entity player )
+{
+ if ( !IsAlive( player ) || !IsPilot( player ) )
+ return
+
+ if ( !TimerCheck( "chatter_target_reloading" ) )
+ return
+
+ entity closestGrunt = GruntChatter_FindClosestEnemyHumanGrunt_LOS( player.GetOrigin(), player.GetTeam(), CHATTER_PLAYER_RELOADING_RANGE )
+ if ( !closestGrunt )
+ return
+
+ GruntChatter_AddEvent( "gruntchatter_target_reloading", closestGrunt, player )
+}
+
+
+// ==== turret event handling ====
+void function GruntChatter_TurretSignalWait( entity turret )
+{
+ turret.EndSignal( "OnDeath" )
+ turret.EndSignal( "OnDestroy" )
+
+ while ( 1 )
+ {
+ table result = WaitSignal( turret, "OnFoundEnemy", "OnSeeEnemy" )
+
+ string signal = expect string( result.signal )
+
+ switch( signal )
+ {
+ case "OnFoundEnemy":
+ entity enemy = expect entity( result.value )
+ GruntChatter_TryFriendlyTurretFoundTarget( turret, enemy )
+ break
+
+ case "OnSeeEnemy":
+ entity enemy = expect entity( result.activator )
+ GruntChatter_TryFriendlyTurretFoundTarget( turret, enemy )
+ break
+
+ }
+ }
+}
+
+void function GruntChatter_TryFriendlyTurretFoundTarget( entity turret, entity enemy )
+{
+ if ( !IsAlive( turret ) || !IsAlive( enemy ) )
+ return
+
+ if ( !TimerCheck( "chatter_friendly_turret_found_target") )
+ return
+
+ entity closestGrunt = GruntChatter_FindClosestFriendlyHumanGrunt_LOS( turret.GetOrigin(), turret.GetTeam(), CHATTER_FRIENDLY_EQUIPMENT_DEPLOYED_NEARBY_DIST )
+ if ( !closestGrunt )
+ return
+
+ GruntChatter_AddEvent( "gruntchatter_friendly_turret_found_target", closestGrunt, enemy )
+}
+
+
+// ==== pilot kill chains ====
+// NOTE: don't technically require a pilot, but makes it easier to port to an MP environment
+void function GruntChatter_UpdatePilotKillChain( entity pilot )
+{
+ file.pilotKillChainCounter++
+ file.lastPilotKillTime = Time()
+}
+
+int function GruntChatter_GetPilotKillChain( entity pilot )
+{
+ return file.pilotKillChainCounter
+}
+
+bool function GruntChatter_IsKillChainStillActive( entity pilot )
+{
+ if ( file.lastPilotKillTime == -1 )
+ return true
+
+ return (Time() - file.lastPilotKillTime) < CHATTER_ENEMY_PILOT_MULTIKILL_EXPIRETIME
+}
+
+void function GruntChatter_ResetPilotKillChain( entity pilot )
+{
+ file.pilotKillChainCounter = 0
+}
+
+
+// ==== chatter util ====
+// won't return mechanicals like Specialists
+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
+}
+
+// won't return mechanicals like Specialists
+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
+
+ // we only care about this because the grunt conversation system wants it
+ if ( GetSquadName( grunt ) == "" )
+ return false
+
+ return true
+}
+
+bool function GruntChatter_IsGruntTypeEligibleForChatter( entity grunt )
+{
+ if ( !IsGrunt( grunt ) )
+ return false
+
+ // mechanical grunts don't chatter
+ if ( grunt.IsMechanical() )
+ return false
+
+ if ( grunt.GetTeam() != TEAM_IMC )
+ return false
+
+ return true
+}
+
+bool function GruntChatter_CanGruntChatterToPlayer( entity grunt, entity player )
+{
+ if ( DistanceSqr( grunt.GetOrigin(), player.GetOrigin() ) > MAX_VOICE_DIST_SQRD )
+ return false
+
+ return true
+}
+
+bool function GruntChatter_CanChatterEventUseEnemyTarget( ChatterEvent chatterEvent )
+{
+ entity grunt = chatterEvent.npc
+ entity target = chatterEvent.target
+ bool trackEventTarget = chatterEvent.category.trackEventTarget
+
+ if ( !chatterEvent.hasTarget )
+ return false
+
+ if ( !IsAlive( target ) )
+ return false
+
+ if ( trackEventTarget && GruntChatter_EventTargetAlreadyUsed( target ) )
+ return false
+
+ float distToEnemySqr = DistanceSqr( grunt.GetOrigin(), target.GetOrigin() )
+ if ( distToEnemySqr > MAX_VOICE_DIST_SQRD )
+ return false
+
+ return true
+}
+
+bool function CanNearbyGruntTeammatesSeeEnemy( entity grunt, entity enemy, float nearbyRange )
+{
+ if ( !IsAlive( enemy ) )
+ return false
+
+ array<entity> nearbyGrunts = GetNearbyFriendlyGrunts( enemy.GetOrigin(), grunt.GetTeam(), nearbyRange )
+
+ foreach ( grunt in nearbyGrunts )
+ {
+ if ( grunt.CanSee( enemy ) )
+ return true
+ }
+
+ return false
+}
+
+bool function GruntChatter_IsFriendlyGruntCloseToLocation( int team, vector location, float nearbyRange )
+{
+ array<entity> nearbyGrunts = GetNearbyFriendlyGrunts( location, team, nearbyRange )
+
+ if ( nearbyGrunts.len() )
+ return true
+
+ return false
+}
+
+bool function GruntChatter_IsTargetFacingAway( entity grunt, entity target, float minDotRear )
+{
+ if ( !IsAlive( grunt ) || !IsAlive( target ) )
+ return false
+
+ vector viewAng = target.GetAngles() // overall body angles better for this than viewvec
+ vector viewVec = AnglesToForward( viewAng )
+ vector vecRear = viewVec * -1
+ vector angRear = VectorToAngles( vecRear )
+
+ vector vecToTarget = Normalize( grunt.EyePosition() - target.EyePosition() )
+ float dot2Grunt_rear = DotProduct( vecToTarget, vecRear )
+
+ //printt( "REAR dot to enemy:", dot2Grunt_rear )
+
+ return dot2Grunt_rear >= minDotRear
+}
+
+bool function GruntChatter_IsEnemyAbove( entity grunt, entity enemy )
+{
+ // Pilots jumping over guys gives false positives
+ if ( IsPilot( enemy ) && !enemy.IsOnGround() )
+ return false
+
+ vector gOrg = grunt.GetOrigin()
+ vector eOrg = enemy.GetOrigin()
+
+ vector cylinderBottom = gOrg + < 0, 0, CHATTER_PILOT_SPOTTED_ABOVE_DIST_MIN >
+ vector cylinderTop = gOrg + < 0, 0, CHATTER_PILOT_SPOTTED_ABOVE_DIST_MAX >
+
+ bool isAbove = PointInCylinder( cylinderBottom, cylinderTop, CHATTER_PILOT_SPOTTED_ABOVE_RADIUS, eOrg )
+ return isAbove
+}
+
+bool function GruntChatter_IsEnemyBelow( entity grunt, entity enemy )
+{
+ vector gOrg = grunt.GetOrigin()
+ vector eOrg = enemy.GetOrigin()
+
+ vector cylinderBottom = gOrg - < 0, 0, CHATTER_PILOT_SPOTTED_BELOW_DIST_MAX >
+ vector cylinderTop = gOrg - < 0, 0, CHATTER_PILOT_SPOTTED_BELOW_DIST_MIN >
+
+ bool isBelow = PointInCylinder( cylinderBottom, cylinderTop, CHATTER_PILOT_SPOTTED_BELOW_RADIUS, eOrg )
+ return isBelow
+}
+
+void function GruntChatter_TryGruntFlankedByPlayer( entity grunt, int aiSurprisedReactionType )
+{
+ if ( !GruntChatter_CanGruntDoFlankingCallout( grunt ) )
+ return
+
+ entity surprisingEnemy = grunt.GetEnemy()
+ if ( !IsPilot( surprisingEnemy ) || !surprisingEnemy.IsPlayer() )
+ return
+
+ string alias
+ switch ( aiSurprisedReactionType )
+ {
+ case RSR_REAR_FLANK:
+ //printt( "REAR FLANK!")
+ alias = "gruntchatter_pilot_spotted_flank_rear"
+ break
+
+ case RSR_SIDE_FLANK:
+ //printt( " SIDE FLANK!" )
+ alias = "gruntchatter_pilot_spotted_flank_side"
+ break
+ }
+
+ if ( alias == "" )
+ return
+
+ GruntChatter_AddEvent( alias, grunt, surprisingEnemy )
+}
+
+bool function GruntChatter_CanGruntDoFlankingCallout( entity grunt )
+{
+ if ( !TimerCheck( "chatter_pilot_flanking" ) )
+ return false
+
+ if ( !GruntChatter_CanGruntChatterNow( grunt ) )
+ return false
+
+ return true
+}
+
+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
+}
+
+string function GetSquadName( entity grunt )
+{
+ string squadName = expect string( grunt.kv.squadname )
+ return squadName
+}
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_squad_spawn.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_squad_spawn.gnut
index 9dbdd699d..9dbdd699d 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_squad_spawn.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_squad_spawn.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_titan_npc_behavior.gnut b/Northstar.CustomServers/mod/scripts/vscripts/ai/_titan_npc_behavior.gnut
index 347cb6441..347cb6441 100644
--- a/Northstar.CustomServers/scripts/vscripts/ai/_titan_npc_behavior.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/ai/_titan_npc_behavior.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/burnmeter/_burnmeter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
index 8e1cb71ff..8e1cb71ff 100644
--- a/Northstar.CustomServers/scripts/vscripts/burnmeter/_burnmeter.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/class/CHardPointEntity.nut b/Northstar.CustomServers/mod/scripts/vscripts/class/CHardPointEntity.nut
index a340bc329..a340bc329 100644
--- a/Northstar.CustomServers/scripts/vscripts/class/CHardPointEntity.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/class/CHardPointEntity.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/class/cai_basenpc.nut b/Northstar.CustomServers/mod/scripts/vscripts/class/cai_basenpc.nut
index 631e01fc0..631e01fc0 100644
--- a/Northstar.CustomServers/scripts/vscripts/class/cai_basenpc.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/class/cai_basenpc.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/class/cbasecombatcharacter.nut b/Northstar.CustomServers/mod/scripts/vscripts/class/cbasecombatcharacter.nut
index 11018ceab..11018ceab 100644
--- a/Northstar.CustomServers/scripts/vscripts/class/cbasecombatcharacter.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/class/cbasecombatcharacter.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/class/cbaseentity.nut b/Northstar.CustomServers/mod/scripts/vscripts/class/cbaseentity.nut
index 08d2b2e17..08d2b2e17 100644
--- a/Northstar.CustomServers/scripts/vscripts/class/cbaseentity.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/class/cbaseentity.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/class/cplayer.nut b/Northstar.CustomServers/mod/scripts/vscripts/class/cplayer.nut
index b9f8f7eb8..b9f8f7eb8 100644
--- a/Northstar.CustomServers/scripts/vscripts/class/cplayer.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/class/cplayer.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/class/ctitansoul.nut b/Northstar.CustomServers/mod/scripts/vscripts/class/ctitansoul.nut
index 6f5ddb3e2..6f5ddb3e2 100644
--- a/Northstar.CustomServers/scripts/vscripts/class/ctitansoul.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/class/ctitansoul.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/conversation/_battle_chatter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_battle_chatter.gnut
index 961816c7c..961816c7c 100644
--- a/Northstar.CustomServers/scripts/vscripts/conversation/_battle_chatter.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_battle_chatter.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/conversation/_conversation_schedule.gnut b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_conversation_schedule.gnut
index 089d4b711..089d4b711 100644
--- a/Northstar.CustomServers/scripts/vscripts/conversation/_conversation_schedule.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_conversation_schedule.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/conversation/_faction_dialogue.gnut b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_faction_dialogue.gnut
index ccb5cd6eb..ccb5cd6eb 100644
--- a/Northstar.CustomServers/scripts/vscripts/conversation/_faction_dialogue.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_faction_dialogue.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/conversation/_grunt_chatter_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_grunt_chatter_mp.gnut
index b638e92bb..b638e92bb 100644
--- a/Northstar.CustomServers/scripts/vscripts/conversation/_grunt_chatter_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_grunt_chatter_mp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/conversation/_spectre_chatter_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_spectre_chatter_mp.gnut
index 2f9e0f844..2f9e0f844 100644
--- a/Northstar.CustomServers/scripts/vscripts/conversation/_spectre_chatter_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/conversation/_spectre_chatter_mp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/earn_meter/sv_earn_meter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter.gnut
index dda84976c..dda84976c 100644
--- a/Northstar.CustomServers/scripts/vscripts/earn_meter/sv_earn_meter.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut
index b41640ad4..b41640ad4 100644
--- a/Northstar.CustomServers/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter_mp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/evac/_evac.gnut b/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut
index ba473cae9..ba473cae9 100644
--- a/Northstar.CustomServers/scripts/vscripts/evac/_evac.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/faction_xp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/faction_xp.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/faction_xp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/faction_xp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_ai_frontline.gnut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_ai_frontline.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_ai_frontline.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_ai_frontline.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_ai_gamemodes.gnut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_ai_gamemodes.gnut
index cf7f7e150..cf7f7e150 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_ai_gamemodes.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_ai_gamemodes.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_capture_point.gnut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_capture_point.gnut
index e02157d14..e02157d14 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_capture_point.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_capture_point.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_featured_mode_settings.gnut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_featured_mode_settings.gnut
index 090814cb2..090814cb2 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_featured_mode_settings.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_featured_mode_settings.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_frontline.gnut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_frontline.gnut
index 7ece7dc16..7ece7dc16 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_frontline.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_frontline.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_aitdm.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_aitdm.nut
index a30944cf3..a30944cf3 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_aitdm.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_aitdm.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_at.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_at.nut
index b75ed51b6..b75ed51b6 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_at.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_at.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_coliseum.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_coliseum.nut
index b358cfe82..b1de4d4fb 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_coliseum.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_coliseum.nut
@@ -44,6 +44,9 @@ void function ShowColiseumIntroScreenThreaded()
void function GivePlayerColiseumLoadout( entity player )
{
+ if ( GetCurrentPlaylistVarInt( "coliseum_loadouts_enabled", 1 ) == 0 )
+ return
+
// create loadout struct
PilotLoadoutDef coliseumLoadout = clone GetActivePilotLoadout( player )
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_cp.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_cp.nut
index ddfe6ee6e..ddfe6ee6e 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_cp.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_cp.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ctf.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut
index 704f55d3b..704f55d3b 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ctf.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut
index b5f700e51..b5f700e51 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ffa.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ffa.nut
index 932f14b7d..932f14b7d 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ffa.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ffa.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_fra.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fra.nut
index 9d8f84b5c..9d8f84b5c 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_fra.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fra.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_lts.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_lts.nut
index 89f9c991d..89f9c991d 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_lts.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_lts.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_mfd.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_mfd.nut
index 6e8e9fa37..8d0545cba 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_mfd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_mfd.nut
@@ -154,7 +154,9 @@ void function MarkPlayers( entity imcMark, entity militiaMark )
// award points
entity livingMark = GetMarked( GetOtherTeam( deadMark.GetTeam() ) )
livingMark.SetPlayerGameStat( PGS_DEFENSE_SCORE, livingMark.GetPlayerGameStat( PGS_DEFENSE_SCORE ) + 1 )
- AddTeamScore( livingMark.GetTeam(), 1 )
+
+ // thread this so we don't kill our own thread
+ thread AddTeamScore( livingMark.GetTeam(), 1 )
}
void function UpdateMarksForKill( entity victim, entity attacker, var damageInfo )
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ps.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ps.nut
index 3a852f918..3a852f918 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ps.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ps.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_speedball.nut
index 4532fb972..4532fb972 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_speedball.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_speedball.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_tdm.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_tdm.nut
index 9e80b8635..9e80b8635 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_tdm.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_tdm.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ttdm.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ttdm.nut
index faf3e5cad..faf3e5cad 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_gamemode_ttdm.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ttdm.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_hardpoints.gnut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_hardpoints.gnut
index 0a32f133c..0a32f133c 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_hardpoints.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_hardpoints.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut
index b660e89ff..b660e89ff 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_riff_floor_is_lava.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/_spawnpoints.gnut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_spawnpoints.gnut
index e69de29bb..e69de29bb 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/_spawnpoints.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_spawnpoints.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes.gnut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/sh_gamemodes.gnut
index 9114fcadd..9114fcadd 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/sh_gamemodes.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes_custom.gnut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/sh_gamemodes_custom.gnut
index 51f8bf9e3..51f8bf9e3 100644
--- a/Northstar.CustomServers/scripts/vscripts/gamemodes/sh_gamemodes_custom.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/sh_gamemodes_custom.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/item_inventory/sv_item_inventory.gnut b/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut
index ff2a4c7cf..ff2a4c7cf 100644
--- a/Northstar.CustomServers/scripts/vscripts/item_inventory/sv_item_inventory.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/lobby/_lobby.gnut b/Northstar.CustomServers/mod/scripts/vscripts/lobby/_lobby.gnut
index fd877f8cf..fd877f8cf 100644
--- a/Northstar.CustomServers/scripts/vscripts/lobby/_lobby.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/lobby/_lobby.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/lobby/_private_lobby.gnut b/Northstar.CustomServers/mod/scripts/vscripts/lobby/_private_lobby.gnut
index 896ab207b..60daa4528 100644
--- a/Northstar.CustomServers/scripts/vscripts/lobby/_private_lobby.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/lobby/_private_lobby.gnut
@@ -11,7 +11,7 @@ struct {
void function PrivateLobby_Init()
{
print( "PrivateLobby_Init()" )
- ClearPlaylistVarOverrides()
+ //ClearPlaylistVarOverrides()
AddClientCommandCallback( "PrivateMatchLaunch", ClientCommandCallback_PrivateMatchLaunch )
AddClientCommandCallback( "PrivateMatchSetMode", ClientCommandCallback_PrivateMatchSetMode )
@@ -127,7 +127,8 @@ void function StartMatch()
RefreshPlayerTeams()
- SetPlaylistVarOverride( "return_to_private_lobby", "1" )
+ SetConVarBool( "ns_should_return_to_lobby", true ) // potentially temp?
+
// TEMP for now: start game
ServerCommand( "changelevel " + file.map )
}
@@ -164,13 +165,25 @@ void function RefreshPlayerTeams()
bool function ClientCommandCallback_PrivateMatchSetPlaylistVarOverride( entity player, array<string> args )
{
- // note: atm this doesn't actually check for the number of overrides, since there's no way to do this on server yet
- // need to expose this to script soon
-
if ( args.len() < 2 )
return true
+
+ bool found = false
+ foreach ( string category in GetPrivateMatchSettingCategories() )
+ {
+ foreach ( CustomMatchSettingContainer setting in GetPrivateMatchCustomSettingsForCategory( category ) )
+ {
+ if ( args[ 0 ] == setting.playlistVar )
+ {
+ found = true
+ break
+ }
+ }
+ }
- SetPlaylistVarOverride( args[0], args[1] )
+ if ( found )
+ SetPlaylistVarOverride( args[0], args[1] )
+
return true
}
diff --git a/Northstar.CustomServers/scripts/vscripts/lobby/sh_lobby.gnut b/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_lobby.gnut
index fda0e5fff..2c02ebdc2 100644
--- a/Northstar.CustomServers/scripts/vscripts/lobby/sh_lobby.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_lobby.gnut
@@ -2,6 +2,19 @@ globalize_all_functions
const string PRIVATE_MATCH_PLAYLIST = "private_match"
+global struct CustomMatchSettingContainer
+{
+ string playlistVar
+ string defaultValue
+ string localizedName
+ bool isEnumSetting
+
+ // enum setting
+ array< string > enumNames
+ array< string > enumValues
+ //table< string, string > enumValuePairs
+}
+
struct {
array<string> modes = [ // default modes in vanilla
"aitdm",
@@ -44,8 +57,11 @@ struct {
"mp_lf_township",
"mp_lf_uma"
]
+
+ table< string, array< CustomMatchSettingContainer > > customMatchSettingsByCategory // we set these up in sh_private_lobby_modes_init
} file
+
void function AddPrivateMatchMode( string mode )
{
if ( !file.modes.contains( mode ) )
@@ -68,6 +84,126 @@ void function AddPrivateMatchMap( string map )
#endif
}
+
+void function AddPrivateMatchModeSettingArbitrary( string category, string playlistVar, string defaultValue, string localizedName = "" )
+{
+ if ( localizedName == "" )
+ localizedName = "#" + playlistVar
+
+ if ( !( category in file.customMatchSettingsByCategory ) )
+ file.customMatchSettingsByCategory[ category ] <- []
+
+ bool found = false
+ foreach ( CustomMatchSettingContainer setting in file.customMatchSettingsByCategory[ category ] )
+ {
+ if ( setting.playlistVar == playlistVar )
+ {
+ found = true
+ break
+ }
+ }
+
+ if ( !found )
+ {
+ CustomMatchSettingContainer setting
+ setting.playlistVar = playlistVar
+ setting.defaultValue = defaultValue
+ setting.localizedName = localizedName
+ setting.isEnumSetting = false
+
+ file.customMatchSettingsByCategory[ category ].append( setting )
+ }
+
+ #if CLIENT
+ // call this on ui too so the client and ui states are the same
+ RunUIScript( "AddPrivateMatchModeSettingArbitrary", category, playlistVar, defaultValue, localizedName )
+ #endif
+}
+
+void function AddPrivateMatchModeSettingEnum( string category, string playlistVar, array< string > enums, string defaultValue, string localizedName = "" )
+{
+ table< string, string > pairs
+ for ( int i = 0; i < enums.len(); i++ )
+ pairs[ enums[ i ] ] <- i.tostring()
+
+ AddPrivateMatchModeSettingEnumEx( category, playlistVar, pairs, defaultValue, localizedName )
+}
+
+void function AddPrivateMatchModeSettingEnumUIHack( string category, string playlistVar, string serializedEnumPairs, string defaultValue, string localizedName )
+{
+ // this fucking sucks, but RunUIScript won't take tables, so we serialize to a string
+ // we use \n as a delimeter and basically serialize to an array
+ array< string > serializedArray = split( serializedEnumPairs, "\n" )
+ table< string, string > enumPairs
+
+ for ( int i = 0; i < serializedArray.len(); i += 2 )
+ enumPairs[ serializedArray[ i ] ] <- serializedArray[ i + 1 ]
+
+ AddPrivateMatchModeSettingEnumEx( category, playlistVar, enumPairs, defaultValue, localizedName )
+}
+
+void function AddPrivateMatchModeSettingEnumEx( string category, string playlistVar, table< string, string > enumPairs, string defaultValue, string localizedName = "" )
+{
+ if ( localizedName == "" )
+ localizedName = "#" + playlistVar
+
+ if ( !( category in file.customMatchSettingsByCategory ) )
+ file.customMatchSettingsByCategory[ category ] <- []
+
+ bool found = false
+ foreach ( CustomMatchSettingContainer setting in file.customMatchSettingsByCategory[ category ] )
+ {
+ if ( setting.playlistVar == playlistVar )
+ {
+ found = true
+ break
+ }
+ }
+
+ if ( !found )
+ {
+ CustomMatchSettingContainer setting
+ setting.playlistVar = playlistVar
+ setting.defaultValue = defaultValue
+ setting.localizedName = localizedName
+ setting.isEnumSetting = true
+ //setting.enumValuePairs = enumPairs
+
+ foreach ( string name, string value in enumPairs )
+ {
+ setting.enumNames.append( name )
+ setting.enumValues.append( value )
+ }
+
+ file.customMatchSettingsByCategory[ category ].append( setting )
+ }
+
+ #if CLIENT
+ // call this on ui too so the client and ui states are the same
+ // note: RunUIScript can't take tables, so manually serialize ( sucks, but just how it is ), using \n as a delimeter since i dont believe its ever used in vars
+ string serializedString
+ foreach ( string k, string v in enumPairs )
+ serializedString += k + "\n" + v + "\n"
+
+ RunUIScript( "AddPrivateMatchModeSettingEnumUIHack", category, playlistVar, serializedString, defaultValue, localizedName )
+ #endif
+}
+
+array< string > function GetPrivateMatchSettingCategories()
+{
+ array< string > categories
+ foreach ( string k, v in file.customMatchSettingsByCategory )
+ categories.append( k )
+
+ return categories
+}
+
+array< CustomMatchSettingContainer > function GetPrivateMatchCustomSettingsForCategory( string category )
+{
+ return file.customMatchSettingsByCategory[ category ]
+}
+
+
array<string> function GetPrivateMatchModes()
{
//array<string> modesArray
@@ -291,6 +427,9 @@ bool function ModeSettings_RequiresAI( string modeName )
case "at":
return true
}
+
+ if ( modeName.find( "fd" ) == 0 ) // bob edit: unsure if this keeps vanilla compatibility, but just make sure fd modes are counted as requiring ai
+ return true
return false
}
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
new file mode 100644
index 000000000..41806e16d
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut
@@ -0,0 +1,55 @@
+global function PrivateMatchModesInit
+
+void function PrivateMatchModesInit()
+{
+ // match settings
+ // super temp: do localisation strings later
+ AddPrivateMatchModeSettingArbitrary( "Match", "scorelimit", "5" ) //, "Score Limit" )
+ AddPrivateMatchModeSettingArbitrary( "Match", "roundscorelimit", "0" ) //, "Score Limit (round-based modes)" )
+ AddPrivateMatchModeSettingArbitrary( "Match", "timelimit", "12" ) //, "Time Limit" )
+ AddPrivateMatchModeSettingArbitrary( "Match", "roundtimelimit", "0" ) //, "Time Limit (round-based modes)" )
+
+ AddPrivateMatchModeSettingArbitrary( "Pilot", "pilot_health_multiplier", "1.0" )
+ AddPrivateMatchModeSettingArbitrary( "Pilot", "respawn_delay", "0.0" )
+ AddPrivateMatchModeSettingEnum( "Pilot", "boosts_enabled", [ "Default", "Disabled" ], "1" )
+ AddPrivateMatchModeSettingEnum( "Pilot", "earn_meter_pilot_overdrive", [ "Disabled", "Enabled", "Only" ], "1" )
+ AddPrivateMatchModeSettingArbitrary( "Pilot", "earn_meter_pilot_multiplier", "1.0" )
+
+ AddPrivateMatchModeSettingArbitrary( "Titan", "earn_meter_titan_multiplier", "1.0" )
+ AddPrivateMatchModeSettingEnum( "Titan", "aegis_upgrades", [ "Disabled", "Enabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Titan", "infinite_doomed_state", [ "Disabled", "Enabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Titan", "titan_shield_regen", [ "Disabled", "Enabled" ], "0" )
+
+ AddPrivateMatchModeSettingEnum( "Riff Settings", "riff_floorislava", [ "Default", "Enabled", "Disabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Riff Settings", "featured_mode_all_holopilot", [ "Disabled", "Enabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Riff Settings", "featured_mode_all_grapple", [ "Disabled", "Enabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Riff Settings", "featured_mode_all_phase", [ "Disabled", "Enabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Riff Settings", "featured_mode_all_ticks", [ "Disabled", "Enabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Riff Settings", "featured_mode_tactikill", [ "Disabled", "Enabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Riff Settings", "featured_mode_amped_tacticals", [ "Disabled", "Enabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Riff Settings", "featured_mode_rocket_arena", [ "Disabled", "Enabled" ], "0" )
+ AddPrivateMatchModeSettingEnum( "Riff Settings", "featured_mode_shotguns_snipers", [ "Disabled", "Enabled" ], "0" )
+
+ // gamemode settings
+ AddPrivateMatchModeSettingEnum( "#GAMEMODE_cp", "amped_capture_points", [ "Disabled", "Enabled" ], "0" )
+
+ AddPrivateMatchModeSettingEnum( "#GAMEMODE_coliseum", "coliseum_loadouts_enabled", [ "Disabled", "Enabled" ], "1" )
+
+
+ // modes
+ AddPrivateMatchMode( "ffa" )
+ AddPrivateMatchMode( "fra" )
+ AddPrivateMatchMode( "coliseum" )
+
+ // playlists
+ AddPrivateMatchMode( "attdm" )
+ AddPrivateMatchMode( "turbo_ttdm" )
+ AddPrivateMatchMode( "alts" )
+ AddPrivateMatchMode( "turbo_lts" )
+ AddPrivateMatchMode( "rocket_lf" )
+ AddPrivateMatchMode( "holopilot_lf" )
+
+ // maps
+ AddPrivateMatchMap( "mp_coliseum" )
+ AddPrivateMatchMap( "mp_coliseum_column" )
+} \ No newline at end of file
diff --git a/Northstar.CustomServers/scripts/vscripts/melee/_melee.gnut b/Northstar.CustomServers/mod/scripts/vscripts/melee/_melee.gnut
index 035caf9ec..035caf9ec 100644
--- a/Northstar.CustomServers/scripts/vscripts/melee/_melee.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/melee/_melee.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/melee/_melee_rewards.gnut b/Northstar.CustomServers/mod/scripts/vscripts/melee/_melee_rewards.gnut
index 46b730d60..46b730d60 100644
--- a/Northstar.CustomServers/scripts/vscripts/melee/_melee_rewards.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/melee/_melee_rewards.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/melee/_melee_synced_human.gnut b/Northstar.CustomServers/mod/scripts/vscripts/melee/_melee_synced_human.gnut
index 15a8aa3e3..15a8aa3e3 100644
--- a/Northstar.CustomServers/scripts/vscripts/melee/_melee_synced_human.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/melee/_melee_synced_human.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/melee/_melee_synced_titan.gnut b/Northstar.CustomServers/mod/scripts/vscripts/melee/_melee_synced_titan.gnut
index 5c6285a9d..5c6285a9d 100644
--- a/Northstar.CustomServers/scripts/vscripts/melee/_melee_synced_titan.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/melee/_melee_synced_titan.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_ai_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.gnut
index ac0c309b7..ac0c309b7 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_ai_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_ai_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_ai_mp.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_ai_superspectre.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_superspectre.nut
index 68e888f41..68e888f41 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_ai_superspectre.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_superspectre.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_base_gametype.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype.gnut
index a4c6e187b..a4c6e187b 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_base_gametype.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_base_gametype_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut
index 9274854a2..d7db601bc 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_base_gametype_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut
@@ -582,13 +582,11 @@ void function TrackTitanDamageInPlayerGameStat( int playerGameStat )
file.titanDamageGameStat = playerGameStat
}
-// this should be generic, not restricted to a specific gamemode
void function AddToTitanDamageStat( entity victim, var damageInfo )
{
if ( !victim.IsTitan() || file.titanDamageGameStat == -1 )
return
- // todo: this needs to not count selfdamage
entity attacker = DamageInfo_GetAttacker( damageInfo )
float amount = DamageInfo_GetDamage( damageInfo )
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_battery_port.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_battery_port.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_battery_port.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_battery_port.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_bleedout.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_bleedout.gnut
index 2192b4b1e..2192b4b1e 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_bleedout.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_bleedout.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_challenges.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_challenges.gnut
index 466a50425..466a50425 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_challenges.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_challenges.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_changemap.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
index 06270c39c..95d7492ed 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_changemap.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_changemap.nut
@@ -1,26 +1,20 @@
global function CodeCallback_MatchIsOver
-
void function CodeCallback_MatchIsOver()
{
- foreach ( entity player in GetPlayerArray() )
- SavePdataForEntityIndex( player.GetPlayerIndex() )
-
if ( !IsPrivateMatch() && IsMatchmakingServer() )
SetUIVar( level, "putPlayerInMatchmakingAfterDelay", true )
else
SetUIVar( level, "putPlayerInMatchmakingAfterDelay", false )
- if ( GetCurrentPlaylistVarInt( "return_to_private_lobby", 0 ) == 1 ) // set in _private_lobby.gnut, temp lol
+ if ( ShouldReturnToLobby() )
{
SetCurrentPlaylist( "private_match" ) // needed for private lobby to load
if ( IsSingleplayer() )
- GameRules_ChangeMap( "mp_lobby", "tdm" ) // need to change back to tdm
+ GameRules_ChangeMap( "mp_lobby", "tdm" ) // need to change back to mp playlist or loadouts will break in lobby
else
GameRules_ChangeMap( "mp_lobby", GAMETYPE )
- // this is esp important for sp, since solo will break a bunch of shit in the private lobby
- // idk if even necessary to deal with solo but eh whatever better to have it work than not
}
#if DEV
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_classic_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut
index ac8a397f7..ac8a397f7 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_classic_mp.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut
index 02c312be3..02c312be3 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_dropship_intro.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_classic_mp_no_intro.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_no_intro.gnut
index 106f867b1..106f867b1 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_classic_mp_no_intro.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp_no_intro.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_codecallbacks.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_codecallbacks.gnut
index 2e5651422..2e5651422 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_codecallbacks.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_codecallbacks.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_dropship_spawn_common.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_dropship_spawn_common.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_dropship_spawn_common.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_dropship_spawn_common.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_gamestate.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate.nut
index 603c38fa2..603c38fa2 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_gamestate.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_gamestate_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
index 96a61b69f..197ac5e90 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_gamestate_mp.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
@@ -4,6 +4,7 @@ global function PIN_GameStart
global function SetGameState
global function GameState_EntitiesDidLoad
global function WaittillGameStateOrHigher
+global function AddCallback_OnRoundEndCleanup
global function SetShouldUsePickLoadoutScreen
global function SetSwitchSidesBased
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_goblin_dropship.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_goblin_dropship.nut
index fe36e6681..fe36e6681 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_goblin_dropship.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_goblin_dropship.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_lasermesh.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_lasermesh.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_lasermesh.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_lasermesh.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_loadout_crate.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_loadout_crate.nut
index d987c774c..d987c774c 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_loadout_crate.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_loadout_crate.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_mp_mapspawn.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_mp_mapspawn.gnut
index 6860d8176..6860d8176 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_mp_mapspawn.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_mp_mapspawn.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_music.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_music.gnut
index 443203361..443203361 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_music.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_music.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_pickups.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups.gnut
index ecf9b3e51..ecf9b3e51 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_pickups.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_pickups_glow.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups_glow.gnut
index f1fe4ecce..f1fe4ecce 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_pickups_glow.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_pickups_glow.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_playlist.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_playlist.gnut
index dfceab412..dfceab412 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_playlist.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_playlist.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_revive.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_revive.gnut
index b2f5c4674..b2f5c4674 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_revive.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_revive.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_score.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
index 238eab1d1..238eab1d1 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_score.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_serverflags.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_serverflags.nut
index a665463da..a665463da 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_serverflags.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_serverflags.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_sniper_spectres.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_sniper_spectres.nut
index ce513259b..ce513259b 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_sniper_spectres.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_sniper_spectres.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_spawn_functions.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_spawn_functions.nut
index 3d9b84f3a..3d9b84f3a 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_spawn_functions.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_spawn_functions.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_spectre_rack.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_spectre_rack.nut
index a76c0fc9c..a76c0fc9c 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_spectre_rack.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_spectre_rack.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_stats.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_stats.nut
index 0e8b58f45..0e8b58f45 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_stats.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_stats.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_titan_npc.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_titan_npc.nut
index 582850875..582850875 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_titan_npc.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_titan_npc.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_titan_tether.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_titan_tether.gnut
index b088651ab..b088651ab 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_titan_tether.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_titan_tether.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_titan_transfer.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_titan_transfer.nut
index 7b126cd0c..7b126cd0c 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_titan_transfer.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_titan_transfer.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_tonecontroller.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_tonecontroller.nut
index 786eda23c..786eda23c 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_tonecontroller.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_tonecontroller.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_utility_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_utility_mp.gnut
index ea7d9d447..ea7d9d447 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_utility_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_utility_mp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/_vr.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_vr.nut
index b9759ddf5..b9759ddf5 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/_vr.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_vr.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/_lf_maps_shared.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/_lf_maps_shared.gnut
index d61d6baa6..d61d6baa6 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/_lf_maps_shared.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/_lf_maps_shared.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_angel_city.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_angel_city.nut
index 68b49ad59..68b49ad59 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_angel_city.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_angel_city.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_angel_city_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_angel_city_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_angel_city_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_angel_city_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_black_water_canal.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_black_water_canal.nut
index 2e35417fe..2e35417fe 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_black_water_canal.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_black_water_canal.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_black_water_canal_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_black_water_canal_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_black_water_canal_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_black_water_canal_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_coliseum.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_coliseum.nut
index 398b2fc55..398b2fc55 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_coliseum.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_coliseum.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_coliseum_column.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_coliseum_column.nut
index 398b2fc55..398b2fc55 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_coliseum_column.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_coliseum_column.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_colony02.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_colony02.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_colony02.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_colony02.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_colony02_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_colony02_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_colony02_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_colony02_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_complex3.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_complex3.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_complex3.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_complex3.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_crashsite3.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_crashsite3.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_crashsite3.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_crashsite3.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_drydock.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_drydock.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_drydock.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_drydock.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_drydock_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_drydock_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_drydock_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_drydock_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_eden.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_eden.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_eden.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_eden.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_forwardbase_kodai.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_forwardbase_kodai.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_forwardbase_kodai_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_glitch.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_glitch.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_glitch.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_glitch.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_glitch_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_glitch_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_glitch_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_glitch_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_grave.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_grave.nut
index f4b48f6d4..f4b48f6d4 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_grave.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_grave.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_grave_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_grave_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_grave_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_grave_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_homestead.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_homestead.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_homestead_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_homestead_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_deck.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_deck.nut
index 398b2fc55..398b2fc55 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_deck.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_deck.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_meadow.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_meadow.nut
index 398b2fc55..398b2fc55 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_meadow.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_meadow.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_stacks.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_stacks.nut
index 398b2fc55..398b2fc55 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_stacks.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_stacks.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_township.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_township.nut
index 398b2fc55..398b2fc55 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_township.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_township.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_traffic.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_traffic.nut
index 398b2fc55..398b2fc55 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_traffic.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_traffic.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_uma.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_uma.nut
index 398b2fc55..398b2fc55 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_lf_uma.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_lf_uma.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_relic02.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_relic02.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_relic02.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_relic02.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_relic02_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_relic02_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_relic02_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_relic02_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_rise.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_rise.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_rise.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_rise.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_rise_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_rise_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_rise_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_rise_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_thaw.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_thaw.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_thaw.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_thaw.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_thaw_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_thaw_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_thaw_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_thaw_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_wargames.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames.nut
index b6c8cfc2f..b6c8cfc2f 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_wargames.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_wargames_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames_fd.nut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/levels/mp_wargames_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_wargames_fd.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/pintelemetry.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/pintelemetry.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/pintelemetry.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/pintelemetry.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/player_cloak.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/player_cloak.nut
index 8ef7dcd93..8ef7dcd93 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/player_cloak.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/player_cloak.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/spawn.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn.nut
index 26e4c7135..26e4c7135 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/spawn.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/spawn_debug.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_debug.gnut
index 75ec8cf24..75ec8cf24 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/spawn_debug.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_debug.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/spawn_on_friendly.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_on_friendly.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/spawn_on_friendly.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_on_friendly.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/spawn_wave.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_wave.gnut
index b8895c55c..b8895c55c 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/spawn_wave.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_wave.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/mp/spawn_wave_dropship.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_wave_dropship.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/mp/spawn_wave_dropship.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/spawn_wave_dropship.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/pilot/_leeching.gnut b/Northstar.CustomServers/mod/scripts/vscripts/pilot/_leeching.gnut
index c9d1f9dda..c9d1f9dda 100644
--- a/Northstar.CustomServers/scripts/vscripts/pilot/_leeching.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/pilot/_leeching.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/pilot/_pilot_leeching.gnut b/Northstar.CustomServers/mod/scripts/vscripts/pilot/_pilot_leeching.gnut
index 596ca7118..596ca7118 100644
--- a/Northstar.CustomServers/scripts/vscripts/pilot/_pilot_leeching.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/pilot/_pilot_leeching.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/pilot/_slamzoom.nut b/Northstar.CustomServers/mod/scripts/vscripts/pilot/_slamzoom.nut
index 83ee3916d..83ee3916d 100644
--- a/Northstar.CustomServers/scripts/vscripts/pilot/_slamzoom.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/pilot/_slamzoom.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/pilot/_zipline.gnut b/Northstar.CustomServers/mod/scripts/vscripts/pilot/_zipline.gnut
index a129c4794..a129c4794 100644
--- a/Northstar.CustomServers/scripts/vscripts/pilot/_zipline.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/pilot/_zipline.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/pilot/class_wallrun.gnut b/Northstar.CustomServers/mod/scripts/vscripts/pilot/class_wallrun.gnut
index 58de59c18..58de59c18 100644
--- a/Northstar.CustomServers/scripts/vscripts/pilot/class_wallrun.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/pilot/class_wallrun.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/rodeo/_rodeo.gnut b/Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo.gnut
index 72ff58b78..72ff58b78 100644
--- a/Northstar.CustomServers/scripts/vscripts/rodeo/_rodeo.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/rodeo/_rodeo_titan.gnut b/Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo_titan.gnut
index 9f05a0cd3..9f05a0cd3 100644
--- a/Northstar.CustomServers/scripts/vscripts/rodeo/_rodeo_titan.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo_titan.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/sh_calling_cards.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_calling_cards.gnut
index 674619457..674619457 100644
--- a/Northstar.CustomServers/scripts/vscripts/sh_calling_cards.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_calling_cards.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/sh_loadouts_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts_mp.nut
index 3b1c8a8ab..3b1c8a8ab 100644
--- a/Northstar.CustomServers/scripts/vscripts/sh_loadouts_mp.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts_mp.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/sh_northstar_utils.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_northstar_utils.gnut
index 15eed9b21..20d742d06 100644
--- a/Northstar.CustomServers/scripts/vscripts/sh_northstar_utils.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_northstar_utils.gnut
@@ -23,14 +23,7 @@ bool function IsNorthstarServer()
// whether the game should return to the lobby on GameRules_EndMatch()
bool function ShouldReturnToLobby()
{
- bool shouldReturnToLobby = false
- try
- {
- // need this in a trycatch because the var might not exist atm
- shouldReturnToLobby = GetConVarInt( "northstar_should_return_to_lobby" ) == 1
- } catch ( ex ) {}
-
- return shouldReturnToLobby
+ return GetConVarBool( "ns_should_return_to_lobby" )
}
int function GetNorthstarLobbyType()
diff --git a/Northstar.CustomServers/scripts/vscripts/sh_remote_functions_mp_custom.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_remote_functions_mp_custom.gnut
index c1e49e765..c1e49e765 100644
--- a/Northstar.CustomServers/scripts/vscripts/sh_remote_functions_mp_custom.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_remote_functions_mp_custom.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/sh_stats.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_stats.gnut
index 31634a9b2..31634a9b2 100644
--- a/Northstar.CustomServers/scripts/vscripts/sh_stats.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_stats.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/superbar/orbitalstrike.nut b/Northstar.CustomServers/mod/scripts/vscripts/superbar/orbitalstrike.nut
index 7e6224328..7e6224328 100644
--- a/Northstar.CustomServers/scripts/vscripts/superbar/orbitalstrike.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/superbar/orbitalstrike.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/superbar/smokescreen.nut b/Northstar.CustomServers/mod/scripts/vscripts/superbar/smokescreen.nut
index 6bbb3e899..6bbb3e899 100644
--- a/Northstar.CustomServers/scripts/vscripts/superbar/smokescreen.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/superbar/smokescreen.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/sv_globals.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sv_globals.gnut
index e69de29bb..e69de29bb 100644
--- a/Northstar.CustomServers/scripts/vscripts/sv_globals.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sv_globals.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_battery_generator.gnut
index 567ad6e74..567ad6e74 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan/_battery_generator.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_battery_generator.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/_replacement_titans.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans.gnut
index c9d986bcc..c9d986bcc 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan/_replacement_titans.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/_replacement_titans_drop.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans_drop.gnut
index 5970f7eab..5970f7eab 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan/_replacement_titans_drop.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans_drop.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/_titan_commands.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_commands.gnut
index 06232c08b..06232c08b 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan/_titan_commands.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_commands.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/_titan_health.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_health.gnut
index d600cb03b..d600cb03b 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan/_titan_health.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_health.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/_titan_hints.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_hints.gnut
index 0e8b4b5b4..0e8b4b5b4 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan/_titan_hints.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_hints.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/_titan_hotdrop.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_hotdrop.gnut
index e3410de8a..e3410de8a 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan/_titan_hotdrop.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_hotdrop.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/_titan_triple_health.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_triple_health.gnut
index 7515b868f..7515b868f 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan/_titan_triple_health.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_triple_health.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan/class_titan.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut
index 5f72385ea..5f72385ea 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan/class_titan.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/titan_xp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan_xp.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/titan_xp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan_xp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/vehicle/_vehicle_behavior.gnut b/Northstar.CustomServers/mod/scripts/vscripts/vehicle/_vehicle_behavior.gnut
index 2d0dd920e..2d0dd920e 100644
--- a/Northstar.CustomServers/scripts/vscripts/vehicle/_vehicle_behavior.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/vehicle/_vehicle_behavior.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/vehicle/_vehicle_dropship_new.nut b/Northstar.CustomServers/mod/scripts/vscripts/vehicle/_vehicle_dropship_new.nut
index 87010ca74..87010ca74 100644
--- a/Northstar.CustomServers/scripts/vscripts/vehicle/_vehicle_dropship_new.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/vehicle/_vehicle_dropship_new.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapon_xp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/weapon_xp.gnut
index 37b891699..37b891699 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapon_xp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapon_xp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_arc_cannon.nut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_arc_cannon.nut
index 1601330c8..1601330c8 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_arc_cannon.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_arc_cannon.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_at_turrets.gnut
index b061c1824..b061c1824 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_at_turrets.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_at_turrets.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_ball_lightning.gnut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_ball_lightning.gnut
index 9aae59e54..9aae59e54 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_ball_lightning.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_ball_lightning.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_cloaker.gnut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_cloaker.gnut
index 6ec0bc0ac..6ec0bc0ac 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_cloaker.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_cloaker.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_grenade.nut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_grenade.nut
index c2036e85d..c2036e85d 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_grenade.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_grenade.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_particle_wall.gnut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_particle_wall.gnut
index a46bfff82..a46bfff82 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_particle_wall.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_particle_wall.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_team_emp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_team_emp.gnut
index 41d428484..41d428484 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_team_emp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_team_emp.gnut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_vortex.nut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_vortex.nut
index f1e46a531..f1e46a531 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_vortex.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_vortex.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_weapon_dialogue.nut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_weapon_dialogue.nut
index 04fd24d3e..04fd24d3e 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_weapon_dialogue.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_weapon_dialogue.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/weapons/_weapon_utility.nut b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_weapon_utility.nut
index b3e5f5a39..b3e5f5a39 100644
--- a/Northstar.CustomServers/scripts/vscripts/weapons/_weapon_utility.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/weapons/_weapon_utility.nut
diff --git a/Northstar.CustomServers/scripts/vscripts/ai/_droppod.gnut b/Northstar.CustomServers/scripts/vscripts/ai/_droppod.gnut
deleted file mode 100644
index 847efa8b8..000000000
--- a/Northstar.CustomServers/scripts/vscripts/ai/_droppod.gnut
+++ /dev/null
@@ -1,6 +0,0 @@
-global function DropPod_Init
-
-void function DropPod_Init()
-{
-
-} \ No newline at end of file
diff --git a/Northstar.CustomServers/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut b/Northstar.CustomServers/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut
deleted file mode 100644
index b1474a15a..000000000
--- a/Northstar.CustomServers/scripts/vscripts/lobby/sh_private_lobby_modes_init.gnut
+++ /dev/null
@@ -1,21 +0,0 @@
-global function PrivateMatchModesInit
-
-void function PrivateMatchModesInit()
-{
- // modes
- AddPrivateMatchMode( "ffa" )
- AddPrivateMatchMode( "fra" )
- AddPrivateMatchMode( "coliseum" )
-
- // playlists
- AddPrivateMatchMode( "attdm" )
- AddPrivateMatchMode( "turbo_ttdm" )
- AddPrivateMatchMode( "alts" )
- AddPrivateMatchMode( "turbo_lts" )
- AddPrivateMatchMode( "rocket_lf" )
- AddPrivateMatchMode( "holopilot_lf" )
-
- // maps
- AddPrivateMatchMap( "mp_coliseum" )
- AddPrivateMatchMap( "mp_coliseum_column" )
-} \ No newline at end of file