You are viewing a potentially older version of this package. View all versions.
Azumatt-AzuCraftyBoxes-1.4.3 icon

AzuCraftyBoxes

AzuCraftyBoxes is a Valheim mod that allows players to access and use resources from nearby containers when crafting and building, based on a configurable range and item restrictions. Restrictions are controlled by the yaml file Azumatt.AzuCraftyBoxes.yml

Date uploaded 5 months ago
Version 1.4.3
Download link Azumatt-AzuCraftyBoxes-1.4.3.zip
Downloads 34758
Dependency string Azumatt-AzuCraftyBoxes-1.4.3

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

AzuCraftyBoxes

AzuCraftyBoxes is a Valheim mod that allows players to access and use resources from nearby containers when crafting and building, based on a configurable range and item restrictions.

Features

  • Automatically use resources from nearby containers within a configurable range when crafting or building
  • Restrict specific items from being pulled out of containers by defining rules in the configuration file in the BepInEx/config folder called Azumatt.AzuCraftyBoxes.yml
  • Toggle the mod on/off in-game using a configurable hotkey
  • Flashing UI text to indicate when resources are being pulled from nearby containers

Version checks with itself. If installed on the server, it will kick clients who do not have it installed.

This mod uses ServerSync, if installed on the server and all clients, it will sync all configs with [Synced with Server] tags to client

This mod uses a file watcher. If the configuration file is not changed with BepInEx Configuration manager, but changed in the file directly on the server, upon file save, it will sync the changes to all clients.

Configuration Options

General

Configuration File Name: Azumatt.AzuCraftyBoxes.cfg

1 - General

Lock Configuration [Synced with Server]

  • If on, the configuration is locked and can be changed by server admins only.
    • Default Value: On

Mod Enabled [Synced with Server]

  • If off, everything in the mod will not run. This is useful if you want to disable the mod without uninstalling it.
    • Default Value: On

2 - CraftyBoxes

Container Range [Synced with Server]

  • The maximum range from which to pull items from.
    • Default Value: 20

ResourceCostString [Not Synced with Server]

  • String used to show required and available resources. {0} is replaced by how much is available, and {1} is replaced by how much is required. Set to nothing to leave it as default.
    • Default Value: {0}/{1}

FlashColor [Not Synced with Server]

  • Resource amounts will flash to this colour when coming from containers
    • Default Value: FFEB04FF

UnFlashColor [Not Synced with Server]

  • Resource amounts will flash from this colour when coming from containers (set both colors to the same color for no flashing)
    • Default Value: FFFFFFFF

PulledMessage [Not Synced with Server]

  • Message to show after pulling items to player inventory
    • Default Value: Pulled items to inventory

3 - Keys

FillAllModKey [Not Synced with Server]

Installation Instructions

Manual Installation

Note: (Manual installation is likely how you have to do this on a server, make sure BepInEx is installed on the server correctly)

  1. Download the latest release of BepInEx.
  2. Extract the contents of the zip file to your game's root folder.
  3. Download the latest release of AzuCraftyBoxes from Thunderstore.io.
  4. Extract the contents of the zip file to the BepInEx/plugins folder.
  5. Launch the game.

Installation through r2modman or Thunderstore Mod Manager

  1. Install r2modman or Thunderstore Mod Manager.

    For r2modman, you can also install it through the Thunderstore site.

    For Thunderstore Mod Manager, you can also install it through the Overwolf app store

  2. Open the Mod Manager and search for "AzuCraftyBoxes" under the Online tab. Note: You can also search for "Azumatt" to find all my mods. The image below shows VikingShip as an example, but it was easier to reuse the image. Type AzuCraftyBoxes.

3. Click the Download button to install the mod. 4. Launch the game.

Example YAML
# Below you can find example groups. Groups are used to exclude or includeOverride quickly. They are reusable lists! 
# Please note that some of these groups/container limitations are kinda pointless but are here for example.
# Make sure to follow the format of the example below. If you have any questions, please ask in my discord.

# Full vanilla prefab name list: https://valheim-modding.github.io/Jotunn/data/prefabs/prefab-list.html
# Item prefab name list: https://valheim-modding.github.io/Jotunn/data/objects/item-list.html

# There are several predefined groups set up for you that are not listed. You can use these just like you would any group you create yourself.
# These are the "All", "Food", "Potion", "Fish", "Swords", "Bows", "Crossbows", "Axes", "Clubs", "Knives", "Pickaxes", "Polearms", "Spears", "Equipment", "Boss Trophy", "Trophy", "Crops", "Seeds", "Ores", "Metals", and "Woods" groups.
# The criteria for these groups are as follows:
# groups:
#   Food:
#     - Criteria: Both of the following properties must have a value greater than 0.0 on the sharedData property of the ItemDrop script:
#         - food
#         - foodStamina
#   Potion:
#     - Criteria: The following properties must meet the specified conditions on the sharedData property of the ItemDrop script:
#         - food > 0.0
#         - foodStamina == 0.0
#   Fish:
#     - itemType: Fish
#   Swords, Bows, Crossbows, Axes, Clubs, Knives, Pickaxes, Polearms, Spears:
#     - itemType: OneHandedWeapon, TwoHandedWeapon, TwoHandedWeaponLeft, Bow
#     - Criteria: Items in these groups have a specific skillType on the sharedData property of the ItemDrop script. Each group corresponds to the skillType as follows:
#         - Swords: skillType == Skills.SkillType.Swords
#         - Bows: skillType == Skills.SkillType.Bows
#         - Crossbows: skillType == Skills.SkillType.Crossbows
#         - Axes: skillType == Skills.SkillType.Axes
#         - Clubs: skillType == Skills.SkillType.Clubs
#         - Knives: skillType == Skills.SkillType.Knives
#         - Pickaxes: skillType == Skills.SkillType.Pickaxes
#         - Polearms: skillType == Skills.SkillType.Polearms
#         - Spears: skillType == Skills.SkillType.Spears
#            Example:   An item with itemType set to OneHandedWeapon and skillType set to Skills.SkillType.Swords would belong to the Swords group.
#   Equipment:
#     - itemType: Torch
#   Boss Trophy:
#     - itemType: Trophie
#     - Criteria: sharedData.m_name ends with any of the following boss names:
#         - eikthyr, elder, bonemass, dragonqueen, goblinking, SeekerQueen
#   Trophy:
#     - itemType: Trophie
#     - Criteria: sharedData.m_name does not end with any boss names
#   Crops:
#     - itemType: Material
#     - Criteria: Can be cultivated and grown into a pickable object with an amount greater than 1
#   Seeds:
#     - itemType: Material
#     - Criteria: Can be cultivated and grown into a pickable object with an amount equal to 1
#   Ores:
#     - itemType: Material
#     - Criteria: Can be processed by any of the following smelters:
#         - smelter
#         - blastfurnace
#   Metals:
#     - itemType: Material
#     - Criteria: Is the result of processing an ore in any of the following smelters:
#         - smelter
#         - blastfurnace
#   Woods:
#     - itemType: Material
#     - Criteria: Can be processed by the charcoal_kiln smelter
#   All:
#     - Criteria: Item has an ItemDrop script and all needed fields are populated. (all items)




groups:
  Armor: # Group name
    - ArmorBronzeChest # Item prefab name, note that this is case sensitive and must be the prefab name
    - ArmorBronzeLegs
    - ArmorCarapaceChest
    - ArmorCarapaceLegs
    - ArmorFenringChest
    - ArmorFenringLegs
    - ArmorIronChest
    - ArmorIronLegs
    - ArmorLeatherChest
    - ArmorLeatherLegs
    - ArmorMageChest
    - ArmorMageLegs
    - ArmorPaddedCuirass
    - ArmorPaddedGreaves
    - ArmorRagsChest
    - ArmorRagsLegs
    - ArmorRootChest
    - ArmorRootLegs
    - ArmorTrollLeatherChest
    - ArmorTrollLeatherLegs
    - ArmorWolfChest
    - ArmorWolfLegs
  Arrows:
    - ArrowBronze
    - ArrowCarapace
    - ArrowFire
    - ArrowFlint
    - ArrowFrost
    - ArrowIron
    - ArrowNeedle
    - ArrowObsidian
    - ArrowPoison
    - ArrowSilver
    - ArrowWood
    - draugr_arrow
  Tier 2 Items:
    - Bronze
    - PickaxeBronze
    - ArmorBronzeChest
    - ArmorBrozeLeggings


# By default, if you don't specify a container below, it will be considered as you want to allow pulling all objects for pulling from it.
# If you are having issues with a container, please make sure you have the full prefab name of the container. Additionally, make sure you have exclude or includeOverride set up correctly.
# Worst case you can define a container like this. This will allow everything to be pulled from the container.
# rk_barrel:  
#  includeOverride: []

## Please note that the below containers are just examples. You can add as many containers as you want.
## If you want to add a new container, just copy and paste the below example and change the name of the container to the prefab name of the container you want to add.
## The values are set up to include everything by using the includeOverride (aside from things that aren't really a part of vanilla recipes, like Swords or Bows). 
## This is to give you examples on how it's done, but still allow everything to be pulled from the container.

piece_chest:
  exclude: # Exclude these items from being able to be pulled from the container
    #- Food # Exclude all in group
    - PickaxeBronze # Allow prefab names as well, in this case we will use something that isn't a food
  includeOverride:
    # - Food # This would not work, you cannot includeOverride a group that is excluded. You can only override prefabs from that group.
    - PickaxeBronze # You can however, be weird, and override a prefab name you have excluded.

# It's highly unlikely that you will need the armor, swords, bows, etc. groups below. These are just in case you want to use them. 
# They were also easy ways for me to show you how to use the groups without actually excluding something you might want to always pull by default.

piece_chest_wood:
  exclude:
    - Swords # Exclude all in group
    - Tier 2 Items # Exclude all in group
    - Bows # Exclude all in group
  includeOverride: # If the item is in the groups above, say, you were using a predefined group but want to override just one item to be ignored and allow pulling it
    - BowFineWood
    - Wood
    - Bronze

piece_chest_private:
  exclude:
    - All # Exclude everything

piece_chest_blackmetal:
  exclude:
    - Swords # Exclude all in group
    - Tier 2 Items # Exclude all in group
    - Bows # Exclude all in group
  includeOverride: # If the item is in the groups above, say, you were using a predefined group but want to override just one item to be ignored and allow pulling it
    - BowFineWood
    - Wood
    - Bronze

rk_cabinet: # rk_ is typically the prefix for containers coming from RockerKitten's mods
  exclude:
    - Food
  includeOverride:
    - Food

rk_cabinet2:
  exclude:
    - Food
  includeOverride:
    - Food

rk_barrel:
  exclude:
    - Armor
    - Swords

rk_barrel2:
  exclude:
    - Armor
    - Swords

rk_crate:
  exclude:
    - Armor
    - Swords

rk_crate2:
  exclude:
    - Armor
    - Swords

# Below you will find the configuration for the charcoal kiln, smelter, blast furnace, 
# piece_cookingstation, piece_cookingstation_iron, piece_oven,
# bonfire, CastleKit_groundtorch_unlit, fire_pit, hearth,piece_brazierceiling01, piece_brazierfloor01, 
# piece_groundtorch, piece_groundtorch_blue, piece_groundtorch_green, piece_groundtorch_mist, piece_groundtorch_wood, piece_jackoturnip, and piece_walltorch.
# The settings here will override the chest settings above.
charcoal_kiln:
  exclude:
    - Woods
  includeOverride:
    - Wood

smelter:
  exclude: [] # This is an example of how to allow everything to be pulled from the bonfire but still have it in the config file.

blastfurnace:
  exclude: []

piece_cookingstation:
  exclude: []

piece_cookingstation_iron:
  exclude: []

piece_oven:
  exclude: []

bonfire:
  exclude: []

CastleKit_groundtorch_unlit:
  exclude: []

fire_pit:
  exclude: []

hearth:
  exclude: []

piece_brazierceiling01:
  exclude: []

piece_brazierfloor01:
  exclude: []

piece_groundtorch:
  exclude: []

piece_groundtorch_blue:
  exclude: []

piece_groundtorch_green:
  exclude: []

piece_groundtorch_mist:
  exclude: []

piece_groundtorch_wood:
  exclude: []

piece_jackoturnip:
  exclude: []

piece_walltorch:
  exclude: []

Feel free to reach out to me on discord if you need manual download assistance.

Author Information

Azumatt

DISCORD: Azumatt#2625

STEAM: https://steamcommunity.com/id/azumatt/

For Questions or Comments, find me in the Odin Plus Team Discord or in mine:

https://i.imgur.com/XXP6HCU.png

CHANGELOG

Version Update Notes
1.5.5 - Hotfix for resource requirement bug.
Remove some code I don't think I need anymore. Might be wrong.
- Next update will have a key to pause pulling from containers and only your inventory. It will also have the ability to "leave one" in the chests so mods like AzuAutoStore can still stack to your favorite chests.
1.5.4 - Update for Bog Witch
1.5.3 - Remove treasure prefix on chest filters, we shall see how that goes. It was there for compatibility and for additional world chest filtering, but might not be fully needed.
- Add similar fixes from AzuAutoStore to properly remove chests from memory.
1.5.2 - Bug fixes with AAA
1.5.1 - Remove recent EpicLoot compatibility to fix some bugs that some people are experiencing. Waiting until support is better in EpicLoot before adding back anything.
1.5.0 - Begin EpicLoot compatibility with the table. I tested this alone, not on a server. You can Enchant and Augment items that are inside of containers now. This doesn't pull the costs from the containers. Still working on that, but if you have the requirements in your inventory, you can enchant items or augment items in nearby chests. I will attempt to add more compatibility with the Enchanting Table soon. So far, it's not been that easy.
1.4.3 - More fixes due to 1.4.1's update.
- Add ability to bulk load Turrets and Shield Generators
- Fermenters will pull from containers soon.
1.4.2 - Hotfix to fix an issue with item counts introduced in last update.
1.4.1 - Fix issue with infinite resources coming from backpacks
- Allow crafting from all backpacks in your inventory, not just the equipped one
- Some other internal fixes
1.4.0 - Fix issue that causes AAA Crafting to stop crafting multiples. (Thanks to Blaxxun for their crucial input in the final stage of resolving this issue.)
- You can now craft from your equipped Smoothbrain backpack.
- Internal changes that should be noted to make some of this happen. Rely on Backpacks API and include ItemDataManager to allow for crafting from the backpacks.
1.3.0 - Update for Ashlands as well as begin staging for API.
- Do not allow from inventory if it's filtered in the YAML
1.2.9 - Forgot to update the descriptions of the new configuration options.
1.2.8 - Fix the flicker on the Build Info panel.
- Fix compatiblity when using AzuMiscPatches alongside this (that causes the flicker). This mod will take priority over the display.
- Add two new configurations for the color display of the amount you can build.
1.2.7 - Range limit KG ItemDrawers so you can't pull from them when outside range.
1.2.6 - Add incompatiblity with other Craft from Container type of mods. People are double installing mods with the same functionality and it makes things cost double the resources.
1.2.5 - Accept PR from KG to support his new ItemDrawers since they do not use vanilla Container components.
1.2.4 - Update for latest Valheim changes.
1.2.3 - Add back my normal filtering since AdventureBackpacks now adds a mock creator.
1.2.2 - Add compatibility with AdventureBackpacks. Since the container didn't have a creator, I had to make an exception for it. Typically the only containers without a creator are world containers, so it was skipped. Happy Crafting.
- Will probably look into making it compatible with Smoothbrain's Backpack mod soon, if it wasn't already.
1.2.1 - Remove the PullToInventory feature as this allows item duplication. This bug isn't an easy one to fix as it requires a server, multiple people (I usually test alone as no one really has the patience) and a decent amount of time. Currently, I am low on time until mid year 2024. If I manage to find a fix, it will be updated to be included again. Sorry for the inconvenience but I hope this at least stops the exploiting for now.
- If you just read that an think that it will take me until mid year 2024 to update, you're incorrect and worried for nothing. Low on time doesn't mean no time, just means my usual super fast updates aren't so super fast anymore :D
1.2.0 - Hildir Update. Not sure why? Hell, might not fix it for everyone.
- Also, change the version check to be hash check.
1.1.9 - Small temp bug workaround. Will properly fix later.
1.1.8 - Localization and other bug fixes
1.1.7 - Updates for Valheim 0.216.9.
- Bug fixes for duplication issue and a few others that were reported.
1.0.7 - Turns out, some mods just don't populate all expected things on ItemDrops. Added in more null checks and even fix some mod's issues related to the ItemDrop script. Should fix 99% of all issues with mod compatibility.
1.0.6 - Update Example.yml file to include the super awesome new features. Add a ton of comments to make even the dumbest of monkeys hopefully understand. Not that you're dumb, just saying...it's stupid simple.
- It is highly recommended that you regenerate your yml file and reconfigure it!
- You can now limit what goes into smelters, kilns, fireplaces, and cooking stations. Hopfully I didn't fuck up and the Example.yml is how everyone likes it by default.
- Hope you enjoy this update.
1.0.5 - All is normal. FPS issue fixed. Rest easy.
- Issue is caused by Therize's fancy Armory. You're never too fancy that I can't fix it.
- Special thank you to the few who rapidly tested my dlls. Zaphonia, SchwarzFenrir, and HunterAP. You're appreciated.
1.0.4 - Hotfix to attempt to reduce some lag added from the last patch. Hopefully this helps.
1.0.3 - Add quick fueling via hotkey (LeftShift + E by default) for cooking stations, fireplaces, smelters and kilns.
- Fix some errors that people can experience when using mods that do not populate the ItemDrop script appropriately based on what vanilla expects.
1.0.2 - Fix some NREs that can happen when WardIsLove is installed and you are loading into your world.
- Additionally, make pulling resources into your inventory work when building with the hammer.
- Note: Not all of the features from OdinsCraftyBoxes are in this mod yet. I am rewriting some of the patches to work better and be more performant. Bear with me.
1.0.1 - Fix some NREs
1.0.0 - Initial Release