You are viewing a potentially older version of this package. View all versions.
sighsorry-DataForge-1.0.10 icon

DataForge

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.

Date uploaded a day ago
Version 1.0.10
Download link sighsorry-DataForge-1.0.10.zip
Downloads 84
Dependency string sighsorry-DataForge-1.0.10

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333

README

DataForge

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.

Included Quality-Of-Life Tweaks

DataForge also includes a few optional helpers for modpack operation:

  • show comfort values in the hammer build UI
  • highlight same comfort-group pieces while hovering a comfort piece
  • ignore station extension spacing checks
  • allow fireplaces to store extra fuel without changing the displayed vanilla max fuel
  • profile lobby-to-world startup timing while diagnosing slow joins

Workflow

It is built around a simple workflow:

  1. Let DataForge generate readable reference files from the loaded modpack.
  2. Copy only the entries you want to change into an override file.
  3. Edit the compact fields you care about.
  4. Use full scaffold files only when you need every supported field.

The goal is to make large modpacks easier to tune without turning every item, recipe, or piece into a wall of config.

Why Use It

  • Reference files are generated from the actual loaded game data, including vanilla and modded content.
  • Reference output omits common default values, so the files stay useful for browsing.
  • Override files are compact and hand-editable.
  • Full scaffold generation is available on demand for deep edits.
  • YAML payloads are server-synced, so server rules can drive client behavior.
  • Owner sections and resource-map sorting make large references easier to scan.
  • Cloning, material/icon tweaks, localization, and live-safe refreshes are handled in one place.
  • Several modpack stability helpers are included for common Valheim mod conflicts.

Supported Domains

Items

DataForge can edit common item fields, including:

  • name, description, weight, value, stack size, teleportability, floating behavior
  • durability, food values, armor, equip modifiers, damage, block values, attacks
  • status effects attached to equip, consume, attack, perfect block, or full adrenaline
  • item cloning from an existing prefab
  • visual overrides such as material, color, emission, custom icon, and auto icon rendering
  • item acquisition multipliers for drops, pickup, crafting, cooking, and smelting

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
    scale: 0.85
    material: blackmetal
    color: 0.8, 0.85, 1, 1
    emission: 0.15
  damage:
    slash: 72, 0

Recipes

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:

  • compact crafting station syntax
  • compact resource syntax
  • recipe amount
  • recipe removal
  • one-of ingredient recipes
  • quality-based output bonus fields

Example:

- recipe: SwordIron
  override: true
  craftingStation: forge, 2
  resources:
  - Iron: 20, 10
  - Wood: 5

Pieces

Piece overrides focus on the fields that are most useful for modpack tuning:

  • build table and category placement
  • sort order inside a build tab
  • required crafting station
  • build resources
  • health
  • comfort amount and comfort group
  • visual material overrides, plus prefab scale overrides for newly placed pieces
  • selected component configuration for containers, crafting stations, extensions, smelters, cooking stations, fermenters, sap collectors, and beehives
  • stationExtension can add a StationExtension component to a piece that does not already have one. stationExtension: None can disable an existing extension, and native/original extension components are restored from baseline instead of being deleted.
  • craftingStation can edit an existing station component or add one to a piece that does not already have one. If the field is removed later, DataForge removes only the station component it added.

Example:

- piece: wood_wall
  override: true
  pieceTable: Hammer
  category: Building
  sortOrder: 80
  needStation: None
  health: 250
  visual:
    scale: 2
    material: amber
  resources:
  - Wood: 4

Component example:

- piece: smelter
  override: true
  smelter:
    input: Coal, 20, 10
    output: 2, 30
    conversions:
    - CopperOre: Copper
    - TinOre: Tin

Status Effects

Status effects can be edited or cloned with compact fields for duration, cooldown, icons, messages, stats, skill modifiers, damage modifiers, and effect prefabs.

DataForge also adds tooltip lines for attackDamage and raiseSkill, using localization tokens from localization/English.yml.

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

Files

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 And Scaffold

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:

  • common defaults are omitted
  • entries are grouped by owner section when possible
  • item and recipe references use resource-map sorting
  • piece references use tier sorting

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.

Localization

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.

DataForge creates English tooltip tokens for effect fields such as attackDamage and raiseSkill. You can edit them in English.yml:

$df_se_tooltip_attack_damage: "{0} attack damage: <color=orange>x{1}%</color>"
$df_se_tooltip_raise_skill: "{0} skill XP: <color=orange>{1}</color>"

Icons And Materials

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.

visual.scale changes the item model's attach/drop mesh scale without shrinking icon: auto snapshots, so small world models can still keep readable inventory icons.

Status effects can reuse an item icon with icon: item:ItemPrefabName, including DataForge-generated icon: auto item icons.

Github

https://github.com/sighsorry1029/DataForge

CHANGELOG

Changelog

1.0.10

  • Fixed item attack health percentage costs being clamped to 1%, which could make BloodMagic weapons consume far less health than intended when applied through DataForge.
  • Clarified item attack cost comments so the fourth value is documented as a percent value, e.g. 40 means 40%.

1.0.9

  • Added visual.scale for item attach/drop meshes while keeping icon: auto snapshots readable.
  • Added status-effect icon reuse with icon: item:ItemPrefabName.
  • Removed item attack projectile and spawnOnTrigger YAML fields to keep attack overrides focused.

1.0.8

  • Added item attack projectile overrides for primary and secondary attacks.
  • Added full scaffold and reference output for projectile: prefab, velocity, velocityMin, count, accuracy, accuracyMin.
  • Kept default projectile tuples hidden from compact reference files.

1.0.7

  • Added spawnOnTrigger support for primary and secondary item attacks.
  • Improved auto icon cache invalidation with renderer fingerprints and stale cache pruning.
  • Fixed auto icon snapshots blending together when multiple icons are generated in the same startup pass.
  • Clarified recipe YAML header examples for result amounts and suffixed recipe keys.

1.0.6

  • Changed DataForge's VNEI compatibility lookup to resolve only the required VNEI types from the VNEI plugin assembly.
  • Reduced HarmonyX reflection warnings caused by VNEI's optional EpicLoot compatibility type when EpicLoot is not installed.

1.0.5

  • Delayed item, recipe, piece, and status-effect override application until the game data is fully ready.
  • Improved status-effect VFX/SFX prefab resolution for effects referenced by other status effects.
  • Suppressed missing custom icon warnings on headless dedicated servers.
  • Improved status-effect clone cleanup and refresh across reloads and world transitions.

1.0.4

  • Added tooltip lines for status-effect attack damage and skill experience modifiers.
  • Added localization defaults and improved missing localization fallback for status-effect tooltips.
  • Added piece scale and visual material overrides, plus stationExtension: None support.
  • Added automatic VNEI reindexing after DataForge item, recipe, and piece changes.
  • Improved piece crafting-station component overrides for adding and removing DataForge-managed stations.

1.0.3

  • Added a client-side hammer highlight for crafting stations and their station extensions.
  • Changed the weight multiplier option to apply to all item weights while preserving explicit item YAML weight overrides.
  • Kept stack multiplier behavior limited to stackable items.

1.0.2

  • Changed the mod author/GUID to sighsorry.DataForge.

1.0.1

  • Removed dynamic loading of UnityEngine.ImageConversionModule from item and status-effect icon loaders.
  • Added a static UnityEngine.ImageConversionModule build reference so custom icon loading and auto-icon cache PNG export keep working without runtime module probing.
  • Improved package validation compatibility for Thunderstore by avoiding dynamic Unity module loading.
  • Added status-effect ownership interop support so DataForge-owned status effects can be treated as exclusive by companion mods.
  • Improved hammer comfort UI behavior, including same comfort-group highlighting and hidden-piece masking compatibility.
  • Documented stationExtension add/remove behavior for piece overrides.

1.0.0

  • Initial public release of DataForge.