WackysDatabase
WackysDatabase allows you to control all items/recipes/pieces via JSON files with ServerSync and so much more.
Date uploaded | 2 years ago |
Version | 1.4.1 |
Download link | WackyMole-WackysDatabase-1.4.1.zip |
Downloads | 5144 |
Dependency string | WackyMole-WackysDatabase-1.4.1 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.
Preferred version: 5.4.2200README
WackysDatabase
WackysDatabase by Wackymole
Version 1.4.1
The short summary is OpenDatabase + ServerSync + Recipecustomization + Armor Customization + PieceLvlRequirements + some other small fields + item/piece/recipe cloning + material changing for cloned items/pieces + name changing for items/pieces(translating)
WackysDatabase
- WackysDatabase is a mod for Valheim it requires BepInEx for Valheim.
- With this mod you are able to control all items/recipes/pieces via JSON files.
- WackysDatabase also allows you to make clone/mock of these objects as well.
- This mod is one of the last to load in the game.
- As such it can touch almost all normal and modded objects which is the primary goal for this mod, but cloned objects may not behave well with some mods.
- You can not load into singleplayer and then load into Multiplayer. - No easy cheating
General Knowledge
There are three (3) Objects that WackyDB touches. Items, Recipes, Pieces.
Items are things in your inventory, you can pickup and maybe equip.
Recipes are used to construct items, CraftingStations can be workbench, forge, or hand crafted (craftingStation": "")
Pieces are what you use in your hammer and hoe to construct or plant. piecehammers
Installation
Download and extract the latest version of WackysDatabase into the BepInEx plugin folder (usually Valheim/BepInEx/plugins )
Now run Valheim and join a world. After that go to Valheim/BepInEx/config/. There should be a folder called wackysDatabase, inside of that folder are currently three folders /Items/ /Recipes/ and /Pieces/. Old wackyDatabase was in plugins, this should automatically be moved.
Put the mod on the Server to force Server Sync. The Jsons files only have to be on the Server. No need to share the Jsons.
For Multiplayer, the mod has been locked down to prevent easy cheating, but I recommend https://valheim.thunderstore.io/package/Azumatt/AzuAntiCheat/ and https://valheim.thunderstore.io/package/Smoothbrain/ServerCharacters/ as well.
Warning 1.2.5 and Lower will delete wackysDatabase folder in Plugins on Update, please backup.
Configuration file BepInEx/config/WackyMole.WackysDatabase.cfg
The configs and their defaults are:
Force Server Config = true // forces server sync
Enable this mod = true
IsDebug = true // tells you what is being loaded/ other basic actions
StringisDebug = false // debugs your strings.. extra logs
IsAutoReload = false // auto reloads instead of wackydb_reload
ServerDedLoad = false // Actually loads changes into memeory for dedicated servers - not that useful, but may fix problems.
extraSecurity = true // This sets the 0.0.1 Message when people log onto Singleplayer and then try to connect to hosted servers. Disabling this could allow cheating, but help crossplay Coop servers or others.
Console Commands
- You will need to reference https://valheim-modding.github.io/Jotunn/data/objects/item-list.html for Prefab names. Thank you JVL team
- While in game press F5 to open the game console then type help for more informations. To enable console for valheim - launch options add "-console"
wackydb_reload - Primary way to reload all the Json files in wackysDatabase folder
wackydb_dump [item/recipe/piece] [ItemName] - dump individual preloaded object to log
wackydb_dump_all - writes a dump log file for all previously loaded info. May or may not work with clones. (doesn't work on multiplayer)
wackydb_save_recipe [ItemName] - saves a Recipe Json in wackysDatabase Recipe Folder
wackydb_save_piece [ItemName] - saves a Piece for easy editing in Json (piecehammer only works for clones)
wackydb_save_item [ItemName] - saves a Item Json in wackysDatabase Item Folder
wackydb_help -- commands
wackydb_clone [recipe/item/piece] [Prefab to clone] [Unique name for the clone] - clone an object and change it differently than a base game object.
- For Example: wackydb_clone item SwordIron WackySword
There is a optional 4th parameter for clone RECIPES ONLY [original item prefab to use for recipe](Optional 4th parameter for a cloned item's recipes ONLY) For example you can already have item WackySword loaded in game, but now want a recipe. WackySword Uses SwordIron - wackydb_clone recipe WackySword RWackySword SwordIron - otherwise manually edit
wackydb_clone_recipeitem [Prefab to clone] [clone name](clones item and recipe at same time)( Recipe name will be Rname) - instead of cloning an item and then recipe, do both at once. Saves you the trouble of manually editing recipe name and prefab.
wackydb_vfx - future use
wackydb_material - saves a Materials.txt file in wackysDatabase for the different types of materials you can use for cloned items/pieces.
General Options:
-Don't use the '@' symbol. I use it to break strings apart. It will break everything.
name: is GameObject name must be unique
m_name: is the in game name - can be used for translating
clone: whether an object is a clone or not - true/false
clonePrefabName: if it is a clone, the object needs to reference the original prefab.
Item Options:
cloneMaterial: You can change the material(colorish) of a cloned object. Images on nexus https://www.nexusmods.com/valheim/mods/1825 of the various changes you can make. Use wackydb_material to view a list of materials. Probably up to a 1/3 don't work or make the object invisible.
Cloned items automatically generate an new Icon when cloned.
m_damages: how much and what type of damage is inflicted.
m_damagesPerLevel: how much and what type of damage per upgraded lvl
m_armor: If object is equitable, like armor. Gives armor value to player
m_value: if value is >0. Then the object becomes salable at Trader. The Object Description gets a yellow Valuable notice. Just like base game you don't know what object you are selling to Trader.
damageModifiers: - From https://www.nexusmods.com/valheim/mods/1162 - Thx aedenthorn - I did added water damage in 1.1.8
Damage modifiers are a list of colon-separated pairs, e.g. for the Wolf Chest armor: - "damageModifiers":["Frost:Resistant"]
The first value is the damage type, the second value is the resistance level.
Valid damage types include:
Blunt Slash Pierce Chop Pickaxe Physical Fire Frost Lightning Elemental Poison Spirit
##Water - Depreciated since Mistland update - 1.3.2
Normal - no change
Resistant - increases Wet status countdown speed by 100%
Weak - decreases Wet status countdown speed by 1/3
Immune - prevents Wet status effect
Ignore - prevents Wet status effect
VeryResistant - prevent wet status effect application except when swimming, increases Wet status countdown speed by 100%
VeryWeak - decreases Wet status countdown speed by 2/3
Valid resistence levels include:
Normal Resistant Weak Immune Ignore VeryResistant VeryWeak
m_blockPower: Very useful for shields m_blockPowerPerLevel:
m_timedBlockBonus is the Parry bonus
m_attackStamina is primary m_secattackStatmina is secondary attack
The rest you can probably figure out.
Piece Options:
piecehammer: default is the Hammer or Hoe: it can't really check for modded Hammers. Change this to the modded hammer prefab manually.
adminonly: Makes certain pieces only for admins.
craftingStation: What craftingstation needs to be near you to build the piece. Default: $piece_workbench
minStationLevel: Checks what level craftingstation is needed before building piece.
reqs: requirements to build: Item:amount:amountPerLevel:refundable,
cloneMaterial: You can change the material(colorish) of any (1.2.4) object. Images on nexus https://www.nexusmods.com/valheim/mods/1825 of the various changes you can make.
- Use wackydb_material to view a list of materials. Probably up to a 1/3 don't work or make the object invisible. "material1,material2" (full,half health)(no spaces)
- Otherwise "material1", one material results in material being pasted for both full health and half-health. "same_mat" or "no_wear" sets pieces to have no wear material.
- Should work for any piece at full health, some pieces change textures and models at 3/4 and 1/2 health, this won't stop them from changing. Maybe in future.
- Anytime cloneMaterial gets set for pieces a new icon is created. Icons for pieces is kind of wonky or wacky if you will. Sorry about that, but at least you have icons.
Recipe Options:
Cloned recipes need a unique name.
1.2.4 Expanded Recipe Compatibility to Recipe_ ( Modification only, no cloning)
If cloning a recipe of a cloned item, clonePrefabName needs to be cloned item prefab.
Recipe searches for prefab to put recipe next to it.
Arrows x50 will be put above Arrow x20
reqs: requirements to build: Item:amount:amountPerLevel:refundable,
Feedback
https://github.com/Wacky-Mole/WackysDatabase
For questions or suggestions please join discord channel: Odin Plus Team
It has been a lot of fun making this mod, if you need help please ask in Odin's Server
Support me at https://www.buymeacoffee.com/WackyMole
Changelog
Version 1.4.1
Some items don't like snapshot icons - Added extra checks and only items with material changes get new icons
Version 1.4.0
Added DedServer load Memory config to allow people to see if loading Wackydb on DedServer helps or hinders.
extraSecurity - Allows people who don't want the extra cheat protection to disable it and not get 0.0.1 Error
Big News! Added auto Icon Generation to cloned Items, and all Pieces with custom material(pieces angles are a little wonky or wacky if you will) - Thx Blaxx for code
Version 1.3.6
Added m_attackHealthPercentage and m_secAttackHealthPercentage- Warning any Items that uses this Must be recreated. s
Otherwise default will go to 0. These items include the staffs that use a percentage of player health to power.
Version 1.3.5
I have decided to add more parameters to Json file, so please do not use older version of Wackydb after upgrading. Wackydb 2.0 is not coming soon
Existing Jsons are fine to use, you can regenerate them to get new values.
Added m_EitrCost, m_secEitrCost - These are attack costs for primary and secondary weapon attacks, no Eitr, no swing.
m_FoodEitr - Food Eitr amount, m_EitrRegen- Modifier to Eitr Regen - Very powerful on clothes, weapons, added more warnings.
Seperated out m_attackStamina and secondary m_attackStamina
Version 1.3.2
Mistlands Update: Removed extra Wet effect/restance since Mistlands adds its own.
Removed FoodColor, as it was removed from game and didn't really do anything.
Version 1.3.0
Hopefully fixed Co-Op hosting bug again..
Version 1.2.9
Updated ServerSync for 211.11
Version 1.2.8
Hopefully fixed issue with Co-op hosting. Added 0.0.1 Custom message back.
Version 1.2.7
Updated ServerSync for crossplay - Custom Message for Ver 0.0.1 is not displayed. No Singleplayer before multiplayer without restart.
Known issue of TrophyDraugr is not able to be set (targets TrophyDraugrFem) use Fem or clone TrophyDraugr.
Destroyer is spelled with "troy", also now a loginfo instead of warning
Version 1.2.5
Moved wackysDatabase to Config instead of Plugins folder to stop r2mod from deleting folder on updates.
Warning 1.2.4 and Lower will delete wackysDatabase folder in Plugins on Update, please backup.
Version 1.2.4
Expanded Recipe Compatibility to Recipe_ ( Modification only, no cloning), Can now change any material's type,
category, craftingstation instead of just clones. Cannot change piecehammer of non clones. You can now set the piece's
material at 50% health. If you only set 1 it sets to both "full health" and "half health" otherwise,
"material1, material2" (full, half health). "same_mat" or "no_wear" sets pieces to have no wear material.
Updated ServerSync and PieceManager
Version 1.1.9
Bug Fixes. Cleaned up Logs
Version 1.1.8
Fixed two main bugs,
Properly unloading cloned assets on logout.
Made it so some errors are caught better.
Incorporated Water Resistance as done by aedenthorn.
Version 1.1.5
Cleaned up the code a lot. Fixed Pieces from getting null values from Server.
Fixed the piece disable/admin for custom pieces.
Made it so you can clone stone_floor (4x4 stone prefab) - editing it probably won't make it add to Hammer
Added special case list for objects that have multiple Gameobjects. (Bow, SpearBronze)
Version 1.10
All About Pieces with this Update!
Adds ability to clone an existing CraftingStation piece and make it a new CraftingStation
- The CraftingStation name is "name", add recipes to it with this name.
Fixed other mods custom pieces. You should be able access and even clone other mods pieces now.
Added piecehammerCategory so you can change the category where piece appears on the hammer.
- Mods might use numbers instead of words though.
Added m_knockback Added m_backstabbonus Made m_attackStamina set both Primary and Secondary attacks.
Version 1.05
Mod Release
Last notes:
This mod should load last. It needs to so it can touch all other mods.
You can make changes to that OP bow and make it more realistic on damage or build requirements. Or even set a build piece to adminonly.
clone the Item and change the material to make it a more appealing color.
Submit pull requests to https://github.com/Wacky-Mole/WackysDatabase . The primary purpose of this mod is to edit objects, not to create clones/mocks.
Bugs/Incompatible Mods:
- Friendlies Reloaded - https://valheim.thunderstore.io/package/Horem/Friendlies_Reloaded/ - Will break WackyDB ( investigating)
(Note!: If you want json files to have default values, close the game and delete the wackysDatabase folder).
Planned features
- [x] Able to modify item data.
- [x] Able to modify recipes.
- [x] Able to modify pieces.
- [x] Able to modify materials on clones
- [x] Custom items/pieces
- [x] Custom recipes
- [ ] Able to modify effects - Probably won't happen without someone elses help. wackydb_vfx - generates vfx text file, but there are other effect objects. Wackymole
Credits: A Lot of the credit goes to aedenthorn and all of his Many Mods! https://github.com/aedenthorn/ValheimMods Thank you AzumattDev for the template. It is very good https://github.com/AzumattDev/ItemManagerModTemplate Thanks to the Odin Discord server, for being active and good for the valheim community. Do whatever you want with this mod. // except sale it as per Aedenthorn Permissions https://www.nexusmods.com/valheim/mods/1245 Taking from Azu OpenDatabase code and the orginal now. https://www.nexusmods.com/valheim/mods/319?tab=description CustomArmor code from https://github.com/aedenthorn/ValheimMods/blob/master/CustomArmorStats/BepInExPlugin.cs Thank you to Azumatt and Aedenthorn and the JVL team.
CHANGELOG
Version | Changes |
---|---|
2.4.44 | Bug fix for cSExtensionDataList |
2.4.43 | Update for PieceManager |
2.4.42 | Bug fix. |
2.4.41 | Bog The Witch Update Add support for multiple Piece CSExtensionData. You can now also make (almost) any piece into an extension for a craftingstation. Added support for Pieces to become craftingstations. Added Pickable m_extraDrops stuff Removed unnecessary warning for disabled pieces. Added Hit_Friendly to attack |
2.4.31 | Expanded upgrade_reqs for recipes levels! You can now specify completely different recipes for all upgrades. Rejoice, no more hacks. |
2.4.28 | Renamed a field to Damage_Multiplier_By_Health_Deficit_Percent Updated Readme with some (light) video tutorial links. |
2.4.27 | Fix for Primary/Secondary Status Effect. Added Attack_Start_Noise (float), Attack_Hit_Noise (float), Dmg_Multiplier_Per_Missing_Health (float), Dmg_Multiplier_Per_Total_Health (float), Stamina_Return_Per_Missing_HP (float), SelfDamage (int), Attack_Kills_Self (bool) |
2.4.26 | Fix for rare unarmed attack causing error and no dmg. |
2.4.25 | Coop sync fix Rewrote how 'ExtraSecurity on Servers' works. Should sync from Servers to clients better now. Send logs for any issues |
2.4.24 | PerBurst_Resource_usage bug fix. |
2.4.23 | Updated PerBurst_Resource_usage and Destroy_Previous_Projectile for misspellings. If you use these, please regenerate your yaml files or rename fields, otherwise can be ignored. Bug fixes for pickables with other plant mods. |
2.4.22 | Bug fixes for materials. AlanDrake added filterMode to textures for advanced texturing. |
2.4.21 | Incoming Big Update sponsored by Lughbaloo: Pickables and Plants! PlantData is saved in pieces, which point to either Pickable or Treebase when matured. When you pick a pickable it becomes an item. You can of course clone and change size/material. Enjoy this wacky expansion. |
2.4.13 | Bug fix for attack_status_effect |
2.4.12 | Rexabyte fix for darker textures than intended. Also you can now save materials with spaces in the name, using underscores '_' in place of a space. Bug fix for unarmed hits |
2.4.11 | Added 'delete' to spawn_on_hit and spawn_on_terrain_hit for items. Added command to save all mobs wackydb_all_creatures in Bulk Folder Separated out attack_status_effect into primary and secondary, custom wackydb patch for it. The normal attack_status_effect will be overwritten if a primary or secondary is set. Added m_jumpModifier as a Vector3. Unnecessary lines can be deleted. Added some more logs for debugmode IG forgot to add a check for zero stamina for staminaReload, added |
2.3.9 | Added Attack_status_effect_chance Fixed COOP servers again. I even verfied with Gamepass PC. |
2.3.8 | Added SE/se to wackydb_clone, rejoice, you can now change which SE you clone. Allows you to clone SEShield now. Added the ability to delete Attack_status_effect with "delete" |
2.3.7 | Changed disabled recipes code again Added back ReloadTime, might work for some things. Added Reload_Eitr_Drain Fix for DedServer load Memory = false. Added Reset_Chain_If_hit, SpawnOnHit, SpawnOnHit_Chance, Raise_Skill_Amount, Skill_Hit_Type, Special_Hit_Skill, Special_Hit_Type to Attack. Added Attach_Override for items |
2.3.6 | Possible bug fix for disabled recipes. |
2.3.5 | Bug fixes for recipes, disabled and disabledUpgrade Bug fix for double serversync issue, was probably causing server admins a lot of problems on pushing updates without restarts. Changed singleplayer loading yml files to be more consistent with how multiplayer client receives them. Required fields are required. Removed unnecessarily log on respawn |
2.3.4 | Bug Fix for recipe. |
2.3.3 | Added values for Staff of protection SE or SE Staff_ Updated PieceManager Officially added upgrade_reqs and disabledUpgrade for Recipe goodness. Say thank you to Blaxx and Item Manager Added warning if Recipes don't find req item Fixed using actual recipes like Recipe_Bronze5 Added notOnWood for pieces |
2.3.1 | Adjust font sizeMin for Categories. Added AllowAllItems for portal Pieces Added Fireplace for pieces - Infinite Fuel now Fixed Mock System again. |
2.3.0 | Update for Ashlands. Removed m_baseItemsStaminaModifier, added a lot of other StaminaModfiers. Updated PieceManager |
2.2.6 | Removed Reloadtime(broken) and replaced it with ReloadTimeMultiplier for crossbow. |
2.2.5 | Added snapshotRotation and snapshotOnMaterialChange for items. Fix for some cloned pieces Fix for reloading RecipeMaxStationLvl Added incineratorData conversion for obliterator, you can now make obliterator into a recycler if you want. |
2.2.2 | Bug Fix for SE_Effects with generated PLUS effects |
2.2.1 | Added BaseItemStamina for statmods Add StaffSkelton attack Fix Bug on PLUS effects |
2.2.0 | Decent sized Update: Fix for cloned creatures replacing main creatures name Enabled piece snapshot again, hopefully it works well this time. Added a command wackydb_snapshot for pieces Vastly expanded effect capabilities. Old Effects will work, but generate new yamls for more features. Added Remove to piece conversion list allows you to disable an input and not forcing me to clear the whole list. Now the list shouldn't conflict with additional mods. |
2.1.7 | Update Readme a bit. Made it so some pieces didn't reload twice. |
2.1.6 | Bug fix for cloned pieces on relog. Thx to OrianaVenture for updated icon |
2.1.5 | Added API for Clone mapping to orginal prefab. Adjustment for Epicloot+wackydb on quitting |
2.1.4 | Happy Halloween, this update is for the spooky people that use "," as decimal delimiters, resulting in crazy big sizes of items/pieces. SizeMultiplier is now seperated with | Updated a Priority for loading |
2.1.3 | Added custom SS messsage back added a 4th layer to piece search Separated out sizeMultiplier for x,y,z or just one value Added a check for transplier at closeout for a few people that hang. Updated Refs for new Bepinex Changed loading order again |
2.1.2 | Updated recipeGet, Removed recipe quality (it's a good idea, but I didn't like how it was implemented**).** Took out my custom ServerSync temporarily to test a bug, it won't display message 0.0.1 |
2.1.1 | Change a priorty. Minimized the chance of a recipe consuming double resources with cfc. It will still happen with cfc, if a recipe has quality of > 1 |
2.1.0 | Bug fix, changed color on messages from lime to red |
2.0.9 | Bug Fix |
2.0.8 | Updated ServerSync, Piecemanger, Patch update for 217.24 Fix bug for recipes consuming resources twice. |
2.0.7 | Fixed effects not following you. Add beehive data to pieces. Fix for dedicated servers not loading data. Moved up reload for dedicated servers. Changed log messages, added more warnings. Added more checks for cloned cache. Fix for mock items. |
2.0.6 | Big bug fix for servers. Moved main loading to an even later point. Added SizeMultiplier to cache, for extra sized cached weapons. |
2.0.5 | Bug fix for a cache item error on updateitemhash. |
2.0.4 | Added ConsumableStatusEffect to items. Hovernames for cloned doors. Added Sap and Fermentor Section to pieces. BIG - Moved main loading to a later point for more pieces to be found. Reduced bug counts with disabling pieces. Known bug: moving from one hammer to another hammer, might require disabling orginal and cloning. Fixed Mock items for the adventurous few, added example for mock bike. |
2.0.3 | Bug fix for cloned items being deleted for some people. Fix for piece disabling, disabling already placed pieces - whoops |
2.0.2 | Bug fix for cloned pieces being deleted at logout and login -sorry |
2.0.1 | First Release of 2.0 |
2.0.0 | 2.0.0 - Lots of betas |