// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool

main()
{
    level._effect["melee_bubbles"] = loadfx( "vfx/moments/ship_graveyard/melee_bubbles" );
    level._effect["melee_scuba_bubbles"] = loadfx( "vfx/moments/ship_graveyard/melee_scuba_bubbles" );
    level._effect["vfx_godray_uw_narrow_02"] = loadfx( "vfx/ambient/lights/vfx_godray_uw_narrow_02" );
    level._effect["vfx_godray_uw_narrow_01"] = loadfx( "vfx/ambient/lights/vfx_godray_uw_narrow_01" );
    level._effect["vfx_godray_uw_patch_04"] = loadfx( "vfx/ambient/lights/vfx_godray_uw_patch_04" );
    level._effect["vfx_godray_uw_patch_03"] = loadfx( "vfx/ambient/lights/vfx_godray_uw_patch_03" );
    level._effect["vfx_godray_uw_patch_02"] = loadfx( "vfx/ambient/lights/vfx_godray_uw_patch_02" );
    level._effect["vfx_godray_uw_patch_kelp"] = loadfx( "vfx/ambient/lights/vfx_godray_uw_patch_kelp" );
    level._effect["vfx_godray_underwater_patch"] = loadfx( "vfx/ambient/lights/vfx_godray_underwater_patch" );
    surface_fx();
    level._effect["fish_school01"] = loadfx( "fx/animals/fish_school01" );
    level._effect["fish_school_side_med"] = loadfx( "fx/animals/fish_school_side_med" );
    level._effect["water_bubbles_longlife_lp"] = loadfx( "fx/water/water_bubbles_longlife_lp" );
    level._effect["water_bubbles_random_ch2"] = loadfx( "fx/water/water_bubbles_random_ch2" );
    level._effect["water_bubbles_random_ch3"] = loadfx( "fx/water/water_bubbles_random_ch3" );
    level._effect["water_bubbles_wide_sm_lp"] = loadfx( "fx/water/water_bubbles_wide_sm_lp" );
    level._effect["caustics"] = loadfx( "fx/water/caustics" );
    level._effect["dubai_lights_glow_white"] = loadfx( "fx/lights/dubai_lights_glow_white" );
    level._effect["floating_debris_xlg_underwater"] = loadfx( "fx/misc/floating_debris_xlg_underwater" );
    level._effect["floating_obj_bottles_underwater"] = loadfx( "fx/misc/floating_obj_bottles_underwater" );
    level._effect["floating_obj_trash_underwater"] = loadfx( "fx/misc/floating_obj_trash_underwater" );
    level._effect["underwater_blood_linger_thick"] = loadfx( "fx/water/underwater_blood_linger_thick" );
    level._effect["underwater_blood_linger_thick_stairs"] = loadfx( "fx/water/underwater_blood_linger_thick_stairs" );
    level._effect["water_intro_river_wake02_large"] = loadfx( "fx/water/water_intro_river_wake02_large" );
    level._effect["ocean_particulate_lightsource"] = loadfx( "fx/water/ocean_particulate_lightsource" );
    level._effect["ocean_particulate_lightsource_large"] = loadfx( "fx/water/ocean_particulate_lightsource_large" );
    level._effect["underwater_particulates_glitter"] = loadfx( "fx/water/underwater_particulates_glitter" );
    level._effect["ny_harbor_underwater_dust_swirl"] = loadfx( "fx/water/ny_harbor_underwater_dust_swirl" );
    level._effect["ice_infil_underwater_murk"] = loadfx( "fx/water/ice_infil_underwater_murk" );
    level._effect["ny_harbor_underwater_dust_bright"] = loadfx( "fx/water/ny_harbor_underwater_dust_bright" );
    level._effect["vfx_murk_underwater_wall"] = loadfx( "vfx/ambient/water/vfx_murk_underwater_wall" );
    level._effect["silt_ground_ambient"] = loadfx( "fx/water/silt_ground_ambient" );
    level._effect["silt_ground_ambient_dark"] = loadfx( "fx/water/silt_ground_ambient_dark" );
    level._effect["silt_ground_ambient_medium"] = loadfx( "fx/water/silt_ground_ambient_medium" );
    level._effect["silt_ground_ambient_dark_large"] = loadfx( "fx/water/silt_ground_ambient_dark_large" );
    level._effect["silt_ground_ambient_light_large"] = loadfx( "fx/water/silt_ground_ambient_light_large" );
    level._effect["silt_ground_ambient_medium_large"] = loadfx( "fx/water/silt_ground_ambient_medium_large" );
    level._effect["silt_ground_ambient_line"] = loadfx( "fx/water/silt_ground_ambient_line" );
    level._effect["bubbles_leak_vent_small"] = loadfx( "vfx/ambient/water/bubbles_leak_vent_small" );
    level._effect["bubbles_leak_vent"] = loadfx( "vfx/ambient/water/bubbles_leak_vent" );
    level._effect["bubbles_bunch_leak_vent"] = loadfx( "vfx/ambient/water/bubbles_bunch_leak_vent" );
    level._effect["bubbles_mass_sheet_wide"] = loadfx( "vfx/ambient/water/bubbles_mass_sheet_wide" );
    level._effect["light_beam_glow_wide_underwater"] = loadfx( "vfx/ambient/lights/light_beam_glow_wide_underwater" );
    level._effect["light_boat_bottom_wide_underwater"] = loadfx( "vfx/ambient/lights/light_boat_bottom_wide_underwater" );
    level._effect["godray_underwater_huge"] = loadfx( "vfx/ambient/lights/vfx_godray_underwater_huge" );
    level._effect["godray_underwater_large"] = loadfx( "vfx/ambient/lights/vfx_godray_underwater_large" );
    level._effect["godray_underwater"] = loadfx( "vfx/ambient/lights/vfx_godray_underwater" );
    level._effect["godray_underwater_short"] = loadfx( "vfx/ambient/lights/vfx_godray_underwater_short" );
    level._effect["godray_underwater_tight"] = loadfx( "vfx/ambient/lights/vfx_godray_underwater_tight" );
    level._effect["godray_underwater_tight_short"] = loadfx( "vfx/ambient/lights/vfx_godray_underwater_tight_short" );
    level._effect["circle_glow_w_beam_lg"] = loadfx( "vfx/ambient/lights/circle_glow_w_beam_lg" );
    level._effect["vfx_underwater_sunflare"] = loadfx( "vfx/ambient/lights/vfx_underwater_sunflare" );
    level._effect["vfx_underwater_sunflare_roof"] = loadfx( "vfx/ambient/lights/vfx_underwater_sunflare_roof" );
    level._effect["murk_cloud_slow"] = loadfx( "vfx/ambient/water/murk_cloud_slow" );
    level._effect["murk_cloud_slow_spread"] = loadfx( "vfx/ambient/water/murk_cloud_slow_spread" );
    level._effect["murk_white_water_lg"] = loadfx( "vfx/ambient/water/murk_white_water_lg" );
    level._effect["silt_ground_ambient_light"] = loadfx( "vfx/ambient/water/silt_ground_ambient_light" );
    level._effect["silt_floating_ambient_light"] = loadfx( "vfx/ambient/water/silt_floating_ambient_light" );
    level._effect["silt_water_fill"] = loadfx( "vfx/ambient/water/silt_water_fill" );
    level._effect["silt_water_fill_soft"] = loadfx( "vfx/ambient/water/silt_water_fill_soft" );
    level._effect["ocean_particulate_drowning"] = loadfx( "vfx/moments/ship_graveyard/ocean_particulate_drowning" );
    level._effect["ocean_particulate_lighthouse"] = loadfx( "vfx/moments/ship_graveyard/ocean_particulate_lighthouse" );
    level._effect["vfx_scrnfx_water_distortion"] = loadfx( "vfx/gameplay/screen_effects/vfx_scrnfx_water_distortion" );
    level._effect["vfx_scrnfx_water_distortion_mov"] = loadfx( "vfx/gameplay/screen_effects/vfx_scrnfx_water_distortion_mov" );
    level._effect["scuba_bubbles"] = loadfx( "vfx/moments/ship_graveyard/scuba_bubbles_plr_front" );
    level._effect["scuba_bubbles_panic"] = loadfx( "vfx/moments/ship_graveyard/scuba_bubbles_plr_panic" );
    level._effect["scuba_mask_distortion"] = loadfx( "vfx/moments/ship_graveyard/scuba_mask_distortion" );
    level._effect["ocean_particulate_player"] = loadfx( "vfx/moments/ship_graveyard/ocean_particulate_player_oneshot" );
    level._effect["ocean_particulate_player_view"] = loadfx( "vfx/moments/ship_graveyard/ocean_particulate_player_view" );
    level._effect["ocean_particulate_player_mov"] = loadfx( "vfx/moments/ship_graveyard/ocean_particulate_player_mov" );
    level._effect["reload_clip_bubbles"] = loadfx( "vfx/moments/ship_graveyard/reload_clip_bubbles" );
    level._effect["reload_gun_bubbles"] = loadfx( "vfx/moments/ship_graveyard/reload_gun_bubbles" );
    level._effect["reload_snap_bubbles"] = loadfx( "vfx/moments/ship_graveyard/reload_snap_bubbles" );
    level._effect["aps_underwater_reload"] = loadfx( "vfx/moments/ship_graveyard/aps_underwater_reload" );
    level._effect["ai_marker_light"] = loadfx( "vfx/moments/ship_graveyard/ai_marker_light" );
    level._effect["vfx_headlamp_enemy_diver"] = loadfx( "vfx/moments/ship_graveyard/vfx_headlamp_enemy_diver" );
    level._effect["vfx_headlamp_enemy_off_runner"] = loadfx( "vfx/moments/ship_graveyard/vfx_headlamp_enemy_off_runner" );
    level._effect["silt_ground_kickup_runner"] = loadfx( "vfx/gameplay/footsteps/swim_silt_ground_kickup_runner" );
    level._effect["knife_stab_blood"] = loadfx( "fx/_requests/ship_graveyard/knife_bloodpool_underwater" );
    level._effect["underwater_bullet"] = loadfx( "fx/_requests/ship_graveyard/shpg_underwater_bullet_trail1" );
    level._effect["underwater_surface_splash_bullet"] = loadfx( "fx/_requests/ship_graveyard/underwater_splash_bullet" );
    level._effect["shpg_enm_death_bubbles_a"] = loadfx( "vfx/_requests/shipg/shpg_enm_death_bubbles_a" );
    level._effect["vfx_exp_underwater_runner"] = loadfx( "vfx/gameplay/explosions/vfx_exp_underwater_runner" );
    level._effect["shpg_caustic_pulse_light_a"] = loadfx( "fx/_requests/ship_graveyard/shpg_caustic_pulse_light_a" );
    level._effect["shpg_uwater_glow_beam_flash_a"] = loadfx( "fx/_requests/ship_graveyard/shpg_uwater_glow_beam_flash_a" );
    level._effect["dlight_white"] = loadfx( "fx/_requests/ship_graveyard/dlight_white" );
    level._effect["glow_beam_lcs_large"] = loadfx( "vfx/moments/ship_graveyard/glow_beam_lcs_large" );
    level._effect["bubble_burst_large"] = loadfx( "vfx/ambient/water/bubble_burst_large" );
    level._effect["boat_fall_slide"] = loadfx( "vfx/_requests/shipg/boat_fall_slide" );
    level._effect["vfx_exp_underwater"] = loadfx( "vfx/gameplay/explosions/vfx_exp_underwater" );
    level._effect["lighthouse_glass_break"] = loadfx( "vfx/_requests/shipg/shpg_glass_break_a" );
    level._effect["boat_trail"] = loadfx( "fx/_requests/ship_graveyard/zodiac_wake_geotrail_shpg" );
    level._effect["boat_trail_large"] = loadfx( "fx/_requests/ship_graveyard/water_wake_underwater_lg" );
    level._effect["lcs_front_lights"] = loadfx( "fx/_requests/ship_graveyard/lcs_front_lights" );
    level._effect["lcs_front_bubbles"] = loadfx( "fx/_requests/ship_graveyard/shipg_lcs_front_bubbles" );
    level._effect["lcs_back_lights"] = loadfx( "fx/_requests/ship_graveyard/lcs_back_lights" );
    level._effect["ship_wreckage_spark_delay"] = loadfx( "fx/_requests/ship_graveyard/ship_wreckage_spark_delay" );
    level._effect["underwater_object_trail"] = loadfx( "fx/_requests/ship_graveyard/underwater_obj_trail" );
    level._effect["underwater_obj_trail_small"] = loadfx( "fx/_requests/ship_graveyard/underwater_obj_trail_small" );
    level._effect["weld_sparks"] = loadfx( "fx/misc/welding_underwater" );
    level._effect["metal_sequence_silt_large"] = loadfx( "fx/water/metal_sequence_silt_large" );
    level._effect["player_arm_blood"] = loadfx( "fx/water/blood_spurt_trapped_underwater" );
    level._effect["ship_wreckage_spark_underwater"] = loadfx( "fx/misc/ship_wreckage_spark_underwater" );
    level._effect["sniper_glint"] = loadfx( "fx/misc/scope_glint" );
    level._effect["shpg_underwater_explosion_med_a"] = loadfx( "fx/_requests/ship_graveyard/shpg_underwater_explosion_med_a" );
    level._effect["shpg_underwater_bubble_explo"] = loadfx( "fx/_requests/ship_graveyard/shpg_underwater_bubble_explo" );
    level._effect["underwater_surface_splash"] = loadfx( "vfx/moments/ship_graveyard/bubbles_diver_drop_underwater" );
    level._effect["vfx_boat_wake_lcs_abovewater"] = loadfx( "vfx/gameplay/tread_fx/vfx_boat_wake_lcs_abovewater" );
    level._effect["wake_lg"] = loadfx( "vfx/gameplay/tread_fx/vfx_boat_wake_large" );
    level._effect["wake_med"] = loadfx( "vfx/gameplay/tread_fx/vfx_boat_wake_med" );
    level._effect["prop_wash"] = loadfx( "vfx/gameplay/tread_fx/vfx_prop_wash" );
    level._effect["boat_fall_impact_wreck"] = loadfx( "vfx/moments/ship_graveyard/vfx_underwater_impact_largehit" );
    level._effect["boat_fall_impact_wreck"] = loadfx( "vfx/moments/ship_graveyard/vfx_underwater_impact_lilboathit" );
    level._effect["large_water_impact_surface_breach"] = loadfx( "vfx/ambient/water/large_water_impact_surface_breach" );
    level._effect["large_water_impact_close_rocks"] = loadfx( "vfx/ambient/water/large_water_impact_close_rocks" );
    level._effect["large_water_impact_close_wave"] = loadfx( "vfx/ambient/water/large_water_impact_close_wave" );
    level._effect["abv_large_water_impact_close_wave"] = loadfx( "vfx/ambient/water/large_water_impact_close_wave" );
    level._effect["large_water_impact_close_ship"] = loadfx( "vfx/ambient/water/large_water_impact_close_ship" );
    level._effect["large_water_impact_close_bouy"] = loadfx( "vfx/ambient/water/large_water_impact_close_bouy" );
    level._effect["ocean_waves_blowoff"] = loadfx( "vfx/ambient/water/ocean_waves_blowoff" );
    level._effect["ocean_waves_splash"] = loadfx( "vfx/ambient/water/ocean_waves_splash" );
    level._effect["ocean_waves_mist"] = loadfx( "vfx/ambient/water/ocean_waves_mist" );
    level._effect["boat_crashing_waves"] = loadfx( "vfx/ambient/water/large_water_impact_close_player_boat" );
    level._effect["player_dive_bubbles"] = loadfx( "vfx/_requests/shipg/shpg_scuba_bubbles_plr_front_dive" );
    level._effect["large_water_impact_close_rain_windy"] = loadfx( "fx/maps/ny_harbor/large_water_impact_close_rain_windy" );
    level._effect["abv_water_splash"] = loadfx( "vfx/ambient/water/rain_drop_impact_splash" );
    level._effect["abv_spotlight"] = loadfx( "fx/misc/hunted_spotlight_model" );
    level._effect["abv_rain/rain_10"] = loadfx( "vfx/ambient/weather/rain/rain_10_windy" );
    level._effect["rain_10"] = loadfx( "vfx/ambient/weather/rain/rain_10_windy" );
    level._effect["abv_factory_fog_patch"] = loadfx( "fx/smoke/factory_fog_patch" );
    level._effect["abv_large_water_impact"] = loadfx( "fx/maps/ny_harbor/large_water_impact" );
    level._effect["abv_large_water_impact_close"] = loadfx( "fx/maps/ny_harbor/large_water_impact_close" );
    level._effect["abv_large_water_impact_close_rain"] = loadfx( "fx/maps/ny_harbor/large_water_impact_close_rain_windy" );
    level._effect["spotlight_underwater"] = loadfx( "fx/misc/hunted_spotlight_model" );
    level._effect["spotlight_underwater_cheap"] = loadfx( "fx/misc/docks_heli_spotlight_model_cheap" );
    level._effect["dive_in_bubbles_hand"] = loadfx( "vfx/moments/ship_graveyard/dive_in_bubbles_hand" );
    level._effect["dive_in_bubbles_feet"] = loadfx( "vfx/moments/ship_graveyard/dive_in_bubbles_feet" );
    level._effect["dive_in_ripple"] = loadfx( "vfx/moments/ship_graveyard/dive_in_ripple" );
    level._effect["cave_ceiling_silt_knockoff"] = loadfx( "vfx/moments/ship_graveyard/cave_ceiling_silt_knockoff" );
    level._effect["weld_sparks"] = loadfx( "fx/misc/welding_underwater" );
    level._effect["welding_underwater_ignition"] = loadfx( "fx/misc/welding_underwater_ignition" );
    level._effect["welding_underwater_pop"] = loadfx( "fx/misc/welding_underwater_pop" );
    level._effect["welding_underwater_torch"] = loadfx( "fx/misc/welding_underwater_torch" );
    level._effect["welding_underwater_torch_npc"] = loadfx( "fx/misc/welding_underwater_torch_npc" );
    level._effect["welding_underwater"] = loadfx( "fx/misc/welding_underwater" );
    level._effect["welding_underwater_off"] = loadfx( "fx/misc/welding_underwater_off" );
    level._effect["underwater_silt_barrel_hit"] = loadfx( "vfx/moments/ship_graveyard/underwater_silt_barrel_hit" );
    level._effect["sonar_silt_whoosh"] = loadfx( "vfx/moments/ship_graveyard/sonar_silt_whoosh" );
    level._effect["sonar_silt_center_whoosh"] = loadfx( "vfx/moments/ship_graveyard/sonar_silt_center_whoosh" );
    level._effect["shockwave"] = loadfx( "fx/_requests/ship_graveyard/sonar_ping_dust" );
    level._effect["sonar_ping_light"] = loadfx( "fx/_requests/ship_graveyard/light_blink_red" );
    level._effect["sonar_ping_distortion"] = loadfx( "fx/_requests/ship_graveyard/sonar_ping" );
    level._effect["vfx_sonar_dust_blast"] = loadfx( "vfx/moments/ship_graveyard/vfx_sonar_dust_blast" );
    level._effect["vfx_sonar_dust_blast_detail"] = loadfx( "vfx/moments/ship_graveyard/vfx_sonar_dust_blast_detail" );
    level._effect["vfx_sonar_blast_bits"] = loadfx( "vfx/moments/ship_graveyard/vfx_sonar_blast_bits" );
    level._effect["vfx_sonar_dust_crate"] = loadfx( "vfx/moments/ship_graveyard/vfx_sonar_dust_crate" );
    level._effect["vfx_sonar_dust_blast_lh"] = loadfx( "vfx/moments/ship_graveyard/vfx_sonar_dust_blast_lh" );
    level._effect["torpedo_kickup"] = loadfx( "vfx/moments/ship_graveyard/torpedo_kickup" );
    level._effect["torpedo_wings_out"] = loadfx( "vfx/moments/ship_graveyard/torpedo_wings_out" );
    level._effect["tpd_wo"] = loadfx( "vfx/moments/ship_graveyard/tpd_wo" );
    level._effect["tpd_wo_l"] = loadfx( "vfx/moments/ship_graveyard/tpd_wo_l" );
    level._effect["tpd_wo_r"] = loadfx( "vfx/moments/ship_graveyard/tpd_wo_r" );
    level._effect["torpedo_propellor"] = loadfx( "vfx/moments/ship_graveyard/torpedo_propellor" );
    level._effect["torpedo_propellor_loop"] = loadfx( "vfx/moments/ship_graveyard/torpedo_propellor_loop" );
    level._effect["vfx_scrnfx_torpedocam"] = loadfx( "vfx/gameplay/screen_effects/vfx_scrnfx_torpedocam" );
    level._effect["lighthouse_bubbles"] = loadfx( "vfx/moments/ship_graveyard/lighthouse_player_mess_main" );
    level._effect["lighthouse_debris"] = loadfx( "vfx/moments/ship_graveyard/lighthouse_outer_bubble_mess" );
    level._effect["lighthouse_wood"] = loadfx( "vfx/moments/ship_graveyard/lighthouse_base_snap_debris" );
    level._effect["lighthouse_view_impact_force"] = loadfx( "vfx/moments/ship_graveyard/debris_hit_wood_metal" );
    level._effect["debris_hit_wood_metal"] = loadfx( "vfx/moments/ship_graveyard/debris_hit_wood_metal" );
    level._effect["lighthouse_lcs_detonation"] = loadfx( "vfx/gameplay/explosions/vfx_exp_underwater_runner" );
    level._effect["lighthouse_lcs_detonation_sink"] = loadfx( "vfx/moments/ship_graveyard/lighthouse_lcs_detonation_sink" );
    level._effect["lighthouse_window_mess"] = loadfx( "vfx/moments/ship_graveyard/lighthouse_window_mess" );
    level._effect["rebreather_hose_bubbles"] = loadfx( "vfx/moments/ship_graveyard/rebreather_hose_bubbles" );
    level._effect["scuba_bubbles_friendly"] = loadfx( "vfx/ambient/water/bubbles_breath_hero" );
    level._effect["hand_debris_ambient"] = loadfx( "vfx/moments/ship_graveyard/hand_debris_ambient" );
    level._effect["hand_free_debris_burst"] = loadfx( "vfx/moments/ship_graveyard/hand_free_debris_burst" );
    level._effect["hand_debris_baker_off"] = loadfx( "vfx/moments/ship_graveyard/hand_debris_baker_off" );
    level._effect["hand_debris_baker_on"] = loadfx( "vfx/moments/ship_graveyard/hand_debris_baker_on" );
    level._effect["hand_debris_baker_strain"] = loadfx( "vfx/moments/ship_graveyard/hand_debris_baker_strain" );
    level._effect["hand_debris_player_off"] = loadfx( "vfx/moments/ship_graveyard/hand_debris_player_off" );
    level._effect["hand_debris_player_on"] = loadfx( "vfx/moments/ship_graveyard/hand_debris_player_on" );
    level._effect["hand_debris_strain_forearm"] = loadfx( "vfx/moments/ship_graveyard/hand_debris_strain_forearm" );
    level._effect["hand_debris_strain_wrist"] = loadfx( "vfx/moments/ship_graveyard/hand_debris_strain_wrist" );
    level._effect["metal_plate_bubbles"] = loadfx( "vfx/moments/ship_graveyard/metal_plate_bubbles" );
    level._effect["underwater_impact_vehicle_heli"] = loadfx( "vfx/moments/ship_graveyard/underwater_impact_vehicle_heli" );
    level._effect["underwater_impact_vehicle_cheap"] = loadfx( "vfx/moments/ship_graveyard/underwater_impact_vehicle_cheap" );
    level._effect["lcs_back_bubbles"] = loadfx( "vfx/moments/ship_graveyard/bubbles_ship_sinking_wide" );
    level._effect["lcs_back_mess"] = loadfx( "vfx/moments/ship_graveyard/ship_mess_pushout" );
    level._effect["vfx_lcs_collapsing"] = loadfx( "vfx/moments/ship_graveyard/vfx_lcs_collapsing" );
    level._effect["ship_sinking_white_water_lg"] = loadfx( "vfx/moments/ship_graveyard/ship_sinking_white_water_lg" );
    level._effect["dead_bodies_underwater"] = loadfx( "vfx/moments/ship_graveyard/dead_bodies_underwater" );
    level._effect["underwater_fire_field"] = loadfx( "vfx/moments/ship_graveyard/underwater_fire_field" );
    level._effect["underwater_fire_field_core"] = loadfx( "vfx/moments/ship_graveyard/underwater_fire_field_core" );
    level._effect["vfx_fire_fuel_ocean_top"] = loadfx( "vfx/ambient/fire/fuel/vfx_fire_fuel_ocean_top" );
    level._effect["falling_metal_debris_underwater"] = loadfx( "vfx/ambient/misc/falling_metal_debris_underwater" );
    level._effect["falling_metal_burst"] = loadfx( "vfx/ambient/misc/falling_metal_debris_underwater_burst" );
    level._effect["falling_support_beam"] = loadfx( "vfx/ambient/misc/falling_support_beam_underwater" );
    level._effect["bubbles_ship_sinking_wide"] = loadfx( "vfx/moments/ship_graveyard/bubbles_ship_sinking_wide" );
    level._effect["underwater_impact_vehicle_large"] = loadfx( "vfx/moments/ship_graveyard/underwater_impact_vehicle_large" );
    level._effect["underwater_impact_wreckage_long"] = loadfx( "vfx/moments/ship_graveyard/underwater_impact_wreckage_long" );
    level._effect["boat_collapse_silt_runner"] = loadfx( "vfx/moments/ship_graveyard/boat_collapse_silt_runner" );
    level._effect["boat_collapse_debris_runner"] = loadfx( "vfx/moments/ship_graveyard/boat_collapse_debris_runner" );
    level._effect["sm_dust"] = loadfx( "fx/impacts/footstep_dust" );
    level._effect["boat_fall_impact"] = loadfx( "fx/smoke/underwater_impact_vehicle_dark" );
    level._effect["boat_fall_impact_small"] = loadfx( "fx/smoke/underwater_impact_largehit" );
    level._effect["boat_fall_impact_fast"] = loadfx( "fx/water/underwater_impact_vehicle_fast_dark" );
    level._effect["falling_box_bubbles"] = loadfx( "fx/_requests/ship_graveyard/underwater_obj_trail" );
    level._effect["falling_car_bubbles"] = loadfx( "fx/_requests/ship_graveyard/underwater_obj_trail_small" );
    level._effect["big_wreck_ceiling_collapse"] = loadfx( "fx/explosions/wall_explosion_1" );

    if ( !getdvarint( "r_reflectionProbeGenerate" ) )
        maps\createfx\ship_graveyard_fx::main();

    maps\createfx\ship_graveyard_sound::main();
}

surface_fx()
{
    maps\_ocean::setup_ocean();
    level._effect["abv_ocean_ripple"] = loadfx( "fx/misc/ny_harbor_ripple" );
    level._effect["abv_raindrops_screen_3"] = loadfx( "vfx/gameplay/screen_effects/raindrop_loop" );
    level._effect["abv_raindrops_screen_5"] = loadfx( "vfx/gameplay/screen_effects/raindrop_loop" );
    level._effect["abv_raindrops_screen_10"] = loadfx( "vfx/gameplay/screen_effects/raindrop_loop" );
    level._effect["abv_raindrops_screen_20"] = loadfx( "vfx/gameplay/screen_effects/raindrop_loop" );
    level._effect["abv_lightning"] = loadfx( "fx/weather/lightning" );
    level._effect["abv_lightning_bolt"] = loadfx( "fx/weather/lightning_bolt" );
    level._effect["abv_lightning_bolt_lrg"] = loadfx( "fx/weather/lightning_bolt_lrg" );
    maps\_weather::addlightningexploder( 10 );
    maps\_weather::addlightningexploder( 11 );
    maps\_weather::addlightningexploder( 12 );
    level.nextlightning = gettime() + 1;
    common_scripts\utility::flag_init( "fx_screen_raindrops" );
    common_scripts\utility::flag_init( "fx_player_watersheeting" );
}

water_particulates()
{
    level endon( "stop_particulates" );
    thread water_particulates_while_moving();

    for (;;)
    {
        var_0 = anglestoforward( level.player.angles ) * 96;
        playfx( common_scripts\utility::getfx( "ocean_particulate_player" ), level.player.origin + var_0 );
        playfx( common_scripts\utility::getfx( "ocean_particulate_player_view" ), level.player.origin + var_0 );
        wait 0.6;
    }
}

water_particulates_while_moving()
{
    level endon( "stop_particulates" );

    for (;;)
    {
        var_0 = level.player.origin;
        wait 0.1;

        if ( distance( var_0, level.player.origin ) > 1 )
        {
            var_1 = vectortoangles( level.player.origin - var_0 );
            var_2 = anglestoforward( var_1 ) * 256;
            playfx( common_scripts\utility::getfx( "ocean_particulate_player_mov" ), level.player.origin + var_2 );
        }
    }
}

trigger_fish_school( var_0, var_1 )
{
    var_2 = getent( var_0, "script_noteworthy" );
    var_2 notify( var_1 );
}

mask_interactives()
{
    var_0 = getentarray( "interactives_mask_first_area", "script_noteworthy" );
    var_1 = getentarray( "interactives_mask_last_area", "script_noteworthy" );
    maps\_utility::mask_interactives_in_volumes( var_1 );
    maps\_utility::mask_interactives_in_volumes( var_0 );
    level waittill( "load_finished" );
    common_scripts\utility::flag_wait( "start_swim" );
    common_scripts\utility::array_thread( var_0, maps\_utility::activate_interactives_in_volume );
    common_scripts\utility::flag_wait( "start_new_trench" );
    maps\_utility::mask_interactives_in_volumes( var_0 );
    common_scripts\utility::array_thread( var_1, maps\_utility::activate_interactives_in_volume );
}

weld_breach_fx( var_0, var_1 )
{
    var_0 waittillmatch( "single anim", "torch_on" );
    playfxontag( common_scripts\utility::getfx( "welding_underwater_ignition" ), self, "tag_origin" );
    playfxontag( common_scripts\utility::getfx( "welding_underwater_torch" + var_1 ), self, "tag_origin" );
    var_0 waittillmatch( "single anim", "torch_cut" );
    playfxontag( common_scripts\utility::getfx( "welding_underwater" ), self, "tag_origin" );
    stopfxontag( common_scripts\utility::getfx( "welding_underwater_torch" + var_1 ), self, "tag_origin" );
    var_0 waittillmatch( "single anim", "torch_stop_cut" );
    stopfxontag( common_scripts\utility::getfx( "welding_underwater" ), self, "tag_origin" );
    playfxontag( common_scripts\utility::getfx( "welding_underwater_off" ), self, "tag_origin" );
    playfxontag( common_scripts\utility::getfx( "welding_underwater_torch" + var_1 ), self, "tag_origin" );
    var_0 waittillmatch( "single anim", "torch_cut" );
    playfxontag( common_scripts\utility::getfx( "welding_underwater" ), self, "tag_origin" );
    stopfxontag( common_scripts\utility::getfx( "welding_underwater_torch" + var_1 ), self, "tag_origin" );
    var_0 waittillmatch( "single anim", "torch_stop_cut" );
    stopfxontag( common_scripts\utility::getfx( "welding_underwater" ), self, "tag_origin" );
    playfxontag( common_scripts\utility::getfx( "welding_underwater_off" ), self, "tag_origin" );
    playfxontag( common_scripts\utility::getfx( "welding_underwater_torch" + var_1 ), self, "tag_origin" );
    var_0 waittillmatch( "single anim", "torch_off" );
    stopfxontag( common_scripts\utility::getfx( "welding_underwater_torch" + var_1 ), self, "tag_origin" );
    stopfxontag( common_scripts\utility::getfx( "welding_underwater_ignition" ), self, "tag_origin" );
}
