Quick Start
Create a minimal balance pack in under 5 minutes.
1. Create the Pack Directory
bash
mkdir -p packs/my-balance-mod2. Write the Manifest
Create packs/my-balance-mod/pack.yaml:
yaml
id: my-balance-mod
name: My Balance Mod
version: 0.1.0
framework_version: ">=0.1.0 <1.0.0"
author: Your Name
type: balance
description: Doubles archer damage and increases wall HP
depends_on: []
conflicts_with: []
loads:
units:
- archer_buffed
buildings: []3. Define a Unit Override
Create packs/my-balance-mod/units/archer_buffed.yaml:
yaml
id: archer_buffed
display_name: Elite Archer
unit_class: CoreLineInfantry
faction_id: vanilla
tier: 1
stats:
hp: 100
damage: 25 # doubled from vanilla ~12
range: 8
speed: 3.5
cost:
resource_1: 40
resource_2: 10
population: 1
accuracy: 0.8
fire_rate: 1.2
weapon: BallisticLight
defense_tags:
- Unarmored
- Biological
behavior_tags:
- HoldLine
- AdvanceFire
vanilla_mapping: archer4. Validate the Pack
bash
dotnet run --project src/Tools/PackCompiler -- validate packs/my-balance-modThe validator checks:
- Manifest schema conformance
- Required fields present
- ID format (
^[a-z][a-z0-9-]*$for packs,^[a-z][a-z0-9_]*$for units) - Version format (semver)
- Dependency resolution
- Asset reference integrity
5. Build the Pack
bash
dotnet run --project src/Tools/PackCompiler -- build packs/my-balance-modThis produces a packaged artifact ready for installation.
What Happened?
You just:
- Defined a pack manifest with explicit metadata
- Created a unit definition following the unit schema
- Validated it against DINOForge's schema system
- Built a distributable pack artifact
No C# code. No Harmony patches. No reverse engineering. Just YAML.
Next Steps
- Creating Packs — Full guide to pack authoring
- Schema Reference — All content type schemas
- Warfare Overview — Build faction-themed packs