OPENTYRIAN2000 / ENHANCED WIKI Site EN · wiki in English Download
Wiki / Modding / Mod packs
Modding

Tyrian mod packs

Five mod packs ship in the mods/ folder of the game, all off by default: open Setup → Mods and press Enter on a pack to turn it on. They add 14 ships and 18 weapons drawn in the original Tyrian style, sold in every shop next to the original items. The five can be on at the same time.

PackWhat it adds
Alien Ship Pack8 Hazudra and Zica ships, five banking poses each, 7,000 to 52,000 credits.
Bio Ships Pack6 bio-organic alien ships: carapaces, membrane wings and glowing spore sacs, 8,500 to 55,000 credits.
Alien Weapon Pack6 Hazudra and Zica weapons (3 front, 3 rear), 11 power levels each: piercing lances, homing darts, plasma rings.
Bio Weapons Pack6 living weapons (3 front, 3 rear), 11 power levels each: spores, acid, thorns, larvae, pollen and seeds.
Elements Weapon Pack6 elemental weapons, 11 power levels each: fire, ice (freezing shots) and lightning in front; earth, acid and wind at the rear.

The tables below are read from each pack's README.md in rewrite/mods/ of the repository. Every weapon stays between the weakest and the strongest original weapon of its price, and no ship has more than one point of armor above the closest original ship.

Alien Ship Pack

The eight ships of the Alien Ship Pack in their neutral pose
Alien Ship Pack: the eight ships, neutral pose

Eight ships of Tyrian's two alien races: the Hazudra, Trent's allies in episodes 2 and 5, and the Zica, the tunnel-world builders who mastered thermal energy. Each sprite uses the game's own palette and a dark outline, and gives the five poses of the original ships in ship_poses: neutral, then half and full bank to each side.

ShipPriceArmorDescription
Zica Ember7,00012Light Zica scout, a glowing furnace core in a grey hull.
Hazudra Stinger9,00014Narrow Hazudra interceptor with a blue sensor eye.
Hazudra Mandible11,00016Forward prongs like an insect's jaws; the Hazudra close-range fighter.
Zica Halo14,00019Ring-winged Zica craft with a green reactor halo.
Hazudra Crescent16,00021Crescent-wing Hazudra escort.
Zica Twin Furnace22,00026Heavy Zica hull built around two thermal engines.
Hazudra Reaver28,00027Steel-blue Hazudra raider with red weapon blisters.
Hazudra Swarmlord52,00029Flagship of a Hazudra swarm: the toughest ship of the pack.

Prices and armor stay inside the range of the original ships of the same price.

The ship shop listing the Zica Ember, Hazudra Stinger, Hazudra Mandible and Zica Halo after the USP Talon
In the shop: the Alien Ship Pack after the USP Talon
Show the mod.json of the Alien Ship Pack
{
  "$schema": "../mod.schema.json",
  "format_version": 1,
  "name": "Alien Ship Pack",
  "author": "OpenTyrian2000 Team (PixelLab draft, hand-cleaned)",
  "version": "1.0",
  "description": "8 Hazudra and Zica ships drawn in the original Tyrian style.",
  "enabled": false,

  "ships": [
    {"name": "Zica Ember", "cost": 7000, "damage_resistance": 12, "always_available": true,
     "ship_poses": {"neutral": "zica_ember", "left_full": "zica_ember_left_full", "left": "zica_ember_left",
                    "right": "zica_ember_right", "right_full": "zica_ember_right_full"}},
    {"name": "Hazudra Stinger", "cost": 9000, "damage_resistance": 14, "always_available": true,
     "ship_poses": {"neutral": "hazudra_stinger", "left_full": "hazudra_stinger_left_full", "left": "hazudra_stinger_left",
                    "right": "hazudra_stinger_right", "right_full": "hazudra_stinger_right_full"}},
    {"name": "Hazudra Mandible", "cost": 11000, "damage_resistance": 16, "always_available": true,
     "ship_poses": {"neutral": "hazudra_mandible", "left_full": "hazudra_mandible_left_full", "left": "hazudra_mandible_left",
                    "right": "hazudra_mandible_right", "right_full": "hazudra_mandible_right_full"}},
    {"name": "Zica Halo", "cost": 14000, "damage_resistance": 19, "always_available": true,
     "ship_poses": {"neutral": "zica_halo", "left_full": "zica_halo_left_full", "left": "zica_halo_left",
                    "right": "zica_halo_right", "right_full": "zica_halo_right_full"}},
    {"name": "Hazudra Crescent", "cost": 16000, "damage_resistance": 21, "always_available": true,
     "ship_poses": {"neutral": "hazudra_crescent", "left_full": "hazudra_crescent_left_full", "left": "hazudra_crescent_left",
                    "right": "hazudra_crescent_right", "right_full": "hazudra_crescent_right_full"}},
    {"name": "Zica Twin Furnace", "cost": 22000, "damage_resistance": 26, "always_available": true,
     "ship_poses": {"neutral": "zica_twin_furnace", "left_full": "zica_twin_furnace_left_full", "left": "zica_twin_furnace_left",
                    "right": "zica_twin_furnace_right", "right_full": "zica_twin_furnace_right_full"}},
    {"name": "Hazudra Reaver", "cost": 28000, "damage_resistance": 27, "always_available": true,
     "ship_poses": {"neutral": "hazudra_reaver", "left_full": "hazudra_reaver_left_full", "left": "hazudra_reaver_left",
                    "right": "hazudra_reaver_right", "right_full": "hazudra_reaver_right_full"}},
    {"name": "Hazudra Swarmlord", "cost": 52000, "damage_resistance": 29, "always_available": true,
     "ship_poses": {"neutral": "hazudra_swarmlord", "left_full": "hazudra_swarmlord_left_full", "left": "hazudra_swarmlord_left",
                    "right": "hazudra_swarmlord_right", "right_full": "hazudra_swarmlord_right_full"}},
  ],
}

Bio Ships Pack

The six ships of the Bio Ships Pack in their neutral pose
Bio Ships Pack: the six ships, neutral pose

Six living ships of a bio-organic alien faction: green carapaces, membrane wings, eyes, tendrils and glowing spore sacs, with bone and flesh accents, drawn like the Alien Ship Pack with five poses each. Every ship flies at the same speed, so a role shows in its armor and price.

ShipSlot and rolePriceArmorDescription
Spore Wisplight interceptor8,50013Small winged seed around one big glowing spore sac.
Thornwingagile striker11,00016Moth-shaped body with swept membrane wings tipped by bone thorns, thorn legs and a glowing green heart.
Membrane Raybalanced fighter13,50018Manta-shaped membrane wing with a carapace spine and one green eye.
Leech Lancerassault18,50023Long leech body behind a bone lance, hooked tendril arms, flesh joints.
Carapace Beetleheavy armored26,00028Thick split shell with a bone horn and a glowing slit between the plates.
Hive Motherflagship55,00029Bulbous hive body with membrane wings and four neon egg sacs.

Prices and armor stay inside the range of the original ships of the same price.

The ship shop listing the Spore Wisp, Membrane Ray, Leech Lancer and Carapace Beetle after the USP Talon
In the shop: the Bio Ships Pack

Mods share 14 ship slots: the Alien Ship Pack takes 8 and this pack 6, so both fill every slot together. Another mod that adds ships then reports a "no free slot" error in Setup → Mods while both packs are on.

Show the mod.json of the Bio Ships Pack
{
  "$schema": "../mod.schema.json",
  "format_version": 1,
  "name": "Bio Ships Pack",
  "author": "OpenTyrian2000 Team",
  "version": "1.0",
  "description": "6 green bio-organic alien ships drawn in the original Tyrian style.",
  "enabled": false,

  "ships": [
    {"name": "Spore Wisp", "cost": 8500, "damage_resistance": 13, "always_available": true,
     "ship_poses": {"neutral": "bio_spore_wisp", "left_full": "bio_spore_wisp_left_full", "left": "bio_spore_wisp_left",
                    "right": "bio_spore_wisp_right", "right_full": "bio_spore_wisp_right_full"}},
    {"name": "Thornwing", "cost": 11000, "damage_resistance": 16, "always_available": true,
     "ship_poses": {"neutral": "bio_thornwing", "left_full": "bio_thornwing_left_full", "left": "bio_thornwing_left",
                    "right": "bio_thornwing_right", "right_full": "bio_thornwing_right_full"}},
    {"name": "Membrane Ray", "cost": 13500, "damage_resistance": 18, "always_available": true,
     "ship_poses": {"neutral": "bio_membrane_ray", "left_full": "bio_membrane_ray_left_full", "left": "bio_membrane_ray_left",
                    "right": "bio_membrane_ray_right", "right_full": "bio_membrane_ray_right_full"}},
    {"name": "Leech Lancer", "cost": 18500, "damage_resistance": 23, "always_available": true,
     "ship_poses": {"neutral": "bio_leech_lancer", "left_full": "bio_leech_lancer_left_full", "left": "bio_leech_lancer_left",
                    "right": "bio_leech_lancer_right", "right_full": "bio_leech_lancer_right_full"}},
    {"name": "Carapace Beetle", "cost": 26000, "damage_resistance": 28, "always_available": true,
     "ship_poses": {"neutral": "bio_carapace_beetle", "left_full": "bio_carapace_beetle_left_full", "left": "bio_carapace_beetle_left",
                    "right": "bio_carapace_beetle_right", "right_full": "bio_carapace_beetle_right_full"}},
    {"name": "Hive Mother", "cost": 55000, "damage_resistance": 29, "always_available": true,
     "ship_poses": {"neutral": "bio_hive_mother", "left_full": "bio_hive_mother_left_full", "left": "bio_hive_mother_left",
                    "right": "bio_hive_mother_right", "right_full": "bio_hive_mother_right_full"}},
  ],
}

Alien Weapon Pack

The Alien Weapon Pack: six shop icons, then its shots
Alien Weapon Pack: shop icons, then the first frame of each shot

Six weapons of the Hazudra (organic, bone and green) and the Zica (heat and plasma, orange and red): three front guns and three rear guns, each with eleven power levels like the original weapons. Shop icons are 24×28 gun modules in the look of the original icons; shots are 12×14 sprites with four animation frames.

WeaponSlot and rolePricePower useDPS L1 → L11What it does
Zica Thermal Lancefront · piercing1,10010014.0 → 78.8White-hot lances that go through every enemy in their column ({"pierce": n}, 4 or 5 damage to each). 1 lance at level 1, 4 at level 11.
Hazudra Crescent Fanfront · spread1,0007017.5 → 85.0A fan of green crescents, 2 wide at level 1, 7 wide at level 11.
Hazudra Spore Cannonfront · heavy1,05013018.8 → 91.0Slow spore pods with the highest damage per hit of the pack (7 to 12, plus two small pods from level 8). For armoured targets; the most energy-hungry gun of the pack.
Hazudra Seeker Dartsrear · homing1,0508013.5 → 79.5Darts that steer towards the nearest enemy (homing 9, then 8 from level 5, 7 from level 9: they turn more often). 1 dart at level 1, 5 at level 11.
Zica Plasma Halorear · area (flanks)9505017.5 → 99.2Spinning plasma rings fired to both sides, then also behind and on the four diagonals (2 rings at level 1, 8 at level 11).
Zica Ember Mortarrear · area (lobbed)1,1009014.6 → 91.0Ember shells thrown upward that slow down (accel_y -1), stop and fall back across the screen: they hit what is ahead, then what is behind the ship. 1 shell at level 1, 5 at level 11.

DPS: damage per second against a single target at power level 1 and 11, from the pack's README.

The rear gun shop listing the Hazudra Seeker Darts, Zica Plasma Halo and Zica Ember Mortar
In the shop: the three rear guns of the Alien Weapon Pack
Show the mod.json of the Alien Weapon Pack
{
  "$schema": "../mod.schema.json",
  "format_version": 1,
  "name": "Alien Weapon Pack",
  "author": "OpenTyrian2000 Team",
  "version": "2.0",
  "description": "6 Hazudra and Zica weapons (3 front, 3 rear, 11 power levels) in the original Tyrian style.",
  "enabled": false,

  "weapons": [

    {
      "name": "Zica Thermal Lance", "cost": 1100, "power_use": 100, "icon_sprite": "zica_thermal_lance_icon",
      "always_available": true,
      "front": [
        {"fire_delay": 9, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 12, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 8, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 12, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 9, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 13, "spawn_x": -4, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 13, "spawn_x": 4, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 8, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 13, "spawn_x": -4, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 13, "spawn_x": 4, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 8, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 14, "spawn_x": -4, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 14, "spawn_x": 4, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 7, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 14, "spawn_x": -4, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 14, "spawn_x": 4, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 8, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 15, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": -1, "speed_y": 14, "spawn_x": -6, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": 1, "speed_y": 14, "spawn_x": 6, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 7, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 15, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": -1, "speed_y": 14, "spawn_x": -6, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": 1, "speed_y": 14, "spawn_x": 6, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 7, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 15, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_x": -1, "speed_y": 14, "spawn_x": -6, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_x": 1, "speed_y": 14, "spawn_x": 6, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 8, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 16, "spawn_x": -3, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 16, "spawn_x": 3, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": -1, "speed_y": 15, "spawn_x": -8, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": 1, "speed_y": 15, "spawn_x": 8, "sprite": "thermal_lance_1"}]},
        {"fire_delay": 7, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 16, "spawn_x": -3, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 16, "spawn_x": 3, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": -1, "speed_y": 15, "spawn_x": -8, "sprite": "thermal_lance_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": 1, "speed_y": 15, "spawn_x": 8, "sprite": "thermal_lance_1"}]},
      ],
    },

    {
      "name": "Hazudra Crescent Fan", "cost": 1000, "power_use": 70, "icon_sprite": "hazudra_crescent_fan_icon",
      "always_available": true,
      "front": [
        {"fire_delay": 7, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 14, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 8, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 2, "speed_y": 13, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 6, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 2, "speed_y": 13, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 7, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -3, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 3, "speed_y": 13, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 6, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -3, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 3, "speed_y": 13, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 6, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -4, "speed_y": 12, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 4, "speed_y": 12, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 6, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -4, "speed_y": 12, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 4, "speed_y": 12, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 7, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": 12, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -3, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": -1, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": 1, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 3, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": 12, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 6, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": 12, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -3, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": -1, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": 1, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 3, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": 12, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 7, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -6, "speed_y": 11, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -4, "speed_y": 12, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": -2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": 2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 4, "speed_y": 12, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 6, "speed_y": 11, "sprite": "hazudra_crescent_1"}]},
        {"fire_delay": 6, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -6, "speed_y": 11, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -4, "speed_y": 12, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": -2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 14, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": 2, "speed_y": 13, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 4, "speed_y": 12, "sprite": "hazudra_crescent_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 6, "speed_y": 11, "sprite": "hazudra_crescent_1"}]},
      ],
    },

    {
      "name": "Hazudra Spore Cannon", "cost": 1050, "power_use": 130, "icon_sprite": "hazudra_spore_cannon_icon",
      "always_available": true,
      "front": [
        {"fire_delay": 12, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 7, "speed_y": 8, "sprite": "spore_pod_large_1"}]},
        {"fire_delay": 11, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 9, "speed_y": 8, "sprite": "spore_pod_large_1"}]},
        {"fire_delay": 11, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 11, "speed_y": 9, "sprite": "spore_pod_large_1"}]},
        {"fire_delay": 10, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 12, "speed_y": 9, "sprite": "spore_pod_large_1"}]},
        {"fire_delay": 11, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 8, "speed_y": 9, "spawn_x": -5, "sprite": "spore_pod_large_1"},
          {"sub_delay": 255, "damage": 8, "speed_y": 9, "spawn_x": 5, "sprite": "spore_pod_large_1"}]},
        {"fire_delay": 10, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 8, "speed_y": 9, "spawn_x": -5, "sprite": "spore_pod_large_1"},
          {"sub_delay": 255, "damage": 8, "speed_y": 9, "spawn_x": 5, "sprite": "spore_pod_large_1"}]},
        {"fire_delay": 10, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 9, "speed_y": 10, "spawn_x": -5, "sprite": "spore_pod_large_1"},
          {"sub_delay": 255, "damage": 9, "speed_y": 10, "spawn_x": 5, "sprite": "spore_pod_large_1"}]},
        {"fire_delay": 11, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 10, "speed_y": 10, "sprite": "spore_pod_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": -1, "speed_y": 9, "spawn_x": -7, "sprite": "spore_pod_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 1, "speed_y": 9, "spawn_x": 7, "sprite": "spore_pod_1"}]},
        {"fire_delay": 10, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 10, "speed_y": 10, "sprite": "spore_pod_large_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": -1, "speed_y": 9, "spawn_x": -7, "sprite": "spore_pod_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": 1, "speed_y": 9, "spawn_x": 7, "sprite": "spore_pod_1"}]},
        {"fire_delay": 10, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 12, "speed_y": 10, "sprite": "spore_pod_large_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": -1, "speed_y": 9, "spawn_x": -7, "sprite": "spore_pod_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": 1, "speed_y": 9, "spawn_x": 7, "sprite": "spore_pod_1"}]},
        {"fire_delay": 9, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "projectiles": [
          {"sub_delay": 255, "damage": 12, "speed_y": 11, "sprite": "spore_pod_large_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": -1, "speed_y": 10, "spawn_x": -7, "sprite": "spore_pod_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": 1, "speed_y": 10, "spawn_x": 7, "sprite": "spore_pod_1"}]},
      ],
    },

    {
      "name": "Hazudra Seeker Darts", "cost": 1050, "power_use": 80, "icon_sprite": "hazudra_seeker_darts_icon",
      "always_available": true,
      "rear": [
        {"fire_delay": 12, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 26, "homing": 9, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_y": 6, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 13, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 26, "homing": 9, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -3, "speed_y": 5, "spawn_x": -6, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 3, "speed_y": 5, "spawn_x": 6, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 12, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 26, "homing": 9, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 5, "spawn_x": -6, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 5, "spawn_x": 6, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 11, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 26, "homing": 9, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 5, "spawn_x": -6, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 5, "spawn_x": 6, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 13, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 26, "homing": 8, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 5, "spawn_x": -6, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_y": 6, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 5, "spawn_x": 6, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 11, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 26, "homing": 8, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 5, "spawn_x": -6, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_y": 6, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 5, "spawn_x": 6, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 12, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 26, "homing": 8, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -4, "speed_y": 4, "spawn_x": -8, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 6, "spawn_x": -4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 6, "spawn_x": 4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 4, "speed_y": 4, "spawn_x": 8, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 11, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 26, "homing": 8, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -4, "speed_y": 4, "spawn_x": -8, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 6, "spawn_x": -4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 6, "spawn_x": 4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 4, "speed_y": 4, "spawn_x": 8, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 12, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 26, "homing": 7, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -4, "speed_y": 4, "spawn_x": -8, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 6, "spawn_x": -4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_y": 7, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 6, "spawn_x": 4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 4, "speed_y": 4, "spawn_x": 8, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 11, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 26, "homing": 7, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -4, "speed_y": 4, "spawn_x": -8, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 6, "spawn_x": -4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_y": 7, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 6, "spawn_x": 4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 4, "speed_y": 4, "spawn_x": 8, "sprite": "seeker_dart_1"}]},
        {"fire_delay": 10, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 26, "homing": 7, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -4, "speed_y": 4, "spawn_x": -8, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 6, "spawn_x": -4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_y": 7, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 6, "spawn_x": 4, "sprite": "seeker_dart_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 4, "speed_y": 4, "spawn_x": 8, "sprite": "seeker_dart_1"}]},
      ],
    },

    {
      "name": "Zica Plasma Halo", "cost": 950, "power_use": 50, "icon_sprite": "zica_plasma_halo_icon",
      "always_available": true,
      "rear": [
        {"fire_delay": 7, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 7, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": -7, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 5, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": -7, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 6, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": -5, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 6, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": -7, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 5, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": -7, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 6, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": 5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": 5, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 5, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": 5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": 5, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 6, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": 5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": 5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": -7, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 5, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": 5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": 5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": -7, "sprite": "plasma_ring_1"}]},
        {"fire_delay": 5, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 8, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_x": -7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": 7, "speed_y": 0, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": -5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -5, "speed_y": 5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 5, "speed_y": 5, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": -7, "sprite": "plasma_ring_1"},
          {"sub_delay": 255, "damage": 1, "speed_y": 7, "sprite": "plasma_ring_1"}]},
      ],
    },

    {
      "name": "Zica Ember Mortar", "cost": 1100, "power_use": 90, "icon_sprite": "zica_ember_mortar_icon",
      "always_available": true,
      "rear": [
        {"fire_delay": 11, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_y": 11, "sprite": "ember_shell_1"}]},
        {"fire_delay": 11, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -2, "speed_y": 11, "spawn_x": -4, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 2, "speed_y": 11, "spawn_x": 4, "sprite": "ember_shell_1"}]},
        {"fire_delay": 10, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 11, "spawn_x": -4, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 11, "spawn_x": 4, "sprite": "ember_shell_1"}]},
        {"fire_delay": 11, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_y": 12, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -2, "speed_y": 11, "spawn_x": -4, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 2, "speed_y": 11, "spawn_x": 4, "sprite": "ember_shell_1"}]},
        {"fire_delay": 10, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 12, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -2, "speed_y": 11, "spawn_x": -4, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 2, "speed_y": 11, "spawn_x": 4, "sprite": "ember_shell_1"}]},
        {"fire_delay": 9, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 12, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 11, "spawn_x": -4, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 11, "spawn_x": 4, "sprite": "ember_shell_1"}]},
        {"fire_delay": 10, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_x": -1, "speed_y": 12, "spawn_x": -2, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 1, "speed_y": 12, "spawn_x": 2, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -3, "speed_y": 10, "spawn_x": -6, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 3, "speed_y": 10, "spawn_x": 6, "sprite": "ember_shell_1"}]},
        {"fire_delay": 9, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_x": -1, "speed_y": 12, "spawn_x": -2, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 1, "speed_y": 12, "spawn_x": 2, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -3, "speed_y": 10, "spawn_x": -6, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 3, "speed_y": 10, "spawn_x": 6, "sprite": "ember_shell_1"}]},
        {"fire_delay": 10, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 13, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 12, "spawn_x": -4, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 12, "spawn_x": 4, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -4, "speed_y": 10, "spawn_x": -8, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 4, "speed_y": 10, "spawn_x": 8, "sprite": "ember_shell_1"}]},
        {"fire_delay": 9, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 13, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 12, "spawn_x": -4, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 12, "spawn_x": 4, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -4, "speed_y": 10, "spawn_x": -8, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 4, "speed_y": 10, "spawn_x": 8, "sprite": "ember_shell_1"}]},
        {"fire_delay": 9, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 13, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": -2, "speed_y": 12, "spawn_x": -4, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 2, "speed_y": 12, "spawn_x": 4, "sprite": "ember_shell_large_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -4, "speed_y": 10, "spawn_x": -8, "sprite": "ember_shell_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 4, "speed_y": 10, "spawn_x": 8, "sprite": "ember_shell_1"}]},
      ],
    },

  ],
}

Bio Weapons Pack

The Bio Weapons Pack: six shop icons, then its shots
Bio Weapons Pack: shop icons, then the first frame of each shot

Six living weapons grown on gun housings, all in glowing green: spores, acid, thorns, larvae, pollen and seeds. The shop icons keep the metal housing of an original icon and grow pods, thorns, larvae and seeds over it. Three front guns, three rear guns, eleven power levels each.

WeaponSlot and rolePricePower useDPS L1 → L11What it does
Spore Burstfront · spread1,0006017.5 → 87.5One big spore and a ring of small ones fired from the same point with diverging paths: the volley leaves as a clump and opens into a cloud as it climbs. 3 spores at level 1, 8 at level 11.
Acid Spitterfront · heavy1,10014018.8 → 91.0Acid globs spat slowly that speed up as they climb (accel_y 1), the highest damage per hit of the pack (7 to 14). One glob at level 1, two from level 5, a big one and two small ones from level 8. The most energy-hungry gun of the pack.
Thorn Needlerfront · piercing1,0507015.0 → 80.0Fast thorns that go through every enemy in their column ({"pierce": n}, 3 to 5 damage to each). 1 thorn at level 1, 4 at level 11.
Larva Seekersrear · homing1,0508013.5 → 80.5Larvae that crawl towards the nearest enemy (homing 9, then 8 from level 5, 7 from level 9: they turn more often). 1 larva at level 1, 5 at level 11.
Pollen Cloudrear · area (short range)9505017.5 → 95.0Slow pollen puffs blown to both sides, then also behind, on the diagonals and ahead (2 puffs at level 1, 8 at level 11). They drift in small circles (circle_radius 2) and burst after 16 to 28 frames: a cloud around the ship, not a long-range gun.
Seed Mortarrear · area (lobbed)1,0009014.6 → 91.0Seeds thrown upward that slow down (accel_y -1), stop and fall back across the screen, sown in a wide arc: they hit what is ahead, then what is behind the ship. 1 seed at level 1, 5 at level 11.

DPS: damage per second against a single target at power level 1 and 11, from the pack's README.

The rear gun shop listing the Larva Seekers, Pollen Cloud and Seed Mortar
In the shop: the three rear guns of the Bio Weapons Pack
Green larvae at power 11 spreading over the screen toward the enemies
Larva Seekers at power 11, in a level
Show the mod.json of the Bio Weapons Pack
{
  "$schema": "../mod.schema.json",
  "format_version": 1,
  "name": "Bio Weapons Pack",
  "author": "OpenTyrian2000 Team",
  "version": "1.0",
  "description": "6 living bio-weapons (3 front, 3 rear, 11 power levels): spores, acid, thorns, larvae, pollen and seeds.",
  "enabled": false,

  "weapons": [

    {
      "name": "Spore Burst", "cost": 1000, "power_use": 60, "icon_sprite": "spore_burst_icon",
      "always_available": true,
      "front": [
        {"fire_delay": 7, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_y": 11, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 1, "speed_y": 10, "sprite": "spore_seed_1"}]},
        {"fire_delay": 7, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 1, "speed_y": 10, "sprite": "spore_seed_1"}]},
        {"fire_delay": 6, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -2, "speed_y": 9, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 2, "speed_y": 9, "sprite": "spore_seed_1"}]},
        {"fire_delay": 6, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -3, "speed_y": 8, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 3, "speed_y": 8, "sprite": "spore_seed_1"}]},
        {"fire_delay": 6, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 2, "speed_y": 11, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -2, "speed_y": 9, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 2, "speed_y": 9, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -3, "speed_y": 8, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 3, "speed_y": 8, "sprite": "spore_seed_1"}]},
        {"fire_delay": 5, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 1, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -2, "speed_y": 9, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 2, "speed_y": 9, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -3, "speed_y": 8, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 3, "speed_y": 8, "sprite": "spore_seed_1"}]},
        {"fire_delay": 5, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_y": 12, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -1, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 1, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -2, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 2, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -3, "speed_y": 9, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 3, "speed_y": 9, "sprite": "spore_seed_1"}]},
        {"fire_delay": 5, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_y": 12, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -2, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 2, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -3, "speed_y": 9, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 3, "speed_y": 9, "sprite": "spore_seed_1"}]},
        {"fire_delay": 6, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_y": 13, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 12, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 12, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -2, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 2, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -3, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 3, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 13, "sprite": "spore_seed_1"}]},
        {"fire_delay": 6, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_y": 13, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 12, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 12, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -2, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 2, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -3, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 3, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_y": 13, "sprite": "spore_seed_1"}]},
        {"fire_delay": 5, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 15, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_y": 13, "sprite": "spore_burst_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 12, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 12, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -2, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 2, "speed_y": 11, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": -3, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_x": 3, "speed_y": 10, "sprite": "spore_seed_1"},
          {"sub_delay": 255, "damage": 1, "speed_y": 13, "sprite": "spore_seed_1"}]},
      ],
    },

    {
      "name": "Acid Spitter", "cost": 1100, "power_use": 140, "icon_sprite": "acid_spitter_icon",
      "always_available": true,
      "front": [
        {"fire_delay": 12, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 7, "speed_y": 3, "sprite": "acid_glob_large_1"}]},
        {"fire_delay": 11, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 9, "speed_y": 3, "sprite": "acid_glob_large_1"}]},
        {"fire_delay": 10, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 11, "speed_y": 3, "sprite": "acid_glob_large_1"}]},
        {"fire_delay": 10, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 12, "speed_y": 3, "sprite": "acid_glob_large_1"}]},
        {"fire_delay": 11, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 8, "speed_y": 3, "spawn_x": -5, "sprite": "acid_glob_large_1"},
          {"sub_delay": 255, "damage": 8, "speed_y": 3, "spawn_x": 5, "sprite": "acid_glob_large_1"}]},
        {"fire_delay": 10, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 9, "speed_y": 3, "spawn_x": -5, "sprite": "acid_glob_large_1"},
          {"sub_delay": 255, "damage": 9, "speed_y": 3, "spawn_x": 5, "sprite": "acid_glob_large_1"}]},
        {"fire_delay": 10, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 10, "speed_y": 3, "spawn_x": -5, "sprite": "acid_glob_large_1"},
          {"sub_delay": 255, "damage": 10, "speed_y": 3, "spawn_x": 5, "sprite": "acid_glob_large_1"}]},
        {"fire_delay": 11, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 12, "speed_y": 3, "sprite": "acid_glob_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": -1, "speed_y": 3, "spawn_x": -7, "sprite": "acid_glob_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 1, "speed_y": 3, "spawn_x": 7, "sprite": "acid_glob_1"}]},
        {"fire_delay": 11, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 13, "speed_y": 3, "sprite": "acid_glob_large_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": -1, "speed_y": 3, "spawn_x": -7, "sprite": "acid_glob_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": 1, "speed_y": 3, "spawn_x": 7, "sprite": "acid_glob_1"}]},
        {"fire_delay": 10, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 13, "speed_y": 3, "sprite": "acid_glob_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": -1, "speed_y": 3, "spawn_x": -7, "sprite": "acid_glob_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 1, "speed_y": 3, "spawn_x": 7, "sprite": "acid_glob_1"}]},
        {"fire_delay": 9, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 14, "speed_y": 3, "sprite": "acid_glob_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": -1, "speed_y": 3, "spawn_x": -7, "sprite": "acid_glob_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 1, "speed_y": 3, "spawn_x": 7, "sprite": "acid_glob_1"}]},
      ],
    },

    {
      "name": "Thorn Needler", "cost": 1050, "power_use": 70, "icon_sprite": "thorn_needler_icon",
      "always_available": true,
      "front": [
        {"fire_delay": 6, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_y": 16, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 5, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_y": 16, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 4, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 16, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 6, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_y": 17, "spawn_x": -3, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_y": 17, "spawn_x": 3, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 5, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_y": 17, "spawn_x": -3, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_y": 17, "spawn_x": 3, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 5, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 17, "spawn_x": -3, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 17, "spawn_x": 3, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 6, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 18, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -1, "speed_y": 18, "spawn_x": -5, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 1, "speed_y": 18, "spawn_x": 5, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 5, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 18, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -1, "speed_y": 18, "spawn_x": -5, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 1, "speed_y": 18, "spawn_x": 5, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 5, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 18, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": -1, "speed_y": 18, "spawn_x": -5, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": 1, "speed_y": 18, "spawn_x": 5, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 6, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 18, "spawn_x": -2, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 18, "spawn_x": 2, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -1, "speed_y": 18, "spawn_x": -6, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 1, "speed_y": 18, "spawn_x": 6, "sprite": "thorn_needle_1"}]},
        {"fire_delay": 6, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 14, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 18, "spawn_x": -2, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 5}, "speed_y": 18, "spawn_x": 2, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -1, "speed_y": 18, "spawn_x": -6, "sprite": "thorn_needle_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 1, "speed_y": 18, "spawn_x": 6, "sprite": "thorn_needle_1"}]},
      ],
    },

    {
      "name": "Larva Seekers", "cost": 1050, "power_use": 80, "icon_sprite": "larva_seekers_icon",
      "always_available": true,
      "rear": [
        {"fire_delay": 12, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 26, "homing": 9, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_y": 5, "sprite": "larva_1"}]},
        {"fire_delay": 13, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 26, "homing": 9, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -3, "speed_y": 4, "spawn_x": -6, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 3, "speed_y": 4, "spawn_x": 6, "sprite": "larva_1"}]},
        {"fire_delay": 12, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 26, "homing": 9, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 4, "spawn_x": -6, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 4, "spawn_x": 6, "sprite": "larva_1"}]},
        {"fire_delay": 11, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 26, "homing": 9, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 4, "spawn_x": -6, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 4, "spawn_x": 6, "sprite": "larva_1"}]},
        {"fire_delay": 12, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 26, "homing": 8, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 4, "spawn_x": -6, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_y": 5, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 4, "spawn_x": 6, "sprite": "larva_1"}]},
        {"fire_delay": 11, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 26, "homing": 8, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 4, "spawn_x": -6, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_y": 5, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 4, "spawn_x": 6, "sprite": "larva_1"}]},
        {"fire_delay": 12, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 26, "homing": 8, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -4, "speed_y": 3, "spawn_x": -8, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 5, "spawn_x": -4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 5, "spawn_x": 4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 4, "speed_y": 3, "spawn_x": 8, "sprite": "larva_1"}]},
        {"fire_delay": 10, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 26, "homing": 8, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -4, "speed_y": 3, "spawn_x": -8, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 5, "spawn_x": -4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 2, "speed_y": 5, "spawn_x": 4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 4, "speed_y": 3, "spawn_x": 8, "sprite": "larva_1"}]},
        {"fire_delay": 11, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 26, "homing": 7, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -4, "speed_y": 3, "spawn_x": -8, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 5, "spawn_x": -4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_y": 6, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 5, "spawn_x": 4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 4, "speed_y": 3, "spawn_x": 8, "sprite": "larva_1"}]},
        {"fire_delay": 11, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 26, "homing": 7, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -4, "speed_y": 3, "spawn_x": -8, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 5, "spawn_x": -4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 6, "speed_y": 6, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 5, "spawn_x": 4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 4, "speed_y": 3, "spawn_x": 8, "sprite": "larva_1"}]},
        {"fire_delay": 9, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 26, "homing": 7, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -4, "speed_y": 3, "spawn_x": -8, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 5, "spawn_x": -4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_y": 6, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 5, "spawn_x": 4, "sprite": "larva_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 4, "speed_y": 3, "spawn_x": 8, "sprite": "larva_1"}]},
      ],
    },

    {
      "name": "Pollen Cloud", "cost": 950, "power_use": 50, "icon_sprite": "pollen_cloud_icon",
      "always_available": true,
      "rear": [
        {"fire_delay": 7, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 16, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 16, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 7, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 16, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 16, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 16, "damage": 2, "speed_y": -4, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 5, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 18, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 18, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 18, "damage": 2, "speed_y": -4, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 6, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 18, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 18, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 18, "damage": 2, "speed_x": -3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 18, "damage": 2, "speed_x": 3, "speed_y": -3, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 6, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 20, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 20, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 20, "damage": 2, "speed_x": -3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 20, "damage": 2, "speed_x": 3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 20, "damage": 2, "speed_y": -4, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 5, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 20, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 20, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 20, "damage": 2, "speed_x": -3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 20, "damage": 2, "speed_x": 3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 20, "damage": 2, "speed_y": -4, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 6, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 22, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": -3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": 3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": -3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": 3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_y": -4, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 5, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 22, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": -3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": 3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": -3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_x": 3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 22, "damage": 2, "speed_y": -4, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 5, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 24, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 24, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 24, "damage": 2, "speed_x": -3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 24, "damage": 2, "speed_x": 3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 24, "damage": 2, "speed_x": -3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 24, "damage": 2, "speed_x": 3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 24, "damage": 2, "speed_y": -4, "sprite": "pollen_puff_1"},
          {"sub_delay": 24, "damage": 2, "speed_y": 4, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 5, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 26, "damage": 2, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 26, "damage": 2, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 26, "damage": 2, "speed_x": -3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 26, "damage": 2, "speed_x": 3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 26, "damage": 2, "speed_x": -3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 26, "damage": 2, "speed_x": 3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 26, "damage": 2, "speed_y": -4, "sprite": "pollen_puff_1"},
          {"sub_delay": 26, "damage": 2, "speed_y": 4, "sprite": "pollen_puff_1"}]},
        {"fire_delay": 6, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 8, "circle_radius": 2, "projectiles": [
          {"sub_delay": 28, "damage": 3, "speed_x": -4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 28, "damage": 3, "speed_x": 4, "speed_y": 0, "sprite": "pollen_puff_1"},
          {"sub_delay": 28, "damage": 2, "speed_x": -3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 28, "damage": 2, "speed_x": 3, "speed_y": -3, "sprite": "pollen_puff_1"},
          {"sub_delay": 28, "damage": 2, "speed_x": -3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 28, "damage": 2, "speed_x": 3, "speed_y": 3, "sprite": "pollen_puff_1"},
          {"sub_delay": 28, "damage": 3, "speed_y": -4, "sprite": "pollen_puff_1"},
          {"sub_delay": 28, "damage": 2, "speed_y": 4, "sprite": "pollen_puff_1"}]},
      ],
    },

    {
      "name": "Seed Mortar", "cost": 1000, "power_use": 90, "icon_sprite": "seed_mortar_icon",
      "always_available": true,
      "rear": [
        {"fire_delay": 11, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_y": 10, "sprite": "seed_pod_large_1"}]},
        {"fire_delay": 11, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -3, "speed_y": 10, "spawn_x": -4, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 3, "speed_y": 10, "spawn_x": 4, "sprite": "seed_pod_1"}]},
        {"fire_delay": 10, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 10, "spawn_x": -4, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 10, "spawn_x": 4, "sprite": "seed_pod_1"}]},
        {"fire_delay": 11, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 5, "speed_y": 11, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -3, "speed_y": 10, "spawn_x": -4, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 3, "speed_y": 10, "spawn_x": 4, "sprite": "seed_pod_1"}]},
        {"fire_delay": 10, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 11, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -3, "speed_y": 10, "spawn_x": -4, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 3, "speed_y": 10, "spawn_x": 4, "sprite": "seed_pod_1"}]},
        {"fire_delay": 9, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 11, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -3, "speed_y": 10, "spawn_x": -4, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 3, "speed_y": 10, "spawn_x": 4, "sprite": "seed_pod_1"}]},
        {"fire_delay": 10, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_x": -1, "speed_y": 11, "spawn_x": -2, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 1, "speed_y": 11, "spawn_x": 2, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -4, "speed_y": 9, "spawn_x": -6, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 4, "speed_y": 9, "spawn_x": 6, "sprite": "seed_pod_1"}]},
        {"fire_delay": 9, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_x": -1, "speed_y": 11, "spawn_x": -2, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 1, "speed_y": 11, "spawn_x": 2, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -4, "speed_y": 9, "spawn_x": -6, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 4, "speed_y": 9, "spawn_x": 6, "sprite": "seed_pod_1"}]},
        {"fire_delay": 10, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 12, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 11, "spawn_x": -4, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 11, "spawn_x": 4, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -5, "speed_y": 9, "spawn_x": -8, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 5, "speed_y": 9, "spawn_x": 8, "sprite": "seed_pod_1"}]},
        {"fire_delay": 9, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 12, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": -2, "speed_y": 11, "spawn_x": -4, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 5, "speed_x": 2, "speed_y": 11, "spawn_x": 4, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -5, "speed_y": 9, "spawn_x": -8, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 5, "speed_y": 9, "spawn_x": 8, "sprite": "seed_pod_1"}]},
        {"fire_delay": 9, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 5, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": 6, "speed_y": 12, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": -2, "speed_y": 11, "spawn_x": -4, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 2, "speed_y": 11, "spawn_x": 4, "sprite": "seed_pod_large_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": -5, "speed_y": 9, "spawn_x": -8, "sprite": "seed_pod_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 5, "speed_y": 9, "spawn_x": 8, "sprite": "seed_pod_1"}]},
      ],
    },

  ],
}

Elements Weapon Pack

The Elements Weapon Pack: six shop icons, then its fire, ice, lightning, earth, acid and wind shots
Elements Weapon Pack: shop icons, then the first frame of each shot

Six elemental weapons: fire, ice and lightning for the front bay, earth, acid and wind for the rear bay, eleven power levels each. Each shop icon starts from the housing of an original icon, re-shaped and repainted for its element. The Frost Shard's flakes use the "freeze" damage code: a frozen enemy stops firing for 40 ticks.

WeaponSlot and rolePricePower useDPS L1 → L11What it does
Flame Lancefront · fire · short range1,0004521.0 → 91.0Fast fire jets that burn out after 12 to 16 ticks (sub_delay), 96 to 128 pixels ahead (about two thirds of the screen height): the highest damage of the front guns up close, nothing far away. 1 jet at level 1, 5 at level 11 (larger flames from level 6).
Frost Shardfront · ice · control1,0506015.0 → 81.7Ice shards plus frost flakes with the "freeze" damage code: a flake deals no damage but freezes the enemy it hits, which stops firing for 40 ticks (ground enemies turn blue). 1 shard + 1 flake at level 1, 4 shards + 2 flakes from level 8.
Arc Casterfront · lightning · zig-zag1,0005017.5 → 84.0Lightning bolts weaving left and right as they fly (circle_radius 23: 3 pixels of swing, 1 of bob), so a pair of bolts sweeps a wider column. From level 6 the middle bolt is a large piercing arc ({"pierce": 3}, then 4). 1 bolt at level 1, 5 at level 11.
Boulder Mortarrear · earth · heavy1,10011020.0 → 93.3Heavy boulders that sag back a few pixels, then pick up speed and hurtle forward (speed_y -2, accel_y 1): slow to leave the gun, very fast at the top of the screen. The highest damage per hit of the pack (6 to 12) and the highest energy use. 1 boulder at level 1, 4 at level 11.
Acid Rainrear · acid · area9505011.7 → 93.3A fan of acid drops thrown upward that slow down and rain back down across the screen (accel_y -1). The drops eat through every enemy they cross ({"pierce": 1} or 2, large drops 2). 3 drops at level 1, 8 at level 11.
Gale Bladesrear · wind · flanks1,0005515.6 → 93.3Spinning wind blades cutting sideways through every enemy in their row ({"pierce": 2} to 4), then also on the forward diagonals (level 5), the rear diagonals (level 7) and steeply forward (level 11). 2 blades at level 1, 8 at level 11.

DPS: damage per second against a single target at power level 1 and 11, from the pack's README.

The front gun shop listing the Flame Lance, Frost Shard and Arc Caster
In the shop: the three front guns of the Elements Weapon Pack
Blue ice shards and white frost flakes at power 11 in a level
Frost Shard at power 11: ice shards and freezing flakes
Show the mod.json of the Elements Weapon Pack
{
  "$schema": "../mod.schema.json",
  "format_version": 1,
  "name": "Elements Weapon Pack",
  "author": "OpenTyrian2000 Team",
  "version": "1.0",
  "description": "6 elemental weapons: fire, ice, lightning (front), earth, acid, wind (rear), 11 power levels, original Tyrian style.",
  "enabled": false,

  "weapons": [

    {
      "name": "Flame Lance", "cost": 1000, "power_use": 45, "icon_sprite": "flame_lance_icon",
      "always_available": true,
      "front": [
        {"fire_delay": 4, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 12, "damage": 3, "speed_y": 8, "sprite": "flame_jet_1"}]},
        {"fire_delay": 3, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 12, "damage": 3, "speed_y": 8, "sprite": "flame_jet_1"}]},
        {"fire_delay": 3, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 12, "damage": 2, "speed_x": -1, "speed_y": 8, "spawn_x": -3, "sprite": "flame_jet_1"},
          {"sub_delay": 12, "damage": 2, "speed_x": 1, "speed_y": 8, "spawn_x": 3, "sprite": "flame_jet_1"}]},
        {"fire_delay": 4, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 13, "damage": 3, "speed_x": -1, "speed_y": 8, "spawn_x": -3, "sprite": "flame_jet_1"},
          {"sub_delay": 13, "damage": 3, "speed_x": 1, "speed_y": 8, "spawn_x": 3, "sprite": "flame_jet_1"}]},
        {"fire_delay": 3, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 13, "damage": 3, "speed_x": -1, "speed_y": 8, "spawn_x": -3, "sprite": "flame_jet_1"},
          {"sub_delay": 13, "damage": 2, "speed_x": 1, "speed_y": 8, "spawn_x": 3, "sprite": "flame_jet_1"}]},
        {"fire_delay": 4, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 14, "damage": 3, "speed_y": 8, "sprite": "flame_jet_large_1"},
          {"sub_delay": 13, "damage": 3, "speed_x": -1, "speed_y": 8, "spawn_x": -5, "sprite": "flame_jet_1"},
          {"sub_delay": 13, "damage": 2, "speed_x": 1, "speed_y": 8, "spawn_x": 5, "sprite": "flame_jet_1"}]},
        {"fire_delay": 3, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 14, "damage": 3, "speed_y": 8, "sprite": "flame_jet_large_1"},
          {"sub_delay": 13, "damage": 2, "speed_x": -1, "speed_y": 8, "spawn_x": -5, "sprite": "flame_jet_1"},
          {"sub_delay": 13, "damage": 2, "speed_x": 1, "speed_y": 8, "spawn_x": 5, "sprite": "flame_jet_1"}]},
        {"fire_delay": 4, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 15, "damage": 4, "speed_y": 8, "sprite": "flame_jet_large_1"},
          {"sub_delay": 14, "damage": 3, "speed_x": -1, "speed_y": 8, "spawn_x": -5, "sprite": "flame_jet_large_1"},
          {"sub_delay": 14, "damage": 3, "speed_x": 1, "speed_y": 8, "spawn_x": 5, "sprite": "flame_jet_large_1"}]},
        {"fire_delay": 3, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 15, "damage": 3, "speed_y": 8, "sprite": "flame_jet_large_1"},
          {"sub_delay": 14, "damage": 3, "speed_x": -1, "speed_y": 8, "spawn_x": -5, "sprite": "flame_jet_large_1"},
          {"sub_delay": 14, "damage": 3, "speed_x": 1, "speed_y": 8, "spawn_x": 5, "sprite": "flame_jet_large_1"}]},
        {"fire_delay": 4, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 16, "damage": 3, "speed_y": 8, "sprite": "flame_jet_large_1"},
          {"sub_delay": 15, "damage": 3, "speed_x": -1, "speed_y": 8, "spawn_x": -5, "sprite": "flame_jet_large_1"},
          {"sub_delay": 15, "damage": 2, "speed_x": 1, "speed_y": 8, "spawn_x": 5, "sprite": "flame_jet_large_1"},
          {"sub_delay": 13, "damage": 2, "speed_x": -2, "speed_y": 8, "spawn_x": -8, "sprite": "flame_jet_1"},
          {"sub_delay": 13, "damage": 2, "speed_x": 2, "speed_y": 8, "spawn_x": 8, "sprite": "flame_jet_1"}]},
        {"fire_delay": 4, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 1, "projectiles": [
          {"sub_delay": 16, "damage": 3, "speed_y": 8, "sprite": "flame_jet_large_1"},
          {"sub_delay": 15, "damage": 3, "speed_x": -1, "speed_y": 8, "spawn_x": -5, "sprite": "flame_jet_large_1"},
          {"sub_delay": 15, "damage": 3, "speed_x": 1, "speed_y": 8, "spawn_x": 5, "sprite": "flame_jet_large_1"},
          {"sub_delay": 14, "damage": 2, "speed_x": -2, "speed_y": 8, "spawn_x": -8, "sprite": "flame_jet_1"},
          {"sub_delay": 14, "damage": 2, "speed_x": 2, "speed_y": 8, "spawn_x": 8, "sprite": "flame_jet_1"}]},
      ],
    },

    {
      "name": "Frost Shard", "cost": 1050, "power_use": 60, "icon_sprite": "frost_shard_icon",
      "always_available": true,
      "front": [
        {"fire_delay": 6, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_y": 8, "sprite": "frost_flake_1"}]},
        {"fire_delay": 6, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_y": 11, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_y": 8, "sprite": "frost_flake_1"}]},
        {"fire_delay": 7, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "spawn_x": -4, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "spawn_x": 4, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_y": 8, "sprite": "frost_flake_1"}]},
        {"fire_delay": 6, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "spawn_x": -4, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "spawn_x": 4, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_y": 8, "sprite": "frost_flake_1"}]},
        {"fire_delay": 7, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "spawn_x": -5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "spawn_x": 5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 12, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_y": 8, "sprite": "frost_flake_1"}]},
        {"fire_delay": 6, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "spawn_x": -5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 11, "spawn_x": 5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 4, "speed_y": 12, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_y": 8, "sprite": "frost_flake_1"}]},
        {"fire_delay": 7, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -1, "speed_y": 11, "spawn_x": -5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 1, "speed_y": 11, "spawn_x": 5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 4, "speed_y": 12, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": -1, "speed_y": 8, "spawn_x": -3, "sprite": "frost_flake_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": 1, "speed_y": 8, "spawn_x": 3, "sprite": "frost_flake_1"}]},
        {"fire_delay": 7, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -1, "speed_y": 11, "spawn_x": -5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 1, "speed_y": 11, "spawn_x": 5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 12, "spawn_x": -2, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 12, "spawn_x": 2, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": -1, "speed_y": 8, "spawn_x": -3, "sprite": "frost_flake_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": 1, "speed_y": 8, "spawn_x": 3, "sprite": "frost_flake_1"}]},
        {"fire_delay": 6, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -1, "speed_y": 11, "spawn_x": -5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_x": 1, "speed_y": 11, "spawn_x": 5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 12, "spawn_x": -2, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 12, "spawn_x": 2, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": -1, "speed_y": 8, "spawn_x": -3, "sprite": "frost_flake_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": 1, "speed_y": 8, "spawn_x": 3, "sprite": "frost_flake_1"}]},
        {"fire_delay": 6, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -1, "speed_y": 11, "spawn_x": -5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 1, "speed_y": 11, "spawn_x": 5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 12, "spawn_x": -2, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 12, "spawn_x": 2, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": -2, "speed_y": 8, "spawn_x": -6, "sprite": "frost_flake_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": 2, "speed_y": 8, "spawn_x": 6, "sprite": "frost_flake_1"}]},
        {"fire_delay": 5, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 31, "projectiles": [
          {"sub_delay": 255, "damage": 4, "speed_x": -1, "speed_y": 11, "spawn_x": -5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 4, "speed_x": 1, "speed_y": 11, "spawn_x": 5, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 12, "spawn_x": -2, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 12, "spawn_x": 2, "sprite": "frost_shard_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": -2, "speed_y": 8, "spawn_x": -6, "sprite": "frost_flake_1"},
          {"sub_delay": 255, "damage": "freeze", "speed_x": 2, "speed_y": 8, "spawn_x": 6, "sprite": "frost_flake_1"}]},
      ],
    },

    {
      "name": "Arc Caster", "cost": 1000, "power_use": 50, "icon_sprite": "arc_caster_icon",
      "always_available": true,
      "front": [
        {"fire_delay": 5, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": -3, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 4, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": -3, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 5, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": -7, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": 1, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 5, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": -7, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": 1, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 4, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": -7, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": 1, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 5, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_y": 15, "spawn_x": -3, "sprite": "arc_bolt_large_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": -9, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": 3, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 5, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 15, "spawn_x": -3, "sprite": "arc_bolt_large_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": -9, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": 3, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 4, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_y": 15, "spawn_x": -3, "sprite": "arc_bolt_large_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": -9, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 3, "speed_y": 15, "spawn_x": 3, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 5, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_y": 15, "spawn_x": -3, "sprite": "arc_bolt_large_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 15, "spawn_x": -9, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 15, "spawn_x": 3, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 15, "spawn_x": -13, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 15, "spawn_x": 7, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 5, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 15, "spawn_x": -3, "sprite": "arc_bolt_large_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 15, "spawn_x": -9, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 15, "spawn_x": 3, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 15, "spawn_x": -13, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 15, "spawn_x": 7, "sprite": "arc_bolt_1"}]},
        {"fire_delay": 4, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 15, "circle_radius": 23, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_y": 15, "spawn_x": -3, "sprite": "arc_bolt_large_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 15, "spawn_x": -9, "sprite": "arc_bolt_large_1"},
          {"sub_delay": 255, "damage": 2, "speed_y": 15, "spawn_x": 3, "sprite": "arc_bolt_large_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": -1, "speed_y": 15, "spawn_x": -13, "sprite": "arc_bolt_1"},
          {"sub_delay": 255, "damage": 2, "speed_x": 1, "speed_y": 15, "spawn_x": 7, "sprite": "arc_bolt_1"}]},
      ],
    },

    {
      "name": "Boulder Mortar", "cost": 1100, "power_use": 110, "icon_sprite": "boulder_mortar_icon",
      "always_available": true,
      "rear": [
        {"fire_delay": 13, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 8, "speed_y": -2, "sprite": "boulder_large_1"}]},
        {"fire_delay": 12, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 9, "speed_y": -2, "sprite": "boulder_large_1"}]},
        {"fire_delay": 11, "projectile_count": 1, "max_on_screen": 1, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 11, "speed_y": -2, "sprite": "boulder_large_1"}]},
        {"fire_delay": 13, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 7, "speed_x": -1, "speed_y": -2, "spawn_x": -5, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": 1, "speed_y": -2, "spawn_x": 5, "sprite": "boulder_large_1"}]},
        {"fire_delay": 11, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 8, "speed_x": -1, "speed_y": -2, "spawn_x": -5, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 8, "speed_x": 1, "speed_y": -2, "spawn_x": 5, "sprite": "boulder_large_1"}]},
        {"fire_delay": 12, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 10, "speed_x": -1, "speed_y": -2, "spawn_x": -5, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 10, "speed_x": 1, "speed_y": -2, "spawn_x": 5, "sprite": "boulder_large_1"}]},
        {"fire_delay": 12, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 12, "speed_y": -2, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": -2, "speed_y": -2, "spawn_x": -6, "sprite": "boulder_1"},
          {"sub_delay": 255, "damage": 7, "speed_x": 2, "speed_y": -2, "spawn_x": 6, "sprite": "boulder_1"}]},
        {"fire_delay": 12, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 12, "speed_y": -2, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 8, "speed_x": -2, "speed_y": -2, "spawn_x": -6, "sprite": "boulder_1"},
          {"sub_delay": 255, "damage": 8, "speed_x": 2, "speed_y": -2, "spawn_x": 6, "sprite": "boulder_1"}]},
        {"fire_delay": 11, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 12, "speed_y": -2, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 8, "speed_x": -2, "speed_y": -2, "spawn_x": -6, "sprite": "boulder_1"},
          {"sub_delay": 255, "damage": 8, "speed_x": 2, "speed_y": -2, "spawn_x": 6, "sprite": "boulder_1"}]},
        {"fire_delay": 12, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 10, "speed_x": -1, "speed_y": -2, "spawn_x": -4, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 10, "speed_x": 1, "speed_y": -2, "spawn_x": 4, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": -3, "speed_y": -2, "spawn_x": -8, "sprite": "boulder_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 3, "speed_y": -2, "spawn_x": 8, "sprite": "boulder_1"}]},
        {"fire_delay": 11, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 28, "accel_y": 1, "projectiles": [
          {"sub_delay": 255, "damage": 10, "speed_x": -1, "speed_y": -2, "spawn_x": -4, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 10, "speed_x": 1, "speed_y": -2, "spawn_x": 4, "sprite": "boulder_large_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": -3, "speed_y": -2, "spawn_x": -8, "sprite": "boulder_1"},
          {"sub_delay": 255, "damage": 6, "speed_x": 3, "speed_y": -2, "spawn_x": 8, "sprite": "boulder_1"}]},
      ],
    },

    {
      "name": "Acid Rain", "cost": 950, "power_use": 50, "icon_sprite": "acid_rain_icon",
      "always_available": true,
      "rear": [
        {"fire_delay": 8, "projectile_count": 3, "max_on_screen": 3, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -1, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_y": 13, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 1, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 8, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -2, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -1, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 1, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 2, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 7, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -2, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -1, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_y": 13, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 1, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 2, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 7, "projectile_count": 5, "max_on_screen": 5, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -3, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -2, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 2, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 3, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 7, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -3, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -2, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 2, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 3, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 7, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -4, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -3, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_y": 14, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 3, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 4, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 7, "projectile_count": 7, "max_on_screen": 7, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -4, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_y": 14, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 4, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 6, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -5, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -4, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 4, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 5, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 5, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -5, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -4, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 4, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 5, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 5, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": -6, "speed_y": 12, "sprite": "acid_drop_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -4, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 4, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 1}, "speed_x": 6, "speed_y": 12, "sprite": "acid_drop_1"}]},
        {"fire_delay": 5, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 10, "accel_y": -1, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -5, "speed_y": 11, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -4, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 1, "speed_y": 13, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 3, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 4, "speed_y": 12, "sprite": "acid_drop_large_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 5, "speed_y": 11, "sprite": "acid_drop_large_1"}]},
      ],
    },

    {
      "name": "Gale Blades", "cost": 1000, "power_use": 55, "icon_sprite": "gale_blades_icon",
      "always_available": true,
      "rear": [
        {"fire_delay": 8, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -7, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 7, "sprite": "gale_blade_1"}]},
        {"fire_delay": 6, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -7, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 7, "sprite": "gale_blade_1"}]},
        {"fire_delay": 7, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -7, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 7, "sprite": "gale_blade_1"}]},
        {"fire_delay": 6, "projectile_count": 2, "max_on_screen": 2, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -7, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 7, "sprite": "gale_blade_1"}]},
        {"fire_delay": 8, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -7, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 7, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -5, "speed_y": 5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 5, "speed_y": 5, "sprite": "gale_blade_1"}]},
        {"fire_delay": 7, "projectile_count": 4, "max_on_screen": 4, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -7, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 7, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -5, "speed_y": 5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 5, "speed_y": 5, "sprite": "gale_blade_1"}]},
        {"fire_delay": 8, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -5, "speed_y": 5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 5, "speed_y": 5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -5, "speed_y": -5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 5, "speed_y": -5, "sprite": "gale_blade_1"}]},
        {"fire_delay": 7, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -5, "speed_y": 5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 5, "speed_y": 5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -5, "speed_y": -5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 5, "speed_y": -5, "sprite": "gale_blade_1"}]},
        {"fire_delay": 7, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": -8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": 8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -5, "speed_y": 5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 5, "speed_y": 5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -5, "speed_y": -5, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 5, "speed_y": -5, "sprite": "gale_blade_1"}]},
        {"fire_delay": 7, "projectile_count": 6, "max_on_screen": 6, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": -8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": 8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -6, "speed_y": 4, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 6, "speed_y": 4, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -6, "speed_y": -4, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 6, "speed_y": -4, "sprite": "gale_blade_1"}]},
        {"fire_delay": 8, "projectile_count": 8, "max_on_screen": 8, "animation": 3, "sound": 13, "projectiles": [
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": -8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 4}, "speed_x": 8, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -6, "speed_y": 4, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 6, "speed_y": 4, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": -6, "speed_y": -4, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 3}, "speed_x": 6, "speed_y": -4, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": -3, "speed_y": 7, "sprite": "gale_blade_1"},
          {"sub_delay": 255, "damage": {"pierce": 2}, "speed_x": 3, "speed_y": 7, "sprite": "gale_blade_1"}]},
      ],
    },
  ],
}

Reference examples in the repository

Three smaller mods teach one technique each. They are not in the game package: they live in rewrite/mods/_retired/ of the repository. Check them with cargo run -p tyrian-mods -- check --mods mods/_retired --enable-all, or copy one into your mods/ folder to play it.

Example Behaviors

The Helix Driver front weapon, sold everywhere and fitted at the start; an enemy weapon, drone_spread; and a new enemy, zigzag_drone, that zig-zags down the screen, follows the player sideways and fires a three-shot spread. The level file adds five of them to the first level of episode 1. Folder: rewrite/mods/_retired/example_behaviors/.

{
  "$schema": "../../mod.schema.json",
  "format_version": 1,
  "name": "Example Behaviors",
  "author": "OpenTyrian2000 rewrite",
  "version": "2.0",
  "description": "New weapon and enemy described in data.",
  "enabled": false,

  "weapons": [
    {
      "name": "Helix Driver",
      "cost": 900,
      "power_use": 20,
      "always_available": true,
      "front": [
        {
          "fire_delay": 6, "projectile_count": 2, "max_on_screen": 2, "sound": 20, "trail": 255,
          "projectiles": [
            { "damage": 3, "sub_delay": 255, "speed_x": -2, "speed_y": 12, "sprite": "orb_gold_1" },
            { "damage": 3, "sub_delay": 255, "speed_x":  2, "speed_y": 12, "sprite": "orb_gold_1" }
          ]
        },
        {
          "fire_delay": 5, "projectile_count": 3, "max_on_screen": 3, "sound": 20, "trail": 255,
          "projectiles": [
            { "damage": 3,   "sub_delay": 255, "speed_x": -3, "speed_y": 12, "sprite": "orb_gold_1" },
            { "damage": { "pierce": 4 }, "sub_delay": 255, "speed_x":  0, "speed_y": 14, "sprite": "orb_teal_1" },
            { "damage": 3,   "sub_delay": 255, "speed_x":  3, "speed_y": 12, "sprite": "orb_gold_1" }
          ]
        }
      ]
    }
  ],

  "starter": { "front_weapon": "Helix Driver" },

  "enemy_weapons": [
    {
      "name": "drone_spread",
      "projectile_count": 3, "max_on_screen": 3, "sound": 0,
      "projectiles": [
        { "damage": 2, "sub_delay": 255, "speed_x": -2, "speed_y": 3, "sprite": "orb_red_eye_down" },
        { "damage": 2, "sub_delay": 255, "speed_x":  0, "speed_y": 4, "sprite": "orb_red_eye_down" },
        { "damage": 2, "sub_delay": 255, "speed_x":  2, "speed_y": 3, "sprite": "orb_red_eye_down" }
      ]
    }
  ],

  "enemies": [
    {
      "name": "zigzag_drone",
      "base": "tech_corridor_32",
      "armor": 12,
      "value": 150,
      "ymove": 0,
      "behavior": {
        "path": [
          { "ticks": 24, "vx":  3, "vy": 2 },
          { "ticks": 24, "vx": -3, "vy": 2 }
        ],
        "loop": true,
        "track": { "axis": "x", "max_speed": 4, "every": 6 },
        "turrets": [
          { "weapon": "drone_spread", "every": 40, "start": 20, "direction": "down" }
        ]
      }
    }
  ]
}

levels/ep1_09.json

{
  "episode": 1,
  "lvl_file_num": 9,
  "add_events": [
    { "time": 70,  "spawn": "zigzag_drone", "x": 90 },
    { "time": 90,  "spawn": "zigzag_drone", "x": 170 },
    { "time": 150, "spawn": "zigzag_drone", "x": 130 },
    { "time": 260, "spawn": "zigzag_drone", "x": 60 },
    { "time": 260, "spawn": "zigzag_drone", "x": 200 }
  ]
}

Alien Pack

Items cloned from originals with base: a Gencore II hull re-skinned as the Xeno Vanguard and four stock weapons recolored acid green by the mod-wide tint, so the balance stays the original game's. A new game starts with the Xeno Vanguard, the Alien Vulcan Cannon and the Alien Guided Orbs (starter). Folder: rewrite/mods/_retired/alien_pack/.

Show the mod.json of Alien Pack
{
  "$schema": "../../mod.schema.json",
  "format_version": 1,
  "name":        "Alien Pack",
  "author":      "OpenTyrian2000 Team",
  "version":     "3.0",
  "description": "Green alien fleet — 4 stock weapons re-skinned via engine tint.",
  "tint":        "green",
  "enabled":     false,

  "ships": [
    { "name": "Xeno Vanguard", "base": "Gencore II", "ship_sprite": "xeno_vanguard", "always_available": true }
  ],

  "weapons": [
    { "name": "Alien Vulcan Cannon", "base": "Vulcan Cannon",          "always_available": true },
    { "name": "Alien Mega Cannon",   "base": "Mega Cannon",            "always_available": true },
    { "name": "Alien Bio Spreader",  "base": "Sonic Wave",             "always_available": true },
    { "name": "Alien Guided Orbs",   "base": "Heavy Missile Launcher", "always_available": true }
  ],

  "starter": {
    "ship":         "Xeno Vanguard",
    "front_weapon": "Alien Vulcan Cannon",
    "rear_weapon":  "Alien Guided Orbs"
  }
}

Nova Weapons

Three weapons written from scratch: the Nova Pulse Array (power levels that fan out with speed_x, original sprites cited by name), the Ion Piercer ({ "pierce": 5 } damage and a PNG of the mod) and the Quark Seeker (homing missiles with a smoke trail). Folder: rewrite/mods/_retired/example_nova_weapons/.

Show the mod.json of Nova Weapons
{
  "$schema": "../../mod.schema.json",
  "format_version": 1,
  "name": "Nova Weapons",
  "author": "OpenTyrian2000 Team",
  "version": "2.0",
  "description": "3 futuristic weapons built from scratch — a worked example.",
  "enabled": false,

  "weapons": [

    {
      "name": "Nova Pulse Array",
      "cost": 1200,
      "power_use": 22,
      "icon_sprite": "nova_pulse",
      "always_available": true,
      "front": [
        {
          "fire_delay": 4, "projectile_count": 1, "max_on_screen": 1, "sound": 20, "trail": 255,
          "projectiles": [
            { "damage": 4, "sub_delay": 255, "speed_y": 16, "sprite": "orb_teal_1" },
          ],
        },
        {
          "fire_delay": 4, "projectile_count": 2, "max_on_screen": 2, "sound": 20, "trail": 255,
          "projectiles": [
            { "damage": 4, "sub_delay": 255, "speed_x": -1, "speed_y": 16, "sprite": "orb_teal_1" },
            { "damage": 4, "sub_delay": 255, "speed_x":  1, "speed_y": 16, "sprite": "orb_teal_2" },
          ],
        },
        {
          "fire_delay": 4, "projectile_count": 3, "max_on_screen": 3, "sound": 20, "trail": 255,
          "projectiles": [
            { "damage": 5, "sub_delay": 255, "speed_x": -2, "speed_y": 15, "sprite": "orb_teal_1" },
            { "damage": 5, "sub_delay": 255,                "speed_y": 17, "sprite": "orb_teal_3" },
            { "damage": 5, "sub_delay": 255, "speed_x":  2, "speed_y": 15, "sprite": "orb_teal_2" },
          ],
        },
      ],
    },

    {
      "name": "Ion Piercer",
      "cost": 3000,
      "power_use": 45,
      "icon_sprite": "ion_piercer",
      "always_available": true,
      "front": [
        {
          "fire_delay": 12, "projectile_count": 1, "max_on_screen": 1, "sound": 18, "trail": 255,
          "projectiles": [
            { "damage": { "pierce": 5 }, "sub_delay": 255, "speed_y": 12, "sprite": "ion_beam" },
          ],
        },
        {
          "fire_delay": 12, "projectile_count": 2, "max_on_screen": 2, "sound": 18, "trail": 255,
          "projectiles": [
            { "damage": { "pierce": 5 }, "sub_delay": 255, "speed_x": -1, "speed_y": 12, "sprite": "ion_beam" },
            { "damage": { "pierce": 5 }, "sub_delay": 255, "speed_x":  1, "speed_y": 12, "sprite": "ion_beam" },
          ],
        },
      ],
    },

    {
      "name": "Quark Seeker",
      "cost": 2200,
      "power_use": 35,
      "icon_sprite": "quark_seeker",
      "always_available": true,
      "rear": [
        {
          "fire_delay": 16, "projectile_count": 1, "max_on_screen": 1, "homing": 11, "trail": 98, "sound": 26,
          "projectiles": [
            { "damage": 10, "sub_delay": 255, "speed_y": 8, "sprite": "missile_blue_tiny" },
          ],
        },
        {
          "fire_delay": 16, "projectile_count": 2, "max_on_screen": 2, "homing": 11, "trail": 98, "sound": 26,
          "projectiles": [
            { "damage": 10, "sub_delay": 255, "speed_x": -2, "speed_y": 8, "sprite": "missile_blue_tiny_left" },
            { "damage": 10, "sub_delay": 255, "speed_x":  2, "speed_y": 8, "sprite": "missile_blue_tiny_right" },
          ],
        },
      ],
    },
  ],
}