WackysDatabase
WackysDatabase allows you to control all items/recipes/pieces/creatures/materials/textures via YML files with ServerSync and so much more.
Date uploaded | 4 months ago |
Version | 2.4.21 |
Download link | WackyMole-WackysDatabase-2.4.21.zip |
Downloads | 5166 |
Dependency string | WackyMole-WackysDatabase-2.4.21 |
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 is a mod for Valheim created by Wackymole & Rexabyte.
Version: Features
SetEffects: All of them!
4x more item configurations for Primary and Secondary Attacks
CustomIcons: Autogenerated or JPEG/PNG (64x64)
Add or remove conversions on smelter pieces
MaxCraftingStationLevel: YAML support
Mainscreen cloned items
Water Resistance is back
Slow Reload!
Visuals Modifier by Rexabit!
Seteffect by Azu!
Basic Creature cloning or replacing/renaming
Most components can be removed from YAML
sizeMultiplier: Make a small or HUGE world
Future Proof: Can add or remove components without much fuss
Description
WackysDatabase, or Wackydb, allows you to modify and customize items, pieces, recipes, effects, materials and creatures in Valheim without coding. With this mod, you can clone items, change their colors, create new items, and even translate language. It offers a wide range of possibilities for customization.
YML Knowledge
YML is easier to edit and change without getting confused on the syntac.
You can use https://www.yamllint.com/ to validate any yml code
Almost every component of items/pieces/recipes/effects/creatures can be deleted.
Some components are multilined where you can actually add your own stuff the ymls.
Installation
### InstallationDownload and extract the latest version of WackysDatabase into the BepInEx plugin folder (usually Valheim/BepInEx/plugins).
Run Valheim and join a world.
Go to Valheim/BepInEx/config/ and locate the "wackysDatabase" folder.
Inside the "wackysDatabase" folder, you will find three subfolders: "Items," "Recipes," and "Pieces."
Put the mod on the server to force server sync. The YAML files only need to be on the server. There's no need to share the YAML files.
For multiplayer, the mod has been locked down to prevent easy cheating. However, it is recommended to use the AzuAntiCheat and ServerCharacters mods for additional security. AzuAntiCheat ServerCharacters
General Knowledge
There are five (7) Objects that WackyDB touches. Items, Recipes, Pieces, Creatures, Pickables(Pickables and Treebase) Materials and Textures
Items are things in your inventory, you can pickup and maybe equip them.
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
Creatures are mobs, bosses ect.
Pickable are plants that you can pick like mushrooms, carrots, flint, ect. When you pick a pickable, it gives you the item associated to it.
Treebase are the final tree grown.
When you place pickable you are actually placing a piece in the (hoe usually). The piece controls how the plant will grow until it matures into a pickable.
Materials are the basic "colors" in the game, but hold a lot more than just RBG, can they can be tricky to get just right.
Textures are .pngs that hold the feel, appearance, or consistency of a surface or substance.
Nost lines in the YAMLS can be deleted. Only the required ones need to be in the files, when the line is deleted the computer interprets that as a null value.
Null is like I don't know, so I don't care, use the orginal values.
To delete the existing values you will use either '' for strings, "delete" for SE Effects or "-" for multiliners.
jpeg or png. 64 x 64 px - name like wacky.png, Must be in Icon Folder (Not ServerSynced)
FAQ
Frequently Asked Questions
Q: Can I use custom icons for items?
A: Yes, you can use autogenerated icons or provide JPEG/PNG icons (64x64) for customization.
Q: Can I add new items with this mod?
A: Yes, you can create new items and make them exclusive.
Q: Can I remove components from YAML files?
A: Yes, most components can be removed from the YAML files.
Q: Is the mod future-proof?
A: Yes, you can add or remove components without much hassle.
Q: Does the Water resistant not work on set effect? Like m_mods: m_type: Water
A: Water is a DamageModifiers that I added from Aedenthorn mod. I don't have plans to add it to m_mods.
Q: Do you have a Video;
A: Not yet, but YOU could make one!
Q: Is it possible to add a recipe for each upgrade of an item?
A: You can now have a crafting recipe and an upgrading recipe. You can't have a different recipe for each upgrade, unless you do item cloning/recipe cloning hack.
Q: My weapon clones are speedup/speed down.
A: The clones speed can change a little bit from their parents. Custom_AttackSpeed should always be 1 on a save.
If you notice a speed up or down a +- 0.1 should fix it.
FYI reminder that SpeedFactor deals with character movement speed while swinging/attacking and has nothing to do with speed of animation.
Q: What Folders do I need to give to my users?
A: Textures, Objects, Icons will NOT SYNC. I also recommend including the cache folder. Cache keeps track of Item/mock clones and materials
Q: How can I export material without _mat suffix ? I succeeded to export draugr_mat, but how for goblin or greydwarves ?
A: It's is unfortunately not possible right now to get all of the mats because of how the devs named and made different things.
If you have access to Unity you could look at the files themselves.
Q: What lines can I delete or how can I make somethings empty?
A: This is a long answer, but most lines in the YAMLS can be deleted. Only the required ones need to be in the files, when the line is deleted the computer interprets that as a null value.
Null is like I don't know, so I don't care, use the original values. To delete the existing values you will use either '' for strings, "delete" for SE Effects or "-" for multiliners.
Q: How do I make custom Icons?
A: Make a png or jpeg 64 x 64 px. Put it in Icons folder. In the customIcon line, put the filename. ie. wacky.png
Q: Will there be even MORE features and can I edit effects?
A: Yes I guess, because I just keep adding MOAR. - Send help, I might have a problem.
Q: Why are some of the SE Effects empty? Like SeData?
A: Well its complicated, I am having to grab them in a weird way, and not all SEs have SeData. Nothing to be done about it.
Q: What about Attack Projectile?
A: I need to look at projectiles in the future, for now they are disabled.
Q: Would it be possible to have one item take 2+ different item slots ? (say weapon + pants)
A: No, but you can edit two parts and one effect, which is effective when combined!
If one of them is missing, then the two pieces of equipment have no effect, which can be regarded as a limitation
Q: On an item "name" is the prefab name, "m_name" is the in game name? Then on recipes, "name" is the name of the prefab item name?
A: For cloned recipes, it looks at cloneprefabname for item prefab name. For regular recipes the name points to the item.
Q: I can't repair spawned in Cloned items, how do I fix?
A: Repairstation is set in the recipe, make a cloned recipe, and set to disable or change a req to SwordCheat. -
Wacky Later - I have no idea what I am trying to suggest here, but I am going to leave it for now. Do whatever makes it work.
Q: How does Piece Snapshot work?
A: Piece snapshot has given me a lot of problems so it only loads at Game.SpawnPlayer. If you do a wackydb_reload use the wackydb_snapshot command to reload snapshots.
Q: What is 0.0.1 Error message when I try to connect? I keep getting this one COOP.
A: 0.0.1 is a security feature that prevents people loading into a singleplayer world and then immediately connecting to a multiplayer world. It does seem to have some problems in COOP.
Just disable it on client and server if you are having problems. ExtraSecurity = false
Q: Can I clone or adjust Projectiles?
A: No, wackydb doesn't do projectiles, it may someday.
Configuration
Configuration
The configuration file for WackysDatabase is located at BepInEx/config/WackyMole.WackysDatabase.cfg. The available configurations and their default values are as follows:
- Force Server Config: true (forces server sync)
- Enable this mod: true
- IsDebug: true (enables debug information)
- StringisDebug: false (enables string debugging)
- IsAutoReload: false (enables auto-reload instead of using wackydb_reload command)
- NexusModID: 1825 (does not have much functionality)
- DedServer load Memory: false (dedicated server loads objects into the game like a client)
- ExtraSecurity on Servers: true (prevents loading into singleplayer and then loading into multiplayer)
- FileWatcher for YMLs: true (reloads the mod on any changes to the wackydatabase folder on the server)
- List of Extra Effects: "lightningAOE" (extra effects to look for from the base game or mods)
Console Commands
Console Commands
You will can reference https://valheim-modding.github.io/Jotunn/data/objects/item-list.html for Prefab names. Thank you JVL team
To use the console commands, press F5 in the game to open the game console. Make sure to enable the console for Valheim by adding "-console" to the launch options.
wackydb_reload
: Reloads all the YML files in the wackysDatabase folder. : This now works for admins on server now. So you could turn off Filewatcher and just do a manual reload on your client and forces all clients to reload.wackydb_reload_fast
: Fast reload that may cause game stutter.wackydb_save_recipe [ItemName]
: Saves a recipe YML in the wackysDatabase Recipe folder.wackydb_save_piece [PieceName]
: Saves a piece YML in the wackysDatabase Piece folder.wackydb_save_item [ItemName]
: Saves an item YML in the wackysDatabase Item folder.wackydb_save_creature [CreatureName]
: Saves a Creature YML in the wackysDatabase Creature folder.wackydb_save_pickable [pickableOrTreebaseName]
: Saves a Pickable/Treebase YML in the wackysDatabase Pickable folder.wackydb_save_material[MaterialName]
: Saves a Material clone YML in the wackysDatabase Material folder. Usually has a _mat at end end.wackydb_all_items
: Saves all items in the game into wackyDatabase-BulkYML.wackydb_all_recipes
: Saves all recipes in the game into wackyDatabase-BulkYML.wackydb_all_pieces [Hammer] [Optionally: Category]
: Saves all pieces in the game into wackyDatabase-BulkYML. Use 'Hammer' for default, or specify a different hammer name. Optionally, you can set a category to only get specific pieces in a cat.wackydb_all_se
: Retrieves almost all status effects in the game (including modded effects) and saves them into the Effects folder.wackydb_all_creatures
: Saves all creatures in game into Bulk Creature folder. (Not deer or birds?)wackydb_all_pickables
: Saves all pickables(pickable and treebase) in Bulk Pickables folder.wackydb_se [effectname]
: Retrieves a specific status effect and saves it into the Effect folder.wackydb_se_create
: Creates a clone of SetEffect_TrollArmor in the Status folder. You can edit it as needed.wackydb_help
: Shows a list of commands.wackydb_clone [recipe/item/piece/creature/mat/materials/se/pickable/treebase] [Prefab to clone] [Unique name for the clone]
: Clones an object and changes 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 --Extremely powerful command that allows you design your world however you would like.
wackydb_clone_recipeitem [Prefab to clone] [clone name]
: Clones an item and recipe at the same time. The recipe name will be Rname.wackydb_vfx
: Saves a vfx.txt file with all vfx effectswackydb_sfx
: Saves a sfx.txt file with all sfx effectswackydb_fx
: Saves a fx.txt file with all fx effectswackydb_help
: command listwackydb_describe[ObjectName]
: Saves describe of an object, so you have an idea of the structure of the object for materials and customVisualswackydb_sendtheload
: Experimental command that will send pngs and objs to clients utilizing ServerSync. I recommend the Network mod to uncap datarates.wackydb_get_piecehammers
: Saves all hammers, currently in your game to Hammer.txt filewackydb_material
: Generate a text file of all <Material> Gameobjects in vanilla game. Saves to textwackydb_clearcache
: Clears the current cache, materials and textures. Only do this after big yaml changes, cache is important - This command works on menu screenwackydb_snapshot
: Loads Snapshots for pieces after a manual reload
Get Wacky
Changing the SwordSilver to Blue and Increasing the size to 3
This is just changing the materials, not messing with CustomVisuals
Setting the Class: AEffects and GEffects. This YML Spawn_On_Trigger: Boar spawn_on_hit: Neck spawn_on_terrain_hit: Deer - Trigger_Effect: - sfx_dragon_death
Custom_AttackSpeed: 5 . 500% faster goes brrr
Cache System and Loading Order
Cache Folder
The cache system is very important for Item/mock clones.
It allows material colors to show up on main menu and allows cloned items to be touched by other mods and treated like normal items.
It is so important now that I recommend including your cache folder on updates to your modpack, along with Textures, Objects, Icons
If a cloned is not cached for the first run, errors may appear for users as other mods try to touch a item that wasn't created until very late.
The next load logon should fix the issues.
Feel free to removed the cache folder for big changes, but try to leave it for normal usage
Loading Order
This only really applies to other mods and sometimes server admins
Wackydb mod will load towards the end of the startup but that doesn't matter. The question is where to load the files and clones.
Too early and you won't get the files from the server/ Too late and you miss out on generating important things.
Cache clones are loaded in ZNetScene.Awake and ObjectDB.awake
Dedicated Servers (With DedLoad ON) and Servers( COOP server) and SOLO Clients load at ZoneSystem.Start [HarmonyPriority(Priority.HigherThanNormal)]
Connecting Clients load at Game._RequestRespawn [HarmonyPriority(Priority.Low)] ( always consistent is pretty important)
Console wackydb_reload /_fast - always reload immediately.
Anyway, it's hard to find a good spot so that you touch all base objects and not too late to add the clones.
Materials and CustomVisuals
Please be patient with this documentation. There is a lot to this one and I am slowly trying to learn from Rexabyte. There may be inaccurate information here.
Useful tools
https://rgbcolorpicker.com/0-1
https://github.com/Wacky-Mole/WackysDatabase/tree/master/Documentation - You Are GOING TO NEED TO STUDY THIS!
Structures
Welcome to Rexabyte's Guide on Understanding Material Management by Wacky!
A Material is a powerful combination of a shader, texture, and color. For most items, a single material is sufficient, but more complex things like armors can utilize multiple materials.
To create a basic material, simply use the 'material' section and combine various _mats. Oh, by the way, "mat" or "mats" refer to materials and are often appended at the end of their names.
When describing an item's render using "wackydb_describe," you'll find the materials section with the current name of the mat.
To save or clone a material, employ the functions "wackydb_save_material [mat]" or "wackydb_clone [mat/material] [mat] [clonename]" The newly created material file can be found in the materials folder.
Now, let's get creative with adjustments! Most commonly, you'll be working with colors. Use https://rgbcolorpicker.com/0-1 to find the 0-1 values RGBA.
Textures play a vital role, particularly with armors and creatures. Remember, they are saved along with the material in PNG format. However, WackyDB won't automatically sync them, so you'll need to manually color or edit the texture files. Textures may use base vanilla ones like Red or Blue
Excitingly, changes to materials automatically update without requiring a reload. Icons, too, reflect these changes unless you opt for a custom icon.
For a shortcut, you can use vanilla materials by selecting one from the generated wackydb_material materials.txt file.
Lastly, a single material YAML (yml) can be applied to multiple items, creatures, or pieces. Keep in mind that some objects might need more information than others for proper display.
Now go forth, and let your creativity run wild with Rex's Material Management!
Materials and CustomVisuals
material
(string, optional): The name of the materialcustomVisual
(CustomVisual, optional): A more specific targetting for materials, generally only useful for player armors.
Material Definition
name
(string, required): The name of the new material createdoriginal
(string, required): The name of the material to clone fromoverwrite
(boolean, optional): True to overwrite the original material.changes
(MaterialChanges, required): The set of changes to apply to the material
Material Changes Definition
colors
(Dictionary<MaterialProperty: string, MaterialValue: Array<int>[4]>, optional) : A collection of keys (property names) and their associated value. The value is in array format [RED, GREEN, BLUE, ALPHA]. Values should range from 0 to 1 but can exceed 1.floats
(Dictionary<MaterialProperty: string, MaterialValue: float>, optional): A collection of keys (property names) and their associated float value. The value can be any float value but it is recommended to stay within the range specified by describing the prefab that has this material.textures
(Dictionary<MaterialProperty: string, MaterialValue: string>, optional): A collection of keys (property names) and their associated string value. The string value is the name of the texture to be used. The image should be a .png file stores in the 'Textures' section in the configuration folder. Do not include '.png', if the file ismy_texture.png
specifymy_texture
as the value here.
Custom Visual Definition
base_mat
: (string, optional): The name of the material, generally this applies to the model for the prefab.chest
: (string, optional): The name of the material, generally this is only useful for chest armor. It will use the texture assigned to the "_ChestTex" property of the material.legs
: (string. optional): The name of the material, generally this is only useful for leg armor. It will use the texture assigned to the "_LegsTex" property of the material.
Future Guide by Lughbaloo
Item components
Item Config
Properties
-
name
(string, required): The name of the item. -
m_weight
(float, required): The weight of the item. -
m_name
(string):The in game name. -
m_description
(string): The description of the item. -
clonePrefabName
(string): The name of the prefab to clone. -
mockName
(string): The name of the mock object. -
customIcon
(string): The custom icon for the item. PNG 64x64, Icon needs to be in the Icon folder ( doesn't server sync) -
material
(string): The material of the item. Images on nexus https://www.nexusmods.com/valheim/mods/1825 of the various changes you can make.
Visit the Material and CustomVisual Section to understand this complex system. -
materials
(string): "It's basically the same as material but it applies the materials specified for the entire renderer" -
customVisual
(CustomVisual): The custom visual data of the item. -
snapshotRotation
((string) (x,y,z)int,int,int) - Default null - Changes the angle of snapshot cam. 0-360 degrees. Can do 33,44,55 for example.
Very annoying to perfect, but it's an option now for the masochists. -
snapshotOnMaterialChange
(bool) - Default true - Makes a snapshot on item material change -
sizeMultiplier
(string): The size multiplier of the item. You can go from .01 to 1000.5 if you want. You can specify x|y|z like "1.23|3.0|2" or a singular value "2.0" Have fun -
scale_weight_by_quality
(float): The scaling factor for weight based on quality.
Changing material or CustomVisual automatically calls snapshot to generate a new Icon or give it a customIcon
CustomVisual
base_mat
(string): The base material of the custom visual.chest
(string): The chest visual.legs
(string): The legs visual.realtime
(string): The realtime visual.
Primary_Attack
(AttackArm): The primary attack data.
Primary Attack
-
AttackType
(Attack.AttackType): The type of attack. -
Attack_Animation
(string): The animation for the attack. -
Attack_Random_Animation
(int): The random animation for the attack. -
Chain_Attacks
(int): The number of chain attacks. -
Hit_Terrain
(bool): Indicates whether the attack can hit terrain. -
Custom_AttackSpeed
(float): This mod keeps track of this adjustment 1.0 is normal speed. 2.0 is twice as fast. Should be compatible with most other mods that increase speed. -
m_attackStamina
(float): The stamina cost of the attack. -
m_eitrCost
(float): The eitr cost of the attack. -
AttackHealthCost
(float): The health cost of the attack. -
m_attackHealthPercentage
(float): The health cost percentage of the attack. -
SpeedFactor
(float): The speed up of a character's movements when they are actively attacking. -
DmgMultiplier
(float): The damage multiplier of the attack. -
ForceMultiplier
(float): The force multiplier of the attack. -
StaggerMultiplier
(float): The stagger multiplier of the attack. -
RecoilMultiplier
(float): The recoil multiplier of the attack. -
AttackRange
(float): The range of the attack. -
AttackHeight
(float): The height of the attack. -
Spawn_On_Trigger
(string): The spawn-on-trigger effect of the attack. -
Requires_Reload
(bool): Indicates whether the attack requires reloading. -
Reload_Animation
(string): The animation for reloading. -
ReloadTime
(float): The time it takes to reload. - Added Back - Might work - Didn't work for crossbows before -
ReloadTimeMultiplier
(float): "Multiplier for reload speed of crossbows. Does not affect Vanilla scaling with skill level. Values 0.1 to 2.0. Default 1.0 -
Reload_Stamina_Drain
(float): The stamina drain during reloading. -
Reload_Eitr_Drain
(float): The Eitr drain during reloading. -
Bow_Draw
(bool): Indicates whether the bow is drawn for the attack. -
Bow_Duration_Min
(float): The minimum duration of the bow. -
Bow_Stamina_Drain
(float): The stamina drain during bow usage. -
Bow_Animation_State
(string): The animation state for the bow. -
Attack_Angle
(float): The angle of the attack. -
Attack_Ray_Width
(float): The width of the attack ray. -
Lower_Dmg_Per_Hit
(bool): Indicates whether the attack lowers damage per hit. -
Hit_Through_Walls
(bool): Indicates whether the attack can hit through walls. -
Multi_Hit
(bool): Indicates whether the attack can hit multiple times. -
Pickaxe_Special
(bool): Indicates whether it is a special pickaxe attack. -
Last_Chain_Dmg_Multiplier
(float): The damage multiplier for the last chain attack. -
'Attack_status_effect' (string) - SE - The attack status effect of the item. This is a custom patch for wackydb. You can now set primary and secondary differently. Setting this will override the normal Attack_status_effect.
-
'Attack_status_effect_chance' (float) 0.0 to 1 (100%) Set a different chance for primary and secondary
-
The vanilla Code for chain multiplier
if (m_attackChainLevels > 1 && m_currentAttackCainLevel == m_attackChainLevels - 1 && m_lastChainDamageMultiplier > 1f) { hitData.m_damage.Modify(m_lastChainDamageMultiplier); hitData.m_pushForce *= 1.2f; }
-
Reset_Chain_If_hit
(DestructibleType): The damage multiplier for the last chain attack. -
SpawnOnHit
(string): Spawn any Gameobject/Mob ect.. -
SpawnOnHit_Chance
(float): Chance Values 0 to 1.0 (100%) -
Raise_Skill_Amount
(float): Raise a skill this amount with the weapon in hand or when used? -
Skill_Hit_Type
(DestructibleType): Skill to Raise. -
Special_Hit_Skill
(SkillType): I don't know what it means by special hit. -
Special_Hit_Type
(DestructibleType): The Special Hit Type. I don't know what these last 4 fields do, if you figure it out, let me know. -
Attack_Projectile
(string): The Gameobject projectile has to have Projectile Componenent. Disabled for now. -
Projectile_Vel
(float): The velocity of the projectile. -
Projectile_Accuraccy
(float): The accuracy of the projectile. -
Projectiles
(int): The number of projectiles. -
AEffects
(AEffects): The additional effects of the attack. OLD -
AEffectsPLUS
(AEffectsPLUS): The additional effects of the attack PLUS version- more.
Class: AEffectsPLUS
Hit_Effects
(string[]): The hit effects of the attack.Hit_Terrain_Effects
(string[]): The effects when hitting terrain.Start_Effect
(string[]): The starting effect of the attack.Trigger_Effect
(string[]): The triggered effect of the attack.Trail_Effect
(string[]): The effect trail of the attack.Burst_Effect
(string[]): The burst effect of the attack.
To delete existing Effects
m_enabled
(bool)m_variant
(int) Default is -1, most cases leave at -1m_attach
(bool) - attach to the point or parent?m_follow
(bool) - follow the parent aroundm_inheritParentRotation
(bool) - what is saysm_inheritParentScale
(bool) - Use parent scale based on the time of effect creationm_multiplyParentVisualScale
(bool) - Scale the size of the parent's size?m_randomRotation
(bool) - randomRotationm_scale
(bool) - Scales the sizem_childTransform
(string) Probably don't mess with unless you are looking in Unity or unity explorer
Secondary Attack
Is the same as Primary just for the secondary attack.
Damage
(WDamages): The damage values of the item.
Damage_Per_Level
(WDamages): The damage values per level of the item.
Damages
Blunt
(float): The blunt damage value.Chop
(float): The chop damage value.Damage
(float): The general damage value.Fire
(float): The fire damage value.Frost
(float): The frost damage value.Lightning
(float): The lightning damage value.Pickaxe
(float): The pickaxe damage value.Pierce
(float): The pierce damage value.Poison
(float): The poison damage value.Slash
(float): The slash damage value.Spirit
(float): The spirit damage value.
Armor
(ArmorData): The armor data of the item.
Armor
armor
(float): The armor value.armorPerLevel
(float): The armor value per level.
FoodStats
(FoodData): The food-related statistics of the item.
FoodData
m_foodHealth
(float): The health provided by the food.m_foodStamina
(float): The stamina provided by the food.m_foodRegen
(float): The regeneration rate of the food.m_foodBurnTime
(float): The burn time of the food.m_FoodEitr
(float): The eitr provided by the food.
ConsumableStatusEffect
(string): On consumption (eating), give this status effect. - Doesn't make things Edible
Moddifiers
(StatMods): The stat modifiers of the item.
StatMods
m_movementModifier
(float): The movement modifier.m_EitrRegen
(float): The eitr regeneration modifier.m_BaseItemStaminaModifier
(float): - (Deleted/Removed in Ashlands)m_homeItemsStaminaModifier
(float): - (Added Ashlands)m_heatResistanceModifier
(float): - (Added Ashlands)m_jumpStaminaModifier
(float): - (Added Ashlands)m_attackStaminaModifier
(float): - (Added Ashlands)m_blockStaminaModifier
(float): - (Added Ashlands)m_dodgeStaminaModifier
(float): - (Added Ashlands)m_swimStaminaModifier
(float): - (Added Ashlands)m_sneakStaminaModifier
(float): - (Added Ashlands)m_runStaminaModifier
(float): - (Added Ashlands)
SE_Equip
(SE_Equip): The special effect data for equipping the item.
If you want an Item to have an Effect by itself, put the effect name here
SE_SET_Equip
(SE_SET_Equip): All of this should be the same accross all items that have this set
You can delete an SE_Equip or SE_SET_Equip from item using EffectName : delete
SE_Equip
EffectName
(string): The name of the effect for equipping.
SE_SET_Equip
SetName
(string): The name of the set.Size
(int): The size of the set.EffectName
(string): The name of the effect for equipping the set.
To delete existing
To delete existing
ShieldStats
(ShieldData): The shield statistics of the item.
-
Shield
-
m_blockPower
(float): The block power of the shield. -
m_blockPowerPerLevel
(float): The block power per level of the shield. -
m_timedBlockBonus
(float): The timed block bonus of the shield. -
m_deflectionForce
(float): The deflection force of the shield. -
m_deflectionForcePerLevel
(float): The deflection force per level of the shield.
Properties Continued
m_maxStackSize
(int): The maximum stack size of the item.m_canBeReparied
(bool): Indicates whether the item can be repaired.m_destroyBroken
(bool): Indicates whether the item gets destroyed when broken.m_dodgeable
(bool): Indicates whether the item can be dodged.Attack_status_effect
(string): The attack status effect of the item. (Can remove current status with 'delete')Attack_status_effect_chance
(float): Chance of attack status effect of the item.spawn_on_hit
(string): The spawn-on-hit effect of the item. ('delete' to remove)spawn_on_terrain_hit
(string): The spawn-on-terrain-hit effect of the item. ('delete' to remove)m_questItem
(bool): Indicates whether the item is a quest item.m_teleportable
(bool): Indicates whether the item is teleportable.m_backstabbonus
(float): The backstab bonus of the item.m_knockback
(float): The knockback value of the item.m_useDurability
(bool): Indicates whether the item uses durability.m_useDurabilityDrain
(float): The durability drain when the item is used.m_durabilityDrain
(float): The durability drain of the item.m_maxDurability
(float): The maximum durability of the item.m_durabilityPerLevel
(float): The durability increase per level of the item.m_equipDuration
(float): The equip duration of the item.m_skillType
(Skills.SkillType): The skill type of the item.m_animationState
(ItemDrop.ItemData.AnimationState): The animation state of the item.m_itemType
(ItemDrop.ItemData.ItemType): The item type of the item.Attach_Override
(ItemDrop.ItemData.ItemType): Override where the attachment is placed on character.m_toolTier
(int): The tool tier of the item.m_maxQuality
(int): The maximum quality of the item.m_value
(int): The value of the item. The value of the item. 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
(List<string>): The list of damage modifiers for the item.
DamageModifiers
The first value is the damage type, the second value is the resistance level.
Blunt Slash Pierce Chop Pickaxe Physical Fire Frost Lightning Elemental Poison Spirit Water
Normal - no change
Resistant - increases status countdown speed by 100%
Weak - Decreases status countdown speed by 1/3
Immune - prevents status effect
Ignore - prevents status effect
VeryResistant - Prevent status effect application except when actively in, and increases status countdown speed by 100%
VeryWeak - Decreases status countdown speed by 2/3
To delete all existing Damage modifiers
GEffects
(GEffects): The additional game effects of the item. OLD
GEffectsPLUS
(GEffectsPLUS): The additional game effects of the item.
GEffectsPLUS
Hit_Effects
(string[]): The hit effects.Hit_Terrain_Effects
(string[]): The effects when hitting terrain.Start_Effect
(string[]): The starting effect.Hold_Start_Effects
(string[]): The hold starting effects.Trigger_Effect
(string[]): The triggered effect.Trail_Effect
(string[]): The effect trail.
-
m_enabled
(bool) -
m_variant
(int) Default is -1, most cases leave at -1 -
m_attach
(bool) - attach to the point or parent? -
m_follow
(bool) - follow the parent around -
m_inheritParentRotation
(bool) - what is says -
m_inheritParentScale
(bool) - Use parent scale based on the time of effect creation -
m_multiplyParentVisualScale
(bool) - Scale the size of the parent's size? -
m_randomRotation
(bool) - randomRotation -
m_scale
(bool) - Scales the size -
m_childTransform
(string) Probably don't mess with unless you are looking in Unity or unity explorerpublic enum SkillType { None = 0, Swords = 1, Knives = 2, Clubs = 3, Polearms = 4, Spears = 5, Blocking = 6, Axes = 7, Bows = 8, ElementalMagic = 9, BloodMagic = 10, Unarmed = 11, Pickaxes = 12, WoodCutting = 13, Crossbows = 14, Jump = 100, Sneak = 101, Run = 102, Swim = 103, Fishing = 104, Ride = 110, All = 999 } public enum DestructibleType { None = 0, Default = 1, Tree = 2, Character = 4, Everything = 7 }
Pickables Components
Pickables
Name
(string, required): The unique name of the Pickable.itemPrefab
(string, required): The name of the item that spawns when picked.cloneOfWhatPickable
(string): If a clone, the name of the pickable Prefab to clone.material
(string): The material of the pickable. See Materials in README for more information.amount
(int): Amount of itemPrefab to spawn when picked.size
(float): Multiplier for the size of the pickable. You can go from .01 to 1000.5 if you want. You can specify x|y|z like "1.23|3.0|2" or a singular value "2.0"overrideName
(string): The in game name of the pickable.respawnTimer
(float): Time in Minutes for the Pickable to respawn. Set to 0 to disable respawn.spawnOffset
(float): Vertical offset in meters from the pickable where the itemPrefab spawns.ifHasHealth
(float): Sets the health of the pickable.hiddenChildWhenPicked
(string): Child Gameobject that is hidden when pickable is picked, has respawn timer usually.
Treebase
name
(string, required): The name of the tree.treeTealth
(int, required): health of the tree needed to cut down.cloneOfWhatTree
(string): Clone what Treebase for this.size
(string): The size multiplier of the item. You can go from .01 to 1000.5 if you want. You can specify x|y|z like "1.23|3.0|2" or a singular value "2.0"minToolTier
(int): Min Axe Tool Tier to cut down tree.
Pickables are compatible with other mods, but mods like PlantEverything will override pretty much all non clones.
Piece components
Pieces
name
(string, required): The name of the piece.piecehammer
(string, required): The piece hammer required to build the piece.m_name
(string): The In Game Piece NamesizeMultiplier
(string): The size multiplier of the piece. Any float range 1.0 is normal size. You can specify x|y|z like "1.23|3.0|2" or a singular value "2.0"m_description
(string): The description of the piece.customIcon
(string): The custom icon for the piece. PNG or JPEG, 64 x 64, Must be in Icon Folder (Icons do not Synced)clonePrefabName
(string): The name of the prefab to clone.material
(string): Visit Material Section and Custom Visual SectiondamagedMaterial
(string): The material of the piece when damaged.craftingStation
(string): The crafting station required to craft the piece.piecehammerCategory
(string): The category of the piece hammer.minStationLevel
(int): The minimum level of the crafting station required.amount
(int): The amount of the piece.disabled
(bool): Indicates whether the piece is disabled.adminonly
(bool): Indicates whether the piece is admin-only.comfort
(ComfortData): The comfort data of the piece.groundPiece
(bool): Indicates whether the piece is a ground piece.ground
(bool): Indicates whether the piece can be placed on the ground.waterPiece
(bool): Indicates whether the piece is a water piece.noInWater
(bool): Indicates whether the piece cannot be placed in water.notOnFloor
(bool): Indicates whether the piece cannot be placed on the floor.notOnWood
(bool): Indicates whether the piece cannot be placed on the wood.onlyinTeleportArea
(bool): Indicates whether the piece can only be placed in teleport areas. Stone Groups making a CircleallowedInDungeons
(bool): Indicates whether the piece is allowed in dungeons.canBeRemoved
(bool): Indicates whether the piece can be removed.wearNTearData
(WearNTearData): The wear and tear data of the piece.craftingStationData
(CraftingStationData): The crafting station data of the piece.cSExtensionData
(CSExtensionData): The crafting station extension data of the piece.contData
(ContainerData): The container data of the piece.smelterData
(SmelterData): The smelter data of the piece.build
(List<string>): The list of requirement items for the piece.
build: requirements to build: Item:amount:amountPerLevel:refundable,
To make something free. build:
- Wood:0:0:True
ComfortData
comfort
(int): The comfort value of the piece.comfortGroup
(Piece.ComfortGroup): The comfort group of the piece.comfortObject
(GameObject): The comfort object of the piece.
WearNTearData
health
(float): The health of the piece.damageModifiers
(HitData.DamageModifiers): The damage modifiers for wear and tear.noRoofWear
(bool): Indicates whether the piece does not wear when under a roof.noSupportWear
(bool): Indicates whether the piece does not wear when supported.supports
(bool): Indicates whether the piece provides support.triggerPrivateArea
(bool): Indicates whether the piece triggers the private area.
CraftingStationData
cStationCustomIcon
(string): The custom icon for the crafting station. May remove - Not really usefuldiscoveryRange
(float): The discovery range of the crafting station. Range that you discovery the piece for the first timebuildRange
(float): The build range of the crafting station.craftRequiresRoof
(bool): Indicates whether crafting at the station requires a roof.craftRequiresFire
(bool): Indicates whether crafting at the station requires a fire.showBasicRecipes
(bool): Indicates whether to show basic recipes at the station.useDistance
(float): The use distance of the station.useAnimation
(int): The animation to use for station usage.
CSExtensionData
MainCraftingStationName
(string): The name of the main crafting station.maxStationDistance
(float): The maximum distance for the extension to connect to the main station.continousConnection
(bool): Indicates whether the extension provides continuous connection.stack
(bool): Indicates whether the extension can stack.
ContainerData
Don't mess with the container size (width and height): I added for someone, but this will mess up things. Use AzuContainers
Width
(int): The width of the container.Height
(int): The height of the container.CheckWard
(bool): Indicates whether the container checks for ward placement.AutoDestoryIfEmpty
(bool): Indicates whether the container auto-destroys if empty.
BeehiveData
The BeehiveData class represents data for a beehive in the game. It contains the following properties:
effectOnlyInDaylight
(bool): Indicates whether the effect only occurs during daylight.maxCover
(float): The maximum cover value.biomes
(Heightmap.Biome): The biome in which the beehive is located.secPerUnit
(float): The time, in seconds, per unit.maxAmount
(int): The maximum amount of beehives.dropItem
(string): The item that is dropped from the beehive.effects
(string[]): An array of effects associated with the beehive. - don't ask me for more on other pieces!extractText
(string): Text related to extracting from the beehive.checkText
(string): Text related to checking the beehive.areaText
(string): Text related to the area around the beehive.freespaceText
(string): Text related to free space around the beehive.sleepText
(string): Text related to the sleep state of the beehive.happyText
(string): Text related to the happiness of the beehive.
SapData
secPerUnit
(float): Secs per unitmaxLevel
(int): Max level of the extractorproducedItem
(string): What spawns when you extractconnectedToWhat
(string): What do you need to put this piece on to get extraction
Warning - Changing this won't really do anything, the other piece/object needs to have a Resource Root script on it.
extractText
(string): Extraction TextdrainingText
(string): Draining TextdrainingSlowText
(string): idk, slow draining textnotConnectedText
(string): Not connected textfullText
(float): FullText
FermentorData
fermDuration
(float): How long it takes to make a batchfermConversion
(List<FermenterConversionList>): A list of ferm conversions.
FermenterConversionList
FromName
(string): The name of the item to convert from.ToName
(string): The name of the item to convert to.Amount
(int): The amount to spawn when batch is done.Remove
(bool): Default is false, this allows you to remove existing conversions. Now items not listed shouldn't be affected
IncineratorData
This will overwrite any other oblinerator changes!
defaultDrop
(string): Specifies the default item dropped by the obliterator.defaultCostPerDrop
(int): Indicates the default cost per drop when using the obliterator.incineratorConversion
(List<ObliteratorList>): Conversion List
ObliteratorList
Result
: (string ) Specifies the resulting item produced by the conversion.ResultAmount
: (int ) Indicates the amount of the resulting item generated.Priority
: (int ) Defines the priority level of this conversion option.
Higher priority takes precedence on conversion, but it will convert to multiple into item typesRequireOnlyOne
: (bool ) Specifies whether only one ingredient is required for this conversion.Requirements
: (List<ObRequirementList> ) Stores the list of requirements needed for this conversion, including the required items and their amounts.
ObRequirementList
Name
: (string ) Specifies the name of the required item for the conversion.Amount
: (int ) Indicates the quantity of the required item needed for the conversion.
Changing this dramtically allows the obliterator/incinerator to become a recycler. Have fun!
CookingStationData
Warning changing to new CookConversions items can trigger minor errors as well as food items not appearing in oven
addItemTooltip
(string): The tooltip for adding items to the cooking station.overcookedItem
(string): The item produced when cooking is overdone.fuelItem
(string): The fuel item used in the cooking station.requireFire
(bool): Indicates whether the cooking station requires fire.maxFuel
(int): The maximum fuel capacity of the cooking station.secPerFuel
(int): The time, in seconds, per unit of fuel.cookConversion
(List<CookStationConversionList>): A list of cooking conversions.replaceDefaultConversion
(bool) Default true - Override all of the conversion list. - false just adds to existing list
CookStationConversionList
FromName
(string): The name of the item to convert from.ToName
(string): The name of the item to convert to.CookTime
(float): The cooking time for the conversion.Remove
(bool): Default is false, this allows you to remove existing conversions. Now items not listed shouldn't be affected
SmelterData
smelterName
(string): The name of the smelter. (Disabled and Removed)addOreTooltip
(string): The tooltip for adding ore to the smelter.emptyOreTooltip
(string): The tooltip for emptying ore from the smelter.fuelItem
(fuelItemData): The fuel item for the smelter.maxOre
(int): The maximum ore capacity of the smelter.maxFuel
(int): The maximum fuel capacity of the smelter.fuelPerProduct
(int): The amount of fuel required per product.secPerProduct
(float): The time taken per product.spawnStack
(bool): Indicates whether the smelter spawns stacked products.requiresRoof
(bool): Indicates whether the smelter requires a roof.addOreAnimationLength
(float): The length of the animation for adding ore.smelterConversion
(List<SmelterConversionList>): The list of smelter conversions.replaceDefaultConversion
(bool) Default true - Override all of the conversion list. - false just adds to existing list
fuelItemData
name
(string): The name of the fuel item.
Fireplace
StartFuel
(float): How much fuel the piece starts with with you first build it.MaxFuel
(float): Max Fuel the piece holdsSecPerFuel
(float): Time to burn one piece.InfiniteFuel
(bool): Woot Woot! Never refilFuelType
(string): Fuel that is burned for the piece, any itemIgniteInterval
(float): Chance to spread fire time check. (Only applies to Biomes that have Fire Hazard)IgniteChance
(float): Chance of fire spread (Only applies to Biomes that have Fire Hazard)IgniteSpread
(int): Not sure on this Spread value (Only applies to Biomes that have Fire Hazard)
PlantData
m_name
(string): In game name of the plant.GrowTime
(int): Minimum time in seconds for the plant to transition into a Prefab. Exact time chosen randomly within the range of MaxGrowTime.MaxGrowTime
(float): Maximum time in seconds for the plant to transition into a Prefab.GrowPrefab
(string): Name of the prefab the plant turns into after the timer. Can be pretty much anything. Anything anything.MinSize
(float): Minimum size multiplier of the prefab spawned. Overrides Pickable `size.MaxSize
(float): Maximum size multiplier of the prefab spawned. Overrides Pickablesize
.GrowRadius
(float): Radius in meters from center that the plant needs clearance to grow.GrowRadiusVines
(float): Radius from center that the plant needs clearance from other vines to grow. Inverse, higher numbers reduces the range.CultivatedGround
(bool): Whether or not the plant needs cultivated ground to grow.DestroyIfCantGrow
(bool): Whether or not the plant disappears if growing is restricted.TolerateHeat
(bool): Whether or not the plant can survive hot climates. Overrides Biomes.TolerateCold
(bool): Whether or not the plant can survive cold climates. Overrides Biomes.Biomes
(string): List of Biomes that the plant is allowed to grow in. Meadows, BlackForest, Plains, AshLands, Swamp, Mountain, None, Everything, All, DeepNorth, Ocean
TeleportWorldData
AllowAllItems
(bool) Allow all items through portals. Otherwise use default rule checks
SmelterConversionList
FromName
(string): The name of the item to convert from.ToName
(string): The name of the item to convert to.Remove
(bool): Default is false, this allows you to remove existing conversions. Now items not listed shouldn't be affected
Delete all by using "-"
Change the size of any Piece, make adminonly and build HUGE or TINY structures.
Recipe Components
Recipes
Most recipes are saved with itemname in name for recipe. For actual recipes they will have Recipe_ in the name like Recipe_Bronze or Recipe_Bronze5.
Actual recipes can be found in bulk save now and with JVL docs. https://valheim-modding.github.io/Jotunn/data/objects/recipe-list.html They have no for clonePrefabName: NO . Actual Recipes can NOT be cloned.
-
name
(string, required): The name of the recipe. -
clonePrefabName
(string): The name of the Item prefab to craft. -
craftingStation
(string): The crafting station required to craft the recipe. "" is hand crafted -
minStationLevel
(int): The minimum level of the crafting station required. -
maxStationLevelCap
(int): The maximum level cap of the crafting station. -
repairStation
(string): The repair station required to repair the recipe. -
amount
(int): The amount of the recipe. -
disabled
(bool): Indicates whether the recipe is disabled. -
disabledUpgrade
(bool): Disables allowing upgrades in the upgrade tab, can be used in combination with disable to only allow upgrading and not crafting. -
requireOnlyOneIngredient
(bool): Indicates whether the recipe requires only one ingredient. -
upgrade_reqs
(List<string>): By default will be empty, it allows you to speficy complete different requirements to upgrade than craft.
Actually adds a second hidden recipe to game with the name + _upgrade.
(upgrade_reqs) requirements to upgrade: Item:amountPerLevel
-
reqs
(List<string>, required): The list of required ingredients for the recipe.
(Required) requirements to build: Item:amount:amountPerLevel:refundable:
Arrows x50 will be put above Arrow x20
Creatures
CreatureData
You can replace all Boars in the game with this Dude.
name
(string, required): The name of the creature.mob_display_name
(string, required): The display name of the creature in game.custom_material
(string): The custom material for the creature. - Disabled for now - Will not workclone_creature
(string): The name of the creature to clone.creature_replacer
(string): The creature replacer. This will replace this creature with the one named here. All spawns will be replaced with this creature.
SE_Effects
SE_Effects
Name
(string): The name of the status effect.Status_m_name
(string): In Game NameCategory
(string): The category of the status effect.IconName
(string): The name of the icon for the status effect. Doesn't do much, can't change.ClonedSE
(string): Holds the name of the SE you are cloning. Otherwise new SE's will use SetEffect_TrollArmorCustomIcon
(string): The custom icon for the status effect. customIcon, jpeg or png. ie wacky.png 64 x 64FlashIcon
(bool): Indicates whether the icon should flash.CooldownIcon
(bool): Indicates whether the icon is for a cooldown.Tooltip
(string): The tooltip for the status effect.Attributes
(StatusEffect.StatusAttribute): The attributes of the status effect.StartMessageLoc
(MessageHud.MessageType): The localization message type for the start message.StartMessage
(string): The start message of the status effect.StopMessageLoc
(MessageHud.MessageType): The localization message type for the stop message.StopMessage
(string): The stop message of the status effect.RepeatMessageLoc
(MessageHud.MessageType): The localization message type for the repeat message.RepeatMessage
(string): The repeat message of the status effect.RepeatInterval
(float): The repeat interval of the status effect.TimeToLive
(float): The time to live of the status effect.StartEffect_
(string[]): The string of start effects for the status effect.StopEffect_
(string[]): The string of stop effects for the status effect.Cooldown
(float): The cooldown of the status effect.ActivationAnimation
(string): The animation for the activation of the status effect.SeData
(SEdata): The additional data for the status effect.SeShield
(SEShield): The additional data for the shield status effect.
Class: SEShield
Only for Staff_shield at the moment
AbsorbDmg
(float): How much the shield protects against.AbsorbDmgWorldLevel
(float): No idea, maybe future plans?LevelUpSkillFactor
(float): How much you can level up per usage.TtlPerItemLevel
(int): How long the shield lasts.AbsorbDmgPerSkill
(float): How much additional shield you get per skill level.
Class: SEdata
m_tickInterval
(float): The tick interval for the status effect.m_healthPerTickMinHealthPercentage
(float): The minimum health percentage per tick.m_healthPerTick
(float): The health per tick.m_healthOverTime
(float): The health over time value.m_healthOverTimeDuration
(float): The duration of health over time.m_healthOverTimeInterval
(float): The time interval for health over time.m_staminaOverTime
(float): The stamina over time value.m_staminaOverTimeDuration
(float): The duration of stamina over time.m_staminaDrainPerSec
(float): The stamina drain per second.m_runStaminaDrainModifier
(float): The stamina drain modifier for running.m_jumpStaminaUseModifier
(float): The stamina use modifier for jumping.m_eitrOverTime
(float): The eitr over time value.m_eitrOverTimeDuration
(float): The duration of eitr over time.m_healthRegenMultiplier
(float): The health regeneration multiplier.m_staminaRegenMultiplier
(float): The stamina regeneration multiplier.m_eitrRegenMultiplier
(float): The eitr regeneration multiplier.m_raiseSkill
(Skills.SkillType): The skill type to raise as a multiplier or %m_raiseSkillModifier
(float): The skill modifier to raise as a multiplier.m_skillLevel
(Skills.SkillType): The skill type to modify the level.- Flat Ratem_skillLevelModifier
(float): The skill level modifier.m_skillLevel2
(Skills.SkillType): Another skill type to modify the level.Flat Ratem_skillLevelModifier2
(float): Another skill level modifier.m_mods
(List<HitData.DamageModPair>): The list of damage modifiers for hit.m_modifyAttackSkill
(Skills.SkillType): The skill type to modify the attack.m_damageModifier
(float): The damage modifier for the attack.m_noiseModifier
(float): The noise modifier for sneaking.m_stealthModifier
(float): The stealth modifier for sneaking.m_addMaxCarryWeight
(float): The additional maximum carry weight.m_speedModifier
(float): The speed modifier.m_jumpModifier
(Vector3): Allows you to control how much a charcter can jump or not. Very small values make big difference. Usual range is -1 to 1. You can delete the normalized. You only need the x,y,z lines.m_maxMaxFallSpeed
(float): The maximum maximum fall speed.m_fallDamageModifier
(float): The fall damage modifier.m_tickTimer
(float): The tick timer.m_healthOverTimeTimer
(float): The health over time timer.m_healthOverTimeTicks
(float): The health over time ticks.m_healthOverTimeTickHP
(float): The health over time tick health points.
You should be able to delete existing m_mods, by
m_mods:
-
Use wackydb_se_create as a "template" to create a new status effect
MOCK System
https://github.com/Wacky-Mole/WackysDatabase/tree/master/Documentation/Mock Examples
Example Files and Item Yaml for Bike
All credits to @KG for making this incredible system.
In the Wackydatabase folder, there is the Object Folder.
Objects can only be items that you can pick up/trade at the moment, but mocks are limitless in the possibilities of what you can add.
Pick an object like bike.obj and bike_albedo.png and put them into the Object folder. It should load up the new GameObject at the start. You can then use wackydb_save_item to customize and/or create a recipe.
The object folder matches based on the preceding name, so bike_ matches to bike.
It looks for PNGs with "_albedo", "_metallic", and "_normal".
Auto Gens Icon
This system is not well tested, so please give me feedback and submit bug reports for any bugs.
2.3.1, I made default material as wood. I think it can be overwritten, but I am unsure.
1.xx ChangeLog
Version 1.4.2
Had to disable Piece snapshot because of hovering pieces stacking up on each other, hopefully someone fixes it someday.
You might have to destroy the existing pieces at (0,0) with infinity hammer quite a lot depending on reloads and players joining.
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
Full Features
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
- [x] Able to modify Set effects
- [x] Cloned Items show up on MainScreen
- [x] Adjust attack values of items
- [x] Able to add or remove conversions on smelter pieces
- [x] Able to change the size of anything Wackymole
Feedback
For questions or suggestions please join discord channel: Odin Plus Team or my discord at Wolf Den
Support me at https://www.buymeacoffee.com/WackyMole or https://ko-fi.com/wackymole
Last notes
Last notes:
This mod loads at various places to ensure that it can touch all objects while allowing other mods to touch some wackydb clones.
The primary purpose of this mod is to edit objects, not to create clones/mocks. - This is less true in 2.0
A mispelling like "Like <colorz = blue> Hi</color>?" or dmg modifier that is wrong can break Azu show container contents
(Note!: If you want the game to have default values, close the game and delete the wackysDatabase folder).
If you null out piece WearNTearData, unexpected things might happen to your world.
Credits
Credits:
Aedenthorn, former modder and inspiration for a lot of old mods! https://github.com/aedenthorn/ValheimMods
Thank you AzumattDev for the template. It is very good https://github.com/AzumattDev/ItemManagerModTemplate
Also thanks to Blaxx and Azu for code like Snapshot and Piece Categories.
Thanks to the Odin Discord server, for being active and good for the valheim community.
An extra thank you to Azumatt and the Odin team.
Special thank you to @KG for Mock System
A Huge thank you to Rexabit and his Visual Modifier https://github.com/Rexabit/valheim-visuals-modifier
Azumatt for Status Editor contributions.
This mod was the culmination of hundreds of hours.
Do whatever you want with this mod.
Known issues:
Bug on moving stuff from one hammer to another - disable orginal and make a clone for now
Creature material is not working
CrossbowArbalest item not changing, recommend cloning and replacing
Stay Wacky.
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 |