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: usecommunityfor 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
- Develop and test the mod under
user://mods/local/your_mod/. - Add optional
workshop_tagsand apreview.pngat most 1 MB. - Open the Mods screen, select the local mod, and choose Publish to Workshop.
- Accept the Steam Workshop legal agreement if Steam requests it.
- Keep the
workshop_idwritten tomod.jsonafter 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, orno 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 |