Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
RecipeManager
A very lightweight recipe and piece modification framework
| Date uploaded | 3 hours ago |
| Version | 0.6.1 |
| Download link | MidnightMods-RecipeManager-0.6.1.zip |
| Downloads | 62 |
| Dependency string | MidnightMods-RecipeManager-0.6.1 |
This mod requires the following mods to function
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.2332ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.26.1ValheimModding-YamlDotNet
Shared version 16.3.0 of YamlDotNet from Antoine Aubry and contributors, net47 package for use in Valheim mods. Maintained by the ValheimModding team.
Preferred version: 16.3.0README
RecipeManager
This is a lightweight recipe modification tool. You can define recipes to Add, Modify, Delete etc. It does not use any patches, and does not run constantly.
If you want to do more than modify recipes and pieces check out WackysDB
In Valheim a recipe is something that is crafting at a crafting station, or cooking station etc. For example, to make wood arrows you use a crafting recipe from the workbench. Building pieces (built with the hammer) are not recipes, furnace conversions (1 ore for 1 ingot etc) are not recipes.
Pieces are almost anything that is placed. Everything built with the hammer, plants placed with the cultivator, placable food etc.
Features
- Add recipes
- Modify recipes
- Delete recipes
- Disable Pieces
- Enable Pieces
- Modify Pieces
- Add new items by cloning an existing item, with their own name, stats, icon and textures
- Modify the stats of items that already exist, including vanilla weapons and armor
- Dump any prefab's icons and textures to disk so you can repaint them
Recipes can be manipulated and added through yaml. All of the existing recipes can also be dumped to a file, in the same format to help you find and understand existing recipes.
Its recommended to use a syntax highlighting yaml editor when modifying recipes to help ensure that your yaml is valid. yamlChecker is a free online linter you can use to validate also.
Recipe modifications are stored at \BepInEx\config\RecipeManager\Recipes.yaml. This file will be generated on the first run if it does not already exist.
Yaml configuration example
#################################################
# Recipe Manipulation Config
#################################################
recipeModifications: # <- This is the top level key, all modifications live under this, it is required.
DisableWoodArrow: # <- This is the modification name, its primarily for you to understand what this modification does SHOULD BE UNIQUE
action: Disable # <- This is the action it should be one of [Disable, Delete, Modify, Add, Enable]
prefab: ArrowWood # <- This is the prefab that the modification will target
AddNewWoodArrowRecipe:
action: Add
prefab: ArrowWood
recipeName: Recipe_ArrowWood # <- optional, specifying the recipe name allows matching and mutating multiple recipes targeting the same prefab
craftedAt: Workbench # <- The crafting station that should craft this recipe, leave it empty or invalid for handcrafting
minStationLevel: 2 # <- This is the required crafting station level for discovery AND crafting
recipe: # <- When performing [Modify] or [Add] you should define a recipe
anyOneResource: false # <- This makes the recipe only require one ingrediant, first from the top will be used.
ingredients: # <- Ingrediants in the recipe, is an array
- prefab: Wood # <- Prefab that this ingrediant requires
craftCost: 2 # <- The amount of this ingrediant it takes to craft the recipe
upgradeCost: 0 # <- The amount of this ingrediant it takes to upgrade the item
- prefab: Feathers
craftCost: 2
upgradeCost: 0
DeleteTrollHideArmorRecipe:
action: Delete
prefab: CapeTrollHide
ModifyTrollHideChestRecipe:
action: Modify
prefab: ArmorTrollLeatherChest
craftedAt: Workbench
minStationLevel: 1
recipe:
anyOneResource: false
ingredients:
- prefab: TrollHide
craftCost: 4
upgradeCost: 2
Commands
This mod adds two new commands which can be used to speed up recipe modification.
RM_Recipes_Reload - This reloads all recipe modifications that are found.
RM_Recipes_PrintAll - This prints all recipes currently stored in the object DB (including modifications), this file is ignored.
RM_Pieces_Reload - This reloads all piece modifications that are found.
RM_Pieces_PrintAll - This prints all pieces to a debug file (including modifications), this file is ignored.
RM_Conversion_Reload - This reloads all conversion modifications that are found.
RM_Conversion_PrintAll - This prints all conversions to a debug file, this file is ignored.
RM_Items_Reload - This reloads item additions and modifications. Stats, names, icons and textures are re-applied straight away; adding or removing an item needs a restart.
RM_Items_PrintAll - This prints the items in the object DB, with the stats they currently have, to a reference file, this file is ignored. RM_Items_PrintAll <text> only prints the items whose prefab name contains <text>.
RM_Textures_Dump <prefabName> - This dumps a prefab's icons and material textures to \BepInEx\config\RecipeManager\Textures\<prefabName>\ as PNGs.
Commands require enabling the in-game console.
If you are using Thunderstore Mod Manager or R2 Modmanager, you can enabled the console by selecting your valheim profile, going to settings (on the far left), debugging tab, set launch parameters and add --console
It is not recommended to use Vortex mod manager, however using vortex hardlink or copy deployments you can launch from steam using BepinEx with a --console launch parameter. To do so right click on the game in your library, manage, general, at the bottom add --console to the launch options.
Multiple Config files
All files which contain Recipes.yaml in \BepInEx\config\RecipeManager\ will be considered recipe files (except ObjectDBRecipes.yaml).
For example this means that:
Forge_Recipes.yamlis validSoupStationStuff.yamlis not valid and will not be loaded butSoupStationStuffRecipes.yamlis.
All files which contain Pieces.yaml in \BepInEx\config\RecipeManager\ will be considered piece modifications and loaded.
For example this means that:
CultivatorPieces.yamlis validCultivator.yamlis not valid and will not be loaded
All files which contain Items.yaml in \BepInEx\config\RecipeManager\ will be considered item additions and loaded (except ObjectDBItems.yaml).
For example this means that:
Food_Items.yamlis validFood.yamlis not valid and will not be loaded
Recipe Examples
The mod ships with a default example recipe file which will provide you similar explanations to what is listed above. You can find the recipe file after starting up your game with the mod installed in you BepInEx\config\RecipeManager folder.
R2modman or Thunderstore mod manager will also detect this file as an editable config file and it can be edited or opened directly from the "Edit Config" menu, search for Recipes.yaml.
The only file that is will be used to load recipes is Recipes.yaml other yaml files in that directory will not be loaded.
Add a craftable chain (replace Chain-Manager)
Yaml example
recipeModifications:
CraftableChainRecipe:
action: Add
prefab: Chain
craftedAt: forge
minStationLevel: 4
craftAmount: 1
recipe:
anyOneResource: false
ingredients:
- prefab: Iron
craftCost: 2
upgradeCost: 0
Disable recipes you don't want from vanilla or other mods (disable recipes from Southsil Armors)
Yaml example
recipeModifications:
DisableNeckHelm:
action: Disable
prefab: neckhelm
DisableNeckChest:
action: Disable
prefab: neckchest
DisableNeckLegs:
action: Disable
prefab: necklegs
Increase the bronze yield (replace triple bronze)
Yaml example
recipeModifications:
Recipe_Bronze:
action: Modify
prefab: Bronze
recipeName: Recipe_Bronze
craftedAt: forge
minStationLevel: 1
craftAmount: 3
recipe:
anyOneResource: false
ingredients:
- prefab: Copper
craftCost: 2
upgradeCost: 1
- prefab: Tin
craftCost: 1
upgradeCost: 1
Recipe_Bronze5:
action: Modify
prefab: Bronze
recipeName: Recipe_Bronze5
craftedAt: forge
minStationLevel: 1
craftAmount: 15
recipe:
anyOneResource: false
ingredients:
- prefab: Copper
craftCost: 10
upgradeCost: 1
- prefab: Tin
craftCost: 5
upgradeCost: 1
Move a recipe from one crafting station to another (Custom mead from Honey+)
Yaml example
recipeModifications:
custom_item_meadbase_damage:
action: Modify
prefab: HoneyMeadBaseDamage
recipeName: $custom_item_meadbase_damage
craftedAt: piece_cauldron
Piece Examples
Enables all of the holiday building pieces
Yaml example
pieceModifications:
enable_mistletoe:
action: Enable
prefab: piece_mistletoe
enable_jackoturnip:
action: Enable
prefab: piece_jackoturnip
enable_yuletree:
action: Enable
prefab: piece_xmastree
enable_yulecrown:
action: Enable
prefab: piece_xmascrown
enable_yulegarland:
action: Enable
prefab: piece_xmasgarland
enable_gift1:
action: Enable
prefab: piece_gift1
enable_gift2:
action: Enable
prefab: piece_gift2
enable_maypole:
action: Enable
prefab: piece_maypole
Makes the kiln cost 100 stone, but only 1 surtling core
Yaml example
pieceModifications:
expensive_kiln:
action: Modify
prefab: charcoal_kiln
requirements:
- prefab: Stone
amount: 100
- prefab: SurtlingCore
amount: 1
Removes the stonecutter as a buildable piece
Yaml example
pieceModifications:
remove_stonecutter:
action: Disable
prefab: piece_stonecutter
Conversion Examples
Makes the charcoal kiln take wood, finewood and corewood
Yaml example
conversionModifications:
charcoal_kiln:
action: modify
prefab: charcoal_kiln
conversions:
- fromPrefab: Wood
toPrefab: Coal
amount: 2
- fromPrefab: FineWood
toPrefab: Coal
amount: 2
- fromPrefab: RoundLog
toPrefab: Coal
amount: 2
maxOres: 50
conversionTime: 3
Makes the blast furnance take all ores, increases its holding size, and changes the time it takes to smelt an item.
Yaml example
conversionModifications:
blastfurnace:
prefab: blastfurnace
action: modify
conversions:
- fromPrefab: FlametalOreNew
toPrefab: FlametalNew
amount: 1
- fromPrefab: BlackMetalScrap
toPrefab: BlackMetal
amount: 1
- fromPrefab: CopperOre
toPrefab: Copper
amount: 1
- fromPrefab: IronOre
toPrefab: Iron
amount: 1
- fromPrefab: IronScrap
toPrefab: Iron
amount: 1
- fromPrefab: BronzeScrap
toPrefab: Bronze
amount: 1
- fromPrefab: TinOre
toPrefab: Tin
amount: 1
- fromPrefab: SilverOre
toPrefab: Silver
amount: 1
- fromPrefab: CopperScrap
toPrefab: Copper
amount: 1
maxOres: 20
maxFuel: 50
fuelPerProduct: 2
conversionTime: 15
Makes the fermenter brew very quickly, and makes every mead base produce 10 potions instead of less.
Yaml example
conversionModifications:
fermenter:
prefab: fermenter
action: modify
conversions:
- fromPrefab: MeadBaseHealthMinor
toPrefab: MeadHealthMinor
amount: 10
- fromPrefab: MeadBaseHealthMedium
toPrefab: MeadHealthMedium
amount: 10
- fromPrefab: MeadBaseStaminaMinor
toPrefab: MeadStaminaMinor
amount: 10
- fromPrefab: MeadBaseStaminaMedium
toPrefab: MeadStaminaMedium
amount: 10
- fromPrefab: MeadBasePoisonResist
toPrefab: MeadPoisonResist
amount: 10
- fromPrefab: MeadBaseFrostResist
toPrefab: MeadFrostResist
amount: 10
- fromPrefab: BarleyWineBase
toPrefab: BarleyWine
amount: 10
- fromPrefab: MeadBaseTasty
toPrefab: MeadTasty
amount: 10
- fromPrefab: MeadBaseHealthMajor
toPrefab: MeadHealthMajor
amount: 10
- fromPrefab: MeadBaseStaminaLingering
toPrefab: MeadStaminaLingering
amount: 10
- fromPrefab: MeadBaseEitrMinor
toPrefab: MeadEitrMinor
amount: 10
- fromPrefab: MeadBaseEitrLingering
toPrefab: MeadEitrLingering
amount: 10
- fromPrefab: MeadBaseHealthLingering
toPrefab: MeadHealthLingering
amount: 10
- fromPrefab: MeadBaseBzerker
toPrefab: MeadBzerker
amount: 10
- fromPrefab: MeadBaseStrength
toPrefab: MeadStrength
amount: 10
- fromPrefab: MeadBaseHasty
toPrefab: MeadHasty
amount: 10
- fromPrefab: MeadBaseLightFoot
toPrefab: MeadLightfoot
amount: 10
- fromPrefab: MeadBaseSwimmer
toPrefab: MeadSwimmer
amount: 10
- fromPrefab: MeadBaseTamer
toPrefab: MeadTamer
amount: 10
- fromPrefab: MeadBaseBugRepellent
toPrefab: MeadBugRepellent
amount: 10
conversionTime: 10
Makes the cooking station cook faster.
Yaml example
conversionModifications:
piece_cookingstation:
action: modify
prefab: piece_cookingstation
conversions:
- fromPrefab: RawMeat
toPrefab: CookedMeat
cookTime: 10
- fromPrefab: NeckTail
toPrefab: NeckTailGrilled
cookTime: 10
- fromPrefab: FishRaw
toPrefab: FishCooked
cookTime: 10
- fromPrefab: DeerMeat
toPrefab: CookedDeerMeat
cookTime: 10
- fromPrefab: WolfMeat
toPrefab: CookedWolfMeat
cookTime: 10
- fromPrefab: ChickenMeat
toPrefab: CookedChickenMeat
cookTime: 10
- fromPrefab: HareMeat
toPrefab: CookedHareMeat
cookTime: 10
Makes the oven cook faster, and fuel last longer.
Yaml example
conversionModifications:
piece_oven:
action: modify
prefab: piece_oven
conversions:
- fromPrefab: LoxPieUncooked
toPrefab: LoxPie
cookTime: 10
- fromPrefab: BreadDough
toPrefab: Bread
cookTime: 10
- fromPrefab: FishAndBreadUncooked
toPrefab: FishAndBread
cookTime: 10
- fromPrefab: MeatPlatterUncooked
toPrefab: MeatPlatter
cookTime: 10
- fromPrefab: HoneyGlazedChickenUncooked
toPrefab: HoneyGlazedChicken
cookTime: 10
- fromPrefab: MisthareSupremeUncooked
toPrefab: MisthareSupreme
cookTime: 10
- fromPrefab: MagicallyStuffedShroomUncooked
toPrefab: MagicallyStuffedShroom
cookTime: 10
- fromPrefab: RoastedCrustPieUncooked
toPrefab: RoastedCrustPie
cookTime: 10
- fromPrefab: PiquantPieUncooked
toPrefab: PiquantPie
cookTime: 10
maxFuel: 10
fuelItem: Wood
secPerFuel: 2000
Makes the spinning wheel work faster and take up to 50 flax.
Yaml example
conversionModifications:
piece_spinningwheel:
action: Modify
prefab: piece_spinningwheel
conversions:
- fromPrefab: Flax
toPrefab: LinenThread
maxOres: 50
conversionTime: 3
Items
\BepInEx\config\RecipeManager\Items.yaml does two things:
action: Addcreates a brand new item by cloning an existing one. The clone keeps the model and every stat of the item it was copied from, and anything you set in the config is applied on top.action: Modifychanges an item that already exists, vanilla weapons and armor included. Only the fields you set are changed, and taking a field back out of the yaml puts the original value back.
Adding or removing an item needs a game restart (or a trip back to the main menu). This is a hard requirement of how Valheim identifies items on the network, not something the mod can work around. Everything else, including every modification of an existing item, works live with
RM_Items_Reload.
Adding a new item
Add a "Honey bread" food, made from bread and honey at the cauldron
Yaml example
itemAdditions:
HoneyBread: # <- The name of this addition, it is for your information but SHOULD BE UNIQUE
action: Add # <- REQUIRED This is the action applied, can be [Add, Remove]
prefab: HoneyBread # <- REQUIRED The prefab name of the NEW item, must be globally unique
clonedFrom: Bread # <- REQUIRED The existing prefab to copy
name: Honey Bread # <- The display name. Start it with '$' to use your own localization token
description: Sweet, sticky and filling. # <- The tooltip description
weight: 0.5 # <- Leave unset to keep the cloned item's weight
maxStackSize: 20 # <- Leave unset to keep the cloned item's stack size
value: 12 # <- The trader value of this item
teleportable: true # <- Whether this item can go through a portal
food: # <- Only set this for food and drinks, leave it out otherwise
health: 50 # <- The max health this food grants
stamina: 60 # <- The max stamina this food grants
eitr: 0 # <- The max eitr this food grants
duration: 1800 # <- How long the food lasts, in seconds
regen: 2 # <- Health regenerated per tick while this food is active
eatAnimTime: 1 # <- How long the eating animation takes
isDrink: false # <- Whether this is drunk rather than eaten
consumeStatusEffect: '' # <- The name of an EXISTING status effect to apply when consumed
recipe: # <- Optional, leave it out for an item that is not crafted
craftedAt: piece_cauldron # <- The crafting station, leave it empty for handcrafting
repairAt: '' # <- Defaults to craftedAt
minStationLevel: 1 # <- The required crafting station level
craftAmount: 1 # <- How many of the item one craft produces
anyOneResource: false # <- Only require one of the ingredients below
ingredients:
- prefab: Bread # <- Prefab that this ingredient requires
craftCost: 1 # <- The amount of this ingredient it takes to craft
upgradeCost: 0 # <- The amount of this ingredient it takes to upgrade
- prefab: Honey
craftCost: 2
upgradeCost: 0
Run RM_Items_PrintAll to dump the items in the game with their real stat values. That file is never
loaded, it is there so you can copy an entry and see what the numbers should look like. It is a big
file, so RM_Items_PrintAll sword will only dump the items whose prefab name contains "sword".
New items are visible to the rest of the mod by their prefab name, so you can also refer to them from
Recipes.yaml or Conversions.yaml. For example, to cook your new item in the oven instead of crafting
it at the cauldron, leave out the recipe: block and add a conversion from an uncooked item to it.
Modifying an existing item
Set action: Modify and point prefab at the item you want to change. There is no clonedFrom,
nothing new is created, and the change reaches every copy of that item that already exists, including
the ones sitting in chests and inventories.
Anything you leave out keeps its current value, so a modification only has to list what actually
differs. The reverse is true too: deleting a line and running RM_Items_Reload restores that item's
original value rather than leaving the last number you set.
Make the iron sword hit harder and set things on fire
Yaml example
itemAdditions:
BurningIronSword:
action: Modify
prefab: SwordIron # <- The existing item to change
weapon:
damage: # <- Only the damage types listed here are touched
slash: 60
fire: 20
damagePerLevel:
slash: 5
backstabBonus: 4
statusEffects:
onHit: Burning # <- Applied to whatever the sword hits
onHitChance: 0.5
Give the troll armor set fire resistance and a real set bonus
Yaml example
itemAdditions:
FireproofTrollChest:
action: Modify
prefab: ArmorTrollLeatherChest
armor:
armor: 20
armorPerLevel: 4
movementModifier: 0.05 # <- 5% faster while worn
resistances: # <- Replaces the item's whole resistance list
- type: Fire
modifier: VeryResistant
- type: Frost
modifier: Resistant
setBonus:
name: TrollLeather # <- Every piece of the set has to use the same name
size: 3
statusEffect: SetEffect_TrollArmor
Weapon, armor and set stats
These blocks work exactly the same on an item you added and on one you are modifying, so a cloned sword can be given its own damage profile the same way a vanilla one can.
weapon: - damage and tool stats.
| Field | Meaning |
|---|---|
damage |
Base damage. Takes any of damage, blunt, slash, pierce, chop, pickaxe, fire, frost, lightning, poison, spirit. Types you leave out are not touched. |
damagePerLevel |
Damage added by each upgrade level, same fields as damage. |
attackForce |
Knockback. |
backstabBonus |
Sneak attack damage multiplier. |
toolTier |
What a tool is able to harvest. 0 is wood and stone, 2 is black metal. |
armor: - armor, shield and equip stats.
| Field | Meaning |
|---|---|
armor / armorPerLevel |
Armor value, and how much each upgrade level adds. |
blockPower / blockPowerPerLevel |
How much damage a block absorbs, shields and weapons that block. |
deflectionForce / deflectionForcePerLevel |
How far a blocked attacker is pushed back. |
movementModifier |
Speed change while equipped, as a fraction. -0.05 is 5% slower. |
eitrRegenModifier |
Eitr regeneration change while equipped. |
resistances: - a list of type and modifier pairs. This replaces the item's whole resistance
list, so include every resistance you want it to end up with, and use resistances: [] to remove them
all.
typeis one ofBlunt,Slash,Pierce,Chop,Pickaxe,Fire,Frost,Lightning,Poison,Spirit.modifieris one ofNormal,SlightlyResistant,Resistant,VeryResistant,SlightlyWeak,Weak,VeryWeak,Immune,Ignore.
statusEffects: - effects the item provides.
| Field | Meaning |
|---|---|
equipped |
Applied for as long as the item is equipped. |
onHit |
Applied to whatever the weapon hits. |
onHitChance |
Chance for onHit to land, from 0 to 1. |
setBonus: - the armor set the item belongs to.
| Field | Meaning |
|---|---|
name |
Grouping key. Every piece of the same set has to use the same value. |
size |
How many pieces have to be worn. The game ignores set bonuses with a size of 1 or less. |
statusEffect |
The effect that wearing the full set grants. |
Status effects are referenced by name and have to already exist, this mod cannot create new ones.
SetEffect_TrollArmor, Burning and Frost are examples of names that work. To empty a status effect
slot rather than set one, use the value None.
Custom icons and textures
Icons and textures are read from \BepInEx\config\RecipeManager\Textures\<prefab>\, where <prefab> is
the prefab: value of your new item. Any file that is present replaces that texture, and anything
missing keeps whatever the cloned item had.
The workflow is:
- Run
RM_Textures_Dump Breadin the console. This writes Bread's icon and material textures to\BepInEx\config\RecipeManager\Textures\Bread\, along with a_dump_info.txtdescribing what each file is. - Copy that whole folder and rename the copy to your new item's prefab name, for example
Textures\HoneyBread\. - Repaint the PNGs you care about and delete the ones you did not change.
- Restart the game, or run
RM_Items_Reload.
The file names are what tie a PNG to a texture slot, so do not rename them:
icon_0.pngis the inventory icon (icon.pngalso works if there is only one). This is the one most people want.<renderer>__<material>__<slot>.pngis a model texture, for exampleattach__0___MainTex.png._MainTexis the colour texture,_BumpMapis the normal map,_MetallicGlossMapand_EmissionMapare the metallic and glow maps.
Textures are only ever applied to a copy of the material, so repainting an item you added never changes the vanilla item it was cloned from.
This works for action: Modify too, where <prefab> is the existing item you are changing. Retexturing
an item that already exists does change how that item looks everywhere, and unlike its stats it is not
undone by RM_Items_Reload - remove the folder and restart to get the original artwork back.
On a server, item definitions are synced to clients but the PNGs are not. A client that does not have the image files still gets the item with the correct stats and recipe, it just shows the original artwork.
FAQ
-
Q: Why is my recipe not showing up? A. Ensure that the recipe uses the action 'Modify' or 'Add', by default recipes dumped from the object DB will not, they will use Enable. Which if the recipe already exists and is not disabled, does nothing.
-
Q: My yaml has an error about the
refundkey A. The refund key was removed in 0.4.1. If you need to remove the key from an existing yaml you can use the following regex( +refund: \w+\n?)and replace with nothing. This can be done from most text editors find and replace. -
Q: My new item has the same food bar as the item I cloned it from A. Set
nameon the item addition. The display name is what the game uses to tell foods apart, so without one your item shares a food slot with its original. -
Q: Why does adding an item need a restart? A. An item's prefab name is its network identity, and Valheim builds that lookup once when the world loads. Items therefore have to exist before then. Editing an item you already have does not need a restart, only adding or removing one does.
-
Q: I changed a vanilla item and now I want it back to normal A. Delete the modification and run
RM_Items_Reload. The mod keeps the original values of anything it touches and puts them back. Custom icons and textures are the exception, those need a restart. -
Q: My status effect is not being applied A. Status effects have to already exist, this mod cannot create them. Check the log, an effect that could not be found is reported by name.
RM_Items_PrintAllshows the names used by items that already have one. -
Q: I set a resistance and the item lost the resistances it already had A.
resistancesreplaces the whole list rather than adding to it. List every resistance you want the item to end up with.
Planned Features
- More recipe validation
Conversion modifications (like ores for ingots)(added in 0.5.0)Stat editing for weapons, armor and tools(added in 0.6.0)- Custom status effects for added items
- Export to WackyDB
Installation (manual)
Ensure the downloaded .dll is placed inside your /bepinex/plugins folder.
Please note this mod does nothing until configured.
CHANGELOG
0.6.1
- Deep North update
0.6.0
- Adds item additions, a new Items.yaml config which creates brand new items by cloning an existing one.
Supports a custom name, description, weight, stack size, value, teleportability, food stats and recipe.
Adding or removing an item requires a restart, editing one does not.
- Adds item modifications, 'action: Modify' in Items.yaml, which changes items that already exist
including vanilla weapons and armor. Original values are restored when a modification is removed.
- Adds weapon, armor, resistance, status effect and set bonus stats, usable on both added and modified
items. Covers per damage type damage and damage per level, attack force, backstab bonus, tool tier,
armor, block power, deflection force, movement and eitr modifiers, damage resistances, equipped and
on hit status effects, and the set name, size and bonus effect.
- Adds custom icons and textures for added items, loaded from BepInEx\config\RecipeManager\Textures\<prefab>\
- Adds RM_Textures_Dump <prefabName> which dumps a prefab's icons and material textures to disk as PNGs
- Adds RM_Items_Reload and RM_Items_PrintAll
- Fixes conversion configs being read from the piece config files instead of the conversion config files
- Fixes piece and conversion updates being sent to clients over the wrong RPC
- Fixes conversion configs never being sent to clients when they join
0.5.5
- Adds late running synchronization for Pieces, fixes modification consistency issues with late updating pieces (thanks JacoboNeuro!)
0.5.4
- Improves recipe validation for invalid prefabs
- Reducing client/server requirements to version check only if both contain the mod.
This allows clients or servers to support people who can't run mods, or choose not to playe with mods.
While still allowing users to run the mod if they desire.
Warning: Recipes are still server synced. Which means if a server synchronization occurs, you will use the servers configs.
0.5.3
- Fixed possible path NPE
0.5.2
WARNING: This Thunderstore version was incorrect, please use 5.3 or 5.1
- Adds recovery option (deconstruct returns resources) for piece configurations
0.5.1
- Fixes default to level key generation for conversion pieces
0.5.0
- Adds support for conversions
- Modify conversions for the smelter, kiln, spinning wheel, fermenter, oven, smelter and blast furnace
- Add conversions (smelter accepts all ores)
- Modify conversions (faster, longer, more resources/less produced)
- Remove conversions
- Examples in the Readme/mod page!
- Updated dependency requirements
0.4.5
- Ensures RPC synchronization when an admin reloads pieces/recipes
- Fixes piece categories not being mutated correctly
0.4.4
- Fixes filepath detection not working on linux
- Removes embedded yaml.net, now requires yaml.net to be installed via the mod loader
- Fixes server synced piece modifications not being applied in some cases
- Defaults 'GroundPlacement' for piece modifications to false
0.4.3
- Fixes recipe requires any ingredient not being set correctly
0.4.2
- Fixes duplicate recipes when recipes are modified, and modified again. Primarily during multiple world initializations or character swapping worlds.
- Fixes items with no crafting station being unrepairable in specific cases
0.4.1
- Adds support for nocost recipes
- Adds separate repair station configuration for recipes, if unset defaults to the crafting station
- Removed recipe refund setting as it was not working as intended
0.4.0
- Add support for piece modifications
- Details about pieces can now be modified
- Piece modifications are separated from item modifications
- Added support for multiple config files of each type
- Unified synchronization for multiple files & piece or recipe types
- Virtualized piece and recipe synchronization, files are no longer created or mirrored from the host/server
- Some improvements to recipe modification synchronization
0.3.4
- Added guards to do nothing if recipe reload is called when you have no recipes set to modify
0.3.3
- Simplified item add during server handshake post config received
0.3.2
- More eventual consistency checks
- Add ensures that the recipe does not already exist
0.3.1
- Modify ensures the target recipe does not already exist
0.3.0
- Added more error reporting for common recipe issues
- Updated example docs
- Server sync'd recipes are now virtual
0.2.0
- Improves ways to reference a recipe as handcrafted
- Added recipe state sychronization on config file server sync
0.1.3
- Fixed server sync'd configurations trying to write out to a temp address
0.1.2
- Fixed customRPC naming to not collide with ValheimFortress
0.1.1
- Added support for targeting recipe names. Allows mutation of multiple recipes that target the same prefab (eg craft x5)
- Added recipe reversion which is applied right before reloading recipes to ensure previous recipe modifications are removed before reapplying
0.1.0
- Initial release, I'm sure I forgot something