


Easy way to configure recipes, items, pieces and effects by organized reference system. Item cloning with visual tweaks and localization.
Weight, stack, amount multiplier for items. Shows comfort group and value in hammer tab.
Small qol of marking the comfort number and comfort group within hammer tab.
DataForge also includes a few optional helpers for modpack operation:
It is built around a simple workflow:
The goal is to make large modpacks easier to tune without turning every item, recipe, or piece into a wall of config.
DataForge can edit common item fields, including:
Example:
- item: SwordIron
override: true
weight: 0.8
durability: 250, 50
damage:
slash: 55, 0
primaryAttack:
cost: 12
Clone example:
- item: SwordIronHeavy
override: true
cloneFrom: SwordIron
name: Heavy iron sword
weight: 1.4
visual:
icon: auto
iconRotation: 23, 51, 25.8
material: blackmetal
color: 0.8, 0.85, 1, 1
emission: 0.15
damage:
slash: 72, 0
Recipes use the result prefab as the main key. If the same result has multiple recipes, reference files use suffixes such as SwordIron;1 and SwordIron;2.
DataForge supports:
Example:
- recipe: SwordIron
override: true
craftingStation: forge, 2
resources:
- Iron: 20, 10
- Wood: 5
Piece overrides focus on the fields that are most useful for modpack tuning:
stationExtension can add a StationExtension component to a piece that does not already have one. DataForge also removes StationExtension components it added when they are no longer configured; native/original extension components are restored from baseline instead of being deleted.Example:
- piece: wood_wall
override: true
pieceTable: Hammer
category: Building
sortOrder: 80
needStation: None
health: 250
resources:
- Wood: 4
Component example:
- piece: smelter
override: true
smelter:
input: Coal, 20, 10
output: 2, 30
conversions:
- CopperOre: Copper
- TinOre: Tin
Status effects can be edited or cloned with compact fields for duration, cooldown, icons, messages, stats, skill modifiers, damage modifiers, and effect prefabs.
Example:
- effect: Rested
override: true
time: 600, 0
stats:
regenMultiplier: 1, 1.5, 1
raiseSkill: Swords, 1.0
attackDamage: Swords, 1.25
damageTakenModifiers:
fire: Resistant
poison: Weak
DataForge uses:
BepInEx/config/DataForge/
Main files:
items.yml
items_*.yml
items.reference.yml
recipes.yml
recipes_*.yml
recipes.reference.yml
effects.yml
effects_*.yml
effects.reference.yml
pieces.yml
pieces_*.yml
pieces.reference.yml
z_materials.reference.txt
z_resourcemap.txt
localization/*.yml
icon/*.png
Files like items_extra.yml, recipes_balance.yml, effects_magic.yml, and pieces_building.yml are valid override files. This lets you split large configs by theme without changing the schema.
Reference files are generated automatically when game data is ready and the client/server is the source of truth.
Reference files are meant for browsing and copy-paste edits:
Full scaffold files are generated only by command:
dataforge:full item
dataforge:full recipe
dataforge:full effect
dataforge:full piece
dataforge:full all
Full scaffold files expose the supported field surface more completely and are useful when a reference entry hides a default value you want to override.
Server-synced localization files live in:
BepInEx/config/DataForge/localization/
Example:
$df_item_meadhealthtest: "Test item"
$df_item_meadhealthtest_description: "A test item cloned from major healing mead."
Use the token in an override field:
- item: MeadHealthtest
override: true
cloneFrom: MeadHealthMajor
name: $df_item_meadhealthtest
description: $df_item_meadhealthtest_description
You can also write direct text instead of a $ token.
Custom item icons are loaded from:
BepInEx/config/DataForge/icon/
Use 256x256 PNG files when possible. ServerSync synchronizes the YAML value, but each client still needs the same local PNG file.
z_materials.reference.txt is generated as a material lookup list for visual overrides.