aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers/mod/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'Northstar.CustomServers/mod/scripts')
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/battle_chatter.csv24
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/battle_chatter_voices.csv19
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/burn_meter_rewards.csv21
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/burn_meter_store.csv21
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/caller_ids_mp.csv2
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/calling_cards.csv491
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/callsign_icons.csv193
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/camo_skins.csv161
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/community_entries.csv22
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/death_hints_mp.csv381
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/default_pilot_loadouts.csv11
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/default_titan_loadouts.csv8
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/earn_meter_mp.csv31
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/faction_dialogue.csv273
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/faction_leaders.csv8
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/faction_leaders_dropship_anims.csv23
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/fd_awards.csv15
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/features_mp.csv21
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/flightpath_assets.csv8
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/grunt_chatter_mp.csv47
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/non_loadout_weapons.csv29
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/pain_death_sounds.csv53
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/pilot_abilities.csv16
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/pilot_executions.csv14
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/pilot_passives.csv10
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/pilot_properties.csv8
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_features.csv5
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_mods.csv250
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_mods_common.csv27
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/pilot_weapons.csv33
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/playlist_items.csv27
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/score_events.csv221
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/sp_levels.csv17
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/spectre_chatter_mp.csv8
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/spotlight_images.csv30
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/startpoints.csv313
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_abilities.csv36
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_executions.csv26
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_fd_upgrades.csv50
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_nose_art.csv191
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_os_conversations.csv67
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_passives.csv52
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_primary_mods.csv1
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_primary_mods_common.csv1
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_primary_weapons.csv10
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_properties.csv10
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_skins.csv56
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titan_voices.csv9
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/titans_mp.csv8
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/unlocks_faction_level.csv82
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/unlocks_fd_titan_level.csv26
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/unlocks_player_level.csv996
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/unlocks_random.csv359
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/unlocks_titan_level.csv402
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/unlocks_weapon_level_pilot.csv383
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/weapon_skins.csv35
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/xp_per_faction_level.csv6
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/xp_per_fd_titan_level.csv25
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/xp_per_player_level.csv51
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/xp_per_titan_level.csv21
-rw-r--r--Northstar.CustomServers/mod/scripts/datatable/xp_per_weapon_level.csv21
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_chat.gnut8
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_custom_codecallbacks.gnut9
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut3
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/_utility.gnut7
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut8
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/class/cplayer.nut20
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter.gnut8
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut169
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut23
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut29
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype.gnut29
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut15
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_battery_port.gnut220
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut105
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_model_viewer.nut180
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut56
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo_titan.gnut9
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut18
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_powerup.gnut294
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut7
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans.gnut26
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans_drop.gnut17
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_health.gnut2
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut5
85 files changed, 6969 insertions, 63 deletions
diff --git a/Northstar.CustomServers/mod/scripts/datatable/battle_chatter.csv b/Northstar.CustomServers/mod/scripts/datatable/battle_chatter.csv
new file mode 100644
index 00000000..74d4c1d9
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/battle_chatter.csv
@@ -0,0 +1,24 @@
+conversationname,priority,debounce
+"bc_pReload",500,45.000000
+"bc_pHardcover",500,10.000000
+"bc_pPulse",500,10.000000
+"bc_pGrapple",500,10.000000
+"bc_pHolo",500,10.000000
+"bc_pCloak",500,10.000000
+"bc_pAmp",500,10.000000
+"bc_pStim",500,10.000000
+"bc_pPhase",500,10.000000
+"bc_pFrag",500,10.000000
+"bc_pSmoke",500,10.000000
+"bc_pArc",500,10.000000
+"bc_pGrav",500,10.000000
+"bc_pSatchel",500,10.000000
+"bc_pFirestar",500,10.000000
+"bc_pGravStar",500,10.000000
+"bc_pAmpedWall",500,10.000000
+"bc_fKilledEnemy",500,10.000000
+"bc_pPulseBladeSpotEnemy",500,10.000000
+"bc_fNearEnemyDmg",500,10.000000
+"bc_fCongratsKill",500,10.000000
+"bc_pBatteryOffer",500,5.000000
+"bc_pIntroChat",500,5.000000 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/battle_chatter_voices.csv b/Northstar.CustomServers/mod/scripts/datatable/battle_chatter_voices.csv
new file mode 100644
index 00000000..32450513
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/battle_chatter_voices.csv
@@ -0,0 +1,19 @@
+isMale,isAndroid,ref
+1,0,"M1"
+1,0,"M2"
+1,0,"M3"
+1,0,"M4"
+1,0,"M5"
+1,0,"M6"
+1,0,"M7"
+1,0,"M8"
+1,0,"M9"
+0,0,"F1"
+0,0,"F2"
+0,0,"F3"
+0,0,"F4"
+0,0,"F5"
+1,1,"MA1"
+1,1,"MA2"
+0,1,"FA1"
+0,1,"FA2" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/burn_meter_rewards.csv b/Northstar.CustomServers/mod/scripts/datatable/burn_meter_rewards.csv
new file mode 100644
index 00000000..41e8376d
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/burn_meter_rewards.csv
@@ -0,0 +1,21 @@
+itemRef,selectable,name,description,image,model,skinIndex,activationCost,rewardAvailableFor,weaponName,extraWeaponMod,activationText,cost
+"burnmeter_maphack",1,"#BURNMETER_MAP_HACK","#BURNMETER_MAP_HACK_DESC","rui/menu/boosts/boost_map_hack","models/weapons_r2/burn_card/burn_card.mdl",9,0.700000,"PILOT_AND_TITAN","mp_ability_burncardweapon","burnmeter_maphack","#BURNMETER_MAP_HACK_DESC",125
+"burnmeter_amped_weapons",1,"#BURNMETER_AMPED_WEAPONS","#BURNMETER_AMPED_WEAPONS_DESC","rui/menu/boosts/boost_amped_weapons","models/weapons_r2/burn_card/burn_card.mdl",0,0.800000,"PILOT_AND_TITAN","mp_ability_burncardweapon","burnmeter_amped_weapons","#BURNMETER_AMPED_WEAPONS_DESC",125
+"burnmeter_ticks",1,"#BURNMETER_TICKS","#BURNMETER_TICKS_DESC","rui/menu/boosts/boost_ticks","models/weapons_r2/burn_card/burn_card.mdl",5,0.650000,"PILOT_ONLY","mp_weapon_frag_drone","","#WPN_FRAG_DRONE_LONGDESC",125
+"burnmeter_random_foil",1,"#BURNMETER_RANDOM_FOIL","#BURNMETER_RANDOM_FOIL_DESC","rui/menu/boosts/boost_random","models/weapons_r2/burn_card/burn_card.mdl",11,0.500000,"PILOT_AND_TITAN","mp_ability_burncardweapon","burnmeter_random_foil","#BURNMETER_RANDOM_FOIL_DESC",125
+"burnmeter_ap_turret_weapon",1,"#BURNMETER_AP_TURRETWEAPON","#BURNMETER_AP_TURRETWEAPON_DESC","rui/menu/boosts/boost_antipersonnel_sentry","models/weapons_r2/burn_card/burn_card.mdl",6,0.720000,"PILOT_ONLY","mp_ability_turretweapon","burnmeter_ap_turret_weapon","#BURNMETER_AP_TURRETWEAPON_DESC_BOOST_ACTIVATION_TEXT",125
+"burnmeter_phase_rewind",1,"#WPN_REWIND","#WPN_REWIND_LONGDESC","rui/menu/boosts/boost_phase_rewind","models/weapons_r2/burn_card/burn_card.mdl",8,0.250000,"PILOT_ONLY","mp_ability_burncardweapon","burnmeter_phase_rewind","#WPN_REWIND_LONGDESC",125
+"burnmeter_at_turret_weapon",1,"#BURNMETER_AT_TURRETWEAPON","#BURNMETER_AT_TURRETWEAPON_DESC","rui/menu/boosts/boost_antititan_sentry","models/weapons_r2/burn_card/burn_card.mdl",7,0.350000,"PILOT_ONLY","mp_ability_turretweapon","burnmeter_at_turret_weapon","#BURNMETER_AT_TURRETWEAPON_DESC_BOOST_ACTIVATION_TEXT",125
+"burnmeter_holopilot_nova",1,"#WPN_HOLOPILOT_NOVA","#WPN_HOLOPILOT_NOVA_DESC_BOOST_ACTIVATION_TEXT","rui/menu/boosts/boost_holo_pilots","models/weapons_r2/burn_card/burn_card.mdl",10,0.400000,"PILOT_ONLY","mp_ability_holopilot_nova","","#WPN_HOLOPILOT_NOVA_DESC",125
+"burnmeter_emergency_battery",1,"#BURNMETER_EMERGENCY_BATTERY","#BURNMETER_EMERGENCY_BATTERY_DESC","rui/menu/boosts/boost_battery","models/weapons_r2/burn_card/burn_card.mdl",1,0.800000,"PILOT_ONLY","mp_ability_burncardweapon","burnmeter_emergency_battery","#BURNMETER_AT_BATTERY_BOOST_ACTIVATION_TEXT",125
+"burnmeter_smart_pistol",1,"#WPN_SMART_PISTOL","#WPN_SMART_PISTOL_LONGDESC","rui/menu/boosts/boost_smart_pistol","models/weapons_r2/burn_card/burn_card.mdl",2,0.600000,"PILOT_ONLY","mp_ability_burncardweapon","burnmeter_smart_pistol","#WPN_SMART_PISTOL_BOOST_ACTIVATION_TEXT",125
+"burnmeter_radar_jammer",1,"#BURNMETER_RADAR_JAMMER","#BURNMETER_RADAR_JAMMER_DESC","rui/menu/boosts/boost_radar_jammer","models/weapons_r2/burn_card/burn_card.mdl",3,0.400000,"PILOT_ONLY","mp_ability_burncardweapon","burnmeter_radar_jammer","#BURNMETER_RADAR_JAMMER_DESC",125
+"burnmeter_hard_cover",1,"#WPN_HARD_COVER","#WPN_HARD_COVER_DESC","rui/menu/boosts/boost_shield","models/weapons_r2/burn_card/burn_card.mdl",4,0.200000,"PILOT_ONLY","mp_weapon_hard_cover","","#WPN_HARD_COVER_DESC",125
+"burnmeter_nuke_titan",0,"#WPN_NUKE_TITAN","#WPN_NUKE_TITAN_DESC","rui/menu/boosts/boost_nuke","models/weapons_r2/burn_card/burn_card.mdl",9,0.200000,"SPECIAL_PLAYERS_ONLY","mp_ability_burncardweapon","burnmeter_nuke_titan","#WPN_NUKE_TITAN_DESC",125
+"burnmeter_harvester_shield",0,"#BURNMETER_HARVESTER_SHIELD","#BURNMETER_HARVESTER_SHIELD_DESC","rui/menu/boosts/boost_harvester","models/weapons_r2/burn_card/burn_card.mdl",9,0.200000,"SPECIAL_PLAYERS_ONLY","mp_ability_burncardweapon","burnmeter_harvester_shield","#BURNMETER_HARVESTER_SHIELD_DESC",125
+"burnmeter_arc_trap",0,"#WPN_ARC_TRAP","#WPN_ARC_TRAP_DESC","rui/menu/boosts/boost_arc_trap","models/weapons_r2/burn_card/burn_card.mdl",9,0.200000,"PILOT_ONLY","mp_weapon_arc_trap","","#WPN_ARC_TRAP_DESC",125
+"burnmeter_ap_turret_weapon_infinite",0,"#BURNMETER_AP_TURRETWEAPON_INF","#BURNMETER_AP_TURRETWEAPON_INF_DESC","rui/menu/boosts/boost_antipersonnel_sentry","models/weapons_r2/burn_card/burn_card.mdl",6,0.720000,"PILOT_ONLY","mp_ability_turretweapon","burnmeter_ap_turret_weapon_inf","#BURNMETER_AP_TURRETWEAPON_INF_DESC",125
+"burnmeter_at_turret_weapon_infinite",0,"#BURNMETER_AT_TURRETWEAPON_INF","#BURNMETER_AT_TURRETWEAPON_INF_DESC","rui/menu/boosts/boost_antititan_sentry","models/weapons_r2/burn_card/burn_card.mdl",7,0.350000,"PILOT_ONLY","mp_ability_turretweapon","burnmeter_at_turret_weapon_inf","#BURNMETER_AT_TURRETWEAPON_INF_DESC",125
+"burnmeter_rodeo_grenade",0,"#BURNMETER_SUPER_RODEO","#BURNMETER_SUPER_RODEO_DESC","rui/menu/boosts/boost_core_grenade","models/weapons_r2/burn_card/burn_card.mdl",9,0.350000,"PILOT_ONLY","mp_ability_burncardweapon","burnmeter_rodeo_grenade","#BURNMETER_SUPER_RODEO_DESC",125
+"burnmeter_instant_battery",0,"#BURNMETER_INSTANT_BATTERY","#BURNMETER_INSTANT_BATTERY_DESC","rui/menu/boosts/boost_battery","models/weapons_r2/burn_card/burn_card.mdl",1,0.800000,"PILOT_ONLY","mp_ability_burncardweapon","burnmeter_emergency_battery","#BURNMETER_INSTANT_BATTERY_DESC",125
+"burnmeter_amped_weapons_permanent",0,"#BURNMETER_AMPED_WEAPONS_PERMANENT","#BURNMETER_AMPED_WEAPONS_PERMANENT_DESC","rui/menu/boosts/boost_amped_weapons","models/weapons_r2/burn_card/burn_card.mdl",0,0.800000,"PILOT_AND_TITAN","mp_ability_burncardweapon","burnmeter_amped_weapons","#BURNMETER_AMPED_WEAPONS_PERMANENT_DESC",125 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/burn_meter_store.csv b/Northstar.CustomServers/mod/scripts/datatable/burn_meter_store.csv
new file mode 100644
index 00000000..2f05bfc8
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/burn_meter_store.csv
@@ -0,0 +1,21 @@
+itemRef,modes,cost,extraDesc,autoActivate,storeIcon,lockedStoreIcon,extraDescFail
+"burnmeter_maphack","",0,"",0,"rui/menu/boosts/boost_icon_map_hack","rui/menu/boosts/boost_icon_map_hack",""
+"burnmeter_amped_weapons","",100,"#BOOST_STORE_INSTANT",1,"rui/menu/boosts/boost_icon_amped","rui/menu/boosts/boost_icon_amped","#BOOST_STORE_AMPED_FAIL"
+"burnmeter_ticks","",50,"",0,"rui/menu/boosts/boost_icon_tick","rui/menu/boosts/boost_icon_tick",""
+"burnmeter_random_foil","",0,"",0,"rui/menu/boosts/boost_icon_random","rui/menu/boosts/boost_icon_random",""
+"burnmeter_ap_turret_weapon","",0,"",0,"rui/menu/boosts/boost_icon_personel_sentry","rui/menu/boosts/boost_icon_personel_sentry",""
+"burnmeter_phase_rewind","",0,"",0,"rui/menu/boosts/boost_icon_phase_rewind","rui/menu/boosts/boost_icon_phase_rewind",""
+"burnmeter_at_turret_weapon","",0,"",0,"rui/menu/boosts/boost_icon_titan_sentry","rui/menu/boosts/boost_icon_titan_sentry",""
+"burnmeter_holopilot_nova","",0,"",0,"rui/menu/boosts/boost_icon_holopilot","rui/menu/boosts/boost_icon_holopilot",""
+"burnmeter_emergency_battery","",0,"",0,"rui/menu/boosts/boost_icon_battery","rui/menu/boosts/boost_icon_battery",""
+"burnmeter_smart_pistol","",0,"",1,"rui/menu/boosts/boost_icon_smart_pistol","rui/menu/boosts/boost_icon_smart_pistol",""
+"burnmeter_radar_jammer","",0,"",0,"rui/menu/boosts/boost_icon_radar_jam","rui/menu/boosts/boost_icon_radar_jam",""
+"burnmeter_hard_cover","",0,"",0,"rui/menu/boosts/boost_icon_shield","rui/menu/boosts/boost_icon_shield",""
+"burnmeter_nuke_titan","",0,"",0,"rui/menu/boosts/boost_icon_nuke","rui/menu/boosts/boost_icon_nuke",""
+"burnmeter_harvester_shield","fd",1200,"",1,"rui/menu/boosts/boost_icon_harvester_shield","rui/menu/boosts/locked/boost_icon_harvester_shield","#BOOST_STORE_HARVESTER_SHIELD_FAIL"
+"burnmeter_arc_trap","fd",650,"",0,"rui/menu/boosts/boost_icon_arc_trap","rui/menu/boosts/locked/boost_icon_arc_trap","#BOOST_STORE_ARC_TRAP_FAIL"
+"burnmeter_at_turret_weapon_infinite","",1200,"#BOOST_STORE_TURRET_LIMIT",0,"rui/menu/boosts/boost_icon_titan_sentry","rui/menu/boosts/boost_icon_titan_sentry",""
+"burnmeter_ap_turret_weapon_infinite","fd",1200,"#BOOST_STORE_TURRET_LIMIT",0,"rui/menu/boosts/boost_icon_personel_sentry","rui/menu/boosts/locked/boost_icon_personel_sentry","#BOOST_STORE_TURRET_FAIL"
+"burnmeter_rodeo_grenade","fd",500,"",1,"rui/menu/boosts/boost_icon_core_overload","rui/menu/boosts/locked/boost_icon_core_overload","#BOOST_STORE_RODEO_GRENADE_FAIL"
+"burnmeter_instant_battery","fd",400,"#BOOST_STORE_INSTANT",1,"rui/menu/boosts/boost_icon_battery_amped","rui/menu/boosts/locked/boost_icon_battery_amped","#BOOST_STORE_BATTERY_FAIL"
+"burnmeter_amped_weapons_permanent","fd",100,"#BOOST_STORE_INSTANT",1,"rui/menu/boosts/boost_icon_amped","rui/menu/boosts/locked/boost_icon_amped","#BOOST_STORE_AMPED_FAIL" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/caller_ids_mp.csv b/Northstar.CustomServers/mod/scripts/datatable/caller_ids_mp.csv
new file mode 100644
index 00000000..dcb3f5ab
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/caller_ids_mp.csv
@@ -0,0 +1,2 @@
+title,image
+"#FACTION_LEADER_NAME_MARVIN","rui/hud/caller_ids/caller_id_36" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/calling_cards.csv b/Northstar.CustomServers/mod/scripts/datatable/calling_cards.csv
new file mode 100644
index 00000000..998e644e
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/calling_cards.csv
@@ -0,0 +1,491 @@
+itemRef,name,layoutType,image,cost
+"callsign_01_col","#BANNER_CALLSIGN1",0,"rui/callsigns/callsign_01_col",0
+"callsign_02_col","#BANNER_CALLSIGN2",0,"rui/callsigns/callsign_02_col",100
+"callsign_03_col","#BANNER_CALLSIGN3",0,"rui/callsigns/callsign_03_col",0
+"callsign_04_col","#BANNER_CALLSIGN4",0,"rui/callsigns/callsign_04_col",0
+"callsign_05_col","#BANNER_CALLSIGN5",0,"rui/callsigns/callsign_05_col",0
+"callsign_06_col","#BANNER_CALLSIGN6",0,"rui/callsigns/callsign_06_col",0
+"callsign_07_col","#BANNER_CALLSIGN7",0,"rui/callsigns/callsign_07_col",0
+"callsign_08_col","#BANNER_CALLSIGN8",0,"rui/callsigns/callsign_08_col",100
+"callsign_09_col","#BANNER_CALLSIGN9",0,"rui/callsigns/callsign_09_col",0
+"callsign_10_col","#BANNER_CALLSIGN10",0,"rui/callsigns/callsign_10_col",100
+"callsign_11_col","#BANNER_CALLSIGN11",0,"rui/callsigns/callsign_11_col",0
+"callsign_12_col","#BANNER_CALLSIGN12",0,"rui/callsigns/callsign_12_col",100
+"callsign_13_col","#BANNER_CALLSIGN13",0,"rui/callsigns/callsign_13_col",0
+"callsign_14_col","#BANNER_CALLSIGN14",0,"rui/callsigns/callsign_14_col",0
+"callsign_15_col","#BANNER_CALLSIGN15",0,"rui/callsigns/callsign_15_col",0
+"callsign_16_col","#BANNER_CALLSIGN16",0,"rui/callsigns/callsign_16_col",0
+"callsign_17_col","#BANNER_CALLSIGN17",0,"rui/callsigns/callsign_17_col",100
+"callsign_18_col","#BANNER_CALLSIGN18",0,"rui/callsigns/callsign_18_col",0
+"callsign_19_col","#BANNER_CALLSIGN19",0,"rui/callsigns/callsign_19_col",0
+"callsign_20_col","#BANNER_CALLSIGN20",0,"rui/callsigns/callsign_20_col",100
+"callsign_21_col","#BANNER_CALLSIGN21",0,"rui/callsigns/callsign_21_col",0
+"callsign_22_col","#BANNER_CALLSIGN22",0,"rui/callsigns/callsign_22_col",0
+"callsign_23_col","#BANNER_CALLSIGN23",0,"rui/callsigns/callsign_23_col",0
+"callsign_24_col","#BANNER_CALLSIGN24",0,"rui/callsigns/callsign_24_col",0
+"callsign_25_col","#BANNER_CALLSIGN25",0,"rui/callsigns/callsign_25_col",100
+"callsign_26_col","#BANNER_CALLSIGN26",0,"rui/callsigns/callsign_26_col",0
+"callsign_27_col","#BANNER_CALLSIGN27",0,"rui/callsigns/callsign_27_col",0
+"callsign_28_col","#BANNER_CALLSIGN28",0,"rui/callsigns/callsign_28_col",100
+"callsign_29_col","#BANNER_CALLSIGN29",0,"rui/callsigns/callsign_29_col",0
+"callsign_30_col","#BANNER_CALLSIGN30",0,"rui/callsigns/callsign_30_col",0
+"callsign_31_col","#BANNER_CALLSIGN31",0,"rui/callsigns/callsign_31_col",0
+"callsign_32_col","#BANNER_CALLSIGN32",0,"rui/callsigns/callsign_32_col",100
+"callsign_34_col","#BANNER_CALLSIGN34",0,"rui/callsigns/callsign_34_col",0
+"callsign_35_col","#BANNER_CALLSIGN35",0,"rui/callsigns/callsign_35_col",0
+"callsign_36_col","#BANNER_CALLSIGN36",0,"rui/callsigns/callsign_36_col",0
+"callsign_37_col","#BANNER_CALLSIGN37",0,"rui/callsigns/callsign_37_col",0
+"callsign_39_col","#BANNER_CALLSIGN39",0,"rui/callsigns/callsign_39_col",0
+"callsign_40_col","#BANNER_CALLSIGN40",0,"rui/callsigns/callsign_40_col",0
+"callsign_41_col","#BANNER_CALLSIGN41",0,"rui/callsigns/callsign_41_col",0
+"callsign_42_col","#BANNER_CALLSIGN42",0,"rui/callsigns/callsign_42_col",0
+"callsign_43_col","#BANNER_CALLSIGN43",0,"rui/callsigns/callsign_43_col",100
+"callsign_44_col","#BANNER_CALLSIGN44",0,"rui/callsigns/callsign_44_col",100
+"callsign_45_col","#BANNER_CALLSIGN45",0,"rui/callsigns/callsign_45_col",0
+"callsign_46_col","#BANNER_CALLSIGN46",0,"rui/callsigns/callsign_46_col",0
+"callsign_47_col","#BANNER_CALLSIGN47",0,"rui/callsigns/callsign_47_col",0
+"callsign_48_col","#BANNER_CALLSIGN48",0,"rui/callsigns/callsign_48_col",0
+"callsign_49_col","#BANNER_CALLSIGN49",0,"rui/callsigns/callsign_49_col",100
+"callsign_50_col","#BANNER_CALLSIGN50",0,"rui/callsigns/callsign_50_col",100
+"callsign_51_col","#BANNER_CALLSIGN51",0,"rui/callsigns/callsign_51_col",0
+"callsign_52_col","#BANNER_CALLSIGN52",0,"rui/callsigns/callsign_52_col",100
+"callsign_53_col","#BANNER_CALLSIGN53",0,"rui/callsigns/callsign_53_col",0
+"callsign_54_col","#BANNER_CALLSIGN54",0,"rui/callsigns/callsign_54_col",100
+"callsign_55_col","#BANNER_CALLSIGN55",0,"rui/callsigns/callsign_55_col",0
+"callsign_56_col","#BANNER_CALLSIGN56",0,"rui/callsigns/callsign_56_col",100
+"callsign_57_col","#BANNER_CALLSIGN57",0,"rui/callsigns/callsign_57_col",0
+"callsign_58_col","#BANNER_CALLSIGN58",0,"rui/callsigns/callsign_58_col",100
+"callsign_59_col","#BANNER_CALLSIGN59",0,"rui/callsigns/callsign_59_col",0
+"callsign_60_col","#BANNER_CALLSIGN60",0,"rui/callsigns/callsign_60_col",100
+"callsign_61_col","#BANNER_CALLSIGN61",0,"rui/callsigns/callsign_61_col",100
+"callsign_62_col","#BANNER_CALLSIGN62",0,"rui/callsigns/callsign_62_col",100
+"callsign_63_col","#BANNER_CALLSIGN63",0,"rui/callsigns/callsign_63_col",100
+"callsign_64_col","#BANNER_CALLSIGN64",0,"rui/callsigns/callsign_64_col",100
+"callsign_66_col","#BANNER_CALLSIGN66",0,"rui/callsigns/callsign_66_col",0
+"callsign_67_col","#BANNER_CALLSIGN67",0,"rui/callsigns/callsign_67_col",0
+"callsign_68_col","#BANNER_CALLSIGN68",0,"rui/callsigns/callsign_68_col",0
+"callsign_69_col","#BANNER_CALLSIGN69",0,"rui/callsigns/callsign_69_col",0
+"callsign_70_col","#BANNER_CALLSIGN70",0,"rui/callsigns/callsign_70_col",0
+"callsign_71_col","#BANNER_CALLSIGN71",0,"rui/callsigns/callsign_71_col",100
+"callsign_72_col","#BANNER_CALLSIGN72",0,"rui/callsigns/callsign_72_col",100
+"callsign_73_col","#BANNER_CALLSIGN73",0,"rui/callsigns/callsign_73_col",100
+"callsign_74_col","#BANNER_CALLSIGN74",0,"rui/callsigns/callsign_74_col",100
+"callsign_75_col","#BANNER_CALLSIGN75",0,"rui/callsigns/callsign_75_col",0
+"callsign_76_col","#BANNER_CALLSIGN76",0,"rui/callsigns/callsign_76_col",0
+"callsign_77_col","#BANNER_CALLSIGN77",0,"rui/callsigns/callsign_77_col",100
+"callsign_78_col","#BANNER_CALLSIGN78",0,"rui/callsigns/callsign_78_col",0
+"callsign_79_col","#BANNER_CALLSIGN79",0,"rui/callsigns/callsign_79_col",0
+"callsign_80_col","#BANNER_CALLSIGN80",0,"rui/callsigns/callsign_80_col",100
+"callsign_81_col","#BANNER_CALLSIGN81",0,"rui/callsigns/callsign_81_col",100
+"callsign_82_col","#BANNER_CALLSIGN82",0,"rui/callsigns/callsign_82_col",100
+"callsign_83_col","#BANNER_CALLSIGN83",0,"rui/callsigns/callsign_83_col",100
+"callsign_84_col","#BANNER_CALLSIGN84",0,"rui/callsigns/callsign_84_col",100
+"callsign_85_col","#BANNER_CALLSIGN85",0,"rui/callsigns/callsign_85_col",100
+"callsign_86_col","#BANNER_CALLSIGN86",0,"rui/callsigns/callsign_86_col",100
+"callsign_87_col","#BANNER_CALLSIGN87",0,"rui/callsigns/callsign_87_col",100
+"callsign_88_col","#BANNER_CALLSIGN88",0,"rui/callsigns/callsign_88_col",100
+"callsign_89_col","#BANNER_CALLSIGN89",0,"rui/callsigns/callsign_89_col",100
+"callsign_90_col","#BANNER_CALLSIGN90",0,"rui/callsigns/callsign_90_col",100
+"callsign_91_col","#BANNER_CALLSIGN91",0,"rui/callsigns/callsign_91_col",100
+"callsign_92_col","#BANNER_CALLSIGN92",0,"rui/callsigns/callsign_92_col",0
+"callsign_93_col","#BANNER_CALLSIGN93",0,"rui/callsigns/callsign_93_col",100
+"callsign_94_col","#BANNER_CALLSIGN94",0,"rui/callsigns/callsign_94_col",0
+"callsign_95_col","#BANNER_CALLSIGN95",0,"rui/callsigns/callsign_95_col",100
+"callsign_96_col","#BANNER_CALLSIGN96",0,"rui/callsigns/callsign_96_col",0
+"callsign_97_col","#BANNER_CALLSIGN97",0,"rui/callsigns/callsign_97_col",0
+"callsign_98_col","#BANNER_CALLSIGN98",0,"rui/callsigns/callsign_98_col",100
+"callsign_99_col","#BANNER_CALLSIGN99",0,"rui/callsigns/callsign_99_col",0
+"callsign_100_col","#BANNER_CALLSIGN100",0,"rui/callsigns/callsign_100_col",0
+"callsign_101_col","#BANNER_CALLSIGN101",0,"rui/callsigns/callsign_101_col",100
+"callsign_102_col","#BANNER_CALLSIGN102",0,"rui/callsigns/callsign_102_col",100
+"callsign_103_col","#BANNER_CALLSIGN103",0,"rui/callsigns/callsign_103_col",0
+"callsign_104_col","#BANNER_CALLSIGN104",0,"rui/callsigns/callsign_104_col",0
+"callsign_02_col_prism","#BANNER_PRISM_CALLSIGN2",1,"rui/callsigns/callsign_02_col",250
+"callsign_08_col_prism","#BANNER_PRISM_CALLSIGN8",1,"rui/callsigns/callsign_08_col",250
+"callsign_10_col_prism","#BANNER_PRISM_CALLSIGN10",1,"rui/callsigns/callsign_10_col",250
+"callsign_12_col_prism","#BANNER_PRISM_CALLSIGN12",1,"rui/callsigns/callsign_12_col",250
+"callsign_17_col_prism","#BANNER_PRISM_CALLSIGN17",1,"rui/callsigns/callsign_17_col",250
+"callsign_20_col_prism","#BANNER_PRISM_CALLSIGN20",1,"rui/callsigns/callsign_20_col",250
+"callsign_25_col_prism","#BANNER_PRISM_CALLSIGN25",1,"rui/callsigns/callsign_25_col",250
+"callsign_28_col_prism","#BANNER_PRISM_CALLSIGN28",1,"rui/callsigns/callsign_28_col",250
+"callsign_32_col_prism","#BANNER_PRISM_CALLSIGN32",1,"rui/callsigns/callsign_32_col",250
+"callsign_43_col_prism","#BANNER_PRISM_CALLSIGN43",1,"rui/callsigns/callsign_43_col",250
+"callsign_44_col_prism","#BANNER_PRISM_CALLSIGN44",1,"rui/callsigns/callsign_44_col",250
+"callsign_49_col_prism","#BANNER_PRISM_CALLSIGN49",1,"rui/callsigns/callsign_49_col",250
+"callsign_50_col_prism","#BANNER_PRISM_CALLSIGN50",1,"rui/callsigns/callsign_50_col",250
+"callsign_52_col_prism","#BANNER_PRISM_CALLSIGN52",1,"rui/callsigns/callsign_52_col",250
+"callsign_54_col_prism","#BANNER_PRISM_CALLSIGN54",1,"rui/callsigns/callsign_54_col",250
+"callsign_56_col_prism","#BANNER_PRISM_CALLSIGN56",1,"rui/callsigns/callsign_56_col",250
+"callsign_58_col_prism","#BANNER_PRISM_CALLSIGN58",1,"rui/callsigns/callsign_58_col",250
+"callsign_60_col_prism","#BANNER_PRISM_CALLSIGN60",1,"rui/callsigns/callsign_60_col",250
+"callsign_61_col_prism","#BANNER_PRISM_CALLSIGN61",1,"rui/callsigns/callsign_61_col",250
+"callsign_62_col_prism","#BANNER_PRISM_CALLSIGN62",1,"rui/callsigns/callsign_62_col",250
+"callsign_63_col_prism","#BANNER_PRISM_CALLSIGN63",1,"rui/callsigns/callsign_63_col",250
+"callsign_64_col_prism","#BANNER_PRISM_CALLSIGN64",1,"rui/callsigns/callsign_64_col",250
+"callsign_71_col_prism","#BANNER_PRISM_CALLSIGN71",1,"rui/callsigns/callsign_71_col",250
+"callsign_72_col_prism","#BANNER_PRISM_CALLSIGN72",1,"rui/callsigns/callsign_72_col",250
+"callsign_73_col_prism","#BANNER_PRISM_CALLSIGN73",1,"rui/callsigns/callsign_73_col",250
+"callsign_74_col_prism","#BANNER_PRISM_CALLSIGN74",1,"rui/callsigns/callsign_74_col",250
+"callsign_77_col_prism","#BANNER_PRISM_CALLSIGN77",1,"rui/callsigns/callsign_77_col",250
+"callsign_80_col_prism","#BANNER_PRISM_CALLSIGN80",1,"rui/callsigns/callsign_80_col",250
+"callsign_81_col_prism","#BANNER_PRISM_CALLSIGN81",1,"rui/callsigns/callsign_81_col",250
+"callsign_82_col_prism","#BANNER_PRISM_CALLSIGN82",1,"rui/callsigns/callsign_82_col",250
+"callsign_83_col_prism","#BANNER_PRISM_CALLSIGN83",1,"rui/callsigns/callsign_83_col",250
+"callsign_84_col_prism","#BANNER_PRISM_CALLSIGN84",1,"rui/callsigns/callsign_84_col",250
+"callsign_85_col_prism","#BANNER_PRISM_CALLSIGN85",1,"rui/callsigns/callsign_85_col",250
+"callsign_86_col_prism","#BANNER_PRISM_CALLSIGN86",1,"rui/callsigns/callsign_86_col",250
+"callsign_87_col_prism","#BANNER_PRISM_CALLSIGN87",1,"rui/callsigns/callsign_87_col",250
+"callsign_88_col_prism","#BANNER_PRISM_CALLSIGN88",1,"rui/callsigns/callsign_88_col",250
+"callsign_89_col_prism","#BANNER_PRISM_CALLSIGN89",1,"rui/callsigns/callsign_89_col",250
+"callsign_90_col_prism","#BANNER_PRISM_CALLSIGN90",1,"rui/callsigns/callsign_90_col",250
+"callsign_91_col_prism","#BANNER_PRISM_CALLSIGN91",1,"rui/callsigns/callsign_91_col",250
+"callsign_93_col_prism","#BANNER_PRISM_CALLSIGN93",1,"rui/callsigns/callsign_93_col",250
+"callsign_95_col_prism","#BANNER_PRISM_CALLSIGN95",1,"rui/callsigns/callsign_95_col",250
+"callsign_98_col_prism","#BANNER_PRISM_CALLSIGN98",1,"rui/callsigns/callsign_98_col",250
+"callsign_101_col_prism","#BANNER_PRISM_CALLSIGN101",1,"rui/callsigns/callsign_101_col",250
+"callsign_102_col_prism","#BANNER_PRISM_CALLSIGN102",1,"rui/callsigns/callsign_102_col",250
+"callsign_16_col_gold","#BANNER_GOLD_CALLSIGN16",2,"rui/callsigns/callsign_16_col",0
+"callsign_01_col_gold","#BANNER_GOLD_CALLSIGN1",2,"rui/callsigns/callsign_01_col",0
+"callsign_03_col_gold","#BANNER_GOLD_CALLSIGN3",2,"rui/callsigns/callsign_03_col",0
+"callsign_04_col_gold","#BANNER_GOLD_CALLSIGN4",2,"rui/callsigns/callsign_04_col",0
+"callsign_05_col_gold","#BANNER_GOLD_CALLSIGN5",2,"rui/callsigns/callsign_05_col",0
+"callsign_06_col_gold","#BANNER_GOLD_CALLSIGN6",2,"rui/callsigns/callsign_06_col",0
+"callsign_07_col_gold","#BANNER_GOLD_CALLSIGN7",2,"rui/callsigns/callsign_07_col",0
+"callsign_09_col_gold","#BANNER_GOLD_CALLSIGN9",2,"rui/callsigns/callsign_09_col",0
+"callsign_11_col_gold","#BANNER_GOLD_CALLSIGN11",2,"rui/callsigns/callsign_11_col",0
+"callsign_13_col_gold","#BANNER_GOLD_CALLSIGN13",2,"rui/callsigns/callsign_13_col",0
+"callsign_14_col_gold","#BANNER_GOLD_CALLSIGN14",2,"rui/callsigns/callsign_14_col",0
+"callsign_15_col_gold","#BANNER_GOLD_CALLSIGN15",2,"rui/callsigns/callsign_15_col",0
+"callsign_18_col_gold","#BANNER_GOLD_CALLSIGN18",2,"rui/callsigns/callsign_18_col",0
+"callsign_19_col_gold","#BANNER_GOLD_CALLSIGN19",2,"rui/callsigns/callsign_19_col",0
+"callsign_21_col_gold","#BANNER_GOLD_CALLSIGN21",2,"rui/callsigns/callsign_21_col",0
+"callsign_22_col_gold","#BANNER_GOLD_CALLSIGN22",2,"rui/callsigns/callsign_22_col",0
+"callsign_23_col_gold","#BANNER_GOLD_CALLSIGN23",2,"rui/callsigns/callsign_23_col",0
+"callsign_24_col_gold","#BANNER_GOLD_CALLSIGN24",2,"rui/callsigns/callsign_24_col",0
+"callsign_26_col_gold","#BANNER_GOLD_CALLSIGN26",2,"rui/callsigns/callsign_26_col",0
+"callsign_27_col_gold","#BANNER_GOLD_CALLSIGN27",2,"rui/callsigns/callsign_27_col",0
+"callsign_29_col_gold","#BANNER_GOLD_CALLSIGN29",2,"rui/callsigns/callsign_29_col",0
+"callsign_30_col_gold","#BANNER_GOLD_CALLSIGN30",2,"rui/callsigns/callsign_30_col",0
+"callsign_31_col_gold","#BANNER_GOLD_CALLSIGN31",2,"rui/callsigns/callsign_31_col",0
+"callsign_33_col_gold","#BANNER_GOLD_CALLSIGN33",2,"rui/callsigns/callsign_33_col",0
+"callsign_34_col_gold","#BANNER_GOLD_CALLSIGN34",2,"rui/callsigns/callsign_34_col",0
+"callsign_35_col_gold","#BANNER_GOLD_CALLSIGN35",2,"rui/callsigns/callsign_35_col",0
+"callsign_36_col_gold","#BANNER_GOLD_CALLSIGN36",2,"rui/callsigns/callsign_36_col",0
+"callsign_37_col_gold","#BANNER_GOLD_CALLSIGN37",2,"rui/callsigns/callsign_37_col",0
+"callsign_38_col_gold","#BANNER_GOLD_CALLSIGN38",2,"rui/callsigns/callsign_38_col",0
+"callsign_39_col_gold","#BANNER_GOLD_CALLSIGN39",2,"rui/callsigns/callsign_39_col",0
+"callsign_40_col_gold","#BANNER_GOLD_CALLSIGN40",2,"rui/callsigns/callsign_40_col",0
+"callsign_41_col_gold","#BANNER_GOLD_CALLSIGN41",2,"rui/callsigns/callsign_41_col",0
+"callsign_42_col_gold","#BANNER_GOLD_CALLSIGN42",2,"rui/callsigns/callsign_42_col",0
+"callsign_45_col_gold","#BANNER_GOLD_CALLSIGN45",2,"rui/callsigns/callsign_45_col",0
+"callsign_46_col_gold","#BANNER_GOLD_CALLSIGN46",2,"rui/callsigns/callsign_46_col",0
+"callsign_47_col_gold","#BANNER_GOLD_CALLSIGN47",2,"rui/callsigns/callsign_47_col",0
+"callsign_48_col_gold","#BANNER_GOLD_CALLSIGN48",2,"rui/callsigns/callsign_48_col",0
+"callsign_51_col_gold","#BANNER_GOLD_CALLSIGN51",2,"rui/callsigns/callsign_51_col",0
+"callsign_53_col_gold","#BANNER_GOLD_CALLSIGN53",2,"rui/callsigns/callsign_53_col",0
+"callsign_55_col_gold","#BANNER_GOLD_CALLSIGN55",2,"rui/callsigns/callsign_55_col",0
+"callsign_57_col_gold","#BANNER_GOLD_CALLSIGN57",2,"rui/callsigns/callsign_57_col",0
+"callsign_59_col_gold","#BANNER_GOLD_CALLSIGN59",2,"rui/callsigns/callsign_59_col",0
+"callsign_65_col_gold","#BANNER_GOLD_CALLSIGN65",2,"rui/callsigns/callsign_65_col",0
+"callsign_66_col_gold","#BANNER_GOLD_CALLSIGN66",2,"rui/callsigns/callsign_66_col",0
+"callsign_67_col_gold","#BANNER_GOLD_CALLSIGN67",2,"rui/callsigns/callsign_67_col",0
+"callsign_68_col_gold","#BANNER_GOLD_CALLSIGN68",2,"rui/callsigns/callsign_68_col",0
+"callsign_69_col_gold","#BANNER_GOLD_CALLSIGN69",2,"rui/callsigns/callsign_69_col",0
+"callsign_70_col_gold","#BANNER_GOLD_CALLSIGN70",2,"rui/callsigns/callsign_70_col",0
+"callsign_71_col_gold","#BANNER_GOLD_CALLSIGN71",2,"rui/callsigns/callsign_71_col",0
+"callsign_75_col_gold","#BANNER_GOLD_CALLSIGN75",2,"rui/callsigns/callsign_75_col",0
+"callsign_76_col_gold","#BANNER_GOLD_CALLSIGN76",2,"rui/callsigns/callsign_76_col",0
+"callsign_78_col_gold","#BANNER_GOLD_CALLSIGN78",2,"rui/callsigns/callsign_78_col",0
+"callsign_79_col_gold","#BANNER_GOLD_CALLSIGN79",2,"rui/callsigns/callsign_79_col",0
+"callsign_92_col_gold","#BANNER_GOLD_CALLSIGN92",2,"rui/callsigns/callsign_92_col",0
+"callsign_94_col_gold","#BANNER_GOLD_CALLSIGN94",2,"rui/callsigns/callsign_94_col",0
+"callsign_96_col_gold","#BANNER_GOLD_CALLSIGN96",2,"rui/callsigns/callsign_96_col",0
+"callsign_97_col_gold","#BANNER_GOLD_CALLSIGN97",2,"rui/callsigns/callsign_97_col",0
+"callsign_99_col_gold","#BANNER_GOLD_CALLSIGN99",2,"rui/callsigns/callsign_99_col",0
+"callsign_100_col_gold","#BANNER_GOLD_CALLSIGN100",2,"rui/callsigns/callsign_100_col",0
+"callsign_103_col_gold","#BANNER_GOLD_CALLSIGN103",2,"rui/callsigns/callsign_103_col",0
+"callsign_104_col_gold","#BANNER_GOLD_CALLSIGN104",2,"rui/callsigns/callsign_104_col",0
+"callsign_105_col_gold","#BANNER_GOLD_CALLSIGN105",2,"rui/callsigns/callsign_105_col",0
+"callsign_16_col_fire","#BANNER_FIRE_CALLSIGN16",3,"rui/callsigns/callsign_16_col",0
+"callsign_01_col_fire","#BANNER_FIRE_CALLSIGN1",3,"rui/callsigns/callsign_01_col",0
+"callsign_03_col_fire","#BANNER_FIRE_CALLSIGN3",3,"rui/callsigns/callsign_03_col",0
+"callsign_04_col_fire","#BANNER_FIRE_CALLSIGN4",3,"rui/callsigns/callsign_04_col",0
+"callsign_05_col_fire","#BANNER_FIRE_CALLSIGN5",3,"rui/callsigns/callsign_05_col",0
+"callsign_06_col_fire","#BANNER_FIRE_CALLSIGN6",3,"rui/callsigns/callsign_06_col",0
+"callsign_07_col_fire","#BANNER_FIRE_CALLSIGN7",3,"rui/callsigns/callsign_07_col",0
+"callsign_09_col_fire","#BANNER_FIRE_CALLSIGN9",3,"rui/callsigns/callsign_09_col",0
+"callsign_11_col_fire","#BANNER_FIRE_CALLSIGN11",3,"rui/callsigns/callsign_11_col",0
+"callsign_13_col_fire","#BANNER_FIRE_CALLSIGN13",3,"rui/callsigns/callsign_13_col",0
+"callsign_14_col_fire","#BANNER_FIRE_CALLSIGN14",3,"rui/callsigns/callsign_14_col",0
+"callsign_15_col_fire","#BANNER_FIRE_CALLSIGN15",3,"rui/callsigns/callsign_15_col",0
+"callsign_18_col_fire","#BANNER_FIRE_CALLSIGN18",3,"rui/callsigns/callsign_18_col",0
+"callsign_19_col_fire","#BANNER_FIRE_CALLSIGN19",3,"rui/callsigns/callsign_19_col",0
+"callsign_21_col_fire","#BANNER_FIRE_CALLSIGN21",3,"rui/callsigns/callsign_21_col",0
+"callsign_22_col_fire","#BANNER_FIRE_CALLSIGN22",3,"rui/callsigns/callsign_22_col",0
+"callsign_23_col_fire","#BANNER_FIRE_CALLSIGN23",3,"rui/callsigns/callsign_23_col",0
+"callsign_24_col_fire","#BANNER_FIRE_CALLSIGN24",3,"rui/callsigns/callsign_24_col",0
+"callsign_26_col_fire","#BANNER_FIRE_CALLSIGN26",3,"rui/callsigns/callsign_26_col",0
+"callsign_27_col_fire","#BANNER_FIRE_CALLSIGN27",3,"rui/callsigns/callsign_27_col",0
+"callsign_29_col_fire","#BANNER_FIRE_CALLSIGN29",3,"rui/callsigns/callsign_29_col",0
+"callsign_30_col_fire","#BANNER_FIRE_CALLSIGN30",3,"rui/callsigns/callsign_30_col",0
+"callsign_31_col_fire","#BANNER_FIRE_CALLSIGN31",3,"rui/callsigns/callsign_31_col",0
+"callsign_34_col_fire","#BANNER_FIRE_CALLSIGN34",3,"rui/callsigns/callsign_34_col",0
+"callsign_35_col_fire","#BANNER_FIRE_CALLSIGN35",3,"rui/callsigns/callsign_35_col",0
+"callsign_36_col_fire","#BANNER_FIRE_CALLSIGN36",3,"rui/callsigns/callsign_36_col",0
+"callsign_37_col_fire","#BANNER_FIRE_CALLSIGN37",3,"rui/callsigns/callsign_37_col",0
+"callsign_39_col_fire","#BANNER_FIRE_CALLSIGN39",3,"rui/callsigns/callsign_39_col",0
+"callsign_40_col_fire","#BANNER_FIRE_CALLSIGN40",3,"rui/callsigns/callsign_40_col",0
+"callsign_41_col_fire","#BANNER_FIRE_CALLSIGN41",3,"rui/callsigns/callsign_41_col",0
+"callsign_42_col_fire","#BANNER_FIRE_CALLSIGN42",3,"rui/callsigns/callsign_42_col",0
+"callsign_45_col_fire","#BANNER_FIRE_CALLSIGN45",3,"rui/callsigns/callsign_45_col",0
+"callsign_46_col_fire","#BANNER_FIRE_CALLSIGN46",3,"rui/callsigns/callsign_46_col",0
+"callsign_47_col_fire","#BANNER_FIRE_CALLSIGN47",3,"rui/callsigns/callsign_47_col",0
+"callsign_48_col_fire","#BANNER_FIRE_CALLSIGN48",3,"rui/callsigns/callsign_48_col",0
+"callsign_51_col_fire","#BANNER_FIRE_CALLSIGN51",3,"rui/callsigns/callsign_51_col",0
+"callsign_53_col_fire","#BANNER_FIRE_CALLSIGN53",3,"rui/callsigns/callsign_53_col",0
+"callsign_55_col_fire","#BANNER_FIRE_CALLSIGN55",3,"rui/callsigns/callsign_55_col",0
+"callsign_57_col_fire","#BANNER_FIRE_CALLSIGN57",3,"rui/callsigns/callsign_57_col",0
+"callsign_59_col_fire","#BANNER_FIRE_CALLSIGN59",3,"rui/callsigns/callsign_59_col",0
+"callsign_66_col_fire","#BANNER_FIRE_CALLSIGN66",3,"rui/callsigns/callsign_66_col",0
+"callsign_67_col_fire","#BANNER_FIRE_CALLSIGN67",3,"rui/callsigns/callsign_67_col",0
+"callsign_68_col_fire","#BANNER_FIRE_CALLSIGN68",3,"rui/callsigns/callsign_68_col",0
+"callsign_69_col_fire","#BANNER_FIRE_CALLSIGN69",3,"rui/callsigns/callsign_69_col",0
+"callsign_70_col_fire","#BANNER_FIRE_CALLSIGN70",3,"rui/callsigns/callsign_70_col",0
+"callsign_75_col_fire","#BANNER_FIRE_CALLSIGN75",3,"rui/callsigns/callsign_75_col",0
+"callsign_76_col_fire","#BANNER_FIRE_CALLSIGN76",3,"rui/callsigns/callsign_76_col",0
+"callsign_78_col_fire","#BANNER_FIRE_CALLSIGN78",3,"rui/callsigns/callsign_78_col",0
+"callsign_79_col_fire","#BANNER_FIRE_CALLSIGN79",3,"rui/callsigns/callsign_79_col",0
+"callsign_92_col_fire","#BANNER_FIRE_CALLSIGN92",3,"rui/callsigns/callsign_92_col",0
+"callsign_94_col_fire","#BANNER_FIRE_CALLSIGN94",3,"rui/callsigns/callsign_94_col",0
+"callsign_96_col_fire","#BANNER_FIRE_CALLSIGN96",3,"rui/callsigns/callsign_96_col",0
+"callsign_97_col_fire","#BANNER_FIRE_CALLSIGN97",3,"rui/callsigns/callsign_97_col",0
+"callsign_99_col_fire","#BANNER_FIRE_CALLSIGN99",3,"rui/callsigns/callsign_99_col",0
+"callsign_100_col_fire","#BANNER_FIRE_CALLSIGN100",3,"rui/callsigns/callsign_100_col",0
+"callsign_103_col_fire","#BANNER_FIRE_CALLSIGN103",3,"rui/callsigns/callsign_103_col",0
+"callsign_104_col_fire","#BANNER_FIRE_CALLSIGN104",3,"rui/callsigns/callsign_104_col",0
+"callsign_106_col","#BANNER_CALLSIGN106",0,"rui/callsigns/callsign_106_col",0
+"callsign_107_col","#BANNER_CALLSIGN107",0,"rui/callsigns/callsign_107_col",0
+"callsign_108_col","#BANNER_CALLSIGN108",0,"rui/callsigns/callsign_108_col",0
+"callsign_109_col","#BANNER_CALLSIGN109",0,"rui/callsigns/callsign_109_col",0
+"callsign_110_col","#BANNER_CALLSIGN110",0,"rui/callsigns/callsign_110_col",0
+"callsign_111_col","#BANNER_CALLSIGN111",0,"rui/callsigns/callsign_111_col",0
+"callsign_112_col","#BANNER_CALLSIGN112",0,"rui/callsigns/callsign_112_col",0
+"callsign_113_col","#BANNER_CALLSIGN113",0,"rui/callsigns/callsign_113_col",0
+"callsign_114_col","#BANNER_CALLSIGN114",0,"rui/callsigns/callsign_114_col",0
+"callsign_115_col","#BANNER_CALLSIGN115",0,"rui/callsigns/callsign_115_col",0
+"callsign_116_col","#BANNER_CALLSIGN116",0,"rui/callsigns/callsign_116_col",0
+"callsign_117_col","#BANNER_CALLSIGN117",0,"rui/callsigns/callsign_117_col",0
+"callsign_118_col","#BANNER_CALLSIGN118",0,"rui/callsigns/callsign_118_col",0
+"callsign_119_col","#BANNER_CALLSIGN119",0,"rui/callsigns/callsign_119_col",0
+"callsign_120_col","#BANNER_CALLSIGN120",0,"rui/callsigns/callsign_120_col",0
+"callsign_121_col","#BANNER_CALLSIGN121",0,"rui/callsigns/callsign_121_col",0
+"callsign_122_col","#BANNER_CALLSIGN122",0,"rui/callsigns/callsign_122_col",0
+"callsign_123_col","#BANNER_CALLSIGN123",0,"rui/callsigns/callsign_123_col",0
+"callsign_124_col","#BANNER_CALLSIGN124",0,"rui/callsigns/callsign_124_col",0
+"callsign_125_col","#BANNER_CALLSIGN125",0,"rui/callsigns/callsign_125_col",0
+"callsign_139_col","#BANNER_CALLSIGN139",0,"rui/callsigns/callsign_139_col",0
+"callsign_139_col_fire","#BANNER_FIRE_CALLSIGN139",3,"rui/callsigns/callsign_139_col",0
+"callsign_139_col_gold","#BANNER_GOLD_CALLSIGN139",2,"rui/callsigns/callsign_139_col",0
+"callsign_126_col","#BANNER_CALLSIGN126",0,"rui/callsigns/callsign_126_col",0
+"callsign_127_col","#BANNER_CALLSIGN127",0,"rui/callsigns/callsign_127_col",0
+"callsign_128_col","#BANNER_CALLSIGN128",0,"rui/callsigns/callsign_128_col",0
+"callsign_129_col","#BANNER_CALLSIGN129",0,"rui/callsigns/callsign_129_col",0
+"callsign_130_col","#BANNER_CALLSIGN130",0,"rui/callsigns/callsign_130_col",0
+"callsign_131_col","#BANNER_CALLSIGN131",0,"rui/callsigns/callsign_131_col",0
+"callsign_132_col","#BANNER_CALLSIGN132",0,"rui/callsigns/callsign_132_col",0
+"callsign_133_col","#BANNER_CALLSIGN133",0,"rui/callsigns/callsign_133_col",0
+"callsign_134_col","#BANNER_CALLSIGN134",0,"rui/callsigns/callsign_134_col",0
+"callsign_135_col","#BANNER_CALLSIGN135",0,"rui/callsigns/callsign_135_col",0
+"callsign_136_col","#BANNER_CALLSIGN136",0,"rui/callsigns/callsign_136_col",0
+"callsign_137_col","#BANNER_CALLSIGN137",0,"rui/callsigns/callsign_137_col",0
+"callsign_138_col","#BANNER_CALLSIGN138",0,"rui/callsigns/callsign_138_col",0
+"callsign_125_col_fire","#BANNER_FIRE_CALLSIGN125",3,"rui/callsigns/callsign_125_col",0
+"callsign_126_col_fire","#BANNER_FIRE_CALLSIGN126",3,"rui/callsigns/callsign_126_col",0
+"callsign_127_col_fire","#BANNER_FIRE_CALLSIGN127",3,"rui/callsigns/callsign_127_col",0
+"callsign_128_col_fire","#BANNER_FIRE_CALLSIGN128",3,"rui/callsigns/callsign_128_col",0
+"callsign_129_col_fire","#BANNER_FIRE_CALLSIGN129",3,"rui/callsigns/callsign_129_col",0
+"callsign_130_col_fire","#BANNER_FIRE_CALLSIGN130",3,"rui/callsigns/callsign_130_col",0
+"callsign_131_col_fire","#BANNER_FIRE_CALLSIGN131",3,"rui/callsigns/callsign_131_col",0
+"callsign_132_col_fire","#BANNER_FIRE_CALLSIGN132",3,"rui/callsigns/callsign_132_col",0
+"callsign_133_col_fire","#BANNER_FIRE_CALLSIGN133",3,"rui/callsigns/callsign_133_col",0
+"callsign_134_col_fire","#BANNER_FIRE_CALLSIGN134",3,"rui/callsigns/callsign_134_col",0
+"callsign_135_col_fire","#BANNER_FIRE_CALLSIGN135",3,"rui/callsigns/callsign_135_col",0
+"callsign_136_col_fire","#BANNER_FIRE_CALLSIGN136",3,"rui/callsigns/callsign_136_col",0
+"callsign_137_col_fire","#BANNER_FIRE_CALLSIGN137",3,"rui/callsigns/callsign_137_col",0
+"callsign_138_col_fire","#BANNER_FIRE_CALLSIGN138",3,"rui/callsigns/callsign_138_col",0
+"callsign_125_col_gold","#BANNER_GOLD_CALLSIGN125",2,"rui/callsigns/callsign_125_col",0
+"callsign_126_col_gold","#BANNER_GOLD_CALLSIGN126",2,"rui/callsigns/callsign_126_col",0
+"callsign_127_col_gold","#BANNER_GOLD_CALLSIGN127",2,"rui/callsigns/callsign_127_col",0
+"callsign_128_col_gold","#BANNER_GOLD_CALLSIGN128",2,"rui/callsigns/callsign_128_col",0
+"callsign_129_col_gold","#BANNER_GOLD_CALLSIGN129",2,"rui/callsigns/callsign_129_col",0
+"callsign_130_col_gold","#BANNER_GOLD_CALLSIGN130",2,"rui/callsigns/callsign_130_col",0
+"callsign_131_col_gold","#BANNER_GOLD_CALLSIGN131",2,"rui/callsigns/callsign_131_col",0
+"callsign_132_col_gold","#BANNER_GOLD_CALLSIGN132",2,"rui/callsigns/callsign_132_col",0
+"callsign_133_col_gold","#BANNER_GOLD_CALLSIGN133",2,"rui/callsigns/callsign_133_col",0
+"callsign_134_col_gold","#BANNER_GOLD_CALLSIGN134",2,"rui/callsigns/callsign_134_col",0
+"callsign_135_col_gold","#BANNER_GOLD_CALLSIGN135",2,"rui/callsigns/callsign_135_col",0
+"callsign_136_col_gold","#BANNER_GOLD_CALLSIGN136",2,"rui/callsigns/callsign_136_col",0
+"callsign_137_col_gold","#BANNER_GOLD_CALLSIGN137",2,"rui/callsigns/callsign_137_col",0
+"callsign_138_col_gold","#BANNER_GOLD_CALLSIGN138",2,"rui/callsigns/callsign_138_col",0
+"callsign_125_col_prism","#BANNER_PRISM_CALLSIGN125",1,"rui/callsigns/callsign_125_col",0
+"callsign_126_col_prism","#BANNER_PRISM_CALLSIGN126",1,"rui/callsigns/callsign_126_col",1500
+"callsign_127_col_prism","#BANNER_PRISM_CALLSIGN127",1,"rui/callsigns/callsign_127_col",1500
+"callsign_128_col_prism","#BANNER_PRISM_CALLSIGN128",1,"rui/callsigns/callsign_128_col",0
+"callsign_129_col_prism","#BANNER_PRISM_CALLSIGN129",1,"rui/callsigns/callsign_129_col",0
+"callsign_130_col_prism","#BANNER_PRISM_CALLSIGN130",1,"rui/callsigns/callsign_130_col",1500
+"callsign_131_col_prism","#BANNER_PRISM_CALLSIGN131",1,"rui/callsigns/callsign_131_col",1500
+"callsign_132_col_prism","#BANNER_PRISM_CALLSIGN132",1,"rui/callsigns/callsign_132_col",0
+"callsign_133_col_prism","#BANNER_PRISM_CALLSIGN133",1,"rui/callsigns/callsign_133_col",0
+"callsign_134_col_prism","#BANNER_PRISM_CALLSIGN134",1,"rui/callsigns/callsign_134_col",0
+"callsign_135_col_prism","#BANNER_PRISM_CALLSIGN135",1,"rui/callsigns/callsign_135_col",0
+"callsign_136_col_prism","#BANNER_PRISM_CALLSIGN136",1,"rui/callsigns/callsign_136_col",0
+"callsign_137_col_prism","#BANNER_PRISM_CALLSIGN137",1,"rui/callsigns/callsign_137_col",0
+"callsign_138_col_prism","#BANNER_PRISM_CALLSIGN138",1,"rui/callsigns/callsign_138_col",0
+"callsign_140_col","#BANNER_CALLSIGN140",0,"rui/callsigns/callsign_140_col",0
+"callsign_141_col","#BANNER_CALLSIGN141",0,"rui/callsigns/callsign_141_col",0
+"callsign_142_col","#BANNER_CALLSIGN142",0,"rui/callsigns/callsign_142_col",0
+"callsign_140_col_fire","#BANNER_FIRE_CALLSIGN140",3,"rui/callsigns/callsign_140_col",0
+"callsign_141_col_fire","#BANNER_FIRE_CALLSIGN141",3,"rui/callsigns/callsign_141_col",0
+"callsign_142_col_fire","#BANNER_FIRE_CALLSIGN142",3,"rui/callsigns/callsign_142_col",0
+"callsign_140_col_gold","#BANNER_GOLD_CALLSIGN140",2,"rui/callsigns/callsign_140_col",0
+"callsign_141_col_gold","#BANNER_GOLD_CALLSIGN141",2,"rui/callsigns/callsign_141_col",0
+"callsign_142_col_gold","#BANNER_GOLD_CALLSIGN142",2,"rui/callsigns/callsign_142_col",0
+"callsign_143_col","#BANNER_CALLSIGN143",0,"rui/callsigns/callsign_143_col",0
+"callsign_144_col","#BANNER_CALLSIGN144",0,"rui/callsigns/callsign_144_col",0
+"callsign_145_col","#BANNER_CALLSIGN145",0,"rui/callsigns/callsign_145_col",0
+"callsign_146_col","#BANNER_CALLSIGN146",0,"rui/callsigns/callsign_146_col",0
+"callsign_147_col","#BANNER_CALLSIGN147",0,"rui/callsigns/callsign_147_col",0
+"callsign_148_col","#BANNER_CALLSIGN148",0,"rui/callsigns/callsign_148_col",0
+"callsign_149_col","#BANNER_CALLSIGN149",0,"rui/callsigns/callsign_149_col",0
+"callsign_150_col","#BANNER_CALLSIGN150",0,"rui/callsigns/callsign_150_col",0
+"callsign_151_col","#BANNER_CALLSIGN151",0,"rui/callsigns/callsign_151_col",0
+"callsign_152_col","#BANNER_CALLSIGN152",0,"rui/callsigns/callsign_152_col",0
+"callsign_153_col","#BANNER_CALLSIGN153",0,"rui/callsigns/callsign_153_col",0
+"callsign_154_col","#BANNER_CALLSIGN154",0,"rui/callsigns/callsign_154_col",0
+"callsign_155_col","#BANNER_CALLSIGN155",0,"rui/callsigns/callsign_155_col",0
+"callsign_156_col","#BANNER_CALLSIGN156",0,"rui/callsigns/callsign_156_col",0
+"callsign_157_col","#BANNER_CALLSIGN157",0,"rui/callsigns/callsign_157_col",0
+"callsign_158_col","#BANNER_CALLSIGN158",0,"rui/callsigns/callsign_158_col",0
+"callsign_159_col","#BANNER_CALLSIGN159",0,"rui/callsigns/callsign_159_col",0
+"callsign_160_col","#BANNER_CALLSIGN160",0,"rui/callsigns/callsign_160_col",0
+"callsign_161_col","#BANNER_CALLSIGN161",0,"rui/callsigns/callsign_161_col",0
+"callsign_162_col","#BANNER_CALLSIGN162",0,"rui/callsigns/callsign_162_col",0
+"callsign_163_col","#BANNER_CALLSIGN163",0,"rui/callsigns/callsign_163_col",0
+"callsign_164_col","#BANNER_CALLSIGN164",0,"rui/callsigns/callsign_164_col",0
+"callsign_163_col_prism","#BANNER_PRISM_CALLSIGN163",1,"rui/callsigns/callsign_163_col",0
+"callsign_164_col_prism","#BANNER_PRISM_CALLSIGN164",1,"rui/callsigns/callsign_164_col",0
+"callsign_163_col_gold","#BANNER_GOLD_CALLSIGN163",2,"rui/callsigns/callsign_163_col",0
+"callsign_164_col_gold","#BANNER_GOLD_CALLSIGN164",2,"rui/callsigns/callsign_164_col",0
+"callsign_163_col_fire","#BANNER_FIRE_CALLSIGN163",3,"rui/callsigns/callsign_163_col",0
+"callsign_164_col_fire","#BANNER_FIRE_CALLSIGN164",3,"rui/callsigns/callsign_164_col",0
+"callsign_regen_10_col","#BANNER_REGEN_10",0,"rui/callsigns/callsign_regen_10_col",0
+"callsign_regen_20_col","#BANNER_REGEN_20",0,"rui/callsigns/callsign_regen_20_col",0
+"callsign_regen_30_col","#BANNER_REGEN_30",0,"rui/callsigns/callsign_regen_30_col",0
+"callsign_regen_40_col","#BANNER_REGEN_40",0,"rui/callsigns/callsign_regen_40_col",0
+"callsign_regen_50_col","#BANNER_REGEN_50",0,"rui/callsigns/callsign_regen_50_col",0
+"callsign_regen_60_col","#BANNER_REGEN_60",0,"rui/callsigns/callsign_regen_60_col",0
+"callsign_regen_70_col","#BANNER_REGEN_70",0,"rui/callsigns/callsign_regen_70_col",0
+"callsign_regen_80_col","#BANNER_REGEN_80",0,"rui/callsigns/callsign_regen_80_col",0
+"callsign_regen_90_col","#BANNER_REGEN_90",0,"rui/callsigns/callsign_regen_90_col",0
+"callsign_regen_100_col","#BANNER_REGEN_100",0,"rui/callsigns/callsign_regen_100_col",0
+"callsign_regen_10_col_prism","#BANNER_PRISM_REGEN_10",1,"rui/callsigns/callsign_regen_10_col",0
+"callsign_regen_20_col_prism","#BANNER_PRISM_REGEN_20",1,"rui/callsigns/callsign_regen_20_col",0
+"callsign_regen_30_col_prism","#BANNER_PRISM_REGEN_30",1,"rui/callsigns/callsign_regen_30_col",0
+"callsign_regen_40_col_prism","#BANNER_PRISM_REGEN_40",1,"rui/callsigns/callsign_regen_40_col",0
+"callsign_regen_50_col_prism","#BANNER_PRISM_REGEN_50",1,"rui/callsigns/callsign_regen_50_col",0
+"callsign_regen_60_col_prism","#BANNER_PRISM_REGEN_60",1,"rui/callsigns/callsign_regen_60_col",0
+"callsign_regen_70_col_prism","#BANNER_PRISM_REGEN_70",1,"rui/callsigns/callsign_regen_70_col",0
+"callsign_regen_80_col_prism","#BANNER_PRISM_REGEN_80",1,"rui/callsigns/callsign_regen_80_col",0
+"callsign_regen_90_col_prism","#BANNER_PRISM_REGEN_90",1,"rui/callsigns/callsign_regen_90_col",0
+"callsign_regen_100_col_prism","#BANNER_PRISM_REGEN_100",1,"rui/callsigns/callsign_regen_100_col",0
+"callsign_165_col","#BANNER_CALLSIGN165",0,"rui/callsigns/callsign_165_col",0
+"callsign_166_col","#BANNER_CALLSIGN166",0,"rui/callsigns/callsign_166_col",0
+"callsign_167_col","#BANNER_CALLSIGN167",0,"rui/callsigns/callsign_167_col",0
+"callsign_168_col","#BANNER_CALLSIGN168",0,"rui/callsigns/callsign_168_col",0
+"callsign_169_col","#BANNER_CALLSIGN169",0,"rui/callsigns/callsign_169_col",0
+"callsign_170_col","#BANNER_CALLSIGN170",0,"rui/callsigns/callsign_170_col",0
+"callsign_171_col","#BANNER_CALLSIGN171",0,"rui/callsigns/callsign_171_col",0
+"callsign_172_col","#BANNER_CALLSIGN172",0,"rui/callsigns/callsign_172_col",0
+"callsign_173_col","#BANNER_CALLSIGN173",0,"rui/callsigns/callsign_173_col",0
+"callsign_174_col","#BANNER_CALLSIGN174",0,"rui/callsigns/callsign_174_col",0
+"callsign_175_col","#BANNER_CALLSIGN175",0,"rui/callsigns/callsign_175_col",0
+"callsign_176_col","#BANNER_CALLSIGN176",0,"rui/callsigns/callsign_176_col",0
+"callsign_177_col","#BANNER_CALLSIGN177",0,"rui/callsigns/callsign_177_col",0
+"callsign_178_col","#BANNER_CALLSIGN178",0,"rui/callsigns/callsign_178_col",0
+"callsign_179_col","#BANNER_CALLSIGN179",0,"rui/callsigns/callsign_179_col",0
+"callsign_180_col","#BANNER_CALLSIGN180",0,"rui/callsigns/callsign_180_col",0
+"callsign_181_col","#BANNER_CALLSIGN181",0,"rui/callsigns/callsign_181_col",0
+"callsign_182_col","#BANNER_CALLSIGN182",0,"rui/callsigns/callsign_182_col",0
+"callsign_183_col","#BANNER_CALLSIGN183",0,"rui/callsigns/callsign_183_col",0
+"callsign_184_col","#BANNER_CALLSIGN184",0,"rui/callsigns/callsign_184_col",0
+"callsign_185_col","#BANNER_CALLSIGN185",0,"rui/callsigns/callsign_185_col",0
+"callsign_165_col_fire","#BANNER_FIRE_CALLSIGN165",3,"rui/callsigns/callsign_165_col",0
+"callsign_165_col_gold","#BANNER_GOLD_CALLSIGN165",2,"rui/callsigns/callsign_165_col",0
+"callsign_24_col_prism","#BANNER_PRISM_CALLSIGN24",1,"rui/callsigns/callsign_24_col",0
+"callsign_47_col_prism","#BANNER_PRISM_CALLSIGN47",1,"rui/callsigns/callsign_47_col",0
+"callsign_36_col_prism","#BANNER_PRISM_CALLSIGN36",1,"rui/callsigns/callsign_36_col",0
+"callsign_45_col_prism","#BANNER_PRISM_CALLSIGN45",1,"rui/callsigns/callsign_45_col",0
+"callsign_68_col_prism","#BANNER_PRISM_CALLSIGN68",1,"rui/callsigns/callsign_68_col",0
+"callsign_26_col_prism","#BANNER_PRISM_CALLSIGN26",1,"rui/callsigns/callsign_26_col",0
+"callsign_165_col_prism","#BANNER_PRISM_CALLSIGN165",1,"rui/callsigns/callsign_165_col",0
+"callsign_fd_ion_dynamic","#BANNER_CALLSIGN_FD_ION",0,"rui/callsigns/callsign_fd_ion_dynamic",0
+"callsign_fd_tone_dynamic","#BANNER_CALLSIGN_FD_TONE",0,"rui/callsigns/callsign_fd_tone_dynamic",0
+"callsign_fd_scorch_dynamic","#BANNER_CALLSIGN_FD_SCORCH",0,"rui/callsigns/callsign_fd_scorch_dynamic",0
+"callsign_fd_legion_dynamic","#BANNER_CALLSIGN_FD_LEGION",0,"rui/callsigns/callsign_fd_legion_dynamic",0
+"callsign_fd_ronin_dynamic","#BANNER_CALLSIGN_FD_RONIN",0,"rui/callsigns/callsign_fd_ronin_dynamic",0
+"callsign_fd_northstar_dynamic","#BANNER_CALLSIGN_FD_NORTHSTAR",0,"rui/callsigns/callsign_fd_northstar_dynamic",0
+"callsign_fd_monarch_dynamic","#BANNER_CALLSIGN_FD_MONARCH",0,"rui/callsigns/callsign_fd_monarch_dynamic",0
+"callsign_fd_ion_hard","#BANNER_CALLSIGN_FD_ION",1,"rui/callsigns/callsign_fd_ion_hard",0
+"callsign_fd_ion_master","#BANNER_CALLSIGN_FD_ION",1,"rui/callsigns/callsign_fd_ion_master",0
+"callsign_fd_ion_insane","#BANNER_CALLSIGN_FD_ION",2,"rui/callsigns/callsign_fd_ion_insane",0
+"callsign_fd_tone_hard","#BANNER_CALLSIGN_FD_TONE",1,"rui/callsigns/callsign_fd_tone_hard",0
+"callsign_fd_tone_master","#BANNER_CALLSIGN_FD_TONE",1,"rui/callsigns/callsign_fd_tone_master",0
+"callsign_fd_tone_insane","#BANNER_CALLSIGN_FD_TONE",2,"rui/callsigns/callsign_fd_tone_insane",0
+"callsign_fd_scorch_hard","#BANNER_CALLSIGN_FD_SCORCH",1,"rui/callsigns/callsign_fd_scorch_hard",0
+"callsign_fd_scorch_master","#BANNER_CALLSIGN_FD_SCORCH",1,"rui/callsigns/callsign_fd_scorch_master",0
+"callsign_fd_scorch_insane","#BANNER_CALLSIGN_FD_SCORCH",2,"rui/callsigns/callsign_fd_scorch_insane",0
+"callsign_fd_legion_hard","#BANNER_CALLSIGN_FD_LEGION",1,"rui/callsigns/callsign_fd_legion_hard",0
+"callsign_fd_legion_master","#BANNER_CALLSIGN_FD_LEGION",1,"rui/callsigns/callsign_fd_legion_master",0
+"callsign_fd_legion_insane","#BANNER_CALLSIGN_FD_LEGION",2,"rui/callsigns/callsign_fd_legion_insane",0
+"callsign_fd_ronin_hard","#BANNER_CALLSIGN_FD_RONIN",1,"rui/callsigns/callsign_fd_ronin_hard",0
+"callsign_fd_ronin_master","#BANNER_CALLSIGN_FD_RONIN",1,"rui/callsigns/callsign_fd_ronin_master",0
+"callsign_fd_ronin_insane","#BANNER_CALLSIGN_FD_RONIN",2,"rui/callsigns/callsign_fd_ronin_insane",0
+"callsign_fd_northstar_hard","#BANNER_CALLSIGN_FD_NORTHSTAR",1,"rui/callsigns/callsign_fd_northstar_hard",0
+"callsign_fd_northstar_master","#BANNER_CALLSIGN_FD_NORTHSTAR",1,"rui/callsigns/callsign_fd_northstar_master",0
+"callsign_fd_northstar_insane","#BANNER_CALLSIGN_FD_NORTHSTAR",2,"rui/callsigns/callsign_fd_northstar_insane",0
+"callsign_fd_monarch_hard","#BANNER_CALLSIGN_FD_MONARCH",1,"rui/callsigns/callsign_fd_monarch_hard",0
+"callsign_fd_monarch_master","#BANNER_CALLSIGN_FD_MONARCH",1,"rui/callsigns/callsign_fd_monarch_master",0
+"callsign_fd_monarch_insane","#BANNER_CALLSIGN_FD_MONARCH",2,"rui/callsigns/callsign_fd_monarch_insane",0
+"callsign_tt_gameover","#BANNER_CALLSIGN_TT_GAMEOVER",0,"rui/callsigns/callsign_tt_gameover",1500
+"callsign_tt_gameover_prism","#BANNER_PRISM_TT_GAMEOVER",1,"rui/callsigns/callsign_tt_gameover",3000
+"callsign_tt_guardtheflag","#BANNER_CALLSIGN_TT_GUARDTHEFLAG",0,"rui/callsigns/callsign_tt_guardtheflag",1500
+"callsign_tt_guardtheflag_prism","#BANNER_PRISM_TT_GUARDTHEFLAG",1,"rui/callsigns/callsign_tt_guardtheflag",3000
+"callsign_tt_megamarvin","#BANNER_CALLSIGN_TT_MEGAMARVIN",0,"rui/callsigns/callsign_tt_megamarvin",1500
+"callsign_tt_megamarvin_prism","#BANNER_PRISM_TT_MEGAMARVIN",1,"rui/callsigns/callsign_tt_megamarvin",3000
+"callsign_tt_nessievault","#BANNER_CALLSIGN_TT_NESSIEVAULT",0,"rui/callsigns/callsign_tt_nessievault",1500
+"callsign_tt_nessievault_prism","#BANNER_PRISM_TT_NESSIEVAULT",1,"rui/callsigns/callsign_tt_nessievault",3000
+"callsign_tt_nsbt","#BANNER_CALLSIGN_TT_NSBT",0,"rui/callsigns/callsign_tt_nsbt",1500
+"callsign_tt_nsbt_prism","#BANNER_PRISM_TT_NSBT",1,"rui/callsigns/callsign_tt_nsbt",3000
+"callsign_tt_protocol2","#BANNER_CALLSIGN_TT_PROTOCOL2",0,"rui/callsigns/callsign_tt_protocol2",1500
+"callsign_tt_protocol2_prism","#BANNER_PRISM_TT_PROTOCOL2",1,"rui/callsigns/callsign_tt_protocol2",3000
+"callsign_tt_rekt","#BANNER_CALLSIGN_TT_REKT",0,"rui/callsigns/callsign_tt_rekt",1500
+"callsign_tt_rekt_prism","#BANNER_PRISM_TT_REKT",1,"rui/callsigns/callsign_tt_rekt",3000
+"callsign_tt_titantoons","#BANNER_CALLSIGN_TT_TITANTOONS",0,"rui/callsigns/callsign_tt_titantoons",1500
+"callsign_tt_titantoons_prism","#BANNER_PRISM_TT_TITANTOONS",1,"rui/callsigns/callsign_tt_titantoons",3000
+"callsign_eat_ion","#BANNER_EAT_ION",0,"rui/callsigns/callsign_eat_ion",1500
+"callsign_eat_legion","#BANNER_EAT_LEGION",0,"rui/callsigns/callsign_eat_legion",1500
+"callsign_eat_northstar","#BANNER_EAT_NORTHSTAR",0,"rui/callsigns/callsign_eat_northstar",1500
+"callsign_eat_ronin","#BANNER_EAT_RONIN",0,"rui/callsigns/callsign_eat_ronin",1500
+"callsign_eat_scorch","#BANNER_EAT_SCORCH",0,"rui/callsigns/callsign_eat_scorch",1500
+"callsign_eat_tone","#BANNER_EAT_TONE",0,"rui/callsigns/callsign_eat_tone",1500
+"callsign_goodboy","#BANNER_GOODBOY",0,"rui/callsigns/callsign_goodboy",0
+"callsign_contest_01","#BANNER_CONTEST_01",0,"rui/callsigns/callsign_contest_01",0
+"callsign_contest_02","#BANNER_CONTEST_02",0,"rui/callsigns/callsign_contest_02",0
+"callsign_contest_03","#BANNER_CONTEST_03",0,"rui/callsigns/callsign_contest_03",0
+"callsign_contest_04","#BANNER_CONTEST_04",0,"rui/callsigns/callsign_contest_04",0
+"callsign_contest_05","#BANNER_CONTEST_05",0,"rui/callsigns/callsign_contest_05",0
+"callsign_contest_06","#BANNER_CONTEST_06",0,"rui/callsigns/callsign_contest_06",0
+"callsign_contest_07","#BANNER_CONTEST_07",0,"rui/callsigns/callsign_contest_07",0
+"callsign_contest_08","#BANNER_CONTEST_08",0,"rui/callsigns/callsign_contest_08",0
+"callsign_contest_09","#BANNER_CONTEST_09",0,"rui/callsigns/callsign_contest_09",0
+"callsign_contest_10","#BANNER_CONTEST_10",0,"rui/callsigns/callsign_contest_10",0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/callsign_icons.csv b/Northstar.CustomServers/mod/scripts/datatable/callsign_icons.csv
new file mode 100644
index 00000000..61840c68
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/callsign_icons.csv
@@ -0,0 +1,193 @@
+itemRef,name,image,smallImage,cost
+"gc_icon_5star","#PATCH_GC_ICON_5STAR","rui/gencard_icons/gc_icon_5star","rui/gencard_icons/gc_icon_5star_small",50
+"gc_icon_8ball","#PATCH_8BALL","rui/gencard_icons/gc_icon_8ball","rui/gencard_icons/gc_icon_8ball_small",0
+"gc_icon_ace","#PATCH_ACE","rui/gencard_icons/gc_icon_ace","rui/gencard_icons/gc_icon_ace_small",0
+"gc_icon_angryface","#PATCH_ANGRYFACE","rui/gencard_icons/gc_icon_angryface","rui/gencard_icons/gc_icon_angryface_small",50
+"gc_icon_apostrophe","#PATCH_APOSTROPHE","rui/gencard_icons/gc_icon_apostrophe","rui/gencard_icons/gc_icon_apostrophe_small",0
+"gc_icon_atom","#PATCH_ATOM","rui/gencard_icons/gc_icon_atom","rui/gencard_icons/gc_icon_atom_small",0
+"gc_icon_balloon","#PATCH_BALLOON","rui/gencard_icons/gc_icon_balloon","rui/gencard_icons/gc_icon_balloon_small",0
+"gc_icon_bear","#PATCH_BEAR","rui/gencard_icons/gc_icon_bear","rui/gencard_icons/gc_icon_bear_small",50
+"gc_icon_bird","#PATCH_BIRD","rui/gencard_icons/gc_icon_bird","rui/gencard_icons/gc_icon_bird_small",50
+"gc_icon_bomb_01","#PATCH_BOMB_01","rui/gencard_icons/gc_icon_bomb_01","rui/gencard_icons/gc_icon_bomb_01_small",0
+"gc_icon_bomb_02","#PATCH_BOMB_02","rui/gencard_icons/gc_icon_bomb_02","rui/gencard_icons/gc_icon_bomb_02_small",0
+"gc_icon_bullet","#PATCH_BULLET","rui/gencard_icons/gc_icon_bullet","rui/gencard_icons/gc_icon_bullet_small",0
+"gc_icon_bullseye","#PATCH_BULLSEYE","rui/gencard_icons/gc_icon_bullseye","rui/gencard_icons/gc_icon_bullseye_small",0
+"gc_icon_cateye","#PATCH_CATEYE","rui/gencard_icons/gc_icon_cateye","rui/gencard_icons/gc_icon_cateye_small",0
+"gc_icon_chicken","#PATCH_CHICKEN","rui/gencard_icons/gc_icon_chicken","rui/gencard_icons/gc_icon_chicken_small",50
+"gc_icon_clawmark","#PATCH_CLAWMARK","rui/gencard_icons/gc_icon_clawmark","rui/gencard_icons/gc_icon_clawmark_small",0
+"gc_icon_club","#PATCH_CLUB","rui/gencard_icons/gc_icon_club","rui/gencard_icons/gc_icon_club_small",50
+"gc_icon_comet","#PATCH_COMET","rui/gencard_icons/gc_icon_comet","rui/gencard_icons/gc_icon_comet_small",0
+"gc_icon_cow","#PATCH_COW","rui/gencard_icons/gc_icon_cow","rui/gencard_icons/gc_icon_cow_small",50
+"gc_icon_cowboy_hat","#PATCH_COWBOY_HAT","rui/gencard_icons/gc_icon_cowboy_hat","rui/gencard_icons/gc_icon_cowboy_hat_small",0
+"gc_icon_crosshair","#PATCH_CROSSHAIR","rui/gencard_icons/gc_icon_crosshair","rui/gencard_icons/gc_icon_crosshair_small",0
+"gc_icon_cupcake","#PATCH_CUPCAKE","rui/gencard_icons/gc_icon_cupcake","rui/gencard_icons/gc_icon_cupcake_small",50
+"gc_icon_diamond","#PATCH_DIAMOND","rui/gencard_icons/gc_icon_diamond","rui/gencard_icons/gc_icon_diamond_small",0
+"gc_icon_dice","#PATCH_DICE","rui/gencard_icons/gc_icon_dice","rui/gencard_icons/gc_icon_dice_small",0
+"gc_icon_dollarsign","#PATCH_DOLLARSIGN","rui/gencard_icons/gc_icon_dollarsign","rui/gencard_icons/gc_icon_dollarsign_small",0
+"gc_icon_doublerainbow","#PATCH_DOUBLERAINBOW","rui/gencard_icons/gc_icon_doublerainbow","rui/gencard_icons/gc_icon_doublerainbow_small",50
+"gc_icon_fingerprint","#PATCH_FINGERPRINT","rui/gencard_icons/gc_icon_fingerprint","rui/gencard_icons/gc_icon_fingerprint_small",50
+"gc_icon_fireball","#PATCH_FIREBALL","rui/gencard_icons/gc_icon_fireball","rui/gencard_icons/gc_icon_fireball_small",0
+"gc_icon_frag","#PATCH_FRAG","rui/gencard_icons/gc_icon_frag","rui/gencard_icons/gc_icon_frag_small",0
+"gc_icon_gear","#PATCH_GEAR","rui/gencard_icons/gc_icon_gear","rui/gencard_icons/gc_icon_gear_small",0
+"gc_icon_ghostface","#PATCH_GHOSTFACE","rui/gencard_icons/gc_icon_ghostface","rui/gencard_icons/gc_icon_ghostface_small",50
+"gc_icon_hamburger","#PATCH_HAMBURGER","rui/gencard_icons/gc_icon_hamburger","rui/gencard_icons/gc_icon_hamburger_small",50
+"gc_icon_handprint","#PATCH_HANDPRINT","rui/gencard_icons/gc_icon_handprint","rui/gencard_icons/gc_icon_handprint_small",50
+"gc_icon_happyface","#PATCH_HAPPYFACE","rui/gencard_icons/gc_icon_happyface","rui/gencard_icons/gc_icon_happyface_small",0
+"gc_icon_heart","#PATCH_HEART","rui/gencard_icons/gc_icon_heart","rui/gencard_icons/gc_icon_heart_small",0
+"gc_icon_hvt","#PATCH_HVT","rui/gencard_icons/gc_icon_hvt","rui/gencard_icons/gc_icon_hvt_small",50
+"gc_icon_jollyrgr","#PATCH_JOLLYRGR","rui/gencard_icons/gc_icon_jollyrgr","rui/gencard_icons/gc_icon_jollyrgr_small",50
+"gc_icon_lightning","#PATCH_LIGHTNING","rui/gencard_icons/gc_icon_lightning","rui/gencard_icons/gc_icon_lightning_small",0
+"gc_icon_lol","#PATCH_LOL","rui/gencard_icons/gc_icon_lol","rui/gencard_icons/gc_icon_lol_small",50
+"gc_icon_mad_hat","#PATCH_MAD_HAT","rui/gencard_icons/gc_icon_mad_hat","rui/gencard_icons/gc_icon_mad_hat_small",50
+"gc_icon_medic","#PATCH_MEDIC","rui/gencard_icons/gc_icon_medic","rui/gencard_icons/gc_icon_medic_small",0
+"gc_icon_moon","#PATCH_MOON","rui/gencard_icons/gc_icon_moon","rui/gencard_icons/gc_icon_moon_small",0
+"gc_icon_omg","#PATCH_OMG","rui/gencard_icons/gc_icon_omg","rui/gencard_icons/gc_icon_omg_small",50
+"gc_icon_paw","#PATCH_PAW","rui/gencard_icons/gc_icon_paw","rui/gencard_icons/gc_icon_paw_small",0
+"gc_icon_pizza","#PATCH_PIZZA","rui/gencard_icons/gc_icon_pizza","rui/gencard_icons/gc_icon_pizza_small",50
+"gc_icon_pro","#PATCH_PRO","rui/gencard_icons/gc_icon_pro","rui/gencard_icons/gc_icon_pro_small",0
+"gc_icon_question","#PATCH_QUESTION","rui/gencard_icons/gc_icon_question","rui/gencard_icons/gc_icon_question_small",50
+"gc_icon_rainbow","#PATCH_RAINBOW","rui/gencard_icons/gc_icon_rainbow","rui/gencard_icons/gc_icon_rainbow_small",50
+"gc_icon_raincloud","#PATCH_RAINCLOUD","rui/gencard_icons/gc_icon_raincloud","rui/gencard_icons/gc_icon_raincloud_small",0
+"gc_icon_rocket","#PATCH_ROCKET","rui/gencard_icons/gc_icon_rocket","rui/gencard_icons/gc_icon_rocket_small",0
+"gc_icon_saturn","#PATCH_SATURN","rui/gencard_icons/gc_icon_saturn","rui/gencard_icons/gc_icon_saturn_small",50
+"gc_icon_skull","#PATCH_SKULL","rui/gencard_icons/gc_icon_skull","rui/gencard_icons/gc_icon_skull_small",50
+"gc_icon_spade","#PATCH_SPADE","rui/gencard_icons/gc_icon_spade","rui/gencard_icons/gc_icon_spade_small",0
+"gc_icon_star","#PATCH_STAR","rui/gencard_icons/gc_icon_star","rui/gencard_icons/gc_icon_star_small",0
+"gc_icon_sword","#PATCH_SWORD","rui/gencard_icons/gc_icon_sword","rui/gencard_icons/gc_icon_sword_small",0
+"gc_icon_teabage","#PATCH_TEABAGE","rui/gencard_icons/gc_icon_teabage","rui/gencard_icons/gc_icon_teabage_small",50
+"gc_icon_titanfall","#PATCH_TITANFALL","rui/gencard_icons/gc_icon_titanfall","rui/gencard_icons/gc_icon_titanfall_small",0
+"gc_icon_vip","#PATCH_VIP","rui/gencard_icons/gc_icon_vip","rui/gencard_icons/gc_icon_vip_small",0
+"gc_icon_witch_hat","#PATCH_WITCH_HAT","rui/gencard_icons/gc_icon_witch_hat","rui/gencard_icons/gc_icon_witch_hat_small",50
+"gc_icon_wizard_hat","#PATCH_WIZARD_HAT","rui/gencard_icons/gc_icon_wizard_hat","rui/gencard_icons/gc_icon_wizard_hat_small",50
+"gc_icon_wtf","#PATCH_WTF","rui/gencard_icons/gc_icon_wtf","rui/gencard_icons/gc_icon_wtf_small",50
+"gc_icon_yuckface","#PATCH_YUCKFACE","rui/gencard_icons/gc_icon_yuckface","rui/gencard_icons/gc_icon_yuckface_small",0
+"gc_icon_respawn","#PATCH_RESPAWN","rui/gencard_icons/gc_icon_respawn","rui/gencard_icons/gc_icon_respawn_small",50
+"gc_icon_fair_warning","#PATCH_FAIR_WARNING","rui/gencard_icons/gc_icon_fair_warning","rui/gencard_icons/gc_icon_fair_warning_small",50
+"gc_icon_hawk","#PATCH_HAWK","rui/gencard_icons/gc_icon_hawk","rui/gencard_icons/gc_icon_hawk_small",0
+"gc_icon_ram","#PATCH_RAM","rui/gencard_icons/gc_icon_ram","rui/gencard_icons/gc_icon_ram_small",50
+"gc_icon_stab","#PATCH_STAB","rui/gencard_icons/gc_icon_stab","rui/gencard_icons/gc_icon_stab_small",50
+"gc_icon_bigcat","#PATCH_BIGCAT","rui/gencard_icons/gc_icon_bigcat","rui/gencard_icons/gc_icon_bigcat_small",50
+"gc_icon_wraith","#PATCH_WRAITH","rui/gencard_icons/gc_icon_wraith","rui/gencard_icons/gc_icon_wraith_small",50
+"gc_icon_stinger","#PATCH_STINGER","rui/gencard_icons/gc_icon_stinger","rui/gencard_icons/gc_icon_stinger_small",0
+"gc_icon_heartless","#PATCH_HEARTLESS","rui/gencard_icons/gc_icon_heartless","rui/gencard_icons/gc_icon_heartless_small",50
+"gc_icon_earthworm","#PATCH_EARTHWORM","rui/gencard_icons/gc_icon_earthworm","rui/gencard_icons/gc_icon_earthworm_small",50
+"gc_icon_prowler","#PATCH_PROWLER","rui/gencard_icons/gc_icon_prowler","rui/gencard_icons/gc_icon_prowler_small",0
+"gc_icon_ordnance","#PATCH_ORDNANCE","rui/gencard_icons/gc_icon_ordnance","rui/gencard_icons/gc_icon_ordnance_small",50
+"gc_icon_radar","#PATCH_RADAR","rui/gencard_icons/gc_icon_radar","rui/gencard_icons/gc_icon_radar_small",0
+"gc_icon_ramskull","#PATCH_RAMSKULL","rui/gencard_icons/gc_icon_ramskull","rui/gencard_icons/gc_icon_ramskull_small",0
+"gc_icon_hawkmoth","#PATCH_HAWKMOTH","rui/gencard_icons/gc_icon_hawkmoth","rui/gencard_icons/gc_icon_hawkmoth_small",50
+"gc_icon_fox","#PATCH_FOX","rui/gencard_icons/gc_icon_fox","rui/gencard_icons/gc_icon_fox_small",0
+"gc_icon_marksman","#PATCH_MARKSMAN","rui/gencard_icons/gc_icon_marksman","rui/gencard_icons/gc_icon_marksman_small",50
+"gc_icon_bunnyskull","#PATCH_BUNNYSKULL","rui/gencard_icons/gc_icon_bunnyskull","rui/gencard_icons/gc_icon_bunnyskull_small",50
+"gc_icon_falcon","#PATCH_FALCON","rui/gencard_icons/gc_icon_falcon","rui/gencard_icons/gc_icon_falcon_small",50
+"gc_icon_assault","#PATCH_ASSAULT","rui/gencard_icons/gc_icon_assault","rui/gencard_icons/gc_icon_assault_small",0
+"gc_icon_flying_skull","#PATCH_FLYING_SKULL","rui/gencard_icons/gc_icon_flying_skull","rui/gencard_icons/gc_icon_flying_skull_small",50
+"gc_icon_hammer","#PATCH_HAMMER","rui/gencard_icons/gc_icon_hammer","rui/gencard_icons/gc_icon_hammer_small",50
+"gc_icon_dragonfly","#PATCH_DRAGONFLY","rui/gencard_icons/gc_icon_dragonfly","rui/gencard_icons/gc_icon_dragonfly_small",0
+"gc_icon_striketwice","#PATCH_STRIKETWICE","rui/gencard_icons/gc_icon_striketwice","rui/gencard_icons/gc_icon_striketwice_small",0
+"gc_icon_waves","#PATCH_WAVES","rui/gencard_icons/gc_icon_waves","rui/gencard_icons/gc_icon_waves_small",0
+"gc_icon_fin","#PATCH_FIN","rui/gencard_icons/gc_icon_fin","rui/gencard_icons/gc_icon_fin_small",0
+"gc_icon_bee","#PATCH_BEE","rui/gencard_icons/gc_icon_bee","rui/gencard_icons/gc_icon_bee_small",50
+"gc_icon_wasp","#PATCH_WASP","rui/gencard_icons/gc_icon_wasp","rui/gencard_icons/gc_icon_wasp_small",0
+"gc_icon_bat","#PATCH_BAT","rui/gencard_icons/gc_icon_bat","rui/gencard_icons/gc_icon_bat_small",0
+"gc_icon_dataknife","#PATCH_DATAKNIFE","rui/gencard_icons/gc_icon_dataknife","rui/gencard_icons/gc_icon_dataknife_small",50
+"gc_icon_knife","#PATCH_KNIFE","rui/gencard_icons/gc_icon_knife","rui/gencard_icons/gc_icon_knife_small",50
+"gc_icon_widow","#PATCH_WIDOW","rui/gencard_icons/gc_icon_widow","rui/gencard_icons/gc_icon_widow_small",50
+"gc_icon_snake","#PATCH_SNAKE","rui/gencard_icons/gc_icon_snake","rui/gencard_icons/gc_icon_snake_small",50
+"gc_icon_scorpion","#PATCH_SCORPION","rui/gencard_icons/gc_icon_scorpion","rui/gencard_icons/gc_icon_scorpion_small",50
+"gc_icon_dragon","#PATCH_DRAGON","rui/gencard_icons/gc_icon_dragon","rui/gencard_icons/gc_icon_dragon_small",50
+"gc_icon_sgt_major","#PATCH_SGT_MAJOR","rui/gencard_icons/gc_icon_sgt_major","rui/gencard_icons/gc_icon_sgt_major_small",0
+"gc_icon_senior_sgt_e6","#PATCH_SENIOR_SGT_E6","rui/gencard_icons/gc_icon_senior_sgt_e6","rui/gencard_icons/gc_icon_senior_sgt_e6_small",50
+"gc_icon_senior_sgt","#PATCH_SENIOR_SGT","rui/gencard_icons/gc_icon_senior_sgt","rui/gencard_icons/gc_icon_senior_sgt_small",50
+"gc_icon_sgt","#PATCH_SGT","rui/gencard_icons/gc_icon_sgt","rui/gencard_icons/gc_icon_sgt_small",50
+"gc_icon_corporal","#PATCH_CORPORAL","rui/gencard_icons/gc_icon_corporal","rui/gencard_icons/gc_icon_corporal_small",50
+"gc_icon_pvt","#PATCH_PVT","rui/gencard_icons/gc_icon_private","rui/gencard_icons/gc_icon_private_small",50
+"gc_icon_gen0","#PATCH_GEN0","rui/gencard_icons/gc_icon_gen0","rui/gencard_icons/gc_icon_gen0_small",0
+"gc_icon_gen1","#PATCH_GEN1","rui/gencard_icons/gc_icon_gen1","rui/gencard_icons/gc_icon_gen1_small",0
+"gc_icon_gen2","#PATCH_GEN2","rui/gencard_icons/gc_icon_gen2","rui/gencard_icons/gc_icon_gen2_small",0
+"gc_icon_gen3","#PATCH_GEN3","rui/gencard_icons/gc_icon_gen3","rui/gencard_icons/gc_icon_gen3_small",0
+"gc_icon_gen4","#PATCH_GEN4","rui/gencard_icons/gc_icon_gen4","rui/gencard_icons/gc_icon_gen4_small",0
+"gc_icon_gen5","#PATCH_GEN5","rui/gencard_icons/gc_icon_gen5","rui/gencard_icons/gc_icon_gen5_small",0
+"gc_icon_gen6","#PATCH_GEN6","rui/gencard_icons/gc_icon_gen6","rui/gencard_icons/gc_icon_gen6_small",0
+"gc_icon_gen7","#PATCH_GEN7","rui/gencard_icons/gc_icon_gen7","rui/gencard_icons/gc_icon_gen7_small",0
+"gc_icon_gen8","#PATCH_GEN8","rui/gencard_icons/gc_icon_gen8","rui/gencard_icons/gc_icon_gen8_small",0
+"gc_icon_gen9","#PATCH_GEN9","rui/gencard_icons/gc_icon_gen9","rui/gencard_icons/gc_icon_gen9_small",0
+"gc_icon_respawn_dev","#PATCH_DEV","rui/gencard_icons/gc_icon_respawn_dev","rui/gencard_icons/gc_icon_respawn_dev_small",0
+"gc_icon_64","#PATCH_64","rui/gencard_icons/dlc1/gc_icon_64","rui/gencard_icons/dlc1/gc_icon_64_small",0
+"gc_icon_aces","#PATCH_ACES","rui/gencard_icons/dlc1/gc_icon_aces","rui/gencard_icons/dlc1/gc_icon_aces_small",0
+"gc_icon_alien","#PATCH_ALIEN","rui/gencard_icons/dlc1/gc_icon_alien","rui/gencard_icons/dlc1/gc_icon_alien_small",0
+"gc_icon_apex","#PATCH_APEX","rui/gencard_icons/dlc1/gc_icon_apex","rui/gencard_icons/dlc1/gc_icon_apex_small",0
+"gc_icon_ares","#PATCH_ARES","rui/gencard_icons/dlc1/gc_icon_ares","rui/gencard_icons/dlc1/gc_icon_ares_small",0
+"gc_icon_controller","#PATCH_CONTROLLER","rui/gencard_icons/dlc1/gc_icon_controller","rui/gencard_icons/dlc1/gc_icon_controller_small",0
+"gc_icon_drone","#PATCH_DRONE","rui/gencard_icons/dlc1/gc_icon_drone","rui/gencard_icons/dlc1/gc_icon_drone_small",0
+"gc_icon_heartbreaker","#PATCH_HEARTBREAKER","rui/gencard_icons/dlc1/gc_icon_heartbreaker","rui/gencard_icons/dlc1/gc_icon_heartbreaker_small",0
+"gc_icon_hexes","#PATCH_HEXES","rui/gencard_icons/dlc1/gc_icon_hexes","rui/gencard_icons/dlc1/gc_icon_hexes_small",0
+"gc_icon_kodai","#PATCH_KODAI","rui/gencard_icons/dlc1/gc_icon_kodai","rui/gencard_icons/dlc1/gc_icon_kodai_small",0
+"gc_icon_lastimosa","#PATCH_LASTIMOSA","rui/gencard_icons/dlc1/gc_icon_lastimosa","rui/gencard_icons/dlc1/gc_icon_lastimosa_small",0
+"gc_icon_lawai","#PATCH_LAWAI","rui/gencard_icons/dlc1/gc_icon_lawai","rui/gencard_icons/dlc1/gc_icon_lawai_small",0
+"gc_icon_mcor","#PATCH_MCOR","rui/gencard_icons/dlc1/gc_icon_mcor","rui/gencard_icons/dlc1/gc_icon_mcor_small",0
+"gc_icon_phoenix","#PATCH_PHOENIX","rui/gencard_icons/dlc1/gc_icon_phoenix","rui/gencard_icons/dlc1/gc_icon_phoenix_small",0
+"gc_icon_pilot","#PATCH_PILOT","rui/gencard_icons/dlc1/gc_icon_pilot","rui/gencard_icons/dlc1/gc_icon_pilot_small",0
+"gc_icon_robot","#PATCH_ROBOT","rui/gencard_icons/dlc1/gc_icon_robot","rui/gencard_icons/dlc1/gc_icon_robot_small",0
+"gc_icon_sentry","#PATCH_SENTRY","rui/gencard_icons/dlc1/gc_icon_sentry","rui/gencard_icons/dlc1/gc_icon_sentry_small",0
+"gc_icon_super_spectre","#PATCH_SUPER_SPECTRE","rui/gencard_icons/dlc1/gc_icon_super_spectre","rui/gencard_icons/dlc1/gc_icon_super_spectre_small",0
+"gc_icon_vinson","#PATCH_VINSON","rui/gencard_icons/dlc1/gc_icon_vinson","rui/gencard_icons/dlc1/gc_icon_vinson_small",0
+"gc_icon_wonyeon","#PATCH_WONYEON","rui/gencard_icons/dlc1/gc_icon_wonyeon","rui/gencard_icons/dlc1/gc_icon_wonyeon_small",0
+"gc_icon_b3_wing","#PATCH_B3_WING","rui/gencard_icons/gc_icon_b3_wing","rui/gencard_icons/gc_icon_b3_wing_small",0
+"gc_icon_balance","#PATCH_BALANCE","rui/gencard_icons/dlc3/gc_icon_balance","rui/gencard_icons/dlc3/gc_icon_balance_small",0
+"gc_icon_boot","#PATCH_BOOT","rui/gencard_icons/dlc3/gc_icon_boot","rui/gencard_icons/dlc3/gc_icon_boot_small",0
+"gc_icon_bt_eye","#PATCH_BT_EYE","rui/gencard_icons/dlc3/gc_icon_bt_eye","rui/gencard_icons/dlc3/gc_icon_bt_eye_small",0
+"gc_icon_peace","#PATCH_PEACE","rui/gencard_icons/dlc3/gc_icon_peace","rui/gencard_icons/dlc3/gc_icon_peace_small",0
+"gc_icon_pilot2","#PATCH_PILOT2","rui/gencard_icons/dlc3/gc_icon_pilot","rui/gencard_icons/dlc3/gc_icon_pilot_small",0
+"gc_icon_srs","#PATCH_SRS","rui/gencard_icons/dlc3/gc_icon_srs","rui/gencard_icons/dlc3/gc_icon_srs_small",0
+"gc_icon_starline","#PATCH_STARLINE","rui/gencard_icons/dlc3/gc_icon_starline","rui/gencard_icons/dlc3/gc_icon_starline_small",0
+"gc_icon_thumbdown","#PATCH_THUMBDOWN","rui/gencard_icons/dlc3/gc_icon_thumbdown","rui/gencard_icons/dlc3/gc_icon_thumbdown_small",0
+"gc_icon_thumbup","#PATCH_THUMBUP","rui/gencard_icons/dlc3/gc_icon_thumbup","rui/gencard_icons/dlc3/gc_icon_thumbup_small",0
+"gc_icon_vanguard","#PATCH_VANGUARD","rui/gencard_icons/dlc3/gc_icon_vanguard","rui/gencard_icons/dlc3/gc_icon_vanguard_small",0
+"gc_icon_deuce","#PATCH_DEUCE","rui/gencard_icons/dlc2/gc_icon_deuce","rui/gencard_icons/dlc2/gc_icon_deuce_small",0
+"gc_icon_down","#PATCH_DOWN","rui/gencard_icons/dlc2/gc_icon_down","rui/gencard_icons/dlc2/gc_icon_down_small",50
+"gc_icon_joy","#PATCH_JOY","rui/gencard_icons/dlc2/gc_icon_joy","rui/gencard_icons/dlc2/gc_icon_joy_small",50
+"gc_icon_mushroom","#PATCH_MUSHROOM","rui/gencard_icons/dlc2/gc_icon_mushroom","rui/gencard_icons/dlc2/gc_icon_mushroom_small",0
+"gc_icon_prowlerhead","#PATCH_PROWLERHEAD","rui/gencard_icons/dlc2/gc_icon_prowlerhead","rui/gencard_icons/dlc2/gc_icon_prowlerhead_small",0
+"gc_icon_scythe","#PATCH_SCYTHE","rui/gencard_icons/dlc2/gc_icon_scythe","rui/gencard_icons/dlc2/gc_icon_scythe_small",0
+"gc_icon_shuriken","#PATCH_SHURIKEN","rui/gencard_icons/dlc2/gc_icon_shuriken","rui/gencard_icons/dlc2/gc_icon_shuriken_small",0
+"gc_icon_squid","#PATCH_SQUID","rui/gencard_icons/dlc2/gc_icon_squid","rui/gencard_icons/dlc2/gc_icon_squid_small",0
+"gc_icon_threebullets","#PATCH_THREEBULLETS","rui/gencard_icons/dlc2/gc_icon_threebullets","rui/gencard_icons/dlc2/gc_icon_threebullets_small",0
+"gc_icon_tick","#PATCH_TICK","rui/gencard_icons/dlc2/gc_icon_tick","rui/gencard_icons/dlc2/gc_icon_tick_small",0
+"gc_icon_buzzsaw","#PATCH_BUZZSAW","rui/gencard_icons/dlc3/gc_icon_buzzsaw","rui/gencard_icons/dlc3/gc_icon_buzzsaw_small",0
+"gc_icon_crossed_lighting","#PATCH_CROSSED_LIGHTING","rui/gencard_icons/dlc3/gc_icon_crossed_lighting","rui/gencard_icons/dlc3/gc_icon_crossed_lighting_small",0
+"gc_icon_flying_bullet","#PATCH_FLYING_BULLET","rui/gencard_icons/dlc3/gc_icon_flying_bullet","rui/gencard_icons/dlc3/gc_icon_flying_bullet_small",0
+"gc_icon_hammer2","#PATCH_HAMMER2","rui/gencard_icons/dlc3/gc_icon_hammer","rui/gencard_icons/dlc3/gc_icon_hammer_small",0
+"gc_icon_keyboard","#PATCH_KEYBOARD","rui/gencard_icons/dlc3/gc_icon_keyboard","rui/gencard_icons/dlc3/gc_icon_keyboard_small",0
+"gc_icon_lightbulb","#PATCH_LIGHTBULB","rui/gencard_icons/dlc3/gc_icon_lightbulb","rui/gencard_icons/dlc3/gc_icon_lightbulb_small",0
+"gc_icon_narwhal","#PATCH_NARWHAL","rui/gencard_icons/dlc3/gc_icon_narwhal","rui/gencard_icons/dlc3/gc_icon_narwhal_small",0
+"gc_icon_robot_eye","#PATCH_ROBOT_EYE","rui/gencard_icons/dlc3/gc_icon_robot_eye","rui/gencard_icons/dlc3/gc_icon_robot_eye_small",0
+"gc_icon_taco","#PATCH_TACO","rui/gencard_icons/dlc3/gc_icon_taco","rui/gencard_icons/dlc3/gc_icon_taco_small",0
+"gc_icon_treble","#PATCH_TREBLE","rui/gencard_icons/dlc3/gc_icon_treble","rui/gencard_icons/dlc3/gc_icon_treble_small",0
+"gc_icon_monarch","#PATCH_MONARCH","rui/gencard_icons/dlc4/gc_icon_monarch","rui/gencard_icons/dlc4/gc_icon_monarch_small",0
+"gc_icon_mrvn","#PATCH_MRVN","rui/gencard_icons/dlc4/gc_icon_mrvn","rui/gencard_icons/dlc4/gc_icon_mrvn_small",0
+"gc_icon_blank","#PATCH_BLANK","rui/gencard_icons/gc_icon_blank","rui/gencard_icons/gc_icon_blank_small",0
+"gc_icon_monarch_dlc5","#PATCH_MONARCH_DLC5","rui/gencard_icons/dlc5/gc_icon_monarch","rui/gencard_icons/dlc5/gc_icon_monarch_small",0
+"gc_icon_militia","#PATCH_MILITIA","rui/gencard_icons/dlc5/gc_icon_militia","rui/gencard_icons/dlc5/gc_icon_militia_small",0
+"gc_icon_militia_alt","#PATCH_MILITIA_ALT","rui/gencard_icons/dlc5/gc_icon_militia_alt","rui/gencard_icons/dlc5/gc_icon_militia_alt_small",0
+"gc_icon_imc","#PATCH_IMC","rui/gencard_icons/dlc5/gc_icon_imc","rui/gencard_icons/dlc5/gc_icon_imc_small",0
+"gc_icon_hammond","#PATCH_HAMMOND","rui/gencard_icons/dlc5/gc_icon_hammond","rui/gencard_icons/dlc5/gc_icon_hammond_small",0
+"gc_icon_tri_chevron","#PATCH_TRI_CHEVRON","rui/gencard_icons/dlc5/gc_icon_tri_chevron","rui/gencard_icons/dlc5/gc_icon_tri_chevron_small",0
+"gc_icon_pilot_circle","#PATCH_PILOT_CIRCLE","rui/gencard_icons/dlc5/gc_icon_pilot_circle","rui/gencard_icons/dlc5/gc_icon_pilot_circle_small",0
+"gc_icon_x","#PATCH_X","rui/gencard_icons/dlc5/gc_icon_x","rui/gencard_icons/dlc5/gc_icon_x_small",0
+"gc_icon_nessie","#PATCH_NESSIE","rui/gencard_icons/dlc5/gc_icon_nessie","rui/gencard_icons/dlc5/gc_icon_nessie_small",0
+"gc_icon_spicy","#PATCH_SPICY","rui/gencard_icons/dlc5/gc_icon_spicy","rui/gencard_icons/dlc5/gc_icon_spicy_small",0
+"gc_icon_crown","#PATCH_CROWN","rui/gencard_icons/dlc5/gc_icon_crown","rui/gencard_icons/dlc5/gc_icon_crown_small",0
+"gc_icon_pawn","#PATCH_PAWN","rui/gencard_icons/dlc5/gc_icon_pawn","rui/gencard_icons/dlc5/gc_icon_pawn_small",0
+"gc_icon_excite","#PATCH_EXCITE","rui/gencard_icons/dlc5/gc_icon_excite","rui/gencard_icons/dlc5/gc_icon_excite_small",0
+"gc_icon_duck","#PATCH_DUCK","rui/gencard_icons/dlc5/gc_icon_duck","rui/gencard_icons/dlc5/gc_icon_duck_small",0
+"gc_icon_sock","#PATCH_SOCK","rui/gencard_icons/dlc5/gc_icon_sock","rui/gencard_icons/dlc5/gc_icon_sock_small",0
+"gc_icon_rabbit","#PATCH_RABBIT","rui/gencard_icons/dlc5/gc_icon_rabbit","rui/gencard_icons/dlc5/gc_icon_rabbit_small",0
+"gc_icon_peanut","#PATCH_PEANUT","rui/gencard_icons/dlc5/gc_icon_peanut","rui/gencard_icons/dlc5/gc_icon_peanut_small",0
+"gc_icon_clock","#PATCH_CLOCK","rui/gencard_icons/dlc5/gc_icon_clock","rui/gencard_icons/dlc5/gc_icon_clock_small",0
+"gc_icon_shamrock","#PATCH_SHAMROCK","rui/gencard_icons/dlc5/gc_icon_shamrock","rui/gencard_icons/dlc5/gc_icon_shamrock_small",0
+"gc_icon_trident","#PATCH_TRIDENT","rui/gencard_icons/dlc5/gc_icon_trident","rui/gencard_icons/dlc5/gc_icon_trident_small",0
+"gc_icon_fd_normal","#PATCH_FD_NORMAL","rui/gencard_icons/fd/gc_icon_fd_normal","rui/gencard_icons/fd/gc_icon_fd_normal_small",0
+"gc_icon_fd_hard","#PATCH_FD_HARD","rui/gencard_icons/fd/gc_icon_fd_hard","rui/gencard_icons/fd/gc_icon_fd_hard_small",0
+"gc_icon_fd_master","#PATCH_FD_MASTER","rui/gencard_icons/fd/gc_icon_fd_master","rui/gencard_icons/fd/gc_icon_fd_master_small",0
+"gc_icon_fd_insane","#PATCH_FD_INSANE","rui/gencard_icons/fd/gc_icon_fd_insane","rui/gencard_icons/fd/gc_icon_fd_insane_small",0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/camo_skins.csv b/Northstar.CustomServers/mod/scripts/datatable/camo_skins.csv
new file mode 100644
index 00000000..2773f4b6
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/camo_skins.csv
@@ -0,0 +1,161 @@
+itemRef,pilotRef,titanRef,type,image,name,description,pilotCost,titanCost,pilotWeaponCost,titanWeaponCost,category
+"camo_skin00","pilot_camo_skin00","titan_camo_skin00","CAMO","rui/menu/common/no_art","#CAMO_DEFAULT","#DEFAULT_DESC",0,0,0,0,1
+"camo_skin01","pilot_camo_skin01","titan_camo_skin01","CAMO","models/camo_skins/camo_skin01_col","#CAMO_SKIN_01","#CAMO_SKIN_01_DESC",0,0,0,0,1
+"camo_skin02","pilot_camo_skin02","titan_camo_skin02","CAMO","models/camo_skins/camo_skin02_col","#CAMO_SKIN_02","#CAMO_SKIN_02_DESC",0,0,0,0,1
+"camo_skin03","pilot_camo_skin03","titan_camo_skin03","CAMO","models/camo_skins/camo_skin03_col","#CAMO_SKIN_03","#CAMO_SKIN_03_DESC",0,0,0,0,1
+"camo_skin04","pilot_camo_skin04","titan_camo_skin04","CAMO","models/camo_skins/camo_skin04_col","#CAMO_SKIN_04","#CAMO_SKIN_04_DESC",150,100,75,50,3
+"camo_skin05","pilot_camo_skin05","titan_camo_skin05","CAMO","models/camo_skins/camo_skin05_col","#CAMO_SKIN_05","#CAMO_SKIN_05_DESC",150,100,75,50,3
+"camo_skin06","pilot_camo_skin06","titan_camo_skin06","CAMO","models/camo_skins/camo_skin06_col","#CAMO_SKIN_06","#CAMO_SKIN_06_DESC",150,100,75,50,4
+"camo_skin07","pilot_camo_skin07","titan_camo_skin07","CAMO","models/camo_skins/camo_skin07_col","#CAMO_SKIN_07","#CAMO_SKIN_07_DESC",0,0,0,0,2
+"camo_skin08","pilot_camo_skin08","titan_camo_skin08","CAMO","models/camo_skins/camo_skin08_col","#CAMO_SKIN_08","#CAMO_SKIN_08_DESC",150,100,75,50,4
+"camo_skin09","pilot_camo_skin09","titan_camo_skin09","CAMO","models/camo_skins/camo_skin09_col","#CAMO_SKIN_09","#CAMO_SKIN_09_DESC",0,0,0,0,1
+"camo_skin10","pilot_camo_skin10","titan_camo_skin10","CAMO","models/camo_skins/camo_skin10_col","#CAMO_SKIN_10","#CAMO_SKIN_10_DESC",0,0,0,0,1
+"camo_skin11","pilot_camo_skin11","titan_camo_skin11","CAMO","models/camo_skins/camo_skin11_col","#CAMO_SKIN_11","#CAMO_SKIN_11_DESC",150,100,75,50,4
+"camo_skin12","pilot_camo_skin12","titan_camo_skin12","CAMO","models/camo_skins/camo_skin12_col","#CAMO_SKIN_12","#CAMO_SKIN_12_DESC",150,100,75,50,4
+"camo_skin13","pilot_camo_skin13","titan_camo_skin13","CAMO","models/camo_skins/camo_skin13_col","#CAMO_SKIN_13","#CAMO_SKIN_13_DESC",0,0,0,0,2
+"camo_skin14","pilot_camo_skin14","titan_camo_skin14","CAMO","models/camo_skins/camo_skin14_col","#CAMO_SKIN_14","#CAMO_SKIN_14_DESC",0,0,0,0,1
+"camo_skin15","pilot_camo_skin15","titan_camo_skin15","CAMO","models/camo_skins/camo_skin15_col","#CAMO_SKIN_15","#CAMO_SKIN_15_DESC",0,0,0,0,1
+"camo_skin16","pilot_camo_skin16","titan_camo_skin16","CAMO","models/camo_skins/camo_skin16_col","#CAMO_SKIN_16","#CAMO_SKIN_16_DESC",0,0,0,0,1
+"camo_skin17","pilot_camo_skin17","titan_camo_skin17","CAMO","models/camo_skins/camo_skin17_col","#CAMO_SKIN_17","#CAMO_SKIN_17_DESC",0,0,0,0,1
+"camo_skin18","pilot_camo_skin18","titan_camo_skin18","CAMO","models/camo_skins/camo_skin18_col","#CAMO_SKIN_18","#CAMO_SKIN_18_DESC",0,0,0,0,1
+"camo_skin19","pilot_camo_skin19","titan_camo_skin19","CAMO","models/camo_skins/camo_skin19_col","#CAMO_SKIN_19","#CAMO_SKIN_19_DESC",0,0,0,0,1
+"camo_skin20","pilot_camo_skin20","titan_camo_skin20","CAMO","models/camo_skins/camo_skin20_col","#CAMO_SKIN_20","#CAMO_SKIN_20_DESC",150,100,75,50,3
+"camo_skin21","pilot_camo_skin21","titan_camo_skin21","CAMO","models/camo_skins/camo_skin21_col","#CAMO_SKIN_21","#CAMO_SKIN_21_DESC",150,100,75,50,3
+"camo_skin22","pilot_camo_skin22","titan_camo_skin22","CAMO","models/camo_skins/camo_skin22_col","#CAMO_SKIN_22","#CAMO_SKIN_22_DESC",150,100,75,50,3
+"camo_skin23","pilot_camo_skin23","titan_camo_skin23","CAMO","models/camo_skins/camo_skin23_col","#CAMO_SKIN_23","#CAMO_SKIN_23_DESC",150,100,75,50,3
+"camo_skin24","pilot_camo_skin24","titan_camo_skin24","CAMO","models/camo_skins/camo_skin24_col","#CAMO_SKIN_24","#CAMO_SKIN_24_DESC",0,0,0,0,1
+"camo_skin25","pilot_camo_skin25","titan_camo_skin25","CAMO","models/camo_skins/camo_skin25_col","#CAMO_SKIN_25","#CAMO_SKIN_25_DESC",0,0,0,0,1
+"camo_skin26","pilot_camo_skin26","titan_camo_skin26","CAMO","models/camo_skins/camo_skin26_col","#CAMO_SKIN_26","#CAMO_SKIN_26_DESC",0,0,0,0,1
+"camo_skin27","pilot_camo_skin27","titan_camo_skin27","CAMO","models/camo_skins/camo_skin27_col","#CAMO_SKIN_27","#CAMO_SKIN_27_DESC",0,0,0,0,1
+"camo_skin28","pilot_camo_skin28","titan_camo_skin28","CAMO","models/camo_skins/camo_skin28_col","#CAMO_SKIN_28","#CAMO_SKIN_28_DESC",150,100,75,50,4
+"camo_skin29","pilot_camo_skin29","titan_camo_skin29","CAMO","models/camo_skins/camo_skin29_col","#CAMO_SKIN_29","#CAMO_SKIN_29_DESC",150,100,75,50,4
+"camo_skin30","pilot_camo_skin30","titan_camo_skin30","CAMO","models/camo_skins/camo_skin30_col","#CAMO_SKIN_30","#CAMO_SKIN_30_DESC",0,0,0,0,1
+"camo_skin31","pilot_camo_skin31","titan_camo_skin31","CAMO","models/camo_skins/camo_skin31_col","#CAMO_SKIN_31","#CAMO_SKIN_31_DESC",0,0,0,0,1
+"camo_skin32","pilot_camo_skin32","titan_camo_skin32","CAMO","models/camo_skins/camo_skin32_col","#CAMO_SKIN_32","#CAMO_SKIN_32_DESC",150,100,75,50,4
+"camo_skin33","pilot_camo_skin33","titan_camo_skin33","CAMO","models/camo_skins/camo_skin33_col","#CAMO_SKIN_33","#CAMO_SKIN_33_DESC",150,100,75,50,4
+"camo_skin34","pilot_camo_skin34","titan_camo_skin34","CAMO","models/camo_skins/camo_skin34_col","#CAMO_SKIN_34","#CAMO_SKIN_34_DESC",150,100,75,50,4
+"camo_skin35","pilot_camo_skin35","titan_camo_skin35","CAMO","models/camo_skins/camo_skin35_col","#CAMO_SKIN_35","#CAMO_SKIN_35_DESC",150,100,75,50,3
+"camo_skin36","pilot_camo_skin36","titan_camo_skin36","CAMO","models/camo_skins/camo_skin36_col","#CAMO_SKIN_36","#CAMO_SKIN_36_DESC",150,100,75,50,3
+"camo_skin37","pilot_camo_skin37","titan_camo_skin37","CAMO","models/camo_skins/camo_skin37_col","#CAMO_SKIN_37","#CAMO_SKIN_37_DESC",150,100,75,50,4
+"camo_skin38","pilot_camo_skin38","titan_camo_skin38","CAMO","models/camo_skins/camo_skin38_col","#CAMO_SKIN_38","#CAMO_SKIN_38_DESC",150,100,75,50,4
+"camo_skin39","pilot_camo_skin39","titan_camo_skin39","CAMO","models/camo_skins/camo_skin39_col","#CAMO_SKIN_39","#CAMO_SKIN_39_DESC",150,100,75,50,4
+"camo_skin40","pilot_camo_skin40","titan_camo_skin40","CAMO","models/camo_skins/camo_skin40_col","#CAMO_SKIN_40","#CAMO_SKIN_40_DESC",150,100,75,50,3
+"camo_skin41","pilot_camo_skin41","titan_camo_skin41","CAMO","models/camo_skins/camo_skin41_col","#CAMO_SKIN_41","#CAMO_SKIN_41_DESC",150,100,75,50,3
+"camo_skin42","pilot_camo_skin42","titan_camo_skin42","CAMO","models/camo_skins/camo_skin42_col","#CAMO_SKIN_42","#CAMO_SKIN_42_DESC",150,100,75,50,3
+"camo_skin43","pilot_camo_skin43","titan_camo_skin43","CAMO","models/camo_skins/camo_skin43_col","#CAMO_SKIN_43","#CAMO_SKIN_43_DESC",150,100,75,50,3
+"camo_skin44","pilot_camo_skin44","titan_camo_skin44","CAMO","models/camo_skins/camo_skin44_col","#CAMO_SKIN_44","#CAMO_SKIN_44_DESC",150,100,75,50,3
+"camo_skin45","pilot_camo_skin45","titan_camo_skin45","CAMO","models/camo_skins/camo_skin45_col","#CAMO_SKIN_45","#CAMO_SKIN_45_DESC",150,100,75,50,3
+"camo_skin46","pilot_camo_skin46","titan_camo_skin46","CAMO","models/camo_skins/camo_skin46_col","#CAMO_SKIN_46","#CAMO_SKIN_46_DESC",150,100,75,50,3
+"camo_skin47","pilot_camo_skin47","titan_camo_skin47","CAMO","models/camo_skins/camo_skin47_col","#CAMO_SKIN_47","#CAMO_SKIN_47_DESC",150,100,75,50,4
+"camo_skin48","pilot_camo_skin48","titan_camo_skin48","CAMO","models/camo_skins/camo_skin48_col","#CAMO_SKIN_48","#CAMO_SKIN_48_DESC",150,100,75,50,4
+"camo_skin49","pilot_camo_skin49","titan_camo_skin49","CAMO","models/camo_skins/camo_skin49_col","#CAMO_SKIN_49","#CAMO_SKIN_49_DESC",150,100,75,50,4
+"camo_skin50","pilot_camo_skin50","titan_camo_skin50","CAMO","models/camo_skins/camo_skin50_col","#CAMO_SKIN_50","#CAMO_SKIN_50_DESC",150,100,75,50,4
+"camo_skin51","pilot_camo_skin51","titan_camo_skin51","CAMO","models/camo_skins/camo_skin51_col","#CAMO_SKIN_51","#CAMO_SKIN_51_DESC",150,100,75,50,4
+"camo_skin52","pilot_camo_skin52","titan_camo_skin52","CAMO","models/camo_skins/camo_skin52_col","#CAMO_SKIN_52","#CAMO_SKIN_52_DESC",150,100,75,50,4
+"camo_skin53","pilot_camo_skin53","titan_camo_skin53","CAMO","models/camo_skins/camo_skin53_col","#CAMO_SKIN_53","#CAMO_SKIN_53_DESC",150,100,75,50,4
+"camo_skin54","pilot_camo_skin54","titan_camo_skin54","CAMO","models/camo_skins/camo_skin54_col","#CAMO_SKIN_54","#CAMO_SKIN_54_DESC",150,100,75,50,4
+"camo_skin55","pilot_camo_skin55","titan_camo_skin55","CAMO","models/camo_skins/camo_skin55_col","#CAMO_SKIN_55","#CAMO_SKIN_55_DESC",0,0,0,0,2
+"camo_skin56","pilot_camo_skin56","titan_camo_skin56","CAMO","models/camo_skins/camo_skin56_col","#CAMO_SKIN_56","#CAMO_SKIN_56_DESC",0,0,0,0,2
+"camo_skin57","pilot_camo_skin57","titan_camo_skin57","CAMO","models/camo_skins/camo_skin57_col","#CAMO_SKIN_57","#CAMO_SKIN_57_DESC",0,0,0,0,2
+"camo_skin58","pilot_camo_skin58","titan_camo_skin58","CAMO","models/camo_skins/camo_skin58_col","#CAMO_SKIN_58","#CAMO_SKIN_58_DESC",0,0,0,0,2
+"camo_skin59","pilot_camo_skin59","titan_camo_skin59","CAMO","models/camo_skins/camo_skin59_col","#CAMO_SKIN_59","#CAMO_SKIN_59_DESC",0,0,0,0,2
+"camo_skin60","pilot_camo_skin60","titan_camo_skin60","CAMO","models/camo_skins/camo_skin60_col","#CAMO_SKIN_60","#CAMO_SKIN_60_DESC",0,0,0,0,2
+"camo_skin61","pilot_camo_skin61","titan_camo_skin61","CAMO","models/camo_skins/camo_skin61_col","#CAMO_SKIN_61","#CAMO_SKIN_61_DESC",0,0,0,0,2
+"camo_skin62","pilot_camo_skin62","titan_camo_skin62","CAMO","models/camo_skins/camo_skin62_col","#CAMO_SKIN_62","#CAMO_SKIN_62_DESC",0,0,0,0,2
+"camo_skin63","pilot_camo_skin63","titan_camo_skin63","CAMO","models/camo_skins/camo_skin63_col","#CAMO_SKIN_63","#CAMO_SKIN_63_DESC",0,0,0,0,2
+"camo_skin64","pilot_camo_skin64","titan_camo_skin64","CAMO","models/camo_skins/camo_skin64_col","#CAMO_SKIN_64","#CAMO_SKIN_64_DESC",0,0,0,0,2
+"camo_skin65","pilot_camo_skin65","titan_camo_skin65","CAMO","models/camo_skins/camo_skin65_col","#CAMO_SKIN_65","#CAMO_SKIN_65_DESC",0,0,0,0,2
+"camo_skin66","pilot_camo_skin66","titan_camo_skin66","CAMO","models/camo_skins/camo_skin66_col","#CAMO_SKIN_66","#CAMO_SKIN_66_DESC",0,0,0,0,2
+"camo_skin67","pilot_camo_skin67","titan_camo_skin67","CAMO","models/camo_skins/camo_skin67_col","#CAMO_SKIN_67","#CAMO_SKIN_67_DESC",0,0,0,0,2
+"camo_skin68","pilot_camo_skin68","titan_camo_skin68","CAMO","models/camo_skins/camo_skin68_col","#CAMO_SKIN_68","#CAMO_SKIN_68_DESC",150,100,75,50,4
+"camo_skin69","pilot_camo_skin69","titan_camo_skin69","CAMO","models/camo_skins/camo_skin69_col","#CAMO_SKIN_69","#CAMO_SKIN_69_DESC",150,100,75,50,4
+"camo_skin70","pilot_camo_skin70","titan_camo_skin70","CAMO","models/camo_skins/camo_skin70_col","#CAMO_SKIN_70","#CAMO_SKIN_70_DESC",150,100,75,50,4
+"camo_skin71","pilot_camo_skin71","titan_camo_skin71","CAMO","models/camo_skins/camo_skin71_col","#CAMO_SKIN_71","#CAMO_SKIN_71_DESC",150,100,75,50,4
+"camo_skin72","pilot_camo_skin72","titan_camo_skin72","CAMO","models/camo_skins/camo_skin72_col","#CAMO_SKIN_72","#CAMO_SKIN_72_DESC",150,100,75,50,4
+"camo_skin73","pilot_camo_skin73","titan_camo_skin73","CAMO","models/camo_skins/camo_skin73_col","#CAMO_SKIN_73","#CAMO_SKIN_73_DESC",150,100,75,50,4
+"camo_skin74","pilot_camo_skin74","titan_camo_skin74","CAMO","models/camo_skins/camo_skin74_col","#CAMO_SKIN_74","#CAMO_SKIN_74_DESC",150,100,75,50,4
+"camo_skin75","pilot_camo_skin75","titan_camo_skin75","CAMO","models/camo_skins/camo_skin75_col","#CAMO_SKIN_75","#CAMO_SKIN_75_DESC",150,100,75,50,4
+"camo_skin76","pilot_camo_skin76","titan_camo_skin76","CAMO","models/camo_skins/camo_skin76_col","#CAMO_SKIN_76","#CAMO_SKIN_76_DESC",150,100,75,50,3
+"camo_skin77","pilot_camo_skin77","titan_camo_skin77","CAMO","models/camo_skins/camo_skin77_col","#CAMO_SKIN_77","#CAMO_SKIN_77_DESC",150,100,75,50,3
+"camo_skin78","pilot_camo_skin78","titan_camo_skin78","CAMO","models/camo_skins/camo_skin78_col","#CAMO_SKIN_78","#CAMO_SKIN_78_DESC",150,100,75,50,3
+"camo_skin79","pilot_camo_skin79","titan_camo_skin79","CAMO","models/camo_skins/camo_skin79_col","#CAMO_SKIN_79","#CAMO_SKIN_79_DESC",150,100,75,50,3
+"camo_skin80","pilot_camo_skin80","titan_camo_skin80","CAMO","models/camo_skins/camo_skin80_col","#CAMO_SKIN_80","#CAMO_SKIN_80_DESC",150,100,75,50,3
+"camo_skin81","pilot_camo_skin81","titan_camo_skin81","CAMO","models/camo_skins/camo_skin81_col","#CAMO_SKIN_81","#CAMO_SKIN_81_DESC",0,0,0,0,1
+"camo_skin82","pilot_camo_skin82","titan_camo_skin82","CAMO","models/camo_skins/camo_skin82_col","#CAMO_SKIN_82","#CAMO_SKIN_82_DESC",0,0,0,0,1
+"camo_skin83","pilot_camo_skin83","titan_camo_skin83","CAMO","models/camo_skins/camo_skin83_col","#CAMO_SKIN_83","#CAMO_SKIN_83_DESC",0,0,0,0,1
+"camo_skin84","pilot_camo_skin84","titan_camo_skin84","CAMO","models/camo_skins/camo_skin84_col","#CAMO_SKIN_84","#CAMO_SKIN_84_DESC",150,100,75,50,4
+"camo_skin85","pilot_camo_skin85","titan_camo_skin85","CAMO","models/camo_skins/camo_skin85_col","#CAMO_SKIN_85","#CAMO_SKIN_85_DESC",0,0,0,0,2
+"camo_skin86","pilot_camo_skin86","titan_camo_skin86","CAMO","models/camo_skins/camo_skin86_col","#CAMO_SKIN_86","#CAMO_SKIN_86_DESC",150,100,75,50,4
+"camo_skin87","pilot_camo_skin87","titan_camo_skin87","CAMO","models/camo_skins/camo_skin87_col","#CAMO_SKIN_87","#CAMO_SKIN_87_DESC",0,0,0,0,2
+"camo_skin88","pilot_camo_skin88","titan_camo_skin88","CAMO","models/camo_skins/camo_skin88_col","#CAMO_SKIN_88","#CAMO_SKIN_88_DESC",150,100,75,50,4
+"camo_skin89","pilot_camo_skin89","titan_camo_skin89","CAMO","models/camo_skins/camo_skin89_col","#CAMO_SKIN_89","#CAMO_SKIN_89_DESC",150,100,75,50,4
+"camo_skin90","pilot_camo_skin90","titan_camo_skin90","CAMO","models/camo_skins/camo_skin90_col","#CAMO_SKIN_90","#CAMO_SKIN_90_DESC",150,100,75,50,4
+"camo_skin91","pilot_camo_skin91","titan_camo_skin91","CAMO","models/camo_skins/camo_skin91_col","#CAMO_SKIN_91","#CAMO_SKIN_91_DESC",0,0,0,0,2
+"camo_skin92","pilot_camo_skin92","titan_camo_skin92","CAMO","models/camo_skins/camo_skin92_col","#CAMO_SKIN_92","#CAMO_SKIN_92_DESC",0,0,0,0,1
+"camo_skin93","pilot_camo_skin93","titan_camo_skin93","CAMO","models/camo_skins/camo_skin93_col","#CAMO_SKIN_93","#CAMO_SKIN_93_DESC",0,0,0,0,2
+"camo_skin94","pilot_camo_skin94","titan_camo_skin94","CAMO","models/camo_skins/camo_skin94_col","#CAMO_SKIN_94","#CAMO_SKIN_94_DESC",0,0,0,0,2
+"camo_skin95","pilot_camo_skin95","titan_camo_skin95","CAMO","models/camo_skins/camo_skin95_col","#CAMO_SKIN_95","#CAMO_SKIN_95_DESC",150,100,75,50,4
+"camo_skin96","pilot_camo_skin96","titan_camo_skin96","CAMO","models/camo_skins/camo_skin96_col","#CAMO_SKIN_96","#CAMO_SKIN_96_DESC",150,100,75,50,4
+"camo_skin97","pilot_camo_skin97","titan_camo_skin97","CAMO","models/camo_skins/camo_skin97_col","#CAMO_SKIN_97","#CAMO_SKIN_97_DESC",0,0,0,0,1
+"camo_skin98","pilot_camo_skin98","titan_camo_skin98","CAMO","models/camo_skins/camo_skin98_col","#CAMO_SKIN_98","#CAMO_SKIN_98_DESC",150,100,75,50,4
+"camo_skin99","pilot_camo_skin99","titan_camo_skin99","CAMO","models/camo_skins/camo_skin99_col","#CAMO_SKIN_99","#CAMO_SKIN_99_DESC",150,100,75,50,4
+"camo_skin101","pilot_camo_skin101","titan_camo_skin101","CAMO","models/camo_skins/camo_skin101_col","#CAMO_SKIN_101","#CAMO_SKIN_101_DESC",0,0,0,0,5
+"camo_skin102","pilot_camo_skin102","titan_camo_skin102","CAMO","models/camo_skins/camo_skin102_col","#CAMO_SKIN_102","#CAMO_SKIN_102_DESC",0,0,0,0,5
+"camo_skin103","pilot_camo_skin103","titan_camo_skin103","CAMO","models/camo_skins/camo_skin103_col","#CAMO_SKIN_103","#CAMO_SKIN_103_DESC",0,0,0,0,5
+"camo_skin104","pilot_camo_skin104","titan_camo_skin104","CAMO","models/camo_skins/camo_skin104_col","#CAMO_SKIN_104","#CAMO_SKIN_104_DESC",0,0,0,0,5
+"camo_skin105","pilot_camo_skin105","titan_camo_skin105","CAMO","models/camo_skins/camo_skin105_col","#CAMO_SKIN_105","#CAMO_SKIN_105_DESC",0,0,0,0,5
+"camo_skin106","pilot_camo_skin106","titan_camo_skin106","CAMO","models/camo_skins/camo_skin106_col","#CAMO_SKIN_106","#CAMO_SKIN_106_DESC",0,0,0,0,5
+"camo_skin107","pilot_camo_skin107","titan_camo_skin107","CAMO","models/camo_skins/camo_skin107_col","#CAMO_SKIN_107","#CAMO_SKIN_107_DESC",0,0,0,0,5
+"camo_skin108","pilot_camo_skin108","titan_camo_skin108","CAMO","models/camo_skins/camo_skin108_col","#CAMO_SKIN_108","#CAMO_SKIN_108_DESC",0,0,0,0,5
+"camo_skin109","pilot_camo_skin109","titan_camo_skin109","CAMO","models/camo_skins/camo_skin109_col","#CAMO_SKIN_109","#CAMO_SKIN_109_DESC",0,0,0,0,5
+"camo_skin110","pilot_camo_skin110","titan_camo_skin110","CAMO","models/camo_skins/camo_skin110_col","#CAMO_SKIN_110","#CAMO_SKIN_110_DESC",0,0,0,0,5
+"camo_skin111","pilot_camo_skin111","titan_camo_skin111","CAMO","models/camo_skins/camo_skin111_col","#CAMO_SKIN_111","#CAMO_SKIN_111_DESC",0,0,0,0,5
+"camo_skin112","pilot_camo_skin112","titan_camo_skin112","CAMO","models/camo_skins/camo_skin112_col","#CAMO_SKIN_112","#CAMO_SKIN_112_DESC",0,0,0,0,5
+"camo_skin113","pilot_camo_skin113","titan_camo_skin113","CAMO","models/camo_skins/camo_skin113_col","#CAMO_SKIN_113","#CAMO_SKIN_113_DESC",0,0,0,0,5
+"camo_skin114","pilot_camo_skin114","titan_camo_skin114","CAMO","models/camo_skins/camo_skin114_col","#CAMO_SKIN_114","#CAMO_SKIN_114_DESC",0,0,0,0,5
+"camo_skin115","pilot_camo_skin115","titan_camo_skin115","CAMO","models/camo_skins/camo_skin115_col","#CAMO_SKIN_115","#CAMO_SKIN_115_DESC",0,0,0,0,5
+"camo_skin116","pilot_camo_skin116","titan_camo_skin116","CAMO","models/camo_skins/camo_skin116_col","#CAMO_SKIN_116","#CAMO_SKIN_116_DESC",0,0,0,0,5
+"camo_skin117","pilot_camo_skin117","titan_camo_skin117","CAMO","models/camo_skins/camo_skin117_col","#CAMO_SKIN_117","#CAMO_SKIN_117_DESC",0,0,0,0,5
+"camo_skin118","pilot_camo_skin118","titan_camo_skin118","CAMO","models/camo_skins/camo_skin118_col","#CAMO_SKIN_118","#CAMO_SKIN_118_DESC",0,0,0,0,5
+"camo_skin119","pilot_camo_skin119","titan_camo_skin119","CAMO","models/camo_skins/camo_skin119_col","#CAMO_SKIN_119","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin120","pilot_camo_skin120","titan_camo_skin120","CAMO","models/camo_skins/camo_skin120_col","#CAMO_SKIN_120","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin121","pilot_camo_skin121","titan_camo_skin121","CAMO","models/camo_skins/camo_skin121_col","#CAMO_SKIN_121","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin122","pilot_camo_skin122","titan_camo_skin122","CAMO","models/camo_skins/camo_skin122_col","#CAMO_SKIN_122","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin123","pilot_camo_skin123","titan_camo_skin123","CAMO","models/camo_skins/camo_skin123_col","#CAMO_SKIN_123","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin124","pilot_camo_skin124","titan_camo_skin124","CAMO","models/camo_skins/camo_skin124_col","#CAMO_SKIN_124","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin125","pilot_camo_skin125","titan_camo_skin125","CAMO","models/camo_skins/camo_skin125_col","#CAMO_SKIN_125","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin126","pilot_camo_skin126","titan_camo_skin126","CAMO","models/camo_skins/camo_skin126_col","#CAMO_SKIN_126","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin127","pilot_camo_skin127","titan_camo_skin127","CAMO","models/camo_skins/camo_skin127_col","#CAMO_SKIN_127","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin128","pilot_camo_skin128","titan_camo_skin128","CAMO","models/camo_skins/camo_skin128_col","#CAMO_SKIN_128","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin129","pilot_camo_skin129","titan_camo_skin129","CAMO","models/camo_skins/camo_skin129_col","#CAMO_SKIN_129","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin130","pilot_camo_skin130","titan_camo_skin130","CAMO","models/camo_skins/camo_skin130_col","#CAMO_SKIN_130","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin131","pilot_camo_skin131","titan_camo_skin131","CAMO","models/camo_skins/camo_skin131_col","#CAMO_SKIN_131","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin132","pilot_camo_skin132","titan_camo_skin132","CAMO","models/camo_skins/camo_skin132_col","#CAMO_SKIN_132","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin133","pilot_camo_skin133","titan_camo_skin133","CAMO","models/camo_skins/camo_skin133_col","#CAMO_SKIN_133","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin134","pilot_camo_skin134","titan_camo_skin134","CAMO","models/camo_skins/camo_skin134_col","#CAMO_SKIN_134","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin135","pilot_camo_skin135","titan_camo_skin135","CAMO","models/camo_skins/camo_skin135_col","#CAMO_SKIN_135","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin136","pilot_camo_skin136","titan_camo_skin136","CAMO","models/camo_skins/camo_skin136_col","#CAMO_SKIN_136","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin137","pilot_camo_skin137","titan_camo_skin137","CAMO","models/camo_skins/camo_skin137_col","#CAMO_SKIN_137","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin138","pilot_camo_skin138","titan_camo_skin138","CAMO","models/camo_skins/camo_skin138_col","#CAMO_SKIN_138","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin139","pilot_camo_skin139","titan_camo_skin139","CAMO","models/camo_skins/camo_skin139_col","#CAMO_SKIN_139","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin140","pilot_camo_skin140","titan_camo_skin140","CAMO","models/camo_skins/camo_skin140_col","#CAMO_SKIN_140","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin141","pilot_camo_skin141","titan_camo_skin141","CAMO","models/camo_skins/camo_skin141_col","#CAMO_SKIN_141","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin142","pilot_camo_skin142","titan_camo_skin142","CAMO","models/camo_skins/camo_skin142_col","#CAMO_SKIN_142","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin143","pilot_camo_skin143","titan_camo_skin143","CAMO","models/camo_skins/camo_skin143_col","#CAMO_SKIN_143","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin144","pilot_camo_skin144","titan_camo_skin144","CAMO","models/camo_skins/camo_skin144_col","#CAMO_SKIN_144","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin145","pilot_camo_skin145","titan_camo_skin145","CAMO","models/camo_skins/camo_skin145_col","#CAMO_SKIN_145","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin146","pilot_camo_skin146","titan_camo_skin146","CAMO","models/camo_skins/camo_skin146_col","#CAMO_SKIN_146","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin147","pilot_camo_skin147","titan_camo_skin147","CAMO","models/camo_skins/camo_skin147_col","#CAMO_SKIN_147","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin148","pilot_camo_skin148","titan_camo_skin148","CAMO","models/camo_skins/camo_skin148_col","#CAMO_SKIN_148","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin149","pilot_camo_skin149","titan_camo_skin149","CAMO","models/camo_skins/camo_skin149_col","#CAMO_SKIN_149","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin150","pilot_camo_skin150","titan_camo_skin150","CAMO","models/camo_skins/camo_skin150_col","#CAMO_SKIN_150","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin151","pilot_camo_skin151","titan_camo_skin151","CAMO","models/camo_skins/camo_skin151_col","#CAMO_SKIN_151","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin152","pilot_camo_skin152","titan_camo_skin152","CAMO","models/camo_skins/camo_skin152_col","#CAMO_SKIN_152","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin153","pilot_camo_skin153","titan_camo_skin153","CAMO","models/camo_skins/camo_skin153_col","#CAMO_SKIN_153","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin154","pilot_camo_skin154","titan_camo_skin154","CAMO","models/camo_skins/camo_skin154_col","#CAMO_SKIN_154","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin155","pilot_camo_skin155","titan_camo_skin155","CAMO","models/camo_skins/camo_skin155_col","#CAMO_SKIN_155","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin156","pilot_camo_skin156","titan_camo_skin156","CAMO","models/camo_skins/camo_skin156_col","#CAMO_SKIN_156","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin157","pilot_camo_skin157","titan_camo_skin157","CAMO","models/camo_skins/camo_skin157_col","#CAMO_SKIN_157","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin158","pilot_camo_skin158","titan_camo_skin158","CAMO","models/camo_skins/camo_skin158_col","#CAMO_SKIN_158","#CAMO_SKIN_120_DESC",0,0,0,0,5
+"camo_skin159","pilot_camo_skin159","titan_camo_skin159","CAMO","models/camo_skins/camo_skin159_col","#CAMO_SKIN_159","#CAMO_SKIN_119_DESC",0,0,0,0,5
+"camo_skin160","pilot_camo_skin160","titan_camo_skin160","CAMO","models/camo_skins/camo_skin160_col","#CAMO_SKIN_160","#CAMO_SKIN_120_DESC",0,0,0,0,5 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/community_entries.csv b/Northstar.CustomServers/mod/scripts/datatable/community_entries.csv
new file mode 100644
index 00000000..0616f131
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/community_entries.csv
@@ -0,0 +1,22 @@
+category,key,locString
+"categories","gaming","#COMMUNITY_CATEGORY_GAMING"
+"categories","lifestyle","#COMMUNITY_CATEGORY_LIFESTYLE"
+"categories","geography","#COMMUNITY_CATEGORY_GEOGRAPHY"
+"categories","tech","#COMMUNITY_CATEGORY_TECH"
+"categories","other","#COMMUNITY_CATEGORY_OTHER"
+"regions","North America","#COMMUNITY_REGION_NORTHAMERICA"
+"regions","Europe","#COMMUNITY_REGION_EUROPE"
+"regions","South America","#COMMUNITY_REGION_SOUTHAMERICA"
+"regions","Asia","#COMMUNITY_REGION_ASIA"
+"regions","Oceania","#COMMUNITY_REGION_AUSTRALIA"
+"languages","English","#COMMUNITY_LANGUAGE_ENGLISH"
+"languages","French","#COMMUNITY_LANGUAGE_FRENCH"
+"languages","Italian","#COMMUNITY_LANGUAGE_ITALIAN"
+"languages","German","#COMMUNITY_LANGUAGE_GERMAN"
+"languages","Spanish","#COMMUNITY_LANGUAGE_SPANISH"
+"languages","MSpanish","#COMMUNITY_LANGUAGE_MSPANISH"
+"languages","Japanese","#COMMUNITY_LANGUAGE_JAPANESE"
+"languages","TChinese","#COMMUNITY_LANGUAGE_TCHINESE"
+"languages","Russian","#COMMUNITY_LANGUAGE_RUSSIAN"
+"languages","Portuguese","#COMMUNITY_LANGUAGE_PORTUGUESE"
+"languages","Polish","#COMMUNITY_LANGUAGE_POLISH" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/death_hints_mp.csv b/Northstar.CustomServers/mod/scripts/datatable/death_hints_mp.csv
new file mode 100644
index 00000000..4388ab0f
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/death_hints_mp.csv
@@ -0,0 +1,381 @@
+source,className,locString,mapName,gameMode
+"titan_class","ion","#DEATH_HINT_ION_001","",""
+"titan_class","ion","#DEATH_HINT_ION_002","",""
+"titan_class","ion","#DEATH_HINT_ION_003","",""
+"titan_class","ion","#DEATH_HINT_ION_004","",""
+"titan_class","ion","#DEATH_HINT_ION_005","",""
+"titan_class","ion","#DEATH_HINT_ION_006","",""
+"titan_class","legion","#DEATH_HINT_LEGION_001","",""
+"titan_class","legion","#DEATH_HINT_LEGION_002","",""
+"titan_class","legion","#DEATH_HINT_LEGION_003","",""
+"titan_class","legion","#DEATH_HINT_LEGION_004","",""
+"titan_class","legion","#DEATH_HINT_LEGION_005","",""
+"titan_class","legion","#DEATH_HINT_LEGION_006","",""
+"titan_class","northstar","#DEATH_HINT_NORTHSTAR_001","",""
+"titan_class","northstar","#DEATH_HINT_NORTHSTAR_002","",""
+"titan_class","northstar","#DEATH_HINT_NORTHSTAR_003","",""
+"titan_class","northstar","#DEATH_HINT_NORTHSTAR_004","",""
+"titan_class","northstar","#DEATH_HINT_NORTHSTAR_005","",""
+"titan_class","northstar","#DEATH_HINT_NORTHSTAR_006","",""
+"titan_class","ronin","#DEATH_HINT_RONIN_001","",""
+"titan_class","ronin","#DEATH_HINT_RONIN_002","",""
+"titan_class","ronin","#DEATH_HINT_RONIN_003","",""
+"titan_class","ronin","#DEATH_HINT_RONIN_004","",""
+"titan_class","ronin","#DEATH_HINT_RONIN_005","",""
+"titan_class","ronin","#DEATH_HINT_RONIN_006","",""
+"titan_class","ronin","#DEATH_HINT_RONIN_007","",""
+"titan_class","ronin","#DEATH_HINT_RONIN_008","",""
+"titan_class","ronin","#DEATH_HINT_RONIN_009","",""
+"titan_class","scorch","#DEATH_HINT_SCORCH_001","",""
+"titan_class","scorch","#DEATH_HINT_SCORCH_002","",""
+"titan_class","scorch","#DEATH_HINT_SCORCH_003","",""
+"titan_class","scorch","#DEATH_HINT_SCORCH_004","",""
+"titan_class","scorch","#DEATH_HINT_SCORCH_005","",""
+"titan_class","scorch","#DEATH_HINT_SCORCH_006","",""
+"titan_class","tone","#DEATH_HINT_TONE_001","",""
+"titan_class","tone","#DEATH_HINT_TONE_002","",""
+"titan_class","tone","#DEATH_HINT_TONE_003","",""
+"titan_class","tone","#DEATH_HINT_TONE_004","",""
+"titan_class","tone","#DEATH_HINT_TONE_005","",""
+"titan_class","tone","#DEATH_HINT_TONE_006","",""
+"weapon","mp_ability_cloak","#DEATH_HINT_CLOAK_001","",""
+"weapon","mp_ability_cloak","#DEATH_HINT_CLOAK_002","",""
+"weapon","mp_ability_cloak","#DEATH_HINT_CLOAK_003","",""
+"weapon","mp_ability_grapple","#DEATH_HINT_GRAPPLE_001","",""
+"weapon","mp_ability_heal","#DEATH_HINT_STIM_001","",""
+"weapon","mp_ability_heal","#DEATH_HINT_STIM_002","",""
+"weapon","mp_ability_heal","#DEATH_HINT_STIM_003","",""
+"weapon","mp_ability_holopilot","#DEATH_HINT_HOLOPILOT_001","",""
+"weapon","mp_ability_holopilot","#DEATH_HINT_HOLOPILOT_002","",""
+"weapon","mp_ability_holopilot","#DEATH_HINT_HOLOPILOT_003","",""
+"weapon","mp_ability_holopilot","#DEATH_HINT_HOLOPILOT_004","",""
+"weapon","mp_ability_holopilot","#DEATH_HINT_HOLOPILOT_005","",""
+"weapon","mp_ability_holopilot","#DEATH_HINT_HOLOPILOT_006","",""
+"weapon","mp_ability_phase_rewind","#DEATH_HINT_PHASE_REWIND_001","",""
+"weapon","mp_ability_shifter","#DEATH_HINT_PHASESHIFT_001","",""
+"weapon","mp_ability_shifter","#DEATH_HINT_PHASESHIFT_002","",""
+"weapon","mp_ability_shifter","#DEATH_HINT_PHASESHIFT_003","",""
+"weapon","mp_ability_shifter","#DEATH_HINT_PHASESHIFT_004","",""
+"weapon","mp_ability_shifter","#DEATH_HINT_PHASESHIFT_005","",""
+"weapon","mp_ability_shifter","#DEATH_HINT_PHASESHIFT_006","",""
+"weapon","mp_ability_shifter","#DEATH_HINT_PHASESHIFT_007","",""
+"weapon","mp_ability_shifter","#DEATH_HINT_PHASESHIFT_008","",""
+"weapon","mp_ability_sonar","#DEATH_HINT_SONAR_001","",""
+"weapon","mp_titanability_ammo_swap","#DEATH_HINT_AMMO_SWAP_001_MP","",""
+"weapon","mp_titanability_basic_block","#DEATH_HINT_SWORD_BLOCK_001_MP","",""
+"weapon","mp_titanability_gun_shield","#DEATH_HINT_GUN_SHIELD_001_MP","",""
+"weapon","mp_titanability_hover","#DEATH_HINT_TITAN_HOVER_001","",""
+"weapon","mp_titanability_laser_trip","#DEATH_HINT_LASER_TRIPWIRE_001","",""
+"weapon","mp_titanability_particle_wall","#DEATH_HINT_PARTICLE_WALL_001_MP","",""
+"weapon","mp_titanability_particle_wall","#DEATH_HINT_PARTICLE_WALL_002_MP","",""
+"weapon","mp_titanability_particle_wall","#DEATH_HINT_PARTICLE_WALL_003_MP","",""
+"weapon","mp_titanability_phase_dash","#DEATH_HINT_PHASE_DASH_001_MP","",""
+"weapon","mp_titanability_phase_dash","#DEATH_HINT_PHASE_DASH_002_MP","",""
+"weapon","mp_titanability_power_shot","#DEATH_HINT_POWER_SHOT_001_MP","",""
+"weapon","mp_titanability_power_shot","#DEATH_HINT_POWER_SHOT_002_MP","",""
+"weapon","mp_titanability_slow_trap","#DEATH_HINT_INCENDIARY_TRAP_001","",""
+"weapon","mp_titanability_tether_trap","#DEATH_HINT_TETHER_TRAP_001_MP","",""
+"weapon","mp_titancore_flame_wave","#DEATH_HINT_FLAME_CORE_001_MP","",""
+"weapon","mp_titancore_flight_core","#DEATH_HINT_FLIGHT_CORE_001_MP","",""
+"weapon","mp_titancore_laser_cannon","#DEATH_HINT_LASER_CANNON_001_MP","",""
+"weapon","mp_titancore_salvo_core","#DEATH_HINT_SALVO_CORE_001_MP","",""
+"weapon","mp_titancore_shift_core","#DEATH_HINT_SHIFT_CORE_001","",""
+"weapon","mp_titancore_siege_mode","#DEATH_HINT_SMART_CORE_001_MP","",""
+"weapon","mp_titanweapon_arc_wave","#DEATH_HINT_ARC_WAVE_001","",""
+"weapon","mp_titanweapon_flame_wall","#DEATH_HINT_FIREWALL_001_MP","",""
+"weapon","mp_titanweapon_heat_shield","#DEATH_HINT_HEAT_SHIELD_001_MP","",""
+"weapon","mp_titanweapon_laser_lite","#DEATH_HINT_LASER_SHOT_001_MP","",""
+"weapon","mp_titanweapon_leadwall","#DEATH_HINT_LEADWALL_001","",""
+"weapon","mp_titanweapon_leadwall","#DEATH_HINT_LEADWALL_002","",""
+"weapon","mp_titanweapon_leadwall","#DEATH_HINT_LEADWALL_003","",""
+"weapon","mp_titanweapon_leadwall","#DEATH_HINT_LEADWALL_004","",""
+"weapon","mp_titanweapon_meteor","#DEATH_HINT_THERMITE_LAUNCHER_001","",""
+"weapon","mp_titanweapon_meteor","#DEATH_HINT_THERMITE_LAUNCHER_002","",""
+"weapon","mp_titanweapon_meteor","#DEATH_HINT_THERMITE_LAUNCHER_003","",""
+"weapon","mp_titanweapon_meteor","#DEATH_HINT_THERMITE_LAUNCHER_004","",""
+"weapon","mp_titanweapon_meteor","#DEATH_HINT_THERMITE_LAUNCHER_005","",""
+"weapon","mp_titanweapon_particle_accelerator","#DEATH_HINT_SPLITTER_RIFLE_001","",""
+"weapon","mp_titanweapon_particle_accelerator","#DEATH_HINT_SPLITTER_RIFLE_002","",""
+"weapon","mp_titanweapon_particle_accelerator","#DEATH_HINT_SPLITTER_RIFLE_003","",""
+"weapon","mp_titanweapon_particle_accelerator","#DEATH_HINT_SPLITTER_RIFLE_004","",""
+"weapon","mp_titanweapon_predator_cannon","#DEATH_HINT_PREDATOR_CANNON_001","",""
+"weapon","mp_titanweapon_predator_cannon","#DEATH_HINT_PREDATOR_CANNON_002","",""
+"weapon","mp_titanweapon_predator_cannon","#DEATH_HINT_PREDATOR_CANNON_003","",""
+"weapon","mp_titanweapon_predator_cannon","#DEATH_HINT_PREDATOR_CANNON_004","",""
+"weapon","mp_titanweapon_predator_cannon","#DEATH_HINT_PREDATOR_CANNON_005","",""
+"weapon","mp_titanweapon_sniper","#DEATH_HINT_PLASMA_RAILGUN_001","",""
+"weapon","mp_titanweapon_sniper","#DEATH_HINT_PLASMA_RAILGUN_002","",""
+"weapon","mp_titanweapon_sniper","#DEATH_HINT_PLASMA_RAILGUN_003","",""
+"weapon","mp_titanweapon_sniper","#DEATH_HINT_PLASMA_RAILGUN_004","",""
+"weapon","mp_titanweapon_sniper","#DEATH_HINT_PLASMA_RAILGUN_005","",""
+"weapon","mp_titanweapon_sticky_40mm","#DEATH_HINT_40MM_TRACKER_001","",""
+"weapon","mp_titanweapon_sticky_40mm","#DEATH_HINT_40MM_TRACKER_002","",""
+"weapon","mp_titanweapon_sticky_40mm","#DEATH_HINT_40MM_TRACKER_003","",""
+"weapon","mp_titanweapon_sticky_40mm","#DEATH_HINT_40MM_TRACKER_004","",""
+"weapon","mp_titanweapon_sticky_40mm","#DEATH_HINT_40MM_TRACKER_005","",""
+"weapon","mp_titanweapon_sticky_40mm","#DEATH_HINT_40MM_TRACKER_006","",""
+"weapon","mp_titanweapon_tracker_rockets","#DEATH_HINT_TRACKING_ROCKETS_001_MP","",""
+"weapon","mp_titanweapon_tracker_rockets","#DEATH_HINT_TRACKING_ROCKETS_002_MP","",""
+"weapon","mp_titanweapon_tracker_rockets","#DEATH_HINT_TRACKING_ROCKETS_003","",""
+"weapon","mp_titanweapon_vortex_shield","#DEATH_HINT_VORTEX_SHIELD_001","",""
+"weapon","mp_titanweapon_vortex_shield","#DEATH_HINT_VORTEX_SHIELD_002_MP","",""
+"weapon","mp_weapon_alternator_smg","#DEATH_HINT_ALTERNATOR_001","",""
+"weapon","mp_weapon_alternator_smg","#DEATH_HINT_ALTERNATOR_002","",""
+"weapon","mp_weapon_arc_launcher","#DEATH_HINT_ARCLAUNCHER_001","",""
+"weapon","mp_weapon_arc_launcher","#DEATH_HINT_ARCLAUNCHER_002","",""
+"weapon","mp_weapon_arc_launcher","#DEATH_HINT_ARCLAUNCHER_003","",""
+"weapon","mp_weapon_arc_launcher","#DEATH_HINT_ARCLAUNCHER_004","",""
+"weapon","mp_weapon_autopistol","#DEATH_HINT_RE45_001","",""
+"weapon","mp_weapon_autopistol","#DEATH_HINT_RE45_002","",""
+"weapon","mp_weapon_autopistol","#DEATH_HINT_RE45_003","",""
+"weapon","mp_weapon_car","#DEATH_HINT_CAR_001","",""
+"weapon","mp_weapon_car","#DEATH_HINT_CAR_002","",""
+"weapon","mp_weapon_defender","#DEATH_HINT_CHARGERIFLE_001","",""
+"weapon","mp_weapon_defender","#DEATH_HINT_CHARGERIFLE_002","",""
+"weapon","mp_weapon_defender","#DEATH_HINT_CHARGERIFLE_003","",""
+"weapon","mp_weapon_defender","#DEATH_HINT_CHARGERIFLE_004","",""
+"weapon","mp_weapon_defender","#DEATH_HINT_CHARGERIFLE_005","",""
+"weapon","mp_weapon_defender","#DEATH_HINT_CHARGERIFLE_006","",""
+"weapon","mp_weapon_deployable_cover","#DEATH_HINT_AWALL_001","",""
+"weapon","mp_weapon_deployable_cover","#DEATH_HINT_AWALL_002","",""
+"weapon","mp_weapon_deployable_cover","#DEATH_HINT_AWALL_003","",""
+"weapon","mp_weapon_deployable_cover","#DEATH_HINT_AWALL_004","",""
+"weapon","mp_weapon_deployable_cover","#DEATH_HINT_AWALL_005","",""
+"weapon","mp_weapon_deployable_cover","#DEATH_HINT_AWALL_006","",""
+"weapon","mp_weapon_dmr","#DEATH_HINT_DMR_001","",""
+"weapon","mp_weapon_dmr","#DEATH_HINT_DMR_002","",""
+"weapon","mp_weapon_dmr","#DEATH_HINT_DMR_003","",""
+"weapon","mp_weapon_dmr","#DEATH_HINT_DMR_004","",""
+"weapon","mp_weapon_dmr","#DEATH_HINT_DMR_005","",""
+"weapon","mp_weapon_dmr","#DEATH_HINT_DMR_006","",""
+"weapon","mp_weapon_doubletake","#DEATH_HINT_DOUBLETAKE_001","",""
+"weapon","mp_weapon_doubletake","#DEATH_HINT_DOUBLETAKE_002","",""
+"weapon","mp_weapon_doubletake","#DEATH_HINT_DOUBLETAKE_003","",""
+"weapon","mp_weapon_doubletake","#DEATH_HINT_DOUBLETAKE_004","",""
+"weapon","mp_weapon_doubletake","#DEATH_HINT_DOUBLETAKE_005","",""
+"weapon","mp_weapon_doubletake","#DEATH_HINT_DOUBLETAKE_006","",""
+"weapon","mp_weapon_doubletake","#DEATH_HINT_DOUBLETAKE_007","",""
+"weapon","mp_weapon_epg","#DEATH_HINT_EPG1_001","",""
+"weapon","mp_weapon_epg","#DEATH_HINT_EPG1_002","",""
+"weapon","mp_weapon_epg","#DEATH_HINT_EPG1_003","",""
+"weapon","mp_weapon_epg","#DEATH_HINT_EPG1_004","",""
+"weapon","mp_weapon_epg","#DEATH_HINT_EPG1_005","",""
+"weapon","mp_weapon_epg","#DEATH_HINT_EPG1_006","",""
+"weapon","mp_weapon_epg","#DEATH_HINT_EPG1_007","",""
+"weapon","mp_weapon_epg","#DEATH_HINT_EPG1_008","",""
+"weapon","mp_weapon_esaw","#DEATH_HINT_DEVOTION_001","",""
+"weapon","mp_weapon_esaw","#DEATH_HINT_DEVOTION_002","",""
+"weapon","mp_weapon_esaw","#DEATH_HINT_DEVOTION_003","",""
+"weapon","mp_weapon_esaw","#DEATH_HINT_DEVOTION_004","",""
+"weapon","mp_weapon_frag_drone","#DEATH_HINT_FRAG_DRONE_001","",""
+"weapon","mp_weapon_frag_grenade","#DEATH_HINT_GRENADE_FRAG_001","",""
+"weapon","mp_weapon_frag_grenade","#DEATH_HINT_GRENADE_FRAG_002","",""
+"weapon","mp_weapon_frag_grenade","#DEATH_HINT_GRENADE_FRAG_003","",""
+"weapon","mp_weapon_frag_grenade","#DEATH_HINT_GRENADE_FRAG_004","",""
+"weapon","mp_weapon_frag_grenade","#DEATH_HINT_GRENADE_FRAG_005","",""
+"weapon","mp_weapon_frag_grenade","#DEATH_HINT_GRENADE_FRAG_006","",""
+"weapon","mp_weapon_frag_grenade","#DEATH_HINT_GRENADE_FRAG_007","",""
+"weapon","mp_weapon_g2","#DEATH_HINT_G2_001","",""
+"weapon","mp_weapon_g3","#DEATH_HINT_G2_002","",""
+"weapon","mp_weapon_g4","#DEATH_HINT_G2_003","",""
+"weapon","mp_weapon_g5","#DEATH_HINT_G2_004","",""
+"weapon","mp_weapon_grenade_electric_smoke","#DEATH_HINT_GRENADE_ELECTRIC_SMOKE_001","",""
+"weapon","mp_weapon_grenade_electric_smoke","#DEATH_HINT_GRENADE_ELECTRIC_SMOKE_002","",""
+"weapon","mp_weapon_grenade_electric_smoke","#DEATH_HINT_GRENADE_ELECTRIC_SMOKE_003","",""
+"weapon","mp_weapon_grenade_electric_smoke","#DEATH_HINT_GRENADE_ELECTRIC_SMOKE_004","",""
+"weapon","mp_weapon_grenade_emp","#DEATH_HINT_GRENADE_EMP_001","",""
+"weapon","mp_weapon_grenade_emp","#DEATH_HINT_GRENADE_EMP_002","",""
+"weapon","mp_weapon_grenade_emp","#DEATH_HINT_GRENADE_EMP_003","",""
+"weapon","mp_weapon_grenade_emp","#DEATH_HINT_GRENADE_EMP_004","",""
+"weapon","mp_weapon_grenade_emp","#DEATH_HINT_GRENADE_EMP_005","",""
+"weapon","mp_weapon_grenade_gravity","#DEATH_HINT_GRENADE_GRAVITY_001","",""
+"weapon","mp_weapon_grenade_gravity","#DEATH_HINT_GRENADE_GRAVITY_002","",""
+"weapon","mp_weapon_grenade_gravity","#DEATH_HINT_GRENADE_GRAVITY_003","",""
+"weapon","mp_weapon_grenade_gravity","#DEATH_HINT_GRENADE_GRAVITY_004","",""
+"weapon","mp_weapon_grenade_gravity","#DEATH_HINT_GRENADE_GRAVITY_005","",""
+"weapon","mp_weapon_grenade_sonar","#DEATH_HINT_GRENADE_SONAR_001","",""
+"weapon","mp_weapon_grenade_sonar","#DEATH_HINT_GRENADE_SONAR_002","",""
+"weapon","mp_weapon_grenade_sonar","#DEATH_HINT_GRENADE_SONAR_003","",""
+"weapon","mp_weapon_grenade_sonar","#DEATH_HINT_GRENADE_SONAR_004","",""
+"weapon","mp_weapon_hemlok","#DEATH_HINT_HEMLOK_001","",""
+"weapon","mp_weapon_hemlok","#DEATH_HINT_HEMLOK_002","",""
+"weapon","mp_weapon_hemlok_smg","#DEATH_HINT_VOLT_001","",""
+"weapon","mp_weapon_hemlok_smg","#DEATH_HINT_VOLT_002","",""
+"weapon","mp_weapon_lmg","#DEATH_HINT_SPITFIRE_001","",""
+"weapon","mp_weapon_lmg","#DEATH_HINT_SPITFIRE_002","",""
+"weapon","mp_weapon_lmg","#DEATH_HINT_SPITFIRE_003","",""
+"weapon","mp_weapon_lmg","#DEATH_HINT_SPITFIRE_004","",""
+"weapon","mp_weapon_lmg","#DEATH_HINT_SPITFIRE_005","",""
+"weapon","mp_weapon_lmg","#DEATH_HINT_SPITFIRE_006","",""
+"weapon","mp_weapon_lmg","#DEATH_HINT_SPITFIRE_007","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_001","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_002","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_003","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_004","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_005","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_006","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_007","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_008","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_009","",""
+"weapon","mp_weapon_lstar","#DEATH_HINT_LSTAR_010","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_001","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_002","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_003","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_004","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_005","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_006","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_007","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_008","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_009","",""
+"weapon","mp_weapon_mastiff","#DEATH_HINT_MASTIFF_010","",""
+"weapon","mp_weapon_mgl","#DEATH_HINT_MGL_001","",""
+"weapon","mp_weapon_mgl","#DEATH_HINT_MGL_002","",""
+"weapon","mp_weapon_mgl","#DEATH_HINT_MGL_003","",""
+"weapon","mp_weapon_mgl","#DEATH_HINT_MGL_004","",""
+"weapon","mp_weapon_mgl","#DEATH_HINT_MGL_005","",""
+"weapon","mp_weapon_mgl","#DEATH_HINT_MGL_006","",""
+"weapon","mp_weapon_mgl","#DEATH_HINT_MGL_007","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_001","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_002","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_003","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_004","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_005","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_006","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_007","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_008","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_009","",""
+"weapon","mp_weapon_pulse_lmg","#DEATH_HINT_COLDWAR_010","",""
+"weapon","mp_weapon_r97","#DEATH_HINT_97_001","",""
+"weapon","mp_weapon_r97","#DEATH_HINT_97_002","",""
+"weapon","mp_weapon_r97","#DEATH_HINT_97_003","",""
+"weapon","mp_weapon_r97","#DEATH_HINT_97_004","",""
+"weapon","mp_weapon_rocket_launcher","#DEATH_HINT_ARCHER_001","",""
+"weapon","mp_weapon_rocket_launcher","#DEATH_HINT_ARCHER_002","",""
+"weapon","mp_weapon_rocket_launcher","#DEATH_HINT_ARCHER_003","",""
+"weapon","mp_weapon_rocket_launcher","#DEATH_HINT_ARCHER_004","",""
+"weapon","mp_weapon_rocket_launcher","#DEATH_HINT_ARCHER_005","",""
+"weapon","mp_weapon_rspn101","#DEATH_HINT_102_001","",""
+"weapon","mp_weapon_rspn102","#DEATH_HINT_102_002","",""
+"weapon","mp_weapon_satchel","#DEATH_HINT_SATCHEL_001","",""
+"weapon","mp_weapon_satchel","#DEATH_HINT_SATCHEL_002","",""
+"weapon","mp_weapon_satchel","#DEATH_HINT_SATCHEL_003","",""
+"weapon","mp_weapon_semipistol","#DEATH_HINT_P2011_001","",""
+"weapon","mp_weapon_semipistol","#DEATH_HINT_P2011_002","",""
+"weapon","mp_weapon_semipistol","#DEATH_HINT_P2011_003","",""
+"weapon","mp_weapon_shotgun","#DEATH_HINT_EVA8_001","",""
+"weapon","mp_weapon_shotgun","#DEATH_HINT_EVA8_002","",""
+"weapon","mp_weapon_shotgun","#DEATH_HINT_EVA8_003","",""
+"weapon","mp_weapon_shotgun","#DEATH_HINT_EVA8_004","",""
+"weapon","mp_weapon_shotgun","#DEATH_HINT_EVA8_005","",""
+"weapon","mp_weapon_shotgun","#DEATH_HINT_EVA8_006","",""
+"weapon","mp_weapon_shotgun","#DEATH_HINT_EVA8_007","",""
+"weapon","mp_weapon_shotgun_pistol","#DEATH_HINT_MOZAMBIQUE_001","",""
+"weapon","mp_weapon_shotgun_pistol","#DEATH_HINT_MOZAMBIQUE_002","",""
+"weapon","mp_weapon_shotgun_pistol","#DEATH_HINT_MOZAMBIQUE_003","",""
+"weapon","mp_weapon_smart_pistol","#DEATH_HINT_SMARTPISTOL_001","",""
+"weapon","mp_weapon_smart_pistol","#DEATH_HINT_SMARTPISTOL_002","",""
+"weapon","mp_weapon_smart_pistol","#DEATH_HINT_SMARTPISTOL_003","",""
+"weapon","mp_weapon_smart_pistol","#DEATH_HINT_SMARTPISTOL_004","",""
+"weapon","mp_weapon_smart_pistol","#DEATH_HINT_SMARTPISTOL_005","",""
+"weapon","mp_weapon_smart_pistol","#DEATH_HINT_SMARTPISTOL_006","",""
+"weapon","mp_weapon_smr","#DEATH_HINT_SMR_001","",""
+"weapon","mp_weapon_smr","#DEATH_HINT_SMR_002","",""
+"weapon","mp_weapon_smr","#DEATH_HINT_SMR_003","",""
+"weapon","mp_weapon_smr","#DEATH_HINT_SMR_004","",""
+"weapon","mp_weapon_smr","#DEATH_HINT_SMR_005","",""
+"weapon","mp_weapon_smr","#DEATH_HINT_SMR_006","",""
+"weapon","mp_weapon_smr","#DEATH_HINT_SMR_007","",""
+"weapon","mp_weapon_smr","#DEATH_HINT_SMR_008","",""
+"weapon","mp_weapon_sniper","#DEATH_HINT_KRABER_001","",""
+"weapon","mp_weapon_sniper","#DEATH_HINT_KRABER_002","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_001","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_002","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_003","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_004","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_005","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_006","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_007","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_008","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_009","",""
+"weapon","mp_weapon_softball","#DEATH_HINT_SOFTBALL_010","",""
+"weapon","mp_weapon_thermite_grenade","#DEATH_HINT_GRENADE_THERMITE_001","",""
+"weapon","mp_weapon_thermite_grenade","#DEATH_HINT_GRENADE_THERMITE_002","",""
+"weapon","mp_weapon_thermite_grenade","#DEATH_HINT_GRENADE_THERMITE_003","",""
+"weapon","mp_weapon_thermite_grenade","#DEATH_HINT_GRENADE_THERMITE_004","",""
+"weapon","mp_weapon_vinson","#DEATH_HINT_VINSON_001","",""
+"weapon","mp_weapon_vinson","#DEATH_HINT_VINSON_002","",""
+"weapon","mp_weapon_vinson","#DEATH_HINT_VINSON_003","",""
+"weapon","mp_weapon_wingman","#DEATH_HINT_WINGMAN_001","",""
+"weapon","mp_weapon_wingman","#DEATH_HINT_WINGMAN_002","",""
+"weapon","mp_weapon_wingman","#DEATH_HINT_WINGMAN_003","",""
+"weapon","mp_weapon_wingman","#DEATH_HINT_WINGMAN_004","",""
+"weapon","mp_weapon_wingman_n","#DEATH_HINT_WINGMAN_N_001","",""
+"weapon","pas_power_cell","#DEATH_HINT_POWER_CELL_001","",""
+"weapon","pas_fast_health_regen","#DEATH_HINT_FAST_REGEN_001","",""
+"weapon","pas_ordnance_pack","#DEATH_HINT_ORDNANCE_EXPERT_001","",""
+"weapon","pas_ordnance_pack","#DEATH_HINT_ORDNANCE_EXPERT_002","",""
+"weapon","pas_ordnance_pack","#DEATH_HINT_ORDNANCE_EXPERT_003","",""
+"weapon","pas_ordnance_pack","#DEATH_HINT_ORDNANCE_EXPERT_004","",""
+"weapon","pas_fast_embark","#DEATH_HINT_PHASE_EMBARK_001","",""
+"weapon","pas_fast_embark","#DEATH_HINT_PHASE_EMBARK_002","",""
+"weapon","pas_fast_embark","#DEATH_HINT_PHASE_EMBARK_003","",""
+"weapon","pas_enemy_death_icons","#DEATH_HINT_KILL_REPORT_001","",""
+"weapon","pas_enemy_death_icons","#DEATH_HINT_KILL_REPORT_002","",""
+"weapon","pas_enemy_death_icons","#DEATH_HINT_KILL_REPORT_003","",""
+"weapon","pas_wallhang","#DEATH_HINT_WALLHANG_001","",""
+"weapon","pas_wallhang","#DEATH_HINT_WALLHANG_002","",""
+"weapon","pas_ads_hover","#DEATH_HINT_HOVER_001","",""
+"weapon","pas_ads_hover","#DEATH_HINT_HOVER_002","",""
+"weapon","pas_ads_hover","#DEATH_HINT_HOVER_003","",""
+"weapon","pas_ads_hover","#DEATH_HINT_HOVER_004","",""
+"weapon","pas_ads_hover","#DEATH_HINT_HOVER_005","",""
+"weapon","pas_stealth_movement","#DEATH_HINT_LOW_PROFILE_001","",""
+"weapon","pas_enhanced_titan_ai","#DEATH_HINT_ASSAULT_CHIP_001","",""
+"weapon","pas_enhanced_titan_ai","#DEATH_HINT_ASSAULT_CHIP_002","",""
+"weapon","pas_auto_eject","#DEATH_HINT_AUTO_EJECT_001","",""
+"weapon","pas_auto_eject","#DEATH_HINT_AUTO_EJECT_002","",""
+"weapon","pas_auto_eject","#DEATH_HINT_AUTO_EJECT_003","",""
+"weapon","pas_auto_eject","#DEATH_HINT_AUTO_EJECT_004","",""
+"weapon","pas_mobility_dash_capacity","#DEATH_HINT_TURBO_ENGINE_001","",""
+"weapon","pas_mobility_dash_capacity","#DEATH_HINT_TURBO_ENGINE_002","",""
+"weapon","pas_mobility_dash_capacity","#DEATH_HINT_TURBO_ENGINE_003","",""
+"weapon","pas_hyper_core","#DEATH_HINT_OVERCORE_001","",""
+"weapon","pas_build_up_nuclear_core","#DEATH_HINT_NUKE_EJECT_001","",""
+"weapon","pas_build_up_nuclear_core","#DEATH_HINT_NUKE_EJECT_002","",""
+"weapon","pas_anti_rodeo","#DEATH_HINT_COUNTER_READY_001","",""
+"weapon","pas_anti_rodeo","#DEATH_HINT_COUNTER_READY_002","",""
+"weapon","pas_warpfall","#DEATH_HINT_WARPFALL_001","",""
+"weapon","pas_bubbleshield","#DEATH_HINT_DOME_SHIELD_001","",""
+"weapon","pas_bubbleshield","#DEATH_HINT_DOME_SHIELD_002","",""
+"npc_title","#NPC_TITAN_AUTO_NUKE","#HINT_FD_TITAN_AUTO_NUKE","","fd"
+"npc_title","#NPC_TITAN_AUTO_NUKE","#HINT_FD_TITAN_AUTO_NUKE2","","fd"
+"npc_title","#NPC_TITAN_ARC","#HINT_FD_TITAN_ARC","","fd"
+"npc_title","#NPC_TITAN_ARC","#HINT_FD_TITAN_ARC2","","fd"
+"npc_title","#NPC_TITAN_MORTAR","#HINT_FD_TITAN_MORTAR","","fd"
+"npc_title","#NPC_TITAN_MORTAR","#HINT_FD_TITAN_MORTAR2","","fd"
+"npc_title","#NPC_SOLDIER","#HINT_FD_SOLDIER","","fd"
+"npc_title","#NPC_SPECTRE","#HINT_FD_SPECTRE","","fd"
+"npc_title","#NPC_SPECTRE_MORTAR","#HINT_FD_SPECTRE_MORTAR","","fd"
+"npc_title","#NPC_SPECTRE_MORTAR","#HINT_FD_SPECTRE_MORTAR2","","fd"
+"npc_title","#NPC_STALKER","#HINT_FD_STALKER","","fd"
+"npc_title","#NPC_SUPER_SPECTRE","#HINT_FD_SUPER_SPECTRE","","fd"
+"npc_title","#NPC_SUPER_SPECTRE","#HINT_FD_SUPER_SPECTRE2","","fd"
+"npc_title","#NPC_SPECTRE_SUICIDE","#HINT_FD_SPECTRE_SUICIDE","","fd"
+"npc_title","#NPC_DRONE_PLASMA","#HINT_FD_DRONE_PLASMA","","fd"
+"npc_title","#NPC_DRONE_CLOAKED","#HINT_FD_DRONE_CLOAKED","","fd"
+"npc_title","#NPC_TITAN_STRYDER_LEADWALL","#HINT_FD_TITAN_STRYDER_LEADWALL","","fd"
+"npc_title","#NPC_TITAN_STRYDER_SNIPER","#HINT_FD_TITAN_STRYDER_SNIPER","","fd"
+"npc_title","#NPC_TITAN_OGRE_METEOR","#HINT_FD_TITAN_OGRE_METEOR","","fd"
+"npc_title","#NPC_TITAN_OGRE_MINIGUN","#HINT_FD_TITAN_OGRE_MINIGUN","","fd"
+"npc_title","#NPC_TITAN_ATLAS_TRACKER","#HINT_FD_TITAN_ATLAS_TRACKER","","fd"
+"npc_title","#NPC_TITAN_ATLAS_STICKYBOMB","#HINT_FD_TITAN_ATLAS_STICKYBOMB","","fd"
+"npc_title","#NPC_TITAN_ATLAS_VANGUARD","#HINT_FD_TITAN_ATLAS_VANGUARD","","fd"
+"npc_title","#NPC_TITAN_SNIPER_FD","#HINT_FD_TITAN_STRYDER_SNIPER","","fd"
+"npc_title","#NPC_TITAN_SNIPER_FD","#HINT_FD_TITAN_STRYDER_SNIPER2","","fd"
+"npc_title","#NPC_TITAN_SNIPER_FD","#HINT_FD_TITAN_STRYDER_SNIPER3","","fd"
+"titan_class","vanguard","#DEATH_HINT_VANGUARD_001","",""
+"titan_class","vanguard","#DEATH_HINT_VANGUARD_002","",""
+"titan_class","vanguard","#DEATH_HINT_VANGUARD_003","",""
+"titan_class","vanguard","#DEATH_HINT_VANGUARD_004","",""
+"titan_class","vanguard","#DEATH_HINT_VANGUARD_005","",""
+"titan_class","vanguard","#DEATH_HINT_VANGUARD_006","","" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/default_pilot_loadouts.csv b/Northstar.CustomServers/mod/scripts/datatable/default_pilot_loadouts.csv
new file mode 100644
index 00000000..e0fbbcd9
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/default_pilot_loadouts.csv
@@ -0,0 +1,11 @@
+name,suit,race,primary,primaryAttachment,primaryMod1,primaryMod2,primaryMod3,secondary,secondaryMod1,secondaryMod2,secondaryMod3,weapon3,weapon3Mod1,weapon3Mod2,weapon3Mod3,ordnance,passive1,passive2
+"#DEFAULT_PILOT_1","grapple","race_human_male","mp_weapon_rspn101","","","","","mp_weapon_defender","","","","mp_weapon_autopistol","","","","mp_weapon_frag_grenade","pas_power_cell","pas_enemy_death_icons"
+"#DEFAULT_PILOT_2","medium","race_human_female","mp_weapon_car","","","","","mp_weapon_mgl","","","","mp_weapon_autopistol","","","","mp_weapon_grenade_emp","pas_fast_health_regen","pas_wallhang"
+"#DEFAULT_PILOT_3","grapple","race_human_female","mp_weapon_lmg","","","","","mp_weapon_defender","","","","mp_weapon_autopistol","","","","mp_weapon_thermite_grenade","pas_fast_health_regen","pas_enemy_death_icons"
+"#DEFAULT_PILOT_4","medium","race_human_male","mp_weapon_shotgun","","","","","mp_weapon_defender","","","","mp_weapon_autopistol","","","","mp_weapon_frag_grenade","pas_power_cell","pas_wallhang"
+"#DEFAULT_PILOT_5","geist","race_human_female","mp_weapon_sniper","","","","","mp_weapon_defender","","","","mp_weapon_autopistol","","","","mp_weapon_grenade_emp","pas_power_cell","pas_enemy_death_icons"
+"#DEFAULT_PILOT_6","grapple","race_human_female","mp_weapon_smr","","","","","mp_weapon_defender","","","","mp_weapon_semipistol","","","","mp_weapon_thermite_grenade","pas_fast_health_regen","pas_wallhang"
+"#DEFAULT_PILOT_7","medium","race_human_female","mp_weapon_rspn101","","","","","mp_weapon_mgl","","","","mp_weapon_autopistol","","","","mp_weapon_grenade_emp","pas_power_cell","pas_enemy_death_icons"
+"#DEFAULT_PILOT_8","grapple","race_human_male","mp_weapon_car","","","","","mp_weapon_defender","","","","mp_weapon_autopistol","","","","mp_weapon_thermite_grenade","pas_fast_health_regen","pas_wallhang"
+"#DEFAULT_PILOT_9","grapple","race_human_male","mp_weapon_sniper","","","","","mp_weapon_defender","","","","mp_weapon_semipistol","","","","mp_weapon_frag_grenade","pas_power_cell","pas_enemy_death_icons"
+"#DEFAULT_PILOT_10","geist","race_human_male","mp_weapon_smr","","","","","mp_weapon_defender","","","","mp_weapon_autopistol","","","","mp_weapon_grenade_emp","pas_fast_health_regen","pas_wallhang" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/default_titan_loadouts.csv b/Northstar.CustomServers/mod/scripts/datatable/default_titan_loadouts.csv
new file mode 100644
index 00000000..b19ef636
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/default_titan_loadouts.csv
@@ -0,0 +1,8 @@
+name,primeName,setFile,titanRef,primaryMod,special,antirodeo,passive1,passive2,passive3,passive4,passive5,passive6,voice
+"#DEFAULT_TITAN_5","#DEFAULT_TITAN_5_PRIME","titan_atlas_stickybomb","ion","","mp_titanweapon_vortex_shield_ion","mp_titanability_laser_trip","pas_enhanced_titan_ai","pas_ion_weapon","pas_bubbleshield","pas_vanguard_core1","pas_vanguard_core4","pas_vanguard_core7","titanos_ion"
+"#DEFAULT_TITAN_7","#DEFAULT_TITAN_7_PRIME","titan_ogre_meteor","scorch","","mp_titanweapon_heat_shield","mp_titanability_slow_trap","pas_enhanced_titan_ai","pas_scorch_weapon","pas_bubbleshield","pas_vanguard_core1","pas_vanguard_core4","pas_vanguard_core7","titanos_scorch"
+"#DEFAULT_TITAN_3","#DEFAULT_TITAN_3_PRIME","titan_stryder_sniper","northstar","","mp_titanability_tether_trap","mp_titanability_hover","pas_enhanced_titan_ai","pas_northstar_weapon","pas_bubbleshield","pas_vanguard_core1","pas_vanguard_core4","pas_vanguard_core7","titanos_northstar"
+"#DEFAULT_TITAN_2","#DEFAULT_TITAN_2_PRIME","titan_stryder_leadwall","ronin","","mp_titanability_basic_block","mp_titanability_phase_dash","pas_enhanced_titan_ai","pas_ronin_weapon","pas_bubbleshield","pas_vanguard_core1","pas_vanguard_core4","pas_vanguard_core7","titanos_ronin"
+"#DEFAULT_TITAN_4","#DEFAULT_TITAN_4_PRIME","titan_atlas_tracker","tone","","mp_titanability_particle_wall","mp_titanability_sonar_pulse","pas_enhanced_titan_ai","pas_tone_weapon","pas_bubbleshield","pas_vanguard_core1","pas_vanguard_core4","pas_vanguard_core7","titanos_tone"
+"#DEFAULT_TITAN_8","#DEFAULT_TITAN_8_PRIME","titan_ogre_minigun","legion","","mp_titanability_gun_shield","mp_titanability_ammo_swap","pas_enhanced_titan_ai","pas_legion_weapon","pas_bubbleshield","pas_vanguard_core1","pas_vanguard_core4","pas_vanguard_core7","titanos_legion"
+"#DEFAULT_TITAN_10","#DEFAULT_TITAN_10_PRIME","titan_atlas_vanguard","vanguard","","mp_titanweapon_stun_laser","mp_titanability_rearm","pas_enhanced_titan_ai","pas_vanguard_shield","pas_bubbleshield","pas_vanguard_core1","pas_vanguard_core4","pas_vanguard_core7","titanos_vanguard" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/earn_meter_mp.csv b/Northstar.CustomServers/mod/scripts/datatable/earn_meter_mp.csv
new file mode 100644
index 00000000..1c766181
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/earn_meter_mp.csv
@@ -0,0 +1,31 @@
+itemRef,earnType,buildingImage,readyImage,nameText
+"titan_ronin","GOAL","rui/hud/earn_meter/ajax_building","rui/hud/earn_meter/titan_ready","#RONIN"
+"titan","GOAL","rui/hud/earn_meter/ajax_building","rui/hud/earn_meter/titan_ready","#TITAN"
+"ion","GOAL","rui/hud/earn_meter/ajax_building","rui/hud/earn_meter/titan_ready","#ION"
+"tone","GOAL","rui/hud/earn_meter/ajax_building","rui/hud/earn_meter/titan_ready","#TONE"
+"scorch","GOAL","rui/hud/earn_meter/ogre_building","rui/hud/earn_meter/titan_ready","#SCORCH"
+"legion","GOAL","rui/hud/earn_meter/ogre_building","rui/hud/earn_meter/titan_ready","#LEGION"
+"ronin","GOAL","rui/hud/earn_meter/stryder_building","rui/hud/earn_meter/titan_ready","#RONIN"
+"northstar","GOAL","rui/hud/earn_meter/stryder_building","rui/hud/earn_meter/titan_ready","#NORTHSTAR"
+"vanguard","GOAL","rui/hud/earn_meter/ajax_building","rui/hud/earn_meter/titan_ready","#VANGUARD"
+"core_electric_smoke","REWARD","rui/menu/boosts/boost_icon_electric_smoke","rui/menu/boosts/boost_icon_electric_smoke","#WPN_TITAN_ELECTRIC_SMOKE"
+"burnmeter_maphack","REWARD","rui/menu/boosts/boost_icon_map_hack","rui/menu/boosts/boost_icon_map_hack","#BURNMETER_MAP_HACK"
+"burnmeter_amped_weapons","REWARD","rui/menu/boosts/boost_icon_amped","rui/menu/boosts/boost_icon_amped","#BURNMETER_AMPED_WEAPONS"
+"burnmeter_ticks","REWARD","rui/menu/boosts/boost_icon_tick","rui/menu/boosts/boost_icon_tick","#BURNMETER_TICKS"
+"burnmeter_emergency_titan","REWARD","ui/temp","ui/temp","#BURNMETER_EMERGENCY_TITAN"
+"burnmeter_random_foil","REWARD","rui/menu/boosts/boost_icon_random","rui/menu/boosts/boost_icon_random","#BURNMETER_RANDOM_FOIL"
+"burnmeter_double_agent","REWARD","rui/menu/boosts/burncard_icon","rui/menu/boosts/burncard_icon","#BURNMETER_DOUBLE_AGENT"
+"burnmeter_phase_rewind","REWARD","rui/menu/boosts/boost_icon_phase_rewind","rui/menu/boosts/boost_icon_phase_rewind","#WPN_REWIND"
+"burnmeter_at_turret_weapon","REWARD","rui/menu/boosts/boost_icon_titan_sentry","rui/menu/boosts/boost_icon_titan_sentry","#BURNMETER_AT_TURRETWEAPON"
+"burnmeter_ap_turret_weapon","REWARD","rui/menu/boosts/boost_icon_personel_sentry","rui/menu/boosts/boost_icon_personel_sentry","#BURNMETER_AP_TURRETWEAPON"
+"burnmeter_holopilot_nova","REWARD","rui/menu/boosts/boost_icon_holopilot","rui/menu/boosts/boost_icon_holopilot","#WPN_HOLOPILOT_NOVA"
+"burnmeter_emergency_battery","REWARD","rui/menu/boosts/boost_icon_battery","rui/menu/boosts/boost_icon_battery","#BURNMETER_EMERGENCY_BATTERY"
+"burnmeter_smart_pistol","REWARD","rui/menu/boosts/boost_icon_smart_pistol","rui/menu/boosts/boost_icon_smart_pistol","#WPN_SMART_PISTOL"
+"burnmeter_radar_jammer","REWARD","rui/menu/boosts/boost_icon_radar_jam","rui/menu/boosts/boost_icon_radar_jam","#BURNMETER_RADAR_JAMMER"
+"burnmeter_hard_cover","REWARD","rui/menu/boosts/boost_icon_shield","rui/menu/boosts/boost_icon_shield","#WPN_HARD_COVER"
+"burnmeter_nuke_titan","REWARD","rui/menu/boosts/boost_icon_nuke","rui/menu/boosts/boost_icon_nuke","#WPN_NUKE_TITAN"
+"burnmeter_harvester_shield","REWARD","rui/menu/boosts/boost_icon_harvester_shield","rui/menu/boosts/boost_icon_harvester_shield","#BURNMETER_HARVESTER_SHIELD"
+"burnmeter_arc_trap","REWARD","rui/menu/boosts/boost_icon_arc_trap","rui/menu/boosts/boost_icon_arc_trap","#WPN_ARC_TRAP"
+"burnmeter_at_turret_weapon_infinite","REWARD","rui/menu/boosts/boost_icon_titan_sentry","rui/menu/boosts/boost_icon_titan_sentry","#BURNMETER_AT_TURRETWEAPON"
+"burnmeter_ap_turret_weapon_infinite","REWARD","rui/menu/boosts/boost_icon_personel_sentry","rui/menu/boosts/boost_icon_personel_sentry","#BURNMETER_AP_TURRETWEAPON"
+"burnmeter_rodeo_grenade","REWARD","rui/menu/boosts/boost_icon_core_overload","rui/menu/boosts/boost_icon_core_overload","#BURNMETER_SUPER_RODEO" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/faction_dialogue.csv b/Northstar.CustomServers/mod/scripts/datatable/faction_dialogue.csv
new file mode 100644
index 00000000..8e9673d1
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/faction_dialogue.csv
@@ -0,0 +1,273 @@
+conversationname,priority,debounce,disabledForFaction,inheritedDebounceConversations
+"scoring_won",3000,10.000000,"",""
+"scoring_lost",3000,10.000000,"",""
+"scoring_tied",3000,10.000000,"",""
+"scoring_wonClose",3000,10.000000,"",""
+"scoring_lostClose",3000,10.000000,"",""
+"scoring_winning",3000,10.000000,"faction_marvin",""
+"scoring_losing",3000,10.000000,"faction_marvin",""
+"scoring_winningClose",3000,10.000000,"faction_marvin",""
+"scoring_losingClose",3000,10.000000,"faction_marvin",""
+"scoring_winningLarge",3000,10.000000,"faction_marvin",""
+"scoring_losingLarge",3000,10.000000,"faction_marvin",""
+"scoring_lostMercy",3000,10.000000,"",""
+"scoring_wonMercy",3000,10.000000,"",""
+"fortwar_matchLoss",3000,10.000000,"",""
+"scoring_flavor",1500,10.000000,"",""
+"scoring_gotMailAlert",1500,10.000000,"",""
+"amphp_modeName",1500,10.000000,"",""
+"mtitan_modeName",1500,10.000000,"",""
+"ffa_modeName",2500,10.000000,"",""
+"freea_modeName",2500,10.000000,"",""
+"at_modeName",2500,10.000000,"",""
+"hp_modeName",2500,10.000000,"",""
+"cp_modeName",2500,10.000000,"",""
+"phunt_modeName",2500,10.000000,"",""
+"fortwar_modeName",2500,10.000000,"",""
+"tw_modeName",2500,10.000000,"",""
+"ctf_modeName",2500,10.000000,"",""
+"bh_modeName",2500,10.000000,"",""
+"front_modeName",2500,10.000000,"",""
+"frontdef_modeName",2500,10.000000,"",""
+"frontatk_modeName",2500,10.000000,"",""
+"lts_modeName",2500,10.000000,"",""
+"mfd_modeName",2500,10.000000,"",""
+"tmfd_modeName",2500,10.000000,"",""
+"extract_modeName",2500,10.000000,"",""
+"mw_modeName",2500,10.000000,"",""
+"pvp_modeName",2500,10.000000,"",""
+"raid_modeName",2500,10.000000,"",""
+"aslt_modeName",2500,10.000000,"",""
+"gnrc_modeDesc",2500,10.000000,"",""
+"ffa_modeDesc",2500,10.000000,"",""
+"ctf_modeDesc",2500,10.000000,"",""
+"lts_modeDesc",2500,10.000000,"",""
+"mfd_modeDesc",2500,10.000000,"",""
+"ltsd_modeDesc",2500,10.000000,"",""
+"ltsa_modeDesc",2500,10.000000,"",""
+"hp_modeDesc",2500,10.000000,"",""
+"mtitan_modeDesc",2500,10.000000,"",""
+"pvp_modeDesc",2500,10.000000,"",""
+"phunt_modeDesc",2500,10.000000,"",""
+"freea_modeDesc",2500,10.000000,"",""
+"grnc_modeDesc",2500,10.000000,"",""
+"mp_titanReady",1200,30.000000,"",""
+"mp_titanSoon",1200,45.000000,"faction_marvin",""
+"mp_titanInbound",1200,10.000000,"",""
+"mp_titanEmergency",1200,10.000000,"faction_marvin",""
+"mp_evacGo",1500,10.000000,"faction_marvin",""
+"mp_evacStop",1500,10.000000,"faction_marvin",""
+"mp_evacGoNag",1500,10.000000,"faction_marvin",""
+"mp_evacStopNag",1500,10.000000,"faction_marvin",""
+"mp_halftime",1500,10.000000,"",""
+"mp_sideSwitching",1500,10.000000,"",""
+"bh_modeDesc",1500,10.000000,"",""
+"bh_incoming",1500,10.000000,"",""
+"bh_collect",1500,10.000000,"faction_marvin",""
+"bh_decrypt",1500,10.000000,"faction_marvin",""
+"bh_collectSuccess",1500,10.000000,"faction_marvin",""
+"bh_collectFail",1500,10.000000,"faction_marvin",""
+"bh_mvp",1500,10.000000,"faction_marvin",""
+"bh_clearedA",1500,10.000000,"",""
+"bh_clearedB",1500,10.000000,"",""
+"bh_clearedC",1500,10.000000,"",""
+"bh_newWave",1500,10.000000,"",""
+"bh_bountyClaimedByEnemy",1500,10.000000,"",""
+"bh_bountyClaimedByFriendly",1500,10.000000,"",""
+"bh_playerKilledBounty",1500,10.000000,"faction_marvin",""
+"lts_atk60",1500,10.000000,"faction_marvin",""
+"lts_atk30",1500,10.000000,"faction_marvin",""
+"lts_def60",1500,10.000000,"faction_marvin",""
+"lts_def30",1500,10.000000,"faction_marvin",""
+"lts_bombDown",1500,10.000000,"faction_marvin",""
+"lts_bombDownAtk",1500,10.000000,"faction_marvin",""
+"lts_bombDownDef",1500,10.000000,"faction_marvin",""
+"lts_bombPickup",1500,10.000000,"faction_marvin",""
+"lts_bombPlanted",1500,10.000000,"faction_marvin",""
+"lts_bombDefusedAtk",1500,10.000000,"faction_marvin",""
+"lts_bombDefusedDef",1500,10.000000,"faction_marvin",""
+"lts_bombPlantedAtk",1500,10.000000,"faction_marvin",""
+"lts_bombPlantedDef",1500,10.000000,"faction_marvin",""
+"fortwar_turretDeployFriendly",1500,10.000000,"faction_marvin",""
+"fortwar_turretDestroyedFriendly",1500,10.000000,"faction_marvin",""
+"fortwar_baseShieldDownFriendly",1500,10.000000,"faction_marvin",""
+"fortwar_baseShieldDownEnemy",1500,10.000000,"faction_marvin",""
+"fortwar_baseShieldUpFriendly",1500,10.000000,"faction_marvin",""
+"fortwar_baseDmgFriendly",1500,10.000000,"faction_marvin",""
+"fortwar_baseDmgFriendly75",1500,10.000000,"faction_marvin",""
+"fortwar_baseDmgFriendly50",1500,10.000000,"faction_marvin",""
+"fortwar_baseDmgFriendly25",1500,10.000000,"faction_marvin",""
+"fortwar_baseDmgEnemy75",1500,10.000000,"faction_marvin",""
+"fortwar_baseDmgEnemy50",1500,10.000000,"faction_marvin",""
+"fortwar_baseDmgEnemy25",1500,10.000000,"faction_marvin",""
+"fortwar_baseEnemyAllyAttacking",1500,30.000000,"faction_marvin",""
+"fortwar_awayTurretsUnderAttack",1450,30.000000,"faction_marvin",""
+"fortwar_baseTurretsUnderAttack",1470,30.000000,"faction_marvin",""
+"fortwar_turretShieldedByFriendlyPilot",1400,10.000000,"faction_marvin",""
+"tw_territoryNag",1500,10.000000,"faction_marvin",""
+"fortwar_terEnemyExpelled",1500,60.000000,"faction_marvin",""
+"fortwar_terFriendlyExpelled",1450,60.000000,"faction_marvin",""
+"fortwar_terEnteredEnemyPilot",1400,60.000000,"faction_marvin",""
+"fortwar_terEnteredEnemyTitan",1450,60.000000,"faction_marvin",""
+"fortwar_terPresentEnemyTitans",1470,60.000000,"faction_marvin",""
+"fortwar_terEnteredEnemyForce",1500,60.000000,"faction_marvin",""
+"amphp_friendlyCappingA",1500,30.000000,"",""
+"amphp_friendlyCappingB",1500,30.000000,"",""
+"amphp_friendlyCappingC",1500,30.000000,"",""
+"amphp_friendlyCappedA",1500,10.000000,"faction_marvin",""
+"amphp_friendlyCappedB",1500,10.000000,"faction_marvin",""
+"amphp_friendlyCappedC",1500,10.000000,"faction_marvin",""
+"amphp_friendlyAmpedA",1500,10.000000,"faction_marvin",""
+"amphp_friendlyAmpedB",1500,10.000000,"faction_marvin",""
+"amphp_friendlyAmpedC",1500,10.000000,"faction_marvin",""
+"amphp_enemyCappedA",1500,10.000000,"",""
+"amphp_enemyCappedB",1500,10.000000,"",""
+"amphp_enemyCappedC",1500,10.000000,"",""
+"amphp_enemyAmpedA",1500,10.000000,"",""
+"amphp_enemyAmpedB",1500,10.000000,"",""
+"amphp_enemyAmpedC",1500,10.000000,"",""
+"amphp_friendlyCapAll",2000,10.000000,"",""
+"amphp_enemyCapAll",2000,10.000000,"",""
+"amphp_youAmpedA",1500,10.000000,"",""
+"amphp_youAmpedB",1500,10.000000,"",""
+"amphp_youAmpedC",1500,10.000000,"",""
+"ctf_flagPickupFriendly",1500,10.000000,"",""
+"ctf_flagPickupYou",1500,10.000000,"",""
+"ctf_flagReturnedFriendly",1500,10.000000,"",""
+"ctf_flagReturnedEnemy",1500,10.000000,"",""
+"ctf_notifyWin1more",1500,10.000000,"faction_marvin",""
+"ctf_notifyLose1more",1500,10.000000,"faction_marvin",""
+"kc_pilotkillLegion",1400,0.100000,"faction_marvin",""
+"kc_pilotkillScorch",1400,0.100000,"faction_marvin",""
+"kc_pilotkillTone",1400,0.100000,"faction_marvin",""
+"kc_pilotkillIon",1400,0.100000,"faction_marvin",""
+"kc_pilotkillRonin",1400,0.100000,"faction_marvin",""
+"kc_pilotkillNorthstar",1400,0.100000,"faction_marvin",""
+"kc_bullseye",1350,0.100000,"faction_marvin",""
+"kc_rodeo",1350,10.000000,"faction_marvin",""
+"kc_rakerodeoguy",1400,10.000000,"faction_marvin",""
+"kc_pilotkilltitan",1400,0.100000,"faction_marvin",""
+"kc_hitandrun",1350,0.100000,"faction_marvin",""
+"kc_firstblood",2100,0.100000,"faction_marvin",""
+"kc_megakill",2100,0.100000,"",""
+"kc_triplekill",2100,0.100000,"",""
+"kc_doublekill",1350,0.100000,"faction_marvin",""
+"kc_iced",1350,0.100000,"faction_marvin",""
+"kc_rampage",1350,0.100000,"faction_marvin",""
+"kc_killingspree",1350,0.100000,"faction_marvin",""
+"kc_dominating",1350,0.100000,"faction_marvin",""
+"kc_retribution",1350,0.100000,"faction_marvin",""
+"kc_comeback",1350,0.100000,"faction_marvin",""
+"mfd_youAreMarked",1500,0.100000,"",""
+"mfd_youKilledMark",1500,0.100000,"",""
+"mfd_markDownEnemy",1500,0.100000,"",""
+"mfd_markDownFriendly",1500,0.100000,"",""
+"mfd_targetsMarkedLong",1500,0.100000,"",""
+"mfd_targetsMarkedShort",1500,0.100000,"",""
+"mfd_youOutlastedEnemy",1500,0.100000,"",""
+"mfd_markCountdown",1500,0.100000,"",""
+"lts_playerLastTitanOnTeam",1500,0.100000,"",""
+"fd_modeDesc",2500,10.000000,"",""
+"fd_firstWaveStartPrefix",2500,10.000000,"",""
+"fd_newWaveStartPrefix",2500,10.000000,"",""
+"fd_finalWaveStartPrefix",2500,10.000000,"",""
+"fd_waveVictory",3000,10.000000,"",""
+"fd_waveRestart",3000,10.000000,"",""
+"fd_waveRedoTwo",3000,10.000000,"",""
+"fd_waveRedoFinal",3000,10.000000,"",""
+"fd_titanReadyNag",1500,10.000000,"",""
+"fd_minimapTip",1500,10.000000,"",""
+"fd_waveNoTitanDrops",1500,10.000000,"",""
+"fd_waveTypeInfantry",1500,10.000000,"",""
+"fd_waveTypeCloakDrone",1500,10.000000,"",""
+"fd_waveTypeTitanReg",1500,10.000000,"",""
+"fd_waveTypeTitanMortar",1500,10.000000,"",""
+"fd_waveTypeTitanNuke",1500,10.000000,"",""
+"fd_waveTypeTitanArc",1500,10.000000,"",""
+"fd_waveComboNukeMortar",1500,10.000000,"",""
+"fd_waveComboArcMortar",1500,10.000000,"",""
+"fd_waveComboArcNuke",1500,10.000000,"",""
+"fd_waveComboNukeCloak",1500,10.000000,"",""
+"fd_waveComboNukeTrain",1500,10.000000,"",""
+"fd_waveComboMultiMix",1500,10.000000,"",""
+"fd_waveTypeReapers",1500,10.000000,"",""
+"fd_waveTypeTicks",1500,10.000000,"",""
+"fd_waveTypeStalkers",1500,10.000000,"",""
+"fd_waveTypeMortarSpectre",1500,10.000000,"",""
+"fd_waveTypeReaperTicks",1500,10.000000,"",""
+"fd_waveTypeEliteTitan",1500,10.000000,"",""
+"fd_waveTypeFlyers",1500,10.000000,"",""
+"fd_baseDeath",3000,10.000000,"",""
+"fd_waveRecapLowHealth",25000,10.000000,"",""
+"fd_waveRecapNearPerfect",2500,10.000000,"",""
+"fd_waveRecapPerfect",2500,10.000000,"",""
+"fd_bigWaveInc",1500,10.000000,"",""
+"fd_finalWaveStartGeneric",1500,10.000000,"",""
+"fd_baseHealthRecharge",2500,10.000000,"",""
+"fd_matchVictory",3000,10.000000,"",""
+"fd_matchDefeat",3000,10.000000,"",""
+"fd_waveCleanup",1500,10.000000,"",""
+"fd_singlePilotDown",2000,10.000000,"",""
+"fd_multiPilotDown",2000,10.000000,"",""
+"fd_onlyPlayerIsAlive",2000,10.000000,"",""
+"fd_pilotRespawn",2000,10.000000,"",""
+"fd_nukeTitanNearBase",1750,10.000000,"",""
+"fd_waveCleanup5",1500,20.000000,"",""
+"fd_waveCleanup4",1500,20.000000,"",""
+"fd_waveCleanup3",1500,20.000000,"",""
+"fd_waveCleanup2",1500,20.000000,"",""
+"fd_waveCleanup1",1500,20.000000,"",""
+"fd_baseShieldTakingDmg",1900,30.000000,"",""
+"fd_baseShieldLow",1910,10.000000,"","fd_baseShieldTakingDmg"
+"fd_baseShieldDown",1930,10.000000,"",""
+"fd_baseShieldUp",1810,8.000000,"","fd_baseShieldTakingDmg fd_baseShieldRecharging"
+"fd_baseShieldRecharging",1800,30.000000,"","fd_baseShieldTakingDmg"
+"fd_baseShieldRechargingShort",1800,30.000000,"",""
+"fd_baseBatteryNagLow",1920,10.000000,"",""
+"fd_baseBatteryNagDown",2000,10.000000,"",""
+"fd_baseShieldLowHolding",2000,10.000000,"",""
+"fd_waveNoTitans",1500,10.000000,"",""
+"fd_incTitansNukeClump",1500,10.000000,"",""
+"fd_incTitansMortarClump",1500,10.000000,"",""
+"fd_incArcTitanClump",1500,10.000000,"",""
+"fd_incCloakDroneClump",1500,10.000000,"",""
+"fd_incReaperClump",1500,10.000000,"",""
+"fd_nagKillTitansMortar",2020,45.000000,"",""
+"fd_nagKillInfantry",1500,45.000000,"",""
+"fd_nagKillStalkers",1000,45.000000,"",""
+"fd_nagKillMortarSpectres",2020,45.000000,"",""
+"fd_nagKillTitanEMP",1500,45.000000,"",""
+"fd_nagTitanArcAtBase",1500,10.000000,"",""
+"fd_baseHealth75",2000,15.000000,"",""
+"fd_baseHealth50",2010,15.000000,"","fd_baseHealth75"
+"fd_baseHealth25",2020,15.000000,"","fd_baseHealth75 fd_baseHealth50"
+"fd_baseLowHealth",2030,15.000000,"","fd_baseHealth75 fd_baseHealth50 fd_baseHealth25"
+"fd_baseHealth50nag",2010,10.000000,"",""
+"fd_baseHealth25nag",2020,10.000000,"",""
+"fd_playerCashNagSurplus",1500,10.000000,"",""
+"fd_playerCashNagReg",1500,10.000000,"",""
+"fd_wavePayoutAddtnl",1500,10.000000,"",""
+"fd_wavePayoutFirst",1500,10.000000,"",""
+"fd_introEasy",1500,10.000000,"",""
+"fd_introMedium",1500,10.000000,"",""
+"fd_introHard",1500,10.000000,"",""
+"fd_turretOffline",1500,10.000000,"",""
+"fd_turretOnline",1500,10.000000,"",""
+"turretKillsLow",1500,10.000000,"",""
+"turretKillsMedium",1500,10.000000,"",""
+"turretKillsHigh",1500,10.000000,"",""
+"turretKillsMega",1500,10.000000,"",""
+"fd_boughtSentryTurret",1500,10.000000,"",""
+"fd_boughtArcTrap",1500,10.000000,"",""
+"fd_boughtCoreOverload",1500,10.000000,"",""
+"fd_playerNeedsToReadyUp",1500,10.000000,"",""
+"fd_boughtAmpedWeapons",1500,10.000000,"",""
+"fd_boughtHarvesterShield",1500,10.000000,"",""
+"fd_boughtBattery",1500,10.000000,"",""
+"matchRecapNoDeaths",1500,10.000000,"",""
+"matchRecapNoPlayerDeath",1500,10.000000,"",""
+"matchRecapPlayerMVP",1500,10.000000,"",""
+"fd_soonNukeTitans",1500,10.000000,"",""
+"fd_soonArcTitans",1500,10.000000,"",""
+"fd_soonMortarTitans",1500,10.000000,"",""
+"fd_stalkerExploNag",1000,300.000000,"","" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/faction_leaders.csv b/Northstar.CustomServers/mod/scripts/datatable/faction_leaders.csv
new file mode 100644
index 00000000..22fb3e45
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/faction_leaders.csv
@@ -0,0 +1,8 @@
+persistenceRef,factionDialoguePrefix,logo,image,name,description,factionName,usesWaveform,modelName,skinIndex,menuIdleAnim,propModelName,propAttachment,cost
+"faction_marauder","mcor_sarah","rui/faction/faction_logo_marauder","rui/faction/faction_button_marauder","#FACTION_LEADER_NAME_SARAH","#FACTION_LEADER_DESC_SARAH","#FACTION_MARAUDER",0,"models/humans/heroes/mlt_hero_sarah.mdl",0,"Sarah_menu_pose","models/Weapons/p2011/w_p2011.mdl","KNIFE",100
+"faction_apex","imc_blisk","rui/faction/faction_logo_apex","rui/faction/faction_button_apex","#FACTION_LEADER_NAME_BLISK","#FACTION_LEADER_DESC_BLISK","#FACTION_APEX",0,"models/humans/heroes/imc_hero_blisk.mdl",0,"Blisk_menu_pose","models/Weapons/combat_knife/w_combat_knife.mdl","KNIFE",100
+"faction_vinson","imc_ash","rui/faction/faction_logo_vinson","rui/faction/faction_button_vinson","#FACTION_LEADER_NAME_ASH","#FACTION_LEADER_DESC_ASH","#FACTION_VINSON",0,"models/humans/heroes/imc_hero_ash.mdl",0,"Ash_menu_pose","","",100
+"faction_aces","mcor_barker","rui/faction/faction_logo_aces","rui/faction/faction_button_aces","#FACTION_LEADER_NAME_BARKER","#FACTION_LEADER_DESC_BARKER","#FACTION_ACES",0,"models/humans/heroes/mlt_hero_barker.mdl",0,"Barker_menu_pose","models/props/flask/prop_flask_animated.mdl","PROPGUN",100
+"faction_64","mcor_gates","rui/faction/faction_logo_64","rui/faction/faction_button_64","#FACTION_LEADER_NAME_GATES","#FACTION_LEADER_DESC_GATES","#FACTION_64",0,"models/humans/pilots/sp_medium_geist_f.mdl",0,"Gates_menu_pose","models/Weapons/p2011/w_p2011.mdl","KNIFE",100
+"faction_ares","imc_marder","rui/faction/faction_logo_ares","rui/faction/faction_button_ares","#FACTION_LEADER_NAME_MARDER","#FACTION_LEADER_DESC_MARDER","#FACTION_ARES",0,"models/humans/heroes/imc_hero_marder.mdl",0,"Marder_menu_pose","","",100
+"faction_marvin","mcor_marvin","rui/faction/faction_logo_mrvn","rui/faction/faction_button_mrvn","#FACTION_LEADER_NAME_MARVIN","#FACTION_LEADER_DESC_MARVIN","#FACTION_MARVIN",1,"models/Robots/marvin/marvin.mdl",1,"commander_MP_flyin_marvin_idle","","",100 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/faction_leaders_dropship_anims.csv b/Northstar.CustomServers/mod/scripts/datatable/faction_leaders_dropship_anims.csv
new file mode 100644
index 00000000..0d759d93
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/faction_leaders_dropship_anims.csv
@@ -0,0 +1,23 @@
+persistenceRef,dropshipAnimName,isEasterEgg
+"faction_marauder","commander_MP_flyin_sarah",0
+"faction_marauder","commander_MP_flyin_sarah_alt",0
+"faction_marauder","commander_MP_flyin_sarah_silent",0
+"faction_apex","commander_MP_flyin_blisk_betta",0
+"faction_apex","commander_MP_flyin_blisk_born",0
+"faction_apex","commander_MP_flyin_blisk_silent",0
+"faction_vinson","commander_MP_flyin_ash_focus",0
+"faction_vinson","commander_MP_flyin_ash_grateful",0
+"faction_vinson","commander_MP_flyin_ash_silent",0
+"faction_aces","commander_MP_flyin_barker",0
+"faction_aces","commander_MP_flyin_barker_victory",0
+"faction_aces","commander_MP_flyin_barker_conductor",0
+"faction_64","commander_MP_flyin_gates_family",0
+"faction_64","commander_MP_flyin_gates_sixfour",0
+"faction_64","commander_MP_flyin_gates_silent",0
+"faction_ares","commander_MP_flyin_marder",0
+"faction_ares","commander_MP_flyin_marder_alt1",0
+"faction_ares","commander_MP_flyin_marder_alt2",0
+"faction_marvin","commander_MP_flyin_marvin_salute",0
+"faction_marvin","commander_MP_flyin_marvin_highfive",0
+"faction_marvin","commander_MP_flyin_marvin_greeter",0
+"faction_marvin","commander_MP_flyin_marvin_freestyle",1 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/fd_awards.csv b/Northstar.CustomServers/mod/scripts/datatable/fd_awards.csv
new file mode 100644
index 00000000..01c6254b
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/fd_awards.csv
@@ -0,0 +1,15 @@
+ref,priority,displayString,subText,awardDisplayString,displayStyle,image,validityCheck,validityCheckValue,comparisonCheck,needsToBeBest
+"harvesterHeals",5,"#FD_AWARD_0","#FD_AWARD_SUBTEXT_0","#FD_AWARD_VALUE_DISPLAY_BLANK","FD_DISPLAY_STYLE_NUMBER","rui/medals/shielded_harvester","greater_than",1.000000,"highest",1
+"mortarUnitsKilled",3,"#FD_AWARD_1","#FD_AWARD_SUBTEXT_1","#FD_AWARD_VALUE_DISPLAY_BLANK","FD_DISPLAY_STYLE_NUMBER","rui/medals/mortar_units","greater_than",1.000000,"highest",1
+"moneySpent",4,"#FD_AWARD_2","#FD_AWARD_SUBTEXT_2","#FD_AWARD_VALUE_DISPLAY_MONEY","FD_DISPLAY_STYLE_NUMBER","rui/medals/cash_spent","greater_than",2000.000000,"highest",1
+"coresUsed",8,"#FD_AWARD_3","#FD_AWARD_SUBTEXT_3","#FD_AWARD_VALUE_DISPLAY_BLANK","FD_DISPLAY_STYLE_NUMBER","rui/medals/titan_core","greater_than",1.000000,"highest",1
+"longestTitanLife",9,"#FD_AWARD_4","#FD_AWARD_SUBTEXT_4","#FD_AWARD_VALUE_DISPLAY_SECONDS","FD_DISPLAY_STYLE_TIME","rui/medals/least_lost","greater_than",100.000000,"highest",1
+"turretsRepaired",7,"#FD_AWARD_5","#FD_AWARD_SUBTEXT_5","#FD_AWARD_VALUE_DISPLAY_BLANK","FD_DISPLAY_STYLE_NUMBER","rui/medals/turrets_healed","greater_than",5.000000,"highest",1
+"moneyShared",6,"#FD_AWARD_6","#FD_AWARD_SUBTEXT_6","#FD_AWARD_VALUE_DISPLAY_MONEY","FD_DISPLAY_STYLE_NUMBER","rui/medals/cash_shared","greater_than",100.000000,"highest",1
+"damageDealt",1,"#FD_AWARD_7","#FD_AWARD_SUBTEXT_7","#FD_AWARD_VALUE_DISPLAY_POINTS","FD_DISPLAY_STYLE_NUMBER","rui/medals/most_damage","greater_than",-1.000000,"highest",0
+"timeNearHarvester",2,"#FD_AWARD_8","#FD_AWARD_SUBTEXT_8","#FD_AWARD_VALUE_DISPLAY_SECONDS","FD_DISPLAY_STYLE_TIME","rui/medals/harvester_protect","greater_than",200.000000,"highest",1
+"longestLife",0,"#FD_AWARD_9","#FD_AWARD_SUBTEXT_9","#FD_AWARD_VALUE_DISPLAY_SECONDS","FD_DISPLAY_STYLE_TIME","rui/medals/long_life","greater_than",200.000000,"highest",1
+"heals",11,"#FD_AWARD_10","#FD_AWARD_SUBTEXT_10","#FD_AWARD_VALUE_DISPLAY_POINTS","FD_DISPLAY_STYLE_NUMBER","rui/medals/heal","greater_than",5000.000000,"highest",1
+"turretKills",10,"#FD_AWARD_11","#FD_AWARD_SUBTEXT_11","#FD_AWARD_VALUE_DISPLAY_BLANK","FD_DISPLAY_STYLE_NUMBER","rui/medals/turret_damage","greater_than",10.000000,"highest",1
+"mvp",13,"#FD_AWARD_12","#FD_AWARD_SUBTEXT_12","#FD_AWARD_VALUE_DISPLAY_BLANK","FD_DISPLAY_STYLE_NUMBER","rui/medals/mvp","greater_than",2.000000,"highest",1
+"titanKills",12,"#FD_AWARD_13","#FD_AWARD_SUBTEXT_13","#FD_AWARD_VALUE_DISPLAY_BLANK","FD_DISPLAY_STYLE_NUMBER","rui/medals/titans_killed","greater_than",30.000000,"highest",1 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/features_mp.csv b/Northstar.CustomServers/mod/scripts/datatable/features_mp.csv
new file mode 100644
index 00000000..8f1b39b3
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/features_mp.csv
@@ -0,0 +1,21 @@
+featureRef,featureName,featureDesc,featureIcon,specificType,cost
+"communities","#FEATURE_COMMUNITIES","","rui/hud/common/feature_icon","#ITEM_TYPE_FEATURE",0
+"happy_hour","#FEATURE_HAPPY_HOUR","","rui/hud/common/feature_icon","#ITEM_TYPE_FEATURE",0
+"pilot_loadout_1","#DEFAULT_PILOT_1","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",15
+"pilot_loadout_2","#DEFAULT_PILOT_2","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",15
+"pilot_loadout_3","#DEFAULT_PILOT_3","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",15
+"pilot_loadout_4","#DEFAULT_PILOT_4","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",15
+"pilot_loadout_5","#DEFAULT_PILOT_5","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",15
+"pilot_loadout_6","#DEFAULT_PILOT_6","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",15
+"pilot_loadout_7","#DEFAULT_PILOT_7","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",100
+"pilot_loadout_8","#DEFAULT_PILOT_8","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",100
+"pilot_loadout_9","#DEFAULT_PILOT_9","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",100
+"pilot_loadout_10","#DEFAULT_PILOT_10","","rui/hud/common/feature_icon","#ITEM_TYPE_LOADOUT",100
+"coliseum_ticket","#ITEM_COLISEUM","#ITEM_COLISEUM_DESC","rui/menu/common/ticket_icon","#ITEM_TYPE_PLAYLIST",10
+"double_xp","#DOUBLE_XP","#DOUBLE_XP_DESC","rui/menu/common/dbl_xp_icon","#ITEM_TYPE_DOUBLEXP",0
+"credit_award","#CREDIT_AWARD","#CREDIT_AWARD_DESC","rui/menu/common/credit_symbol_large_color","#ITEM_TYPE_CREDITS",0
+"credit_award_5x","#CREDIT_AWARD_5X","","rui/menu/common/credit_symbol_large_color","#ITEM_TYPE_CREDITS",0
+"advocate_gift","#RANDOM","","rui\menu\common\unlock_random","#UNLOCK_RANDOM",0
+"mp_angel_city","#MP_ANGEL_CITY","","rui/hud/common/feature_icon","#UNLOCK_RANDOM",0
+"random","#RANDOM","","rui\menu\common\unlock_random","#UNLOCK_RANDOM",0
+"classic_music","#CLASSIC_MUSIC","","rui/hud/common/feature_icon","#UNLOCK_CLASSIC_MUSIC",0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/flightpath_assets.csv b/Northstar.CustomServers/mod/scripts/datatable/flightpath_assets.csv
new file mode 100644
index 00000000..d14566f1
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/flightpath_assets.csv
@@ -0,0 +1,8 @@
+name,mp_model,sp_model
+"fp_dropship_model","models/vehicle/goblin_dropship/goblin_dropship.mdl","models/vehicle/goblin_dropship/goblin_dropship.mdl"
+"fp_dropship_hero_model","models/vehicle/goblin_dropship/goblin_dropship_hero.mdl","models/vehicle/goblin_dropship/goblin_dropship_hero.mdl"
+"fp_crow_model","models/vehicle/crow_dropship/crow_dropship.mdl","models/vehicle/crow_dropship/crow_dropship.mdl"
+"fp_crow_hero_model","models/vehicle/crow_dropship/crow_dropship_hero.mdl","models/vehicle/crow_dropship/crow_dropship_hero.mdl"
+"fp_titan_model","models/titans/medium/titan_medium_ajax.mdl","models/titans/medium/sp_titan_medium_ajax.mdl"
+"fp_straton_model","models/vehicle/straton/straton_imc_gunship_01.mdl","models/vehicle/straton/straton_imc_gunship_01.mdl"
+"fp_hornet_model","models/vehicle/hornet/hornet_fighter.mdl","models/vehicle/hornet/hornet_fighter.mdl" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/grunt_chatter_mp.csv b/Northstar.CustomServers/mod/scripts/datatable/grunt_chatter_mp.csv
new file mode 100644
index 00000000..c3c15f19
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/grunt_chatter_mp.csv
@@ -0,0 +1,47 @@
+conversationname,alias,priority,debounce
+"bc_allygruntdown","bc_allygruntdown",250,20.000000
+"bc_enemytitandown","bc_enemytitandown",250,20.000000
+"bc_enemytitanspotcall","bc_enemytitanspotcall",250,20.000000
+"bc_engageenemycloakedpilot","bc_engageenemycloakedpilot",250,20.000000
+"bc_engagepilotenemy","bc_engagepilotenemy",250,20.000000
+"bc_grenadecall","bc_grenadecall",250,20.000000
+"bc_gruntkillstitan","bc_gruntkillstitan",250,20.000000
+"bc_killenemypilot","bc_killenemypilot",250,20.000000
+"bc_spotenemypilot","bc_spotenemypilot",250,20.000000
+"bc_squaddeplete","bc_squaddeplete",250,20.000000
+"bc_reactGrenadeArc","bc_reactGrenadeArc",250,20.000000
+"bc_reactGrenadeThermite","bc_reactGrenadeThermite",250,20.000000
+"bc_reactGrenadeGravity","bc_reactGrenadeGravity",250,20.000000
+"bc_reactGrenadeElecSmoke","bc_reactGrenadeElecSmoke",250,20.000000
+"bc_grenadeOutCall","bc_grenadeOutCall",250,20.000000
+"bc_fleePlayerTitanCall","bc_spotclosetitancall_01",250,20.000000
+"bc_fleePlayerTitanCall","bc_fleePlayerTitanCall",250,20.000000
+"bc_reactTickSpawnFriendly","bc_reactTickSpawnFriendly_01",250,20.000000
+"bc_reactTickSpawnFriendly","bc_reactTickSpawnFriendly_02",250,20.000000
+"bc_reactTickSpawnFriendly","bc_reactTickSpawnFriendly_03",250,20.000000
+"bc_reactTitanfallFriendlyArrives","bc_reactTitanfallFriendlyArrives_01",250,40.000000
+"bc_reactTitanfallFriendlyArrives","bc_titancheer_01",250,40.000000
+"bc_reactEnemySpotted","bc_engagepilotenemy_01",250,20.000000
+"bc_reactEnemySpotted","bc_engagepilotenemy_02",250,20.000000
+"bc_reactEnemySpotted","bc_engagepilotenemy_06",250,20.000000
+"bc_reactEnemyReaper","diag_sp_ReaperTown_BM102_15_01_mcor_grunt3",250,20.000000
+"bc_reactEnemyReaper","diag_sp_ReaperTown_BM102_16_01_mcor_grunt2",250,20.000000
+"bc_reactReaperFriendlyArrives","bc_reactReaperFriendlyArrives_01",250,40.000000
+"bc_reactFriendlyPilot","diag_sp_ReaperTown_BM103_01a_01_mcor_grunt2",250,180.000000
+"TEMP_bc_reactFriendlyPilot","diag_sp_corkscrew_SE131_02_01_mcor_grunt1",250,180.000000
+"bc_reactFriendlyPilot","diag_sp_corkscrew_SE131_19_01_mcor_grunt1",250,180.000000
+"bc_generalCombat","diag_sp_corkscrew_SE131_21_01_mcor_grunt1",250,20.000000
+"bc_generalCombat","diag_sp_corkscrew_SE131_12_01_mcor_grunt1",250,20.000000
+"bc_generalCombat","diag_sp_intro_WD104_29_01_mcor_grunt6",250,20.000000
+"bc_generalCombat","diag_sp_intro_WD104_24_01_mcor_grunt1",250,20.000000
+"bc_generalCombat","diag_sp_intro_WD103_02_01_mcor_grunt2",250,20.000000
+"bc_generalCombat","diag_sp_intro_WD104_25_01_mcor_grunt2",250,20.000000
+"bc_generalCombat","diag_sp_intro_WD104_26_01_mcor_grunt3",250,20.000000
+"bc_generalCombat","diag_sp_intro_WD104_27_01_mcor_grunt4",250,20.000000
+"bc_generalCombat","diag_sp_intro_WD104_28_01_mcor_grunt5",250,20.000000
+"TEMP_bc_generalNonCombat","diag_sp_ReaperTown_BM102_29a_01_imc_gcaptain",250,100.000000
+"bc_generalNonCombat","diag_sp_ReaperTown_BM103_02a_01_mcor_grunt1",250,100.000000
+"bc_generalCombatTitan","diag_sp_sewerArena_SE151_09_01_imc_grunt1",250,20.000000
+"bc_generalCombatTitan","diag_sp_sewerArena_SE152_01_01_imc_grunt1",250,20.000000
+"bc_generalCombatTitan","diag_sp_intro_WD103_07_01_mcor_grunt1",250,20.000000
+"bc_generalCombatTitan","diag_sp_bigCharge_TD111_06_01_mcor_pilot3",250,20.000000 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/non_loadout_weapons.csv b/Northstar.CustomServers/mod/scripts/datatable/non_loadout_weapons.csv
new file mode 100644
index 00000000..8816fd8f
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/non_loadout_weapons.csv
@@ -0,0 +1,29 @@
+weapon
+"melee_titan_punch"
+"melee_titan_punch_fighter"
+"melee_titan_punch_ion"
+"melee_titan_punch_tone"
+"melee_titan_punch_northstar"
+"melee_titan_punch_scorch"
+"melee_titan_punch_legion"
+"melee_titan_sword"
+"melee_titan_sword_aoe"
+"mp_titanweapon_flightcore_rockets"
+"mp_titanweapon_orbital_strike"
+"mp_titanweapon_predator_cannon_siege"
+"mp_weapon_spectre_spawner"
+"proto_viewmodel_test"
+"mp_turretweapon_blaster"
+"mp_turretweapon_plasma"
+"mp_turretweapon_sentry"
+"mp_ability_arc_blast"
+"mp_ability_burncardweapon"
+"mp_ability_holopilot_nova"
+"mp_weapon_smart_pistol"
+"mp_weapon_hard_cover"
+"melee_titan_punch_vanguard"
+"mp_titanweapon_rocketeer_rocketstream"
+"mp_titanweapon_shoulder_rockets"
+"mp_ability_swordblock"
+"mp_titanability_nuke_eject"
+"mp_weapon_arc_trap" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/pain_death_sounds.csv b/Northstar.CustomServers/mod/scripts/datatable/pain_death_sounds.csv
new file mode 100644
index 00000000..00d5e595
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/pain_death_sounds.csv
@@ -0,0 +1,53 @@
+event,priority,blocksNextPriority,method,bodyType,alias_1p_victim_only,alias_3p_except_victim,alias_3p_attacker_only,alias_3p_except_attacker,spmp
+"death",105,0,"SE_GIB","NPC_GRUNT","","death.pinkmist","","","spmp"
+"death",105,0,"SE_GIB","NPC_MARVIN","","","","","spmp"
+"death",105,0,"SE_GIB","NPC_PROWLER","","","","","spmp"
+"death",105,0,"SE_GIB","NPC_SPECTRE","","","","","spmp"
+"death",105,0,"SE_GIB","NPC_STALKER","","","","","spmp"
+"death",110,1,"SE_HEADSHOT_BULLET","NPC_GRUNT","","","","Flesh.Light.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_BULLET","NPC_MARVIN","","","","Android.Light.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_BULLET","NPC_SPECTRE","","","","Android.Light.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_BULLET","NPC_STALKER","","","","Android.Light.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_SHOTGUN","NPC_GRUNT","","","","Flesh.Shotgun.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_SHOTGUN","NPC_MARVIN","","","","Android.Heavy.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_SHOTGUN","NPC_SPECTRE","","","","Android.Heavy.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_SHOTGUN","NPC_STALKER","","","","Android.Heavy.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_TITAN","NPC_GRUNT","","","","Flesh.Heavy.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_TITAN","NPC_MARVIN","","","","Android.Heavy.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_TITAN","NPC_SPECTRE","","","","Android.Heavy.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",110,1,"SE_HEADSHOT_TITAN","NPC_STALKER","","","","Android.Heavy.BulletImpact_Headshot_3P_vs_3P","spmp"
+"death",120,1,"SE_NECK_SNAP","NPC_GRUNT","","diag_efforts_DeathNeck_gl_grunt_3p","","","spmp"
+"death",140,1,"SE_DISSOLVE","NPC_GRUNT","","diag_efforts_DeathBurn_gl_grunt_3p","","","spmp"
+"death",160,1,"SE_ELECTRICAL","NPC_GRUNT","","diag_efforts_DeathElec_gl_grunt_3p","","","spmp"
+"death",180,1,"SE_EXPLOSION","NPC_GRUNT","","diag_efforts_DeathExplo_gl_grunt_3p","","","spmp"
+"death",200,1,"SE_FALL","NPC_GRUNT","","diag_efforts_DeathFall_gl_grunt_3p","","","spmp"
+"death",220,1,"SE_PROWLER","NPC_GRUNT","","diag_efforts_DeathProwler_gl_grunt_3p","","","spmp"
+"death",290,1,"SE_TITAN_STEP","NPC_GRUNT","","titan_grunt_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","NPC_MARVIN","","titan_spectre_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","NPC_SPECTRE","","titan_spectre_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","NPC_STALKER","","titan_spectre_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","NPC_PROWLER","","titan_grunt_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","PLAYER_HUMAN_MALE","","titan_grunt_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","PLAYER_HUMAN_MALE","","titan_grunt_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","PLAYER_ANDROID_MALE","","titan_spectre_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","PLAYER_HUMAN_FEMALE","","titan_grunt_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","PLAYER_ANDROID_FEMALE","","titan_spectre_squish","","","spmp"
+"death",290,1,"SE_TITAN_STEP","NPC_GRUNT","","diag_efforts_DeathCrush_gl_grunt_3p","","","spmp"
+"death",290,1,"SE_TITAN_STEP","PLAYER_HUMAN_MALE","diag_efforts_DeathCrush_sp_cooper_3p_vs_1p","diag_efforts_DeathCrush_mp_maleHuman_3p","","","sp"
+"death",290,1,"SE_TITAN_STEP","PLAYER_HUMAN_MALE","diag_efforts_DeathCrush_mp_maleHuman_3p_vs_1p","diag_efforts_DeathCrush_mp_maleHuman_3p","","","mp"
+"death",290,1,"SE_TITAN_STEP","PLAYER_ANDROID_MALE","diag_efforts_DeathCrush_mp_maleRobot_3p_vs_1p","diag_efforts_DeathCrush_mp_maleRobot_3p","","","mp"
+"death",290,1,"SE_TITAN_STEP","PLAYER_HUMAN_FEMALE","diag_efforts_DeathCrush_mp_femaleHuman_3p_vs_1p","diag_efforts_DeathCrush_mp_femaleHuman_3p","","","mp"
+"death",400,1,"SE_ANY","NPC_MARVIN","","marvin_death","","","spmp"
+"death",400,1,"SE_TITAN_STEP","PLAYER_ANDROID_FEMALE","diag_efforts_DeathCrush_mp_femaleRobot_3p_vs_1p","diag_efforts_DeathCrush_mp_femaleRobot_3p","","","mp"
+"death",500,1,"SE_ANY","NPC_GRUNT","","diag_efforts_DeathQuick_gl_grunt_3p","","","spmp"
+"death",500,1,"SE_ANY","TITAN","titan_death_explode","titan_death_explode","","","spmp"
+"pain",300,1,"SE_ELECTRICAL","NPC_GRUNT","","diag_efforts_hitByArc_gl_grunt_3p","","","spmp"
+"pain",300,1,"SE_THERMITE_GRENADE","NPC_GRUNT","","diag_efforts_burns_gl_grunt_3p","","","spmp"
+"pain",400,0,"SE_PROWLER","NPC_GRUNT","","diag_efforts_hitByProwler_gl_grunt_3p","","","spmp"
+"pain",400,0,"SE_SMOKE","NPC_GRUNT","","diag_efforts_cough_gl_grunt_3p","","","spmp"
+"pain",400,0,"SE_ANY","NPC_GRUNT","","diag_efforts_hits_gl_grunt_3p","","","spmp"
+"pain",400,0,"SE_ANY","PLAYER_ANDROID_FEMALE","diag_efforts_hits_mp_femaleRobot_3p_vs_1p","","","","mp"
+"pain",400,0,"SE_ANY","PLAYER_ANDROID_MALE","diag_efforts_hits_mp_maleRobot_3p_vs_1p","","","","mp"
+"pain",400,0,"SE_ANY","PLAYER_HUMAN_FEMALE","diag_efforts_hits_mp_femaleHuman_3p_vs_1p","","","","mp"
+"pain",400,0,"SE_ANY","PLAYER_HUMAN_MALE","diag_efforts_hits_mp_maleHuman_3p_vs_1p","","","","mp"
+"pain",400,0,"SE_ANY","PLAYER_HUMAN_MALE","diag_efforts_hits_sp_cooper_3p_vs_1p","","","","sp" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/pilot_abilities.csv b/Northstar.CustomServers/mod/scripts/datatable/pilot_abilities.csv
new file mode 100644
index 00000000..e9949479
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/pilot_abilities.csv
@@ -0,0 +1,16 @@
+itemRef,type,damageSource,hidden,cost
+"mp_ability_grapple","PILOT_SPECIAL",0,0,180
+"mp_ability_heal","PILOT_SPECIAL",0,0,180
+"mp_ability_holopilot","PILOT_SPECIAL",0,0,180
+"mp_weapon_grenade_sonar","PILOT_SPECIAL",1,0,180
+"mp_ability_shifter","PILOT_SPECIAL",0,0,180
+"mp_weapon_deployable_cover","PILOT_SPECIAL",0,0,180
+"mp_ability_cloak","PILOT_SPECIAL",0,0,180
+"mp_weapon_frag_grenade","PILOT_ORDNANCE",1,0,220
+"mp_weapon_grenade_emp","PILOT_ORDNANCE",1,0,220
+"mp_weapon_grenade_gravity","PILOT_ORDNANCE",1,0,220
+"mp_weapon_grenade_electric_smoke","PILOT_ORDNANCE",1,0,220
+"mp_weapon_thermite_grenade","PILOT_ORDNANCE",1,0,220
+"mp_weapon_satchel","PILOT_ORDNANCE",1,0,220
+"melee_pilot_sword","NOT_LOADOUT",1,1,220
+"mp_ability_shifter_super","PILOT_SPECIAL",0,1,220 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/pilot_executions.csv b/Northstar.CustomServers/mod/scripts/datatable/pilot_executions.csv
new file mode 100644
index 00000000..faae9db7
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/pilot_executions.csv
@@ -0,0 +1,14 @@
+ref,name,description,image,hidden,cost
+"execution_neck_snap","#PILOT_EXECUTION_NECK_SNAP","#PILOT_EXECUTION_NECK_SNAP_DESC","rui/pilot_loadout/execution/execution_neck_snap",0,0
+"execution_face_stab","#PILOT_EXECUTION_FACE_STAB","#PILOT_EXECUTION_FACE_STAB_DESC","rui/pilot_loadout/execution/execution_face_stab",0,300
+"execution_backshot","#PILOT_EXECUTION_BACK_SHOT","#PILOT_EXECUTION_BACK_SHOT_DESC","rui/pilot_loadout/execution/execution_backshot",0,300
+"execution_combo","#PILOT_EXECUTION_COMBO","#PILOT_EXECUTION_COMBO_DESC","rui/pilot_loadout/execution/execution_combo",0,300
+"execution_knockout","#PILOT_EXECUTION_KNOCKOUT","#PILOT_EXECUTION_KNOCKOUT_DESC","rui/pilot_loadout/execution/execution_knockout",0,300
+"execution_telefrag","#PILOT_EXECUTION_TELEFRAG","#PILOT_EXECUTION_TELEFRAG_DESC","rui/pilot_loadout/execution/execution_inner_pieces",0,0
+"execution_stim","#PILOT_EXECUTION_STIM","#PILOT_EXECUTION_STIM_DESC","rui/pilot_loadout/execution/execution_straight_blast",0,0
+"execution_grapple","#PILOT_EXECUTION_GRAPPLE","#PILOT_EXECUTION_GRAPPLE_DESC","rui/pilot_loadout/execution/execution_grapple",0,0
+"execution_pulseblade","#PILOT_EXECUTION_PULSEBLADE","#PILOT_EXECUTION_PULSEBLADE_DESC","rui/pilot_loadout/execution/execution_pulseblade",0,0
+"execution_random","#PILOT_EXECUTION_RANDOM","#PILOT_EXECUTION_RANDOM_DESC","rui/pilot_loadout/execution/execution_random",0,0
+"execution_cloak","#PILOT_EXECUTION_CLOAK","#PILOT_EXECUTION_CLOAK_DESC","rui/pilot_loadout/execution/execution_now_you_see_me",0,0
+"execution_holopilot","#PILOT_EXECUTION_HOLOPILOT","#PILOT_EXECUTION_HOLOPILOT_DESC","rui/pilot_loadout/execution/execution_holopilot",0,0
+"execution_ampedwall","#PILOT_EXECUTION_AMPEDWALL","#PILOT_EXECUTION_AMPEDWALL_DESC","rui/pilot_loadout/execution/execution_amped_wall",0,0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/pilot_passives.csv b/Northstar.CustomServers/mod/scripts/datatable/pilot_passives.csv
new file mode 100644
index 00000000..a13a98f2
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/pilot_passives.csv
@@ -0,0 +1,10 @@
+passive,type,name,description,image,hidden,cost
+"pas_enemy_death_icons","PILOT_PASSIVE2","#GEAR_ENEMY_DEATH_ICONS","#GEAR_ENEMY_DEATH_ICONS_DESC","rui/pilot_loadout/kit/kill_report_menu",0,25
+"pas_ordnance_pack","PILOT_PASSIVE1","#GEAR_EXPLOSIVES_PACK","#GEAR_EXPLOSIVES_PACK_DESC","rui/pilot_loadout/kit/ordnance_expert_menu",0,125
+"pas_power_cell","PILOT_PASSIVE1","#GEAR_POWER_CELL","#GEAR_POWER_CELL_DESC","rui/pilot_loadout/kit/power_cell_menu",0,25
+"pas_fast_embark","PILOT_PASSIVE1","#GEAR_FAST_EMBARK","#GEAR_FAST_EMBARK_DESC","rui/pilot_loadout/kit/phase_embark_menu",0,125
+"pas_ads_hover","PILOT_PASSIVE2","#GEAR_ADS_HOVER","#GEAR_ADS_HOVER_DESC","rui/pilot_loadout/kit/hover_menu",0,225
+"pas_wallhang","PILOT_PASSIVE2","#GEAR_WALLHANG","#GEAR_WALLHANG_DESC","rui/pilot_loadout/kit/wall_hang_menu",0,25
+"pas_fast_health_regen","PILOT_PASSIVE1","#GEAR_FAST_HEALTH_REGEN","#GEAR_FAST_HEALTH_REGEN_DESC","rui/pilot_loadout/kit/quick_regen_menu",0,25
+"pas_stealth_movement","PILOT_PASSIVE2","#GEAR_STEALTH_KIT","#GEAR_STEALTH_KIT_DESC","rui/pilot_loadout/kit/stealth_movement_menu",0,225
+"pas_at_hunter","PILOT_PASSIVE2","#GEAR_AT_HUNTER_KIT","#GEAR_AT_HUNTER_KIT_DESC","rui/pilot_loadout/kit/titan_hunter_menu",0,225 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/pilot_properties.csv b/Northstar.CustomServers/mod/scripts/datatable/pilot_properties.csv
new file mode 100644
index 00000000..6e40e332
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/pilot_properties.csv
@@ -0,0 +1,8 @@
+type,image,tactical,defaultPassive1,defaultPassive2,melee,cost
+"nomad","rui/pilot_loadout/suit/nomad","mp_ability_heal","pas_power_cell","pas_enemy_death_icons","melee_pilot_emptyhanded",180
+"light","rui/pilot_loadout/suit/light","mp_ability_shifter","pas_fast_health_regen","pas_wallhang","melee_pilot_emptyhanded",180
+"geist","rui/pilot_loadout/suit/geist","mp_ability_cloak","pas_power_cell","pas_enemy_death_icons","melee_pilot_emptyhanded",180
+"medium","rui/pilot_loadout/suit/medium","mp_weapon_grenade_sonar","pas_fast_health_regen","pas_wallhang","melee_pilot_emptyhanded",180
+"grapple","rui/pilot_loadout/suit/grapple","mp_ability_grapple","pas_power_cell","pas_wallhang","melee_pilot_emptyhanded",180
+"heavy","rui/pilot_loadout/suit/heavy","mp_weapon_deployable_cover","pas_fast_health_regen","pas_enemy_death_icons","melee_pilot_emptyhanded",180
+"stalker","rui/pilot_loadout/suit/stalker","mp_ability_holopilot","pas_power_cell","pas_enemy_death_icons","melee_pilot_emptyhanded",180 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_features.csv b/Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_features.csv
new file mode 100644
index 00000000..2226eb79
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_features.csv
@@ -0,0 +1,5 @@
+featureRef,featureName,featureDesc,featureIcon,cost
+"primarymod2","#EXTRA_MOD","","rui/hud/common/feature_icon",0
+"secondarymod2","#EXTRA_MOD","","rui/hud/common/feature_icon",0
+"primarymod3","#MOD_PRO_SCREEN_NAME","","rui/hud/common/feature_icon",0
+"secondarymod3","#MOD_PRO_SCREEN_NAME","","rui/hud/common/feature_icon",0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_mods.csv b/Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_mods.csv
new file mode 100644
index 00000000..b59acb18
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_mods.csv
@@ -0,0 +1,250 @@
+mod,weapon,statDamage,statAccuracy,statRange,statFireRate,statClipSize,hidden
+"extended_ammo","mp_weapon_r97",0,0,0,0,10,0
+"extended_ammo","mp_weapon_shotgun",0,0,0,0,3,0
+"extended_ammo","mp_weapon_mastiff",0,0,0,0,3,0
+"extended_ammo","mp_weapon_car",0,0,0,0,10,0
+"extended_ammo","mp_weapon_rspn101",0,0,0,0,6,0
+"extended_ammo","mp_weapon_rspn101_og",0,0,0,0,6,0
+"extended_ammo","mp_weapon_hemlok",0,0,0,0,6,0
+"extended_ammo","mp_weapon_g2",0,0,0,0,4,0
+"extended_ammo","mp_weapon_vinson",0,0,0,0,6,0
+"extended_ammo","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"extended_ammo","mp_weapon_alternator_smg",0,0,0,0,0,0
+"extended_ammo","mp_weapon_wingman",0,0,0,0,0,0
+"extended_ammo","mp_weapon_wingman_n",0,0,0,0,0,0
+"extended_ammo","mp_weapon_shotgun_pistol",0,0,0,0,0,0
+"extended_ammo","mp_weapon_sniper",0,0,0,0,0,0
+"extended_ammo","mp_weapon_defender",0,0,0,0,0,0
+"extended_ammo","mp_weapon_dmr",0,0,0,0,0,0
+"extended_ammo","mp_weapon_doubletake",0,0,0,0,0,0
+"extended_ammo","mp_weapon_softball",0,0,0,0,0,0
+"extended_ammo","mp_weapon_epg",0,0,0,0,0,0
+"extended_ammo","mp_weapon_pulse_lmg",0,0,0,0,0,0
+"extended_ammo","mp_weapon_smr",0,0,0,0,0,0
+"extended_ammo","mp_weapon_rocket_launcher",0,0,0,0,0,0
+"extended_ammo","mp_weapon_mgl",0,0,0,0,0,0
+"extended_ammo","mp_weapon_arc_launcher",0,0,0,0,0,0
+"extended_ammo","mp_weapon_semipistol",0,0,0,0,0,0
+"extended_ammo","mp_weapon_autopistol",0,0,0,0,0,0
+"extended_ammo","mp_weapon_lmg",0,0,0,0,0,0
+"extended_ammo","mp_weapon_lstar",0,0,0,0,0,0
+"extended_ammo","mp_weapon_esaw",0,0,0,0,0,0
+"silencer","mp_weapon_wingman",0,0,0,0,0,0
+"silencer","mp_weapon_shotgun_pistol",0,0,0,0,0,0
+"silencer","mp_weapon_autopistol",0,0,0,0,0,0
+"silencer","mp_weapon_semipistol",0,0,0,0,0,0
+"hcog","mp_weapon_rspn101",0,0,0,0,0,0
+"hcog","mp_weapon_rspn101_og",0,0,0,0,0,0
+"hcog","mp_weapon_hemlok",0,0,0,0,0,0
+"hcog","mp_weapon_g2",0,0,0,0,0,0
+"hcog","mp_weapon_vinson",0,0,0,0,0,0
+"hcog","mp_weapon_alternator_smg",0,0,0,0,0,0
+"redline_sight","mp_weapon_r97",0,0,0,0,0,0
+"redline_sight","mp_weapon_car",0,0,0,0,0,0
+"redline_sight","mp_weapon_rspn101",0,0,0,0,0,0
+"redline_sight","mp_weapon_rspn101_og",0,0,0,0,0,0
+"redline_sight","mp_weapon_hemlok",0,0,0,0,0,0
+"redline_sight","mp_weapon_g2",0,0,0,0,0,0
+"redline_sight","mp_weapon_lmg",0,0,0,0,0,0
+"redline_sight","mp_weapon_vinson",0,0,0,0,0,0
+"redline_sight","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"redline_sight","mp_weapon_alternator_smg",0,0,0,0,0,0
+"redline_sight","mp_weapon_lstar",0,0,0,0,0,0
+"redline_sight","mp_weapon_esaw",0,0,0,0,0,0
+"redline_sight","mp_weapon_shotgun",0,0,0,0,0,0
+"redline_sight","mp_weapon_mastiff",0,0,0,0,0,0
+"aog","mp_weapon_lstar",0,0,0,0,0,0
+"aog","mp_weapon_lmg",0,0,0,0,0,0
+"aog","mp_weapon_esaw",0,0,0,0,0,0
+"holosight","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"holosight","mp_weapon_car",0,0,0,0,0,0
+"holosight","mp_weapon_r97",0,0,0,0,0,0
+"holosight","mp_weapon_shotgun",0,0,0,0,0,0
+"holosight","mp_weapon_mastiff",0,0,0,0,0,0
+"scope_4x","mp_weapon_dmr",0,0,0,0,0,0
+"scope_4x","mp_weapon_sniper",0,0,0,0,0,0
+"scope_4x","mp_weapon_doubletake",0,0,0,0,0,0
+"ricochet","mp_weapon_sniper",0,0,0,0,0,0
+"ricochet","mp_weapon_doubletake",0,0,0,0,0,0
+"ricochet","mp_weapon_wingman_n",0,0,0,0,0,0
+"threat_scope","mp_weapon_rspn101",0,0,0,0,0,0
+"threat_scope","mp_weapon_rspn101_og",0,0,0,0,0,0
+"threat_scope","mp_weapon_vinson",0,0,0,0,0,0
+"threat_scope","mp_weapon_hemlok",0,0,0,0,0,0
+"threat_scope","mp_weapon_g2",0,0,0,0,0,0
+"threat_scope","mp_weapon_car",0,0,0,0,0,0
+"threat_scope","mp_weapon_r97",0,0,0,0,0,0
+"threat_scope","mp_weapon_alternator_smg",0,0,0,0,0,0
+"threat_scope","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"threat_scope","mp_weapon_sniper",0,0,0,0,0,0
+"threat_scope","mp_weapon_dmr",0,0,0,0,0,0
+"threat_scope","mp_weapon_doubletake",0,0,0,0,0,0
+"threat_scope","mp_weapon_lmg",0,0,0,0,0,0
+"threat_scope","mp_weapon_lstar",0,0,0,0,0,0
+"threat_scope","mp_weapon_esaw",0,0,0,0,0,0
+"threat_scope","mp_weapon_shotgun",0,0,0,0,0,0
+"threat_scope","mp_weapon_mastiff",0,0,0,0,0,0
+"quick_charge","mp_weapon_defender",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_rspn101",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_rspn101_og",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_vinson",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_hemlok",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_g2",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_car",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_r97",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_alternator_smg",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_lmg",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_lstar",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_esaw",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_sniper",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_dmr",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_doubletake",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_wingman",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_wingman_n",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_shotgun_pistol",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_autopistol",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_semipistol",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_shotgun",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_mastiff",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_softball",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_epg",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_pulse_lmg",0,0,0,0,0,0
+"tactical_cdr_on_kill","mp_weapon_smr",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_rspn101",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_rspn101_og",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_vinson",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_hemlok",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_g2",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_car",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_r97",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_alternator_smg",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_lmg",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_lstar",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_esaw",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_sniper",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_dmr",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_doubletake",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_wingman",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_wingman_n",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_shotgun_pistol",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_autopistol",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_semipistol",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_shotgun",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_mastiff",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_softball",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_epg",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_pulse_lmg",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_smr",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_defender",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_rocket_launcher",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_mgl",0,0,0,0,0,0
+"pas_fast_ads","mp_weapon_arc_launcher",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_rspn101",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_rspn101_og",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_vinson",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_hemlok",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_g2",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_car",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_r97",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_alternator_smg",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_lmg",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_lstar",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_esaw",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_sniper",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_dmr",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_doubletake",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_shotgun",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_mastiff",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_softball",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_epg",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_pulse_lmg",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_smr",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_defender",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_rocket_launcher",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_mgl",0,0,0,0,0,0
+"pas_fast_swap","mp_weapon_arc_launcher",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_rspn101",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_rspn101_og",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_vinson",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_hemlok",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_g2",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_car",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_r97",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_alternator_smg",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_lmg",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_lstar",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_esaw",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_sniper",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_dmr",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_doubletake",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_wingman",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_wingman_n",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_shotgun_pistol",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_autopistol",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_semipistol",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_shotgun",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_mastiff",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_softball",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_epg",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_pulse_lmg",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_smr",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_rocket_launcher",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_mgl",0,0,0,0,0,0
+"pas_fast_reload","mp_weapon_arc_launcher",0,0,0,0,0,0
+"pro_screen","mp_weapon_r97",0,0,0,0,0,0
+"pro_screen","mp_weapon_shotgun",0,0,0,0,0,0
+"pro_screen","mp_weapon_mastiff",0,0,0,0,0,0
+"pro_screen","mp_weapon_car",0,0,0,0,0,0
+"pro_screen","mp_weapon_rspn101",0,0,0,0,0,0
+"pro_screen","mp_weapon_rspn101_og",0,0,0,0,0,0
+"pro_screen","mp_weapon_hemlok",0,0,0,0,0,0
+"pro_screen","mp_weapon_g2",0,0,0,0,0,0
+"pro_screen","mp_weapon_vinson",0,0,0,0,0,0
+"pro_screen","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"pro_screen","mp_weapon_alternator_smg",0,0,0,0,0,0
+"pro_screen","mp_weapon_wingman",0,0,0,0,0,0
+"pro_screen","mp_weapon_wingman_n",0,0,0,0,0,0
+"pro_screen","mp_weapon_shotgun_pistol",0,0,0,0,0,0
+"pro_screen","mp_weapon_sniper",0,0,0,0,0,0
+"pro_screen","mp_weapon_defender",0,0,0,0,0,0
+"pro_screen","mp_weapon_dmr",0,0,0,0,0,0
+"pro_screen","mp_weapon_doubletake",0,0,0,0,0,0
+"pro_screen","mp_weapon_softball",0,0,0,0,0,0
+"pro_screen","mp_weapon_epg",0,0,0,0,0,0
+"pro_screen","mp_weapon_pulse_lmg",0,0,0,0,0,0
+"pro_screen","mp_weapon_smr",0,0,0,0,0,0
+"pro_screen","mp_weapon_rocket_launcher",0,0,0,0,0,0
+"pro_screen","mp_weapon_mgl",0,0,0,0,0,0
+"pro_screen","mp_weapon_arc_launcher",0,0,0,0,0,0
+"pro_screen","mp_weapon_semipistol",0,0,0,0,0,0
+"pro_screen","mp_weapon_autopistol",0,0,0,0,0,0
+"pro_screen","mp_weapon_lmg",0,0,0,0,0,0
+"pro_screen","mp_weapon_lstar",0,0,0,0,0,0
+"pro_screen","mp_weapon_esaw",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_r97",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_shotgun",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_mastiff",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_car",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_rspn101",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_rspn101_og",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_hemlok",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_g2",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_vinson",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_hemlok_smg",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_alternator_smg",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_wingman",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_wingman_n",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_shotgun_pistol",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_softball",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_epg",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_pulse_lmg",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_smr",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_semipistol",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_autopistol",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_lmg",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_lstar",0,0,0,0,0,0
+"pas_run_and_gun","mp_weapon_esaw",0,0,0,0,0,0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_mods_common.csv b/Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_mods_common.csv
new file mode 100644
index 00000000..4718c126
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/pilot_weapon_mods_common.csv
@@ -0,0 +1,27 @@
+mod,type,name,shortName,description,image,cost,costSniper,costPistol,costAT
+"iron_sights","attachment","#FACTORY_ISSUE_NAME","","#FACTORY_ISSUE_SIGHT_DESC","r2_ui/menus/loadout_icons/attachments/iron_sights",0,0,0,0
+"holosight","attachment","#MOD_HOLOSIGHT_NAME","","#MOD_HOLOSIGHT_DESC","r2_ui/menus/loadout_icons/attachments/holosight",0,0,0,0
+"hcog","attachment","#MOD_HCOG_NAME","HCOG","#MOD_HCOG_DESC","r2_ui/menus/loadout_icons/attachments/hcog_ranger",0,0,0,0
+"aog","attachment","#MOD_AOG_NAME","AOG","#MOD_AOG_DESC","r2_ui/menus/loadout_icons/attachments/aog",0,0,0,0
+"scope_4x","attachment","#MOD_SCOPE_4X_NAME","","#MOD_SCOPE_4X_DESC","r2_ui/menus/loadout_icons/attachments/variable_zoom",0,0,0,0
+"scope_6x","attachment","4x Zoom Scope","4x Zoom","#MOD_SCOPE_4X_DESC","ui/menu/items/attachment_icons/scope_6x",0,0,0,0
+"redline_sight","attachment","#MOD_ZOOM_SIGHT_NAME","#MOD_ZOOM_SIGHT_NAME","#MOD_ZOOM_SIGHT_DESC","r2_ui/menus/loadout_icons/attachments/hcog",0,0,0,0
+"threat_scope","attachment","#MOD_THREAT_SIGHT_NAME","T-Scope","#MOD_THREAT_SIGHT_DESC","r2_ui/menus/loadout_icons/attachments/threat_scope",0,0,0,0
+"extended_ammo","mod","#MOD_EXTENDED_AMMO_NAME","Ext. Mag","#MOD_EXTENDED_AMMO_DESC","rui/pilot_loadout/mods/extended_ammo",0,0,0,0
+"silencer","mod","#MOD_SILENCER_NAME","Suppressor","#MOD_SILENCER_DESC","r2_ui/menus/loadout_icons/attachments/suppressor",0,0,0,0
+"stabilizer","mod","Stabilizer","Stabilizer","Reduces sway when looking down scope","ui/menu/items/mod_icons/stabilizer",0,0,0,0
+"slammer","mod","Slammer","Slammer","Increases rodeo damage","ui/menu/items/mod_icons/slammer",0,0,0,0
+"enhanced_targeting","mod","Enhanced Targeting","E. Targeting","Enables multiple lock-on capability","ui/menu/items/mod_icons/enhanced_targeting",0,0,0,0
+"single_lock","mod","Single Lock","Single Lock","Single Lock on Pilots","ui/menu/items/mod_icons/enhanced_targeting",0,0,0,0
+"ricochet","mod","#MOD_RICOCHET_NAME","Ricochet","#MOD_RICOCHET_DESC","rui/pilot_loadout/mods/ricochet",0,0,0,0
+"ar_trajectory","mod","Ar Trajectory","Ar Trajectory","Displays estimated trajectory","rui/pilot_loadout/mods/ar_trajectory",0,0,0,0
+"alt_spread","mod","Alt Spread","Alt Spread","Alternate spread pattern","ui/temp",0,0,0,0
+"delayed_shot","mod","Soft Launch","Soft Launch","Delayed ignition with fast rockets","ui/temp",0,0,0,0
+"quick_charge","mod","#MOD_CHARGE_HACK_NAME","Charge Hack","#MOD_CHARGE_HACK_DESC","rui/pilot_loadout/mods/charge_hack",0,0,0,0
+"pas_run_and_gun","mod","#MOD_GUNRUNNER_NAME","Gunrunner","#MOD_GUNRUNNER_DESC","rui/pilot_loadout/mods/gunrunner",0,0,0,0
+"tactical_cdr_on_kill","mod","#MOD_TACTIKILL_NAME","Tactikill","#MOD_TACTIKILL_DESC","rui/pilot_loadout/mods/tactikill",0,0,0,0
+"pas_fast_ads","mod","#MOD_GUN_READY_NAME","Fast ADS","#MOD_GUN_READY_DESC","rui/pilot_loadout/mods/gun_ready",0,0,0,0
+"pas_fast_swap","mod","#MOD_SPEED_TRANSITION_NAME","Fast Swap","#MOD_SPEED_TRANSITION_DESC","rui/pilot_loadout/mods/speed_transition",0,0,0,0
+"pas_fast_reload","mod","#GEAR_QUICK_RELOAD","#GEAR_QUICK_RELOAD","#GEAR_QUICK_RELOAD_DESC","rui/pilot_loadout/kit/speed_loader",0,0,0,0
+"pro_screen","mod3","#MOD_PRO_SCREEN_NAME","Pro Screen","#MOD_PRO_SCREEN_DESC","rui/pilot_loadout/mods/pro_screen",0,0,0,0
+"rocket_arena","mod","#MOD_PRO_SCREEN_NAME","Pro Screen","#MOD_PRO_SCREEN_DESC","rui/pilot_loadout/mods/pro_screen",0,0,0,0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/pilot_weapons.csv b/Northstar.CustomServers/mod/scripts/datatable/pilot_weapons.csv
new file mode 100644
index 00000000..d8bbfb0a
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/pilot_weapons.csv
@@ -0,0 +1,33 @@
+itemRef,type,defaultAttachment,defaultMod1,defaultMod2,defaultMod3,hidden,xpPerLevelType,cost
+"mp_weapon_r97","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_alternator_smg","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_car","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_hemlok_smg","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_lmg","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_lstar","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_esaw","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_rspn101","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_vinson","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_hemlok","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_g2","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_shotgun","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_mastiff","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_dmr","PILOT_PRIMARY","","","","",0,"sniper",100
+"mp_weapon_doubletake","PILOT_PRIMARY","","","","",0,"sniper",100
+"mp_weapon_sniper","PILOT_PRIMARY","","","","",0,"sniper",100
+"mp_weapon_epg","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_smr","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_pulse_lmg","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_softball","PILOT_PRIMARY","","","","",0,"default",100
+"mp_weapon_autopistol","PILOT_SECONDARY","","","","",0,"pistol",50
+"mp_weapon_semipistol","PILOT_SECONDARY","","","","",0,"pistol",50
+"mp_weapon_wingman","PILOT_SECONDARY","","","","",0,"pistol",50
+"mp_weapon_shotgun_pistol","PILOT_PRIMARY","","","","",0,"default",50
+"mp_weapon_rocket_launcher","PILOT_SECONDARY","","","","",0,"antititan",50
+"mp_weapon_arc_launcher","PILOT_SECONDARY","","","","",0,"antititan",50
+"mp_weapon_defender","PILOT_SECONDARY","","","","",0,"antititan",50
+"mp_weapon_mgl","PILOT_SECONDARY","","","","",0,"antititan",50
+"melee_pilot_emptyhanded","PILOT_MELEE","","","","",0,"default",100
+"melee_pilot_arena","PILOT_MELEE","","","","",0,"default",100
+"mp_weapon_wingman_n","PILOT_PRIMARY","","","","",0,"default",50
+"mp_weapon_rspn101_og","PILOT_PRIMARY","","","","",0,"default",100 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/playlist_items.csv b/Northstar.CustomServers/mod/scripts/datatable/playlist_items.csv
new file mode 100644
index 00000000..f485fe70
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/playlist_items.csv
@@ -0,0 +1,27 @@
+playlist,name,image,thumbnail,cost
+"at","#PL_attrition","rui/menu/gametype_select/bounty_hunt","rui/menu/gametype_select/playlist_bounty_hunt",5
+"aitdm","#PL_aitdm","rui/menu/gametype_select/attrition","rui/menu/gametype_select/playlist_attrition",5
+"cp","#PL_hardpoint","rui/menu/gametype_select/hardpoint","rui/menu/gametype_select/playlist_amped_hardpoint",5
+"ctf","#PL_capture_the_flag","rui/menu/gametype_select/capture_the_flag","rui/menu/gametype_select/playlist_ctf",5
+"lts","#PL_last_titan_standing","rui/menu/gametype_select/last_titan_standing","rui/menu/gametype_select/playlist_lts",5
+"tdm","#PL_pilot_hunter","rui/menu/gametype_select/pilot_hunter","rui/menu/gametype_select/playlist_skirmish",5
+"varietypack","Variety Pack","rui/menu/gametype_select/variety_pack","rui/menu/gametype_select/playlist_gen_weapon",5
+"coliseum","#PL_coliseum","rui/menu/gametype_select/colosseum","rui/menu/gametype_select/playlist_coliseum",0
+"fnf","Friday Night Fights","rui/menu/gametype_select/friday_night_fights","rui/menu/gametype_select/playlist_gen_star",5
+"ffa","#PL_ffa","rui/menu/gametype_select/free_for_all","rui/menu/gametype_select/playlist_free_for_all",5
+"ps","#PL_pilot_skirmish","rui/menu/gametype_select/pilot_v_pilot","rui/menu/gametype_select/playlist_pilot_vs_pilot",5
+"default","Default","rui/menu/gametype_select/bounty_hunt","rui/menu/gametype_select/playlist_gen_star",5
+"fw","#PL_titan_war","rui/menu/gametype_select/titan_war","rui/menu/gametype_select/playlist_gen_arrow",5
+"private_match","#PL_private_match","rui/menu/gametype_select/private_match","rui/menu/gametype_select/playlist_gen_star",0
+"lf","#PL_speedball","rui/menu/gametype_select/hardcore_pilot_hunter","rui/menu/gametype_select/playlist_live_fire",5
+"angel_city_247","#PL_angel_city","rui/menu/gametype_select/angel_city","rui/menu/gametype_select/playlist_gen_star",5
+"hunted","#PL_hunted","rui/menu/gametype_select/variety_pack","rui/menu/gametype_select/playlist_apex",5
+"mfd","#PL_mfd","rui/menu/gametype_select/pilot_hunter","rui/menu/gametype_select/playlist_marked_for_death",5
+"speedball","#PL_speedball","rui/menu/gametype_select/hardcore_pilot_hunter","rui/menu/gametype_select/playlist_live_fire",0
+"fd_easy","#PL_fd_easy","rui/menu/gametype_select/last_titan_standing","rui/menu/gametype_select/playlist_fd_easy",0
+"fd","#PL_fd_normal","rui/menu/gametype_select/last_titan_standing","rui/menu/gametype_select/playlist_fd_normal",0
+"fd_normal","#PL_fd_normal","rui/menu/gametype_select/last_titan_standing","rui/menu/gametype_select/playlist_fd_normal",0
+"fd_hard","#PL_fd_hard","rui/menu/gametype_select/last_titan_standing","rui/menu/gametype_select/playlist_fd_hard",0
+"fd_master","#PL_fd_master","rui/menu/gametype_select/last_titan_standing","rui/menu/gametype_select/playlist_fd_master",0
+"fd_insane","#PL_fd_insane","rui/menu/gametype_select/last_titan_standing","rui/menu/gametype_select/playlist_fd_insane",0
+"ttdm","#PL_titan_brawl","rui/menu/gametype_select/last_titan_standing","rui/menu/gametype_select/playlist_titan_brawl",5 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/score_events.csv b/Northstar.CustomServers/mod/scripts/datatable/score_events.csv
new file mode 100644
index 00000000..d71d3ac9
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/score_events.csv
@@ -0,0 +1,221 @@
+name,splashText,medalText,pointValue,burnPointValue,pointType,xpValue,xpValueTitan,xpValueWeapon,xpValueFaction,xpType,displayType,medalIcon,conversation,scaleScoreForAutoTitan
+"AttritionAirDroneKilled","#SCORE_EVENT_AT_AIR_DRONE_KILLED","#SCORE_EVENT_AT_AIR_DRONE_KILLED","ATTRITION_SCORE_AIR_DRONE","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"AttritionBossKilled","#SCORE_EVENT_AT_BOSS_KILLED","#SCORE_EVENT_AT_BOSS_KILLED","ATTRITION_SCORE_BOSS","","ASSAULT","0","0","0","0","","CALLINGCARD MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"AttritionBountySurvived","#SCORE_EVENT_AT_BOUNTY_SURVIVED","#SCORE_EVENT_AT_BOUNTY_SURVIVED","ATTRITION_SCORE_BOUNTY_SURVIVAL","","","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/victory","",0
+"AttritionGruntKilled","#SCORE_EVENT_AT_GRUNT_KILLED","#SCORE_EVENT_AT_GRUNT_KILLED","ATTRITION_SCORE_GRUNT","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"AttritionMegaTurretKilled","#SCORE_EVENT_AT_MEGA_TURRET_KILLED","#SCORE_EVENT_AT_MEGA_TURRET_KILLED","ATTRITION_SCORE_MEGATURRET","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"AttritionSentryTurretKilled","#SCORE_EVENT_AT_SENTRY_TURRET_KILLED","#SCORE_EVENT_AT_SENTRY_TURRET_KILLED","ATTRITION_SCORE_SENTRYTURRET","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"AttritionPilotKilled","#SCORE_EVENT_AT_PILOT_KILLED","#SCORE_EVENT_AT_PILOT_KILLED","ATTRITION_SCORE_PILOT","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"AttritionProwlerKilled","#SCORE_EVENT_AT_PROWLER_KILLED","#SCORE_EVENT_AT_PROWLER_KILLED","ATTRITION_SCORE_PROWLER","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"AttritionSpectreKilled","#SCORE_EVENT_AT_SPECTRE_KILLED","#SCORE_EVENT_AT_SPECTRE_KILLED","ATTRITION_SCORE_SPECTRE","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"AttritionStalkerKilled","#SCORE_EVENT_AT_STALKER_KILLED","#SCORE_EVENT_AT_STALKER_KILLED","ATTRITION_SCORE_STALKER","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"AttritionSuperSpectreKilled","#SCORE_EVENT_AT_SUPER_SPECTRE_KILLED","#SCORE_EVENT_AT_SUPER_SPECTRE_KILLED","ATTRITION_SCORE_SUPER_SPECTRE","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"AttritionTitanDoomed","#SCORE_EVENT_AT_TITAN_DOOMED","#SCORE_EVENT_AT_TITAN_DOOMED","ATTRITION_SCORE_TITAN","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"AttritionTitanKilled","#SCORE_EVENT_AT_TITAN_DOOMED","#SCORE_EVENT_AT_TITAN_DOOMED","ATTRITION_SCORE_TITAN","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"AttritionCashedBonus","#SCORE_EVENT_AT_CASHED_BONUS","#SCORE_EVENT_AT_CASHED_BONUS","ATTRITION_SCORE_BONUS","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"AttritionBonusStolen","#SCORE_EVENT_AT_BONUS_STOLEN","#SCORE_EVENT_AT_BONUS_STOLEN","ATTRITION_SCORE_BONUS_STOLEN","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"BombCarry","#SCORE_EVENT_BOMB_CARRY_POINTS","#SCORE_EVENT_BOMB_CARRY_POINTS","GAMEMODE_BOMB_SCORE_CARRY","","DISTANCE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/bomb","",0
+"BombPlant","#SCORE_EVENT_BOMB_PLANT_POINTS","#SCORE_EVENT_BOMB_PLANT_POINTS","GAMEMODE_BOMB_SCORE_PLANT","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/bomb","",0
+"BombDefuse","#SCORE_EVENT_BOMB_DEFUSE_POINTS","#SCORE_EVENT_BOMB_DEFUSE_POINTS","GAMEMODE_BOMB_SCORE_DEFUSE","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/bomb","",0
+"BombExplode","#SCORE_EVENT_BOMB_EXPLODE_POINTS","#SCORE_EVENT_BOMB_EXPLODE_POINTS","GAMEMODE_BOMB_SCORE_EXPLODE","","DETONATION","0","0","0","0","","MEDAL GAMEMODE","rui/medals/bomb","",0
+"ChallengeCompleted","#SCORE_EVENT_CHALLENGE_COMPLETED","#SCORE_EVENT_CHALLENGE_COMPLETED","0","","","0","0","0","0","","MEDAL","rui/medals/victory","",0
+"ChallengePVPKillCount","#SCORE_EVENT_CHALLENGE_PVP_KILLS","#SCORE_EVENT_CHALLENGE_PVP_KILLS","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeATAssault","#SCORE_EVENT_CHALLENGE_AT_ASSAULT","#SCORE_EVENT_CHALLENGE_AT_ASSAULT","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeCPAssault","#SCORE_EVENT_CHALLENGE_CP_ASSAULT","#SCORE_EVENT_CHALLENGE_CP_ASSAULT","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeCPDefense","#SCORE_EVENT_CHALLENGE_CP_DEFENSE","#SCORE_EVENT_CHALLENGE_CP_DEFENSE","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeCTFCapAssist","#SCORE_EVENT_ASSIST_WITH_FLAG_CAP","#SCORE_EVENT_ASSIST_WITH_FLAG_CAP","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeCTFRetAssist","#SCORE_EVENT_ASSIST_WITH_FLAG_RET","#SCORE_EVENT_ASSIST_WITH_FLAG_RET","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeFW","#SCORE_EVENT_USE_N_BATTERIES","#SCORE_EVENT_USE_N_BATTERIES","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeFFA","#SCORE_EVENT_KILL_N_PILOTS","#SCORE_EVENT_KILL_N_PILOTS","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeTDM","#SCORE_EVENT_KILL_N_IN_A_ROW","#SCORE_EVENT_KILL_N_IN_A_ROW","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeTTDM","#SCORE_EVENT_CHALLENGE_COMPLETED","#SCORE_EVENT_CHALLENGE_COMPLETED","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeLTS","#SCORE_EVENT_KILL_N_TITANS","#SCORE_EVENT_KILL_N_TITANS","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeSPEEDBALL","#SCORE_EVENT_KILL_N_PILOTS","#SCORE_EVENT_KILL_N_PILOTS","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeMFD","#SCORE_EVENT_CHALLENGE_COMPLETED","#SCORE_EVENT_CHALLENGE_COMPLETED","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"ChallengeFD","#SCORE_EVENT_CHALLENGE_FD","#SCORE_EVENT_CHALLENGE_FD","","","","1","0","0","0","SCORE_MILESTONE","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"Comeback","#SCORE_EVENT_COMEBACK","#SCORE_EVENT_COMEBACK","POINTVALUE_COMEBACK","","","0","0","0","0","","MEDAL","rui/medals/kill","kc_comeback",0
+"ControlPanelHeavyTurretActivate","#SCORE_EVENT_HEAVY_TURRET_ACTIVATED","#SCORE_EVENT_HEAVY_TURRET_ACTIVATED","POINTVALUE_CONTROL_PANEL_ACTIVATE","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"ControlPanelLightTurretActivate","#SCORE_EVENT_LIGHT_TURRETS_ACTIVATED","#SCORE_EVENT_LIGHT_TURRETS_ACTIVATED","POINTVALUE_CONTROL_PANEL_ACTIVATE_LIGHT","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"ControlPointCapture","#SCORE_EVENT_HARDPOINT_CAPTURED","#SCORE_EVENT_HARDPOINT_CAPTURED","POINTVALUE_HARDPOINT_CAPTURE","","ASSAULT","0","0","0","0","","CALLINGCARD MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"ControlPointCaptureAssist","#SCORE_EVENT_HARDPOINT_CAPTURE_ASSIST","#SCORE_EVENT_HARDPOINT_CAPTURE_ASSIST","POINTVALUE_HARDPOINT_CAPTURE_ASSIST","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"ControlPointHold","#SCORE_EVENT_HARDPOINT_HOLD","#SCORE_EVENT_HARDPOINT_HOLD","POINTVALUE_HARDPOINT_HOLD","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"ControlPointTake","#SCORE_EVENT_HARDPOINT_TAKE","#SCORE_EVENT_HARDPOINT_TAKE","POINTVALUE_HARDPOINT_HOLD","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"ControlPointAmped","#SCORE_EVENT_HARDPOINT_AMPED","#SCORE_EVENT_HARDPOINT_AMPED","POINTVALUE_HARDPOINT_AMPED","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"ControlPointAmpedHold","#SCORE_EVENT_HARDPOINT_AMPED_HOLD","#SCORE_EVENT_HARDPOINT_AMPED_HOLD","POINTVALUE_HARDPOINT_AMPED_HOLD","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"ControlPointNeutralize","#SCORE_EVENT_HARDPOINT_NEUTRALIZED","#SCORE_EVENT_HARDPOINT_NEUTRALIZED","POINTVALUE_HARDPOINT_NEUTRALIZE","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"ControlPointNeutralizeAssist","#SCORE_EVENT_HARDPOINT_NEUTRALIZE_ASSIST","#SCORE_EVENT_HARDPOINT_NEUTRALIZE_ASSIST","POINTVALUE_HARDPOINT_NEUTRALIZE_ASSIST","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"Damage","#SCORE_EVENT_DAMAGE_GENERIC","#SCORE_EVENT_DAMAGE_GENERIC","0","","","0","0","0","0","","CENTER","rui/medals/kill","",0
+"DamageTitan","#SCORE_EVENT_DAMAGE_TITAN","#SCORE_EVENT_DAMAGE_TITAN","0","","","0","0","0","0","","CENTER","rui/medals/kill","",0
+"StealMeter","#SCORE_EVENT_STEAL_METER","#SCORE_EVENT_STEAL_METER","0","","","0","0","0","0","","CENTER","rui/medals/kill","",0
+"Destored_Proximity_Mine","#SCORE_EVENT_DESTROYED_PROXIMITY_CHARGE","#SCORE_EVENT_DESTROYED_PROXIMITY_CHARGE","POINTVALUE_DESTROYED_PROXIMITY_MINE","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"Destroyed_Satchel","#SCORE_EVENT_DESTROYED_SATCHEL_CHARGE","#SCORE_EVENT_DESTROYED_SATCHEL_CHARGE","POINTVALUE_DESTROYED_SATCHEL","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"Dominating","#SCORE_EVENT_DOMINATING","#SCORE_EVENT_DOMINATING","POINTVALUE_DOMINATING","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","kc_dominating",0
+"DoomAutoTitan","#MEDAL_DOOMED_TITAN","#MEDAL_DOOMED_TITAN","100","BURN_METER_SMALL_POINT_VALUE","","0","0","0","0","","MEDAL","rui/medals/kill_robot","",0
+"DoomTitan","#MEDAL_DOOMED_TITAN","#MEDAL_DOOMED_TITAN","100","BURN_METER_SMALL_POINT_VALUE","","0","0","0","0","","BIG MEDAL","rui/medals/kill_robot","",0
+"DoubleKill","#SCORE_EVENT_DOUBLE_KILL","#SCORE_EVENT_DOUBLE_KILL","POINTVALUE_DOUBLEKILL","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","kc_doublekill",0
+"EliminatePilot","#SCORE_EVENT_ELIMINATED_PILOT","#MEDAL_ELIMINATED_PILOT","POINTVALUE_ELIMINATE_PILOT","BURN_METER_SMALL_POINT_VALUE","","0","0","1","0","KILL","BIG MEDAL CENTER","rui/medals/kill","",0
+"EliminateTitan","#MEDAL_ELIMINATED_TITAN","#MEDAL_ELIMINATED_TITAN","1","BURN_METER_SMALL_POINT_VALUE","","0","0","1","0","","CALLINGCARD MEDAL","rui/medals/kill_robot","",0
+"EliminateAutoTitan","#MEDAL_ELIMINATED_TITAN","#MEDAL_ELIMINATED_TITAN","1","BURN_METER_SMALL_POINT_VALUE","","0","0","1","0","","CALLINGCARD MEDAL","rui/medals/kill_robot","",0
+"FirstStrike","#SCORE_EVENT_FIRST_STRIKE","#SCORE_EVENT_FIRST_STRIKE","POINTVALUE_FIRST_STRIKE","","","0","0","0","0","","CALLINGCARD MEDAL","rui/medals/first_strike","kc_firstblood",0
+"FirstTitanfall","#SCORE_EVENT_FIRST_TITANFALL","#SCORE_EVENT_FIRST_TITANFALL","POINTVALUE_FIRST_TITANFALL","","","0","1","0","0","TITAN_FALL","CALLINGCARD MEDAL","rui/medals/titanfall","",0
+"FishInBarrel","#SCORE_EVENT_FISH_IN_A_BARREL","#SCORE_EVENT_FISH_IN_A_BARREL","POINTVALUE_FISHINBARREL","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"FlagCapture","#SCORE_EVENT_FLAG_CAPTURE","#SCORE_EVENT_FLAG_CAPTURE","POINTVALUE_FLAG_CAPTURE","","","0","0","0","0","","CALLINGCARD MEDAL GAMEMODE","rui/medals/ctf","",0
+"FlagTaken","#SCORE_EVENT_FLAG_TAKEN","#SCORE_EVENT_FLAG_TAKEN","POINTVALUE_FLAG_TAKEN","","","0","0","0","0","","CALLINGCARD MEDAL GAMEMODE","rui/medals/ctf","",0
+"FlagCaptureAssist","#SCORE_EVENT_FLAG_CAPTURE_ASSIST","#SCORE_EVENT_FLAG_CAPTURE_ASSIST","POINTVALUE_FLAG_CAPTURE_ASSIST","","","0","0","0","0","","MEDAL","rui/medals/ctf","",0
+"FlagCarrierKill","#SCORE_EVENT_KILLED_FLAG_CARRIER","#SCORE_EVENT_KILLED_FLAG_CARRIER","POINTVALUE_FLAG_CARRIER_KILL","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/ctf","",0
+"FlagReturn","#SCORE_EVENT_FLAG_RETURN","#SCORE_EVENT_FLAG_RETURN","POINTVALUE_FLAG_RETURN","","","0","0","0","0","","CALLINGCARD MEDAL GAMEMODE","rui/medals/ctf","",0
+"FlyerKill","#SCORE_EVENT_KILLED_FLYER","#MEDAL_KILLED_FLYER","POINTVALUE_KILL_FLYER","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"GetToChopper","#SCORE_EVENT_GET_TO_THE_CHOPPER","#SCORE_EVENT_GET_TO_THE_CHOPPER","POINTVALUE_GET_TO_CHOPPER","","","0","0","0","0","","MEDAL","rui/medals/extract","",0
+"GiveRide","#SCORE_EVENT_GIVE_A_FRIEND_A_LIFT","#SCORE_EVENT_GIVE_A_FRIEND_A_LIFT","POINTVALUE_FRIEND_RIDE","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"HappyHourBonus","#SCORE_EVENT_HAPPY_HOUR_BONUS","#SCORE_EVENT_HAPPY_HOUR_BONUS","","","","5","0","0","0","HAPPY_HOUR","MEDAL CHALLENGE GAMEMODE","rui/medals/victory","",0
+"HardpointAssault","#SCORE_EVENT_HARDPOINT_ASSAULT","#SCORE_EVENT_HARDPOINT_ASSAULT","POINTVALUE_HARDPOINT_ASSAULT","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"HardpointDefense","#SCORE_EVENT_HARDPOINT_DEFENSE","#SCORE_EVENT_HARDPOINT_DEFENSE","POINTVALUE_HARDPOINT_DEFENSE","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"HardpointPerimeterDefense","#SCORE_EVENT_HARDPOINT_PERIMETER_DEFENSE","#SCORE_EVENT_HARDPOINT_PERIMETER_DEFENSE","POINTVALUE_HARDPOINT_PERIMETER_DEFENSE","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"HardpointSiege","#SCORE_EVENT_HARDPOINT_SIEGE","#SCORE_EVENT_HARDPOINT_SIEGE","POINTVALUE_HARDPOINT_SIEGE","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"HardpointSnipe","#SCORE_EVENT_HARDPOINT_RANGED_SUPPORT","#SCORE_EVENT_HARDPOINT_RANGED_SUPPORT","POINTVALUE_HARDPOINT_SNIPE","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"Headshot","#MEDAL_HEADSHOT","#MEDAL_HEADSHOT","POINTVALUE_HEADSHOT","","","0","0","0","0","","MEDAL","rui/medals/headshot","",0
+"HitchRide","#SCORE_EVENT_HITCH_A_RIDE","#SCORE_EVENT_HITCH_A_RIDE","POINTVALUE_RODEOD_FRIEND","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"HotZoneExtract","#SCORE_EVENT_HOT_ZONE_EXTRACT","#SCORE_EVENT_HOT_ZONE_EXTRACT","POINTVALUE_HOTZONE_EXTRACT","","","1","0","0","1","EVAC","MEDAL","rui/medals/extract","",0
+"KillAutoTitan","#MEDAL_KILLED_TITAN","#MEDAL_KILLED_TITAN","POINTVALUE_KILL_TITAN","BURN_METER_SMALL_POINT_VALUE","","0","0","1","0","","CALLINGCARD MEDAL","rui/medals/kill_robot","",0
+"KillDrone","#SCORE_EVENT_KILLED_DRONE","#MEDAL_KILLED_DRONE","POINTVALUE_KILL_DRONE","","","0","0","0","0","","MEDAL","rui/medals/kill_robot","",0
+"KillDropship","#SCORE_EVENT_EVAC_DENIED","#SCORE_EVENT_EVAC_DENIED","POINTVALUE_EVAC_DENIED","","","0","0","0","0","","MEDAL","rui/medals/extract","",0
+"KilledEscapee","#SCORE_EVENT_KILLED_EVACUATING_ENEMY","#MEDAL_KILLED_EVACUATING_ENEMY","POINTVALUE_KILLED_ESCAPEE","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","",0
+"KilledMVP","#SCORE_EVENT_KILLED_MVP","#MEDAL_KILLED_MVP","POINTVALUE_KILLED_MVP","","","0","0","0","0","","MEDAL","rui/medals/kill","",0
+"KillGrunt","#SCORE_EVENT_KILLED_MILITIA","#SCORE_EVENT_KILLED_MILITIA","POINTVALUE_KILL_FIRETEAM_AI","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/kill","",0
+"KillHeavyTurret","#SCORE_EVENT_KILLED_HEAVY_TURRET","#SCORE_EVENT_KILLED_HEAVY_TURRET","POINTVALUE_KILL_HEAVY_TURRET","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"KillingSpree","#SCORE_EVENT_KILLING_SPREE","#SCORE_EVENT_KILLING_SPREE","POINTVALUE_KILLINGSPREE","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","kc_killingspree",0
+"KillLightTurret","#SCORE_EVENT_KILLED_LIGHT_TURRET","#SCORE_EVENT_KILLED_LIGHT_TURRET","POINTVALUE_KILL_LIGHT_TURRET","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"KillPilot","#SCORE_EVENT_KILLED_PILOT","#MEDAL_KILLED_PILOT","1","BURN_METER_SMALL_POINT_VALUE","","0","0","1","0","KILL","BIG MEDAL CENTER","rui/medals/kill","",0
+"KillProwler","#SCORE_EVENT_KILLED_PROWLER","#MEDAL_KILLED_PROWLER","POINTVALUE_KILL_PROWLER","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"KillRescueShip","#SCORE_EVENT_EVAC_DENIED","#SCORE_EVENT_EVAC_DENIED","POINTVALUE_EVAC_DENIED","","","0","0","0","0","","MEDAL","rui/medals/extract","",0
+"KillSpectre","#SCORE_EVENT_KILLED_SPECTRE","#MEDAL_KILLED_SPECTRE","POINTVALUE_KILL_SPECTRE","","","0","0","0","0","","MEDAL","rui/medals/kill_robot","",0
+"KillStalker","#SCORE_EVENT_KILLED_STALKER","#MEDAL_KILLED_STALKER","POINTVALUE_KILL_STALKER","","","0","0","0","0","","MEDAL","rui/medals/kill_robot","",0
+"KillHackedSpectre","#SCORE_EVENT_KILLED_HACKED_SPECTRE","#MEDAL_KILLED_SPECTRE","POINTVALUE_KILL_SPECTRE","","","0","0","0","0","","MEDAL","rui/medals/kill_robot","",0
+"KillSuperSpectre","#SCORE_EVENT_KILLED_SUPER_SPECTRE","#MEDAL_KILLED_SUPER_SPECTRE","POINTVALUE_KILL_SUPER_SPECTRE","","","0","0","0","0","","MEDAL","rui/medals/kill_robot","",0
+"KillTitan","#MEDAL_KILLED_TITAN","#MEDAL_KILLED_TITAN","POINTVALUE_KILL_TITAN","BURN_METER_SMALL_POINT_VALUE","","0","0","1","0","KILL","CALLINGCARD MEDAL CENTER","rui/medals/kill_robot","",0
+"TitanKillTitan","#MEDAL_KILLED_TITAN","#MEDAL_KILLED_TITAN","POINTVALUE_KILL_TITAN","BURN_METER_SMALL_POINT_VALUE","","0","1","1","0","KILL","CALLINGCARD MEDAL CENTER","rui/medals/kill_robot","",0
+"LeechDrone","#SCORE_EVENT_LEECHED_DRONE","#SCORE_EVENT_LEECHED_DRONE","POINTVALUE_LEECH_DRONE","","","0","0","0","0","","MEDAL","rui/medals/kill_robot","",0
+"LeechSpectre","#SCORE_EVENT_LEECHED_SPECTRE","#SCORE_EVENT_LEECHED_SPECTRE","POINTVALUE_LEECH_SPECTRE","","","0","0","0","0","","MEDAL","rui/medals/kill_robot","",0
+"LeechSuperSpectre","#SCORE_EVENT_LEECHED_SUPER_SPECTRE","#SCORE_EVENT_LEECHED_SUPER_SPECTRE","POINTVALUE_LEECH_SUPER_SPECTRE","","","0","0","0","0","","MEDAL","rui/medals/kill_robot","",0
+"MarkedEscort","#SCORE_EVENT_PROTECTED_MARKED_TARGET","#SCORE_EVENT_PROTECTED_MARKED_TARGET","POINTVALUE_MARKED_ESCORT","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/kill","",0
+"MarkedKilledMarked","#SCORE_EVENT_MARKED_KILLED_MARKED","#SCORE_EVENT_MARKED_KILLED_MARKED","POINTVALUE_MARKED_KILLED_MARKED","","","0","0","0","0","","MEDAL GAMEMODE","rui/hud/gametype_icons/mfd/mfd_enemy","",0
+"MarkedOutlastedEnemyMarked","#SCORE_EVENT_MARKED_OUTLASTED_ENEMY_MARK","#SCORE_EVENT_MARKED_OUTLASTED_ENEMY_MARK","POINTVALUE_MARKED_OUTLASTED_ENEMY_MARKED","","","0","0","0","0","","MEDAL GAMEMODE","rui/hud/gametype_icons/mfd/mfd_friendly","",0
+"MarkedSurvival","#SCORE_EVENT_MARKED_SURVIVAL","#SCORE_EVENT_MARKED_SURVIVAL","POINTVALUE_MARKED_SURVIVAL","","","0","0","0","0","","MEDAL GAMEMODE","rui/hud/gametype_icons/mfd/mfd_friendly","",0
+"MarkedTargetKilled","#SCORE_EVENT_KILLED_MARKED_TARGET","#SCORE_EVENT_KILLED_MARKED_TARGET","POINTVALUE_MARKED_TARGET_KILLED","","","0","0","0","0","","MEDAL GAMEMODE","rui/hud/gametype_icons/mfd/mfd_enemy","",0
+"MatchComplete","#SCORE_EVENT_COMPLETION","#SCORE_EVENT_COMPLETION","POINTVALUE_MATCH_COMPLETION","","","1","0","0","0","MATCH_COMPLETED","MEDAL","rui/medals/victory","",0
+"MatchVictory","#SCORE_EVENT_VICTORY","#SCORE_EVENT_VICTORY","POINTVALUE_MATCH_VICTORY","","","1","0","0","1","MATCH_VICTORY","MEDAL GAMEMODE","rui/medals/victory","",0
+"Mayhem","#SCORE_EVENT_MAYHEM","#SCORE_EVENT_MAYHEM","POINTVALUE_MAYHEM","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","",0
+"MegaKill","#SCORE_EVENT_MEGA_KILL","#SCORE_EVENT_MEGA_KILL","POINTVALUE_MEGAKILL","","","0","0","0","0","","CALLINGCARD MEDAL","rui/medals/kill_multiple","kc_megakill",0
+"Nemesis","#SCORE_EVENT_NEMESIS","#SCORE_EVENT_NEMESIS","POINTVALUE_NEMESIS","","","0","0","0","0","","MEDAL","rui/medals/kill","kc_retribution",0
+"NewPlayerBonus","#SCORE_EVENT_NEW_PLAYER_BONUS","#SCORE_EVENT_NEW_PLAYER_BONUS","POINTVALUE_MATCH_VICTORY","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/victory","",0
+"NPCHeadshot","#SCORE_EVENT_HEADSHOT","#SCORE_EVENT_HEADSHOT","POINTVALUE_NPC_HEADSHOT","","","0","0","0","0","","MEDAL","rui/medals/headshot","",0
+"Onslaught","#SCORE_EVENT_ONSLAUGHT","#SCORE_EVENT_ONSLAUGHT","POINTVALUE_ONSLAUGHT","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","",0
+"PilotAmmoPickup","Picked Up Ammo","Picked Up Ammo","50","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",1
+"PilotAssist","#MEDAL_ASSIST_PILOT","#MEDAL_ASSIST_PILOT","POINTVALUE_ASSIST","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/kill","",0
+"PilotBatteryApplied","#SCORE_EVENT_BATTERY_APPLY","#SCORE_EVENT_BATTERY_APPLY","50","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",1
+"PilotBatteryPickup","#SCORE_EVENT_BATTERY_PICKUP","#SCORE_EVENT_BATTERY_PICKUP","50","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",1
+"PilotBatteryStolen","#SCORE_EVENT_BATTERY_STEAL","#SCORE_EVENT_BATTERY_STEAL","50","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",1
+"QuickRevenge","#SCORE_EVENT_QUICK_REVENGE","#SCORE_EVENT_QUICK_REVENGE","POINTVALUE_REVENGE_QUICK","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","",0
+"Rampage","#SCORE_EVENT_RAMPAGE","#SCORE_EVENT_RAMPAGE","POINTVALUE_RAMPAGE","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","kc_rampage",0
+"Revenge","#SCORE_EVENT_REVENGE","#SCORE_EVENT_REVENGE","POINTVALUE_REVENGE","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","",0
+"RodeoEnemyTitan","#SCORE_EVENT_RODEOED_ENEMY_TITAN","#SCORE_EVENT_RODEOED_ENEMY_TITAN","POINTVALUE_RODEOD","","","0","0","0","0","","MEDAL","rui/medals/medal_prototype","",0
+"RoundComplete","#SCORE_EVENT_ROUND_COMPLETION","#SCORE_EVENT_ROUND_COMPLETION","POINTVALUE_ROUND_COMPLETION","","","0","0","0","0","","MEDAL","rui/medals/victory","",0
+"RoundVictory","#SCORE_EVENT_ROUND_WIN","#SCORE_EVENT_ROUND_WIN","POINTVALUE_ROUND_WIN","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/victory","",0
+"SelfBonusKilledAll","#SCORE_EVENT_SOLO_KILLED_ALL_COMBATANTS","#SCORE_EVENT_SOLO_KILLED_ALL_COMBATANTS","POINTVALUE_FULL_TEAM_KILL_SOLO","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","",0
+"Showstopper","#SCORE_EVENT_SHOWSTOPPER","#SCORE_EVENT_SHOWSTOPPER","POINTVALUE_SHOWSTOPPER","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","kc_iced",0
+"SoleSurvivor","#SCORE_EVENT_SOLE_SURVIVOR","#SCORE_EVENT_SOLE_SURVIVOR","POINTVALUE_SOLE_SURVIVOR","","","0","0","0","0","","MEDAL","rui/medals/extract","",0
+"SpotAssist","#SCORE_EVENT_SPOT_ASSIST","#SCORE_EVENT_SPOT_ASSIST","POINTVALUE_ASSIST","","","0","0","0","0","","MEDAL","rui/medals/headshot","",0
+"TeamBonusFullEvac","#SCORE_EVENT_TEAM_BONUS_FULL_TEAM_EVAC","#SCORE_EVENT_TEAM_BONUS_FULL_TEAM_EVAC","POINTVALUE_FULL_TEAM_EVAC","","","0","0","0","0","","MEDAL","rui/medals/extract","",0
+"TeamBonusKilledAll","#SCORE_EVENT_TEAM_BONUS_KILLED_ALL_COMBATANTS","#SCORE_EVENT_TEAM_BONUS_KILLED_ALL_COMBATANTS","POINTVALUE_FULL_TEAM_KILL","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","",0
+"TitanAssist","#MEDAL_ASSIST_TITAN","#MEDAL_ASSIST_TITAN","POINTVALUE_ASSIST_TITAN","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"TitanCoreEarned","#SCORE_EVENT_CORE_EARNED","#SCORE_EVENT_CORE_EARNED","POINTVALUE_CALLED_IN_TITAN","","","0","1","0","0","TITAN_CORE_EARNED","CALLINGCARD MEDAL","rui/medals/titanfall","",0
+"Titanfall","#SCORE_EVENT_TITANFALL","#SCORE_EVENT_TITANFALL","POINTVALUE_CALLED_IN_TITAN","","","0","1","0","0","TITAN_FALL","CALLINGCARD MEDAL","rui/medals/titanfall","",0
+"TripleKill","#SCORE_EVENT_TRIPLE_KILL","#SCORE_EVENT_TRIPLE_KILL","POINTVALUE_TRIPLEKILL","","","0","0","0","0","","MEDAL","rui/medals/kill_multiple","kc_triplekill",0
+"VictoryKill","#SCORE_EVENT_VICTORY_KILL","#SCORE_EVENT_VICTORY_KILL","POINTVALUE_VICTORYKILL","BURN_METER_SMALL_POINT_VALUE","","0","0","0","0","","CALLINGCARD MEDAL GAMEMODE","rui/medals/kill","",0
+"FactionLevelUp","","","","","","1","0","0","0","FACTION_LEVELED","","","",0
+"TitanLevelUp","","","","","","1","0","0","0","TITAN_LEVELED","","","",0
+"WeaponLevelUp","","","","","","1","0","0","0","WEAPON_LEVELED","","","",0
+"FortWarAssault","#SCORE_EVENT_FW_ASSAULT","#SCORE_EVENT_FW_ASSAULT","POINTVALUE_FW_ASSAULT","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarDefense","#SCORE_EVENT_FW_DEFENSE","#SCORE_EVENT_FW_DEFENSE","POINTVALUE_FW_DEFENSE","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarPerimeterDefense","#SCORE_EVENT_FW_PERIMETER_DEFENSE","#SCORE_EVENT_FW_PERIMETER_DEFENSE","POINTVALUE_FW_PERIMETER_DEFENSE","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarSiege","#SCORE_EVENT_FW_SIEGE","#SCORE_EVENT_FW_SIEGE","POINTVALUE_FW_SIEGE","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarSnipe","#SCORE_EVENT_FW_RANGED_SUPPORT","#SCORE_EVENT_FW_RANGED_SUPPORT","POINTVALUE_FW_SNIPE","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarBaseConstruction","#SCORE_EVENT_FW_BASE_CONSTRUCTION","#SCORE_EVENT_FW_BASE_CONSTRUCTION","POINTVALUE_FW_BASE_CONSTRUCTION","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarForwardConstruction","#SCORE_EVENT_FW_FORWARD_CONSTRUCTION","#SCORE_EVENT_FW_FORWARD_CONSTRUCTION","POINTVALUE_FW_FORWARD_CONSTRUCTION","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarInvasiveConstruction","#SCORE_EVENT_FW_INVASIVE_CONSTRUCTION","#SCORE_EVENT_FW_INVASIVE_CONSTRUCTION","POINTVALUE_FW_INVASIVE_CONSTRUCTION","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarShieldConstruction","#SCORE_EVENT_FW_SHIELD_CONSTRUCTION","#SCORE_EVENT_FW_SHIELD_CONSTRUCTION","POINTVALUE_FW_SHIELD_CONSTRUCTION","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarResourceDenial","#SCORE_EVENT_FW_RESOURCE_DENIAL","#SCORE_EVENT_FW_RESOURCE_DENIAL","POINTVALUE_FW_RESOURCE_DENIAL","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarTowerDamage","#SCORE_EVENT_FW_TOWER_DAMAGE","#SCORE_EVENT_FW_TOWER_DAMAGE","POINTVALUE_FW_TOWER_DAMAGE","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarTowerDefense","#SCORE_EVENT_FW_TOWER_DEFENSE","#SCORE_EVENT_FW_TOWER_DEFENSE","POINTVALUE_FW_TOWER_DEFENSE","","DEFENSE","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarTeamTurretControlBonus_One","#SCORE_EVENT_FW_TURRET_CONTROL_ONE","#SCORE_EVENT_FW_TURRET_CONTROL_ONE","POINTVALUE_FW_TEAM_TURRET_CONTROL","","DEFENSE","0","0","0","0","","MEDAL","rui/medals/hardpoint","",0
+"FortWarTeamTurretControlBonus_Two","#SCORE_EVENT_FW_TURRET_CONTROL_TWO","#SCORE_EVENT_FW_TURRET_CONTROL_TWO","POINTVALUE_FW_TEAM_TURRET_CONTROL","","DEFENSE","0","0","0","0","","MEDAL","rui/medals/hardpoint","",0
+"FortWarTeamTurretControlBonus_Three","#SCORE_EVENT_FW_TURRET_CONTROL_THREE","#SCORE_EVENT_FW_TURRET_CONTROL_THREE","POINTVALUE_FW_TEAM_TURRET_CONTROL","","DEFENSE","0","0","0","0","","MEDAL","rui/medals/hardpoint","",0
+"FortWarTeamTurretControlBonus_Four","#SCORE_EVENT_FW_TURRET_CONTROL_FOUR","#SCORE_EVENT_FW_TURRET_CONTROL_FOUR","POINTVALUE_FW_TEAM_TURRET_CONTROL","","DEFENSE","0","0","0","0","","MEDAL","rui/medals/hardpoint","",0
+"FortWarTeamTurretControlBonus_Five","#SCORE_EVENT_FW_TURRET_CONTROL_FIVE","#SCORE_EVENT_FW_TURRET_CONTROL_FIVE","POINTVALUE_FW_TEAM_TURRET_CONTROL","","DEFENSE","0","0","0","0","","MEDAL","rui/medals/hardpoint","",0
+"FortWarTeamTurretControlBonus_Six","#SCORE_EVENT_FW_TURRET_CONTROL_SIX","#SCORE_EVENT_FW_TURRET_CONTROL_SIX","POINTVALUE_FW_TEAM_TURRET_CONTROL","","DEFENSE","0","0","0","0","","MEDAL","rui/medals/hardpoint","",0
+"FortWarSecuringGatheredResources","#SCORE_EVENT_FW_SECURING_RESOURCES","#SCORE_EVENT_FW_SECURING_RESOURCES","POINTVALUE_FW_SECURING_RESOURCES","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"FortWarShieldDestroyed","#SCORE_EVENT_FW_DESTROYED_TURRET_SHIELD","#SCORE_EVENT_FW_DESTROYED_TURRET_SHIELD","POINTVALUE_FW_DESTROY_TURRET_SHIELD","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/hardpoint","",0
+"HuntedEliminatePilot","#SCORE_EVENT_HUNTED_HUNTER_KILLED","#SCORE_EVENT_HUNTED_HUNTER_KILLED","POINTVALUE_HUNTED_ELIMINATE_HUNTER","","DEFENSE","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"HuntedEliminateGrunt","#SCORE_EVENT_HUNTED_GRUNT_KILLED","#SCORE_EVENT_HUNTED_GRUNT_KILLED","POINTVALUE_HUNTED_ELIMINATE_GRUNT","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"HuntedEliminateSquad","#SCORE_EVENT_HUNTED_SQUAD_KILLED","#SCORE_EVENT_HUNTED_SQUAD_KILLED","POINTVALUE_HUNTED_ELIMINATE_SQUAD","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_multiple","",0
+"HuntedAquireAsset","#SCORE_EVENT_HUNTED_AQUIRE_ASSET","#SCORE_EVENT_HUNTED_AQUIRE_ASSET","POINTVALUE_HUNTED_AQUIRE_ASSET","","DEFENSE","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"HuntedSecureAsset","#SCORE_EVENT_HUNTED_AQUIRE_SECURED","#SCORE_EVENT_HUNTED_AQUIRE_SECURED","POINTVALUE_HUNTED_SECURE_ASSET","","DEFENSE","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"HuntedExtractAsset","#SCORE_EVENT_HUNTED_AQUIRE_EXTRACTED","#SCORE_EVENT_HUNTED_AQUIRE_EXTRACTED","POINTVALUE_HUNTED_EXTRACT_ASSET","","DEFENSE","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"HuntedSurvival","#SCORE_EVENT_HUNTED_OBJECTIVE_SURVIVAL","#SCORE_EVENT_HUNTED_OBJECTIVE_SURVIVAL","POINTVALUE_HUNTED_OBJECTIVE_SURVIVAL","","DEFENSE","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"HuntedMissionSurvival","#SCORE_EVENT_HUNTED_MISSION_SURVIVAL","#SCORE_EVENT_HUNTED_MISSION_SURVIVAL","POINTVALUE_HUNTED_MISSION_SURVIVAL","","DEFENSE","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"MFDMarked","#SCORE_EVENT_MARKED_FOR_DEATH_TARGET","#SCORE_EVENT_MARKED_FOR_DEATH_TARGET","POINTVALUE_MARKED_TARGET","","","0","1","0","0","","CALLINGCARD MEDAL","rui/medals/titanfall","",0
+"BombPlantRaid","#SCORE_EVENT_BOMB_PLANT_POINTS","#SCORE_EVENT_BOMB_PLANT_POINTS","GAMEMODE_RAID_SCORE_PLANT","","ASSAULT","0","0","0","0","","MEDAL GAMEMODE","rui/medals/bomb","",0
+"ATCOOPAirDroneKilled","#SCORE_EVENT_AT_AIR_DRONE_KILLED","#SCORE_EVENT_AT_AIR_DRONE_KILLED","ATCOOP_SCORE_AIR_DRONE","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"ATCOOPBossKilled","#SCORE_EVENT_AT_BOSS_KILLED","#SCORE_EVENT_AT_BOSS_KILLED","ATCOOP_SCORE_BOSS","","ASSAULT","0","0","0","0","","CALLINGCARD MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"ATCOOPBountySurvived","#SCORE_EVENT_AT_BOUNTY_SURVIVED","#SCORE_EVENT_AT_BOUNTY_SURVIVED","ATCOOP_SCORE_BOUNTY_SURVIVAL","","","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/victory","",0
+"ATCOOPGruntKilled","#SCORE_EVENT_AT_GRUNT_KILLED","#SCORE_EVENT_AT_GRUNT_KILLED","ATCOOP_SCORE_GRUNT","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"ATCOOPMegaTurretKilled","#SCORE_EVENT_AT_MEGA_TURRET_KILLED","#SCORE_EVENT_AT_MEGA_TURRET_KILLED","ATCOOP_SCORE_MEGATURRET","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"ATCOOPSentryTurretKilled","#SCORE_EVENT_AT_SENTRY_TURRET_KILLED","#SCORE_EVENT_AT_SENTRY_TURRET_KILLED","ATCOOP_SCORE_SENTRYTURRET","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"ATCOOPPilotKilled","#SCORE_EVENT_AT_PILOT_KILLED","#SCORE_EVENT_AT_PILOT_KILLED","ATCOOP_SCORE_PILOT","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"ATCOOPProwlerKilled","#SCORE_EVENT_AT_PROWLER_KILLED","#SCORE_EVENT_AT_PROWLER_KILLED","ATCOOP_SCORE_PROWLER","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"ATCOOPSpectreKilled","#SCORE_EVENT_AT_SPECTRE_KILLED","#SCORE_EVENT_AT_SPECTRE_KILLED","ATCOOP_SCORE_SPECTRE","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"ATCOOPStalkerKilled","#SCORE_EVENT_AT_STALKER_KILLED","#SCORE_EVENT_AT_STALKER_KILLED","ATCOOP_SCORE_STALKER","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"ATCOOPSuperSpectreKilled","#SCORE_EVENT_AT_SUPER_SPECTRE_KILLED","#SCORE_EVENT_AT_SUPER_SPECTRE_KILLED","ATCOOP_SCORE_SUPER_SPECTRE","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"ATCOOPTitanDoomed","#SCORE_EVENT_AT_TITAN_DOOMED","#SCORE_EVENT_AT_TITAN_DOOMED","ATCOOP_SCORE_TITAN","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"ATCOOPTitanKilled","#SCORE_EVENT_AT_TITAN_DOOMED","#SCORE_EVENT_AT_TITAN_DOOMED","ATCOOP_SCORE_TITAN","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"ATCOOPCashedBonus","#SCORE_EVENT_AT_CASHED_BONUS","#SCORE_EVENT_AT_CASHED_BONUS","ATCOOP_SCORE_BONUS","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"ATCOOPBonusStolen","#SCORE_EVENT_AT_BONUS_STOLEN","#SCORE_EVENT_AT_BONUS_STOLEN","ATCOOP_SCORE_BONUS_STOLEN","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXAirDroneKilled","#SCORE_EVENT_AT_AIR_DRONE_KILLED","#SCORE_EVENT_AT_AIR_DRONE_KILLED","PVE_SANDBOX_SCORE_AIR_DRONE","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXBossKilled","#SCORE_EVENT_AT_BOSS_KILLED","#SCORE_EVENT_AT_BOSS_KILLED","PVE_SANDBOX_SCORE_BOSS","","ASSAULT","0","0","0","0","","CALLINGCARD MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXBountySurvived","#SCORE_EVENT_AT_BOUNTY_SURVIVED","#SCORE_EVENT_AT_BOUNTY_SURVIVED","PVE_SANDBOX_SCORE_BOUNTY_SURVIVAL","","","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/victory","",0
+"PVESANDBOXGruntKilled","#SCORE_EVENT_AT_GRUNT_KILLED","#SCORE_EVENT_AT_GRUNT_KILLED","PVE_SANDBOX_SCORE_GRUNT","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"PVESANDBOXMegaTurretKilled","#SCORE_EVENT_AT_MEGA_TURRET_KILLED","#SCORE_EVENT_AT_MEGA_TURRET_KILLED","PVE_SANDBOX_SCORE_MEGATURRET","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXSentryTurretKilled","#SCORE_EVENT_AT_SENTRY_TURRET_KILLED","#SCORE_EVENT_AT_SENTRY_TURRET_KILLED","PVE_SANDBOX_SCORE_SENTRYTURRET","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXPilotKilled","#SCORE_EVENT_AT_PILOT_KILLED","#SCORE_EVENT_AT_PILOT_KILLED","PVE_SANDBOX_SCORE_PILOT","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"PVESANDBOXProwlerKilled","#SCORE_EVENT_AT_PROWLER_KILLED","#SCORE_EVENT_AT_PROWLER_KILLED","PVE_SANDBOX_SCORE_PROWLER","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"PVESANDBOXSpectreKilled","#SCORE_EVENT_AT_SPECTRE_KILLED","#SCORE_EVENT_AT_SPECTRE_KILLED","PVE_SANDBOX_SCORE_SPECTRE","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXStalkerKilled","#SCORE_EVENT_AT_STALKER_KILLED","#SCORE_EVENT_AT_STALKER_KILLED","PVE_SANDBOX_SCORE_STALKER","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXSuperSpectreKilled","#SCORE_EVENT_AT_SUPER_SPECTRE_KILLED","#SCORE_EVENT_AT_SUPER_SPECTRE_KILLED","PVE_SANDBOX_SCORE_SUPER_SPECTRE","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXTitanDoomed","#SCORE_EVENT_AT_TITAN_DOOMED","#SCORE_EVENT_AT_TITAN_DOOMED","PVE_SANDBOX_SCORE_TITAN","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXTitanKilled","#SCORE_EVENT_AT_TITAN_DOOMED","#SCORE_EVENT_AT_TITAN_DOOMED","PVE_SANDBOX_SCORE_TITAN","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"PVESANDBOXCashedBonus","#SCORE_EVENT_AT_CASHED_BONUS","#SCORE_EVENT_AT_CASHED_BONUS","PVE_SANDBOX_SCORE_BONUS","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"PVESANDBOXBonusStolen","#SCORE_EVENT_AT_BONUS_STOLEN","#SCORE_EVENT_AT_BONUS_STOLEN","PVE_SANDBOX_SCORE_BONUS_STOLEN","","ASSAULT","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"FDAirDroneKilled","#SCORE_EVENT_AT_AIR_DRONE_KILLED","#SCORE_EVENT_AT_AIR_DRONE_KILLED","FD_SCORE_AIR_DRONE","","","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"FDGruntKilled","#SCORE_EVENT_AT_GRUNT_KILLED","#SCORE_EVENT_AT_GRUNT_KILLED","FD_SCORE_GRUNT","","","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill","",0
+"FDSpectreKilled","#SCORE_EVENT_AT_SPECTRE_KILLED","#SCORE_EVENT_AT_SPECTRE_KILLED","FD_SCORE_SPECTRE","","","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"FDStalkerKilled","#SCORE_EVENT_AT_STALKER_KILLED","#SCORE_EVENT_AT_STALKER_KILLED","FD_SCORE_STALKER","","","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"FDSuperSpectreKilled","#SCORE_EVENT_AT_SUPER_SPECTRE_KILLED","#SCORE_EVENT_AT_SUPER_SPECTRE_KILLED","FD_SCORE_SUPER_SPECTRE","","","0","0","0","0","","ATTRITION MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"FDTitanKilled","#SCORE_EVENT_AT_TITAN_DOOMED","#SCORE_EVENT_AT_TITAN_DOOMED","FD_SCORE_TITAN","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"FDEnemiesKilled","#SCORE_EVENT_FD_ENEMIES_KILLED","#SCORE_EVENT_FD_ENEMIES_KILLED","FD_SCORE_ENEMIES","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/kill","",0
+"FDWaveMVP","#SCORE_EVENT_FD_WAVE_MVP","#SCORE_EVENT_FD_WAVE_MVP","FD_SCORE_MVP","","","0","0","0","0","","MEDAL_FORCED GAMEMODE CALLINGCARD","rui/medals/mvp","",0
+"FDTeamFinalWave","#SCORE_EVENT_FD_TEAM_FINAL_WAVE","#SCORE_EVENT_FD_TEAM_FINAL_WAVE","FD_SCORE_TEAM_FINAL_WAVE","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"FDTeamWave","#SCORE_EVENT_FD_TEAM_WAVE","#SCORE_EVENT_FD_TEAM_WAVE","FD_SCORE_TEAM_WAVE","","","0","0","0","0","","MEDAL_FORCED GAMEMODE","rui/medals/harvester_protect","",0
+"FDTeamFlawlessWave","#SCORE_EVENT_FD_TEAM_FLAWLESS_WAVE","#SCORE_EVENT_FD_TEAM_FLAWLESS_WAVE","FD_SCORE_TEAM_FLAWLESS_WAVE","","","0","0","0","0","","MEDAL_FORCED GAMEMODE","rui/medals/shielded_harvester","",0
+"PasTitanHunter","#GEAR_AT_HUNTER_KIT","#GEAR_AT_HUNTER_KIT","","","","0","0","0","0","KILL","MEDAL","rui/medals/kill_robot","",0
+"Execution","#SCORE_EVENT_EXECUTION","#SCORE_EVENT_EXECUTION","0","BURN_METER_LARGE_POINT_VALUE","","0","0","0","0","","MEDAL","rui/medals/kill","",0
+"FDRepairTurret","#SCORE_EVENT_REPAIR_TURRET","#SCORE_EVENT_REPAIR_TURRET","FD_SCORE_REPAIR_TURRET","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"FDDidntDie","#SCORE_EVENT_DIDNT_DIE","#SCORE_EVENT_DIDNT_DIE","FD_SCORE_DIDNT_DIE","","","0","0","0","0","","MEDAL_FORCED GAMEMODE","rui/medals/heal","",0
+"FDShieldHarvester","#SCORE_EVENT_FD_SHIELD_HARVESTER","#SCORE_EVENT_FD_SHIELD_HARVESTER","FD_SCORE_SHIELD_HARVESTER","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/shielded_harvester","",0
+"FDSonarPulse","#SCORE_EVENT_FD_SONAR_PULSE","#SCORE_EVENT_FD_SONAR_PULSE","FD_SCORE_SONAR_PULSE","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"FDArcTrapTriggered","#SCORE_EVENT_FD_ARC_TRAP_TRIGGERED","#SCORE_EVENT_FD_ARC_TRAP_TRIGGERED","FD_SCORE_ARC_TRAP_TRIGGERED","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"FDTetherTriggered","#SCORE_EVENT_FD_TETHER_TRAP_TRIGGERED","#SCORE_EVENT_FD_TETHER_TRAP_TRIGGERED","FD_SCORE_TETHER_TRAP_TRIGGERED","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/kill_robot","",0
+"FDArcWave","#SCORE_EVENT_FD_ARC_WAVE","#SCORE_EVENT_FD_ARC_WAVE","FD_SCORE_ARC_WAVE","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/medal_prototype","",0
+"FDTeamHeal","#SCORE_EVENT_FD_TEAM_HEAL","#SCORE_EVENT_FD_TEAM_HEAL","FD_SCORE_TEAM_HEAL","","","0","0","0","0","","MEDAL GAMEMODE","rui/medals/heal","",0
+"FDDamageBonus","#SCORE_EVENT_FD_DAMAGE_BONUS","#SCORE_EVENT_FD_DAMAGE_BONUS","FD_SCORE_DAMAGE_BONUS","","","0","0","0","0","","MEDAL_FORCED GAMEMODE SHOW_SCORE","rui/medals/medal_prototype","",0
+"FDHealingBonus","#SCORE_EVENT_FD_HEALING_BONUS","#SCORE_EVENT_FD_HEALING_BONUS","FD_SCORE_HEALING_BONUS","","","0","0","0","0","","MEDAL_FORCED GAMEMODE SHOW_SCORE","rui/medals/heal","",0
+"FDSupportBonus","#SCORE_EVENT_FD_SUPPORT_BONUS","#SCORE_EVENT_FD_SUPPORT_BONUS","FD_SCORE_SUPPORT_BONUS","","","0","0","0","0","","MEDAL_FORCED GAMEMODE SHOW_SCORE","rui/medals/kill_robot","",0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/sp_levels.csv b/Northstar.CustomServers/mod/scripts/datatable/sp_levels.csv
new file mode 100644
index 00000000..f373d4ed
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/sp_levels.csv
@@ -0,0 +1,17 @@
+levelNum,level,startPoint,levelId,mainEntry,showLions,title,desc,missionSelectImage
+0,"sp_training","Pod Intro","sp_training",1,1,"#SP_TRAINING_CAMPAIGN_NAME","#SP_TRAINING_CAMPAIGN_DESC_MILITIA","rui/menu/level_select/level_image1"
+0,"sp_training","Gauntlet Mode","training_gauntlet_mode",0,1,"","",""
+1,"sp_crashsite","LevelStart","sp_crashsite",1,1,"#SP_CRASHSITE_CAMPAIGN_NAME","#SP_CRASHSITE_CAMPAIGN_DESC_MILITIA","rui/menu/level_select/level_image2"
+2,"sp_sewers1","Channel Mortar Run","sp_sewers1",1,1,"#SP_SEWERS1_CAMPAIGN_NAME","#SP_SEWERS1_CAMPAIGN_DESC_MILITIA","rui/menu/level_select/level_image3"
+3,"sp_boomtown_start","Intro","sp_boomtown_start",1,1,"#SP_BOOMTOWN_START_CAMPAIGN_NAME","#SP_BOOMTOWN_START_CAMPAIGN_DESC_MILITIA","rui/menu/level_select/level_image4"
+3,"sp_boomtown","Start","sp_boomtown",0,1,"","",""
+3,"sp_boomtown_end","Intro Caves","sp_boomtown_end",0,1,"","",""
+4,"sp_hub_timeshift","LECTURE HALLS","sp_hub_timeshift",1,0,"#SP_HUB_TIMESHIFT_CAMPAIGN_NAME","#SP_HUB_TIMESHIFT_CAMPAIGN_DESC_MILITIA","rui/menu/level_select/level_image5"
+4,"sp_timeshift_spoke02","Timeshift Device","sp_timeshift_spoke02",0,1,"","",""
+4,"sp_hub_timeshift","PRISTINE CAMPUS","timeshift_pt3",0,1,"","",""
+5,"sp_beacon","Level Start","sp_beacon",1,0,"#SP_BEACON_CAMPAIGN_NAME","#SP_BEACON_CAMPAIGN_DESC_MILITIA","rui/menu/level_select/level_image6"
+5,"sp_beacon_spoke0","Level Start","sp_beacon_spoke0",0,1,"","",""
+5,"sp_beacon","Spoke_0_Complete","beacon_pt3",0,1,"","",""
+6,"sp_tday","Intro","sp_tday",1,1,"#SP_TDAY_CAMPAIGN_NAME","#SP_TDAY_CAMPAIGN_DESC_MILITIA","rui/menu/level_select/level_image7"
+7,"sp_s2s","Level Start","sp_s2s",1,1,"#SP_S2S_CAMPAIGN_NAME","#SP_S2S_CAMPAIGN_DESC_MILITIA","rui/menu/level_select/level_image8"
+8,"sp_skyway_v1","Level Start","sp_skyway_v1",1,1,"#SP_SKYWAY_V1_CAMPAIGN_NAME","#SP_SKYWAY_V1_CAMPAIGN_DESC_MILITIA","rui/menu/level_select/level_image9" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/spectre_chatter_mp.csv b/Northstar.CustomServers/mod/scripts/datatable/spectre_chatter_mp.csv
new file mode 100644
index 00000000..4194a938
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/spectre_chatter_mp.csv
@@ -0,0 +1,8 @@
+conversationname,priority,debounce
+"diag_imc_spectre_gs_spotclosetitancall_01",200,20.000000
+"diag_imc_spectre_gs_engagepilotenemy_01_1",200,20.000000
+"diag_imc_spectre_gs_grenadeout_01_1",200,20.000000
+"diag_imc_spectre_gs_killenemypilot_01_1",200,20.000000
+"diag_imc_spectre_gs_gruntkillstitan_02_1",200,20.000000
+"diag_imc_spectre_gs_squaddeplete_01_1",200,20.000000
+"diag_imc_spectre_gs_allygrundown_05_1",200,20.000000 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/spotlight_images.csv b/Northstar.CustomServers/mod/scripts/datatable/spotlight_images.csv
new file mode 100644
index 00000000..1e6946c1
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/spotlight_images.csv
@@ -0,0 +1,30 @@
+image
+"rui/menu/main_menu/spotlight_01"
+"rui/menu/main_menu/spotlight_02"
+"rui/menu/main_menu/spotlight_03"
+"rui/menu/main_menu/spotlight_04"
+"rui/menu/main_menu/spotlight_05"
+"rui/menu/main_menu/spotlight_06"
+"rui/menu/main_menu/spotlight_07"
+"rui/menu/main_menu/spotlight_08"
+"rui/menu/main_menu/spotlight_09"
+"rui/menu/main_menu/spotlight_10"
+"rui/menu/main_menu/spotlight_11"
+"rui/menu/main_menu/spotlight_12"
+"rui/menu/main_menu/spotlight_13"
+"rui/menu/main_menu/spotlight_14"
+"rui/menu/main_menu/spotlight_15"
+"rui/menu/main_menu/spotlight_16"
+"rui/menu/main_menu/spotlight_17"
+"rui/menu/main_menu/spotlight_18"
+"rui/menu/main_menu/spotlight_19"
+"rui/menu/main_menu/spotlight_20"
+"rui/menu/main_menu/spotlight_21"
+"rui/menu/main_menu/spotlight_22"
+"rui/menu/main_menu/spotlight_23"
+"rui/menu/main_menu/spotlight_24"
+"rui/menu/main_menu/spotlight_25"
+"rui/menu/main_menu/spotlight_26"
+"rui/menu/main_menu/spotlight_27"
+"rui/menu/main_menu/spotlight_28"
+"rui/menu/main_menu/spotlight_29" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/startpoints.csv b/Northstar.CustomServers/mod/scripts/datatable/startpoints.csv
new file mode 100644
index 00000000..a171cd8a
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/startpoints.csv
@@ -0,0 +1,313 @@
+level,startpoint,loadScreenIndex,hasDetente,spLog,spLogTitle,isLeft
+"sp_grunt_arena","Pilot vs 3 Grunts (Trial)",0,0,"","",0
+"sp_grunt_arena","Pilot and Leeched Spectre vs Grunts (Trial)",0,0,"","",0
+"sp_grunt_arena","Pilot vs Spectre (Trial)",0,0,"","",0
+"sp_grunt_arena","Arc Grenades vs Spectres and Grunts (Trial)",0,0,"","",0
+"sp_grunt_arena","Learn to use Shield Drone (Trial)",0,0,"","",0
+"sp_grunt_arena","Pilot vs Grunts (Small Arena)",0,0,"","",0
+"sp_grunt_arena","Pilot vs Grunts (Big Arena)",0,0,"","",0
+"sp_grunt_arena","Shield Drone vs Turrets (Trial)",0,0,"","",0
+"sp_grunt_arena","Pilot vs Captains (Trial)",0,0,"","",0
+"sp_grunt_arena","Use Turrets vs AI (Trial)",0,0,"","",0
+"sp_grunt_arena","Turret Maze Part 1 (Trial)",0,0,"","",0
+"sp_grunt_arena","Turret Maze Part 2 (Trial)",0,0,"","",0
+"sp_grunt_arena","Learn to use Suicide Spectres (Trial)",0,0,"","",0
+"sp_grunt_arena","Pilot vs Mixed AI (Big Arena)",0,0,"","",0
+"sp_grunt_arena","Pilot and Titan vs Many AI (Big Arena)",0,0,"","",0
+"sp_grunt_arena","Titan Wingman Arena (Big Arena)",0,0,"","",0
+"sp_grunt_arena","Titan vs Many AI (Big Arena)",0,0,"","",0
+"sp_grunt_arena","Pilot vs Super Spectre (Big Arena)",0,0,"","",0
+"sp_grunt_arena","Pilot vs Super Spectres (Small Arena)",0,0,"","",0
+"sp_grunt_arena","Titan vs Super Spectres (Big Arena)",0,0,"","",0
+"sp_grunt_arena","Pilot vs Spectres (Big Arena)",0,0,"","",0
+"sp_grunt_arena","Pilot vs Stalker progressive (Big Arena)",0,0,"","",0
+"sp_grunt_arena","The End!",0,0,"","",0
+"sp_ab_gym","gym_windmills",0,0,"","",0
+"sp_ab_gym","gym_bongo_board",0,0,"","",0
+"sp_ab_testfire2","room1",0,0,"","",0
+"sp_ab_testfire2","room2",0,0,"","",0
+"sp_ola_hub","topside",0,0,"","",0
+"sp_ola_hub","hub_intro",0,0,"","",0
+"sp_ola_hub","engine1_connect",0,0,"","",0
+"sp_ola_spoke1","sp_ola_spoke1",0,0,"","",0
+"sp_ola_spoke1","ola_spoke1_cleanroom",0,0,"","",0
+"sp_ola_spoke1","ola_spoke1_powerrod_factory",0,0,"","",0
+"sp_ola_spoke1","ola_spoke1_canyon",0,0,"","",0
+"sp_ola_sewers","ola_sewers_drain",0,0,"","",0
+"sp_ola_sewers","ola_sewers_sludge_test1",0,0,"","",0
+"sp_ola_sewers","ola_sewers_sludge_test2",0,0,"","",0
+"sp_ola_sewers","ola_sewers_sludge_test3",0,0,"","",0
+"sp_ola_sewers","ola_sewers_sludge_test4",0,0,"","",0
+"sp_ola_sewers","ola_sewers_sludge_bt_test1",0,0,"","",0
+"sp_ola_canyon_test","ola_canyontest1",0,0,"","",0
+"sp_ola_canyon_test","ola_canyontest2",0,0,"","",0
+"sp_ola_canyon_test","ola_canyontest3",0,0,"","",0
+"sp_ola_canyon_test","ola_canyontest4",0,0,"","",0
+"sp_ola_canyon_test","dish_array",0,0,"","",0
+"sp_ola_canyon_test","ledge_run",0,0,"","",0
+"sp_ab_canyon_prowler","prowler_canyon_1",0,0,"","",0
+"sp_ab_canyon_prowler","prowler_canyon_2",0,0,"","",0
+"sp_ab_canyon_prowler","prowler_canyon_3",0,0,"","",0
+"sp_hub_timeshift","LECTURE HALLS",0,1,"SP_MISSION_LOG_TIMESHIFT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_hub_timeshift","OVERGROWN CAMPUS",1,0,"SP_MISSION_LOG_TIMESHIFT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_hub_timeshift","Corpse Search",1,0,"SP_MISSION_LOG_TIMESHIFT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_hub_timeshift","BT EXPLAINS IT ALL",1,0,"SP_MISSION_LOG_TIMESHIFT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_hub_timeshift","Zipline",1,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",1
+"sp_hub_timeshift","Security",1,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",1
+"sp_hub_timeshift","Skybridge",1,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",1
+"sp_hub_timeshift","PRISTINE CAMPUS",2,1,"SP_MISSION_LOG_TIMESHIFT_SPLOG1","MENU_SP_LOG_TITLE_TIMESHIFT2",1
+"sp_hub_timeshift","Hub Fight",2,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG1","MENU_SP_LOG_TITLE_TIMESHIFT2",1
+"sp_hub_timeshift","Extended Bridge",2,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG1","MENU_SP_LOG_TITLE_TIMESHIFT2",1
+"sp_hub_timeshift","REACTOR MELTDOWN",2,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG1","MENU_SP_LOG_TITLE_TIMESHIFT2",1
+"sp_hub_timeshift","Core Scan",2,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG1","MENU_SP_LOG_TITLE_TIMESHIFT2",1
+"sp_hub_timeshift","Level End",2,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG1","MENU_SP_LOG_TITLE_TIMESHIFT2",1
+"sp_timeshift_spoke02","Timeshift Device",1,1,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",1
+"sp_timeshift_spoke02","WILDLIFE RESEARCH",1,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",1
+"sp_timeshift_spoke02","First Timeshift Fight",1,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",1
+"sp_timeshift_spoke02","Elevator Fight",1,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",1
+"sp_timeshift_spoke02","HUMAN RESEARCH",2,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",1
+"sp_timeshift_spoke02","Sphere Room",2,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",1
+"sp_timeshift_spoke02","Human Room",3,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",0
+"sp_timeshift_spoke02","CAMPUS RETURN",3,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",0
+"sp_timeshift_spoke02","Fan Drop",3,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",0
+"sp_timeshift_spoke02","Fan Drop End",3,0,"SP_MISSION_LOG_TIMESHIFT_SPLOG0","MENU_SP_LOG_TITLE_TIMESHIFT1",0
+"sp_beacon","Level Start",1,1,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",0
+"sp_beacon","Control Room",1,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Spoke_0_Complete",2,1,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Power Relays Online",1,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Fastball to Spoke 1",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Spoke 1 Start",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Spoke 1 First Combat",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Spoke 1 Second Combat",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Spoke 1 Pillar Room",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Double Crane Puzzle",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Second Beacon",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Spoke 1 Arena",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Wallrun Panels",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Back at HUB",3,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Climb Dish",1,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon","Final Battle",4,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",0
+"sp_beacon","Send Signal",4,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",0
+"sp_beacon","Beacon Ending",4,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",0
+"sp_beacon_spoke0","Level Start",0,1,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon_spoke0","First Fight",1,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon_spoke0","Get Arc Tool",1,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon_spoke0","Got Arc Tool",2,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",0
+"sp_beacon_spoke0","Horizontal Fan",2,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",0
+"sp_beacon_spoke0","Horizontal Fan Complete",2,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",0
+"sp_beacon_spoke0","Fan Wallrun",2,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",0
+"sp_beacon_spoke2","Level Start",0,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon_spoke2","Fastball",0,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_beacon_spoke2","Loading Dock",0,0,"#SP_MISSION_LOG_BEACON","MENU_SP_OBJECTIVES_TITLE",1
+"sp_boomtown_ride","1 - Level Start",0,0,"","",0
+"sp_boomtown_ride","2 - Assembly Line",0,0,"","",0
+"sp_boomtown_ride","3 - First Fight",0,0,"","",0
+"sp_boomtown_ride","4 - First Ride",0,0,"","",0
+"sp_boomtown_ride","5 - Second Ride",0,0,"","",0
+"sp_ab_moving_geo_combat_1","1 - Moving Cover",0,0,"","",0
+"sp_ab_moving_geo_combat_1","2 - Moving Cover with High Ceiling",0,0,"","",0
+"sp_ab_moving_geo_combat_1","3 - Rotating Cover (CQC)",0,0,"","",0
+"sp_ab_moving_geo_combat_1","4 - Rotating Cover - Only Grunts",0,0,"","",0
+"sp_ab_moving_geo_combat_1","5 - Rotating Cover - Stationary Reaper",0,0,"","",0
+"sp_ab_moving_geo_combat_1","6 - Rotating Cover - Mobile Reaper",0,0,"","",0
+"sp_ab_moving_geo_combat_1","7 - Building Assembly Battle",0,0,"","",0
+"sp_training","Pod Intro",1,1,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Basic Movement",1,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Zen Garden",1,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Firing Range",1,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Gauntlet",1,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Gauntlet Challenge",1,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Titanfall",1,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Pod Outro",1,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Meet OG",1,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Gauntlet Mode",1,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_FIRSTRUN",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_WIP",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_01",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_02",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_03",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_04",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_05",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_06",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_07",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_08",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","DEV_GHOSTREC_GAUNTLET_CHAL_09",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Pod Intro DEV",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_training","Pod Outro DEV",0,0,"#SP_MISSION_LOG_TRAINING","MENU_SP_OBJECTIVES_TITLE",0
+"sp_wild","1 - Spoke 1: Escape Pod",0,0,"","",0
+"sp_wild","2 - Spoke 1: Basic Movement",0,0,"","",0
+"sp_wild","placeholder 3 - Spoke 1: Spectre Forest",0,0,"","",0
+"sp_wild","placeholder 4 - Spoke 1: Friend or Foe?",0,0,"","",0
+"sp_wild","placeholder 5 - Spoke 1: Grand Reveal",0,0,"","",0
+"sp_wild","placeholder 6 - Spoke 1: Checkpoint Zulu",0,0,"","",0
+"sp_wild","placeholder 7 - Spoke 1: Pistol Puzzle",0,0,"","",0
+"sp_wild","placeholder 8 - Spoke 1: Intruder",0,0,"","",0
+"sp_wild","placeholder 9 - HUB p-1: Gravity",0,0,"","",0
+"sp_wild","placeholder 10 - HUB p-1: Flirtation",0,0,"","",0
+"sp_wild","placeholder 11 - HUB p-1: Chase",0,0,"","",0
+"sp_wild","placeholder 12 - Spoke 2: Gorilla in the Mist",0,0,"","",0
+"sp_wild","13 - Spoke 2: Upgrades",0,0,"","",0
+"sp_wild","placeholder 14 - Spoke 2: A whole new world",0,0,"","",0
+"sp_wild","placeholder 15 - HUB p-2: Making Friends",0,0,"","",0
+"sp_wild","placeholder 16 - HUB p-2: Influencing People",0,0,"","",0
+"sp_wild","placeholder 17 - Spoke 3: Survivors",0,0,"","",0
+"sp_wild","placeholder 18 - Spoke 3: Prisoners",0,0,"","",0
+"sp_wild","placeholder 19 - HUB p-3: Snatch and Grab",0,0,"","",0
+"sp_wild","placeholder 20 - HUB p-3: Hero to Zero",0,0,"","",0
+"sp_wild","placeholder 21 - Spoke 4: Outpost Cherokee",0,0,"","",0
+"sp_wild","placeholder 22 - Spoke 4: Grenades",0,0,"","",0
+"sp_wild","placeholder 23 - Spoke 4: QRF",0,0,"","",0
+"sp_wild","placeholder 24 - Spoke 4: Those Eyes",0,0,"","",0
+"sp_wild","placeholder 25 - Spoke 5: Tree of Life",0,0,"","",0
+"sp_wild","26 - Spoke 5: Gift From the Gods",0,0,"","",0
+"sp_wild","placeholder 27 - HUB p-4: Energizer",0,0,"","",0
+"sp_wild","placeholder 28 - HUB p-4: One Man Army",0,0,"","",0
+"sp_wild","placeholder 29 - Spoke 5: p-2: Sleeping Beauty",0,0,"","",0
+"sp_wild","placeholder 30 - Spoke 5: p-2: Prowler Den",0,0,"","",0
+"sp_wild","placeholder 31 - Spoke 5: p-2: Common Ground",0,0,"","",0
+"sp_wild","placeholder 32 - Spoke 5: p-2: Dharma Hatch",0,0,"","",0
+"sp_crashsite","LevelStart",1,1,"SP_MISSION_LOG_WILDS_SPLOG0","MENU_SP_LOG_TITLE_WILDS",1
+"sp_crashsite","BT_Intro",1,0,"SP_MISSION_LOG_WILDS_SPLOG0","MENU_SP_LOG_TITLE_WILDS",1
+"sp_crashsite","Blisk_Intro",1,0,"SP_MISSION_LOG_WILDS_SPLOG0","MENU_SP_LOG_TITLE_WILDS",1
+"sp_crashsite","FamilyPhoto",1,0,"SP_MISSION_LOG_WILDS_SPLOG0","MENU_SP_LOG_TITLE_WILDS",1
+"sp_crashsite","Waking_Up",2,0,"SP_MISSION_LOG_WILDS_SPLOG0","MENU_SP_LOG_TITLE_WILDS",1
+"sp_crashsite","Field_Promotion",2,0,"SP_MISSION_LOG_WILDS_SPLOG0","MENU_SP_LOG_TITLE_WILDS",1
+"sp_crashsite","Grave",2,0,"SP_MISSION_LOG_WILDS_ALT","MENU_SP_OBJECTIVES_TITLE",0
+"sp_crashsite","Battery2_Path",2,0,"SP_MISSION_LOG_WILDS_ALT","MENU_SP_OBJECTIVES_TITLE",0
+"sp_crashsite","Battery2_Combat",2,0,"SP_MISSION_LOG_WILDS_ALT","MENU_SP_OBJECTIVES_TITLE",0
+"sp_crashsite","Battery2_Ship",2,0,"SP_MISSION_LOG_WILDS_ALT","MENU_SP_OBJECTIVES_TITLE",0
+"sp_crashsite","Battery3_Path",2,0,"SP_MISSION_LOG_WILDS_ALT","MENU_SP_OBJECTIVES_TITLE",0
+"sp_crashsite","Battery3_Combat",2,0,"SP_MISSION_LOG_WILDS_ALT","MENU_SP_OBJECTIVES_TITLE",0
+"sp_crashsite","Battery3_Ship",2,0,"SP_MISSION_LOG_WILDS_ALT","MENU_SP_OBJECTIVES_TITLE",0
+"sp_crashsite","PilotLink",2,0,"SP_MISSION_LOG_WILDS_ALT","MENU_SP_OBJECTIVES_TITLE",0
+"sp_ship_01","S2S_GOBLIN",0,0,"","",0
+"sp_ship_01","Goblin Deploy",0,0,"","",0
+"sp_ship_01","Goblin Deploy Zip",0,0,"","",0
+"sp_ship_01","S2S_FASTBALL",0,0,"","",0
+"sp_ship_01","S2S_REDEYE",0,0,"","",0
+"sp_ship_01","S2S_SENTINEL",0,0,"","",0
+"sp_ship_01","Model Test [ solid ]",0,0,"","",0
+"sp_ship_01","Model Test [ notsolid ]",0,0,"","",0
+"sp_ship_01","Bug: Skycam Parent",0,0,"","",0
+"sp_ship_01","Bug: Skycam Move/Rotate",0,0,"","",0
+"sp_ship_01","Bug: Ents outside Bounds",0,0,"","",0
+"sp_ship_01","S2S_COMBAT1-p1",0,0,"","",0
+"sp_ship_01","S2S_COMBAT1-p2",0,0,"","",0
+"sp_ship_01","S2S_COMBAT1-p3",0,0,"","",0
+"sp_ship_01","S2S_COMBAT1-p4",0,0,"","",0
+"sp_ship_03","hull combat p1",0,0,"","",0
+"sp_ship_04","hull combat p1",0,0,"","",0
+"sp_ship_05","hull combat p1",0,0,"","",0
+"sp_s2s","Level Start",1,1,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Intro",1,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Gibraltar",1,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Boss Intro",1,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Widow Fall",1,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Barker Ship",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","FastBall 1",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Malta Intro",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Malta Drone Room",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Malta Guns",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Malta Widow Jump",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Malta Hangar",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Malta Breach",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Malta Bridge",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Reunite with BT",2,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Malta Deck",3,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","BT Tackle",3,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Boss Fight",3,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Viper Dead",3,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",0
+"sp_s2s","Life Boats",4,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",1
+"sp_s2s","Core Room",4,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",1
+"sp_s2s","OLA Crash",4,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",1
+"sp_s2s","--------------",4,0,"SP_MISSION_LOG_S2S","MENU_SP_OBJECTIVES_TITLE",1
+"sp_s2s","TestBed",1,0,"","",0
+"sp_s2s","Dropship Combat Test",1,0,"","",0
+"sp_s2s","LightEdit Connect",1,0,"","",0
+"sp_s2s","TRAILER bridge",1,0,"","",0
+"sp_scrapyard_test","Arena 1",0,0,"","",0
+"sp_sewers1","Channel Mortar Run",1,1,"SP_MISSION_LOG_SEWERS","MENU_SP_OBJECTIVES_TITLE",1
+"sp_sewers1","Sewer Split",2,0,"SP_MISSION_LOG_SEWERS","MENU_SP_OBJECTIVES_TITLE",0
+"sp_sewers1","Sludge Falls",3,0,"SP_MISSION_LOG_SEWERS","MENU_SP_OBJECTIVES_TITLE",1
+"sp_sewers1","Corkscrew Room",4,0,"SP_MISSION_LOG_SEWERS","MENU_SP_OBJECTIVES_TITLE",0
+"sp_sewers1","Pipe Room Climb",5,0,"SP_MISSION_LOG_SEWERS","MENU_SP_OBJECTIVES_TITLE",1
+"sp_sewers1","Sewer Arena",6,0,"SP_MISSION_LOG_SEWERS","MENU_SP_OBJECTIVES_TITLE",1
+"sp_sewers1","Sewer Arena Defend",6,0,"SP_MISSION_LOG_SEWERS","MENU_SP_OBJECTIVES_TITLE",1
+"sp_sewers1","Kane Arena",7,0,"SP_MISSION_LOG_SEWERS","MENU_SP_OBJECTIVES_TITLE",1
+"sp_davis_sewer_battle","Sneaky Section",0,0,"","",0
+"sp_davis_sewer_battle","Combat Arena",0,0,"","",0
+"sp_davis_sewer_battle","Cylinder Tick Tunnels",0,0,"","",0
+"sp_ab_titan_arena","TvT Linear w 1.5 Boss Titans",0,0,"","",0
+"sp_ab_titan_arena","TvT Arena",0,0,"","",0
+"sp_ab_titan_arena","1v1 Arena A",0,0,"","",0
+"sp_ab_titan_arena","1v1 Arena B",0,0,"","",0
+"sp_ab_titan_arena","1v1 Arena C",0,0,"","",0
+"sp_ab_titan_arena","1v1 Arena D",0,0,"","",0
+"sp_boomtown_townboot","Town Boot",0,0,"","",0
+"sp_boomtown_townboot","Town Delivery",0,0,"","",0
+"sp_boomtown_townboot","Spotlight",0,0,"","",0
+"sp_ab_wilds_combat_test","Battery2",0,0,"","",0
+"sp_ab_wilds_combat_test","Battery3",0,0,"","",0
+"sp_skyway_v1","Level Start",0,1,"","",0
+"sp_skyway_v1","Torture Room B",1,0,"","",0
+"sp_skyway_v1","Smart Pistol Run",1,0,"","",0
+"sp_skyway_v1","Bridge Fight",2,0,"","",0
+"sp_skyway_v1","BT Reunion",3,0,"","",0
+"sp_skyway_v1","Titan Hill",3,0,"","",0
+"sp_skyway_v1","Titan Smash Hallway",3,0,"","",0
+"sp_skyway_v1","Sculptor Climb",3,0,"","",0
+"sp_skyway_v1","Targeting Room",4,0,"","",0
+"sp_skyway_v1","Injector Room",4,0,"","",0
+"sp_skyway_v1","Blisk's Farewell",4,0,"","",0
+"sp_skyway_v1","BT Sacrifice",4,0,"","",0
+"sp_skyway_v1","Rising World Run",5,0,"","",0
+"sp_skyway_v1","Rising World Jump",5,0,"","",0
+"sp_skyway_v1","Exploding Planet",5,0,"","",0
+"sp_skyway_v1","Harmony",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","--- CREDITS ---",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","sarah intro",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","walk",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","hug",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","cheer",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","actor jack cooper",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","actor BT / OG",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","actor blisk",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","actor sarah",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","actor bosses",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","actor marder",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","actors 6-4",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","actor barker",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","new BT",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","board ship",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_skyway_v1","final image",5,0,"SP_MISSION_LOG_SKYWAY_ALT","MENU_SP_OBJECTIVES_TITLE",1
+"sp_template","Level Start",0,0,"","",0
+"sp_template","Big Fight",0,0,"","",0
+"sp_template","Finale",0,0,"","",0
+"sp_tday","Intro",1,1,"SP_MISSION_LOG_TDAY","MENU_SP_OBJECTIVES_TITLE",1
+"sp_tday","Wall Bombardment",1,0,"SP_MISSION_LOG_TDAY","MENU_SP_OBJECTIVES_TITLE",1
+"sp_tday","Militia Big Charge",1,0,"SP_MISSION_LOG_TDAY","MENU_SP_OBJECTIVES_TITLE",1
+"sp_tday","Underground Fuel Storage",2,0,"SP_MISSION_LOG_TDAY","MENU_SP_OBJECTIVES_TITLE",1
+"sp_tday","Elevator",2,0,"SP_MISSION_LOG_TDAY","MENU_SP_OBJECTIVES_TITLE",1
+"sp_tday","VTOL",3,0,"SP_MISSION_LOG_TDAY","MENU_SP_OBJECTIVES_TITLE",0
+"sp_tday","Fire on the Runway",4,0,"SP_MISSION_LOG_TDAY","MENU_SP_OBJECTIVES_TITLE",0
+"sp_tday","OLA Launch",4,0,"SP_MISSION_LOG_TDAY","MENU_SP_OBJECTIVES_TITLE",0
+"sp_boomtown_start","Intro",0,1,"SP_MISSION_LOG_BOOMTOWN_1","MENU_SP_OBJECTIVES_TITLE",0
+"sp_boomtown_start","Prop House",1,0,"SP_MISSION_LOG_BOOMTOWN_1","MENU_SP_OBJECTIVES_TITLE",1
+"sp_boomtown_start","Narrow Hallway",1,0,"SP_MISSION_LOG_BOOMTOWN_1","MENU_SP_OBJECTIVES_TITLE",1
+"sp_boomtown_start","Titan Arena",1,0,"SP_MISSION_LOG_BOOMTOWN_1","MENU_SP_OBJECTIVES_TITLE",1
+"sp_boomtown_start","Loading Dock",1,0,"SP_MISSION_LOG_BOOMTOWN_1","MENU_SP_OBJECTIVES_TITLE",1
+"sp_boomtown","Start",0,1,"SP_MISSION_LOG_BOOMTOWN_SPLOG0","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown","Assembly_Start",1,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG0","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown","Assembly_Dirt",1,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG0","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown","Assembly_Wallrun",1,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG0","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown","Assembly_Furniture",1,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG0","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown","Assembly_Walls",1,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG0","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown","Assembly_Highway",1,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG0","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown","Town_Climb_Entry",1,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG0","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown","ReaperTown",2,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG0","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown_end","Intro Caves",0,1,"SP_MISSION_LOG_BOOMTOWN_SPLOG1","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown_end","Prowler Towers",0,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG1","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown_end","Above The Dome",1,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG1","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown_end","Pre Ash Fight",2,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG1","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"sp_boomtown_end","Ash Fight",3,0,"SP_MISSION_LOG_BOOMTOWN_SPLOG1","MENU_SP_LOG_TITLE_BOOMTOWN",1
+"eof","eof",0,0,"","",0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_abilities.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_abilities.csv
new file mode 100644
index 00000000..46164792
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_abilities.csv
@@ -0,0 +1,36 @@
+itemRef,type,damageSource,hidden
+"mp_titancore_flame_wave","TITAN_CORE_ABILITY",1,0
+"mp_titancore_flight_core","TITAN_CORE_ABILITY",0,0
+"mp_titancore_laser_cannon","TITAN_CORE_ABILITY",1,0
+"mp_titancore_salvo_core","TITAN_CORE_ABILITY",1,0
+"mp_titancore_shift_core","TITAN_CORE_ABILITY",0,0
+"mp_titancore_siege_mode","TITAN_CORE_ABILITY",0,0
+"mp_titancore_amp_core","TITAN_CORE_ABILITY",0,0
+"mp_titancore_dash_core","TITAN_CORE_ABILITY",0,0
+"mp_titanweapon_arc_wave","TITAN_ORDNANCE",1,0
+"mp_titanweapon_dumbfire_rockets","TITAN_ORDNANCE",1,0
+"mp_titanweapon_flame_wall","TITAN_ORDNANCE",1,0
+"mp_titanweapon_homing_rockets","TITAN_ORDNANCE",1,0
+"mp_titanweapon_laser_lite","TITAN_ORDNANCE",1,0
+"mp_titanweapon_salvo_rockets","TITAN_ORDNANCE",1,0
+"mp_titanweapon_shoulder_rockets","TITAN_ORDNANCE",1,0
+"mp_titanweapon_tracker_rockets","TITAN_ORDNANCE",1,0
+"mp_titanability_power_shot","TITAN_ORDNANCE",1,0
+"mp_titanability_tether_trap","TITAN_ORDNANCE",0,0
+"mp_titanability_basic_block","TITAN_SPECIAL",0,0
+"mp_titanability_particle_wall","TITAN_SPECIAL",0,0
+"mp_titanweapon_vortex_shield","TITAN_SPECIAL",1,0
+"mp_titanweapon_vortex_shield_ion","TITAN_SPECIAL",1,0
+"mp_titanweapon_heat_shield","TITAN_SPECIAL",1,0
+"mp_titanability_gun_shield","TITAN_SPECIAL",1,0
+"mp_titanability_smoke","TITAN_SPECIAL",0,0
+"mp_titanability_hover","TITAN_ANTIRODEO",0,0
+"mp_titanability_phase_dash","TITAN_ANTIRODEO",0,0
+"mp_titanability_laser_trip","TITAN_ANTIRODEO",0,0
+"mp_titanability_slow_trap","TITAN_ANTIRODEO",0,0
+"mp_titanability_ammo_swap","TITAN_ANTIRODEO",1,0
+"mp_titanability_sonar_pulse","TITAN_ANTIRODEO",1,0
+"mp_titanability_rocketeer_ammo_swap","TITAN_ANTIRODEO",0,0
+"mp_titanweapon_stun_laser","TITAN_SPECIAL",1,0
+"mp_titanability_rearm","TITAN_ANTIRODEO",1,0
+"mp_titancore_upgrade","TITAN_CORE_ABILITY",0,0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_executions.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_executions.csv
new file mode 100644
index 00000000..09c4a4d1
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_executions.csv
@@ -0,0 +1,26 @@
+ref,setfile,attackerAnim,attackerAnimVsAutoTitan,victimAnim_lt,victimAnim_md,victimAnim_hv,victimAnim_pt_lt,victimAnim_pt_md,victimAnim_pt_hv,attackerAnim_pt_lt,attackerAnim_pt_mt,attackerAnim_pt_ht,sound_1p,sound_3p,camAttach,type,name,description,image,hidden,cost,reqPrime,linkedExecutions
+"execution_legion","titan_ogre_minigun","htPRED_MP_Sync_Execution_Attacker","htPRED_MP_Sync_Execution_Attacker","t_MeleeExecuted_By_htPred","t_MeleeExecuted_By_htPred","t_MeleeExecuted_By_htPred","","","","","","","Ogre_1p_Sync_Melee","Ogre_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_LEGION_EXECUTION","#TITAN_EXECUTION_LEGION","#TITAN_EXECUTION_LEGION_DESC","rui/titan_loadout/execution/titan_execution_legion",0,0,0,""
+"execution_legion_prime","titan_ogre_legion_prime","htLegionPrime_MP_Sync_Execution_attacker","htLegionPrime_MP_Sync_Execution_attacker","t_MeleeExecuted_By_htLegionPrime","t_MeleeExecuted_By_htLegionPrime","t_MeleeExecuted_By_htLegionPrime","","","","","","","Ogre_1p_Sync_Melee","Ogre_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_LEGION_EXECUTION","#TITAN_EXECUTION_LEGION_PRIME","#TITAN_EXECUTION_LEGION_PRIME_DESC","rui/titan_loadout/execution/titan_execution_legion_prime",0,0,1,""
+"execution_scorch","titan_ogre_meteor","htThermite_MP_Sync_Execution_Attacker","htThermite_MP_Sync_Execution_Attacker","t_MeleeExecuted_By_htThermite","t_MeleeExecuted_By_htThermite","t_MeleeExecuted_By_htThermite","","","","","","","Ogre_1p_Sync_Melee","Ogre_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_SCORCH_EXECUTION","#TITAN_EXECUTION_SCORCH","#TITAN_EXECUTION_SCORCH_DESC","rui/titan_loadout/execution/titan_execution_scorch",0,0,0,""
+"execution_scorch_prime","titan_ogre_scorch_prime","htScorchPrime_MP_Sync_Execution_attacker","htScorchPrime_MP_Sync_Execution_attacker","t_MeleeExecuted_By_htScorchPrime","t_MeleeExecuted_By_htScorchPrime","t_MeleeExecuted_By_htScorchPrime","","","","","","","Ogre_1p_Sync_Melee","Ogre_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_SCORCH_EXECUTION","#TITAN_EXECUTION_SCORCH_PRIME","#TITAN_EXECUTION_SCORCH_PRIME_DESC","rui/titan_loadout/execution/titan_execution_scorch_prime",0,0,1,""
+"execution_ronin","titan_stryder_leadwall","lt_execution_attacker_sword_01","lt_execution_attacker_sword_01","lt_execution_victim_sword_01","mt_execution_victim_sword_01","ht_execution_victim_sword_01","pt_lt_execution_victim_sword_01","pt_mt_execution_victim_sword_01","pt_ht_execution_victim_sword_01","","","","Stryder_1p_Sync_Melee","Stryder_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_RONIN_EXECUTION","#TITAN_EXECUTION_RONIN","#TITAN_EXECUTION_RONIN_DESC","rui/titan_loadout/execution/titan_execution_ronin",0,0,0,""
+"execution_ronin_prime","titan_stryder_ronin_prime","lt_execution_attacker_sword_02_prime","lt_execution_attacker_sword_02_prime","lt_execution_victim_sword_02","mt_execution_victim_sword_02","ht_execution_victim_sword_02","pt_lt_execution_victim_sword_02","pt_mt_execution_victim_sword_02","pt_ht_execution_victim_sword_02","","","","Stryder_1p_Sync_Melee","Stryder_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_RONIN_EXECUTION","#TITAN_EXECUTION_RONIN_PRIME","#TITAN_EXECUTION_RONIN_PRIME_DESC","rui/titan_loadout/execution/titan_execution_ronin_prime",0,0,1,""
+"execution_ion","titan_atlas_stickybomb","mt_execution_attacker_laser","mt_execution_attacker_laser","lt_execution_victim_laser","mt_execution_victim_laser","ht_execution_victim_laser","pt_execution_victim_laser","pt_execution_victim_laser","pt_execution_victim_laser","","","","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_ION_EXECUTION","#TITAN_EXECUTION_ION","#TITAN_EXECUTION_ION_DESC","rui/titan_loadout/execution/titan_execution_ion",0,0,0,""
+"execution_ion_prime","titan_atlas_ion_prime","mt_execution_attacker_ion_prime","mt_execution_attacker_ion_prime","lt_execution_victim_ion_prime","mt_execution_victim_ion_prime","ht_execution_victim_ion_prime","pt_execution_victim_ion_prime","pt_execution_victim_ion_prime","pt_execution_victim_ion_prime","","","","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_ION_EXECUTION","#TITAN_EXECUTION_ION_PRIME","#TITAN_EXECUTION_ION_PRIME_DESC","rui/titan_loadout/execution/titan_execution_ion_prime",0,0,1,""
+"execution_bt","titan_buddy","bt_synced_titan_execute_flip_takedown_A","bt_synced_titan_execute_flip_takedown_A","titan_synced_bt_execute_flip_takedown_V","titan_synced_bt_execute_flip_takedown_V","titan_synced_bt_execute_flip_takedown_V","","","","","","","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","","","","",1,0,0,""
+"execution_tone","titan_atlas_tracker","mt_execution_attacker_tone","mt_execution_attacker_tone_auto","lt_execution_victim_tone","mt_execution_victim_tone","ht_execution_victim_tone","pt_execution_victim_tone","pt_execution_victim_tone","pt_execution_victim_tone","","","","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_TONE_EXECUTION","#TITAN_EXECUTION_TONE","#TITAN_EXECUTION_TONE_DESC","rui/titan_loadout/execution/titan_execution_tone",0,0,0,""
+"execution_tone_prime","titan_atlas_tone_prime","mt_execution_attacker_tone_prime","mt_execution_attacker_tone_prime","lt_execution_victim_tone_prime","mt_execution_victim_tone_prime","ht_execution_victim_tone_prime","","","","","","","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_TONE_EXECUTION","#TITAN_EXECUTION_TONE_PRIME","#TITAN_EXECUTION_TONE_PRIME_DESC","rui/titan_loadout/execution/titan_execution_tone_prime",0,0,1,""
+"execution_northstar","titan_stryder_sniper","lt_execution_attacker_sweep_01","lt_execution_attacker_sweep_01","lt_execution_victim_sweep_01","mt_execution_victim_sweep_01","ht_execution_victim_sweep_01","","","","","","","Stryder_1p_Sync_Melee","Stryder_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_NORTHSTAR_EXECUTION","#TITAN_EXECUTION_NORTHSTAR","#TITAN_EXECUTION_NORTHSTAR_DESC","rui/titan_loadout/execution/titan_execution_northstar",0,0,0,""
+"execution_northstar_prime","titan_stryder_northstar_prime","lt_execution_attacker_armsrip","lt_execution_attacker_armsrip","lt_execution_victim_armsrip","mt_execution_victim_armsrip","ht_execution_victim_armsrip","","","","","","","Stryder_1p_Sync_Melee","Stryder_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_NORTHSTAR_EXECUTION","#TITAN_EXECUTION_NORTHSTAR_PRIME","#TITAN_EXECUTION_NORTHSTAR_PRIME_DESC","rui/titan_loadout/execution/titan_execution_northstar_prime",0,0,1,""
+"execution_vanguard","titan_atlas_vanguard","mt_execution_attacker_vanguard","mt_execution_autoTitan_attacker_vanguard","lt_execution_victim_vanguard","mt_execution_victim_vanguard","ht_execution_victim_vanguard","pt_lt_execution_victim_vanguard","pt_mt_execution_victim_vanguard","pt_ht_execution_victim_vanguard","","","","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","TITAN_VANGUARD_EXECUTION","#TITAN_EXECUTION_VANGUARD","#TITAN_EXECUTION_VANGUARD_DESC","rui/titan_loadout/execution/titan_execution_monarch",0,0,0,""
+"execution_vanguard_kit","titan_atlas_vanguard_kit","mt_execution_battery_attacker_vanguard","mt_execution_battery_attacker_vanguard","lt_execution_battery_victim_vanguard","mt_execution_battery_victim_vanguard","ht_execution_battery_victim_vanguard","pt_lt_execution_battery_victim_vanguard","pt_mt_execution_battery_victim_vanguard","pt_ht_execution_battery_victim_vanguard","pt_lt_execution_battery_attacker_vanguard","pt_mt_execution_battery_attacker_vanguard","pt_ht_execution_battery_attacker_vanguard","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","","","","",1,0,0,""
+"execution_random_0","","","","","","","","","","","","","","","","TITAN_ION_EXECUTION","#TITAN_EXECUTION_RANDOM","#TITAN_EXECUTION_RANDOM_DESC","rui/pilot_loadout/execution/execution_random",0,0,0,"execution_ion,execution_ion_prime"
+"execution_random_1","","","","","","","","","","","","","","","","TITAN_SCORCH_EXECUTION","#TITAN_EXECUTION_RANDOM","#TITAN_EXECUTION_RANDOM_DESC","rui/pilot_loadout/execution/execution_random",0,0,0,"execution_scorch,execution_scorch_prime"
+"execution_random_2","","","","","","","","","","","","","","","","TITAN_NORTHSTAR_EXECUTION","#TITAN_EXECUTION_RANDOM","#TITAN_EXECUTION_RANDOM_DESC","rui/pilot_loadout/execution/execution_random",0,0,0,"execution_northstar,execution_northstar_prime"
+"execution_random_3","","","","","","","","","","","","","","","","TITAN_RONIN_EXECUTION","#TITAN_EXECUTION_RANDOM","#TITAN_EXECUTION_RANDOM_DESC","rui/pilot_loadout/execution/execution_random",0,0,0,"execution_ronin,execution_ronin_prime"
+"execution_random_4","","","","","","","","","","","","","","","","TITAN_TONE_EXECUTION","#TITAN_EXECUTION_RANDOM","#TITAN_EXECUTION_RANDOM_DESC","rui/pilot_loadout/execution/execution_random",0,0,0,"execution_tone,execution_tone_prime"
+"execution_random_5","","","","","","","","","","","","","","","","TITAN_LEGION_EXECUTION","#TITAN_EXECUTION_RANDOM","#TITAN_EXECUTION_RANDOM_DESC","rui/pilot_loadout/execution/execution_random",0,0,0,"execution_legion,execution_legion_prime"
+"execution_random_6","","","","","","","","","","","","","","","","TITAN_VANGUARD_EXECUTION","#TITAN_EXECUTION_RANDOM","#TITAN_EXECUTION_RANDOM_DESC","rui/pilot_loadout/execution/execution_random",0,0,0,"execution_vanguard"
+"execution_bt_flip","titan_buddy","bt_synced_titan_execute_flip_takedown_A","bt_synced_titan_execute_flip_takedown_A","titan_synced_bt_execute_flip_takedown_V","titan_synced_bt_execute_flip_takedown_V","titan_synced_bt_execute_flip_takedown_V","","","","","","","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","","","","",1,0,0,""
+"execution_bt_kickshoot","titan_buddy","bt_synced_titan_execute_kickshoot_A","bt_synced_titan_execute_kickshoot_A","titan_synced_bt_execute_kickshoot_V","titan_synced_bt_execute_kickshoot_V","titan_synced_bt_execute_kickshoot_V","pt_lt_synced_bt_execute_kickshoot_V","pt_mt_synced_bt_execute_kickshoot_V","pt_ht_synced_bt_execute_kickshoot_V","","","","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","","","","",1,0,0,""
+"execution_bt_pilotrip","titan_buddy","bt_synced_titan_execute_pilot_rip_A","bt_synced_titan_execute_pilot_rip_A","titan_synced_bt_execute_pilot_rip_V","titan_synced_bt_execute_pilot_rip_V","titan_synced_bt_execute_pilot_rip_V","pt_lt_synced_bt_execute_pilot_rip_V","pt_mt_synced_bt_execute_pilot_rip_V","pt_ht_synced_bt_execute_pilot_rip_V","","","","Atlas_1p_Sync_Melee","Atlas_3p_Sync_Melee","vehicle_driver_eyes camera_2 camera_3","","","","",1,0,0,"" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_fd_upgrades.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_fd_upgrades.csv
new file mode 100644
index 00000000..aab61afb
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_fd_upgrades.csv
@@ -0,0 +1,50 @@
+ref,parentref,upgradeType,name,description,image,lockedImage,cost,slot,unlockLevel
+"fd_upgrade_tone_utility_tier_1","tone","utility","#FD_UPGRADE_TONE_UTILITY_TIER_1","#FD_UPGRADE_TONE_UTILITY_TIER_1_DESC","rui/menu/fd_menu/upgrade_tone_signal_strength","rui/menu/fd_menu/disabled/upgrade_tone_signal_strength",1,2,12
+"fd_upgrade_tone_utility_tier_2","tone","utility","#FD_UPGRADE_TONE_UTILITY_TIER_2","#FD_UPGRADE_TONE_UTILITY_TIER_2_DESC","rui/menu/fd_menu/upgrade_tone_weak_points","rui/menu/fd_menu/disabled/upgrade_tone_weak_points",2,3,6
+"fd_upgrade_tone_defense_tier_1","tone","defensive","#FD_UPGRADE_TONE_DEFENSE_TIER_1","#FD_UPGRADE_TONE_DEFENSE_TIER_1_DESC","rui/menu/fd_menu/upgrade_tone_chassis","rui/menu/fd_menu/disabled/upgrade_tone_chassis",1,0,4
+"fd_upgrade_tone_defense_tier_2","tone","defensive","#FD_UPGRADE_TONE_DEFENSE_TIER_2","#FD_UPGRADE_TONE_DEFENSE_TIER_2_DESC","rui/menu/fd_menu/upgrade_tone_shield","rui/menu/fd_menu/disabled/upgrade_tone_shield",2,1,10
+"fd_upgrade_tone_weapon_tier_1","tone","weapon","#FD_UPGRADE_TONE_WEAPON_TIER_1","#FD_UPGRADE_TONE_WEAPON_TIER_1_DESC","rui/menu/fd_menu/upgrade_tone_splasher_rounds","rui/menu/fd_menu/disabled/upgrade_tone_splasher_rounds",1,4,8
+"fd_upgrade_tone_weapon_tier_2","tone","weapon","#FD_UPGRADE_TONE_WEAPON_TIER_2","#FD_UPGRADE_TONE_WEAPON_TIER_2_DESC","rui/menu/fd_menu/upgrade_tone_extended_ammo","rui/menu/fd_menu/disabled/upgrade_tone_extended_ammo",2,5,2
+"fd_upgrade_tone_ultimate","tone","ultimate","#FD_UPGRADE_TONE_ULTIMATE","#FD_UPGRADE_TONE_ULTIMATE_DESC","rui/menu/fd_menu/upgrade_tone_salvo_core","rui/menu/fd_menu/disabled/upgrade_tone_salvo_core",3,6,14
+"fd_upgrade_ion_utility_tier_1","ion","utility","#FD_UPGRADE_ION_UTILITY_TIER_1","#FD_UPGRADE_ION_UTILITY_TIER_1_DESC","rui/menu/fd_menu/upgrade_ion_energy_master","rui/menu/fd_menu/disabled/upgrade_ion_energy_master",1,2,12
+"fd_upgrade_ion_utility_tier_2","ion","utility","#FD_UPGRADE_ION_UTILITY_TIER_2","#FD_UPGRADE_ION_UTILITY_TIER_2_DESC","rui/menu/fd_menu/upgrade_ion_energy_storage","rui/menu/fd_menu/disabled/upgrade_ion_energy_storage",2,3,6
+"fd_upgrade_ion_defense_tier_1","ion","defensive","#FD_UPGRADE_ION_DEFENSE_TIER_1","#FD_UPGRADE_ION_DEFENSE_TIER_1_DESC","rui/menu/fd_menu/upgrade_ion_chassis","rui/menu/fd_menu/disabled/upgrade_ion_chassis",1,0,4
+"fd_upgrade_ion_defense_tier_2","ion","defensive","#FD_UPGRADE_ION_DEFENSE_TIER_2","#FD_UPGRADE_ION_DEFENSE_TIER_2_DESC","rui/menu/fd_menu/upgrade_ion_shield","rui/menu/fd_menu/disabled/upgrade_ion_shield",2,1,10
+"fd_upgrade_ion_weapon_tier_1","ion","weapon","#FD_UPGRADE_ION_WEAPON_TIER_1","#FD_UPGRADE_ION_WEAPON_TIER_1_DESC","rui/menu/fd_menu/upgrade_ion_split_shot","rui/menu/fd_menu/disabled/upgrade_ion_split_shot",1,4,2
+"fd_upgrade_ion_weapon_tier_2","ion","weapon","#FD_UPGRADE_ION_WEAPON_TIER_2","#FD_UPGRADE_ION_WEAPON_TIER_2_DESC","rui/menu/fd_menu/upgrade_ion_splitter_damage","rui/menu/fd_menu/disabled/upgrade_ion_splitter_damage",2,5,8
+"fd_upgrade_ion_ultimate","ion","ultimate","#FD_UPGRADE_ION_ULTIMATE","#FD_UPGRADE_ION_ULTIMATE_DESC","rui/menu/fd_menu/upgrade_ion_laser_reset","rui/menu/fd_menu/disabled/upgrade_ion_laser_reset",3,6,14
+"fd_upgrade_vanguard_utility_tier_1","vanguard","utility","#FD_UPGRADE_VANGUARD_UTILITY_TIER_1","#FD_UPGRADE_VANGUARD_UTILITY_TIER_1_DESC","rui/menu/fd_menu/upgrade_monarch_energize_smoke","rui/menu/fd_menu/disabled/upgrade_monarch_energize_smoke",1,2,2
+"fd_upgrade_vanguard_utility_tier_2","vanguard","utility","#FD_UPGRADE_VANGUARD_UTILITY_TIER_2","#FD_UPGRADE_VANGUARD_UTILITY_TIER_2_DESC","rui/menu/fd_menu/upgrade_monarch_energize_smoke_2","rui/menu/fd_menu/disabled/upgrade_monarch_energize_smoke_2",2,3,8
+"fd_upgrade_vanguard_defense_tier_1","vanguard","defensive","#FD_UPGRADE_VANGUARD_DEFENSE_TIER_1","#FD_UPGRADE_VANGUARD_DEFENSE_TIER_1_DESC","rui/menu/fd_menu/upgrade_monarch_chassis","rui/menu/fd_menu/disabled/upgrade_monarch_chassis",1,0,4
+"fd_upgrade_vanguard_defense_tier_2","vanguard","defensive","#FD_UPGRADE_VANGUARD_DEFENSE_TIER_2","#FD_UPGRADE_VANGUARD_DEFENSE_TIER_2_DESC","rui/menu/fd_menu/upgrade_monarch_shield","rui/menu/fd_menu/disabled/upgrade_monarch_shield",2,1,10
+"fd_upgrade_vanguard_weapon_tier_1","vanguard","weapon","#FD_UPGRADE_VANGUARD_WEAPON_TIER_1","#FD_UPGRADE_VANGUARD_WEAPON_TIER_1_DESC","rui/menu/fd_menu/upgrade_monarch_threat_optics","rui/menu/fd_menu/disabled/upgrade_monarch_threat_optics",1,4,6
+"fd_upgrade_vanguard_weapon_tier_2","vanguard","weapon","#FD_UPGRADE_VANGUARD_WEAPON_TIER_2","#FD_UPGRADE_VANGUARD_WEAPON_TIER_2_DESC","rui/menu/fd_menu/upgrade_monarch_xo16_sniper","rui/menu/fd_menu/disabled/upgrade_monarch_xo16_sniper",2,5,12
+"fd_upgrade_vanguard_ultimate","vanguard","ultimate","#FD_UPGRADE_VANGUARD_ULTIMATE","#FD_UPGRADE_VANGUARD_ULTIMATE_DESC","rui/menu/fd_menu/upgrade_monarch_apex_titan","rui/menu/fd_menu/disabled/upgrade_monarch_apex_titan",3,6,14
+"fd_upgrade_ronin_utility_tier_1","ronin","utility","#FD_UPGRADE_RONIN_UTILITY_TIER_1","#FD_UPGRADE_RONIN_UTILITY_TIER_1_DESC","rui/menu/fd_menu/upgrade_ronin_ghost_machine","rui/menu/fd_menu/disabled/upgrade_ronin_ghost_machine",1,2,6
+"fd_upgrade_ronin_utility_tier_2","ronin","utility","#FD_UPGRADE_RONIN_UTILITY_TIER_2","#FD_UPGRADE_RONIN_UTILITY_TIER_2_DESC","rui/menu/fd_menu/upgrade_ronin_wraith","rui/menu/fd_menu/disabled/upgrade_ronin_wraith",2,3,12
+"fd_upgrade_ronin_defense_tier_1","ronin","defensive","#FD_UPGRADE_RONIN_DEFENSE_TIER_1","#FD_UPGRADE_RONIN_DEFENSE_TIER_1_DESC","rui/menu/fd_menu/upgrade_ronin_chassis","rui/menu/fd_menu/disabled/upgrade_ronin_chassis",1,0,4
+"fd_upgrade_ronin_defense_tier_2","ronin","defensive","#FD_UPGRADE_RONIN_DEFENSE_TIER_2","#FD_UPGRADE_RONIN_DEFENSE_TIER_2_DESC","rui/menu/fd_menu/upgrade_ronin_shield","rui/menu/fd_menu/disabled/upgrade_ronin_shield",2,1,10
+"fd_upgrade_ronin_weapon_tier_1","ronin","weapon","#FD_UPGRADE_RONIN_WEAPON_TIER_1","#FD_UPGRADE_RONIN_WEAPON_TIER_1_DESC","rui/menu/fd_menu/upgrade_ronin_sword_mastery","rui/menu/fd_menu/disabled/upgrade_ronin_sword_mastery",1,4,2
+"fd_upgrade_ronin_weapon_tier_2","ronin","weapon","#FD_UPGRADE_RONIN_WEAPON_TIER_2","#FD_UPGRADE_RONIN_WEAPON_TIER_2_DESC","rui/menu/fd_menu/upgrade_ronin_kinetic_transfer","rui/menu/fd_menu/disabled/upgrade_ronin_kinetic_transfer",2,5,8
+"fd_upgrade_ronin_ultimate","ronin","ultimate","#FD_UPGRADE_RONIN_ULTIMATE","#FD_UPGRADE_RONIN_ULTIMATE_DESC","rui/menu/fd_menu/upgrade_ronin_blade_master","rui/menu/fd_menu/disabled/upgrade_ronin_blade_master",3,6,14
+"fd_upgrade_northstar_utility_tier_1","northstar","utility","#FD_UPGRADE_NORTHSTAR_UTILITY_TIER_1","#FD_UPGRADE_NORTHSTAR_UTILITY_TIER_1_DESC","rui/menu/fd_menu/upgrade_northstar_explosive_trap","rui/menu/fd_menu/disabled/upgrade_northstar_explosive_trap",1,2,2
+"fd_upgrade_northstar_utility_tier_2","northstar","utility","#FD_UPGRADE_NORTHSTAR_UTILITY_TIER_2","#FD_UPGRADE_NORTHSTAR_UTILITY_TIER_2_DESC","rui/menu/fd_menu/upgrade_northstar_trap_master","rui/menu/fd_menu/disabled/upgrade_northstar_trap_master",2,3,8
+"fd_upgrade_northstar_defense_tier_1","northstar","defensive","#FD_UPGRADE_NORTHSTAR_DEFENSE_TIER_1","#FD_UPGRADE_NORTHSTAR_DEFENSE_TIER_1_DESC","rui/menu/fd_menu/upgrade_northstar_chassis","rui/menu/fd_menu/disabled/upgrade_northstar_chassis",1,0,4
+"fd_upgrade_northstar_defense_tier_2","northstar","defensive","#FD_UPGRADE_NORTHSTAR_DEFENSE_TIER_2","#FD_UPGRADE_NORTHSTAR_DEFENSE_TIER_2_DESC","rui/menu/fd_menu/upgrade_northstar_shield","rui/menu/fd_menu/disabled/upgrade_northstar_shield",2,1,10
+"fd_upgrade_northstar_weapon_tier_1","northstar","weapon","#FD_UPGRADE_NORTHSTAR_WEAPON_TIER_1","#FD_UPGRADE_NORTHSTAR_WEAPON_TIER_1_DESC","rui/menu/fd_menu/upgrade_northstar_quick_charge","rui/menu/fd_menu/disabled/upgrade_northstar_quick_charge",1,4,6
+"fd_upgrade_northstar_weapon_tier_2","northstar","weapon","#FD_UPGRADE_NORTHSTAR_WEAPON_TIER_2","#FD_UPGRADE_NORTHSTAR_WEAPON_TIER_2_DESC","rui/menu/fd_menu/upgrade_northstar_one_shot_kill","rui/menu/fd_menu/disabled/upgrade_northstar_one_shot_kill",2,5,12
+"fd_upgrade_northstar_ultimate","northstar","ultimate","#FD_UPGRADE_NORTHSTAR_ULTIMATE","#FD_UPGRADE_NORTHSTAR_ULTIMATE_DESC","rui/menu/fd_menu/upgrade_northstar_twin_cluster","rui/menu/fd_menu/disabled/upgrade_northstar_twin_cluster",3,6,14
+"fd_upgrade_scorch_utility_tier_1","scorch","utility","#FD_UPGRADE_SCORCH_UTILITY_TIER_1","#FD_UPGRADE_SCORCH_UTILITY_TIER_1_DESC","rui/menu/fd_menu/upgrade_scorch_hot_streak","rui/menu/fd_menu/disabled/upgrade_scorch_hot_streak",1,2,6
+"fd_upgrade_scorch_utility_tier_2","scorch","utility","#FD_UPGRADE_SCORCH_UTILITY_TIER_2","#FD_UPGRADE_SCORCH_UTILITY_TIER_2_DESC","rui/menu/fd_menu/upgrade_scorch_roaring_flame","rui/menu/fd_menu/disabled/upgrade_scorch_roaring_flame",2,3,8
+"fd_upgrade_scorch_defense_tier_1","scorch","defensive","#FD_UPGRADE_SCORCH_DEFENSE_TIER_1","#FD_UPGRADE_SCORCH_DEFENSE_TIER_1_DESC","rui/menu/fd_menu/upgrade_scorch_chassis","rui/menu/fd_menu/disabled/upgrade_scorch_chassis",1,0,4
+"fd_upgrade_scorch_defense_tier_2","scorch","defensive","#FD_UPGRADE_SCORCH_DEFENSE_TIER_2","#FD_UPGRADE_SCORCH_DEFENSE_TIER_2_DESC","rui/menu/fd_menu/upgrade_scorch_shield","rui/menu/fd_menu/disabled/upgrade_scorch_shield",2,1,10
+"fd_upgrade_scorch_weapon_tier_1","scorch","weapon","#FD_UPGRADE_SCORCH_WEAPON_TIER_1","#FD_UPGRADE_SCORCH_WEAPON_TIER_1_DESC","rui/menu/fd_menu/upgrade_scorch_double_threat","rui/menu/fd_menu/disabled/upgrade_scorch_double_threat",1,4,2
+"fd_upgrade_scorch_weapon_tier_2","scorch","weapon","#FD_UPGRADE_SCORCH_WEAPON_TIER_2","#FD_UPGRADE_SCORCH_WEAPON_TIER_2_DESC","rui/menu/fd_menu/upgrade_scorch_triple_threat","rui/menu/fd_menu/disabled/upgrade_scorch_triple_threat",2,5,12
+"fd_upgrade_scorch_ultimate","scorch","ultimate","#FD_UPGRADE_SCORCH_ULTIMATE","#FD_UPGRADE_SCORCH_ULTIMATE_DESC","rui/menu/fd_menu/upgrade_scorch_explosive_barrells","rui/menu/fd_menu/disabled/upgrade_scorch_explosive_barrells",3,6,14
+"fd_upgrade_legion_utility_tier_1","legion","utility","#FD_UPGRADE_LEGION_UTILITY_TIER_1","#FD_UPGRADE_LEGION_UTILITY_TIER_1_DESC","rui/menu/fd_menu/upgrade_legion_executioner","rui/menu/fd_menu/disabled/upgrade_legion_executioner",1,2,6
+"fd_upgrade_legion_utility_tier_2","legion","utility","#FD_UPGRADE_LEGION_UTILITY_TIER_2","#FD_UPGRADE_LEGION_UTILITY_TIER_2_DESC","rui/menu/fd_menu/upgrade_legion_drill_shot","rui/menu/fd_menu/disabled/upgrade_legion_drill_shot",2,3,12
+"fd_upgrade_legion_defense_tier_1","legion","defensive","#FD_UPGRADE_LEGION_DEFENSE_TIER_1","#FD_UPGRADE_LEGION_DEFENSE_TIER_1_DESC","rui/menu/fd_menu/upgrade_legion_chassis","rui/menu/fd_menu/disabled/upgrade_legion_chassis",1,0,4
+"fd_upgrade_legion_defense_tier_2","legion","defensive","#FD_UPGRADE_LEGION_DEFENSE_TIER_2","#FD_UPGRADE_LEGION_DEFENSE_TIER_2_DESC","rui/menu/fd_menu/upgrade_legion_shield","rui/menu/fd_menu/disabled/upgrade_legion_shield",2,1,10
+"fd_upgrade_legion_weapon_tier_1","legion","weapon","#FD_UPGRADE_LEGION_WEAPON_TIER_1","#FD_UPGRADE_LEGION_WEAPON_TIER_1_DESC","rui/menu/fd_menu/upgrade_legion_piercing_shot","rui/menu/fd_menu/disabled/upgrade_legion_piercing_shot",1,4,2
+"fd_upgrade_legion_weapon_tier_2","legion","weapon","#FD_UPGRADE_LEGION_WEAPON_TIER_2","#FD_UPGRADE_LEGION_WEAPON_TIER_2_DESC","rui/menu/fd_menu/upgrade_legion_redirect","rui/menu/fd_menu/disabled/upgrade_legion_redirect",2,5,8
+"fd_upgrade_legion_ultimate","legion","ultimate","#FD_UPGRADE_LEGION_ULTIMATE","#FD_UPGRADE_LEGION_ULTIMATE_DESC","rui/menu/fd_menu/upgrade_legion_double_down","rui/menu/fd_menu/disabled/upgrade_legion_double_down",3,6,14 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_nose_art.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_nose_art.csv
new file mode 100644
index 00000000..56bcf556
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_nose_art.csv
@@ -0,0 +1,191 @@
+ref,titanRef,image,name,cost
+"ion_nose_art_none","ion","rui/menu/common/no_art","#FACTORY_ISSUE_NAME",0
+"ion_nose_art_01","ion","rui/titan_loadout/nose_art/ion_nose_art_01","#ION_NOSE_ART_01",0
+"ion_nose_art_02","ion","rui/titan_loadout/nose_art/ion_nose_art_02","#ION_NOSE_ART_02",0
+"ion_nose_art_03","ion","rui/titan_loadout/nose_art/ion_nose_art_03","#ION_NOSE_ART_03",0
+"ion_nose_art_04","ion","rui/titan_loadout/nose_art/ion_nose_art_04","#ION_NOSE_ART_04",0
+"ion_nose_art_05","ion","rui/titan_loadout/nose_art/ion_nose_art_05","#ION_NOSE_ART_05",300
+"ion_nose_art_06","ion","rui/titan_loadout/nose_art/ion_nose_art_06","#ION_NOSE_ART_06",0
+"ion_nose_art_07","ion","rui/titan_loadout/nose_art/ion_nose_art_07","#ION_NOSE_ART_07",0
+"ion_nose_art_08","ion","rui/titan_loadout/nose_art/ion_nose_art_08","#ION_NOSE_ART_08",0
+"ion_nose_art_09","ion","rui/titan_loadout/nose_art/ion_nose_art_09","#ION_NOSE_ART_09",0
+"ion_nose_art_10","ion","rui/titan_loadout/nose_art/ion_nose_art_10","#ION_NOSE_ART_10",0
+"ion_nose_art_11","ion","rui/titan_loadout/nose_art/ion_nose_art_11","#ION_NOSE_ART_11",0
+"ion_nose_art_12","ion","rui/titan_loadout/nose_art/ion_nose_art_12","#ION_NOSE_ART_12",0
+"ion_nose_art_13","ion","rui/titan_loadout/nose_art/ion_nose_art_13","#ION_NOSE_ART_13",0
+"ion_nose_art_14","ion","rui/titan_loadout/nose_art/ion_nose_art_14","#ION_NOSE_ART_14",0
+"scorch_nose_art_none","scorch","rui/menu/common/no_art","#FACTORY_ISSUE_NAME",0
+"scorch_nose_art_01","scorch","rui/titan_loadout/nose_art/scorch_nose_art_01","#SCORCH_NOSE_ART_01",0
+"scorch_nose_art_02","scorch","rui/titan_loadout/nose_art/scorch_nose_art_02","#SCORCH_NOSE_ART_02",0
+"scorch_nose_art_03","scorch","rui/titan_loadout/nose_art/scorch_nose_art_03","#SCORCH_NOSE_ART_03",0
+"scorch_nose_art_04","scorch","rui/titan_loadout/nose_art/scorch_nose_art_04","#SCORCH_NOSE_ART_04",0
+"scorch_nose_art_05","scorch","rui/titan_loadout/nose_art/scorch_nose_art_05","#SCORCH_NOSE_ART_05",0
+"scorch_nose_art_06","scorch","rui/titan_loadout/nose_art/scorch_nose_art_06","#SCORCH_NOSE_ART_06",0
+"scorch_nose_art_07","scorch","rui/titan_loadout/nose_art/scorch_nose_art_07","#SCORCH_NOSE_ART_07",0
+"scorch_nose_art_08","scorch","rui/titan_loadout/nose_art/scorch_nose_art_08","#SCORCH_NOSE_ART_08",0
+"scorch_nose_art_09","scorch","rui/titan_loadout/nose_art/scorch_nose_art_09","#SCORCH_NOSE_ART_09",0
+"scorch_nose_art_10","scorch","rui/titan_loadout/nose_art/scorch_nose_art_10","#SCORCH_NOSE_ART_10",0
+"scorch_nose_art_11","scorch","rui/titan_loadout/nose_art/scorch_nose_art_11","#SCORCH_NOSE_ART_11",0
+"scorch_nose_art_12","scorch","rui/titan_loadout/nose_art/scorch_nose_art_12","#SCORCH_NOSE_ART_12",300
+"scorch_nose_art_13","scorch","rui/titan_loadout/nose_art/scorch_nose_art_13","#SCORCH_NOSE_ART_13",0
+"scorch_nose_art_14","scorch","rui/titan_loadout/nose_art/scorch_nose_art_14","#SCORCH_NOSE_ART_14",0
+"ronin_nose_art_none","ronin","rui/menu/common/no_art","#FACTORY_ISSUE_NAME",0
+"ronin_nose_art_01","ronin","rui/titan_loadout/nose_art/ronin_nose_art_01","#RONIN_NOSE_ART_01",0
+"ronin_nose_art_02","ronin","rui/titan_loadout/nose_art/ronin_nose_art_02","#RONIN_NOSE_ART_02",0
+"ronin_nose_art_03","ronin","rui/titan_loadout/nose_art/ronin_nose_art_03","#RONIN_NOSE_ART_03",0
+"ronin_nose_art_04","ronin","rui/titan_loadout/nose_art/ronin_nose_art_04","#RONIN_NOSE_ART_04",0
+"ronin_nose_art_05","ronin","rui/titan_loadout/nose_art/ronin_nose_art_05","#RONIN_NOSE_ART_05",0
+"ronin_nose_art_06","ronin","rui/titan_loadout/nose_art/ronin_nose_art_06","#RONIN_NOSE_ART_06",0
+"ronin_nose_art_07","ronin","rui/titan_loadout/nose_art/ronin_nose_art_07","#RONIN_NOSE_ART_07",0
+"ronin_nose_art_08","ronin","rui/titan_loadout/nose_art/ronin_nose_art_08","#RONIN_NOSE_ART_08",300
+"ronin_nose_art_09","ronin","rui/titan_loadout/nose_art/ronin_nose_art_09","#RONIN_NOSE_ART_09",0
+"ronin_nose_art_10","ronin","rui/titan_loadout/nose_art/ronin_nose_art_10","#RONIN_NOSE_ART_10",0
+"ronin_nose_art_11","ronin","rui/titan_loadout/nose_art/ronin_nose_art_11","#RONIN_NOSE_ART_11",0
+"ronin_nose_art_12","ronin","rui/titan_loadout/nose_art/ronin_nose_art_12","#RONIN_NOSE_ART_12",300
+"ronin_nose_art_13","ronin","rui/titan_loadout/nose_art/ronin_nose_art_13","#RONIN_NOSE_ART_13",0
+"ronin_nose_art_14","ronin","rui/titan_loadout/nose_art/ronin_nose_art_14","#RONIN_NOSE_ART_14",0
+"tone_nose_art_none","tone","rui/menu/common/no_art","#FACTORY_ISSUE_NAME",0
+"tone_nose_art_01","tone","rui/titan_loadout/nose_art/tone_nose_art_01","#TONE_NOSE_ART_01",0
+"tone_nose_art_02","tone","rui/titan_loadout/nose_art/tone_nose_art_02","#TONE_NOSE_ART_02",0
+"tone_nose_art_03","tone","rui/titan_loadout/nose_art/tone_nose_art_03","#TONE_NOSE_ART_03",0
+"tone_nose_art_04","tone","rui/titan_loadout/nose_art/tone_nose_art_04","#TONE_NOSE_ART_04",0
+"tone_nose_art_05","tone","rui/titan_loadout/nose_art/tone_nose_art_05","#TONE_NOSE_ART_05",0
+"tone_nose_art_06","tone","rui/titan_loadout/nose_art/tone_nose_art_06","#TONE_NOSE_ART_06",0
+"tone_nose_art_07","tone","rui/titan_loadout/nose_art/tone_nose_art_07","#TONE_NOSE_ART_07",0
+"tone_nose_art_08","tone","rui/titan_loadout/nose_art/tone_nose_art_08","#TONE_NOSE_ART_08",0
+"tone_nose_art_09","tone","rui/titan_loadout/nose_art/tone_nose_art_09","#TONE_NOSE_ART_09",0
+"tone_nose_art_10","tone","rui/titan_loadout/nose_art/tone_nose_art_10","#TONE_NOSE_ART_10",0
+"tone_nose_art_11","tone","rui/titan_loadout/nose_art/tone_nose_art_11","#TONE_NOSE_ART_11",300
+"tone_nose_art_12","tone","rui/titan_loadout/nose_art/tone_nose_art_12","#TONE_NOSE_ART_12",300
+"tone_nose_art_13","tone","rui/titan_loadout/nose_art/tone_nose_art_13","#TONE_NOSE_ART_13",0
+"tone_nose_art_14","tone","rui/titan_loadout/nose_art/tone_nose_art_14","#TONE_NOSE_ART_14",0
+"northstar_nose_art_none","northstar","rui/menu/common/no_art","#FACTORY_ISSUE_NAME",0
+"northstar_nose_art_01","northstar","rui/titan_loadout/nose_art/northstar_nose_art_01","#NORTHSTAR_NOSE_ART_01",0
+"northstar_nose_art_02","northstar","rui/titan_loadout/nose_art/northstar_nose_art_02","#NORTHSTAR_NOSE_ART_02",0
+"northstar_nose_art_03","northstar","rui/titan_loadout/nose_art/northstar_nose_art_03","#NORTHSTAR_NOSE_ART_03",0
+"northstar_nose_art_04","northstar","rui/titan_loadout/nose_art/northstar_nose_art_04","#NORTHSTAR_NOSE_ART_04",0
+"northstar_nose_art_05","northstar","rui/titan_loadout/nose_art/northstar_nose_art_05","#NORTHSTAR_NOSE_ART_05",0
+"northstar_nose_art_06","northstar","rui/titan_loadout/nose_art/northstar_nose_art_06","#NORTHSTAR_NOSE_ART_06",0
+"northstar_nose_art_07","northstar","rui/titan_loadout/nose_art/northstar_nose_art_07","#NORTHSTAR_NOSE_ART_07",0
+"northstar_nose_art_08","northstar","rui/titan_loadout/nose_art/northstar_nose_art_08","#NORTHSTAR_NOSE_ART_08",0
+"northstar_nose_art_09","northstar","rui/titan_loadout/nose_art/northstar_nose_art_09","#NORTHSTAR_NOSE_ART_09",0
+"northstar_nose_art_10","northstar","rui/titan_loadout/nose_art/northstar_nose_art_10","#NORTHSTAR_NOSE_ART_10",0
+"northstar_nose_art_11","northstar","rui/titan_loadout/nose_art/northstar_nose_art_11","#NORTHSTAR_NOSE_ART_11",0
+"northstar_nose_art_12","northstar","rui/titan_loadout/nose_art/northstar_nose_art_12","#NORTHSTAR_NOSE_ART_12",300
+"northstar_nose_art_13","northstar","rui/titan_loadout/nose_art/northstar_nose_art_13","#NORTHSTAR_NOSE_ART_13",300
+"northstar_nose_art_14","northstar","rui/titan_loadout/nose_art/northstar_nose_art_14","#NORTHSTAR_NOSE_ART_14",0
+"legion_nose_art_none","legion","rui/menu/common/no_art","#FACTORY_ISSUE_NAME",0
+"legion_nose_art_01","legion","rui/titan_loadout/nose_art/legion_nose_art_01","#LEGION_NOSE_ART_01",0
+"legion_nose_art_02","legion","rui/titan_loadout/nose_art/legion_nose_art_02","#LEGION_NOSE_ART_02",0
+"legion_nose_art_03","legion","rui/titan_loadout/nose_art/legion_nose_art_03","#LEGION_NOSE_ART_03",0
+"legion_nose_art_04","legion","rui/titan_loadout/nose_art/legion_nose_art_04","#LEGION_NOSE_ART_04",0
+"legion_nose_art_05","legion","rui/titan_loadout/nose_art/legion_nose_art_05","#LEGION_NOSE_ART_05",0
+"legion_nose_art_06","legion","rui/titan_loadout/nose_art/legion_nose_art_06","#LEGION_NOSE_ART_06",0
+"legion_nose_art_07","legion","rui/titan_loadout/nose_art/legion_nose_art_07","#LEGION_NOSE_ART_07",0
+"legion_nose_art_08","legion","rui/titan_loadout/nose_art/legion_nose_art_08","#LEGION_NOSE_ART_08",0
+"legion_nose_art_09","legion","rui/titan_loadout/nose_art/legion_nose_art_09","#LEGION_NOSE_ART_09",0
+"legion_nose_art_10","legion","rui/titan_loadout/nose_art/legion_nose_art_10","#LEGION_NOSE_ART_10",0
+"legion_nose_art_11","legion","rui/titan_loadout/nose_art/legion_nose_art_11","#LEGION_NOSE_ART_11",0
+"legion_nose_art_12","legion","rui/titan_loadout/nose_art/legion_nose_art_12","#LEGION_NOSE_ART_12",300
+"legion_nose_art_13","legion","rui/titan_loadout/nose_art/legion_nose_art_13","#LEGION_NOSE_ART_13",0
+"legion_nose_art_14","legion","rui/titan_loadout/nose_art/legion_nose_art_14","#LEGION_NOSE_ART_14",300
+"ion_nose_art_17","ion","rui/titan_loadout/nose_art/ion_nose_art_17","#ION_NOSE_ART_17",0
+"ion_nose_art_18","ion","rui/titan_loadout/nose_art/ion_nose_art_18","#ION_NOSE_ART_18",0
+"ion_nose_art_19","ion","rui/titan_loadout/nose_art/ion_nose_art_19","#ION_NOSE_ART_19",0
+"ion_nose_art_20","ion","rui/titan_loadout/nose_art/ion_nose_art_20","#ION_NOSE_ART_20",0
+"ion_nose_art_21","ion","rui/titan_loadout/nose_art/ion_nose_art_21","#ION_NOSE_ART_21",0
+"scorch_nose_art_15","scorch","rui/titan_loadout/nose_art/scorch_nose_art_15","#SCORCH_NOSE_ART_15",0
+"scorch_nose_art_16","scorch","rui/titan_loadout/nose_art/scorch_nose_art_16","#SCORCH_NOSE_ART_16",0
+"scorch_nose_art_17","scorch","rui/titan_loadout/nose_art/scorch_nose_art_17","#SCORCH_NOSE_ART_17",0
+"scorch_nose_art_18","scorch","rui/titan_loadout/nose_art/scorch_nose_art_18","#SCORCH_NOSE_ART_18",0
+"scorch_nose_art_19","scorch","rui/titan_loadout/nose_art/scorch_nose_art_19","#SCORCH_NOSE_ART_19",0
+"ronin_nose_art_16","ronin","rui/titan_loadout/nose_art/ronin_nose_art_16","#RONIN_NOSE_ART_16",0
+"ronin_nose_art_17","ronin","rui/titan_loadout/nose_art/ronin_nose_art_17","#RONIN_NOSE_ART_17",0
+"ronin_nose_art_18","ronin","rui/titan_loadout/nose_art/ronin_nose_art_18","#RONIN_NOSE_ART_18",0
+"ronin_nose_art_19","ronin","rui/titan_loadout/nose_art/ronin_nose_art_19","#RONIN_NOSE_ART_19",0
+"ronin_nose_art_20","ronin","rui/titan_loadout/nose_art/ronin_nose_art_20","#RONIN_NOSE_ART_20",0
+"tone_nose_art_17","tone","rui/titan_loadout/nose_art/tone_nose_art_17","#TONE_NOSE_ART_17",0
+"tone_nose_art_18","tone","rui/titan_loadout/nose_art/tone_nose_art_18","#TONE_NOSE_ART_18",0
+"tone_nose_art_19","tone","rui/titan_loadout/nose_art/tone_nose_art_19","#TONE_NOSE_ART_19",0
+"tone_nose_art_20","tone","rui/titan_loadout/nose_art/tone_nose_art_20","#TONE_NOSE_ART_20",0
+"tone_nose_art_21","tone","rui/titan_loadout/nose_art/tone_nose_art_21","#TONE_NOSE_ART_21",0
+"northstar_nose_art_18","northstar","rui/titan_loadout/nose_art/northstar_nose_art_18","#NORTHSTAR_NOSE_ART_18",0
+"northstar_nose_art_19","northstar","rui/titan_loadout/nose_art/northstar_nose_art_19","#NORTHSTAR_NOSE_ART_19",0
+"northstar_nose_art_20","northstar","rui/titan_loadout/nose_art/northstar_nose_art_20","#NORTHSTAR_NOSE_ART_20",0
+"northstar_nose_art_21","northstar","rui/titan_loadout/nose_art/northstar_nose_art_21","#NORTHSTAR_NOSE_ART_21",0
+"northstar_nose_art_22","northstar","rui/titan_loadout/nose_art/northstar_nose_art_22","#NORTHSTAR_NOSE_ART_22",0
+"legion_nose_art_17","legion","rui/titan_loadout/nose_art/legion_nose_art_17","#LEGION_NOSE_ART_17",0
+"legion_nose_art_18","legion","rui/titan_loadout/nose_art/legion_nose_art_18","#LEGION_NOSE_ART_18",0
+"legion_nose_art_19","legion","rui/titan_loadout/nose_art/legion_nose_art_19","#LEGION_NOSE_ART_19",0
+"legion_nose_art_20","legion","rui/titan_loadout/nose_art/legion_nose_art_20","#LEGION_NOSE_ART_20",0
+"legion_nose_art_21","legion","rui/titan_loadout/nose_art/legion_nose_art_21","#LEGION_NOSE_ART_21",0
+"ion_nose_art_22","ion","rui/titan_loadout/nose_art/ion_nose_art_22","#ION_NOSE_ART_22",0
+"ion_nose_art_23","ion","rui/titan_loadout/nose_art/ion_nose_art_23","#ION_NOSE_ART_23",0
+"ion_nose_art_24","ion","rui/titan_loadout/nose_art/ion_nose_art_24","#ION_NOSE_ART_24",0
+"ion_nose_art_25","ion","rui/titan_loadout/nose_art/ion_nose_art_25","#ION_NOSE_ART_25",0
+"ion_nose_art_26","ion","rui/titan_loadout/nose_art/ion_nose_art_26","#ION_NOSE_ART_26",0
+"scorch_nose_art_20","scorch","rui/titan_loadout/nose_art/scorch_nose_art_20","#SCORCH_NOSE_ART_20",0
+"scorch_nose_art_21","scorch","rui/titan_loadout/nose_art/scorch_nose_art_21","#SCORCH_NOSE_ART_21",0
+"scorch_nose_art_22","scorch","rui/titan_loadout/nose_art/scorch_nose_art_22","#SCORCH_NOSE_ART_22",0
+"scorch_nose_art_23","scorch","rui/titan_loadout/nose_art/scorch_nose_art_23","#SCORCH_NOSE_ART_23",0
+"scorch_nose_art_24","scorch","rui/titan_loadout/nose_art/scorch_nose_art_24","#SCORCH_NOSE_ART_24",0
+"ronin_nose_art_21","ronin","rui/titan_loadout/nose_art/ronin_nose_art_21","#RONIN_NOSE_ART_21",0
+"ronin_nose_art_22","ronin","rui/titan_loadout/nose_art/ronin_nose_art_22","#RONIN_NOSE_ART_22",0
+"ronin_nose_art_23","ronin","rui/titan_loadout/nose_art/ronin_nose_art_23","#RONIN_NOSE_ART_23",0
+"ronin_nose_art_24","ronin","rui/titan_loadout/nose_art/ronin_nose_art_24","#RONIN_NOSE_ART_24",0
+"ronin_nose_art_25","ronin","rui/titan_loadout/nose_art/ronin_nose_art_25","#RONIN_NOSE_ART_25",0
+"tone_nose_art_22","tone","rui/titan_loadout/nose_art/tone_nose_art_22","#TONE_NOSE_ART_22",0
+"tone_nose_art_23","tone","rui/titan_loadout/nose_art/tone_nose_art_23","#TONE_NOSE_ART_23",0
+"tone_nose_art_24","tone","rui/titan_loadout/nose_art/tone_nose_art_24","#TONE_NOSE_ART_24",0
+"tone_nose_art_25","tone","rui/titan_loadout/nose_art/tone_nose_art_25","#TONE_NOSE_ART_25",0
+"tone_nose_art_26","tone","rui/titan_loadout/nose_art/tone_nose_art_26","#TONE_NOSE_ART_26",0
+"northstar_nose_art_23","northstar","rui/titan_loadout/nose_art/northstar_nose_art_23","#NORTHSTAR_NOSE_ART_23",0
+"northstar_nose_art_24","northstar","rui/titan_loadout/nose_art/northstar_nose_art_24","#NORTHSTAR_NOSE_ART_24",0
+"northstar_nose_art_25","northstar","rui/titan_loadout/nose_art/northstar_nose_art_25","#NORTHSTAR_NOSE_ART_25",0
+"northstar_nose_art_26","northstar","rui/titan_loadout/nose_art/northstar_nose_art_26","#NORTHSTAR_NOSE_ART_26",0
+"northstar_nose_art_27","northstar","rui/titan_loadout/nose_art/northstar_nose_art_27","#NORTHSTAR_NOSE_ART_27",0
+"legion_nose_art_22","legion","rui/titan_loadout/nose_art/legion_nose_art_22","#LEGION_NOSE_ART_22",0
+"legion_nose_art_23","legion","rui/titan_loadout/nose_art/legion_nose_art_23","#LEGION_NOSE_ART_23",0
+"legion_nose_art_24","legion","rui/titan_loadout/nose_art/legion_nose_art_24","#LEGION_NOSE_ART_24",0
+"legion_nose_art_25","legion","rui/titan_loadout/nose_art/legion_nose_art_25","#LEGION_NOSE_ART_25",0
+"legion_nose_art_26","legion","rui/titan_loadout/nose_art/legion_nose_art_26","#LEGION_NOSE_ART_26",0
+"vanguard_nose_art_none","vanguard","rui/menu/common/no_art","#FACTORY_ISSUE_NAME",0
+"vanguard_nose_art_01","vanguard","rui/titan_loadout/nose_art/monarch_nose_art_02","#VANGUARD_NOSE_ART_01",0
+"vanguard_nose_art_02","vanguard","rui/titan_loadout/nose_art/monarch_nose_art_03","#VANGUARD_NOSE_ART_02",0
+"vanguard_nose_art_03","vanguard","rui/titan_loadout/nose_art/monarch_nose_art_04","#VANGUARD_NOSE_ART_03",0
+"vanguard_nose_art_04","vanguard","rui/titan_loadout/nose_art/monarch_nose_art_05","#VANGUARD_NOSE_ART_04",0
+"vanguard_nose_art_05","vanguard","rui/titan_loadout/nose_art/monarch_nose_art_06","#VANGUARD_NOSE_ART_05",0
+"vanguard_nose_art_06","vanguard","rui/titan_loadout/nose_art/monarch_nose_art_07","#VANGUARD_NOSE_ART_06",0
+"vanguard_nose_art_07","vanguard","rui/titan_loadout/nose_art/monarch_nose_art_08","#VANGUARD_NOSE_ART_07",0
+"vanguard_nose_art_08","vanguard","rui/titan_loadout/nose_art/monarch_nose_art_09","#VANGUARD_NOSE_ART_08",0
+"vanguard_nose_art_09","vanguard","rui/titan_loadout/nose_art/monarch_nose_art_10","#VANGUARD_NOSE_ART_09",0
+"ion_nose_art_27","ion","rui/titan_loadout/nose_art/ion_nose_art_27","#ION_NOSE_ART_27",0
+"ion_nose_art_28","ion","rui/titan_loadout/nose_art/ion_nose_art_28","#ION_NOSE_ART_28",0
+"ion_nose_art_29","ion","rui/titan_loadout/nose_art/ion_nose_art_29","#ION_NOSE_ART_29",0
+"ion_nose_art_30","ion","rui/titan_loadout/nose_art/ion_nose_art_30","#ION_NOSE_ART_30",0
+"ion_nose_art_31","ion","rui/titan_loadout/nose_art/ion_nose_art_31","#ION_NOSE_ART_31",0
+"scorch_nose_art_25","scorch","rui/titan_loadout/nose_art/scorch_nose_art_25","#SCORCH_NOSE_ART_25",0
+"scorch_nose_art_26","scorch","rui/titan_loadout/nose_art/scorch_nose_art_26","#SCORCH_NOSE_ART_26",0
+"scorch_nose_art_27","scorch","rui/titan_loadout/nose_art/scorch_nose_art_27","#SCORCH_NOSE_ART_27",0
+"scorch_nose_art_28","scorch","rui/titan_loadout/nose_art/scorch_nose_art_28","#SCORCH_NOSE_ART_28",0
+"scorch_nose_art_29","scorch","rui/titan_loadout/nose_art/scorch_nose_art_29","#SCORCH_NOSE_ART_29",0
+"ronin_nose_art_26","ronin","rui/titan_loadout/nose_art/ronin_nose_art_26","#RONIN_NOSE_ART_26",0
+"ronin_nose_art_27","ronin","rui/titan_loadout/nose_art/ronin_nose_art_27","#RONIN_NOSE_ART_27",0
+"ronin_nose_art_28","ronin","rui/titan_loadout/nose_art/ronin_nose_art_28","#RONIN_NOSE_ART_28",0
+"ronin_nose_art_29","ronin","rui/titan_loadout/nose_art/ronin_nose_art_29","#RONIN_NOSE_ART_29",0
+"ronin_nose_art_30","ronin","rui/titan_loadout/nose_art/ronin_nose_art_30","#RONIN_NOSE_ART_30",0
+"tone_nose_art_27","tone","rui/titan_loadout/nose_art/tone_nose_art_27","#TONE_NOSE_ART_27",0
+"tone_nose_art_28","tone","rui/titan_loadout/nose_art/tone_nose_art_28","#TONE_NOSE_ART_28",0
+"tone_nose_art_29","tone","rui/titan_loadout/nose_art/tone_nose_art_29","#TONE_NOSE_ART_29",0
+"tone_nose_art_30","tone","rui/titan_loadout/nose_art/tone_nose_art_30","#TONE_NOSE_ART_30",0
+"tone_nose_art_31","tone","rui/titan_loadout/nose_art/tone_nose_art_31","#TONE_NOSE_ART_31",0
+"northstar_nose_art_28","northstar","rui/titan_loadout/nose_art/northstar_nose_art_28","#NORTHSTAR_NOSE_ART_28",0
+"northstar_nose_art_29","northstar","rui/titan_loadout/nose_art/northstar_nose_art_29","#NORTHSTAR_NOSE_ART_29",0
+"northstar_nose_art_30","northstar","rui/titan_loadout/nose_art/northstar_nose_art_30","#NORTHSTAR_NOSE_ART_30",0
+"northstar_nose_art_31","northstar","rui/titan_loadout/nose_art/northstar_nose_art_31","#NORTHSTAR_NOSE_ART_31",0
+"northstar_nose_art_32","northstar","rui/titan_loadout/nose_art/northstar_nose_art_32","#NORTHSTAR_NOSE_ART_32",0
+"legion_nose_art_27","legion","rui/titan_loadout/nose_art/legion_nose_art_27","#LEGION_NOSE_ART_27",0
+"legion_nose_art_28","legion","rui/titan_loadout/nose_art/legion_nose_art_28","#LEGION_NOSE_ART_28",0
+"legion_nose_art_29","legion","rui/titan_loadout/nose_art/legion_nose_art_29","#LEGION_NOSE_ART_29",0
+"legion_nose_art_30","legion","rui/titan_loadout/nose_art/legion_nose_art_30","#LEGION_NOSE_ART_30",0
+"legion_nose_art_31","legion","rui/titan_loadout/nose_art/legion_nose_art_31","#LEGION_NOSE_ART_31",0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_os_conversations.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_os_conversations.csv
new file mode 100644
index 00000000..6d7a8623
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_os_conversations.csv
@@ -0,0 +1,67 @@
+conversationname,priority,debounce
+"bettyAlarm",400,0.100000
+"warning",400,3.000000
+"caution",400,3.000000
+"multiTitanEngage",400,15.000000
+"outnumbered2to1",400,15.000000
+"outnumbered3to1",400,15.000000
+"outnumbered4to1",400,15.000000
+"embark",400,3.000000
+"disembark",400,3.000000
+"guard",2000,3.000000
+"follow",2000,3.000000
+"briefCriticalDamage",400,10.000000
+"manualEjectNotice",400,0.100000
+"autoEjectNotice",400,0.100000
+"doomState",400,0.100000
+"halfDoomState",400,0.100000
+"rodeoWarning",2000,3.000000
+"allyRodeoAttach",400,3.000000
+"allyRodeoDetach",400,3.000000
+"killEnemyRodeo",400,10.000000
+"warningEnemyPilot",400,10.000000
+"warningEnemyPilotMulti",400,10.000000
+"elimTarget",400,3.000000
+"elimEnemyPilot",400,3.000000
+"ejectedEnemy",400,3.000000
+"ejectedFriendly",400,3.000000
+"assistedByFriendlyTitan",400,10.000000
+"elimEnemyTitan",400,3.000000
+"elimFriendlyTitan",400,3.000000
+"assistedByFriendlyPilot",400,3.000000
+"hostileTitanInbound",2000,3.000000
+"friendlyRodeoOnEnemyTitan",400,3.000000
+"autoEngageGrunt",400,10.000000
+"autoEngagePilot",400,10.000000
+"autoEngageTitan",400,10.000000
+"autoEngageTitans",400,10.000000
+"killEnemyRodeoGnrc",400,10.000000
+"batteryGot",400,3.000000
+"predRangeLong",400,3.000000
+"predRangeShort",400,3.000000
+"smartCoreOnline",400,3.000000
+"smartCoreActivated",400,3.000000
+"smartCoreOffline",400,3.000000
+"flamewavecoreOnline",400,3.000000
+"flamewavecoreActivated",400,3.000000
+"hack_bt_workaround",400,3.000000
+"lasercoreOnline",400,3.000000
+"lasercoreActivated",400,3.000000
+"sonarPulse",400,3.000000
+"flightCoreOnline",400,3.000000
+"flightCoreActivated",400,3.000000
+"flightCoreOffline",400,3.000000
+"SalvocoreOnline",400,3.000000
+"SalvocoreActivated",400,3.000000
+"swordCoreOnline",400,3.000000
+"swordCoreActivated",400,3.000000
+"swordCoreOffline",400,3.000000
+"burstCoreOnline",400,3.000000
+"burstCoreActivated",400,3.000000
+"UpgradecoreOnline",400,3.000000
+"UpgradecoreActivated",400,3.000000
+"upgradeTo1",400,3.000000
+"upgradeTo2",400,3.000000
+"upgradeTo3",400,3.000000
+"upgradeToFin",400,3.000000
+"upgradeShieldReplenish",400,3.000000 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_passives.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_passives.csv
new file mode 100644
index 00000000..79f093c2
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_passives.csv
@@ -0,0 +1,52 @@
+passive,type,name,description,longdescription,image,hidden,cost
+"pas_build_up_nuclear_core","TITAN_GENERAL_PASSIVE","#GEAR_NUCLEAR_CORE","#GEAR_NUCLEAR_CORE_DESC","#GEAR_NUCLEAR_CORE_LONGDESC","rui/titan_loadout/passive/nuke_eject",0,5
+"pas_enhanced_titan_ai","TITAN_GENERAL_PASSIVE","#GEAR_ASSAULT_CHIP","#GEAR_ASSAULT_CHIP_DESC","#GEAR_ASSAULT_CHIP_LONGDESC","rui/titan_loadout/passive/assault_chip",0,25
+"pas_auto_eject","TITAN_GENERAL_PASSIVE","#GEAR_AUTO_EJECT","#GEAR_AUTO_EJECT_DESC","#GEAR_AUTO_EJECT_LONGDESC","rui/titan_loadout/passive/auto_eject",0,25
+"pas_hyper_core","TITAN_GENERAL_PASSIVE","#GEAR_CORE_HEADSTART","#GEAR_CORE_HEADSTART_DESC","#GEAR_CORE_HEADSTART_LONGDESC","rui/titan_loadout/passive/overcore",0,5
+"pas_anti_rodeo","TITAN_GENERAL_PASSIVE","#GEAR_ANTI_RODEO","#GEAR_ANTI_RODEO_DESC","#GEAR_ANTI_RODEO_LONGDESC","rui/titan_loadout/passive/improved_anti_rodeo",0,5
+"pas_mobility_dash_capacity","TITAN_GENERAL_PASSIVE","#GEAR_DASH_CAPACITY","#GEAR_DASH_CAPACITY_DESC","#GEAR_DASH_CAPACITY_LONGDESC","rui/titan_loadout/passive/dash_plus",0,5
+"pas_warpfall","TITAN_TITANFALL_PASSIVE","#GEAR_WARPFALL","#GEAR_WARPFALL_DESC","#GEAR_WARPFALL_LONGDESC","rui/titan_loadout/passive/titanfall_kit_warpfall",0,25
+"pas_bubbleshield","TITAN_TITANFALL_PASSIVE","#GEAR_BUBBLESHIELD","#GEAR_BUBBLESHIELD_DESC","#GEAR_BUBBLESHIELD_LONGDESC","rui/titan_loadout/passive/titanfall_kit_bubbleshield",0,14
+"pas_ronin_weapon","TITAN_RONIN_PASSIVE","#GEAR_RONIN_WEAPON","#GEAR_RONIN_WEAPON_DESC","#GEAR_RONIN_WEAPON_LONGDESC","rui/titan_loadout/passive/ronin_ricochet_round",0,25
+"pas_northstar_weapon","TITAN_NORTHSTAR_PASSIVE","#GEAR_NORTHSTAR_WEAPON","#GEAR_NORTHSTAR_WEAPON_DESC","#GEAR_NORTHSTAR_WEAPON_LONGDESC","rui/titan_loadout/passive/northstar_piercing_shot",0,25
+"pas_ion_weapon","TITAN_ION_PASSIVE","#GEAR_ION_WEAPON","#GEAR_ION_WEAPON_DESC","#GEAR_ION_WEAPON_LONGDESC","rui/titan_loadout/passive/ion_entangled_energy",0,25
+"pas_tone_weapon","TITAN_TONE_PASSIVE","#GEAR_TONE_WEAPON","#GEAR_TONE_WEAPON_DESC","#GEAR_TONE_WEAPON_LONGDESC","rui/titan_loadout/passive/tone_enhanced_tracker",0,25
+"pas_scorch_weapon","TITAN_SCORCH_PASSIVE","#GEAR_SCORCH_WEAPON","#GEAR_SCORCH_WEAPON_DESC","#GEAR_SCORCH_WEAPON_LONGDESC","rui/titan_loadout/passive/scorch_wildfire_launcher",0,25
+"pas_legion_weapon","TITAN_LEGION_PASSIVE","#GEAR_LEGION_WEAPON","#GEAR_LEGION_WEAPON_DESC","#GEAR_LEGION_WEAPON_LONGDESC","rui/titan_loadout/passive/legion_enhanced_ammo",0,25
+"pas_ion_tripwire","TITAN_ION_PASSIVE","#GEAR_ION_TRIPWIRE","#GEAR_ION_TRIPWIRE_DESC","#GEAR_ION_TRIPWIRE_LONGDESC","rui/titan_loadout/passive/ion_zero_point_tripwire",0,24
+"pas_ion_vortex","TITAN_ION_PASSIVE","#GEAR_ION_VORTEX","#GEAR_ION_VORTEX_DESC","#GEAR_ION_VORTEX_LONGDESC","rui/titan_loadout/passive/ion_vortex_amp",0,24
+"pas_ion_lasercannon","TITAN_ION_PASSIVE","#GEAR_ION_LASERCANNON","#GEAR_ION_LASERCANNON_DESC","#GEAR_ION_LASERCANNON_LONGDESC","rui/titan_loadout/passive/ion_grand_canon",0,24
+"pas_tone_rockets","TITAN_TONE_PASSIVE","#GEAR_TONE_ROCKETS","#GEAR_TONE_ROCKETS_DESC","#GEAR_TONE_ROCKETS_LONGDESC","rui/titan_loadout/passive/tone_rocket_barrage",0,24
+"pas_tone_sonar","TITAN_TONE_PASSIVE","#GEAR_TONE_SONAR","#GEAR_TONE_SONAR_DESC","#GEAR_TONE_SONAR_LONGDESC","rui/titan_loadout/passive/tone_pulse_echo",0,24
+"pas_tone_wall","TITAN_TONE_PASSIVE","#GEAR_TONE_WALL","#GEAR_TONE_WALL_DESC","#GEAR_TONE_WALL_LONGDESC","rui/titan_loadout/passive/tone_reinforced_partical_wall",0,24
+"pas_ronin_arcwave","TITAN_RONIN_PASSIVE","#GEAR_RONIN_ARCWAVE","#GEAR_RONIN_ARCWAVE_DESC","#GEAR_RONIN_ARCWAVE_LONGDESC","rui/titan_loadout/passive/ronin_thunderstorm",0,24
+"pas_ronin_phase","TITAN_RONIN_PASSIVE","#GEAR_RONIN_PHASE","#GEAR_RONIN_PHASE_DESC","#GEAR_RONIN_PHASE_LONGDESC","rui/titan_loadout/passive/ronin_temporal_anomaly",0,24
+"pas_ronin_swordcore","TITAN_RONIN_PASSIVE","#GEAR_RONIN_SWORDCORE","#GEAR_RONIN_SWORDCORE_DESC","#GEAR_RONIN_SWORDCORE_LONGDESC","rui/titan_loadout/passive/ronin_highlander",0,24
+"pas_northstar_cluster","TITAN_NORTHSTAR_PASSIVE","#GEAR_NORTHSTAR_CLUSTER","#GEAR_NORTHSTAR_CLUSTER_DESC","#GEAR_NORTHSTAR_CLUSTER_LONGDESC","rui/titan_loadout/passive/northstar_enhanced_payload",0,24
+"pas_northstar_trap","TITAN_NORTHSTAR_PASSIVE","#GEAR_NORTHSTAR_TRAP","#GEAR_NORTHSTAR_TRAP_DESC","#GEAR_NORTHSTAR_TRAP_LONGDESC","rui/titan_loadout/passive/northstar_twin_trap",0,24
+"pas_northstar_flightcore","TITAN_NORTHSTAR_PASSIVE","#GEAR_NORTHSTAR_FLIGHTCORE","#GEAR_NORTHSTAR_FLIGHTCORE_DESC","#GEAR_NORTHSTAR_FLIGHTCORE_LONGDESC","rui/titan_loadout/passive/northstar_viper_thrusters",0,24
+"pas_scorch_firewall","TITAN_SCORCH_PASSIVE","#GEAR_SCORCH_FIREWALL","#GEAR_SCORCH_FIREWALL_DESC","#GEAR_SCORCH_FIREWALL_LONGDESC","rui/titan_loadout/passive/scorch_fuel",0,24
+"pas_scorch_shield","TITAN_SCORCH_PASSIVE","#GEAR_SCORCH_SHIELD","#GEAR_SCORCH_SHIELD_DESC","#GEAR_SCORCH_SHIELD_LONGDESC","rui/titan_loadout/passive/scorch_inferno_shield",0,24
+"pas_scorch_selfdmg","TITAN_SCORCH_PASSIVE","#GEAR_SCORCH_SELFDMG","#GEAR_SCORCH_SELFDMG_DESC","#GEAR_SCORCH_SELFDMG_LONGDESC","rui/titan_loadout/passive/scorch_tempered_plating",0,24
+"pas_legion_spinup","TITAN_LEGION_PASSIVE","#GEAR_LEGION_SPINUP","#GEAR_LEGION_SPINUP_DESC","#GEAR_LEGION_SPINUP_LONGDESC","rui/titan_loadout/passive/legion_lightweight_alloys",0,24
+"pas_legion_gunshield","TITAN_LEGION_PASSIVE","#GEAR_LEGION_GUNSHIELD","#GEAR_LEGION_GUNSHIELD_DESC","#GEAR_LEGION_GUNSHIELD_LONGDESC","rui/titan_loadout/passive/legion_bulwark",0,24
+"pas_legion_smartcore","TITAN_LEGION_PASSIVE","#GEAR_LEGION_SMARTCORE","#GEAR_LEGION_SMARTCORE_DESC","#GEAR_LEGION_SMARTCORE_LONGDESC","rui/titan_loadout/passive/legion_sensor_array",0,24
+"pas_ion_weapon_ads","TITAN_ION_PASSIVE","#GEAR_ION_SPLIT","#GEAR_ION_SPLIT_DESC","#GEAR_ION_SPLIT_LONGDESC","rui/titan_loadout/passive/ion_diffraction_lens",0,24
+"pas_tone_burst","TITAN_TONE_PASSIVE","#GEAR_TONE_BURST","#GEAR_TONE_BURST_DESC","#GEAR_TONE_BURST_LONGDESC","rui/titan_loadout/passive/tone_40mm_burst",0,24
+"pas_legion_chargeshot","TITAN_LEGION_PASSIVE","#GEAR_LEGION_CHARGESHOT","#GEAR_LEGION_CHARGESHOT_DESC","#GEAR_LEGION_CHARGESHOT_LONGDESC","rui/titan_loadout/passive/legion_siege_mode",0,24
+"pas_ronin_autoshift","TITAN_RONIN_PASSIVE","#GEAR_RONIN_AUTOSHIFT","#GEAR_RONIN_AUTOSHIFT_DESC","#GEAR_RONIN_AUTOSHIFT_LONGDESC","rui/titan_loadout/passive/ronin_auto_shift",0,24
+"pas_northstar_optics","TITAN_NORTHSTAR_PASSIVE","#GEAR_NORTHSTAR_OPTICS","#GEAR_NORTHSTAR_OPTICS_DESC","#GEAR_NORTHSTAR_OPTICS_LONGDESC","rui/titan_loadout/passive/northstar_threat_optics",0,24
+"pas_scorch_flamecore","TITAN_SCORCH_PASSIVE","#GEAR_SCORCH_FLAMECORE","#GEAR_SCORCH_FLAMECORE_DESC","#GEAR_SCORCH_FLAMECORE_LONGDESC","rui/titan_loadout/passive/scorch_scorched_earth",0,24
+"pas_vanguard_coremeter","TITAN_VANGUARD_PASSIVE","#GEAR_VANGUARD_COREMETER","#GEAR_VANGUARD_COREMETER_DESC","#GEAR_VANGUARD_COREMETER_LONGDESC","rui/titan_loadout/passive/vanguard_siphon",0,24
+"pas_vanguard_shield","TITAN_VANGUARD_PASSIVE","#GEAR_VANGUARD_SHIELD","#GEAR_VANGUARD_SHIELD_DESC","#GEAR_VANGUARD_SHIELD_LONGDESC","rui/titan_loadout/passive/vanguard_survivor",0,24
+"pas_vanguard_rearm","TITAN_VANGUARD_PASSIVE","#GEAR_VANGUARD_REARM","#GEAR_VANGUARD_REARM_DESC","#GEAR_VANGUARD_REARM_LONGDESC","rui/titan_loadout/passive/vanguard_rearm",0,24
+"pas_vanguard_doom","TITAN_VANGUARD_PASSIVE","#GEAR_VANGUARD_DOOM","#GEAR_VANGUARD_DOOM_DESC","#GEAR_VANGUARD_DOOM_LONGDESC","rui/titan_loadout/passive/vanguard_fittest",0,24
+"pas_vanguard_core1","TITAN_UPGRADE1_PASSIVE","#GEAR_VANGUARD_CORE1","#GEAR_VANGUARD_CORE1_DESC","#GEAR_VANGUARD_CORE1_LONGDESC","rui/titan_loadout/passive/monarch_core_arc_rounds",0,24
+"pas_vanguard_core2","TITAN_UPGRADE1_PASSIVE","#GEAR_VANGUARD_CORE2","#GEAR_VANGUARD_CORE2_DESC","#GEAR_VANGUARD_CORE2_LONGDESC","rui/titan_loadout/passive/monarch_core_missile_racks",0,24
+"pas_vanguard_core3","TITAN_UPGRADE1_PASSIVE","#GEAR_VANGUARD_CORE3","#GEAR_VANGUARD_CORE3_DESC","#GEAR_VANGUARD_CORE3_LONGDESC","rui/titan_loadout/passive/monarch_core_energy_field",0,24
+"pas_vanguard_core4","TITAN_UPGRADE2_PASSIVE","#GEAR_VANGUARD_CORE4","#GEAR_VANGUARD_CORE4_DESC","#GEAR_VANGUARD_CORE4_LONGDESC","rui/titan_loadout/passive/monarch_core_swift_rearm",0,24
+"pas_vanguard_core5","TITAN_UPGRADE2_PASSIVE","#GEAR_VANGUARD_CORE5","#GEAR_VANGUARD_CORE5_DESC","#GEAR_VANGUARD_CORE5_LONGDESC","rui/titan_loadout/passive/monarch_core_maelstrom",0,24
+"pas_vanguard_core6","TITAN_UPGRADE2_PASSIVE","#GEAR_VANGUARD_CORE6","#GEAR_VANGUARD_CORE6_DESC","#GEAR_VANGUARD_CORE6_LONGDESC","rui/titan_loadout/passive/monarch_core_energy_transfer",0,24
+"pas_vanguard_core7","TITAN_UPGRADE3_PASSIVE","#GEAR_VANGUARD_CORE7","#GEAR_VANGUARD_CORE7_DESC","#GEAR_VANGUARD_CORE7_LONGDESC","rui/titan_loadout/passive/monarch_core_multi_target",0,24
+"pas_vanguard_core8","TITAN_UPGRADE3_PASSIVE","#GEAR_VANGUARD_CORE8","#GEAR_VANGUARD_CORE8_DESC","#GEAR_VANGUARD_CORE8_LONGDESC","rui/titan_loadout/passive/monarch_core_superior_chassis",0,24
+"pas_vanguard_core9","TITAN_UPGRADE3_PASSIVE","#GEAR_VANGUARD_CORE9","#GEAR_VANGUARD_CORE9_DESC","#GEAR_VANGUARD_CORE9_LONGDESC","rui/titan_loadout/passive/monarch_core_xo16",0,24 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_primary_mods.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_primary_mods.csv
new file mode 100644
index 00000000..d25cc30d
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_primary_mods.csv
@@ -0,0 +1 @@
+mod,weapon,statDamage,statAccuracy,statRange,statFireRate,statClipSize,hidden \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_primary_mods_common.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_primary_mods_common.csv
new file mode 100644
index 00000000..e4659a7e
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_primary_mods_common.csv
@@ -0,0 +1 @@
+mod,name,description,image \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_primary_weapons.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_primary_weapons.csv
new file mode 100644
index 00000000..c617d653
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_primary_weapons.csv
@@ -0,0 +1,10 @@
+itemRef,hidden,defaultMod2,hidden
+"mp_titanweapon_leadwall",0,"",0
+"mp_titanweapon_meteor",0,"",0
+"mp_titanweapon_particle_accelerator",0,"",0
+"mp_titanweapon_predator_cannon",0,"",0
+"mp_titanweapon_sniper",0,"",0
+"mp_titanweapon_sticky_40mm",0,"",0
+"mp_titanweapon_xo16_shorty",1,"",0
+"mp_titanweapon_rocketeer_rocketstream",1,"",0
+"mp_titanweapon_xo16_vanguard",0,"",0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_properties.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_properties.csv
new file mode 100644
index 00000000..4b9369ca
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_properties.csv
@@ -0,0 +1,10 @@
+setFile,primeSetFile,titanRef,primeTitanRef,titanLoadoutInSP,mp_npcUseAllowed,difficulty,coreBuildingIcon,coreReadyIcon,hintIcon,loadoutIcon,loadoutIconFD,fdRole,desc,speedDisplay,damageDisplay,healthDisplay,dashDisplay,primary,melee,ordnance,special,antirodeo,coreAbility,passive1,passive2,passive3,passive4,passive5,passive6,titanExecution,bossCharacter,hidden,menuItem,menuTitle,menuSubTitle,menuLongDesc,menuFlavorText,dialogHint,weaponImage
+"titan_buddy","","bt","",1,0,1,"rui\titan_loadout\core\titan_core_burst_core","rui\titan_loadout\core\titan_core_burst_core","rui\menu\common\bulb_hint_icon","rui/menu/postgame/vanguard_icon","rui/menu/fd_menu/fd_icon_monarch","#FD_ROLE_MONARCH","#MP_TITAN_LOADOUT_DESC_XO16",2,1,2,2,"mp_titanweapon_xo16_shorty","melee_titan_punch","mp_titanweapon_shoulder_rockets","mp_titanweapon_vortex_shield","mp_titanability_smoke","mp_titancore_amp_core","TITAN_GENERAL_PASSIVE","TITAN_GENERAL_PASSIVE","TITAN_TITANFALL_PASSIVE","TITAN_UPGRADE1_PASSIVE","TITAN_UPGRADE2_PASSIVE","TITAN_UPGRADE3_PASSIVE","","",1,"#SP_TITAN_LOADOUT_MENUITEM_XO16","#SP_TITAN_LOADOUT_TITLE_XO16","#SP_TITAN_LOADOUT_SUBTITLE_XO16","#SP_TITAN_LOADOUT_DESC_XO16","#SP_TITAN_LOADOUT_FLAVOR_XO16","diag_sp_extra_GB101_47_01_mcor_bt","rui\titan_loadout\loadout_select\ls_wep_ttn_x016_shorty"
+"titan_atlas_tracker","titan_atlas_tone_prime","tone","tone_prime",1,1,2,"rui\titan_loadout\core\titan_core_salvo","rui\titan_loadout\core\titan_core_salvo","rui\menu\common\bulb_hint_icon","rui/menu/postgame/tone_icon","rui/menu/fd_menu/fd_icon_tone","#FD_ROLE_TONE","#MP_TITAN_LOADOUT_DESC_TONE",2,2,2,1,"mp_titanweapon_sticky_40mm","melee_titan_punch_tone","mp_titanweapon_tracker_rockets","mp_titanability_particle_wall","mp_titanability_sonar_pulse","mp_titancore_salvo_core","TITAN_GENERAL_PASSIVE","TITAN_TONE_PASSIVE","TITAN_TITANFALL_PASSIVE","TITAN_UPGRADE1_PASSIVE","TITAN_UPGRADE2_PASSIVE","TITAN_UPGRADE3_PASSIVE","TITAN_TONE_EXECUTION","Richter",0,"#SP_TITAN_LOADOUT_MENUITEM_TONE","#SP_TITAN_LOADOUT_TITLE_TONE","#SP_TITAN_LOADOUT_SUBTITLE_TONE","#SP_TITAN_LOADOUT_DESC_TONE","#SP_TITAN_LOADOUT_FLAVOR_TONE","diag_sp_extra_GB101_37_01_mcor_bt","rui\titan_loadout\loadout_select\ls_wep_ttn_40mm"
+"titan_ogre_meteor","titan_ogre_scorch_prime","scorch","scorch_prime",1,1,3,"rui\titan_loadout\core\titan_core_flame_wave","rui\titan_loadout\core\titan_core_flame_wave","rui\menu\common\bulb_hint_icon","rui/menu/postgame/scorch_icon","rui/menu/fd_menu/fd_icon_scorch","#FD_ROLE_SCORCH","#MP_TITAN_LOADOUT_DESC_SCORCH",1,3,3,0,"mp_titanweapon_meteor","melee_titan_punch_scorch","mp_titanweapon_flame_wall","mp_titanweapon_heat_shield","mp_titanability_slow_trap","mp_titancore_flame_wave","TITAN_GENERAL_PASSIVE","TITAN_SCORCH_PASSIVE","TITAN_TITANFALL_PASSIVE","TITAN_UPGRADE1_PASSIVE","TITAN_UPGRADE2_PASSIVE","TITAN_UPGRADE3_PASSIVE","TITAN_SCORCH_EXECUTION","Kane",0,"#SP_TITAN_LOADOUT_MENUITEM_SCORCH","#SP_TITAN_LOADOUT_TITLE_SCORCH","#SP_TITAN_LOADOUT_SUBTITLE_SCORCH","#SP_TITAN_LOADOUT_DESC_SCORCH","#SP_TITAN_LOADOUT_FLAVOR_SCORCH","diag_sp_extra_GB101_33_01_mcor_bt","rui\titan_loadout\loadout_select\ls_wep_ttn_meteor"
+"titan_stryder_rocketeer","","brute4","",1,0,1,"rui\titan_loadout\core\titan_core_flight","rui\titan_loadout\core\titan_core_flight","rui\menu\common\bulb_hint_icon","rui/menu/postgame/northstar_icon","rui/menu/fd_menu/fd_icon_northstar","#FD_ROLE_NORTHSTAR","#MP_TITAN_LOADOUT_DESC_BRUTE",3,2,1,2,"mp_titanweapon_rocketeer_rocketstream","melee_titan_punch","mp_titanweapon_shoulder_rockets","mp_titanweapon_vortex_shield","mp_titanability_hover","mp_titancore_flight_core","TITAN_GENERAL_PASSIVE","TITAN_GENERAL_PASSIVE","TITAN_TITANFALL_PASSIVE","TITAN_UPGRADE1_PASSIVE","TITAN_UPGRADE2_PASSIVE","TITAN_UPGRADE3_PASSIVE","","",0,"#SP_TITAN_LOADOUT_MENUITEM_BRUTE","#SP_TITAN_LOADOUT_TITLE_BRUTE","#SP_TITAN_LOADOUT_SUBTITLE_BRUTE","#SP_TITAN_LOADOUT_DESC_BRUTE","#SP_TITAN_LOADOUT_FLAVOR_BRUTE","diag_sp_extra_GB101_47_01_mcor_bt","rui\titan_loadout\loadout_select\ls_wep_ttn_rocketeer"
+"titan_atlas_stickybomb","titan_atlas_ion_prime","ion","ion_prime",1,1,1,"rui\titan_loadout\core\titan_core_laser","rui\titan_loadout\core\titan_core_laser","rui\menu\common\bulb_hint_icon","rui/menu/postgame/ion_icon","rui/menu/fd_menu/fd_icon_ion","#FD_ROLE_ION","#MP_TITAN_LOADOUT_DESC_ION",2,1,2,1,"mp_titanweapon_particle_accelerator","melee_titan_punch_ion","mp_titanweapon_laser_lite","mp_titanweapon_vortex_shield_ion","mp_titanability_laser_trip","mp_titancore_laser_cannon","TITAN_GENERAL_PASSIVE","TITAN_ION_PASSIVE","TITAN_TITANFALL_PASSIVE","TITAN_UPGRADE1_PASSIVE","TITAN_UPGRADE2_PASSIVE","TITAN_UPGRADE3_PASSIVE","TITAN_ION_EXECUTION","Slone",0,"#SP_TITAN_LOADOUT_MENUITEM_ION","#SP_TITAN_LOADOUT_TITLE_ION","#SP_TITAN_LOADOUT_SUBTITLE_ION","#SP_TITAN_LOADOUT_DESC_ION","#SP_TITAN_LOADOUT_FLAVOR_ION","diag_sp_extra_GB101_34_01_mcor_bt","rui\titan_loadout\loadout_select\ls_wep_ttn_particle_accelerator"
+"titan_stryder_leadwall","titan_stryder_ronin_prime","ronin","ronin_prime",1,1,3,"rui\titan_loadout\core\titan_core_sword","rui\titan_loadout\core\titan_core_sword","rui\menu\common\bulb_hint_icon","rui/menu/postgame/ronin_icon","rui/menu/fd_menu/fd_icon_ronin","#FD_ROLE_RONIN","#MP_TITAN_LOADOUT_DESC_RONIN",3,2,1,2,"mp_titanweapon_leadwall","melee_titan_sword","mp_titanweapon_arc_wave","mp_titanability_basic_block","mp_titanability_phase_dash","mp_titancore_shift_core","TITAN_GENERAL_PASSIVE","TITAN_RONIN_PASSIVE","TITAN_TITANFALL_PASSIVE","TITAN_UPGRADE1_PASSIVE","TITAN_UPGRADE2_PASSIVE","TITAN_UPGRADE3_PASSIVE","TITAN_RONIN_EXECUTION","Ash",0,"#SP_TITAN_LOADOUT_MENUITEM_RONIN","#SP_TITAN_LOADOUT_TITLE_RONIN","#SP_TITAN_LOADOUT_SUBTITLE_RONIN","#SP_TITAN_LOADOUT_DESC_RONIN","#SP_TITAN_LOADOUT_FLAVOR_RONIN","diag_sp_extra_GB101_35_01_mcor_bt","rui\titan_loadout\loadout_select\ls_wep_ttn_leadwall"
+"titan_stryder_sniper","titan_stryder_northstar_prime","northstar","northstar_prime",1,1,2,"rui\titan_loadout\core\titan_core_flight","rui\titan_loadout\core\titan_core_flight","rui\menu\common\bulb_hint_icon","rui/menu/postgame/northstar_icon","rui/menu/fd_menu/fd_icon_northstar","#FD_ROLE_NORTHSTAR","#MP_TITAN_LOADOUT_DESC_NORTHSTAR",3,3,1,2,"mp_titanweapon_sniper","melee_titan_punch_northstar","mp_titanweapon_dumbfire_rockets","mp_titanability_tether_trap","mp_titanability_hover","mp_titancore_flight_core","TITAN_GENERAL_PASSIVE","TITAN_NORTHSTAR_PASSIVE","TITAN_TITANFALL_PASSIVE","TITAN_UPGRADE1_PASSIVE","TITAN_UPGRADE2_PASSIVE","TITAN_UPGRADE3_PASSIVE","TITAN_NORTHSTAR_EXECUTION","Viper",0,"#SP_TITAN_LOADOUT_MENUITEM_NORTHSTAR","#SP_TITAN_LOADOUT_TITLE_NORTHSTAR","#SP_TITAN_LOADOUT_SUBTITLE_NORTHSTAR","#SP_TITAN_LOADOUT_DESC_NORTHSTAR","#SP_TITAN_LOADOUT_FLAVOR_NORTHSTAR","diag_sp_extra_GB101_36_01_mcor_bt","rui\titan_loadout\loadout_select\ls_wep_ttn_sniper"
+"titan_ogre_minigun","titan_ogre_legion_prime","legion","legion_prime",1,1,2,"rui\titan_loadout\core\titan_core_smart","rui\titan_loadout\core\titan_core_smart","rui\menu\common\bulb_hint_icon","rui/menu/postgame/legion_icon","rui/menu/fd_menu/fd_icon_legion","#FD_ROLE_LEGION","#MP_TITAN_LOADOUT_DESC_LEGION",1,3,3,0,"mp_titanweapon_predator_cannon","melee_titan_punch_legion","mp_titanability_power_shot","mp_titanability_gun_shield","mp_titanability_ammo_swap","mp_titancore_siege_mode","TITAN_GENERAL_PASSIVE","TITAN_LEGION_PASSIVE","TITAN_TITANFALL_PASSIVE","TITAN_UPGRADE1_PASSIVE","TITAN_UPGRADE2_PASSIVE","TITAN_UPGRADE3_PASSIVE","TITAN_LEGION_EXECUTION","Blisk",0,"#SP_TITAN_LOADOUT_MENUITEM_LEGION","#SP_TITAN_LOADOUT_TITLE_LEGION","#SP_TITAN_LOADOUT_SUBTITLE_LEGION","#SP_TITAN_LOADOUT_DESC_LEGION","#SP_TITAN_LOADOUT_FLAVOR_LEGION","diag_sp_extra_GB101_32_01_mcor_bt","rui\titan_loadout\loadout_select\ls_wep_ttn_predator"
+"titan_atlas_vanguard","","vanguard","vanguard_prime",0,1,3,"rui\titan_loadout\core\titan_core_smart","rui\titan_loadout\core\titan_core_smart","rui\menu\common\bulb_hint_icon","rui/menu/postgame/vanguard_icon","rui/menu/fd_menu/fd_icon_monarch","#FD_ROLE_MONARCH","#MP_TITAN_LOADOUT_DESC_VANGUARD",2,2,2,1,"mp_titanweapon_xo16_vanguard","melee_titan_punch_vanguard","mp_titanweapon_salvo_rockets","mp_titanweapon_stun_laser","mp_titanability_rearm","mp_titancore_upgrade","TITAN_GENERAL_PASSIVE","TITAN_VANGUARD_PASSIVE","TITAN_TITANFALL_PASSIVE","TITAN_UPGRADE1_PASSIVE","TITAN_UPGRADE2_PASSIVE","TITAN_UPGRADE3_PASSIVE","TITAN_VANGUARD_EXECUTION","Richter",0,"#SP_TITAN_LOADOUT_MENUITEM_TONE","#SP_TITAN_LOADOUT_TITLE_TONE","#SP_TITAN_LOADOUT_SUBTITLE_TONE","#SP_TITAN_LOADOUT_DESC_TONE","#SP_TITAN_LOADOUT_FLAVOR_TONE","diag_sp_extra_GB101_37_01_mcor_bt","rui\titan_loadout\loadout_select\ls_wep_ttn_40mm" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_skins.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_skins.csv
new file mode 100644
index 00000000..da8b3172
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_skins.csv
@@ -0,0 +1,56 @@
+ref,titanRef,image,name,cost,skinIndex
+"ion_skin_01","ion","rui/titan_loadout/skins/ion_skin_01","#ION_SKIN_01",0,1
+"ion_skin_02","ion","rui/titan_loadout/skins/ion_skin_02","#ION_SKIN_02",0,3
+"ion_skin_03","ion","rui/titan_loadout/skins/ion_skin_03","#ION_SKIN_03",500,4
+"ion_skin_04","ion","rui/titan_loadout/skins/ion_skin_04","#ION_SKIN_04",0,5
+"ion_skin_06","ion","rui/titan_loadout/skins/ion_skin_06","#ION_SKIN_06",0,6
+"scorch_skin_01","scorch","rui/titan_loadout/skins/scorch_skin_01","#SCORCH_SKIN_01",0,1
+"scorch_skin_02","scorch","rui/titan_loadout/skins/scorch_skin_02","#SCORCH_SKIN_02",0,3
+"scorch_skin_03","scorch","rui/titan_loadout/skins/scorch_skin_03","#SCORCH_SKIN_03",0,4
+"scorch_skin_04","scorch","rui/titan_loadout/skins/scorch_skin_04","#SCORCH_SKIN_04",0,5
+"ronin_skin_01","ronin","rui/titan_loadout/skins/ronin_skin_01","#RONIN_SKIN_01",0,1
+"ronin_skin_02","ronin","rui/titan_loadout/skins/ronin_skin_02","#RONIN_SKIN_02",0,3
+"ronin_skin_03","ronin","rui/titan_loadout/skins/ronin_skin_03","#RONIN_SKIN_03",0,4
+"ronin_skin_04","ronin","rui/titan_loadout/skins/ronin_skin_04","#RONIN_SKIN_04",0,5
+"tone_skin_01","tone","rui/titan_loadout/skins/tone_skin_01","#TONE_SKIN_01",0,1
+"tone_skin_02","tone","rui/titan_loadout/skins/tone_skin_02","#TONE_SKIN_02",0,3
+"tone_skin_03","tone","rui/titan_loadout/skins/tone_skin_03","#TONE_SKIN_03",0,4
+"tone_skin_04","tone","rui/titan_loadout/skins/tone_skin_04","#TONE_SKIN_04",0,5
+"northstar_skin_01","northstar","rui/titan_loadout/skins/northstar_skin_01","#NORTHSTAR_SKIN_01",0,1
+"northstar_skin_02","northstar","rui/titan_loadout/skins/northstar_skin_02","#NORTHSTAR_SKIN_02",0,3
+"northstar_skin_03","northstar","rui/titan_loadout/skins/northstar_skin_03","#NORTHSTAR_SKIN_03",0,4
+"northstar_skin_04","northstar","rui/titan_loadout/skins/northstar_skin_04","#NORTHSTAR_SKIN_04",0,5
+"legion_skin_01","legion","rui/titan_loadout/skins/legion_skin_01","#LEGION_SKIN_01",0,1
+"legion_skin_02","legion","rui/titan_loadout/skins/legion_skin_02","#LEGION_SKIN_02",0,3
+"legion_skin_03","legion","rui/titan_loadout/skins/legion_skin_03","#LEGION_SKIN_03",0,4
+"legion_skin_04","legion","rui/titan_loadout/skins/legion_skin_04","#LEGION_SKIN_04",0,5
+"ion_skin_10","ion","rui/titan_loadout/skins/ion_skin_10","#ION_SKIN_10",0,7
+"tone_skin_06","tone","rui/titan_loadout/skins/tone_skin_06","#TONE_SKIN_06",0,6
+"scorch_skin_07","scorch","rui/titan_loadout/skins/scorch_skin_07","#SCORCH_SKIN_07",0,6
+"ronin_skin_10","ronin","rui/titan_loadout/skins/ronin_skin_10","#RONIN_SKIN_10",0,6
+"northstar_skin_10","northstar","rui/titan_loadout/skins/northstar_skin_10","#NORTHSTAR_SKIN_10",0,6
+"legion_skin_07","legion","rui/titan_loadout/skins/legion_skin_07","#LEGION_SKIN_07",0,6
+"ion_skin_11","ion","rui/titan_loadout/skins/ion_skin_11","#ION_SKIN_11",0,8
+"tone_skin_07","tone","rui/titan_loadout/skins/tone_skin_07","#TONE_SKIN_07",0,7
+"scorch_skin_08","scorch","rui/titan_loadout/skins/scorch_skin_08","#SCORCH_SKIN_08",0,7
+"ronin_skin_11","ronin","rui/titan_loadout/skins/ronin_skin_11","#RONIN_SKIN_11",0,7
+"northstar_skin_11","northstar","rui/titan_loadout/skins/northstar_skin_11","#NORTHSTAR_SKIN_11",0,7
+"legion_skin_08","legion","rui/titan_loadout/skins/legion_skin_08","#LEGION_SKIN_08",0,7
+"vanguard_skin_01","vanguard","rui/titan_loadout/skins/legion_skin_01","#LEGION_SKIN_01",0,1
+"vanguard_skin_02","vanguard","rui/titan_loadout/skins/legion_skin_02","#LEGION_SKIN_02",0,3
+"vanguard_skin_03","vanguard","rui/titan_loadout/skins/legion_skin_03","#LEGION_SKIN_03",0,4
+"vanguard_skin_07","vanguard","rui/titan_loadout/skins/legion_skin_07","#LEGION_SKIN_07",0,6
+"vanguard_skin_08","vanguard","rui/titan_loadout/skins/legion_skin_08","#LEGION_SKIN_08",0,7
+"northstar_skin_06","northstar","rui/titan_loadout/skins/northstar_skin_06","#NORTHSTAR_SKIN_06",0,8
+"ronin_skin_07","ronin","rui/titan_loadout/skins/ronin_skin_07","#RONIN_SKIN_07",0,8
+"scorch_skin_06","scorch","rui/titan_loadout/skins/scorch_skin_06","#SCORCH_SKIN_06",0,8
+"ion_skin_07","ion","rui/titan_loadout/skins/ion_skin_07","#ION_SKIN_07",0,9
+"legion_skin_09","legion","rui/titan_loadout/skins/legion_skin_09","#LEGION_SKIN_09",0,8
+"tone_skin_08","tone","rui/titan_loadout/skins/tone_skin_08","#TONE_SKIN_08",0,8
+"northstar_skin_fd","northstar","rui/titan_loadout/skins/northstar_skin_fd","#NORTHSTAR_SKIN_FD",0,9
+"ronin_skin_fd","ronin","rui/titan_loadout/skins/ronin_skin_fd","#RONIN_SKIN_FD",0,9
+"scorch_skin_fd","scorch","rui/titan_loadout/skins/scorch_skin_fd","#SCORCH_SKIN_FD",0,9
+"ion_skin_fd","ion","rui/titan_loadout/skins/ion_skin_fd","#ION_SKIN_FD",0,10
+"legion_skin_fd","legion","rui/titan_loadout/skins/legion_skin_fd","#LEGION_SKIN_FD",0,9
+"tone_skin_fd","tone","rui/titan_loadout/skins/tone_skin_fd","#TONE_SKIN_FD",0,9
+"monarch_skin_fd","vanguard","rui/titan_loadout/skins/monarch_skin_fd","#MONARCH_SKIN_FD",0,3 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titan_voices.csv b/Northstar.CustomServers/mod/scripts/datatable/titan_voices.csv
new file mode 100644
index 00000000..8a762f9b
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titan_voices.csv
@@ -0,0 +1,9 @@
+weapon,name,description,image,hidden
+"titanos_bt","#TITAN_OS_BT_NAME","#TITAN_OS_BT_LONGDESC","material/ui/menu/voice_personality_icons/betty_voice_icon_gen.rpak",0
+"titanos_legion","#TITAN_OS_LEGION_NAME","#TITAN_OS_LEGION_LONGDESC","material/ui/menu/voice_personality_icons/betty_voice_icon_gen.rpak",0
+"titanos_scorch","#TITAN_OS_SCORCH_NAME","#TITAN_OS_SCORCH_LONGDESC","material/ui/menu/voice_personality_icons/betty_voice_icon_gen.rpak",0
+"titanos_ronin","#TITAN_OS_RONIN_NAME","#TITAN_OS_RONIN_LONGDESC","material/ui/menu/voice_personality_icons/betty_voice_icon_gen.rpak",0
+"titanos_northstar","#TITAN_OS_NORTHSTAR_NAME","#TITAN_NORTHSTAR_BETTY_LONGDESC","material/ui/menu/voice_personality_icons/betty_voice_icon_gen.rpak",0
+"titanos_ion","#TITAN_OS_ION_NAME","#TITAN_OS_ION_LONGDESC","material/ui/menu/voice_personality_icons/betty_voice_icon_gen.rpak",0
+"titanos_tone","#TITAN_OS_TONE_NAME","#TITAN_OS_TONE_LONGDESC","material/ui/menu/voice_personality_icons/betty_voice_icon_gen.rpak",0
+"titanos_vanguard","#TITAN_OS_VANGUARD_NAME","#TITAN_OS_VANGUARD_LONGDESC","material/ui/menu/voice_personality_icons/betty_voice_icon_gen.rpak",0 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/titans_mp.csv b/Northstar.CustomServers/mod/scripts/datatable/titans_mp.csv
new file mode 100644
index 00000000..a0873690
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/titans_mp.csv
@@ -0,0 +1,8 @@
+titanRef,cost,coreIcon,image
+"ion",5,"rui/titan_loadout/core/titan_core_laser","rui/menu/postgame/ion_icon"
+"scorch",5,"rui/titan_loadout/core/titan_core_flame_wave","rui/menu/postgame/scorch_icon"
+"northstar",5,"rui/titan_loadout/core/titan_core_flight","rui/menu/postgame/northstar_icon"
+"ronin",10,"rui/titan_loadout/core/titan_core_sword","rui/menu/postgame/ronin_icon"
+"tone",15,"rui/titan_loadout/core/titan_core_salvo","rui/menu/postgame/tone_icon"
+"legion",20,"rui/titan_loadout/core/titan_core_smart","rui/menu/postgame/legion_icon"
+"vanguard",200,"rui/titan_loadout/core/titan_core_vanguard","rui/menu/postgame/vanguard_icon" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/unlocks_faction_level.csv b/Northstar.CustomServers/mod/scripts/datatable/unlocks_faction_level.csv
new file mode 100644
index 00000000..6f9fa4c1
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/unlocks_faction_level.csv
@@ -0,0 +1,82 @@
+factionLevel,faction_apex,faction_64,faction_vinson,faction_marauder,faction_aces,faction_ares,faction_marvin
+0,"faction_apex","faction_64","faction_vinson","faction_marauder","faction_aces","faction_ares","faction_marvin"
+1,"","","","","","",""
+2,"gc_icon_dollarsign,random","gc_icon_fox,random ","gc_icon_gear,random ","gc_icon_prowler,random ","gc_icon_ace,random","gc_icon_radar,random","gc_icon_mrvn,random"
+3,"random,callsign_06_col","random,callsign_96_col","random,callsign_05_col","random,callsign_46_col","random,callsign_01_col","random,callsign_41_col","random,callsign_163_col"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random,callsign_06_col_fire","random,callsign_96_col_fire","random,callsign_05_col_fire","random,callsign_46_col_fire","random,callsign_01_col_fire","random,callsign_41_col_fire","random,callsign_163_col_fire"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random,callsign_06_col_gold","random,callsign_96_col_gold","random,callsign_05_col_gold","random,callsign_46_col_gold","random,callsign_01_col_gold","random,callsign_41_col_gold","random,callsign_163_col_gold"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random,callsign_163_col_prism"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random,callsign_164_col"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random,callsign_164_col_fire"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random,callsign_164_col_gold"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random,callsign_164_col_prism"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random"
+1,"random","random","random","random","random","random","random"
+2,"random","random","random","random","random","random","random"
+3,"random","random","random","random","random","random","random"
+4,"random","random","random","random","random","random","random"
+5,"random","random","random","random","random","random","random" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/unlocks_fd_titan_level.csv b/Northstar.CustomServers/mod/scripts/datatable/unlocks_fd_titan_level.csv
new file mode 100644
index 00000000..957af6d6
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/unlocks_fd_titan_level.csv
@@ -0,0 +1,26 @@
+titanLevel,ion,scorch,northstar,ronin,tone,legion,vanguard,end
+"","ion","scorch","northstar","ronin","tone","legion","vanguard","END"
+"1","","","","","","","",""
+"2","fd_upgrade_ion_weapon_tier_2","fd_upgrade_scorch_weapon_tier_1","fd_upgrade_northstar_utility_tier_1","fd_upgrade_ronin_weapon_tier_1","fd_upgrade_tone_weapon_tier_1","fd_upgrade_legion_weapon_tier_1","fd_upgrade_vanguard_utility_tier_1",""
+"3","random","random","random","random","random","random","random",""
+"4","random","random","random","random","random","random","random",""
+"5","fd_upgrade_ion_defense_tier_1","fd_upgrade_scorch_defense_tier_1","fd_upgrade_northstar_defense_tier_1","fd_upgrade_ronin_defense_tier_1","fd_upgrade_tone_defense_tier_1","fd_upgrade_legion_defense_tier_1","fd_upgrade_vanguard_defense_tier_1",""
+"6","random","random","random","random","random","random","random",""
+"7","random","random","random","random","random","random","random",""
+"8","fd_upgrade_ion_utility_tier_2","fd_upgrade_scorch_utility_tier_1","fd_upgrade_northstar_weapon_tier_1","fd_upgrade_ronin_utility_tier_1","fd_upgrade_tone_utility_tier_2","fd_upgrade_legion_utility_tier_1","fd_upgrade_vanguard_weapon_tier_1",""
+"9","random","random","random","random","random","random","random",""
+"10","random","random","random","random","random","random","random",""
+"11","fd_upgrade_ion_weapon_tier_1","fd_upgrade_scorch_utility_tier_2","fd_upgrade_northstar_utility_tier_2","fd_upgrade_ronin_weapon_tier_2","fd_upgrade_tone_weapon_tier_2","fd_upgrade_legion_weapon_tier_2","fd_upgrade_vanguard_utility_tier_2",""
+"12","random","random","random","random","random","random","random",""
+"13","random","random","random","random","random","random","random",""
+"14","fd_upgrade_ion_defense_tier_2","fd_upgrade_scorch_defense_tier_2","fd_upgrade_northstar_defense_tier_2","fd_upgrade_ronin_defense_tier_2","fd_upgrade_tone_defense_tier_2","fd_upgrade_legion_defense_tier_2","fd_upgrade_vanguard_defense_tier_2",""
+"15","random","random","random","random","random","random","random",""
+"16","random","random","random","random","random","random","random",""
+"17","fd_upgrade_ion_utility_tier_1","fd_upgrade_scorch_weapon_tier_2","fd_upgrade_northstar_weapon_tier_2","fd_upgrade_ronin_utility_tier_2","fd_upgrade_tone_utility_tier_1","fd_upgrade_legion_utility_tier_2","fd_upgrade_vanguard_weapon_tier_2",""
+"18","random","random","random","random","random","random","random",""
+"19","random","random","random","random","random","random","random",""
+"20","fd_upgrade_ion_ultimate","fd_upgrade_scorch_ultimate","fd_upgrade_northstar_ultimate","fd_upgrade_ronin_ultimate","fd_upgrade_tone_ultimate","fd_upgrade_legion_ultimate","fd_upgrade_vanguard_ultimate",""
+"21","random","random","random","random","random","random","random",""
+"22","random","random","random","random","random","random","random",""
+"23","random","random","random","random","random","random","random",""
+"24","callsign_24_col_prism","callsign_47_col_prism","callsign_36_col_prism","callsign_45_col_prism","callsign_68_col_prism","callsign_26_col_prism","callsign_165_col_prism","" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/unlocks_player_level.csv b/Northstar.CustomServers/mod/scripts/datatable/unlocks_player_level.csv
new file mode 100644
index 00000000..693bcc15
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/unlocks_player_level.csv
@@ -0,0 +1,996 @@
+playerLevel,pilotWeapons,pilotOffhands,pilotKits,pilotTactical,titanChassis,burnCard,feature,callSign,callsignIcon,pilotExecutions,pilotCamo,factions,random
+1,"mp_weapon_rspn101_og, mp_weapon_rspn101,mp_weapon_car,mp_weapon_lmg,mp_weapon_shotgun,mp_weapon_sniper,mp_weapon_smr,mp_weapon_semipistol,mp_weapon_autopistol,mp_weapon_defender,mp_weapon_mgl,mp_weapon_wingman_n","mp_weapon_frag_grenade,mp_weapon_grenade_emp,mp_weapon_thermite_grenade","pas_enemy_death_icons,pas_wallhang,pas_fast_health_regen,pas_power_cell","mp_ability_grapple,mp_ability_cloak,mp_weapon_grenade_sonar,mp_ability_shifter_super,grapple,geist,medium","ion,scorch,northstar","burnmeter_amped_weapons","cp,ctf,lts,ffa,fw,ps,tdm,at,aitdm,lf,communities,happy_hour, pilot_loadout_1, pilot_loadout_2, pilot_loadout_3, pilot_loadout_4, pilot_loadout_5, pilot_loadout_6,hunted,mfd,fd_easy,fd_normal","callsign_16_col","gc_icon_titanfall","execution_neck_snap","pilot_camo_skin00","faction_marauder",""
+2,"mp_weapon_lstar","","","","","","","","","","","",""
+3,"","","","mp_ability_heal,nomad","","","","","","","","",""
+4,"","","","","","","coliseum","","","","","",""
+5,"mp_weapon_epg","","","","","","","callsign_53_col","","","","",""
+6,"","","","","","burnmeter_ticks","","","","","","",""
+7,"","","","","ronin","","","","","","","",""
+8,"mp_weapon_alternator_smg","","","","","","","","","","","",""
+9,"","mp_weapon_grenade_gravity","","","","","","","","","","",""
+10,"mp_weapon_shotgun_pistol","","","","","","","","","","pilot_camo_skin01","",""
+11,"","","","","tone","","","","","","","",""
+12,"","","","","","","","","","","","faction_apex",""
+13,"mp_weapon_hemlok","","","","","","","","","","","",""
+14,"","","","mp_weapon_deployable_cover,heavy","","","","","","","","",""
+15,"","","","","legion","","","callsign_67_col","","","","",""
+16,"mp_weapon_doubletake","","","","","","","","","","","",""
+17,"","","","","","burnmeter_ap_turret_weapon","","","","","","",""
+18,"","","pas_ordnance_pack","","","","","","","","","",""
+19,"mp_weapon_mastiff","","","","","","","","","","","",""
+20,"","","","","vanguard","","pilot_loadout_7","","","","pilot_camo_skin03","faction_vinson",""
+21,"mp_weapon_arc_launcher","","","","","","","","","","","",""
+22,"","mp_weapon_grenade_electric_smoke","","","","","","","","","","",""
+23,"","","","","","burnmeter_maphack","","","","","","",""
+24,"mp_weapon_esaw","","","","","","","","","","","",""
+25,"","","pas_ads_hover","","","","","callsign_100_col","","","","",""
+26,"","","","mp_ability_shifter,light","","","","","","","","",""
+27,"mp_weapon_hemlok_smg","","","","","","","","","","","",""
+28,"","","","","","burnmeter_emergency_battery","","","","","","",""
+29,"","","pas_fast_embark","","","","","","","","","",""
+30,"mp_weapon_softball","","","","","","pilot_loadout_8","","","","pilot_camo_skin02","",""
+31,"","","","","","burnmeter_radar_jammer","","","","","","",""
+32,"mp_weapon_wingman","","","","","","","","","","","",""
+33,"","","","","","","","","","","","faction_aces",""
+34,"","","","","","burnmeter_at_turret_weapon","","","","","","",""
+35,"mp_weapon_g2","","","","","","","callsign_09_col","","","","",""
+36,"","","","mp_ability_holopilot,stalker","","","","","","","","",""
+37,"","mp_weapon_satchel","","","","","","","","","","",""
+38,"mp_weapon_dmr","","","","","","","","","","","",""
+39,"","","","","","","","","","","","faction_64",""
+40,"","","pas_stealth_movement","","","","pilot_loadout_9","","","","pilot_camo_skin97","",""
+41,"mp_weapon_r97","","","","","","","","","","","",""
+42,"","","","","","burnmeter_smart_pistol","","","","","","",""
+43,"mp_weapon_rocket_launcher","","","","","","","","","","","",""
+44,"","","","","","burnmeter_phase_rewind","","","","","","",""
+45,"mp_weapon_pulse_lmg","","","","","","","callsign_70_col","","","","",""
+46,"","","","","","burnmeter_hard_cover","","","","","","",""
+47,"mp_weapon_vinson","","","","","","","","","","","",""
+48,"","","","","","burnmeter_holopilot_nova","","","","","","",""
+49,"","","pas_at_hunter","","","","","","","","","faction_ares",""
+50,"","","","","","burnmeter_random_foil","pilot_loadout_10","","gc_icon_gen0","","pilot_camo_skin24","faction_marvin",""
+1,"","","","","","","","callsign_35_col","gc_icon_gen1","","pilot_camo_skin16","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","callsign_53_col_fire","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","callsign_67_col_fire","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","callsign_100_col_fire","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","pilot_camo_skin25","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","callsign_09_col_fire","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","callsign_70_col_fire","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","callsign_07_col","gc_icon_gen2","","pilot_camo_skin14","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","callsign_53_col_gold","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","callsign_67_col_gold","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","callsign_100_col_gold","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","pilot_camo_skin26","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","callsign_09_col_gold","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","callsign_70_col_gold","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","callsign_34_col","gc_icon_gen3","","pilot_camo_skin83","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","pilot_camo_skin27","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","callsign_39_col","gc_icon_gen4","","pilot_camo_skin31","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","pilot_camo_skin19","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","callsign_16_col_fire","gc_icon_gen5","","pilot_camo_skin82","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","callsign_35_col_fire","gc_icon_sgt_major,gc_icon_gen6","","pilot_camo_skin15","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","callsign_07_col_fire","gc_icon_gen7","","pilot_camo_skin17","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","callsign_34_col_fire","gc_icon_gen8","","pilot_camo_skin81","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","callsign_39_col_fire","gc_icon_gen9","","pilot_camo_skin18","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","callsign_16_col_gold,callsign_35_col_gold,callsign_07_col_gold,callsign_34_col_gold,callsign_39_col_gold","","","pilot_camo_skin30","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random"
+46,"","","","","","","","","","","","",""
+47,"","","","","","","","","","","","",""
+48,"","","","","","","","","","","","",""
+49,"","","","","","","","","","","","",""
+50,"","","","","","","","","","","","",""
+1,"","","","","","","","","","","","",""
+2,"","","","","","","","","","","","",""
+3,"","","","","","","","","","","","",""
+4,"","","","","","","","","","","","",""
+5,"","","","","","","","","","","","","random"
+6,"","","","","","","","","","","","",""
+7,"","","","","","","","","","","","",""
+8,"","","","","","","","","","","","",""
+9,"","","","","","","","","","","","",""
+10,"","","","","","","","","","","","",""
+11,"","","","","","","","","","","","",""
+12,"","","","","","","","","","","","",""
+13,"","","","","","","","","","","","",""
+14,"","","","","","","","","","","","",""
+15,"","","","","","","","","","","","","random"
+16,"","","","","","","","","","","","",""
+17,"","","","","","","","","","","","",""
+18,"","","","","","","","","","","","",""
+19,"","","","","","","","","","","","",""
+20,"","","","","","","","","","","","",""
+21,"","","","","","","","","","","","",""
+22,"","","","","","","","","","","","",""
+23,"","","","","","","","","","","","",""
+24,"","","","","","","","","","","","",""
+25,"","","","","","","","","","","","","random"
+26,"","","","","","","","","","","","",""
+27,"","","","","","","","","","","","",""
+28,"","","","","","","","","","","","",""
+29,"","","","","","","","","","","","",""
+30,"","","","","","","","","","","","",""
+31,"","","","","","","","","","","","",""
+32,"","","","","","","","","","","","",""
+33,"","","","","","","","","","","","",""
+34,"","","","","","","","","","","","",""
+35,"","","","","","","","","","","","","random"
+36,"","","","","","","","","","","","",""
+37,"","","","","","","","","","","","",""
+38,"","","","","","","","","","","","",""
+39,"","","","","","","","","","","","",""
+40,"","","","","","","","","","","","",""
+41,"","","","","","","","","","","","",""
+42,"","","","","","","","","","","","",""
+43,"","","","","","","","","","","","",""
+44,"","","","","","","","","","","","",""
+45,"","","","","","","","","","","","","random" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/unlocks_random.csv b/Northstar.CustomServers/mod/scripts/datatable/unlocks_random.csv
new file mode 100644
index 00000000..b35f17af
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/unlocks_random.csv
@@ -0,0 +1,359 @@
+ref,weight
+"callsign_02_col",15.000000
+"callsign_08_col",15.000000
+"callsign_10_col",15.000000
+"callsign_12_col",15.000000
+"callsign_17_col",15.000000
+"callsign_20_col",15.000000
+"callsign_25_col",15.000000
+"callsign_28_col",15.000000
+"callsign_32_col",15.000000
+"callsign_43_col",15.000000
+"callsign_44_col",15.000000
+"callsign_49_col",15.000000
+"callsign_50_col",15.000000
+"callsign_52_col",15.000000
+"callsign_54_col",15.000000
+"callsign_56_col",15.000000
+"callsign_58_col",15.000000
+"callsign_60_col",15.000000
+"callsign_61_col",15.000000
+"callsign_62_col",15.000000
+"callsign_63_col",15.000000
+"callsign_64_col",15.000000
+"callsign_71_col",15.000000
+"callsign_72_col",15.000000
+"callsign_73_col",15.000000
+"callsign_74_col",15.000000
+"callsign_77_col",15.000000
+"callsign_80_col",15.000000
+"callsign_81_col",15.000000
+"callsign_82_col",15.000000
+"callsign_83_col",15.000000
+"callsign_84_col",15.000000
+"callsign_85_col",15.000000
+"callsign_86_col",15.000000
+"callsign_87_col",15.000000
+"callsign_88_col",15.000000
+"callsign_89_col",15.000000
+"callsign_90_col",15.000000
+"callsign_91_col",15.000000
+"callsign_93_col",15.000000
+"callsign_95_col",15.000000
+"callsign_98_col",15.000000
+"callsign_101_col",15.000000
+"callsign_102_col",15.000000
+"callsign_02_col_prism",3.000000
+"callsign_08_col_prism",3.000000
+"callsign_10_col_prism",3.000000
+"callsign_12_col_prism",3.000000
+"callsign_17_col_prism",3.000000
+"callsign_20_col_prism",3.000000
+"callsign_25_col_prism",3.000000
+"callsign_28_col_prism",3.000000
+"callsign_32_col_prism",3.000000
+"callsign_43_col_prism",3.000000
+"callsign_44_col_prism",3.000000
+"callsign_49_col_prism",3.000000
+"callsign_50_col_prism",3.000000
+"callsign_52_col_prism",3.000000
+"callsign_54_col_prism",3.000000
+"callsign_56_col_prism",3.000000
+"callsign_58_col_prism",3.000000
+"callsign_60_col_prism",3.000000
+"callsign_61_col_prism",3.000000
+"callsign_62_col_prism",3.000000
+"callsign_63_col_prism",3.000000
+"callsign_64_col_prism",3.000000
+"callsign_71_col_prism",3.000000
+"callsign_72_col_prism",3.000000
+"callsign_73_col_prism",3.000000
+"callsign_74_col_prism",3.000000
+"callsign_77_col_prism",3.000000
+"callsign_80_col_prism",3.000000
+"callsign_81_col_prism",3.000000
+"callsign_82_col_prism",3.000000
+"callsign_83_col_prism",3.000000
+"callsign_84_col_prism",3.000000
+"callsign_85_col_prism",3.000000
+"callsign_86_col_prism",3.000000
+"callsign_87_col_prism",3.000000
+"callsign_88_col_prism",3.000000
+"callsign_89_col_prism",3.000000
+"callsign_90_col_prism",3.000000
+"callsign_91_col_prism",3.000000
+"callsign_93_col_prism",3.000000
+"callsign_95_col_prism",3.000000
+"callsign_98_col_prism",3.000000
+"callsign_101_col_prism",3.000000
+"callsign_102_col_prism",3.000000
+"execution_backshot",3.000000
+"execution_combo",3.000000
+"execution_knockout",3.000000
+"credit_award",50.000000
+"coliseum_ticket",35.000000
+"northstar.northstar_nose_art_12",5.000000
+"northstar.northstar_nose_art_13",5.000000
+"ronin.ronin_nose_art_08",5.000000
+"ronin.ronin_nose_art_12",5.000000
+"tone.tone_nose_art_11",5.000000
+"tone.tone_nose_art_12",5.000000
+"scorch.scorch_nose_art_12",5.000000
+"legion.legion_nose_art_12",5.000000
+"legion.legion_nose_art_14",5.000000
+"camo_skin04",5.000000
+"camo_skin05",5.000000
+"camo_skin06",5.000000
+"camo_skin11",5.000000
+"camo_skin12",5.000000
+"camo_skin20",5.000000
+"camo_skin21",5.000000
+"camo_skin22",5.000000
+"camo_skin23",5.000000
+"camo_skin28",5.000000
+"camo_skin29",5.000000
+"camo_skin32",5.000000
+"camo_skin33",5.000000
+"camo_skin34",5.000000
+"camo_skin35",5.000000
+"camo_skin36",5.000000
+"camo_skin37",5.000000
+"camo_skin38",5.000000
+"camo_skin39",5.000000
+"camo_skin40",5.000000
+"camo_skin41",5.000000
+"camo_skin42",5.000000
+"camo_skin43",5.000000
+"camo_skin44",5.000000
+"camo_skin45",5.000000
+"camo_skin46",5.000000
+"camo_skin47",5.000000
+"camo_skin48",5.000000
+"camo_skin49",5.000000
+"camo_skin50",5.000000
+"camo_skin51",5.000000
+"camo_skin52",5.000000
+"camo_skin53",5.000000
+"camo_skin54",5.000000
+"camo_skin68",5.000000
+"camo_skin69",5.000000
+"camo_skin70",5.000000
+"camo_skin71",5.000000
+"camo_skin72",5.000000
+"camo_skin73",5.000000
+"camo_skin74",5.000000
+"camo_skin75",5.000000
+"camo_skin76",5.000000
+"camo_skin77",5.000000
+"camo_skin78",5.000000
+"camo_skin79",5.000000
+"camo_skin80",5.000000
+"camo_skin84",5.000000
+"camo_skin86",5.000000
+"camo_skin88",5.000000
+"camo_skin89",5.000000
+"camo_skin90",5.000000
+"camo_skin95",5.000000
+"camo_skin96",5.000000
+"camo_skin98",5.000000
+"camo_skin99",5.000000
+"pilot_camo_skin04",10.000000
+"pilot_camo_skin05",10.000000
+"pilot_camo_skin06",10.000000
+"pilot_camo_skin11",10.000000
+"pilot_camo_skin12",10.000000
+"pilot_camo_skin20",10.000000
+"pilot_camo_skin21",10.000000
+"pilot_camo_skin22",10.000000
+"pilot_camo_skin23",10.000000
+"pilot_camo_skin28",10.000000
+"pilot_camo_skin29",10.000000
+"pilot_camo_skin32",10.000000
+"pilot_camo_skin33",10.000000
+"pilot_camo_skin34",10.000000
+"pilot_camo_skin35",10.000000
+"pilot_camo_skin36",10.000000
+"pilot_camo_skin37",10.000000
+"pilot_camo_skin38",10.000000
+"pilot_camo_skin39",10.000000
+"pilot_camo_skin40",10.000000
+"pilot_camo_skin41",10.000000
+"pilot_camo_skin42",10.000000
+"pilot_camo_skin43",10.000000
+"pilot_camo_skin44",10.000000
+"pilot_camo_skin45",10.000000
+"pilot_camo_skin46",10.000000
+"pilot_camo_skin47",10.000000
+"pilot_camo_skin48",10.000000
+"pilot_camo_skin49",10.000000
+"pilot_camo_skin50",10.000000
+"pilot_camo_skin51",10.000000
+"pilot_camo_skin52",10.000000
+"pilot_camo_skin53",10.000000
+"pilot_camo_skin54",10.000000
+"pilot_camo_skin68",10.000000
+"pilot_camo_skin69",10.000000
+"pilot_camo_skin70",10.000000
+"pilot_camo_skin71",10.000000
+"pilot_camo_skin72",10.000000
+"pilot_camo_skin73",10.000000
+"pilot_camo_skin74",10.000000
+"pilot_camo_skin75",10.000000
+"pilot_camo_skin76",10.000000
+"pilot_camo_skin77",10.000000
+"pilot_camo_skin78",10.000000
+"pilot_camo_skin79",10.000000
+"pilot_camo_skin80",10.000000
+"pilot_camo_skin84",10.000000
+"pilot_camo_skin86",10.000000
+"pilot_camo_skin88",10.000000
+"pilot_camo_skin89",10.000000
+"pilot_camo_skin90",10.000000
+"pilot_camo_skin95",10.000000
+"pilot_camo_skin96",10.000000
+"pilot_camo_skin98",10.000000
+"pilot_camo_skin99",10.000000
+"titan_camo_skin04",10.000000
+"titan_camo_skin05",10.000000
+"titan_camo_skin06",10.000000
+"titan_camo_skin11",10.000000
+"titan_camo_skin12",10.000000
+"titan_camo_skin20",10.000000
+"titan_camo_skin21",10.000000
+"titan_camo_skin22",10.000000
+"titan_camo_skin23",10.000000
+"titan_camo_skin28",10.000000
+"titan_camo_skin29",10.000000
+"titan_camo_skin32",10.000000
+"titan_camo_skin33",10.000000
+"titan_camo_skin34",10.000000
+"titan_camo_skin35",10.000000
+"titan_camo_skin36",10.000000
+"titan_camo_skin37",10.000000
+"titan_camo_skin38",10.000000
+"titan_camo_skin39",10.000000
+"titan_camo_skin40",10.000000
+"titan_camo_skin41",10.000000
+"titan_camo_skin42",10.000000
+"titan_camo_skin43",10.000000
+"titan_camo_skin44",10.000000
+"titan_camo_skin45",10.000000
+"titan_camo_skin46",10.000000
+"titan_camo_skin47",10.000000
+"titan_camo_skin48",10.000000
+"titan_camo_skin49",10.000000
+"titan_camo_skin50",10.000000
+"titan_camo_skin51",10.000000
+"titan_camo_skin52",10.000000
+"titan_camo_skin53",10.000000
+"titan_camo_skin54",10.000000
+"titan_camo_skin68",10.000000
+"titan_camo_skin69",10.000000
+"titan_camo_skin70",10.000000
+"titan_camo_skin71",10.000000
+"titan_camo_skin72",10.000000
+"titan_camo_skin73",10.000000
+"titan_camo_skin74",10.000000
+"titan_camo_skin75",10.000000
+"titan_camo_skin76",10.000000
+"titan_camo_skin77",10.000000
+"titan_camo_skin78",10.000000
+"titan_camo_skin79",10.000000
+"titan_camo_skin80",10.000000
+"titan_camo_skin84",10.000000
+"titan_camo_skin86",10.000000
+"titan_camo_skin88",10.000000
+"titan_camo_skin89",10.000000
+"titan_camo_skin90",10.000000
+"titan_camo_skin95",10.000000
+"titan_camo_skin96",10.000000
+"titan_camo_skin98",10.000000
+"titan_camo_skin99",10.000000
+"gc_icon_5star",15.000000
+"gc_icon_angryface",15.000000
+"gc_icon_bear",15.000000
+"gc_icon_bee",15.000000
+"gc_icon_bigcat",15.000000
+"gc_icon_bird",15.000000
+"gc_icon_bunnyskull",15.000000
+"gc_icon_chicken",15.000000
+"gc_icon_club",15.000000
+"gc_icon_corporal",15.000000
+"gc_icon_cow",15.000000
+"gc_icon_cupcake",15.000000
+"gc_icon_dataknife",15.000000
+"gc_icon_doublerainbow",15.000000
+"gc_icon_dragon",15.000000
+"gc_icon_earthworm",15.000000
+"gc_icon_fair_warning",15.000000
+"gc_icon_falcon",15.000000
+"gc_icon_fingerprint",15.000000
+"gc_icon_flying_skull",15.000000
+"gc_icon_ghostface",15.000000
+"gc_icon_hamburger",15.000000
+"gc_icon_hammer",15.000000
+"gc_icon_handprint",15.000000
+"gc_icon_hawkmoth",15.000000
+"gc_icon_heartless",15.000000
+"gc_icon_hvt",15.000000
+"gc_icon_jollyrgr",15.000000
+"gc_icon_knife",15.000000
+"gc_icon_lol",15.000000
+"gc_icon_mad_hat",15.000000
+"gc_icon_marksman",15.000000
+"gc_icon_omg",15.000000
+"gc_icon_ordnance",15.000000
+"gc_icon_pizza",15.000000
+"gc_icon_pvt",15.000000
+"gc_icon_question",15.000000
+"gc_icon_rainbow",15.000000
+"gc_icon_ram",15.000000
+"gc_icon_respawn",15.000000
+"gc_icon_saturn",15.000000
+"gc_icon_scorpion",15.000000
+"gc_icon_senior_sgt_e6",15.000000
+"gc_icon_senior_sgt",15.000000
+"gc_icon_sgt",15.000000
+"gc_icon_skull",15.000000
+"gc_icon_snake",15.000000
+"gc_icon_stab",15.000000
+"gc_icon_teabage",15.000000
+"gc_icon_widow",15.000000
+"gc_icon_witch_hat",15.000000
+"gc_icon_wizard_hat",15.000000
+"gc_icon_wraith",15.000000
+"gc_icon_wtf",15.000000
+"gc_icon_down",35.000000
+"gc_icon_joy",35.000000
+"execution_face_stab",1.000000
+"ion.ion_skin_03",1.000000
+"camo_skin08",1.000000
+"pilot_camo_skin08",1.000000
+"titan_camo_skin08",1.000000
+"ion.ion_nose_art_05",1.000000
+"callsign_tt_gameover",10.000000
+"callsign_tt_gameover_prism",1.000000
+"callsign_tt_guardtheflag",10.000000
+"callsign_tt_guardtheflag_prism",1.000000
+"callsign_tt_megamarvin",10.000000
+"callsign_tt_megamarvin_prism",1.000000
+"callsign_tt_nessievault",10.000000
+"callsign_tt_nessievault_prism",1.000000
+"callsign_tt_nsbt",10.000000
+"callsign_tt_nsbt_prism",1.000000
+"callsign_tt_protocol2",10.000000
+"callsign_tt_protocol2_prism",1.000000
+"callsign_tt_rekt",10.000000
+"callsign_tt_rekt_prism",1.000000
+"callsign_tt_titantoons",10.000000
+"callsign_tt_titantoons_prism",1.000000
+"callsign_eat_ion",1.000000
+"callsign_eat_legion",1.000000
+"callsign_eat_northstar",1.000000
+"callsign_eat_ronin",1.000000
+"callsign_eat_scorch",1.000000
+"callsign_eat_tone",1.000000
+"callsign_126_col_prism",1.000000
+"callsign_127_col_prism",1.000000
+"callsign_130_col_prism",1.000000
+"callsign_131_col_prism",1.000000 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/unlocks_titan_level.csv b/Northstar.CustomServers/mod/scripts/datatable/unlocks_titan_level.csv
new file mode 100644
index 00000000..24f54fea
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/unlocks_titan_level.csv
@@ -0,0 +1,402 @@
+titanLevel,ion,scorch,northstar,ronin,tone,legion,vanguard,end
+"","ion","scorch","northstar","ronin","tone","legion","vanguard","END"
+"1","pas_ion_weapon,pas_mobility_dash_capacity,pas_enhanced_titan_ai,pas_auto_eject,pas_bubbleshield,titan_camo_skin00,camo_skin00,ion_nose_art_none,pas_vanguard_core1, pas_vanguard_core4,pas_vanguard_core7,execution_random_0,execution_ion,execution_ion_prime","pas_scorch_weapon,pas_mobility_dash_capacity,pas_enhanced_titan_ai,pas_auto_eject,pas_bubbleshield,titan_camo_skin00,camo_skin00,scorch_nose_art_none,pas_vanguard_core1, pas_vanguard_core4,pas_vanguard_core7,execution_random_1,execution_scorch,execution_scorch_prime","pas_northstar_weapon,pas_mobility_dash_capacity,pas_enhanced_titan_ai,pas_auto_eject,pas_bubbleshield,titan_camo_skin00,camo_skin00,northstar_nose_art_none,pas_vanguard_core1, pas_vanguard_core4,pas_vanguard_core7,execution_random_2,execution_northstar,execution_northstar_prime","pas_ronin_weapon,pas_mobility_dash_capacity,pas_enhanced_titan_ai,pas_auto_eject,pas_bubbleshield,titan_camo_skin00,camo_skin00,ronin_nose_art_none,pas_vanguard_core1, pas_vanguard_core4,pas_vanguard_core7,execution_random_3,execution_ronin,execution_ronin_prime","pas_tone_weapon,pas_mobility_dash_capacity,pas_enhanced_titan_ai,pas_auto_eject,pas_bubbleshield,titan_camo_skin00,camo_skin00,tone_nose_art_none,pas_vanguard_core1, pas_vanguard_core4,pas_vanguard_core7,execution_random_4,execution_tone,execution_tone_prime","pas_legion_weapon,pas_mobility_dash_capacity,pas_enhanced_titan_ai,pas_auto_eject,pas_bubbleshield,titan_camo_skin00,camo_skin00,legion_nose_art_none,pas_vanguard_core1, pas_vanguard_core4,pas_vanguard_core7,execution_random_5,execution_legion,execution_legion_prime","pas_vanguard_shield,pas_mobility_dash_capacity,pas_enhanced_titan_ai,pas_auto_eject,pas_bubbleshield,pas_vanguard_core1,pas_vanguard_core4,pas_vanguard_core7,titan_camo_skin00,camo_skin00,vanguard_nose_art_none,execution_random_6,execution_vanguard",""
+"2","pas_hyper_core","pas_hyper_core","pas_hyper_core","pas_hyper_core","pas_hyper_core","pas_hyper_core","pas_hyper_core",""
+"3","pas_build_up_nuclear_core","pas_build_up_nuclear_core","pas_build_up_nuclear_core","pas_build_up_nuclear_core","pas_build_up_nuclear_core","pas_build_up_nuclear_core","pas_vanguard_core2,pas_build_up_nuclear_core",""
+"4","pas_anti_rodeo,ion_nose_art_14","pas_anti_rodeo,scorch_nose_art_11","pas_anti_rodeo,northstar_nose_art_11","pas_anti_rodeo,ronin_nose_art_14","pas_anti_rodeo,tone_nose_art_13","pas_anti_rodeo,legion_nose_art_13","pas_anti_rodeo,vanguard_nose_art_01",""
+"5","pas_warpfall,random","pas_warpfall,random","pas_warpfall,random","pas_warpfall,random","pas_warpfall,random","pas_warpfall,random","pas_warpfall,pas_vanguard_core5,random",""
+"6","pas_ion_tripwire,titan_camo_skin01","pas_scorch_selfdmg,titan_camo_skin01","pas_northstar_cluster,titan_camo_skin01","pas_ronin_arcwave,titan_camo_skin01","pas_tone_wall,titan_camo_skin01","pas_legion_smartcore,titan_camo_skin01","pas_vanguard_coremeter,titan_camo_skin01",""
+"7","pas_ion_vortex","pas_scorch_shield","pas_northstar_trap","pas_ronin_phase","pas_tone_sonar","pas_legion_gunshield","pas_vanguard_core8,pas_vanguard_rearm",""
+"8","pas_ion_lasercannon,camo_skin01","pas_scorch_firewall,camo_skin01","pas_northstar_flightcore,camo_skin01","pas_ronin_swordcore,camo_skin01","pas_tone_rockets,camo_skin01","pas_legion_spinup,camo_skin01","pas_vanguard_core3,pas_vanguard_doom,camo_skin01",""
+"9","titan_camo_skin03,pas_ion_weapon_ads","titan_camo_skin03,pas_scorch_flamecore","titan_camo_skin03,pas_northstar_optics","titan_camo_skin03,pas_ronin_autoshift","titan_camo_skin03,pas_tone_burst","titan_camo_skin03,pas_legion_chargeshot","titan_camo_skin03,pas_vanguard_core6",""
+"10","gc_icon_cateye,ion_nose_art_01","gc_icon_fireball,scorch_nose_art_02","gc_icon_stinger,northstar_nose_art_08","gc_icon_sword,ronin_nose_art_02","gc_icon_crosshair,tone_nose_art_14","gc_icon_bullet,legion_nose_art_09","gc_icon_monarch,vanguard_nose_art_02,pas_vanguard_core9",""
+"11","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03",""
+"12","titan_camo_skin02","titan_camo_skin02","titan_camo_skin02","titan_camo_skin02","titan_camo_skin02","titan_camo_skin02","titan_camo_skin02",""
+"13","","","","","","","",""
+"14","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02",""
+"15","titan_camo_skin97","titan_camo_skin97","titan_camo_skin97","titan_camo_skin97","titan_camo_skin97","titan_camo_skin97","titan_camo_skin97",""
+"16","","","","","","","",""
+"17","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97",""
+"18","titan_camo_skin24","titan_camo_skin24","titan_camo_skin24","titan_camo_skin24","titan_camo_skin24","titan_camo_skin24","titan_camo_skin24",""
+"19","","","","","","","",""
+"20","camo_skin24,ion_nose_art_08","camo_skin24,scorch_nose_art_03","camo_skin24,northstar_nose_art_06","camo_skin24,ronin_nose_art_11","camo_skin24,tone_nose_art_04","camo_skin24,legion_nose_art_06","camo_skin24,vanguard_nose_art_03",""
+"1","titan_camo_skin16,callsign_24_col","titan_camo_skin16,callsign_47_col","titan_camo_skin16,callsign_36_col","titan_camo_skin16,callsign_45_col","titan_camo_skin16,callsign_68_col","titan_camo_skin16,callsign_26_col","titan_camo_skin16,callsign_165_col",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","camo_skin16","camo_skin16","camo_skin16","camo_skin16","camo_skin16","camo_skin16","camo_skin16",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","titan_camo_skin25","titan_camo_skin25","titan_camo_skin25","titan_camo_skin25","titan_camo_skin25","titan_camo_skin25","titan_camo_skin25",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","ion_nose_art_04","scorch_nose_art_05","northstar_nose_art_04","ronin_nose_art_05","tone_nose_art_03","legion_nose_art_03","vanguard_nose_art_04",""
+"1","titan_camo_skin14,callsign_24_col_fire","titan_camo_skin14,callsign_47_col_fire","titan_camo_skin14,callsign_36_col_fire","titan_camo_skin14,callsign_45_col_fire","titan_camo_skin14,callsign_68_col_fire","titan_camo_skin14,callsign_26_col_fire","titan_camo_skin14,callsign_165_col_fire",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","titan_camo_skin26","titan_camo_skin26","titan_camo_skin26","titan_camo_skin26","titan_camo_skin26","titan_camo_skin26","titan_camo_skin26",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","ion_nose_art_03","scorch_nose_art_01","northstar_nose_art_01","ronin_nose_art_06","tone_nose_art_07","legion_nose_art_10","vanguard_nose_art_05",""
+"1","titan_camo_skin83,callsign_24_col_gold","titan_camo_skin83,callsign_47_col_gold","titan_camo_skin83,callsign_36_col_gold","titan_camo_skin83,callsign_45_col_gold","titan_camo_skin83,callsign_68_col_gold","titan_camo_skin83,callsign_26_col_gold","titan_camo_skin83,callsign_165_col_gold",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","titan_camo_skin27","titan_camo_skin27","titan_camo_skin27","titan_camo_skin27","titan_camo_skin27","titan_camo_skin27","titan_camo_skin27",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","ion_nose_art_12","scorch_nose_art_13","northstar_nose_art_09","ronin_nose_art_04","tone_nose_art_02","legion_nose_art_02","vanguard_nose_art_06",""
+"1","titan_camo_skin31","titan_camo_skin31","titan_camo_skin31","titan_camo_skin31","titan_camo_skin31","titan_camo_skin31","titan_camo_skin31",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","titan_camo_skin19","titan_camo_skin19","titan_camo_skin19","titan_camo_skin19","titan_camo_skin19","titan_camo_skin19","titan_camo_skin19",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","ion_nose_art_13","scorch_nose_art_10","northstar_nose_art_03","ronin_nose_art_09","tone_nose_art_09","legion_nose_art_01","vanguard_nose_art_07",""
+"1","titan_camo_skin82","titan_camo_skin82","titan_camo_skin82","titan_camo_skin82","titan_camo_skin82","titan_camo_skin82","titan_camo_skin82",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","titan_camo_skin15","titan_camo_skin15","titan_camo_skin15","titan_camo_skin15","titan_camo_skin15","titan_camo_skin15","titan_camo_skin15",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","ion_nose_art_02","scorch_nose_art_04","northstar_nose_art_02","ronin_nose_art_01","tone_nose_art_01","legion_nose_art_08","",""
+"1","titan_camo_skin17","titan_camo_skin17","titan_camo_skin17","titan_camo_skin17","titan_camo_skin17","titan_camo_skin17","titan_camo_skin17",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","ion_nose_art_06","scorch_nose_art_14","northstar_nose_art_10","ronin_nose_art_13","tone_nose_art_05","legion_nose_art_11","vanguard_nose_art_08",""
+"1","titan_camo_skin81","titan_camo_skin81","titan_camo_skin81","titan_camo_skin81","titan_camo_skin81","titan_camo_skin81","titan_camo_skin81",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","ion_nose_art_11","scorch_nose_art_09","northstar_nose_art_05","ronin_nose_art_10","tone_nose_art_08","legion_nose_art_04","",""
+"1","titan_camo_skin18","titan_camo_skin18","titan_camo_skin18","titan_camo_skin18","titan_camo_skin18","titan_camo_skin18","titan_camo_skin18",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","ion_nose_art_10","scorch_nose_art_08","northstar_nose_art_14","ronin_nose_art_03","tone_nose_art_06","legion_nose_art_05","vanguard_nose_art_09",""
+"1","titan_camo_skin30","titan_camo_skin30","titan_camo_skin30","titan_camo_skin30","titan_camo_skin30","titan_camo_skin30","titan_camo_skin30",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","ion_nose_art_09","","","","","","",""
+"1","","","","","","","",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","",""
+"1","random","random","random","random","random","random","random",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","",""
+"1","random","random","random","random","random","random","random",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","",""
+"1","random","random","random","random","random","random","random",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","",""
+"1","random","random","random","random","random","random","random",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","",""
+"1","random","random","random","random","random","random","random",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","",""
+"1","random","random","random","random","random","random","random",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","",""
+"1","random","random","random","random","random","random","random",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","",""
+"1","random","random","random","random","random","random","random",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","",""
+"1","random","random","random","random","random","random","random",""
+"2","","","","","","","",""
+"3","","","","","","","",""
+"4","","","","","","","",""
+"5","","","","","","","",""
+"6","","","","","","","",""
+"7","","","","","","","",""
+"8","","","","","","","",""
+"9","","","","","","","",""
+"10","","","","","","","",""
+"11","","","","","","","",""
+"12","","","","","","","",""
+"13","","","","","","","",""
+"14","","","","","","","",""
+"15","","","","","","","",""
+"16","","","","","","","",""
+"17","","","","","","","",""
+"18","","","","","","","",""
+"19","","","","","","","",""
+"20","","","","","","","","" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/unlocks_weapon_level_pilot.csv b/Northstar.CustomServers/mod/scripts/datatable/unlocks_weapon_level_pilot.csv
new file mode 100644
index 00000000..5c881ac5
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/unlocks_weapon_level_pilot.csv
@@ -0,0 +1,383 @@
+weaponLevel,weap1,weap2,weap3,weap4,weap5,weap6,weap7,weap8,weap9,weap10,weap11,weap12,weap13,weap14,weap15,weap16,weap17,weap18,weap19,weap20,weap21,weap22,weap23,weap24,weap25,weap26,weap27,weap28,weap29,weap30,end
+"","mp_weapon_alternator_smg","mp_weapon_arc_launcher","mp_weapon_autopistol","mp_weapon_car","mp_weapon_defender","mp_weapon_dmr","mp_weapon_doubletake","mp_weapon_epg","mp_weapon_esaw","mp_weapon_g2","mp_weapon_hemlok","mp_weapon_hemlok_smg","mp_weapon_lmg","mp_weapon_lstar","mp_weapon_mastiff","mp_weapon_mgl","mp_weapon_pulse_lmg","mp_weapon_r97","mp_weapon_rocket_launcher","mp_weapon_rspn101","mp_weapon_semipistol","mp_weapon_shotgun","mp_weapon_shotgun_pistol","mp_weapon_smr","mp_weapon_sniper","mp_weapon_softball","mp_weapon_vinson","mp_weapon_wingman","mp_weapon_wingman_n","mp_weapon_rspn101_og","END"
+"1","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen","camo_skin00, pro_screen",""
+"2","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo","extended_ammo",""
+"3","hcog","pas_fast_reload","silencer","holosight","quick_charge","scope_4x","scope_4x","pas_run_and_gun","aog","hcog","hcog","holosight","aog","aog","holosight","pas_fast_reload","pas_run_and_gun","holosight","pas_fast_reload","hcog","silencer","holosight","silencer","pas_run_and_gun","scope_4x","pas_run_and_gun","hcog","silencer","ricochet","hcog",""
+"4","pas_run_and_gun","pas_fast_ads","pas_run_and_gun","pas_run_and_gun","pas_fast_ads","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_run_and_gun","pas_run_and_gun","pas_run_and_gun","pas_run_and_gun","pas_run_and_gun","pas_run_and_gun","pas_run_and_gun","pas_fast_ads","pas_fast_reload","pas_run_and_gun","pas_fast_ads","pas_run_and_gun","pas_run_and_gun","pas_run_and_gun","pas_run_and_gun","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_run_and_gun","pas_run_and_gun","pas_run_and_gun","pas_run_and_gun",""
+"5","pas_fast_reload","pas_fast_swap","pas_fast_reload","pas_fast_reload","pas_fast_swap","pas_fast_ads","pas_fast_ads","pas_fast_ads","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_fast_swap","pas_fast_ads","pas_fast_reload","pas_fast_swap","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_fast_ads","pas_fast_ads","pas_fast_ads","pas_fast_reload","pas_fast_reload","pas_fast_reload","pas_fast_reload",""
+"6","redline_sight","secondarymod2","pas_fast_ads","redline_sight","secondarymod2","pas_fast_swap","pas_fast_swap","pas_fast_swap","redline_sight","redline_sight","redline_sight","redline_sight","redline_sight","redline_sight","redline_sight","secondarymod2","pas_fast_swap","redline_sight","secondarymod2","redline_sight","pas_fast_ads","redline_sight","pas_fast_ads","pas_fast_swap","pas_fast_swap","pas_fast_swap","redline_sight","pas_fast_ads","pas_fast_ads","redline_sight",""
+"7","pas_fast_ads","","tactical_cdr_on_kill","pas_fast_ads","","tactical_cdr_on_kill","tactical_cdr_on_kill","tactical_cdr_on_kill","pas_fast_ads","pas_fast_ads","pas_fast_ads","pas_fast_ads","pas_fast_ads","pas_fast_ads","pas_fast_ads","","tactical_cdr_on_kill","pas_fast_ads","","pas_fast_ads","tactical_cdr_on_kill","pas_fast_ads","tactical_cdr_on_kill","tactical_cdr_on_kill","tactical_cdr_on_kill","tactical_cdr_on_kill","pas_fast_ads","tactical_cdr_on_kill","tactical_cdr_on_kill","pas_fast_ads",""
+"8","pas_fast_swap,random","random","secondarymod2,random","pas_fast_swap,random","random","threat_scope,random","threat_scope,random","random,primarymod2","pas_fast_swap,random","pas_fast_swap,random","pas_fast_swap,random","pas_fast_swap,random","pas_fast_swap,random","pas_fast_swap,random","pas_fast_swap,random","random","primarymod2,random","pas_fast_swap,random","random","pas_fast_swap,random","secondarymod2,random","pas_fast_swap,random","primarymod2,random","primarymod2,random","threat_scope,random","primarymod2,random","pas_fast_swap,random","secondarymod2,random","primarymod2,random","pas_fast_swap,random",""
+"9","tactical_cdr_on_kill","","","tactical_cdr_on_kill","","primarymod2","ricochet","","tactical_cdr_on_kill","tactical_cdr_on_kill","tactical_cdr_on_kill","tactical_cdr_on_kill","tactical_cdr_on_kill","tactical_cdr_on_kill","tactical_cdr_on_kill","","","tactical_cdr_on_kill","","tactical_cdr_on_kill","","tactical_cdr_on_kill","","","ricochet","","tactical_cdr_on_kill","","","tactical_cdr_on_kill",""
+"10","threat_scope,camo_skin01","camo_skin01","camo_skin01","threat_scope,camo_skin01","camo_skin01","camo_skin01","primarymod2,camo_skin01","camo_skin01","threat_scope,camo_skin01","threat_scope,camo_skin01","threat_scope,camo_skin01","threat_scope,camo_skin01","threat_scope,camo_skin01","threat_scope,camo_skin01","threat_scope,camo_skin01","camo_skin01","camo_skin01","threat_scope,camo_skin01","camo_skin01","threat_scope,camo_skin01","camo_skin01","threat_scope,camo_skin01","camo_skin01","camo_skin01","primarymod2,camo_skin01","camo_skin01","threat_scope,camo_skin01","camo_skin01","camo_skin01","threat_scope,camo_skin01",""
+"11","primarymod2","","","primarymod2","","","","","primarymod2","primarymod2","primarymod2","primarymod2","primarymod2","primarymod2","primarymod2","","","primarymod2","","primarymod2","","primarymod2","","","","","primarymod2","","","primarymod2",""
+"12","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03","camo_skin03",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02","camo_skin02",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97","camo_skin97",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24","camo_skin24",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","gc_icon_yuckface","gc_icon_raincloud","gc_icon_diamond","gc_icon_wasp","gc_icon_bullseye","gc_icon_fin","gc_icon_dice","gc_icon_comet","gc_icon_heart","gc_icon_ramskull","gc_icon_waves","gc_icon_lightning","gc_icon_hawk","gc_icon_star","gc_icon_paw","gc_icon_frag","gc_icon_moon","gc_icon_assault","gc_icon_rocket","gc_icon_atom","gc_icon_spade","gc_icon_8ball","gc_icon_clawmark","gc_icon_bomb_02","gc_icon_happyface","gc_icon_bomb_01","gc_icon_medic","gc_icon_dragonfly","gc_icon_b3_wing","gc_icon_mushroom",""
+"1","primarymod3,camo_skin16","secondarymod3,camo_skin16","secondarymod3,camo_skin16","primarymod3,camo_skin16","secondarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","secondarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","secondarymod3,camo_skin16","primarymod3,camo_skin16","secondarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16","secondarymod3,camo_skin16","primarymod3,camo_skin16","primarymod3,camo_skin16",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","callsign_13_col","callsign_76_col","callsign_29_col","callsign_55_col","callsign_66_col","callsign_30_col","callsign_21_col","callsign_94_col","callsign_15_col","callsign_31_col","callsign_40_col","callsign_18_col","callsign_27_col","callsign_22_col","callsign_48_col","callsign_42_col","callsign_78_col","callsign_75_col","callsign_92_col","callsign_03_col","callsign_37_col","callsign_79_col","callsign_51_col","callsign_11_col","callsign_57_col","callsign_59_col","callsign_69_col","callsign_19_col","callsign_139_col","callsign_128_col",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25","camo_skin25",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14","camo_skin14",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","callsign_13_col_fire","callsign_76_col_fire","callsign_29_col_fire","callsign_55_col_fire","callsign_66_col_fire","callsign_30_col_fire","callsign_21_col_fire","callsign_94_col_fire","callsign_15_col_fire","callsign_31_col_fire","callsign_40_col_fire","callsign_18_col_fire","callsign_27_col_fire","callsign_22_col_fire","callsign_48_col_fire","callsign_42_col_fire","callsign_78_col_fire","callsign_75_col_fire","callsign_92_col_fire","callsign_03_col_fire","callsign_37_col_fire","callsign_79_col_fire","callsign_51_col_fire","callsign_11_col_fire","callsign_57_col_fire","callsign_59_col_fire","callsign_69_col_fire","callsign_19_col_fire","callsign_139_col_fire","callsign_128_col_fire",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26","camo_skin26",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83","camo_skin83",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","callsign_13_col_gold","callsign_76_col_gold","callsign_29_col_gold","callsign_55_col_gold","callsign_66_col_gold","callsign_30_col_gold","callsign_21_col_gold","callsign_94_col_gold","callsign_15_col_gold","callsign_31_col_gold","callsign_40_col_gold","callsign_18_col_gold","callsign_27_col_gold","callsign_22_col_gold","callsign_48_col_gold","callsign_42_col_gold","callsign_78_col_gold","callsign_75_col_gold","callsign_92_col_gold","callsign_03_col_gold","callsign_37_col_gold","callsign_79_col_gold","callsign_51_col_gold","callsign_11_col_gold","callsign_57_col_gold","callsign_59_col_gold","callsign_69_col_gold","callsign_19_col_gold","callsign_139_col_gold","callsign_128_col_gold",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27","camo_skin27",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31","camo_skin31",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19","camo_skin19",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82","camo_skin82",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15","camo_skin15",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17","camo_skin17",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81","camo_skin81",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18","camo_skin18",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30","camo_skin30",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random",""
+"2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"3","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"4","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"7","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"8","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"9","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"10","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"12","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"13","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"14","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"16","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"17","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"18","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"19","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"20","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
+"1","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","random","" \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/weapon_skins.csv b/Northstar.CustomServers/mod/scripts/datatable/weapon_skins.csv
new file mode 100644
index 00000000..0f074882
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/weapon_skins.csv
@@ -0,0 +1,35 @@
+ref,weaponRef,image,name,cost,skinIndex,skinType
+"skin_rspn101_wasteland","mp_weapon_rspn101","rui/weapon_skin_swatches/swatch_wasteland","#SKIN_WASTELAND",0,8,1
+"skin_g2_masterwork","mp_weapon_g2","rui/weapon_skin_swatches/swatch_masterwork","#SKIN_MASTERWORK",0,6,1
+"skin_vinson_blue_fade","mp_weapon_vinson","rui/weapon_skin_swatches/swatch_blue_fade","#SKIN_BLUE_FADE",0,7,1
+"skin_car_crimson_fury","mp_weapon_car","rui/weapon_skin_swatches/swatch_crimson_fury","#SKIN_CRIMSON_FURY",0,6,1
+"skin_alternator_patriot","mp_weapon_alternator_smg","rui/weapon_skin_swatches/swatch_patriot","#SKIN_PATRIOT",0,2,1
+"skin_shotgun_badlands","mp_weapon_shotgun","rui/weapon_skin_swatches/swatch_badlands","#SKIN_BADLANDS",0,4,1
+"skin_wingman_aqua_fade","mp_weapon_wingman","rui/weapon_skin_swatches/swatch_aqua_fade","#SKIN_AQUA_FADE",0,7,1
+"skin_rocket_launcher_psych_spectre","mp_weapon_rocket_launcher","rui/weapon_skin_swatches/swatch_psych_spectre","#SKIN_PHANTOM",0,2,1
+"skin_rspn101_patriot","mp_weapon_rspn101","rui/weapon_skin_swatches/swatch_patriot","#SKIN_PATRIOT",0,9,1
+"skin_hemlok_mochi","mp_weapon_hemlok","rui/weapon_skin_swatches/swatch_mochi","#SKIN_MOCHI",0,5,1
+"skin_r97_purple_fade","mp_weapon_r97","rui/weapon_skin_swatches/swatch_purple_fade","#SKIN_PURPLE_FADE",0,7,1
+"skin_kraber_masterwork","mp_weapon_sniper","rui/weapon_skin_swatches/swatch_masterwork","#SKIN_MASTERWORK",0,2,1
+"skin_spitfire_lead_farmer","mp_weapon_lmg","rui/weapon_skin_swatches/swatch_lead_farmer","#SKIN_LEAD_FARMER",0,8,1
+"skin_devotion_rspn_customs","mp_weapon_esaw","rui/weapon_skin_swatches/swatch_rspn_customs","#SKIN_RSPN_CUSTOMS",0,8,1
+"skin_mozambique_crimson_fury","mp_weapon_shotgun_pistol","rui/weapon_skin_swatches/swatch_crimson_fury","#SKIN_CRIMSON_FURY",0,7,1
+"skin_thunderbolt_8bit","mp_weapon_arc_launcher","rui/weapon_skin_swatches/swatch_8_bit","#SKIN_8_BIT",0,2,1
+"skin_lstar_heatsink","mp_weapon_lstar","rui/weapon_skin_swatches/swatch_heatsink","#SKIN_HEAT_SINK",0,6,1
+"skin_mastiff_crimson_fury","mp_weapon_mastiff","rui/weapon_skin_swatches/swatch_crimson_fury","#SKIN_CRIMSON_FURY",0,7,1
+"skin_sidewinder_masterwork","mp_weapon_smr","rui/weapon_skin_swatches/swatch_masterwork","#SKIN_MASTERWORK",0,2,1
+"skin_rspn101_halloween","mp_weapon_rspn101","rui/weapon_skin_swatches/swatch_rspn101_halloween","#SKIN_HALLOWEEN",0,10,1
+"skin_car_halloween","mp_weapon_car","rui/weapon_skin_swatches/swatch_car_halloween","#SKIN_HALLOWEEN",0,8,1
+"skin_spitfire_halloween","mp_weapon_lmg","rui/weapon_skin_swatches/swatch_spitfire_halloween","#SKIN_HALLOWEEN",0,9,1
+"skin_rspn101_og_blue_fade","mp_weapon_rspn101_og","rui/weapon_skin_swatches/swatch_blue_fade","#SKIN_BLUE_FADE",0,7,1
+"skin_vinson_badlands","mp_weapon_vinson","rui/weapon_skin_swatches/swatch_badlands_flatline","#SKIN_BADLANDS",0,8,1
+"skin_volt_heatsink","mp_weapon_hemlok_smg","rui/weapon_skin_swatches/swatch_heatsink","#SKIN_HEAT_SINK",0,6,1
+"skin_alternator_headhunter","mp_weapon_alternator_smg","rui/weapon_skin_swatches/swatch_headhunter","#SKIN_HEADHUNTER",0,5,1
+"skin_softball_masterwork","mp_weapon_softball","rui/weapon_skin_swatches/swatch_masterwork","#SKIN_MASTERWORK",0,2,1
+"skin_epg_mrvn","mp_weapon_epg","rui/weapon_skin_swatches/swatch_mrvn","#SKIN_MRVN",0,5,1
+"skin_dmr_phantom","mp_weapon_dmr","rui/weapon_skin_swatches/swatch_psych_spectre","#SKIN_PHANTOM",0,3,1
+"skin_doubletake_masterwork","mp_weapon_doubletake","rui/weapon_skin_swatches/swatch_masterwork","#SKIN_MASTERWORK",0,2,1
+"skin_g2_purple_fade","mp_weapon_g2","rui/weapon_skin_swatches/swatch_purple_fade","#SKIN_PURPLE_FADE",0,7,1
+"skin_coldwar_heatsink","mp_weapon_pulse_lmg","rui/weapon_skin_swatches/swatch_heatsink","#SKIN_HEAT_SINK",0,6,1
+"skin_r97_sky","mp_weapon_r97","rui/weapon_skin_swatches/swatch_sky","#SKIN_SKY",0,5,1
+"skin_rspn101_crimson_fury","mp_weapon_rspn101","rui/weapon_skin_swatches/swatch_crimson_fury","#SKIN_CRIMSON_FURY",0,7,1 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/xp_per_faction_level.csv b/Northstar.CustomServers/mod/scripts/datatable/xp_per_faction_level.csv
new file mode 100644
index 00000000..e28cf8c0
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/xp_per_faction_level.csv
@@ -0,0 +1,6 @@
+level,xpPerLevel
+1,2
+2,3
+3,4
+4,5
+5,5 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/xp_per_fd_titan_level.csv b/Northstar.CustomServers/mod/scripts/datatable/xp_per_fd_titan_level.csv
new file mode 100644
index 00000000..28c33f5e
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/xp_per_fd_titan_level.csv
@@ -0,0 +1,25 @@
+level,xpPerLevel
+1,12
+2,12
+3,14
+4,14
+5,16
+6,16
+7,18
+8,18
+9,20
+10,20
+11,20
+12,20
+13,20
+14,20
+15,20
+16,20
+17,20
+18,20
+19,20
+20,20
+21,20
+22,20
+23,20
+24,20 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/xp_per_player_level.csv b/Northstar.CustomServers/mod/scripts/datatable/xp_per_player_level.csv
new file mode 100644
index 00000000..36e52bc8
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/xp_per_player_level.csv
@@ -0,0 +1,51 @@
+level,xpPerLevel
+1,3
+2,4
+3,5
+4,6
+5,7
+6,8
+7,9
+8,10
+9,10
+10,10
+11,10
+12,10
+13,10
+14,10
+15,10
+16,10
+17,10
+18,10
+19,10
+20,10
+21,10
+22,10
+23,10
+24,10
+25,10
+26,10
+27,10
+28,10
+29,10
+30,10
+31,10
+32,10
+33,10
+34,10
+35,10
+36,10
+37,10
+38,10
+39,10
+40,10
+41,10
+42,10
+43,10
+44,10
+45,10
+46,10
+47,10
+48,10
+49,10
+50,10 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/xp_per_titan_level.csv b/Northstar.CustomServers/mod/scripts/datatable/xp_per_titan_level.csv
new file mode 100644
index 00000000..d607f589
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/xp_per_titan_level.csv
@@ -0,0 +1,21 @@
+level,xpPerLevel
+1,3
+2,5
+3,7
+4,10
+5,10
+6,10
+7,10
+8,10
+9,10
+10,10
+11,10
+12,10
+13,10
+14,10
+15,10
+16,10
+17,10
+18,10
+19,10
+20,10 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/datatable/xp_per_weapon_level.csv b/Northstar.CustomServers/mod/scripts/datatable/xp_per_weapon_level.csv
new file mode 100644
index 00000000..a6859594
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/datatable/xp_per_weapon_level.csv
@@ -0,0 +1,21 @@
+level,default,sniper,pistol,antititan
+1,3,2,2,2
+2,5,3,3,3
+3,7,4,4,4
+4,10,5,5,4
+5,10,5,5,4
+6,10,5,5,4
+7,10,5,5,4
+8,10,5,5,4
+9,10,5,5,4
+10,10,5,5,4
+11,10,5,5,4
+12,10,5,5,4
+13,10,5,5,4
+14,10,5,5,4
+15,10,5,5,4
+16,10,5,5,4
+17,10,5,5,4
+18,10,5,5,4
+19,10,5,5,4
+20,10,5,5,4 \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_chat.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_chat.gnut
index 97ed959c..44836bc9 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_chat.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_chat.gnut
@@ -25,26 +25,26 @@ void function Chat_PrivateMessage(entity fromPlayer, entity toPlayer, string tex
}
// Broadcasts a message from the server to all players.
-void function Chat_ServerBroadcast(string text)
+void function Chat_ServerBroadcast(string text, bool withServerTag = true)
{
NSBroadcastMessage(
-1,
-1,
text,
- false,
+ !withServerTag,
false,
eChatMessageType.CHAT
)
}
// Sends a message from the server to one player. Will be shown as a whisper if whisper is set.
-void function Chat_ServerPrivateMessage(entity toPlayer, string text, bool whisper)
+void function Chat_ServerPrivateMessage(entity toPlayer, string text, bool whisper, bool withServerTag = true)
{
NSBroadcastMessage(
-1,
toPlayer.GetPlayerIndex(),
text,
- false,
+ !withServerTag,
false,
whisper ? eChatMessageType.WHISPER : eChatMessageType.CHAT
)
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_custom_codecallbacks.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_custom_codecallbacks.gnut
index 4a7f8189..ee21116d 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_custom_codecallbacks.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_custom_codecallbacks.gnut
@@ -1,7 +1,10 @@
untyped
global function AddCallback_OnReceivedSayTextMessage
-global function NSSetupChathooksServer
+
+// this is global due to squirrel bridge v3 making native not be able to find non-global funcs properly
+// temp fix (surely it will get replaced), do not use this function please
+global function CServerGameDLL_ProcessMessageStartThread
global struct ClServer_MessageStruct {
string message
@@ -53,7 +56,3 @@ void function AddCallback_OnReceivedSayTextMessage( ClServer_MessageStruct funct
{
NsCustomCallbacks.OnReceivedSayTextMessageCallbacks.append(callbackFunc)
}
-
-void function NSSetupChathooksServer() {
- getroottable().rawset("CServerGameDLL_ProcessMessageStartThread", CServerGameDLL_ProcessMessageStartThread)
-}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut
index 3161237c..24dbb62d 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_loadouts_mp.gnut
@@ -187,6 +187,8 @@ bool function ClientCommandCallback_SetPersistentLoadoutValue( entity player, ar
if ( args[0] == "pilot" )
SetPlayerLoadoutDirty( player )
+ UnlockAchievement( player, achievements.CUSTOMIZE_LOADOUT )
+
return true
}
@@ -230,7 +232,6 @@ bool function ClientCommandCallback_SetBurnCardPersistenceSlot( entity player, a
print( player + " SetBurnCardPersistenceSlot " + args[0] )
- // insecure, could be used to set invalid burnmeterslot potentially
if ( IsRefValidAndOfType( args[0], eItemTypes.BURN_METER_REWARD ) )
player.SetPersistentVar( "burnmeterSlot", BurnReward_GetByRef( args[0] ).id )
else
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/_utility.gnut b/Northstar.CustomServers/mod/scripts/vscripts/_utility.gnut
index c0e69ba5..3546e3b7 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/_utility.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/_utility.gnut
@@ -2127,8 +2127,13 @@ void function EntityDemigod_TryAdjustDamageInfo( entity ent, var damageInfo )
return
int bottomLimit = 5
+ // Set it up so that you at least take 1 damage, for hit indicators etc to trigger
if ( ent.GetHealth() <= bottomLimit )
- ent.SetHealth( bottomLimit + 1 ) //Set it up so that you at least take 1 damage, for hit indicators etc to trigger
+ {
+ // Prevent going over max health to avoid a server crash.
+ int newHealth = bottomLimit + 1
+ ent.SetHealth( ent.GetMaxHealth() < newHealth ? ent.GetMaxHealth() : newHealth )
+ }
int health = ent.GetHealth()
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
index a8def7b2..f193643c 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/burnmeter/_burnmeter.gnut
@@ -265,7 +265,7 @@ void function UseBurnCardWeapon( entity weapon, entity player )
if ( PlayerEarnMeter_IsRewardAvailable( player ) )
PlayerEarnMeter_SetRewardUsed( player )
- PlayerInventory_PopInventoryItem( player )
+ thread PlayerInventory_PopInventoryItem( player )
}
void function UseBurnCardWeaponInCriticalSection( entity weapon, entity ownerPlayer )
@@ -295,10 +295,14 @@ void function InitBurnMeterPersistentData( entity player )
void function PlayerUsesAmpedWeaponsBurncard( entity player )
{
thread PlayerUsesAmpedWeaponsBurncardThreaded( player )
+
}
void function PlayerUsesAmpedWeaponsBurncardThreaded( entity player )
{
+ player.Signal( "StopAmpedWeapons" )
+ player.EndSignal("StopAmpedWeapons")
+
array<entity> weapons = player.GetMainWeapons()
//weapons.extend( player.GetOffhandWeapons() ) // idk? unsure of vanilla behaviour here
foreach ( entity weapon in weapons )
@@ -615,4 +619,4 @@ void function PlayerUsesReaperfallBurncard( entity player )
DispatchSpawn( reaper )
thread SuperSpectre_WarpFall( reaper )
-} \ No newline at end of file
+}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/class/cplayer.nut b/Northstar.CustomServers/mod/scripts/vscripts/class/cplayer.nut
index b9f8f7eb..19c6b6df 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/class/cplayer.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/class/cplayer.nut
@@ -328,6 +328,26 @@ function CodeCallback_RegisterClass_CPlayer()
}
}
}
+
+ function CPlayer::GetUserInfoString( key, defaultValue = "" )
+ {
+ return GetUserInfoKVString_Internal( this, key, defaultValue )
+ }
+
+ function CPlayer::GetUserInfoInt( key, defaultValue = 0 )
+ {
+ return GetUserInfoKVInt_Internal( this, key, defaultValue )
+ }
+
+ function CPlayer::GetUserInfoFloat( key, defaultValue = 0 )
+ {
+ return GetUserInfoKVFloat_Internal( this, key, defaultValue )
+ }
+
+ function CPlayer::GetUserInfoBool( key, defaultValue = false )
+ {
+ return GetUserInfoKVBool_Internal( this, key, defaultValue )
+ }
}
void function PlayerDropsScriptedItems( entity player )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter.gnut b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter.gnut
index dda84976..b4e77375 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/earn_meter/sv_earn_meter.gnut
@@ -315,12 +315,12 @@ void function PlayerEarnMeter_Empty( entity player )
PlayerEarnMeter_SetRewardFrac( player, 0.0 )
}
-
void function EarnMeterDecayThink( entity player )
{
player.EndSignal( "OnDeath" )
player.Signal( "EarnMeterDecayThink" )
player.EndSignal( "EarnMeterDecayThink" )
+ thread OverDriveClearOnDeath( player )
if ( EarnMeter_DecayHold() < 0 )
return
@@ -348,6 +348,12 @@ void function EarnMeterDecayThink( entity player )
}
}
+void function OverDriveClearOnDeath( entity player )
+{
+ player.EndSignal( "OnDestroy" )
+ player.WaitSignal( "OnDeath" )
+ PlayerEarnMeter_SetEarnedFrac( player, PlayerEarnMeter_GetOwnedFrac( player ) )
+}
bool function PlayerEarnMeter_TryMakeGoalAvailable( entity player )
{
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut b/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut
index b1d8f6bd..f23c841d 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/evac/_evac.gnut
@@ -69,11 +69,21 @@ struct {
entity evacIcon
} file
+struct EvacShipSetting
+{
+ asset shipModel
+ string flyinSound
+ string hoverSound
+ string flyoutSound
+}
+
void function Evac_Init()
{
EvacShared_Init()
RegisterSignal( "EvacShipLeaves" )
RegisterSignal( "EvacOver" )
+
+ PrecacheParticleSystem( FX_EVAC_MARKER )
}
void function AddEvacNode( entity evacNode )
@@ -100,7 +110,7 @@ void function EvacEpilogueSetup()
void function EvacEpilogue()
{
- int winner = GetWinningTeam()
+ int winner = GetWinningTeam()
// make sure we don't run evac if it won't be supported for current map/gamestate
bool canRunEvac = GetCurrentPlaylistVarInt( "max_teams", 2 ) == 2 &&
@@ -110,6 +120,10 @@ void function EvacEpilogue()
if ( canRunEvac )
{
thread SetRespawnAndWait( false )
+
+ // no players can evac? end match
+ thread CheckIfAnyPlayerLeft( GetOtherTeam( winner ) )
+
thread Evac( GetOtherTeam( winner ), EVAC_INITIAL_WAIT, EVAC_ARRIVAL_TIME, EVAC_WAIT_TIME, EvacEpiloguePlayerCanBoard, EvacEpilogueShouldLeaveEarly, EvacEpilogueCompleted )
}
else
@@ -139,6 +153,10 @@ void function SetRespawnAndWait( bool mode )
{
wait GAME_EPILOGUE_PLAYER_RESPAWN_LEEWAY
SetRespawnsEnabled( mode )
+
+ // clear any respawn availablity, or players are able to save there respawn for whenever they want
+ foreach( entity player in GetPlayerArray() )
+ ClearRespawnAvailable( player )
}
bool function EvacEpiloguePlayerCanBoard( entity dropship, entity player )
@@ -174,12 +192,16 @@ void function EvacEpilogueCompleted( entity dropship )
ScreenFadeToBlackForever( player, 2.0 )
wait 2.0
- SetGameState( eGameState.Postmatch )
+ if( GetGameState() != eGameState.Postmatch )
+ SetGameState( eGameState.Postmatch )
}
// global evac func, anything can call this, it's not necessarily an epilogue thing
void function Evac( int evacTeam, float initialWait, float arrivalTime, float waitTime, bool functionref( entity, entity ) canBoardCallback, bool functionref( entity ) shouldLeaveEarlyCallback, void functionref( entity ) completionCallback, entity customEvacNode = null )
{
+ // get evac ship sound and model for specific team
+ EvacShipSetting evacShip = GetEvacShipSettingByTeam( evacTeam )
+
wait initialWait
// setup evac nodes if not manually registered
@@ -212,6 +234,13 @@ void function Evac( int evacTeam, float initialWait, float arrivalTime, float wa
DispatchSpawn( file.evacIcon )
file.evacIcon.DisableHibernation()
+ // start evac beam
+ int index = GetParticleSystemIndex( FX_EVAC_MARKER )
+
+ entity effectFriendly = StartParticleEffectInWorld_ReturnEntity( index, evacNode.GetOrigin(), < 0,0,0 > )
+ SetTeam( effectFriendly, evacTeam )
+ effectFriendly.kv.VisibilityFlags = ENTITY_VISIBLE_TO_FRIENDLY
+
wait 0.5 // need to wait here, or the target won't appear on clients for some reason
// eta until arrive
SetTeamActiveObjective( evacTeam, "EG_DropshipExtract", Time() + arrivalTime, file.evacIcon )
@@ -221,14 +250,20 @@ void function Evac( int evacTeam, float initialWait, float arrivalTime, float wa
wait arrivalTime - 4.33333
entity dropship = CreateDropship( evacTeam, evacNode.GetOrigin(), evacNode.GetAngles() )
- dropship.SetModel( $"models/vehicle/crow_dropship/crow_dropship_hero.mdl" )
- dropship.SetValueForModelKey( $"models/vehicle/crow_dropship/crow_dropship_hero.mdl" )
+
+ thread DropShipTempHide( dropship ) // prevent showing model and health bar on spawn
+ dropship.SetModel( evacShip.shipModel )
+ dropship.SetValueForModelKey( evacShip.shipModel )
+
dropship.SetMaxHealth( EVAC_SHIP_HEALTH )
dropship.SetHealth( EVAC_SHIP_HEALTH )
dropship.SetShieldHealth( EVAC_SHIP_SHIELDS )
SetTargetName( dropship, "#NPC_EVAC_DROPSHIP" )
DispatchSpawn( dropship )
- dropship.SetModel( $"models/vehicle/crow_dropship/crow_dropship_hero.mdl" )
+
+ // reduce nuclear core's damage
+ AddEntityCallback_OnDamaged( dropship, EvacDropshipDamaged )
+
AddEntityCallback_OnKilled( dropship, EvacDropshipKilled )
dropship.s.evacSlots <- [ null, null, null, null, null, null, null, null ]
@@ -241,9 +276,12 @@ void function Evac( int evacTeam, float initialWait, float arrivalTime, float wa
dropship.s.evacTrigger.Destroy()
// this should be for both teams
- SetTeamActiveObjective( evacTeam, "EG_DropshipExtractDropshipDestroyed" )
- SetTeamActiveObjective( GetOtherTeam( evacTeam ), "EG_DropshipExtractDropshipDestroyed" )
-
+ if( !IsValid( dropship ) )
+ {
+ SetTeamActiveObjective( evacTeam, "EG_DropshipExtractDropshipDestroyed" )
+ SetTeamActiveObjective( GetOtherTeam( evacTeam ), "EG_DropshipExtractDropshipDestroyed" )
+ }
+
foreach ( entity player in dropship.s.evacSlots )
{
if ( !IsValid( player ) )
@@ -255,10 +293,14 @@ void function Evac( int evacTeam, float initialWait, float arrivalTime, float wa
// this is called whether dropship is destroyed or evac finishes, callback can handle this itself
thread completionCallback( dropship )
})
-
+
// flyin
Spectator_SetCustomSpectatorFunc( EvacSpectatorFunc )
thread PlayAnim( dropship, "cd_dropship_rescue_side_start", evacNode )
+
+ // fly in sound and effect
+ EmitSoundOnEntity( dropship, evacShip.flyinSound )
+ thread WarpInEffectEvacShip( dropship )
// calculate time until idle start
float sequenceDuration = dropship.GetSequenceDuration( "cd_dropship_rescue_side_start" )
@@ -266,11 +308,22 @@ void function Evac( int evacTeam, float initialWait, float arrivalTime, float wa
wait sequenceDuration * cycleFrac
thread PlayAnim( dropship, "cd_dropship_rescue_side_idle", evacNode )
+
+ // hover sound
+ EmitSoundOnEntity( dropship, evacShip.hoverSound )
// eta until leave
SetTeamActiveObjective( evacTeam, "EG_DropshipExtract2", Time() + waitTime, file.evacIcon )
SetTeamActiveObjective( GetOtherTeam( evacTeam ), "EG_StopExtract2", Time() + waitTime, file.evacIcon )
+ // dialogue
+ PlayFactionDialogueToTeam( "mp_evacGo", evacTeam )
+ PlayFactionDialogueToTeam( "mp_evacStop", GetOtherTeam( evacTeam ) )
+
+ // stop evac beam
+ if( IsValid( effectFriendly ) )
+ EffectStop( effectFriendly )
+
// setup evac trigger
entity trigger = CreateEntity( "trigger_cylinder" )
trigger.SetRadius( 150 )
@@ -298,6 +351,10 @@ void function Evac( int evacTeam, float initialWait, float arrivalTime, float wa
WaitFrame()
}
+
+ // fly out sound
+ StopSoundOnEntity( dropship, evacShip.hoverSound )
+ EmitSoundOnEntity( dropship, evacShip.flyoutSound )
// holster all weapons
foreach ( entity player in dropship.s.evacSlots )
@@ -320,6 +377,12 @@ void function Evac( int evacTeam, float initialWait, float arrivalTime, float wa
Remote_CallFunction_NonReplay( player, "ServerCallback_PlayScreenFXWarpJump" )
wait WARPINFXTIME
+
+ dropship.kv.VisibilityFlags = 0 // prevent jetpack trails being like "dive" into ground
+ WaitFrame() // better wait because we are server
+ if( !IsValid( dropship ) )
+ return
+ thread __WarpOutEffectShared( dropship )
// go to space
@@ -345,6 +408,9 @@ void function Evac( int evacTeam, float initialWait, float arrivalTime, float wa
}
SetPlayerActiveObjective( player, "EG_DropshipExtractSuccessfulEscape" )
+
+ // let evacing team able to see the ship again
+ dropship.kv.VisibilityFlags = ENTITY_VISIBLE_TO_FRIENDLY
// skybox
player.SetSkyCamera( GetEnt( SKYBOXSPACE ) )
@@ -428,3 +494,88 @@ void function EvacDropshipKilled( entity dropship, var damageInfo )
}
}
}
+
+// if there's no player left in evacing team, we end this match
+void function CheckIfAnyPlayerLeft( int evacTeam )
+{
+ wait GAME_EPILOGUE_PLAYER_RESPAWN_LEEWAY
+ float startTime = Time()
+
+ OnThreadEnd(
+ function() : ( evacTeam )
+ {
+ SetTeamActiveObjective( evacTeam, "EG_DropshipExtractEvacPlayersKilled" )
+ SetTeamActiveObjective( GetOtherTeam( evacTeam ), "EG_StopExtractEvacPlayersKilled" )
+ thread EvacEpilogueCompleted( null )
+ }
+ )
+ while( true )
+ {
+ if( GetPlayerArrayOfTeam_Alive( evacTeam ).len() == 0 )
+ break
+ if( GetGameState() == eGameState.Postmatch )
+ return
+ WaitFrame()
+ }
+}
+
+void function DropShipTempHide( entity dropship )
+{
+ dropship.kv.VisibilityFlags = 0 // or it will still shows the jetpack fxs
+ HideName( dropship )
+ wait 0.46
+ if( IsValid( dropship ) )
+ {
+ dropship.kv.VisibilityFlags = ENTITY_VISIBLE_TO_EVERYONE
+ ShowName( dropship )
+ }
+}
+
+EvacShipSetting function GetEvacShipSettingByTeam( int team )
+{
+ EvacShipSetting tempSetting
+ tempSetting.shipModel = $"models/vehicle/goblin_dropship/goblin_dropship_hero.mdl"
+ tempSetting.flyinSound = "Goblin_IMC_Evac_Flyin"
+ tempSetting.hoverSound = "Goblin_IMC_Evac_Hover"
+ tempSetting.flyoutSound = "Goblin_IMC_Evac_FlyOut"
+
+ if( team == TEAM_MILITIA )
+ {
+ tempSetting.shipModel = $"models/vehicle/crow_dropship/crow_dropship_hero.mdl"
+ tempSetting.flyinSound = "Crow_MCOR_Evac_Flyin"
+ tempSetting.hoverSound = "Crow_MCOR_Evac_Hover"
+ tempSetting.flyoutSound = "Crow_MCOR_Evac_Flyout"
+ }
+ return tempSetting
+}
+
+void function EvacDropshipDamaged( entity evacShip, var damageInfo )
+{
+ int damageSourceID = DamageInfo_GetDamageSourceIdentifier( damageInfo )
+ if( damageSourceID == damagedef_nuclear_core )
+ DamageInfo_SetDamage( damageInfo, DamageInfo_GetDamage( damageInfo ) * EVAC_SHIP_DAMAGE_MULTIPLIER_AGAINST_NUCLEAR_CORE )
+}
+
+void function WarpInEffectEvacShip( entity dropship )
+{
+ dropship.EndSignal( "OnDestroy" )
+ float sfxWait = 0.1
+ float totalTime = WARPINFXTIME
+ float preWaitTime = 0.16 // give it some time so it's actually playing anim, and we can get it's "origin" attatch for playing warp in effect
+ string sfx = "dropship_warpin"
+
+ wait preWaitTime
+
+ int attach = dropship.LookupAttachment( "origin" )
+ vector origin = dropship.GetAttachmentOrigin( attach )
+ vector angles = dropship.GetAttachmentAngles( attach )
+
+ entity fx = PlayFX( FX_GUNSHIP_CRASH_EXPLOSION_ENTRANCE, origin, angles )
+ fx.FXEnableRenderAlways()
+ fx.DisableHibernation()
+
+ wait sfxWait
+ EmitSoundAtPosition( TEAM_UNASSIGNED, origin, sfx )
+
+ wait totalTime - sfxWait
+} \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut
index 99f34164..9b05c3d4 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut
@@ -26,6 +26,8 @@ void function CaptureTheFlag_Init()
{
PrecacheModel( CTF_FLAG_MODEL )
PrecacheModel( CTF_FLAG_BASE_MODEL )
+ PrecacheParticleSystem( FLAG_FX_FRIENDLY )
+ PrecacheParticleSystem( FLAG_FX_ENEMY )
CaptureTheFlagShared_Init()
SetSwitchSidesBased( true )
@@ -164,6 +166,9 @@ void function CreateFlags()
flag.SetValueForModelKey( CTF_FLAG_MODEL )
SetTeam( flag, flagTeam )
flag.MarkAsNonMovingAttachment()
+ flag.Minimap_AlwaysShow( TEAM_IMC, null ) // show flag icon on minimap
+ flag.Minimap_AlwaysShow( TEAM_MILITIA, null )
+ flag.Minimap_SetAlignUpright( true )
DispatchSpawn( flag )
flag.SetModel( CTF_FLAG_MODEL )
flag.SetOrigin( spawn.GetOrigin() + < 0, 0, base.GetBoundingMaxs().z * 2 > ) // ensure flag doesn't spawn clipped into geometry
@@ -291,7 +296,7 @@ void function GiveFlag( entity player, entity flag )
PlayFactionDialogueToTeamExceptPlayer( "ctf_flagPickupFriendly", player.GetTeam(), player )
MessageToTeam( flag.GetTeam(), eEventNotifications.PlayerHasFriendlyFlag, player, player )
- EmitSoundOnEntityToTeam( flag, "UI_CTF_EnemyGrabFlag", flag.GetTeam() )
+ EmitSoundOnEntityToTeam( flag, "UI_CTF_3P_EnemyGrabFlag", flag.GetTeam() )
SetFlagStateForTeam( flag.GetTeam(), eFlagState.Away ) // used for held
}
@@ -339,14 +344,13 @@ void function DropFlag( entity player, bool realDrop = true )
file.imcCaptureAssistList.append( player )
else
file.militiaCaptureAssistList.append( player )
-
+
// do notifications
MessageToPlayer( player, eEventNotifications.YouDroppedTheEnemyFlag )
EmitSoundOnEntityOnlyToPlayer( player, player, "UI_CTF_1P_FlagDrop" )
-
+
MessageToTeam( player.GetTeam(), eEventNotifications.PlayerDroppedEnemyFlag, player, player )
// todo need a sound here maybe
-
MessageToTeam( GetOtherTeam( player.GetTeam() ), eEventNotifications.PlayerDroppedFriendlyFlag, player, player )
// todo need a sound here maybe
}
@@ -421,7 +425,7 @@ void function CaptureFlag( entity player, entity flag )
AddPlayerScore( assistPlayer, "FlagCaptureAssist", player )
assistList.clear()
-
+
// notifs
MessageToPlayer( player, eEventNotifications.YouCapturedTheEnemyFlag )
EmitSoundOnEntityOnlyToPlayer( player, player, "UI_CTF_1P_PlayerScore" )
@@ -430,7 +434,7 @@ void function CaptureFlag( entity player, entity flag )
EmitSoundOnEntityToTeamExceptPlayer( flag, "UI_CTF_3P_TeamScore", player.GetTeam(), player )
MessageToTeam( GetOtherTeam( team ), eEventNotifications.PlayerCapturedFriendlyFlag, player, player )
- EmitSoundOnEntityToTeam( flag, "UI_CTF_3P_EnemyScore", flag.GetTeam() )
+ EmitSoundOnEntityToTeam( flag, "UI_CTF_3P_EnemyScores", flag.GetTeam() )
if ( GameRules_GetTeamScore( team ) == GameMode_GetRoundScoreLimit( GAMETYPE ) - 1 )
{
@@ -446,6 +450,9 @@ void function OnPlayerEntersFlagReturnTrigger( entity trigger, entity player )
flag = file.imcFlag
else
flag = file.militiaFlag
+
+ if( !IsValid( flag ) || !IsValid( player ) )
+ return
if ( !player.IsPlayer() || player.IsTitan() || player.GetTeam() != flag.GetTeam() || IsFlagHome( flag ) || flag.GetParent() != null )
return
@@ -481,6 +488,7 @@ void function TryReturnFlag( entity player, entity flag )
})
player.EndSignal( "FlagReturnEnded" )
+ flag.EndSignal( "FlagReturnEnded" ) // avoid multiple players to return one flag at once
player.EndSignal( "OnDeath" )
wait CTF_GetFlagReturnTime()
@@ -488,7 +496,8 @@ void function TryReturnFlag( entity player, entity flag )
// flag return succeeded
// return flag
ResetFlag( flag )
-
+ flag.Signal( "FlagReturnEnded" )
+
// do notifications for return
MessageToPlayer( player, eEventNotifications.YouReturnedFriendlyFlag )
AddPlayerScore( player, "FlagReturn", player )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut b/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut
index 496ebf84..7c08c036 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/item_inventory/sv_item_inventory.gnut
@@ -32,7 +32,7 @@ void function Sv_ItemInventory_OnPlayerGetsNewPilotLoadout( entity player, Pilot
if (playerInventoryStack.len() > 0) {
InventoryItem topInventoryItem = playerInventoryStack[playerInventoryStack.len() - 1]
- PlayerInventory_GiveInventoryItem(player, topInventoryItem)
+ thread PlayerInventory_GiveInventoryItem(player, topInventoryItem)
}
return
@@ -68,13 +68,25 @@ int function PlayerInventory_CountBurnRef( entity player, string burnRef )
void function PlayerInventory_TakeInventoryItem( entity player )
{
+ player.EndSignal( "OnDestroy" )
entity preexistingWeapon = player.GetOffhandWeapon( OFFHAND_INVENTORY )
- if ( IsValid( preexistingWeapon ) )
- player.TakeWeaponNow( preexistingWeapon.GetWeaponClassName() )
+
+ if( !IsValid( preexistingWeapon ) )
+ return
+ preexistingWeapon.EndSignal( "OnDestroy" )
+ if( preexistingWeapon.GetWeaponClassName() == "mp_ability_burncardweapon" )
+ {
+ var fireTime = preexistingWeapon.GetWeaponInfoFileKeyField( "fire_anim_rate" )
+ if( fireTime )
+ wait fireTime
+ }
+ player.TakeWeaponNow( preexistingWeapon.GetWeaponClassName() )
}
void function PlayerInventory_GiveInventoryItem( entity player, InventoryItem inventoryItem )
{
+ player.EndSignal( "OnDestroy" )
+
array<string> mods = []
if ( inventoryItem.itemType == eInventoryItemType.burnmeter ) {
@@ -84,7 +96,10 @@ void function PlayerInventory_GiveInventoryItem( entity player, InventoryItem in
}
// ensure inventory slot isn't full to avoid crash
- PlayerInventory_TakeInventoryItem( player )
+ waitthread PlayerInventory_TakeInventoryItem( player )
+ entity preexistingWeapon = player.GetOffhandWeapon( OFFHAND_INVENTORY ) // defensive fix
+ if( IsValid( preexistingWeapon ) )
+ player.TakeWeaponNow( preexistingWeapon.GetWeaponClassName() )
player.GiveOffhandWeapon( inventoryItem.weaponRef, OFFHAND_INVENTORY, mods )
if ( inventoryItem.itemType == eInventoryItemType.burnmeter ) {
@@ -98,7 +113,7 @@ void function PlayerInventory_PushInventoryItem( entity player, InventoryItem in
file.playerInventoryStacks[ player ].append(inventoryItem)
player.SetPlayerNetInt( "itemInventoryCount", file.playerInventoryStacks[ player ].len() )
- PlayerInventory_GiveInventoryItem(player, inventoryItem)
+ thread PlayerInventory_GiveInventoryItem(player, inventoryItem)
}
void function PlayerInventory_PushInventoryItemByBurnRef( entity player, string burnRef )
@@ -121,9 +136,9 @@ void function PlayerInventory_PopInventoryItem( entity player )
if (playerInventoryStack.len() > 0) {
InventoryItem nextInventoryItem = playerInventoryStack[playerInventoryStack.len() - 1]
- PlayerInventory_GiveInventoryItem(player, nextInventoryItem)
+ thread PlayerInventory_GiveInventoryItem( player, nextInventoryItem )
} else {
- PlayerInventory_TakeInventoryItem( player )
+ waitthread PlayerInventory_TakeInventoryItem( player )
}
}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype.gnut
index a4c6e187..362407b3 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype.gnut
@@ -1412,15 +1412,28 @@ void function CodeCallback_WeaponFireInCloak( entity player )
//player.SetCloakFlicker( 1.0, 2.0 )
DisableCloak( player, 0.5 )
- entity weapon = player.GetOffhandWeapon( OFFHAND_LEFT )
- //printt( "weapon", weapon.GetWeaponClassName() )
- // JFS; need code feature to properly reset next attack time/cooldown stuff
- if ( IsValid( weapon ) && weapon.GetWeaponClassName() == "mp_ability_cloak" )
+ entity cloakWeapon
+ int offhandSlot
+ for ( int i = 0; i <= OFFHAND_MELEE; i++ ) // OFFHAND_MELEE is the largest
{
- player.TakeOffhandWeapon( OFFHAND_LEFT )
- player.GiveOffhandWeapon( "mp_ability_cloak", OFFHAND_LEFT )
- weapon = player.GetOffhandWeapon( OFFHAND_LEFT )
- weapon.SetWeaponPrimaryClipCountAbsolute( 0 )
+ entity nowWeapon = player.GetOffhandWeapon( i )
+ if( IsValid( nowWeapon ))
+ {
+ if( nowWeapon.GetWeaponClassName() == "mp_ability_cloak" )
+ {
+ cloakWeapon = nowWeapon
+ offhandSlot = i
+ }
+ }
+ }
+ if( IsValid( cloakWeapon ) )
+ {
+ array<string> mods = cloakWeapon.GetMods()
+ // can't reset cooldown properly in script, let's give player a empty one
+ player.TakeWeapon( "mp_ability_cloak" ) // not using TakeWeaponNow() to fit vanilla behavior
+ player.GiveOffhandWeapon( "mp_ability_cloak", offhandSlot, mods )
+ cloakWeapon = player.GetOffhandWeapon( offhandSlot )
+ cloakWeapon.SetWeaponPrimaryClipCountAbsolute( 0 )
}
}
else
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut
index ca8dc5f1..ec426754 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_base_gametype_mp.gnut
@@ -19,6 +19,8 @@ global function ShouldEntTakeDamage_SPMP
global function GetTitanBuildTime
global function TitanPlayerHotDropsIntoLevel
+global function SetRecalculateRespawnAsTitanStartPointCallback
+
struct {
bool killcamsEnabled = true
bool playerDeathsHidden = false
@@ -26,6 +28,8 @@ struct {
entity intermissionCamera
array<entity> specCams
+
+ entity functionref( entity player, entity basePoint ) recalculateRespawnAsTitanStartPointCallback
} file
void function BaseGametype_Init_MPSP()
@@ -443,6 +447,9 @@ void function RespawnAsTitan( entity player, bool manualPosition = false )
player.isSpawning = true
entity spawnpoint = FindSpawnPoint( player, true, ( ShouldStartSpawn( player ) || Flag( "ForceStartSpawn" ) ) && !IsFFAGame() )
+ if ( file.recalculateRespawnAsTitanStartPointCallback != null )
+ spawnpoint = file.recalculateRespawnAsTitanStartPointCallback( player, spawnpoint )
+
TitanLoadoutDef titanLoadout = GetTitanLoadoutForPlayer( player )
asset model = GetPlayerSettingsAssetForClassName( titanLoadout.setFile, "bodymodel" )
@@ -500,7 +507,7 @@ void function RespawnAsTitan( entity player, bool manualPosition = false )
titan.Destroy() // pilotbecomestitan leaves an npc titan that we need to delete
else
RespawnAsPilot( player ) // this is 100% an edgecase, just avoid softlocking if we ever hit it in playable gamestates
-
+
camera.Fire( "Disable", "!activator", 0, player )
camera.Destroy()
})
@@ -509,6 +516,7 @@ void function RespawnAsTitan( entity player, bool manualPosition = false )
player.RespawnPlayer( null ) // spawn player as pilot so they get their pilot loadout on embark
player.SetOrigin( titan.GetOrigin() )
+ ClearTitanAvailable( player ) // titanfall succeed, clear titan availability
// don't make player titan when entity batteryContainer is not valid.
// This will prevent a servercrash that sometimes occur when evac is disabled and somebody is calling a titan in the defeat screen.
@@ -577,6 +585,11 @@ void function CheckForAutoTitanDeath( entity victim, entity attacker, var damage
}
}
+void function SetRecalculateRespawnAsTitanStartPointCallback( entity functionref( entity player, entity basePoint ) callbackFunc )
+{
+ file.recalculateRespawnAsTitanStartPointCallback = callbackFunc
+}
+
// stuff to change later
bool function ShouldEntTakeDamage_SPMP( entity ent, var damageInfo )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_battery_port.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_battery_port.gnut
index 37b89169..ea88c1bc 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_battery_port.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_battery_port.gnut
@@ -1 +1,219 @@
-//fuck \ No newline at end of file
+untyped
+global function InitTurretBatteryPort // only for fw turrets!
+
+void function InitTurretBatteryPort( entity batteryPort )
+{
+
+ batteryPort.s.beingUsed <- false // bool
+ batteryPort.s.hackAvaliable <- true // bool, for controlling hacking avaliablity
+
+ // SetUsableByGroup() updates is done in TurretStateWatcher()
+ batteryPort.SetUsableByGroup( "pilot" ) // show hind to any pilots
+ batteryPort.SetUsePrompts( "#RODEO_APPLY_BATTERY_HINT", "#RODEO_APPLY_BATTERY_HINT" ) // don't know what to use
+ AddCallback_OnUseEntity( batteryPort, OnUseTurretBatteryPort )
+}
+
+function OnUseTurretBatteryPort( entBeingUse, user )
+{
+ expect entity( entBeingUse )
+ expect entity( user )
+
+ //print( "try to use batteryPort" )
+ thread TryUseTurretBatteryPort( user, entBeingUse )
+}
+
+void function TryUseTurretBatteryPort( entity player, entity batteryPort )
+{
+ if( batteryPort.s.beingUsed ) // already being using
+ return
+
+ player.EndSignal( "OnDeath" )
+ player.EndSignal( "OnDestroy" )
+ player.EndSignal( "ScriptAnimStop" ) // so you can jump off animation
+ AddButtonPressedPlayerInputCallback( player, IN_JUMP, ForceStopUseBatteryPort )
+
+ OnThreadEnd(
+ function():( player )
+ {
+ RemoveButtonPressedPlayerInputCallback( player, IN_JUMP, ForceStopUseBatteryPort )
+ }
+ )
+
+
+ var BatteryPortUsable = batteryPort.s.isUsable
+
+ if( expect bool( BatteryPortUsable( batteryPort, player ) ) )
+ {
+ // friendly try to apply one, or enemy try to hack this turret
+ waitthread PlayerApplesBatteryPackToPort( player, batteryPort )
+ }
+}
+
+void function ForceStopUseBatteryPort( entity player )
+{
+ player.Signal( "ScriptAnimStop" )
+}
+
+void function PlayerApplesBatteryPackToPort( entity player, entity batteryPort )
+{
+ table result = {}
+ result.success <- false
+ batteryPort.s.beingUsed = true
+
+ BatteryPortSequenceStruct dataStruct = DisableCloakBeforeBatteryPortSequence( player )
+
+ // these are from _rodeo_titan.gnut
+ entity battery = GetBatteryOnBack( player )
+ battery.Hide() //Hide it because the animation has a battery model already
+ Battery_StopFX( battery )
+
+ entity tempBattery3p
+ tempBattery3p = CreatePropDynamic( RODEO_BATTERY_MODEL_FOR_RODEO_ANIMS )
+ tempBattery3p.SetParent( player, "R_HAND", false, 0.0 )
+ tempBattery3p.RemoveFromSpatialPartition()
+
+ entity tempBattery1p
+ tempBattery1p = CreatePropDynamic( RODEO_BATTERY_MODEL_FOR_RODEO_ANIMS )
+ tempBattery1p.SetParent( player.GetFirstPersonProxy(), "R_HAND", false, 0.0 )
+ tempBattery1p.RemoveFromSpatialPartition()
+
+ player.p.rodeoAnimTempProps.append( tempBattery3p )
+ player.p.rodeoAnimTempProps.append( tempBattery1p )
+
+ OnThreadEnd(
+ function() : ( battery, batteryPort, player, result, dataStruct )
+ {
+ if ( IsValid( battery ) ) // animation interrupted, otherwise the battery will be destroyed
+ {
+ battery.Show()
+ Battery_StartFX( battery )
+ }
+
+ if ( IsValid( batteryPort ) )
+ {
+ batteryPort.s.beingUsed = false
+ batteryPort.Anim_Stop()
+ }
+
+ if ( IsValid( player ) )
+ {
+ // restore control
+ DeployAndEnableWeapons( player )
+ //ViewConeFree( player ) // no need to lock viewcone
+
+ // clean up
+ ClearBatteryAnimTempProps( player )
+ PutEntityInSafeSpot( player, player, null, player.GetOrigin() + <0, 0, 32>, player.GetOrigin() )
+
+ CleanUpBatterySequenceForPlayer( player )
+ RestoreCloakAfterBatteryPortSequence( player, dataStruct )
+ }
+ }
+ )
+
+ FirstPersonSequenceStruct sequence
+ sequence.attachment = "REF" // only ref the batteryPort has
+
+ sequence.thirdPersonAnim = "pt_mp_battery_port_insert" //"pt_rodeo_ride_r_return_battery"
+ sequence.firstPersonAnim = "ptpov_mp_battery_port_insert" //"ptpov_rodeo_ride_r_return_battery"
+
+ // player stats
+ HolsterAndDisableWeapons( player )
+ //ViewConeZero( player ) // no need to lock viewcone
+
+ batteryPort.Anim_Play( "bp_mp_battery_port_insert" )
+
+ thread WaitForActivateBattery( player, battery, batteryPort )
+ waitthread FirstPersonSequence( sequence, player, batteryPort )
+}
+
+void function WaitForActivateBattery( entity player, entity battery, entity batteryPort )
+{
+ player.EndSignal( "OnDeath" )
+ player.EndSignal( "OnDestroy" )
+ player.EndSignal( "ScriptAnimStop" ) // so you can jump off animation
+ battery.EndSignal( "OnDestroy" )
+
+ player.WaitSignal( "BatteryActivate" ) // this is registered in _gamemode_fw.nut!
+ ApplyBatteryToBatteryPort( player, batteryPort )
+}
+
+void function ApplyBatteryToBatteryPort( entity player, entity batteryPort )
+{
+ if ( player.GetPlayerNetInt( "batteryCount" ) <= 0 ) // player actually not carrying a battery
+ return
+
+ entity battery = Rodeo_TakeBatteryAwayFromPilot( player )
+ if ( !IsValid( battery ) )
+ return
+
+ // player can apply battery
+
+ // disable hacking
+ batteryPort.s.hackAvaliable = false // can't be hacked again until completely killed
+
+
+ var useBatteryPort = batteryPort.s.useBattery
+ useBatteryPort( batteryPort, player )
+
+ // all things done, destroy this batt
+ battery.Destroy()
+}
+
+// for disabling cloak
+struct BatteryPortSequenceStruct
+{
+ bool wasCloaked = false
+ float cloakEndTime = 0.0
+}
+
+BatteryPortSequenceStruct function DisableCloakBeforeBatteryPortSequence( entity player )
+{
+ BatteryPortSequenceStruct dataStruct
+ if ( !IsCloaked( player ) )
+ return dataStruct // empty struct!
+
+ dataStruct.wasCloaked = true
+ dataStruct.cloakEndTime = player.GetCloakEndTime()
+ DisableCloak( player, 0.0 )
+
+ return dataStruct
+}
+
+bool function RestoreCloakAfterBatteryPortSequence( entity player, BatteryPortSequenceStruct dataStruct )
+{
+ if ( !IsAlive( player ) )
+ return false
+
+ if ( !dataStruct.wasCloaked )
+ return false
+
+ if ( dataStruct.cloakEndTime <= 0.0 )
+ return false
+
+ float remainingCloakDuration = max( 0.0, dataStruct.cloakEndTime - Time() )
+ if ( remainingCloakDuration <= CLOAK_FADE_IN ) //Has to be greater than 1.0 fade in duration, otherwise will cloak forever
+ return false
+
+ EnableCloak( player, remainingCloakDuration, CLOAK_FADE_IN )
+ return true
+}
+
+void function CleanUpBatterySequenceForPlayer( entity player )
+{
+ ClearPlayerAnimViewEntity( player )
+ player.AnimViewEntity_SetLerpOutTime( 0.4 ) // blend out the clear anim view entity
+ player.ClearParent()
+ player.Anim_Stop()
+}
+
+void function ClearBatteryAnimTempProps( entity player )
+{
+ foreach( tempProp in player.p.rodeoAnimTempProps )
+ {
+ if ( IsValid( tempProp ) )
+ tempProp.Destroy()
+ }
+
+ player.p.rodeoAnimTempProps.clear()
+} \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
index 6cde4655..46b39ebc 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_gamestate_mp.nut
@@ -220,6 +220,8 @@ void function GameStateEnter_Playing_Threaded()
{
WaitFrame() // ensure timelimits are all properly set
+ thread DialoguePlayNormal() // runs dialogue play function
+
while ( GetGameState() == eGameState.Playing )
{
// could cache these, but what if we update it midgame?
@@ -268,6 +270,8 @@ void function GameStateEnter_WinnerDetermined_Threaded()
// do win announcement
int winningTeam = GetWinningTeamWithFFASupport()
+ DialoguePlayWinnerDetermined() // play a faction dialogue when winner is determined
+
foreach ( entity player in GetPlayerArray() )
{
int announcementSubstr
@@ -509,6 +513,20 @@ void function GameStateEnter_SuddenDeath()
{
// disable respawns, suddendeath calling is done on a kill callback
SetRespawnsEnabled( false )
+
+ // defensive fixes, so game won't stuck in SuddenDeath forever
+ bool mltElimited = false
+ bool imcElimited = false
+ if( GetPlayerArrayOfTeam_Alive( TEAM_MILITIA ).len() < 1 )
+ mltElimited = true
+ if( GetPlayerArrayOfTeam_Alive( TEAM_IMC ).len() < 1 )
+ imcElimited = true
+ if( mltElimited && imcElimited )
+ SetWinner( TEAM_UNASSIGNED )
+ else if( mltElimited )
+ SetWinner( TEAM_IMC )
+ else if( imcElimited )
+ SetWinner( TEAM_MILITIA )
}
@@ -874,3 +892,90 @@ float function GetTimeLimit_ForGameMode()
// default to 10 mins, because that seems reasonable
return GetCurrentPlaylistVarFloat( playlistString, 10 )
}
+
+// faction dialogue
+
+void function DialoguePlayNormal()
+{
+ int totalScore = GameMode_GetScoreLimit( GameRules_GetGameMode() )
+ int winningTeam
+ int losingTeam
+ float diagIntervel = 71 // play a faction dailogue every 70 + 1s to prevent play together with winner dialogue
+
+ while( GetGameState() == eGameState.Playing )
+ {
+ wait diagIntervel
+ if( GameRules_GetTeamScore( TEAM_MILITIA ) < GameRules_GetTeamScore( TEAM_IMC ) )
+ {
+ winningTeam = TEAM_IMC
+ losingTeam = TEAM_MILITIA
+ }
+ if( GameRules_GetTeamScore( TEAM_MILITIA ) > GameRules_GetTeamScore( TEAM_IMC ) )
+ {
+ winningTeam = TEAM_MILITIA
+ losingTeam = TEAM_IMC
+ }
+ if( GameRules_GetTeamScore( winningTeam ) - GameRules_GetTeamScore( losingTeam ) >= totalScore * 0.4 )
+ {
+ PlayFactionDialogueToTeam( "scoring_winningLarge", winningTeam )
+ PlayFactionDialogueToTeam( "scoring_losingLarge", losingTeam )
+ }
+ else if( GameRules_GetTeamScore( winningTeam ) - GameRules_GetTeamScore( losingTeam ) <= totalScore * 0.2 )
+ {
+ PlayFactionDialogueToTeam( "scoring_winningClose", winningTeam )
+ PlayFactionDialogueToTeam( "scoring_losingClose", losingTeam )
+ }
+ else if( GameRules_GetTeamScore( winningTeam ) == GameRules_GetTeamScore( losingTeam ) )
+ {
+ continue
+ }
+ else
+ {
+ PlayFactionDialogueToTeam( "scoring_winning", winningTeam )
+ PlayFactionDialogueToTeam( "scoring_losing", losingTeam )
+ }
+ }
+}
+
+void function DialoguePlayWinnerDetermined()
+{
+ int totalScore = GameMode_GetScoreLimit( GameRules_GetGameMode() )
+ int winningTeam
+ int losingTeam
+
+ if( GameRules_GetTeamScore( TEAM_MILITIA ) < GameRules_GetTeamScore( TEAM_IMC ) )
+ {
+ winningTeam = TEAM_IMC
+ losingTeam = TEAM_MILITIA
+ }
+ if( GameRules_GetTeamScore( TEAM_MILITIA ) > GameRules_GetTeamScore( TEAM_IMC ) )
+ {
+ winningTeam = TEAM_MILITIA
+ losingTeam = TEAM_IMC
+ }
+ if( IsRoundBased() ) // check for round based modes
+ {
+ if( GameRules_GetTeamScore( winningTeam ) != GameMode_GetRoundScoreLimit( GAMETYPE ) ) // no winner dialogue till game really ends
+ return
+ }
+ if( GameRules_GetTeamScore( winningTeam ) - GameRules_GetTeamScore( losingTeam ) >= totalScore * 0.4 )
+ {
+ PlayFactionDialogueToTeam( "scoring_wonMercy", winningTeam )
+ PlayFactionDialogueToTeam( "scoring_lostMercy", losingTeam )
+ }
+ else if( GameRules_GetTeamScore( winningTeam ) - GameRules_GetTeamScore( losingTeam ) <= totalScore * 0.2 )
+ {
+ PlayFactionDialogueToTeam( "scoring_wonClose", winningTeam )
+ PlayFactionDialogueToTeam( "scoring_lostClose", losingTeam )
+ }
+ else if( GameRules_GetTeamScore( winningTeam ) == GameRules_GetTeamScore( losingTeam ) )
+ {
+ PlayFactionDialogueToTeam( "scoring_tied", winningTeam )
+ PlayFactionDialogueToTeam( "scoring_tied", losingTeam )
+ }
+ else
+ {
+ PlayFactionDialogueToTeam( "scoring_won", winningTeam )
+ PlayFactionDialogueToTeam( "scoring_lost", losingTeam )
+ }
+}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_model_viewer.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_model_viewer.nut
new file mode 100644
index 00000000..c33f4ef0
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_model_viewer.nut
@@ -0,0 +1,180 @@
+untyped
+
+
+global function ModelViewer_Init
+
+global function ToggleModelViewer
+
+global modelViewerModels = []
+
+#if DEV
+struct
+{
+ bool initialized
+ bool active
+ entity gameUIFreezeControls
+ array<string> playerWeapons
+ array<string> playerOffhands
+ bool dpadUpPressed = true
+ bool dpadDownPressed = true
+ var lastTitanAvailability
+} file
+#endif // DEV
+
+function ModelViewer_Init()
+{
+ #if DEV
+ if ( reloadingScripts )
+ return
+ AddClientCommandCallback( "ModelViewer", ClientCommand_ModelViewer )
+ #endif
+}
+
+function ToggleModelViewer()
+{
+ #if DEV
+ entity player = GetPlayerArray()[ 0 ]
+ if ( !file.active )
+ {
+ file.active = true
+
+ DisablePrecacheErrors()
+ wait 0.5
+
+ ModelViewerDisableConflicts()
+ Remote_CallFunction_NonReplay( player, "ServerCallback_ModelViewerDisableConflicts" )
+
+ ReloadShared()
+
+ if ( !file.initialized )
+ {
+ file.initialized = true
+ ControlsInit()
+ }
+
+ Remote_CallFunction_NonReplay( player, "ServerCallback_MVEnable" )
+
+ file.lastTitanAvailability = level.nv.titanAvailability
+ Riff_ForceTitanAvailability( eTitanAvailability.Never )
+
+ WeaponsRemove()
+ thread UpdateModelBounds()
+ }
+ else
+ {
+ file.active = false
+
+ Remote_CallFunction_NonReplay( player, "ServerCallback_MVDisable" )
+ RestorePrecacheErrors()
+
+ Riff_ForceTitanAvailability( file.lastTitanAvailability )
+
+ WeaponsRestore()
+ }
+ #endif
+}
+
+#if DEV
+function ModelViewerDisableConflicts()
+{
+ disable_npcs() //Just disable_npcs() for now, will probably add things later
+}
+
+function ReloadShared()
+{
+ modelViewerModels = GetModelViewerList()
+}
+
+function ControlsInit()
+{
+ file.gameUIFreezeControls = CreateEntity( "game_ui" )
+ file.gameUIFreezeControls.kv.spawnflags = 32
+ file.gameUIFreezeControls.kv.FieldOfView = -1.0
+
+ DispatchSpawn( file.gameUIFreezeControls )
+}
+
+bool function ClientCommand_ModelViewer( entity player, array<string> args )
+{
+ string command = args[ 0 ]
+ switch ( command )
+ {
+ case "freeze_player":
+ file.gameUIFreezeControls.Fire( "Activate", "!player", 0 )
+ break
+
+ case "unfreeze_player":
+ file.gameUIFreezeControls.Fire( "Deactivate", "!player", 0 )
+ break
+ }
+
+ return true
+}
+
+function UpdateModelBounds()
+{
+ wait( 0.3 )
+
+ foreach ( index, modelName in modelViewerModels )
+ {
+ entity model = CreatePropDynamic( expect asset( modelName ) )
+ local mins = model.GetBoundingMins()
+ local maxs = model.GetBoundingMaxs()
+
+ mins.x = min( -8.0, mins.x )
+ mins.y = min( -8.0, mins.y )
+ mins.z = min( -8.0, mins.z )
+
+ maxs.x = max( 8.0, maxs.x )
+ maxs.y = max( 8.0, maxs.y )
+ maxs.z = max( 8.0, maxs.z )
+
+ Remote_CallFunction_NonReplay( GetPlayerArray()[ 0 ], "ServerCallback_MVUpdateModelBounds", index, mins.x, mins.y, mins.z, maxs.x, maxs.y, maxs.z )
+ model.Destroy()
+ }
+}
+
+function WeaponsRemove()
+{
+ entity player = GetPlayerArray()[0]
+ if ( !IsValid( player ) )
+ return
+
+ file.playerWeapons.clear()
+ file.playerOffhands.clear()
+
+ array<entity> weapons = player.GetMainWeapons()
+ foreach ( weaponEnt in weapons )
+ {
+ string weapon = weaponEnt.GetWeaponClassName()
+ file.playerWeapons.append( weapon )
+ player.TakeWeapon( weapon )
+ }
+
+ array<entity> offhands = player.GetOffhandWeapons()
+ foreach ( index, offhandEnt in offhands )
+ {
+ string offhand = offhandEnt.GetWeaponClassName()
+ file.playerOffhands.append( offhand )
+ player.TakeOffhandWeapon( index )
+ }
+}
+
+function WeaponsRestore()
+{
+ entity player = GetPlayerArray()[0]
+ if ( !IsValid( player ) )
+ return
+
+ foreach ( weapon in file.playerWeapons )
+ {
+ player.GiveWeapon( weapon )
+ }
+
+ foreach ( index, offhand in file.playerOffhands )
+ {
+ player.GiveOffhandWeapon( offhand, index )
+ }
+}
+
+#endif // DEV
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
index 2d1ff074..dacd43b0 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_score.nut
@@ -187,9 +187,19 @@ void function ScoreEvent_TitanKilled( entity victim, entity attacker, var damage
return
if ( attacker.IsTitan() )
- AddPlayerScore( attacker, "TitanKillTitan", victim.GetTitanSoul().GetOwner() )
+ {
+ if( victim.GetBossPlayer() || victim.IsPlayer() ) // to confirm this is a pet titan or player titan
+ AddPlayerScore( attacker, "TitanKillTitan", attacker ) // this will show the "Titan Kill" callsign event
+ else
+ AddPlayerScore( attacker, "TitanKillTitan" )
+ }
else
- AddPlayerScore( attacker, "KillTitan", victim.GetTitanSoul().GetOwner() )
+ {
+ if( victim.GetBossPlayer() || victim.IsPlayer() )
+ AddPlayerScore( attacker, "KillTitan", attacker )
+ else
+ AddPlayerScore( attacker, "KillTitan" )
+ }
table<int, bool> alreadyAssisted
foreach( DamageHistoryStruct attackerInfo in victim.e.recentDamageHistory )
@@ -205,6 +215,9 @@ void function ScoreEvent_TitanKilled( entity victim, entity attacker, var damage
Remote_CallFunction_NonReplay( attackerInfo.attacker, "ServerCallback_SetAssistInformation", attackerInfo.damageSourceId, attacker.GetEncodedEHandle(), victim.GetEncodedEHandle(), attackerInfo.time )
}
}
+
+ if( !victim.IsNPC() ) // don't let killing a npc titan plays dialogue
+ KilledPlayerTitanDialogue( attacker, victim )
}
void function ScoreEvent_NPCKilled( entity victim, entity attacker, var damageInfo )
@@ -251,3 +264,42 @@ void function ScoreEvent_SetupEarnMeterValuesForTitanModes()
{
// relatively sure we don't have to do anything here but leaving this function for consistency
}
+
+// faction dialogue
+void function KilledPlayerTitanDialogue( entity attacker, entity victim )
+{
+ if( !attacker.IsPlayer() )
+ return
+ entity titan
+ if ( victim.IsTitan() )
+ titan = victim
+
+ if( !IsValid( titan ) )
+ return
+ string titanCharacterName = GetTitanCharacterName( titan )
+
+ switch( titanCharacterName )
+ {
+ case "ion":
+ PlayFactionDialogueToPlayer( "kc_pilotkillIon", attacker )
+ return
+ case "tone":
+ PlayFactionDialogueToPlayer( "kc_pilotkillTone", attacker )
+ return
+ case "legion":
+ PlayFactionDialogueToPlayer( "kc_pilotkillLegion", attacker )
+ return
+ case "scorch":
+ PlayFactionDialogueToPlayer( "kc_pilotkillScorch", attacker )
+ return
+ case "ronin":
+ PlayFactionDialogueToPlayer( "kc_pilotkillRonin", attacker )
+ return
+ case "northstar":
+ PlayFactionDialogueToPlayer( "kc_pilotkillNorthstar", attacker )
+ return
+ default:
+ PlayFactionDialogueToPlayer( "kc_pilotkilltitan", attacker )
+ return
+ }
+}
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo_titan.gnut b/Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo_titan.gnut
index 0984eaa8..153be7cd 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo_titan.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/rodeo/_rodeo_titan.gnut
@@ -42,6 +42,9 @@ global function Battery_StopFXAndHideIconForPlayer
global function RemovePlayerAirControl //This function should really be in a server only SP & MP utility script file. No such file exists as of right now.
global function RestorePlayerAirControl //This function should really be in a server only SP & MP utility script file. No such file exists as of right now.
+// needs these
+global function Rodeo_TakeBatteryAwayFromPilot
+
#if DEV
global function SetDebugRodeoPrint
global function GetDebugRodeoPrint
@@ -338,7 +341,7 @@ void function RodeoBatteryRemoval( entity pilot )
if ( !playerHadBattery )
{
- AddPlayerScore( pilot, "PilotBatteryStolen" )
+ AddPlayerScore( pilot, "PilotBatteryStolen", pilot )
entity battery = Rodeo_CreateBatteryPack( titan )
Rodeo_PilotPicksUpBattery( pilot, battery )
thread BatteryThiefHighlight( pilot )
@@ -1868,7 +1871,7 @@ void function Rodeo_OnTouchBatteryPack_Internal( entity player, entity batteryPa
Battery_StopFX( batteryPack ) //Will be turned on again when player loses cloak
Rodeo_PilotPicksUpBattery( player, batteryPack )
- AddPlayerScore( player, "PilotBatteryPickup" )
+ AddPlayerScore( player, "PilotBatteryPickup", player )
// MessageToPlayer( player, eEventNotifications.Rodeo_PilotPickedUpBattery )
return
}
@@ -1893,7 +1896,7 @@ void function Rodeo_PilotAddsBatteryToFriendlyTitan( entity rider, entity titan
Rodeo_ApplyBatteryToTitan( battery, titan ) //This destroys the battery
- AddPlayerScore( rider, "PilotBatteryApplied" )
+ AddPlayerScore( rider, "PilotBatteryApplied", rider )
EmitSoundOnEntityOnlyToPlayer( rider, rider, PILOT_APPLIES_BATTERY_TO_TITAN_HEALTH_RESTORED_SOUND )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut b/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut
index fbaf9e02..85f5aa05 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_loadouts.nut
@@ -3263,6 +3263,24 @@ string function Loadouts_GetSetFileForRequestedClass( entity player )
return loadout.race
}
+ #if DEV
+ // these are #if DEV'd until they work as their function names describe they should
+ // atm these only exist to allow the #if DEV'd calls to them for bot code in this file to compile on retail
+ // bots don't work in retail at all, so this doesn't matter for us really, but these should be unDEV'd and api'd properly once they are functional
+
+ PilotLoadoutDef function GetRandomPilotLoadout()
+ {
+ PilotLoadoutDef loadout
+ return loadout
+ }
+
+ TitanLoadoutDef function GetRandomTitanLoadout( string setFile )
+ {
+ TitanLoadoutDef loadout
+ return loadout
+ }
+ #endif
+
bool function Loadouts_TryGivePilotLoadout( entity player )
{
if ( !Loadouts_CanGivePilotLoadout( player ) )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_powerup.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_powerup.gnut
new file mode 100644
index 00000000..c390b5f5
--- /dev/null
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_powerup.gnut
@@ -0,0 +1,294 @@
+global function SH_PowerUp_Init
+global function GetPowerUpFromIndex
+global function GetPowerUpFromItemRef
+
+//Proto Use Functions
+global function PowerUp_Func_GiveEPG
+global function PowerUp_Func_GiveHELL
+global function PowerUp_Func_GiveLSTAR
+global function PowerUp_Func_GiveSHOTGUN
+global function PowerUp_Func_GiveArmorSmall
+global function PowerUp_Func_GiveArmorMedium
+global function PowerUp_Func_GiveArmorLarge
+global function PowerUp_Func_TitanBuildTime
+global function PowerUp_Func_PilotUpgrade
+global function PowerUp_Func_GiveTicks
+
+global struct PowerUp
+{
+ int index
+ string name
+ asset icon
+ asset model
+ asset baseModel
+ string itemRef
+ vector modelOffset
+ vector modelAngles
+ float respawnDelay
+ vector glowColor
+ bool titanPickup
+ int maxInWorld
+ void functionref( entity ) destroyFunc
+ bool functionref() spawnFunc
+}
+
+const bool TITAN_PICKUP = true
+const bool PILOT_PICKUP = false
+
+struct
+{
+ array<PowerUp> powerUps
+}file
+
+const TEST_MODEL = $"models/communication/terminal_com_station.mdl"
+const TEST_ICON = $"vgui/HUD/coop/minimap_coop_nuke_titan"
+
+void function SH_PowerUp_Init()
+{
+ #if SERVER || CLIENT
+ PrecacheWeapon( "mp_weapon_epg" )
+ PrecacheWeapon( "mp_weapon_arena1" )
+ PrecacheWeapon( "mp_weapon_arena2" )
+ PrecacheWeapon( "mp_weapon_arena3" )
+ PrecacheWeapon( "mp_weapon_lstar" )
+ PrecacheWeapon( "mp_weapon_shotgun_doublebarrel" )
+ PrecacheWeapon( "mp_weapon_frag_drone" )
+ #endif
+
+ file.powerUps.resize( ePowerUps.count )
+ CreatePowerUp( ePowerUps.weaponEPG, "mp_weapon_epg", "EPG", 60.0, 0, DefaultShouldSpawnPowerUp, PowerUp_Func_GiveEPG, <255,0,0>, PILOT_PICKUP, $"vgui/HUD/op_ammo_mini", $"models/weapons/auto_rocket_launcher_ARL/w_ARL.mdl", $"models/communication/flag_base.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.weaponHELL, "mp_weapon_arena3", "HELL", 90.0, 0, DefaultShouldSpawnPowerUp, PowerUp_Func_GiveHELL, <255,0,0>, PILOT_PICKUP, $"vgui/HUD/op_ammo_mini", $"models/weapons/defender/w_defender.mdl", $"models/communication/flag_base.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.weaponLSTAR, "mp_weapon_lstar", "LSTAR", 45.0, 0, DefaultShouldSpawnPowerUp, PowerUp_Func_GiveLSTAR, <255,0,0>, PILOT_PICKUP, $"vgui/HUD/op_ammo_mini", $"models/weapons/lstar/w_lstar.mdl", $"models/communication/flag_base.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.weaponSHOTGUN, "mp_weapon_shotgun_doublebarrel", "Shrapnel Shotgun", 30.0, 0, DefaultShouldSpawnPowerUp, PowerUp_Func_GiveSHOTGUN, <255,0,0>, PILOT_PICKUP, $"vgui/HUD/op_ammo_mini", $"models/weapons/mastiff_stgn/w_mastiff.mdl", $"models/communication/flag_base.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.armorSmall, "mp_loot_armor_small", "Armor +5", 30.0, 0, DefaultShouldSpawnPowerUp, PowerUp_Func_GiveArmorSmall, <0,0,255>, PILOT_PICKUP, $"vgui/HUD/op_health_mini", $"models/gameplay/health_pickup_small.mdl", $"models/containers/plastic_pallet_01.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.armorMedium, "mp_loot_armor_medium", "Armor +25", 60.0, 0, DefaultShouldSpawnPowerUp, PowerUp_Func_GiveArmorMedium, <0,0,255>, PILOT_PICKUP, $"vgui/HUD/op_health_mini", $"models/gameplay/health_pickup_small.mdl", $"models/containers/plastic_pallet_01.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.armorLarge, "mp_loot_armor_large", "Armor +50", 120.0, 0, DefaultShouldSpawnPowerUp, PowerUp_Func_GiveArmorLarge, <0,0,255>, PILOT_PICKUP, $"vgui/HUD/op_health_mini", $"models/gameplay/health_pickup_large.mdl", $"models/containers/plastic_pallet_01.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.titanTimeReduction, "mp_loot_titan_build_credit", "Titan Build Time", 20.0, 2, FRAShouldSpawnPowerUp, PowerUp_Func_TitanBuildTime, <0,255,0>, PILOT_PICKUP, $"vgui/HUD/op_drone_mini", $"models/titans/medium/titan_medium_battery_static.mdl", $"models/communication/flag_base.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.LTS_TitanTimeReduction, "mp_loot_titan_build_credit_lts", "Titan Build Time", 60.0, 0, LTSShouldSpawnPowerUp, PowerUp_Func_TitanBuildTime, <0,255,0>, PILOT_PICKUP, $"vgui/HUD/op_drone_mini", $"models/titans/medium/titan_medium_battery_static.mdl", $"models/communication/flag_base.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.pilotUpgrade, "mp_loot_pilot_upgrade", "Can of Spinach", 120.0, 0, DefaultShouldSpawnPowerUp, PowerUp_Func_PilotUpgrade, <0,255,0>, PILOT_PICKUP, $"vgui/HUD/op_drone_mini", $"models/humans/pilots/pilot_light_ged_m.mdl", $"models/communication/flag_base.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+ CreatePowerUp( ePowerUps.ticks, "mp_weapon_frag_drone", "Ticks", 60.0, 0, DefaultShouldSpawnPowerUp, PowerUp_Func_GiveTicks, <255,0,0>, PILOT_PICKUP, $"vgui/HUD/op_ammo_mini", $"models/robots/drone_frag/frag_drone_proj.mdl", $"models/robots/drone_frag/frag_drone_proj.mdl", < 0, 0, 32 >, < 0, 0, 0 > )
+}
+
+bool function FRAShouldSpawnPowerUp()
+{
+ return GAMETYPE == FREE_AGENCY
+}
+
+bool function LTSShouldSpawnPowerUp()
+{
+ if ( HasIronRules() )
+ return false
+
+ // modified for fw
+ //return ( GAMETYPE == LAST_TITAN_STANDING || GAMETYPE == LTS_BOMB )
+ return ( GAMETYPE == LAST_TITAN_STANDING || GAMETYPE == LTS_BOMB || GAMETYPE == FORT_WAR )
+}
+
+bool function DefaultShouldSpawnPowerUp()
+{
+ return GetCurrentPlaylistVarInt( "power_ups_enabled", 0 ) == 1
+}
+
+void function CreatePowerUp( int enumIndex, string item, string displayName, float respawnTime, int worldLimit, bool functionref() shouldSpawnFunction, void functionref( entity ) destroyFunction, vector color, bool canTitanPickup, asset worldIcon, asset worldModel, asset worldBase, vector worldModelOffset, vector worldModelAngle )
+{
+ PowerUp power
+ power.index = enumIndex
+ power.name = displayName
+ power.icon = worldIcon
+ power.model = worldModel
+ power.baseModel = worldBase
+ power.itemRef = item
+ power.modelOffset = worldModelOffset
+ power.modelAngles = worldModelAngle
+ power.respawnDelay = respawnTime
+ power.destroyFunc = destroyFunction
+ power.spawnFunc = shouldSpawnFunction
+ power.glowColor = color
+ power.titanPickup = canTitanPickup
+ power.maxInWorld = worldLimit
+ file.powerUps[enumIndex] = power
+
+ #if CLIENT
+ PrecacheHUDMaterial( worldIcon )
+ #else
+ PrecacheModel( worldModel )
+ PrecacheModel( worldBase )
+ #if R1_VGUI_MINIMAP
+ Minimap_PrecacheMaterial( worldIcon )
+ #endif
+ #endif
+}
+
+PowerUp function GetPowerUpFromIndex( int index )
+{
+ return file.powerUps[index]
+}
+
+PowerUp function GetPowerUpFromItemRef( string ref )
+{
+ foreach( power in file.powerUps )
+ {
+ if ( power.itemRef == ref )
+ return power
+ }
+
+ Assert( false, "Power Up not found")
+ unreachable
+}
+
+//////////////////////////////////////////////
+// PROTO USE FUNCTIONS - Maybe should be a bunch of new item_ classes with their own healthkit callbacks?
+//////////////////////////////////////////////
+void function PowerUp_Func_GiveEPG( entity player )
+{
+ #if SERVER
+ if ( player.IsTitan() )
+ return
+ GiveWeaponPowerUp( player, "mp_weapon_arena2" )
+ #endif
+}
+
+void function PowerUp_Func_GiveHELL( entity player )
+{
+ #if SERVER
+ if ( player.IsTitan() )
+ return
+ GiveWeaponPowerUp( player, "mp_weapon_arena3" )
+ #endif
+}
+
+void function PowerUp_Func_GiveLSTAR( entity player )
+{
+ #if SERVER
+ if ( player.IsTitan() )
+ return
+ GiveWeaponPowerUp( player, "mp_weapon_arena1" )
+ #endif
+}
+
+void function PowerUp_Func_GiveSHOTGUN( entity player )
+{
+ #if SERVER
+ if ( player.IsTitan() )
+ return
+ GiveWeaponPowerUp( player, "mp_weapon_shotgun_doublebarrel" )
+ #endif
+}
+
+void function PowerUp_Func_GiveTicks( entity player )
+{
+ #if SERVER
+ if ( player.IsTitan() )
+ return
+ player.TakeOffhandWeapon( OFFHAND_ORDNANCE )
+ player.GiveOffhandWeapon( "mp_weapon_frag_drone", OFFHAND_ORDNANCE )
+ thread RestoreDefaultOffhandWeapon( player )
+ #endif
+}
+
+#if SERVER
+void function RestoreDefaultOffhandWeapon( entity player )
+{
+ player.EndSignal( "OnDeath" )
+ player.EndSignal( "OnDestroy" )
+
+ while( true )
+ {
+ player.WaitSignal( "ThrowGrenade" )
+
+ if ( player.IsTitan() )
+ continue
+
+ entity weapon = player.GetOffhandWeapon( OFFHAND_ORDNANCE )
+ if ( weapon.GetWeaponPrimaryClipCount() == 0 )
+ {
+ player.TakeOffhandWeapon( OFFHAND_ORDNANCE )
+ int loadoutIndex = GetActivePilotLoadoutIndex( player )
+ PilotLoadoutDef loadout = GetPilotLoadoutFromPersistentData( player, loadoutIndex )
+ player.GiveOffhandWeapon( loadout.ordnance, OFFHAND_ORDNANCE )
+ return
+ }
+ }
+}
+
+void function GiveWeaponPowerUp( entity player, string newWeapon )
+{
+ array<entity> weapons = player.GetMainWeapons()
+ string weaponToSwitch = player.GetLatestPrimaryWeapon().GetWeaponClassName()
+
+ if ( player.GetActiveWeapon() != player.GetAntiTitanWeapon() )
+ {
+ foreach ( weapon in weapons )
+ {
+ string weaponClassName = weapon.GetWeaponClassName()
+ if ( weaponClassName == newWeapon )
+ {
+ weaponToSwitch = weaponClassName
+ break
+ }
+ }
+ }
+
+ player.TakeWeaponNow( weaponToSwitch )
+ player.GiveWeapon( newWeapon )
+ player.SetActiveWeaponByName( newWeapon )
+}
+#endif
+
+void function PowerUp_Func_GiveArmorSmall( entity player )
+{
+ GiveArmor( player, 5 )
+}
+
+void function PowerUp_Func_GiveArmorMedium( entity player )
+{
+ GiveArmor( player, 25 )
+}
+
+void function PowerUp_Func_GiveArmorLarge( entity player )
+{
+ GiveArmor( player, 50 )
+}
+
+void function GiveArmor( entity player, int amount )
+{
+ #if SERVER
+ if ( player.IsTitan() )
+ return
+ int currentShieldHealth = player.GetShieldHealth()
+ int currentMaxShieldHealth = player.GetShieldHealthMax()
+ player.SetShieldHealth( min( 200, amount + currentShieldHealth ) )
+ player.SetShieldHealthMax( min( 200, amount + currentMaxShieldHealth ) )
+ #endif
+}
+
+void function PowerUp_Func_TitanBuildTime( entity player )
+{
+ #if SERVER
+ entity battery = Rodeo_CreateBatteryPack()
+ battery.SetOrigin( player.GetOrigin() )
+ #endif
+}
+
+
+
+void function PowerUp_Func_PilotUpgrade( entity player )
+{
+ #if SERVER
+ if ( player.IsTitan() )
+ return
+
+ int loadoutIndex = GetPersistentSpawnLoadoutIndex( player, "pilot" )
+
+ PilotLoadoutDef loadout = GetPilotLoadoutFromPersistentData( player, loadoutIndex )
+
+ loadout.primary = "mp_weapon_arena2"
+ loadout.secondary = "mp_weapon_mgl"
+ loadout.ordnance = "mp_weapon_grenade_emp"
+
+ UpdateDerivedPilotLoadoutData( loadout )
+
+ GivePilotLoadout( player, loadout )
+ SetActivePilotLoadoutIndex( player, loadoutIndex )
+ #endif
+} \ No newline at end of file
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut b/Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut
index a51e528f..18df6a6f 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/sh_server_to_client_stringcommands.gnut
@@ -1,6 +1,4 @@
#if CLIENT
-global function ServerToClientStringCommands_Init
-
global function AddServerToClientStringCommandCallback
global function NSClientCodeCallback_RecievedServerToClientStringCommand
#endif
@@ -14,11 +12,6 @@ struct {
table< string, array< void functionref( array<string> args ) > > callbacks
} file
-void function ServerToClientStringCommands_Init()
-{
- getroottable().rawset( "NSClientCodeCallback_RecievedServerToClientStringCommand", NSClientCodeCallback_RecievedServerToClientStringCommand )
-}
-
void function AddServerToClientStringCommandCallback( string command, void functionref( array<string> args ) callback )
{
if ( !( command in file.callbacks ) )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans.gnut
index c9d986bc..57361362 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans.gnut
@@ -21,7 +21,6 @@ global function ReplacementTitan
global function TryAnnounceTitanfallWarningToEnemyTeam
global function GetTitanForPlayer
-
global function ShouldSetTitanRespawnTimer
global function PauseTitanTimers
@@ -33,6 +32,7 @@ global function SetReplacementTitanGamemodeRules
global function SetRequestTitanGamemodeRules
global function CreateTitanForPlayerAndHotdrop
+global function SetRequestTitanAllowedCallback
struct {
array<int> ETATimeThresholds = [ 120, 60, 30, 15 ]
@@ -53,6 +53,8 @@ struct {
bool functionref( entity ) ReplacementTitanGamemodeRules
bool functionref( entity, vector ) RequestTitanGamemodeRules
+ bool functionref( entity player, array< string > args ) RequestTitanAllowedCallback
+
} file
const nagInterval = 40
@@ -87,6 +89,10 @@ function ReplacementTitans_Init()
FlagInit( "LevelHasRoof" )
}
+void function SetRequestTitanAllowedCallback( bool functionref( entity player, array<string> args ) RequestTitanAllowedCallback )
+{
+ file.RequestTitanAllowedCallback = RequestTitanAllowedCallback
+}
void function ReplacementTitan_InitPlayer( entity player )
{
@@ -424,6 +430,7 @@ function TryETATitanReadyAnnouncement( entity player )
TryReplacementTitanReadyAnnouncement( player )
return
}
+
//This entire loop is probably too complicated now for what it's doing. Simplify next game!
//Loop might be pretty hard to read, a particular iteration of the loop is written in comments below
@@ -524,6 +531,9 @@ function req()
bool function ClientCommand_RequestTitan( entity player, array<string> args )
{
+ if( file.RequestTitanAllowedCallback != null && !file.RequestTitanAllowedCallback( player, args ) )
+ return true
+
ReplacementTitan( player ) //Separate function because other functions will call ReplacementTitan
return true
}
@@ -877,6 +887,20 @@ void function CreateTitanForPlayerAndHotdrop( entity player, Point spawnPoint, T
player.Signal( "titan_impact" )
thread TitanNPC_WaitForBubbleShield_StartAutoTitanBehavior( titan )
+ thread PlayerEarnMeter_ReplacementTitanThink( player, titan )
+}
+
+void function PlayerEarnMeter_ReplacementTitanThink( entity player, entity titan )
+{
+ player.EndSignal( "OnDestroy" )
+ OnThreadEnd(
+ function(): ( player )
+ {
+ if( IsValid( player ) )
+ PlayerEarnMeter_Reset( player )
+ }
+ )
+ titan.WaitSignal( "OnDestroy" )
}
void function CleanupTitanFallDisablingEntity( entity titanFallDisablingEntity, entity titan )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans_drop.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans_drop.gnut
index 933e9988..6972d5ff 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans_drop.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_replacement_titans_drop.gnut
@@ -4,6 +4,7 @@ global function HullTraceDropPoint
global function DebugTitanfall
global function TitanFindDropNodes
global function TitanHulldropSpawnpoint
+global function SetRecalculateTitanReplacementPointCallback
global const TITANDROP_LOS_DIST = 2000 // 2D distance at which we do the line of sight check to see where the player wants to call in the titan
global const TITANDROP_MIN_FOV = 10
@@ -19,8 +20,15 @@ global const TITANDROP_FALLBACK_DIST = 150 // if the ground search hits, we go t
struct
{
int replacementSpawnpointsID
+ Point functionref(Point originalPoint, entity player) recalculateTitanReplacementPointCallback
} file
+
+void function SetRecalculateTitanReplacementPointCallback(Point functionref(Point originalPoint, entity player) recalculateTitanReplacementPointCallback)
+{
+ file.recalculateTitanReplacementPointCallback = recalculateTitanReplacementPointCallback
+}
+
void function ReplacementTitansDrop_Init()
{
AddSpawnCallback( "info_spawnpoint_titan", AddDroppoint )
@@ -117,7 +125,10 @@ Point function GetTitanReplacementPoint( entity player, bool forDebugging = fals
vector playerEyeAngles = player.EyeAngles()
vector playerOrg = player.GetOrigin()
- return CalculateTitanReplacementPoint( playerOrg, playerEyePos, playerEyeAngles, forDebugging )
+ Point tempPoint = CalculateTitanReplacementPoint( playerOrg, playerEyePos, playerEyeAngles, forDebugging)
+ if( file.recalculateTitanReplacementPointCallback != null )
+ tempPoint = file.recalculateTitanReplacementPointCallback( tempPoint, player )
+ return tempPoint
}
Point function CalculateTitanReplacementPoint( vector playerOrg, vector playerEyePos, vector playerEyeAngles, bool forDebugging = false )
@@ -165,6 +176,7 @@ Point function CalculateTitanReplacementPoint( vector playerOrg, vector playerEy
Point point
point.origin = dropPoint
point.angles = yawAngles
+
return point
}
}
@@ -215,7 +227,8 @@ Point function CalculateTitanReplacementPoint( vector playerOrg, vector playerEy
Point point
point.origin = nodeOrigin
point.angles = Vector( 0, yaw, 0 )
- return point
+
+ return point
}
vector function GetPathNodeSearchPosWithLookPos( vector playerOrg, vector playerEyePos, vector playerEyeForward, vector playerLookPos, bool debug )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_health.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_health.gnut
index d600cb03..396d5624 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_health.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/_titan_health.gnut
@@ -1010,7 +1010,7 @@ void function AddCreditToTitanCoreBuilder( entity titan, float credit )
if ( IsValid( bossPlayer ) && !coreWasAvailable && IsCoreChargeAvailable( bossPlayer, soul ) )
{
- AddPlayerScore( bossPlayer, "TitanCoreEarned" )
+ AddPlayerScore( bossPlayer, "TitanCoreEarned", bossPlayer ) // this will show the "Core Earned" callsign event
#if MP
UpdateTitanCoreEarnedStat( bossPlayer, titan )
PIN_PlayerAbilityReady( bossPlayer, "core" )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut b/Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut
index 5f72385e..d0a2d5e4 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/titan/class_titan.gnut
@@ -68,6 +68,11 @@ bool function ClientCommand_TitanEject( entity player, array<string> args )
if ( !PlayerCanEject( player ) )
return true
+ // check array length before accessing index to avoid oob access
+ // prevents crashing a server by just calling `TitanEject` without arguments
+ if( args.len() < 1 )
+ return true
+
int ejectPressCount = args[ 0 ].tointeger()
if ( ejectPressCount < 3 )
return true