Jammerbam-Build_Resource_Requirements icon

Build Resource Requirements

Mod to allow configurable resource requirements depending on the build category

Last updated 2 hours ago
Total downloads 5
Total rating 0 
Categories Tweaks Building Bog Witch Update
Dependency string Jammerbam-Build_Resource_Requirements-1.1.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202

README

Build Resource Requirements

Build Resources Requirements is a mod that allows control over whether resources are required for specific build categories, tools, and pieces. This includes support for vanilla and modded categories, and configuration syncing. I wrote this mod because I didn't really like how the world modifier for disabling resources turned off everything, including the cultivator.

Features

  • Category-Based Resource Requirements: Configure resource requirements for specific build categories (e.g., Crafting, Furniture, Misc.).
  • Tool-Specific Configurations: Enable or disable resource requirements for tools such as the Cultivator and Hoe.
  • Piece Exceptions: Specify individual pieces that should never require resources, regardless of their category.
  • Modded Category Support: Automatically detects and configures newly added modded categories.
  • Skill Based Resource Requirements: Configurable option to reduce resource requirements depending on the players crafting skill level.
  • Multiplayer Synchronization: Ensures all players share the same configuration when connected to a multiplayer server.

Installation

  1. Install BepInEx.
  2. Extract the BuildResourcesMod.dll into the BepInEx/plugins folder.
  3. Launch Valheim to generate the configuration file.

Configuration

The configuration file is generated in BepInEx/config/Jammerbam.buildresourcesmod.cfg.

Categories

These are the available categories and their defaults:

[Categories]
MiscRequiresResources = true
CraftingRequiresResources = true
FurnitureRequiresResources = false
BuildingWorkbenchRequiresResources = false   (Build)
BuildingStonecutterRequiresResources = false (Heavy Building)
CultivatorRequiresResources = true
HoeRequiresResources = true

Exceptions

Individual pieces can be added to the exceptions list:

[Exceptions]
## Comma-separated list of pieces that are always buildable.
# Setting type: String
# Default value: 
PieceExceptions = darkwood_wolf,darkwood_raven,wood_dragon1

Add piece names as a comma-separated list. Exceptions override category-based settings and never require resources.

Skill Based Resource Reduction

The mod has an option to enable a feature to reduce resource requirements depending on the players crafting sill level.
This works as a percentage, so if the player has a crafting skill of 50, the required resources will be 50% less.
There is also another option to completly disable resource requirements if the player has a crafting skill of 100. If this option is disabled, all pieces will require at least 1 of each required item.

Modded Categories

The mod will detect modded categories and add them to the config file. These categories are usually added when you load a world. If you want to configure a modded category, load a world, then close the game.
Currently, the way that modded categories are displayed in the config file is by a numerical value, which is assigned when it is loaded in the game.

## Require resources for modded category: $category_9
# Setting type: Boolean
# Default value: true
9RequiresResources = true

If you need to find the category, enable the debugging option, and select a piece from the category. In the log it should show something like this:

[Info   : Unity Log] [BuildResourcesMod] Piece 'Armory_TW' in category '9' requires resources: True

You can also use this same method to find the name of a piece to add it to exceptions.

Disclaimer

This is my very first mod, and my first time coding in C#. There are things that will inevitably be broken as I haven't been able to test for all scenarios. Please report if anything goes wrong so I can fix it.

Planned Changes

  • Fix the naming scheme in the config to make it more user-friendly.
  • Continue updating and support for game updates.

Credits

Almost all of the code was written by me however the config syncing is powered by: https://github.com/blaxxun-boop/ServerSync