OPENTYRIAN2000 / ENHANCED
EN
Download
OpenTyrian2000 Enhanced Edition · for creators

Tyrian mods: ships, weapons, enemies and levels

A mod is a folder: a mod.json that describes what you add or change, plus optional PNG sprites and level files. No recompiling, no ID numbers to pick.

On this page

What a Tyrian mod can change

Everything below is plain data in mod.json and PNG files. The game reloads mods on the spot.

Weapons

New front and rear guns with their own power levels, shot patterns, damage and sprites, or copies of original weapons. Shots can pierce enemies or home in on them.

Ships, sidekicks, shields, specials

Written from scratch or copied from an original item, sold in the shop or put in the starting loadout.

Enemies

Change any original enemy, or create new ones with data-driven flight paths, player tracking and up to four turrets.

Enemy weapons

Give your enemies their own fire patterns, with the same fields as a player weapon's power level.

Level encounters

Add enemy waves to an original level, or replace its whole event list. Events are written by name.

Sprites

Replace any named original sprite, add new ones, or recolour every image of a mod with a single tint.

Not moddable yet: level maps (tiles), music, sound effects and the palette.

One folder, everything named

The weapons, ships, enemies and sprites a mod creates are named by their author, and the original content it copies or changes is cited by its name too, such as "base": "Vulcan Cannon". The engine assigns every internal slot itself: you never pick an ID number, and two mods never fight over one.

my_mod/
  mod.json              required: "format_version": 1 and "name"
  README.md             optional: shown in Setup → Mods (1 KiB at most)
  levels/ep1_09.json    optional: events of a level
  sprites/shots/*.png   optional: images, cited by their file name

A real mod.json

This is the Alien Pack reference example, comments removed. It is not in the game package: it lives in rewrite/mods/_retired/alien_pack/ of the repository. It adds a ship and four weapons copied from original ones, tints every PNG of the mod green, and sets the starting loadout of a new game:

{
  "$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"
  }
}

Next to it, the mod's sprites/ folder holds the ship image (sprites/ships/xeno_vanguard.png), shop icons and shots; "tint" recolours all of them when the mod loads. "$schema" is optional: it points your editor at the published JSON schema for completion and live errors. Every unknown key is reported as an error, so a typo never goes unnoticed.

Install a mod from a .zip

  1. In the game, open Setup → Mods and pick Install a mod (.zip), or drop the .zip on the game window while that menu is shown.
  2. The mod is copied to your mods/ folder and appears in the list. Each mod is marked ON, OFF or ERR.
  3. Enter turns the selected mod on or off; Esc applies the change, reloads the mods at once and returns to the title.

The archive must hold mod.json at its root or inside a single top-level folder. An archive that would write outside its folder, or a mod whose folder already exists, is refused with the reason on the line: to update a mod, delete its folder first. Open mods folder opens that folder in your file manager, so you can also copy mod folders there by hand.

A broken mod shows its error on its line instead of crashing the game. Limits keep untrusted files safe: at most 32 mods, PNG files of at most 4 MiB and 2048 pixels per side, and a few more listed in the limits and troubleshooting page.

The level editor and Play from here

The repository includes a level editor built into the Godot editor. Its Tyrian dock lets you pick a start row on the level map, Add an enemy here, Export to the mod, Build the .zip package to share, and Play from here, which starts the level fast-forwarded to the row you chose, so you can test an encounter in seconds.

The Godot level editor open on a Tyrian level, with the Tyrian dock on the right
Level editor · Tyrian dock · Play from here

The editor works from the source code: you build the game first (see docs/build.md), then open the Godot project. You do not need it to make a mod: level events can also be written by hand in levels/epN_NN.json. This example, from the modding guide, adds two enemies to the first level of episode 1:

{ "episode": 1, "lvl_file_num": 9,
  "add_events": [ { "time": 300, "spawn": "my_drone", "x": 130 },
                  { "time": 300, "spawn": "tech_corridor_32", "x": "random", "link": 3 } ] }

add_events inserts events into the original list, events replaces it, and random_enemies replaces the level's random enemies. time is the scroll position shown by the editor. Every event type is listed on the Level events page.

Where to start

  • Copy the template rewrite/mod_template/ from the repository into your mods/ folder, rename it and edit its mod.json.
  • Open the five mod packs in the game's mods/ folder (also in rewrite/mods/ of the repository): two ship packs with five drawn poses per ship, three weapon packs with eleven power levels and their own shot sprites.
  • Study the reference examples in rewrite/mods/_retired/ of the repository (not in the game package): Alien Pack (copied items, a tint and a starting loadout), Example Behaviors (a new enemy weapon and a zig-zagging drone with a turret, added to a level) and Nova Weapons (three weapons written from scratch).
  • Follow the tutorial: your first level in about fifteen minutes, from adding an enemy to sharing the .zip.

The modding reference in the wiki

Questions, bugs, ideas?

Tell us what you think of the Enhanced Edition: we read every message.

Write to us