Skip to content

Schema Reference

DINOForge uses JSON Schema and YAML Schema definitions to validate all pack content before runtime. Schemas live in the schemas/ directory at the repository root.

Available Schemas

SchemaFileDescription
Pack Manifestpack-manifest.schema.yaml / .jsonRequired metadata for every pack
Unitunit.schema.yaml / .jsonUnit definitions with stats, weapons, behavior
Factionfaction.schema.yaml / .jsonFaction identity, roster, economy, visuals
Buildingbuilding.schema.jsonStructure definitions
Weaponweapon.schema.jsonWeapon class definitions
Projectileprojectile.schema.jsonProjectile behavior and visuals
Doctrinedoctrine.schema.jsonCombat doctrine modifiers
Skillskill.schema.jsonUnit abilities and special actions
Wavewave.schema.jsonEnemy wave composition templates
Squadsquad.schema.jsonSquad formation definitions
Stat Overridestat-override.schema.jsonBalance mod stat modifications
Scenarioscenario.schema.jsonScenario scripting, conditions, victory/loss
Economy Profileeconomy-profile.schema.jsonResource rates, trade, economy balance
Universe Bibleuniverse-bible.jsonTotal conversion lore, naming, style guides
Asset Manifestasset-manifest.schema.jsonIntake manifest with technical and IP provenance states

Pack Manifest

Every pack must include a pack.yaml conforming to this schema.

Required Fields

FieldTypePatternDescription
idstring^[a-z][a-z0-9-]*$Unique pack identifier
namestringHuman-readable name
versionstringsemverSemantic version (0.1.0)
framework_versionstringrangeCompatible DINOForge range
authorstringAuthor name
typeenumcontent, balance, ruleset, total_conversion, utility

Optional Fields

FieldTypeDefaultDescription
descriptionstringBrief description
depends_onstring[][]Required pack IDs
conflicts_withstring[][]Incompatible pack IDs
load_orderinteger100Load priority (lower = earlier)
game_versionstringCompatible DINO version range
loadsobjectContent declarations
overridesobjectRegistry entries this pack overrides
asset_policyobjectAsset sourcing metadata

Content Declarations (loads)

yaml
loads:
  factions: []
  units: []
  buildings: []
  weapons: []
  projectiles: []
  effects: []
  doctrines: []
  audio: []
  visuals: []
  localization: []
  wave_templates: []
  tech_nodes: []
  scenarios: []

Unit Schema

Units define combat entities with stats, weapons, defense tags, and behavior.

Required Fields

FieldTypeDescription
idstring (^[a-z][a-z0-9_]*$)Unique unit identifier
display_namestringShown in-game
unit_classenumCombat classification
faction_idstringOwning faction
statsobjectHP, damage, range, speed, cost

Unit Classes

MilitiaLight, CoreLineInfantry, EliteLineInfantry, HeavyInfantry, Skirmisher, AntiArmor, ShockMelee, SwarmFodder, FastVehicle, MainBattleVehicle, HeavySiege, Artillery, WalkerHeavy, StaticMG, StaticAT, StaticArtillery, SupportEngineer, Recon, HeroCommander, AirstrikeProxy, ShieldedElite

Stats Block

yaml
stats:
  hp: 100          # minimum: 1
  damage: 15       # minimum: 0
  armor: 0         # default: 0
  range: 6         # minimum: 0
  speed: 3.5       # minimum: 0
  cost:
    resource_1: 30
    resource_2: 10
    resource_3: 0
    resource_4: 0
    population: 1
  accuracy: 0.7    # 0.0 - 1.0
  fire_rate: 1.0   # minimum: 0
  morale: 100

Defense Tags

Unarmored, InfantryArmor, HeavyArmor, Fortified, Shielded, Mechanical, Biological, Heroic

Behavior Tags

HoldLine, AdvanceFire, Charge, Kite, Swarm, SiegePriority, AntiStructure, AntiMass, AntiArmor, MoralePressure

Faction Schema

Factions define a complete army identity: roster, economy modifiers, visuals, and audio.

Required Sections

SectionDescription
factionIdentity: id, theme, archetype, display name
economyGather bonus, upkeep, research/build speed
armyMorale style, unit cap, elite cost, spawn rate
rosterMaps abstract roles to concrete unit IDs
buildingsMaps abstract building roles to concrete IDs
visualsColors, projectile pack, UI skin
audioWeapon, structure, ambient, music packs

Themes

starwars, modern, futuristic, fantasy, custom

Archetypes

order, industrial_swarm, asymmetric, custom

Roster Slots

cheap_infantry, line_infantry, elite_infantry, anti_armor, support_weapon, recon, light_vehicle, heavy_vehicle, artillery, hero_commander, spike_unit

Weapon Schema

Weapon classes used in the weapon field of unit definitions:

BallisticLight, BallisticHeavy, BlasterLight, BlasterHeavy, ExplosiveAT, ExplosiveHE, BeamPrecision, FlameArea, MissileGuided, SuppressionWeapon, MeleeLight, MeleeHeavy

Released under the MIT License.