aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers
diff options
context:
space:
mode:
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 6e4d2d58..547a1b8c 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 00000000..09d2d72c
--- /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 c4af215a..c4af215a 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 64f151c7..64f151c7 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 a3a712e9..a3a712e9 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 a7a995f5..a7a995f5 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 c7459d71..c7459d71 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 c4dad6ab..c4dad6ab 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 b62c0793..b62c0793 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 351b9ff7..351b9ff7 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 74742e99..74742e99 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 8e1bc7c1..8e1bc7c1 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 e68c6ab5..e68c6ab5 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 07dacfaa..07dacfaa 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 e68f7ddb..e68f7ddb 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 278d4873..278d4873 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 282e9b9b..282e9b9b 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 144654ab..144654ab 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 f5feb8c7..f5feb8c7 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 bff35f0b..bff35f0b 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 106014c3..106014c3 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 be309949..be309949 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 b93d2249..b93d2249 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 38ed82e5..38ed82e5 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 66937c70..66937c70 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 9bc1782a..9bc1782a 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 fac61cf5..fac61cf5 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 341dd67a..341dd67a 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 6070c68e..6070c68e 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 5636f267..5636f267 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 0c378fe9..0c378fe9 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 d1f1b267..d1f1b267 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 82193830..82193830 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 e189a512..e189a512 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 8b13b689..8b13b689 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 037f1505..037f1505 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 c9a25afe..c9a25afe 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 fe78babd..fe78babd 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 87fa003f..87fa003f 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 5fac7977..5fac7977 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 8ef03ec4..8ef03ec4 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 a13b3066..a13b3066 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 d250e2df..d250e2df 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 13a22de6..13a22de6 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 e2b65835..e2b65835 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 388ee3d6..388ee3d6 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 1f1fe079..1f1fe079 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 dd2665a4..dd2665a4 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 c05037c2..c05037c2 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 66140367..66140367 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 d330a3d2..d330a3d2 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 7bd1a3e4..7bd1a3e4 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 e4e56d12..e4e56d12 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 f400d2c5..f400d2c5 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 e9e470bd..e9e470bd 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 851b8f64..851b8f64 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 a2c6c88e..a2c6c88e 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 a7b9214c..a7b9214c 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 9b435cdb..9b435cdb 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 ce679d19..ce679d19 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 53458c3c..53458c3c 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 e4df1fe1..e4df1fe1 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 e387551f..e387551f 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 495f3cce..495f3cce 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 8bd84029..8bd84029 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 144d4df1..144d4df1 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 74bf638e..74bf638e 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 f9885b1d..f9885b1d 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 2a497d2e..2a497d2e 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 1df9538f..1df9538f 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 e5dcfeb1..e5dcfeb1 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 b4e6eee5..b4e6eee5 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 82548c97..82548c97 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 2ebedae2..2ebedae2 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 d10daea6..d10daea6 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 fcc3901b..fcc3901b 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 f09efada..f09efada 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 cb4e5784..cb4e5784 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 d3abdef2..d3abdef2 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 96516c65..96516c65 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 e5062df0..e5062df0 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 fc7a77a0..fc7a77a0 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 f08a1346..f08a1346 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 6fd6c86d..6fd6c86d 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 37634d9a..37634d9a 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 27efebad..27efebad 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 6c2151eb..6c2151eb 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 ae3347e9..ae3347e9 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 3a251671..3a251671 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 62a9d7eb..62a9d7eb 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 48fc894d..48fc894d 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 cc21b441..cc21b441 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 fddee0fb..fddee0fb 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 8dccbf6f..8dccbf6f 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 f5d30aa5..f5d30aa5 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 1a9e1cf1..1a9e1cf1 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 fc52becd..fc52becd 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 0acb249f..0acb249f 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 3a6a9da7..3a6a9da7 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 b2d7f38f..b2d7f38f 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 5cd5c2a3..5cd5c2a3 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 8ac0d2ea..8ac0d2ea 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 c042f71d..c042f71d 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 0ce4acb3..0ce4acb3 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 0da91a35..0da91a35 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 8fcda68e..8fcda68e 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 5a57b9ee..5a57b9ee 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 07a653c1..07a653c1 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 dc413e82..dc413e82 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 1703dd9f..1703dd9f 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 8dfc4baa..8dfc4baa 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 ec63b128..ec63b128 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 335eee59..335eee59 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 eebad86a..eebad86a 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 14f3c245..14f3c245 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 17a65f12..17a65f12 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 5545e3d7..5545e3d7 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 48fa9b99..48fa9b99 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 72307ee8..72307ee8 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 a475466f..a475466f 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 55bc4b0a..55bc4b0a 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 9e002888..9e002888 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 e291df60..e291df60 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 921055c0..921055c0 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 16afd226..16afd226 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 385a401b..385a401b 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 33e9b263..33e9b263 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 8f0928b0..8f0928b0 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 a1a6fbe9..a1a6fbe9 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 82e384e8..82e384e8 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 81896b86..81896b86 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 0ce6d33e..0ce6d33e 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 0d00942f..0d00942f 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 b43a5a0c..b43a5a0c 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 453f0d2c..453f0d2c 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 83b687ca..83b687ca 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 12403bef..12403bef 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 7f80721d..7f80721d 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 3cd1eabb..3cd1eabb 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 7a284ae8..7a284ae8 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 d1f50477..d1f50477 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 c3058416..c3058416 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 9c102839..9c102839 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 b935f34a..b935f34a 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 ce863d29..ce863d29 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 62a8afad..62a8afad 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 5a73c6f0..5a73c6f0 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 16055d80..16055d80 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 2587a331..2587a331 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 aa4ab86f..aa4ab86f 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 fba50cba..fba50cba 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 d8a8510d..d8a8510d 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 57bd7864..57bd7864 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 1030ad4e..1030ad4e 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 c4be82ae..c4be82ae 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 6257f377..6257f377 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 37aec44e..37aec44e 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 fc2111c1..fc2111c1 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 bdbfb50d..bdbfb50d 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 17f702ce..17f702ce 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 c5892a67..c5892a67 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 9729cb7e..9729cb7e 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 131a1085..131a1085 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 2fa07fa7..2fa07fa7 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 b9691642..b9691642 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 b23e493e..b23e493e 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 90493d79..90493d79 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 26c2ddc8..26c2ddc8 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 2a156b9a..2a156b9a 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 09daba77..09daba77 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 f44fa5c0..f44fa5c0 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 8ea04829..8ea04829 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 4c06f5d6..4c06f5d6 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 1cb89fe6..1cb89fe6 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 91fc60a6..91fc60a6 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 ba3cff00..ba3cff00 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 adbd3e88..adbd3e88 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 f5dfa5f7..f5dfa5f7 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 9ec58611..9ec58611 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 16cce927..16cce927 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 58a5c49c..58a5c49c 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 f120c79b..f120c79b 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 bad53ace..bad53ace 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 1244c353..1244c353 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 ad6a15c0..ad6a15c0 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 c94ada19..c94ada19 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 4d92d825..4d92d825 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 f07e21c4..f07e21c4 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 2ead1d30..2ead1d30 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 75c7873e..75c7873e 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 30758bec..30758bec 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 b08fdcf1..b08fdcf1 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 12062056..12062056 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 f9d7a4ff..f9d7a4ff 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 db616173..db616173 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 378ceae3..378ceae3 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 767436d9..767436d9 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 37b89169..37b89169 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 ded25dc3..ded25dc3 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 fc9fe2b9..fc9fe2b9 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 2b7b90b3..2b7b90b3 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 3efee093..3efee093 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 5b2c2c53..c116ac33 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 ef7e629f..20b53c50 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 14990a15..14990a15 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 893861bf..893861bf 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 d1935d62..d1935d62 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 10d2b616..10d2b616 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 1264686e..1264686e 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 37b89169..37b89169 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 03b9fcfc..03b9fcfc 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 567954b1..567954b1 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 ca7b839b..ca7b839b 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 37b89169..37b89169 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 c5e026b3..c5e026b3 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 2b3d3993..2b3d3993 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 5ebf090a..5ebf090a 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 0f82d9a6..0f82d9a6 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 50851dae..50851dae 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 e3cb0dbf..e3cb0dbf 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 025c9dfd..025c9dfd 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 52b69c5d..52b69c5d 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 37b89169..37b89169 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 00000000..da3058d7
--- /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 0429895b..0429895b 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 e3addf81..e3addf81 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 c0d56de7..c0d56de7 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 638166c8..638166c8 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 2f1fdc96..2f1fdc96 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 771fe6d9..771fe6d9 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 e6d3bcf0..e6d3bcf0 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 588b4d75..588b4d75 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 fc8b7d1e..fc8b7d1e 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 4aa3ac30..4aa3ac30 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 08598808..08598808 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 0d4b43c9..0d4b43c9 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 f1fbdb80..f1fbdb80 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 3c2e36ce..3c2e36ce 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 37b89169..37b89169 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 9717c76d..9717c76d 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 37b89169..37b89169 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 00000000..6faf6649
--- /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 7e4d2cdd..7e4d2cdd 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 c6e7f9f4..c6e7f9f4 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 214aff96..214aff96 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 f49560e0..f49560e0 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 50b6cc75..50b6cc75 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 f8e0652c..f8e0652c 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 eca5849b..eca5849b 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 00000000..e34b3082
--- /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 67c68600..67c68600 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 00000000..40a7d932
--- /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 b93631ac..b93631ac 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 00000000..f5c0c84d
--- /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 9dbdd699..9dbdd699 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 347cb644..347cb644 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 8e1cb71f..8e1cb71f 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 a340bc32..a340bc32 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 631e01fc..631e01fc 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 11018cea..11018cea 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 08d2b2e1..08d2b2e1 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 b9f8f7eb..b9f8f7eb 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 6f5ddb3e..6f5ddb3e 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 961816c7..961816c7 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 089d4b71..089d4b71 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 ccb5cd6e..ccb5cd6e 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 b638e92b..b638e92b 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 2f9e0f84..2f9e0f84 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 dda84976..dda84976 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 b41640ad..b41640ad 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 ba473cae..ba473cae 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 37b89169..37b89169 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 37b89169..37b89169 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 cf7f7e15..cf7f7e15 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 e02157d1..e02157d1 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 090814cb..090814cb 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 7ece7dc1..7ece7dc1 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 a30944cf..a30944cf 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 b75ed51b..b75ed51b 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 b358cfe8..b1de4d4f 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 ddfe6ee6..ddfe6ee6 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 704f55d3..704f55d3 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 b5f700e5..b5f700e5 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 932f14b7..932f14b7 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 9d8f84b5..9d8f84b5 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 89f9c991..89f9c991 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 6e8e9fa3..8d0545cb 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 3a852f91..3a852f91 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 4532fb97..4532fb97 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 9e80b863..9e80b863 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 faf3e5ca..faf3e5ca 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 0a32f133..0a32f133 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 b660e89f..b660e89f 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 e69de29b..e69de29b 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 9114fcad..9114fcad 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 51f8bf9e..51f8bf9e 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 ff2a4c7c..ff2a4c7c 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 fd877f8c..fd877f8c 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 896ab207..60daa452 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 fda0e5ff..2c02ebdc 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 00000000..41806e16
--- /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 035caf9e..035caf9e 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 46b730d6..46b730d6 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 15a8aa3e..15a8aa3e 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 5c6285a9..5c6285a9 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 ac0c309b..ac0c309b 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 37b89169..37b89169 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 68e888f4..68e888f4 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 a4c6e187..a4c6e187 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 9274854a..d7db601b 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 37b89169..37b89169 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 2192b4b1..2192b4b1 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 466a5042..466a5042 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 06270c39..95d7492e 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 ac8a397f..ac8a397f 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 02c312be..02c312be 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 106f867b..106f867b 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 2e565142..2e565142 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 37b89169..37b89169 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 603c38fa..603c38fa 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 96a61b69..197ac5e9 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 fe36e668..fe36e668 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 37b89169..37b89169 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 d987c774..d987c774 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 6860d817..6860d817 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 44320336..44320336 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 ecf9b3e5..ecf9b3e5 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 f1fe4ecc..f1fe4ecc 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 dfceab41..dfceab41 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 b2f5c467..b2f5c467 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 238eab1d..238eab1d 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 a665463d..a665463d 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 ce513259..ce513259 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 3d9b84f3..3d9b84f3 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 a76c0fc9..a76c0fc9 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 0e8b58f4..0e8b58f4 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 58285087..58285087 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 b088651a..b088651a 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 7b126cd0..7b126cd0 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 786eda23..786eda23 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 ea7d9d44..ea7d9d44 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 b9759ddf..b9759ddf 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 d61d6baa..d61d6baa 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 68b49ad5..68b49ad5 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 37b89169..37b89169 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 2e35417f..2e35417f 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 37b89169..37b89169 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 398b2fc5..398b2fc5 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 398b2fc5..398b2fc5 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 f4b48f6d..f4b48f6d 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 398b2fc5..398b2fc5 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 398b2fc5..398b2fc5 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 398b2fc5..398b2fc5 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 398b2fc5..398b2fc5 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 398b2fc5..398b2fc5 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 398b2fc5..398b2fc5 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 37b89169..37b89169 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 b6c8cfc2..b6c8cfc2 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 37b89169..37b89169 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 37b89169..37b89169 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 8ef7dcd9..8ef7dcd9 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 26e4c713..26e4c713 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 75ec8cf2..75ec8cf2 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 37b89169..37b89169 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 b8895c55..b8895c55 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 37b89169..37b89169 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 c9d1f9dd..c9d1f9dd 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 596ca711..596ca711 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 83ee3916..83ee3916 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 a129c479..a129c479 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 58de59c1..58de59c1 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 72ff58b7..72ff58b7 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 9f05a0cd..9f05a0cd 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 67461945..67461945 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 3b1c8a8a..3b1c8a8a 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 15eed9b2..20d742d0 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 c1e49e76..c1e49e76 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 31634a9b..31634a9b 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 7e622432..7e622432 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 6bbb3e89..6bbb3e89 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 e69de29b..e69de29b 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 567ad6e7..567ad6e7 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 c9d986bc..c9d986bc 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 5970f7ea..5970f7ea 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 06232c08..06232c08 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 d600cb03..d600cb03 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 0e8b4b5b..0e8b4b5b 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 e3410de8..e3410de8 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 7515b868..7515b868 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 5f72385e..5f72385e 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 37b89169..37b89169 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 2d0dd920..2d0dd920 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 87010ca7..87010ca7 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 37b89169..37b89169 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 1601330c..1601330c 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 b061c182..b061c182 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 9aae59e5..9aae59e5 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 6ec0bc0a..6ec0bc0a 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 c2036e85..c2036e85 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 a46bfff8..a46bfff8 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 41d42848..41d42848 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 f1e46a53..f1e46a53 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 04fd24d3..04fd24d3 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 b3e5f5a3..b3e5f5a3 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 847efa8b..00000000
--- 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 b1474a15..00000000
--- 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