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.
| Pack | What it adds |
|---|---|
| Alien Ship Pack | 8 Hazudra and Zica ships, five banking poses each, 7,000 to 52,000 credits. |
| Bio Ships Pack | 6 bio-organic alien ships: carapaces, membrane wings and glowing spore sacs, 8,500 to 55,000 credits. |
| Alien Weapon Pack | 6 Hazudra and Zica weapons (3 front, 3 rear), 11 power levels each: piercing lances, homing darts, plasma rings. |
| Bio Weapons Pack | 6 living weapons (3 front, 3 rear), 11 power levels each: spores, acid, thorns, larvae, pollen and seeds. |
| Elements Weapon Pack | 6 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

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.
| Ship | Price | Armor | Description |
|---|---|---|---|
| Zica Ember | 7,000 | 12 | Light Zica scout, a glowing furnace core in a grey hull. |
| Hazudra Stinger | 9,000 | 14 | Narrow Hazudra interceptor with a blue sensor eye. |
| Hazudra Mandible | 11,000 | 16 | Forward prongs like an insect's jaws; the Hazudra close-range fighter. |
| Zica Halo | 14,000 | 19 | Ring-winged Zica craft with a green reactor halo. |
| Hazudra Crescent | 16,000 | 21 | Crescent-wing Hazudra escort. |
| Zica Twin Furnace | 22,000 | 26 | Heavy Zica hull built around two thermal engines. |
| Hazudra Reaver | 28,000 | 27 | Steel-blue Hazudra raider with red weapon blisters. |
| Hazudra Swarmlord | 52,000 | 29 | Flagship 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.

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

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.
| Ship | Slot and role | Price | Armor | Description |
|---|---|---|---|---|
| Spore Wisp | light interceptor | 8,500 | 13 | Small winged seed around one big glowing spore sac. |
| Thornwing | agile striker | 11,000 | 16 | Moth-shaped body with swept membrane wings tipped by bone thorns, thorn legs and a glowing green heart. |
| Membrane Ray | balanced fighter | 13,500 | 18 | Manta-shaped membrane wing with a carapace spine and one green eye. |
| Leech Lancer | assault | 18,500 | 23 | Long leech body behind a bone lance, hooked tendril arms, flesh joints. |
| Carapace Beetle | heavy armored | 26,000 | 28 | Thick split shell with a bone horn and a glowing slit between the plates. |
| Hive Mother | flagship | 55,000 | 29 | Bulbous 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.

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

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.
| Weapon | Slot and role | Price | Power use | DPS L1 → L11 | What it does |
|---|---|---|---|---|---|
| Zica Thermal Lance | front · piercing | 1,100 | 100 | 14.0 → 78.8 | White-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 Fan | front · spread | 1,000 | 70 | 17.5 → 85.0 | A fan of green crescents, 2 wide at level 1, 7 wide at level 11. |
| Hazudra Spore Cannon | front · heavy | 1,050 | 130 | 18.8 → 91.0 | Slow 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 Darts | rear · homing | 1,050 | 80 | 13.5 → 79.5 | Darts 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 Halo | rear · area (flanks) | 950 | 50 | 17.5 → 99.2 | Spinning 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 Mortar | rear · area (lobbed) | 1,100 | 90 | 14.6 → 91.0 | Ember 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.

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

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.
| Weapon | Slot and role | Price | Power use | DPS L1 → L11 | What it does |
|---|---|---|---|---|---|
| Spore Burst | front · spread | 1,000 | 60 | 17.5 → 87.5 | One 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 Spitter | front · heavy | 1,100 | 140 | 18.8 → 91.0 | Acid 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 Needler | front · piercing | 1,050 | 70 | 15.0 → 80.0 | Fast 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 Seekers | rear · homing | 1,050 | 80 | 13.5 → 80.5 | Larvae 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 Cloud | rear · area (short range) | 950 | 50 | 17.5 → 95.0 | Slow 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 Mortar | rear · area (lobbed) | 1,000 | 90 | 14.6 → 91.0 | Seeds 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.


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

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.
| Weapon | Slot and role | Price | Power use | DPS L1 → L11 | What it does |
|---|---|---|---|---|---|
| Flame Lance | front · fire · short range | 1,000 | 45 | 21.0 → 91.0 | Fast 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 Shard | front · ice · control | 1,050 | 60 | 15.0 → 81.7 | Ice 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 Caster | front · lightning · zig-zag | 1,000 | 50 | 17.5 → 84.0 | Lightning 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 Mortar | rear · earth · heavy | 1,100 | 110 | 20.0 → 93.3 | Heavy 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 Rain | rear · acid · area | 950 | 50 | 11.7 → 93.3 | A 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 Blades | rear · wind · flanks | 1,000 | 55 | 15.6 → 93.3 | Spinning 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.


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" },
],
},
],
},
],
}