Tachyon Travels

Modding Guide

Create data-only mods, install them locally, and publish them to the Steam Workshop.

This web edition contains the complete getting-started guide and generated reference for 235 public content types.

Getting Started with Modding

Overview

Tachyon Travels supports data-only mods. A mod can rebalance gameplay, add or replace content, provide translations, and override supported visual or audio assets without GDScript.

Mod Structure

my_mod/
├── mod.json                    # Manifest (required)
├── preview.png                 # Workshop thumbnail (optional, at most 1 MB)
├── data/
│   ├── config/
│   │   ├── enemy_ai.json
│   │   └── status_effects.json
│   ├── books/
│   │   └── my_books.csv
│   └── enemies.csv
├── translations/
│   └── my_mod.en.po
└── assets/
    └── echoes/unit/roman/
        └── basic.png

Only mod.json is required. Add data, translation, and asset folders as your mod needs them.

The mod.json Manifest

{
  "mod_id": "my_balance_mod",
  "mod_type": "community",
  "mod_version": "1.0.0",
  "mod_name": "My Balance Mod",
  "mod_author": "Your Name",
  "mod_description": "Adjusts status effects and enemy AI",
  "game_version_min": "0.1.0",
  "content": {
    "status_effects": [{"file": "data/config/status_effects.json"}],
    "enemy_ai": [{"file": "data/config/enemy_ai.json"}]
  }
}

The manifest requires these seven non-empty string fields:

  • mod_id: a stable identifier for the mod.
  • mod_type: use community for community mods.
  • mod_version: the version of your mod.
  • mod_name: the player-facing name.
  • mod_author: the player-facing author name.
  • mod_description: a short player-facing description.
  • game_version_min: the oldest compatible Tachyon Travels version.

The content object is optional. Each key is a supported content type, and its value is an array of declarations. The Content Type Reference lists the public types, formats, merge rules, key fields, dependencies, and example paths.

For any new community row that has an origin field, set it to lore. historical and mythological are reserved for game-owned catalogue records and cannot be used for standalone new rows in a community mod. When overriding an existing game-owned historical or mythological row, preserve every catalogue-reference field already present on that row.

Content declarations

The declaration shape depends on the content type:

{
  "content": {
    "status_effects": [
      {"file": "data/config/status_effects.json"}
    ],
    "books": [
      {"file": "data/books/my_books.csv", "id_column": "book_id"}
    ],
    "bosses": [
      {"id": "my_boss", "file": "data/bosses/my_boss.json"}
    ]
  }
}

Paths in mod.json are relative to the mod root. Keep every referenced file inside that root.

Dependencies

Use an optional dependencies object to describe relationships with other mods:

{
  "dependencies": {
    "requires": {"library_core": ">=1.2.0"},
    "optional": {"extra_maps": "*"},
    "conflicts": {"legacy_balance": "*"},
    "load_after": ["library_core"]
  }
}
  • requires: disables this mod when the named mod is missing or incompatible.
  • optional: adds a load-order relationship when the named mod is installed.
  • conflicts: prevents both mods from loading together.
  • load_after: loads this mod after the named mod within the same priority.

Version constraints accept *, exact MAJOR.MINOR.PATCH versions, and the prefixes >=, <=, >, <, =, ^, and ~.

Workshop metadata

workshop_tags is an optional array of non-empty strings. A preview.png in the mod root becomes the Workshop thumbnail and must be at most 1 MB. After the first successful publish, the game adds the assigned workshop_id to mod.json; leave that value unchanged so later publishes update the same item.

Common Content Types

Content type Format Merge rule What it changes
enemies CSV replace_record Enemy definitions
bosses JSON replace_record Boss definitions
weapons CSV replace_record Weapon definitions
weapon_levels CSV replace_record Weapon level values
items CSV replace_record Item definitions
loot CSV replace_record Loot entries and rewards
books CSV replace_record Book catalog entries
sites CSV replace_record Playable Site catalog entries
site_economics CSV replace_record Site costs, rewards, and risk values
status_effects JSON merge_object Status effect values
enemy_ai JSON merge_object Enemy AI parameters
themes JSON replace_record User-interface themes
wave_configs CSV replace_all Horde wave definitions
wall_formations JSON replace_record Horde encircling-wall behavior
mothership_stations JSON replace_record Mothership station definitions
story_beats JSON replace_record Story trigger and delivery data
icon_tokens JSON merge_object Semantic icon asset bindings

Merge and Deletion Rules

  • replace_record: entries with the same key fields replace earlier entries.
  • merge_object: objects are merged recursively; specify only the values you want to change.
  • replace_all: the mod replaces the complete data set for that type.
  • merge_by_id: incoming entries replace matching ids and add new ids.
  • merge_append: incoming entries are appended in mod load order.

Deletion is available only when the type's Deletion column in the Content Type Reference says yes. For a supported replace_record type, a deletion row uses _op: "delete" together with the type's key fields:

{"_op": "delete", "id": "entry_id"}

For a supported merge_object type, remove nested values with _delete_paths:

{"_delete_paths": ["field.to.remove"]}

Asset Overrides

Put replacement assets under your mod's assets/ folder using the supported canonical relative path. Higher-priority mods take precedence, and missing assets fall back to the base game.

For example:

assets/echoes/unit/roman/basic.png

Icon-token data should point to textures inside the owning mod's assets/ folder. Absolute paths, parent-directory traversal, and paths that escape the mod root are rejected.

Localization

Put gettext .po catalogs or compiled .mo catalogs in the mod's translations/ folder. Enabled mods load their catalogs at startup. Prefix translation keys with your mod ID to reduce collisions with the base game and other mods.

Installation

Install a local mod at:

user://mods/local/your_mod/

The in-game Mods screen has an Open Mods Folder button that creates and opens this directory. user:// resolves to the Tachyon Travels data directory:

  • Windows: %APPDATA%\Tachyon_Travels\
  • macOS: ~/Library/Application Support/Tachyon_Travels/

Steam Workshop subscriptions are discovered automatically on the next game start. Enabling or disabling a mod takes effect after restart.

Testing and Troubleshooting

Restart the game after changing mod.json. Restarting is also the most reliable way to verify data and asset changes through the complete loading process.

The Mods screen shows each discovered mod's state and validation messages. Additional details are written to logs/godot.log below the same data directory used by user://.

If the game fails only when mods are installed, temporarily disable the suspect mods on the Mods screen. You can also start the game with -- --no-user-mods to load only the base game and official game content.

Common causes of load failure include:

  • a missing required manifest field;
  • a manifest path that does not match the file's location;
  • malformed JSON or CSV;
  • a missing required dependency;
  • a content key with the wrong type;
  • an unsupported file or an unsafe resource reference.

Saves and Mods

Saves record the community mod set that was active when they were written. Loading a save with a different mod set shows an advisory rather than blocking the load. Removing content used by an existing save can still change gameplay or leave referenced content unavailable, so keep backups while developing.

Publishing to the Steam Workshop

  1. Develop and test the mod under user://mods/local/your_mod/.
  2. Add optional workshop_tags and a preview.png at most 1 MB.
  3. Open the Mods screen, select the local mod, and choose Publish to Workshop.
  4. Accept the Steam Workshop legal agreement if Steam requests it.
  5. Keep the workshop_id written to mod.json after the first publish.

The game validates the manifest and files before upload. Later publishes update the same Workshop item. If an upload is interrupted, restart the game and retry from the same local mod so the saved publish state can be recovered.

Workshop updates apply after the game restarts; they are never applied in the middle of a running session.

Load Priority

Priority Source
0 Base game
100 Official game content
200 Steam Workshop mods
300 Local mods

When two mods change the same entry, the higher-priority source wins. Ordering within a priority also follows declared dependencies and load-order hints.

Security

Community mods are data-only. Supported file extensions are .csv, .json, .png, .jpg, .jpeg, .ogg, .wav, .tscn, .tres, .po, .mo, .md, and .txt. GDScript (.gd) is not allowed.

The security scan includes hidden files. Remove operating-system and version-control metadata such as .DS_Store, Thumbs.db, and .git* before installing or publishing a mod. Scenes and resources must not contain script attachments or references that escape the mod directory.

Content Type Reference

The data contracts available to community mods: 235 types.

  • Declaration: how entries are declared in mod.json (json-per-entity, csv-catalog, json-catalog, json-file, or no base declaration).
  • Format: the data file format accepted for the type.
  • Merge rule / key fields / deletion: how a mod changes or removes data.
  • Dependencies: content types that must be available first.

achievements

Achievement definitions, predicates, and presentation.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
achievement_id_aliases json-file json replace_record alias_id yes data/achievements/achievement_id_aliases.json
achievement_visual_treatments json-file json replace_record visual_treatment_id yes data/achievements/achievement_visual_treatments.json
achievements json-file json replace_record achievement_id yes data/achievements/achievements.json

audio

Audio buses, events, mix states, music, and soundtrack profiles.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
audio_buses json-file json replace_record id yes data/config/audio_buses.json
audio_events json-file json replace_record id yes audio_buses, audio_preload_sets data/config/audio_events.json
audio_mix_states json-file json replace_record id yes audio_buses data/config/audio_mix_states.json
audio_mode_profiles json-file json replace_record id yes audio_buses, audio_mix_states, audio_preload_sets, music_states data/config/audio_mode_profiles.json
audio_parameters json-file json replace_record id yes data/config/audio_parameters.json
audio_polish_v2 json-catalog json replace_record audio_polish_id yes data/horde/audio_polish_v2.json
audio_preload_sets json-file json replace_record id yes data/config/audio_preload_sets.json
music_cues json-file json replace_record id yes data/config/music_cues.json
music_states json-file json replace_record id yes audio_parameters, music_cues, soundtrack_playlists data/config/music_states.json
soundtrack_playlists json-file json replace_record id yes music_cues data/config/soundtrack_playlists.json

characters

Playable characters and their configuration.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
characters csv-catalog csv replace_record id yes data/characters/characters.csv

combat

Combat systems: enemies, bosses, weapons, waves, arenas.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
arena_variations json-catalog json replace_record id no data/horde/arena_variations.json
bosses json-per-entity json replace_record id yes data/bosses/aztec_bosses.json
combat_achievements json-file json replace_record achievement_id yes data/combat/achievements.json
combat_artifact_runtime_bindings json-file json replace_record artifact_id yes data/combat/artifact_runtime_bindings.json
combat_imprint_runtime_bindings json-file json replace_record imprint_id yes data/combat/imprint_runtime_bindings.json
combat_weapon_behavior_profiles json-file json replace_record behavior_profile_id yes data/combat/weapon_behavior_profiles.json
combat_weapon_manifest json-file json replace_record weapon_id yes data/combat/weapon_manifest.json
echo_visuals json-file json merge_object yes data/config/echo_visuals.json
enemies csv-catalog csv replace_record id yes data/enemies.csv
enemy_ai json-file json merge_object yes data/config/enemy_ai.json
enemy_audio_bindings json-file json merge_object yes data/config/enemy_audio_bindings.json
enemy_behavior_archetypes json-catalog json replace_record archetype_id yes enemies data/mappings/enemy_behavior_archetypes.json
enemy_gameplay_overrides csv-catalog csv replace_record id yes enemies data/mappings/enemy_gameplay_overrides.csv
enemy_loot_overrides csv-catalog csv replace_record enemy_id yes bosses, enemies data/mappings/enemy_loot_overrides.csv
status_effects json-file json merge_object yes data/config/status_effects.json
targeting csv-catalog csv merge_append id data/config/targeting.csv
wall_formations json-file json replace_record formation_id yes data/horde/wall_formations.json
wall_visual_profiles json-file json replace_record visual_profile_id yes data/horde/wall_visual_profiles.json
wave_compositions csv-catalog csv replace_all wave no data/horde/wave_compositions.csv
wave_configs csv-catalog csv replace_all wave no data/horde/wave_configs.csv
weapon_balance_profiles json-file json merge_object yes weapon_levels, weapons data/combat/weapon_balance_profiles.json
weapon_evolutions csv-catalog csv replace_record evolution_id yes data/horde/weapon_evolutions.csv
weapon_levels csv-catalog csv replace_record weapon_id, level yes weapons data/weapon_levels.csv
weapon_pool_rules json-file json merge_object yes data/config/weapon_pool_rules.json
weapons csv-catalog csv replace_record id yes data/weapons.csv

economy_balance

Balance tables, exchange rates, and difficulty.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
balance csv-catalog csv merge_append level data/balance/progression.csv
balance_exchange_rates json-catalog json replace_record exchange_rate_id yes data/balance/generated/exchange_rates.json
constants csv-catalog csv merge_append key data/constants/constants.csv
difficulty_global json-file json merge_append difficulty_tiers data/config/difficulty_global.json
difficulty_tiers csv-catalog csv replace_all tier data/config/difficulty_tiers.csv

guidance

Guidance facts, graphs, and teaching flows.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
guidance_achievement_visual_treatments json-catalog json replace_record visual_treatment_id yes data/guidance/achievement_visual_treatments.json
guidance_achievements json-catalog json replace_record guidance_achievement_id yes data/guidance/achievements.json
guidance_anchor_kinds json-catalog json replace_record anchor_kind yes data/guidance/anchor_kinds.json
guidance_audio_cues json-catalog json replace_record audio_cue_id yes data/guidance/audio_cues.json
guidance_codex_entries json-catalog json replace_record entry_id yes data/guidance/codex_entries.json
guidance_concepts json-catalog json replace_record concept_id yes data/guidance/concepts.json
guidance_conditions json-catalog json replace_record condition_id yes data/guidance/conditions.json
guidance_haptic_patterns json-catalog json replace_record haptic_pattern_id yes data/guidance/haptic_patterns.json
guidance_help_topics json-catalog json replace_record topic_id yes data/guidance/help_topics.json
guidance_intensity_profiles json-catalog json replace_record intensity_profile_id yes data/guidance/intensity_profiles.json
guidance_juice_profiles json-catalog json replace_record juice_profile_id yes data/guidance/juice_profiles.json
guidance_lessons json-catalog json replace_record lesson_id yes data/guidance/lessons.json
guidance_packs json-catalog json replace_record pack_id yes data/guidance/packs.json
guidance_personas json-catalog json replace_record persona_id yes data/guidance/personas.json
guidance_presentations json-catalog json replace_record presentation_id yes data/guidance/presentations.json

horde

Horde run content, modifiers, and rewards.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
danger_levels csv-catalog csv replace_record level no data/horde/danger_levels.csv
dynamic_events csv-catalog csv replace_record event_id yes data/horde/dynamic_events.csv
extraction_profiles json-catalog json replace_record id no data/horde/extraction_profiles.json
hazards csv-catalog csv replace_record hazard_id yes data/horde/hazards.csv
heat_modifiers json-catalog json replace_record id no data/horde/heat_modifiers.json
horde_achievements json-catalog json replace_record achievement_id yes data/horde/horde_achievements.json
horde_artifact_drop_policy json-file json merge_object yes data/horde/horde_artifact_drop_policy.json
horde_boss_pools json-catalog json replace_record boss_pool_id no data/horde/boss_pools.json
horde_checkpoint_rules json-catalog json replace_record id no data/horde/horde_checkpoint_rules.json
horde_controller_feedback_v2 json-catalog json replace_record feedback_policy_id yes data/horde/controller_feedback_v2.json
horde_damage_number_profiles json-catalog json replace_record damage_number_profile_id yes data/horde/damage_number_profiles.json
horde_decal_specs json-catalog json replace_record decal_spec_id yes data/horde/decal_specs.json
horde_enemy_pools json-catalog json replace_record enemy_pool_id no data/horde/enemy_pools.json
horde_haptic_event_bindings json-catalog json replace_record binding_id yes data/horde/horde_haptic_event_bindings.json
horde_haptic_patterns json-catalog json replace_record pattern_id yes data/horde/horde_haptic_patterns.json
horde_hit_stop_profiles json-catalog json replace_record hit_stop_profile_id yes data/horde/hit_stop_profiles.json
horde_hud_instrument_profiles json-catalog json replace_record profile_id no data/horde/horde_hud_instrument_profiles.json
horde_icon_surface_polish json-catalog json replace_record surface_id yes data/horde/icon_surface_polish.json
horde_link_profiles json-catalog json replace_record profile_id no data/horde/horde_link_profiles.json
horde_options_contract json-catalog json replace_record setting_id yes data/horde/horde_options_contract.json
horde_particle_taxonomy json-catalog json replace_record particle_family_id yes data/horde/particle_taxonomy.json
horde_post_process_profiles json-catalog json replace_record post_process_profile_id yes data/horde/post_process_profiles.json
horde_resume_experience json-catalog json replace_record experience_id yes data/horde/horde_resume_experience.json
horde_reward_rules json-catalog json replace_record id no data/horde/horde_reward_rules.json
horde_route_profiles json-catalog json replace_record id no data/horde/route_profiles.json
horde_run_economy_profiles json-catalog json replace_record profile_id no data/horde/horde_run_economy_profiles.json
horde_salvage_rules csv-catalog csv replace_record salvage_rule_id yes data/horde/horde_salvage_rules.csv
horde_shader_specs json-catalog json replace_record shader_spec_id yes data/horde/shader_specs.json
horde_site_profiles json-catalog json replace_record id no data/horde/horde_site_profiles.json
horde_wave_composition_profiles json-catalog json replace_record composition_profile_id no data/horde/wave_composition_profiles.json
horde_wonder_site_arenas json-catalog json replace_record arena_id yes data/horde/wonder_site_arenas.json
level_up_passives json-catalog json replace_record passive_id yes data/horde/level_up_passives.json
resonance_decay csv-catalog csv replace_record phase no data/horde/resonance_decay.csv
spawn_profiles json-catalog json replace_record id no data/horde/spawn_profiles.json

items

Items, artifacts, chests, and drops.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
artifacts csv-catalog csv replace_record id yes data/artifacts.csv
chest_rules json-catalog json replace_record chest_rule_id yes data/horde/chest_rules.json
item_effects csv-catalog csv replace_record id yes data/items/item_effects.csv
item_visuals json-file json replace_record content_type, content_id yes data/config/item_visuals.json
items csv-catalog csv replace_record id yes data/items/items.csv
loot csv-catalog csv replace_record id yes artifacts, items, weapons data/loot/loot.csv
pickup_drop_layout no base declaration json merge_object yes
pickup_visual_profiles json-catalog json replace_record pickup_visual_profile_id yes data/config/pickup_visual_profiles.json
pickups csv-catalog csv replace_record pickup_archetype_id yes data/config/pickups.csv
reward_ritual_profiles json-catalog json replace_record profile_id yes data/rewards/reward_ritual_profiles.json
secret_distribution_profiles json-catalog json replace_record profile_id yes data/books/secret_distribution_profiles.json
secret_repository_profiles json-catalog json replace_record profile_id yes data/books/secret_repository_profiles.json
sets csv-catalog csv replace_record id yes data/items/sets.csv
synergies csv-catalog csv replace_record id yes data/items/synergies.csv

library

Books, the book reader, and library presentation.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
book_achievement_visual_treatments json-catalog json replace_record treatment_id yes data/books/book_achievement_visual_treatments.json
book_achievements json-catalog json replace_record achievement_id yes book_achievement_visual_treatments, books data/books/book_achievements.json
book_page_drop_policy json-file json merge_object yes data/horde/book_page_drop_policy.json
book_reader_audio_profiles json-catalog json replace_record profile_id yes data/books/book_reader_audio_profiles.json
book_reader_layout_profiles json-catalog json replace_record layout_profile_id yes data/books/book_reader_layout_profiles.json
book_reader_preference_profiles json-catalog json replace_record profile_id yes data/books/book_reader_preference_profiles.json
book_reader_vfx_profiles json-catalog json replace_record vfx_profile_id yes data/books/book_reader_vfx_profiles.json
book_reader_visual_profiles json-catalog json replace_record visual_profile_id yes data/books/book_reader_visual_profiles.json
book_reward_profiles json-catalog json replace_record profile_id yes data/books/book_reward_profiles.json
book_special_site_reveals json-catalog json replace_record book_id yes data/books/book_special_site_reveals.json
books csv-catalog csv replace_record book_id yes data/books/books_index.csv
library_audio_profiles json-catalog json replace_record access_mode_id yes data/books/library_audio_profiles.json
library_collection_profiles json-catalog json replace_record profile_id yes data/books/library_collection_profiles.json
library_vfx_profiles json-catalog json replace_record vfx_profile_id yes data/books/library_vfx_profiles.json
library_visual_profiles json-catalog json replace_record access_mode_id yes data/books/library_visual_profiles.json
reading_calibration json-catalog json replace_record profile_id no data/books/reading_calibration.json

localization

Languages and translation assets.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
number_format json-file json merge_by_id data/config/number_format.json

modes_runtime

Game modes and runtime profiles.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
generation_configs json-file json replace_record generator_id no data/config/generation_configs.json
mode_setups json-file json replace_record mode_id yes data/modes/horde_setup.json
mode_visual_profiles json-file json replace_record id yes data/config/mode_visual_profiles.json
pool csv-catalog csv merge_by_id id data/config/pool.csv
run_configs json-file json merge_by_id data/config/run_configs.json
run_phases csv-catalog csv replace_record phase_id no data/horde/run_phases.csv

mothership

Mothership systems, frames, imprints, drones, and tasks.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
drone_levels csv-catalog csv replace_record role_id, level yes data/mothership/drone_levels.csv
drone_modules csv-catalog csv replace_record module_id yes data/mothership/drone_modules.csv
drone_prestige_rules csv-catalog csv replace_record rule_id yes data/mothership/drone_prestige_rules.csv
drone_specializations csv-catalog csv replace_record specialization_id yes data/mothership/drone_specializations.csv
drone_types csv-catalog csv replace_record id yes data/mothership/drone_types.csv
frame_definitions csv-catalog csv replace_record frame_id yes data/mothership/frames.csv
frame_modules csv-catalog csv replace_record module_id yes data/mothership/frame_modules.csv
imprint_archetypes csv-catalog csv replace_record id yes data/imprint_archetypes.csv
imprint_exemplars no base declaration csv replace_record id yes imprint_archetypes
imprint_unlock_rules json-catalog json replace_record unlock_rule_id yes data/horde/imprint_unlock_rules.json
mothership_achievement_visual_treatments json-catalog json replace_record visual_treatment_id yes data/mothership/achievement_visual_treatments.json
mothership_achievements json-catalog json replace_record achievement_id yes data/mothership/achievements.json
mothership_ai_triggers csv-catalog csv replace_record trigger_id yes data/mothership/mothership_ai_triggers.csv
mothership_archives csv-catalog csv replace_record archive_id yes data/mothership/archives.csv
mothership_artifact_restoration csv-catalog csv replace_record restoration_rule_id yes data/mothership/artifact_restoration.csv
mothership_cannon_stat_profiles json-catalog json replace_record stat_profile_id yes data/mothership/mothership_cannon_stat_profiles.json
mothership_construction_phases csv-catalog csv replace_record phase_id yes data/mothership/construction_phases.csv
mothership_drone_worker_profiles json-catalog json replace_record profile_id yes data/mothership/mothership_drone_worker_profiles.json
mothership_economy_consoles json-catalog json replace_record profile_id yes data/mothership/economy_console.json
mothership_fabrication_recipes csv-catalog csv replace_record recipe_id yes data/mothership/fabrication_recipes.csv
mothership_imprint_locking_profiles json-catalog json replace_record profile_id yes data/mothership/imprint_locking_profiles.json
mothership_museum_milestones csv-catalog csv replace_record milestone_id yes data/mothership/museum_milestones.csv
mothership_onboarding json-catalog json replace_record onboarding_id yes data/mothership/onboarding.json
mothership_plant_baselines json-catalog json replace_record plant_id yes data/mothership/mothership_plant_baselines.json
mothership_production_line_tiers csv-catalog csv replace_record line_id, line_tier yes data/mothership/production_line_tiers.csv
mothership_production_lines csv-catalog csv replace_record line_id yes data/mothership/production_lines.csv
mothership_recurrence_launch_profiles json-catalog json replace_record profile_id yes data/mothership/recurrence_launch_profiles.json
mothership_recurrence_wreck_salvage json-catalog json replace_record profile_id yes data/mothership/recurrence_wreck_salvage.json
mothership_refined_resources csv-catalog csv replace_record resource_type_id yes data/mothership/refined_resources.csv
mothership_refinery_recipes csv-catalog csv replace_record recipe_id yes data/mothership/refinery_recipes.csv
mothership_resonance_discharge_paths csv-catalog csv replace_record path_id yes data/mothership/resonance_discharge_paths.csv
mothership_return_card_composers json-catalog json replace_record composer_id yes data/mothership/return_card_composers.json
mothership_signal_weights json-catalog json replace_record profile_id yes data/mothership/signal_weights.json
mothership_singularity_core_bindings csv-catalog csv replace_record binding_id yes data/mothership/singularity_core_bindings.csv
mothership_singularity_core_slots csv-catalog csv replace_record slot_id yes data/mothership/singularity_core_slots.csv
mothership_site_disturbance_profiles json-catalog json replace_record profile_id yes data/mothership/site_disturbance_curves.json
mothership_site_research_discounts csv-catalog csv replace_record site_id, research_branch_id yes data/mothership/site_research_discounts.csv
mothership_stations json-catalog json replace_record station_id yes data/mothership/mothership_stations.json
mothership_task_profiles json-catalog json replace_record task_profile_id yes data/mothership/mothership_task_profiles.json
mothership_tiers csv-catalog csv replace_record tier yes data/mothership/tiers.csv
mothership_visual_profiles json-catalog json replace_record profile_id yes data/mothership/visual_profiles.json
mothership_voyage_profiles json-catalog json replace_record charge_class_id yes data/mothership/mothership_voyage_profiles.json
tech_tree csv-catalog csv replace_record id yes data/mothership/tech_tree.csv

planets_sites

Planets, sites, geography, and overview content.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
culture_adjacency json-catalog json replace_record culture_id yes sites data/sites/culture_adjacency.json
planet_coordinate_systems json-catalog json replace_record coordinate_system_id yes data/planets/coordinate_systems.json
planet_map_profiles json-catalog json replace_record map_profile_id yes data/planets/map_profiles.json
planet_overview_audio_bindings json-catalog json replace_record binding_id yes data/planet_overview/audio_bindings.json
planet_overview_focus_regions json-catalog json replace_record focus_region_id yes data/planet_overview/focus_regions.json
planet_overview_layer_definitions json-catalog json replace_record layer_id yes data/planet_overview/layer_definitions.json
planet_overview_legend json-catalog json replace_record legend_id yes data/planet_overview/legend.json
planet_overview_map_visual_descriptors json-catalog json replace_record map_descriptor_id yes data/planet_overview/map_visual_descriptors.json
planet_overview_marker_profiles json-catalog json replace_record profile_id yes data/planet_overview/marker_profiles.json
planet_overview_markers json-catalog json replace_record marker_id yes data/planet_overview/markers.json
planet_overview_minimap_config json-catalog json replace_record minimap_config_id yes data/planet_overview/minimap_config.json
planet_overview_objectives json-catalog json replace_record objective_id yes data/planet_overview/objectives.json
planet_overview_special_missions json-catalog json replace_record mission_id yes data/planet_overview/special_missions.json
planet_overview_starting_sites json-catalog json replace_record starting_site_id yes data/planet_overview/starting_sites.json
planet_overview_strategic_nodes json-catalog json replace_record node_id yes data/planet_overview/strategic_nodes.json
planet_overview_timed_events json-catalog json replace_record event_id yes data/planet_overview/timed_events.json
planet_overview_travel_policies json-catalog json replace_record travel_policy_id yes data/planet_overview/travel_policies.json
planet_overview_unlock_rules json-catalog json replace_record unlock_rule_id yes data/planet_overview/unlock_rules.json
planets json-catalog json replace_record planet_id yes data/planets/planets.json
regions csv-catalog csv replace_record region yes sites data/regions/region_neighbors.csv
site_economics csv-catalog csv replace_record site_id yes sites data/sites/site_economics.csv
site_id_aliases json-catalog json replace_record alias_id yes sites data/sites/site_id_aliases.json
site_readiness csv-catalog csv replace_record site_id yes site_economics, sites data/sites/site_readiness.csv
site_region_bindings csv-catalog csv replace_record site_id yes regions, sites data/sites/site_region_bindings.csv
sites csv-catalog csv replace_record id yes data/sites.csv
wonders csv-catalog csv replace_record id yes data/wonders/wonders.csv

quotes_media

Quotations and player-facing item media.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
historical_item_media json-file json replace_record content_type, content_id yes data/config/historical_item_media.json
quote_authors csv-catalog csv replace_record AUTHOR_ID yes data/quotes/authors.csv
quotes csv-catalog csv replace_record QUOTE_ID yes quote_authors data/quotes/quotes.csv

story

Story beats, dialogue, and narrative content.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
narrative csv-catalog csv merge_by_id id data/narrative/narrative.csv
story_achievements json-catalog json replace_record achievement_id no data/story_spine/story_achievements.json
story_arcs json-catalog json replace_record arc_id no data/story_spine/story_arcs.json
story_beats json-catalog json replace_record beat_id no data/story_spine/story_beats.json
story_haptic_patterns json-catalog json replace_record pattern_id no data/story_spine/story_haptic_patterns.json
story_localization_keys json-catalog json replace_record key_id no data/story_spine/story_localization_keys.json
story_runtime_events json-catalog json replace_record event_id no data/story_spine/story_runtime_events.json

ui

Screens, layout families, icons, palettes, and cameras.

Type Declaration Format Merge rule Key fields Deletion Dependencies Example file
camera_presets csv-catalog csv merge_by_id id data/config/camera_presets.csv
icon_culture_sigils json-file json merge_object yes data/config/icon_culture_sigils.json
icon_domain_binding_rules json-file json merge_object yes data/config/icon_domain_binding_rules.json
icon_route_token_sets json-file json merge_object yes icon_state_overlays, icon_tokens data/config/icon_route_token_sets.json
icon_rtl_policy json-file json merge_object yes data/config/icon_rtl_policy.json
icon_size_tiers json-file json merge_object yes data/config/icon_size_tiers.json
icon_state_overlays json-file json merge_object yes data/config/icon_state_overlays.json
icon_tokens json-file json merge_object yes data/config/icon_tokens.json
icon_vfx_bindings json-file json merge_object yes data/config/icon_vfx_bindings.json
info_panels json-file json replace_record content_type yes data/info_panels/info_panels.json
resolution_profiles json-file json merge_object yes data/config/resolution_profiles.json
surface_visual_modules json-catalog json replace_record module_id yes data/visual_language/surface_visual_modules.json
themes json-file json replace_record name yes data/config/themes.json
ui_audio_mappings json-file json replace_record id yes audio_buses, audio_events data/config/ui_audio_mappings.json
ui_chrome_styles json-catalog json replace_record style_id yes data/ui/ui_chrome_styles.json
ui_companion_panel_profiles json-file json replace_record profile_id yes data/ui/companion/companion_panel_profiles.json
ui_feedback_config json-file json merge_by_id data/config/ui_feedback_config.json
ui_hud_layouts json-file json replace_record hud_id yes data/config/ui_hud_layouts.json
ui_navigation_specs json-file json replace_record flow_id yes data/ui/ui_navigation_specs.json
ui_responsive_layout_profiles json-file json replace_record layout_family_id yes data/ui/ui_responsive_layout_profiles.json
ui_screen_specs json-file json replace_record screen_id yes data/ui/ui_screen_specs.json
ui_transition_defaults json-file json merge_object yes data/config/ui_transition_defaults.json
ui_transitions json-file json replace_record transition_id yes data/config/ui_transitions.json
ui_upgrade_config json-file json merge_object yes data/config/ui_upgrade_config.json
ui_widget_registry json-file json replace_record widget_id yes data/ui/ui_widget_registry.json
wonder_silhouette_specs json-file json merge_object yes data/config/wonder_silhouette_specs.json