BuildPiecesCustomized
Customize individual build pieces. Set properties globally such as rain, water, ash, lava damage immunity. Customize global material type properties.
About this mod Author’s original text
BuildPiecesCustomized
Customize individual Valheim build pieces, apply common properties globally, and adjust structural material properties.
Features
- Customize individual piece properties, including enabled state, name, description, requirements, placement rules, durability, targeting, and Hammer usage tags.
- Apply common properties globally through prefab lists.
- Change material support properties to build higher or farther.
- Load JSON, YAML, and YML piece configuration files from the plugin directory or BepInEx/config/shudnal.BuildPiecesCustomized.
- Synchronize server-controlled configuration and reapply changes when configuration files change.
Hammer usage tags
Valheim 1.0 uses Piece.UsageTagFlags for the main Hammer build menu filters. BuildPiecesCustomized does not reassign legacy PieceCategory values.
Individual piece files can define usageTags:
usageTags:
- Building
- Doors
usageTags is a full replacement:
- If usageTags is omitted, the piece keeps its original usage tags.
- If usageTags is present, the listed built-in tags replace the current tag set.
- usageTags: clears all usage tags.
- Tag names are case-insensitive when loading.
- Only built-in Valheim Piece.UsageTagFlags names are supported. Numeric masks and custom runtime tags added by other mods are not supported.
- Unsupported custom tags remain untouched while usageTags is omitted. Setting usageTags replaces the mask with built-in tags only.
The generated Pieces and properties.md file contains the currently supported tag names, their localized in-game names, and the current tags of every discovered piece.
Bulk usage tag configuration
For centralized overrides, create Piece usage tags.yaml, Piece usage tags.yml, or Piece usage tags.json.
A single file can configure tags in both directions:
pieces:
wood_door:
- Building
- Doors
custom_piece:
tags:
Defense:
- h_drawbridge01
- hayzestake_01
The two sections have different semantics:
- pieces: prefab -> tags. The list fully replaces the piece's usage tags.
- tags: tag -> prefabs. The tag is added to every listed piece without removing its other tags.
The bulk usage-tag file has higher priority than individual piece files. Processing order is:
- Individual piece usageTags.
- Bulk pieces replacements.
- Bulk tags additions.
This allows a piece to receive a complete tag set in pieces and then receive additional shared tags from tags in the same file.
If more than one fixed-name bulk file is found, the last file in configuration search priority is used. The config directory is processed after the plugin directory.
The old Piece categories.json / YAML format is no longer supported.
Setting global values
There are several global lists set in the main config:
- Clip everything
- Allow in dungeons
- Can be removed
- Ash and lava immunity
- Heavy snow immunity
- Water and rain damage immunity
- Structural integrity
- Is roof
- Is leaky (non-roof)
- Disabled pieces
All lists are comma-separated prefab names. If a prefab is present in a global list, that value overrides the corresponding individual setting.
Use AllPieces to apply a supported global rule to every piece. Disabled pieces does not use AllPieces.
Material properties
Material groups provide multipliers for:
- Max support multiplier - support provided when grounded.
- Min support multiplier - minimum support before the piece breaks.
- Vertical stability multiplier - increases or decreases vertical building stability.
- Horizontal stability multiplier - increases or decreases horizontal building stability.
A value of 1.0 keeps the vanilla material behavior.
Automatically generated documentation
When the main menu or a world initializes, Pieces and properties.md is generated in BepInEx/config/shudnal.BuildPiecesCustomized.
It contains:
- Supported usageTags and their localized Hammer category names.
- The bulk usage-tag file format and precedence rules.
- Supported enum identifiers for other configurable propertie
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: