Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Fixed minimap texture missmatch for map drawing (thx MidnightsFX)
Fixed network version lookup for future game versions
Version 2.29.0
Added new method in ConsoleCommand to take a Terminal context parameter, so mods can write output to either Console or Chat depending on where the command was executed from. Backwards compatible. For more info on that see https://valheim-modding.github.io/Jotunn/tutorials/console-commands.html
Added TMPro FontAssets shortcuts to the GUIManager
Version 2.28.0
Added YAML localization file support (thx warp)
Added macOS development support and an overridable VALHEIM_MANAGED variable (thx warp)
Fixed skill names lost in UI after language change (thx warp)
Fixed errors with read-only properties in mock resolution (thx warp)
Version 2.27.1
Fixed the Vulkan compile target of internal AssetBundles (thx MidnightsFX)
Fixed an issue where unloaded SoftReference location assets were still released, causing errors on access (thx warp)
Version 2.27.0
Added AssetUtils.LoadImage wrapper to resolve .netstandard 2.1 compile issues
Added AssetUtils.DuplicateTexture to create a readable copy of a texture
Fixed an error if an AssetLoader loads a null m_asset while resolving mocks. It now logs a waning with the bundle path
Fixed recent rename of valheim_Data to Valheim_Data in the PrebuildTask and core refs for case-sensitive file systems (e.g. Linux)
Version 2.26.1
Added gui_framework.dll to PrebuildTask publicize and reference it in the JotunnLibRefsCorlib.props
Fixed GUI initialization for Valheim 0.221.3, backwards compatible
Fixed mock names not being sanitized in some cases
Version 2.26.0
Added CustomLocation loading via the SoftReferenceableAssets system to only load locations when needed. This requires special setup of the assets (thx warp)
Deprecated PieceManager.AddPieceCategory(string table, string name) + RemovePieceCategory, use the new overloads
Changed the version check of Jotunn to require the exact same version, if installed on both server and client
Fixed AdminOnly configs were not locked if the server doesn't load Jotunn
Fixed SynchronizationManager.PlayerIsAdmin was always true if the server doesn't load Jotunn
Fixed parsing of mod version data for connection compatibility with only a major.minor part
Fixed excessive debug logging in the SynchronizationManager
Version 2.20.3
Fixed explicit AdminOnly = false config entries being locked for editing. Introduced in 2.20.2, AdminOnly = true was not affected
Fixed performance when searching for config entries to sync in large config files
Version 2.20.2
Fixed adding admin-only configs between loading to the main menu and before loading the game being locked for local editing
Fixed network version in the disconnect window was always 27 duo to accessing a constant value
Fixed SimpleJson deserialization of non-primitive dictionaries (thx bid)
Fixed GUIManager asset loading to use the prefab cache and not hard crash on missing assets
Version 2.20.1
Fixed an error when cloning an item with an existing ExtEquipment
Changed prebuild to reference Mono.Cecil from the BepInEx folder to avoid version conflicts
Changed internal ItemManager.Items to be a dictionary
Removed unnecessary debug logging from AssetManager
Version 2.20.0
Fixed for Valheim 0.218.15 (Ashlands), older Valheim versions may not work properly
Added HeavyBuild to PieceCategories
Fixed internal renaming of the Building piece category
Fixed positioning and size of hammer categories
Fixed warnings about mock ParticleSystem dictionaries
Fixed CreatureManager.OnCreaturesRegistered was not invoked if no custom creatures were added
Version 2.19.4
Fixed errors when loading prefabs when running with Krumpac's Reforged (thx probablykory)
Fixed prebuild publicizer could create ambiguous events
Fixed prebuild publicizer to include an assembly hash to detect if it has changed
Changed references to be copied to the build output folder when compiling a mod that uses JotunnLib.props
Simplified vanilla category count lookup
Version 2.19.3
Fixed piece categories to dynamically find the vanilla category count
Fixed clear area of locations was not applied since changes in Valheim 0.217.43
Fixed mock resolve of components on GameObjects, like workstations in recipes
Marked LocationConfig.Location as deprecated because the association is never valid
Version 2.19.2
Changed PrefabManager.Cache to prefer SoftReferences over searching loaded assets, in order to be more reliable future proof. This especially affects (directly mocked) Meshes, please see the Mesh List and update your mocks from the Internal Name to the SoftReference Name
Fixed item variants were not correctly applied when the item was added in Awake/Start
Fixed a potential error when calling PrefabManager.Cache.GetPrefab for an invalid Mesh
Version 2.19.1
Fixed an issue where the game would load infinitely
Fixed mocks were not being resolved if the assets are only used in locations
Fixed mock meshes not being resolved correctly in some cases
Fixed an error when modded prefabs are cloned before the vanilla asset system is ready
Fixed assemblies being referenced that are no longer shipped
Version 2.19.0
Fixed for Valheim 0.217.46, not working with older Valheim versions
Added AssetManager for direct interactions with the new SoftReference system. Existing entities and mocks are already handled implicitly
Version 2.18.2
Fixed more cases where components were not correctly removed in the RenderManager (thx bid)
Version 2.18.1
Fixed errors about failing to remove components in the RenderManager, which could occur in specific inheritance edge cases
Fixed mouse buttons from configs were not converted to the new input system
Fixed button config changes did not update the button at runtime in singleplayer
Version 2.18.0
Added GameObject mocking, i.e. objects in the hierarchy with the JVLmock_ prefix will be swapped with the real object
Added non-enforced mods to version check messages, so changed enforcement across mod versions can be detected and applied on the server
Added rendering of particle effects to the RenderManager (thx bid)
Added RenderManager.RenderRequest.ParticleSimulationTime to control the time of the particle simulation (thx bid)
Added events to ZoneManager: OnLocationsRegistered, OnClutterRegistered, OnVanillaVegetationAvailable and OnVegetationRegistered
Version 2.17.0
Added PrefabManager.Cache.Clear to the API
Added a PrefabManager.Cache clear before ZoneSystem.SetupLocations to resolve mocked assets that are loaded later than usual
Changed the ZoneManager to always initialize the PrefabManager to prevent timing issues
Fixed warnings about missing textures from mocks on dedicated servers
Fixed category text not being resized automatically
Fixed category tokens omitting invalid characters like spaces from the original name, they are now replaced with an underscore
Version 2.16.2
Fixed a bug where newly spawned locations did not spawn their child net objects anymore after a relog without restart was performed
Version 2.16.1
Fixed mocks targeting an asset starting with an underscore were not split correctly and threw exceptions
Fixed mocks using the asset path were not cleaned and could fail to resolve
Version 2.16.0
Added mocking of ambiguous assets like meshes. This can be done via a new JVLmock_PrefabName__ChildName format where assets can be searched inside a named prefab. Multiple children can be provided for a specific path to a child, otherwise breadth search is used (thx OrianaVenture)
Added Weight and StackSize properties to ItemConfig, items are unaffected by default values
Added Icon property to ItemConfig for simpler access to Icons for non-variants
Added optional BEPINEX_PATH environment variable for build process (thx Defee)
Improved warnings of unresolvable mocks
Version 2.15.2
Fixed ButtonConfigs with mouse keys were not correctly converted for the input changes in Valheim 0.217.38
Version 2.15.1
Fixed InputManager for Valheim 0.217.38
Version 2.15.0
Added OnSyncingConfiguration event to the SynchronizationManager that is called before configs are synced on the server/client (thx Searica)
Added UpdatedPluginGUIDs to arguments of OnConfigurationSynchronized event (thx Searica)
Added OnConfigurationWindowClosed event to the SynchronizationManager (thx Searica)
Added more helper methods for GameObject, Transform and String (thx Searica)
Changed SynchronizationManager OnConfigurationSynchronized event to trigger on both server and client (thx Searica)
Fixed a build time warning in ScaleTexture that prevents Jotunn from loading in Unity 2022.3.12 projects
Fixed a bug where the GUIManager could be initialized at shutdown with certain calls, resulting in an error
Version 2.14.6
Added a soft dependency to the LocalizationCache mod so that it loads a bit earlier. This has no direct impact on Jötunn
Changed prebuild references from the unstripped_corlib folder to the game assemblies as Valheim is no longer unstripped and the folder has been removed from the BepInEx package
Fixed the debug mode Jötunn ASCII art
Fixed AddComponentCopy was setting the name and tag of the Component's GameObject
Fixed KeyHints for left hand items
Fixed sprite rendering results in mostly empty sprites in Unity 2022, backwards compatible and an existing cached sprite will be recreated
Version 2.14.5
Fixed GUIManager assets not being properly initialized when later accessed, causing some elements to not show up
Fixed an edge case where holding a reference to the ObjectDB causes it not to be destroyed correctly. This fixes some errors on logout with certain mods
Version 2.14.4
Fixed KeyHints display
Fixed internal piece table list was not available if the PieceManager was initialised after ObjectDB.Awake
Fixed internal piece table list was not fully updated if the game was reloaded without a restart
Fixed an error when a development build of Valheim is used
Version 2.14.3
Compatible with Valheim version 0.217.22, not working with an older version
Updated and compiled for BepInExPack 5.4.2200
Version 2.14.2
Fixed adding commands being aborted if a command tries to override an existing name
Removed the console clear command to improve mod compatibility. With the recent changes, the command wasn't always added anyway
Version 2.14.1
Fixed some errors when a Jotunn dependent mod has no BepInEx dependency set and loads before Jotunn. A warning will be logged
Fixed items were not added to the main menu ObjectDB if added in the OnVanillaPrefabsAvailable event and thus not visually shown on the player
Fixed input block did not prevent mouse wheel character zoom
Improved module initialisation logging by unifying messages
Version 2.14.0
Fixed the SynchronizationManager wasn't always initialised, resulting in no sync of admin configs
Version 2.13.0
Improved startup time by only initialising accessed managers. This reduces the load time without dependent mods by about 90% (on my machine under 100ms instead of 800ms), making Jötunn almost unnoticeable. When all managers are accessed, the overall startup time is the same as before. Also, if a Valheim update breaks some parts, only loaded managers are affected
Added AssetUtils.LoadTextFromResources overload without assembly parameter
Added CustomCreature constructor with AssetBundle parameter
Added ZoneManager.CreateLocationContainer with AssetBundle parameter
Added CustomVegetation.IsValid interface
Added RequirementConfig.IsValid interface
Added recipe RequireOnlyOneIngredient and QualityResultAmountMultiplier
Fixed GetOrAddComponent to use TryGetComponent (thx redseiko)
Improved error messages of entities loaded directly from AssetBundles: CustomClutter, CustomCreature, CustomItem, CustomPiece, CustomPieceTable, CustomPrefab, CustomVegetation
Improved PrefabManager.GetPrefab to search for items in ObjectDB if available
Improved startup time of SkillManager
Version 2.12.7
Fixed input block did not prevent the map from opening
Improved Kitbash error and warning messages to include the mod name and affected Kitbash settings
Version 2.12.6
Fixed input block did not prevent input from closing the inventory
Fixed PrefabManager.Cache to prefer materials with a non-error shader
Version 2.12.5
Fixed NRE using KeyHints
Fixed Mouse cursor not visible when blocking Input for UI
Version 2.12.4
Fixed mock resolution to not fail when a member throws an exception on GetValue. This happens in rare cases, for example when mocking a TMP component (thx OrianaVenture)
Version 2.12.3
Fixed an error with the console command for the upcoming 0.217 update (currently in PTB), still compatible with the stable Valheim release (0.216.9). Note that the PTB branch isn't supported and may cause unexpected issues at any time
Fixed JotunnBuildTask compile issues for .NET 7.0
Version 2.12.2
Fixed an error when switching tabs with Q/E and no custom categories where added
Fixed order of custom tabs with other mods that add custom categories
Version 2.12.1
Fixed compatibility issues with the custom hammer tabs when Auga is installed. There will be some warnings as some visual changes can't be applied but these should not affect the functionality
Version 2.12.0
Compatible with Valheim version 0.216.9, not working with an older version
Added prefab name helpers for CookingStations, CraftingStations, Fermenters, Incinerators, PieceCategories, PieceTables and Smelters
Added CustomPiece.Category helper property to make it easier to set the piece category at runtime.
Added PieceManager.Instance.GetPieceCategoriesMap to get a complete map of all piece categories
Reworked custom piece categories to be compatible with other mods. This changes some internal category ids
Changed custom hammer tabs to stack instead of scroll. Tabs also no longer have a dynamic width, instead the text tires to fit the tab
Changed PieceManager.GetPieceCategories to be obsolete, use PieceManager.Instance.GetPieceCategoriesMap instead to get a complete map of all piece categories
Changed PieceManager.PieceCategorySettings to be obsolete as they are no longer used
Changed PieceManager.RemovePieceCategory to no longer remove categories where a piece is still assigned to the category. This is to prevent problems with other mods that might still use this category
Changed Manager Init() methods to be private and not callable by mods. They were not intended to be called by mods and could cause issues
Changed Mock resolve depth from 3 to 5, this should catch some edge cases where fields are nested deeper
Changed empty CustomLocalization constructor to be marked obsolete, LocalizationManager.Instance.GetLocalization() should be used instead
Fixed empty translation values where not allowed, thus a valid key can be translated to an empty string
Fixed translations not being added to the Localization instance if it was already initialized
Slightly improved loading time of big mod packs when creating custom entities (again)
Version 2.11.7
Added Valheim network version check to the disconnect window to better identify the cause of a disconnect. Only visible if both server and client are running Jotunn 2.11.7 or higher
Removed the Valheim version string check from the disconnect window, as the network version is used for the version check
Version 2.11.6
Fixed an issue with custom category tabs where the hammer menu wouldn't open when using a controller
Version 2.11.5
Fixed custom category tabs caused errors after relogging
Version 2.11.4
Added the magic string (HiddenCategory) to disabled category tab names, so other mods can detect them easier
Changed that vanilla tabs are always enabled for vanilla tools and only Jotunn managed and vanilla tabs can be disabled
Version 2.11.3
Compatible with Valheim version 0.214.300 and the upcoming 0.215.1 patch
Fixed a client with a different Valheim version will no longer be additionally disconnected by Jötunn. If the player was disconnected, a mismatching Valheim version will still be displayed
Fixed side-loaded localisations being loaded too early, causing translations to be added to the internal Jötunn localisation instead of the respective mod
Fixed custom hammer tabs had the wrong size when being localised
Fixed scroll of last custom hammer tab was not correct
Fixed a compatibility issue with Auga because of the changed hammer tabs
Slightly improved loading time of big mod packs by caching mod info used when creating custom entities
Version 2.11.2
Compatible with Valheim version 0.214.300
Version 2.11.1
Fixed KeyHints not being correctly destroyed when using inventories with containers
Fixed ItemManager.RemoveItem was not removing the item from the active ObjectDB if it already existed
Fixed an issue that caused client config values to not reset correctly when a mod used shared ConfigurationManagerAttributes/ConfigDescription with server enforced values
Version 2.11.0
Compatible with Valheim version 0.214.2
Added Norse fonts and additional colors to the GUIManger (thx SpikeHimself)
Added interface to remove a custom item conversion
Added reference to the BepInExPack 5.4.2100
Added reference to Unity.TextMeshPro in the NuGet package
Updated ConfigurationManagerAttributes to match BepInEx.ConfigurationManager v17.0
Updated the localization injection to be easier and removed the need to load vanilla translations a second time. Because the implementation concept changed, debug logs will no longer be printed
Fixed dropdown created with GUIManager.CreateDropDown was not in the correct UI layer, causing it to be wrongly rendered in VR (thx SpikeHimself)
Fixed calling LocalizationManager/CustomLocalization.TryTranslate() could cause the game localisation to be initialized too early
Fixed an error inside the ModQuery if a null prefab is inside ZNetScene or ObjectDB
Fixed an error caused by releasing a render texture too early
Fixed KeyHints for keyboard, Gamepad hints are still not working a 100%
Removed changing the hammer category tab width and removed re-parenting of the tab border for better compatibility
Version 2.10.4
Fixed that same item conversions could not be added to different stations
Fixed custom skills names were not being added to autocomplete in cheat commands
Fixed wrong console outputs when using custom skills in cheat commands
Version 2.10.3
Fixed ServerCharacters from showing up in the compatibility window as it does it's own version check on the modified version string
Added explanation for further steps to the compatibility window
Version 2.10.2
Changed PieceConfig to not override piece requirements when no custom requirements were provided
Changed PieceConfig, ItemConfig and RecipeConfig to remove non valid requirements (no item name or amount set)
Changed Mocks to not resolve fields and properties marked as NonSerialized
Improved warning messages with custom localization
Fixed warning messages with a source mod where always attributed to Jotunn.Logger instead of the correct calling type
Changed "open log file" button to "open log folder" in the compatibility window
Fixed an edge case where PrefabManager.Cache preferred the prefab for ObjectDB parent instead of the scene object
Fixed an error when an independent mod adds a prefab twice to ObjectDB. A warning will be logged with the prefab name and hash to help debugging, but vanilla or other mods may still have issues with the double prefab
Fixed an error when available pieces in the build hammer where not initialised properly
Fixed an error that could occur when a build tab is localised
Fixed dynamic build tab width was not working for localised tabs
Version 2.10.0
Deprecated "ChanceToSpawn" in LocationConfig and made it compatible with version 0.212.6
Added Remove and Destroy methods to the ZoneManager
Added method to inject a ZoneLocation at runtime to the ZoneManager
Added missing GetClutter without mod guid to ModQuery and cleanup code
Added catching of patch errors with the ModQuery to log a clean error on the console and avoid unrelated errors
Added AddInitialSynchronization to SynchronizationManager, this allows sending arbitrary data to the connecting client and making sure it will be received before the client's connection is fully established
Added registration of custom ConfigFiles to SynchronizationManager
Fixed RenderManager inconsistency between a headless server and normal client. Instead of always returning null, an empty sprite is returned on headless when it should have been rendered
Fixed trying to insert Jötunn's localisation multiple times
Version 2.9.0
Big compatibility window improvements: internal cleanup, better use of available space, button to open the log file, improved language and added german localization
Changed that mocked shaders will not be resolved on a headless server because they are not available. This stops unnecessary warnings from being printed
Fixed crossplay connection issues properly and removed the hotfix from Jotunn 2.8.1
Fixed admin check was false instead of true in some special cases
Version 2.8.1
Implemented hotfix for PlayFab connection issues (disables vanilla compression again, but works for now at least)
Version 2.8.0
Compatible with Valheim version 0.211.11
Fixed connection issues in Steam multiplayer with the latest Valheim patch. Crossplay (XBox multiplayer) is not working yet due to bigger changes, we are working on solving this issue
Marked PatchInit attribute as obsolete
Version 2.7.9
Added ZoneManager.OnVanillaClutterAvailable event
Added CustomClutter to ModRegistry
Fixed mocked material textures/shaders where not directly fixed after they were injected. Properties that are not available at this time are still delayed
Fixed connection issues with the upcoming cross play update
Fixed admin checks for the upcoming cross play update
Reworked mock system to improve world loading time, up to 5x faster than the old system
Added support for shaders and materials to the mock system
Version 2.7.2
Fixed possible NRE in SyncManager
Opened up some previously internal interfaces for mods to use (e.g. BepInExUtils)
Version 2.7.1
Fixed Bep ConfigManager hooking for config sync not working sometimes
Slight improvements of startup time
Version 2.7.0
Removed mod settings as they have caused problems and are a redundant feature. The BepInEx ConfigurationManager can be used instead
Version 2.6.12
Fixed JotunnBuildTask. This has no effect on the actual game but fixes the NuGet package upload, meaning the mod version and NuGet version match again
Version 2.6.11
Compatible with Valheim version 0.209.8
Fixed ModQuery has not cleared old prefabs, resulting in null instances
Version 2.6.10
Fixed mod settings could bypass ServerSync settings
Fixed mod settings slider could bypass readonly settings
Version 2.6.9
Fixed error of ModQuery if no ObjectDB/ZNetScene is available.
Version 2.6.8
Changed mod settings to display all mods, not just Jötunn ones
Added config option to disable the mod settings completely
Added helper methods for CustomConfigs
Fixed the PrefabManager Cache chose a child GameObject in rare cases, even if a better prefab with the same name existed
Fixed cache path of rendered icons could contain illegal characters
Fixed NRE of icon rendering if the prefab has null bones
Fixed language loading if an empty language was saved
Fixed tabs were rebuilt every time in RemovePieceCategory, even if categories have not changed
Fixed NRE of ModQuery and slightly improved performance
Fixed vanilla items could be detected as modded ones in ModQuery if the mod calls UpdateItemHashes in a prefix before vanilla
Improved performance of adding and retrieving custom pieces
Version 2.6.7
Added display of the Valheim version string to the compatibility window. If a mismatch is produced by a mod, it will be displayed accordingly
Added the ModQuery class which allows to get metadata about content of loaded mods, including non-Jötunn ones. It is disabled by default to not create unnecessary loading time when not used
Added hammer tab UI settings to the public API
Version 2.6.6
Added automatic refresh of vanilla locations after OnVanillaLocationsAvailable to prevent ZNetView problems
Added GetPieceCategory to the PieceManager for runtime translation of custom piece table categories to their int values
Fixed NRE error message when client has disconnected before initial data sending
Version 2.6.5
Added RemovePieceCategory to the PieceManager to remove a category from a piece table again (works at runtime)
Added GetPieceTables to the PieceManager to get a list of all piece tables in the game
Added dynamic tab width calculation for custom piece categories
Fixed pieces with PieceCategory.All were not displayed in custom tabs
Version 2.6.4
Fixed a CustomLocation was not prepared correctly if a deactivated prefab was passed, causing it to spawn inside itself when proximity loaded again
Fixed vanilla piece categories could be hidden when a mod used the long piece table name
Version 2.6.3
Fixed connection error on first connection attempt with QuickConnect
Fixed the compatibility window was not showing up, if the server has no password
Fixed a client could sometimes connect to a server, even if mods are incompatible
Version 2.6.2
Fixed custom category display using Auga (and probably other UI mods)
Fixed Mod Settings FPS drop
Version 2.6.1
Removed the MMHOOK dependency from Jötunn. Mods using MMHOOK themself should list the HookGenPatcher as a dependency directly.
Jötunn's PrebuildTask does not generate MMHOOK dlls any more, publicized dlls can still be generated automatically.
ModStub can have a different deploy path than the Valheim directory (deploying to a r2modman profile for example)
Version 2.4.4
Fixed in-game menu not reacting on Esc after closing mod settings
Fixed a NRE condition on the mod settings
Version 2.4.3
Fixed admin config display for non-admin users
Version 2.4.2
Reworked the mod settings menu completely using Unity, it should be much faster now and also removed some oddities from using a vanilla Settings clone before
Added support for Vector2 and generic enums in mod settings
Removed necessity for key binds backed by a config to also have a button registered in ZInput to show up in the mod settings
Added some RectTransform extensions for world positioning and overlapping
Changed the timing of GUIManager.OnCustomGUIAvailable to execute after custom Localization has been loaded to ensure GUI content is properly localized
Fixed NRE while resolving mock references for null enumerables
Fixed the naming of location containers in ZoneManager
ItemConfigs without requirements don't create a Recipe for that item
Added RenderManager.Render() which renders the given GameObject in the same frame instead of waiting for the next frame. Marked EnqueueRender obsolete.
Force unload mod's loaded asset bundles on Game.OnApplicationQuit to prevent the Unity engine from crashing
Depend on BepInExPack-5.4.1601 for the new Unity engine corlibs
Version 2.3.10
Added custom piece table category injection at runtime
Added RenderRequest for the RenderManager to define options for the render process
Fixed mock resolving of generic List types
Fixed CustomGUI anchor settings
Fixed Dropdown list sizing (thx joeyparrish)
Version 2.3.9
Added the possibility to define vanilla console command modifiers in ConsoleCommand (thx joeyparrish)
Added the possibility to define command options in ConsoleCommand
Fixed exception for mods loaded without PluginInfo.Location set
Fixed NRE on missing KeyHint objects
Version 2.3.8
Added RenderManager to render Sprites from GameObjects at runtime (thx MSchmoecker)
Added GamepadButton to the InputManager and ButtonConfig - custom inputs can now define a gamepad button corresponding to the keyboard input
Added gamepad buttons to KeyHints for custom inputs as well as vanilla key overrides
Gamepad buttons can be defined in the mod settings if they are bound to a config
Refactored custom KeyHints into their own KeyHintManager and obsoleted the API in the GUIManager
Fixed automatic mod recognition from filesystem paths (thx Digitalroot)
Fixed duplication check on ObjectDB not always working correctly
Fixed NRE in ModCompat for VersionCheckOnly mods
Fixed a strange hard crash when using GUIManager.IsHeadless()
Version 2.3.7
Fixed translation of the custom skill raise message
Added ZInput.GetButton support for custom buttons
Version 2.3.6
Added JSON helper methods to PieceConfig
Added support for BepInEx' KeyboardShortcuts in ButtonConfig and InputManager
Added slider for numerical values in the mod settings GUI (thx MSchmoecker)
Item property in ItemConfig is publicly readable now so it can be serialized
Fixed button config in mod settings for control keys
Fixed the localization for Jötunn tokens
Version 2.3.5
Added support for custom Obliterator/Incinerator item conversions
Version 2.3.4
Fixed BoneReorder for equip with disabled attach points (thx GoldenJude)
Fixed DragWindowCntrl not respecting the screen size sometimes (thx MSchmoecker)
Fixed ModCompat NRE with missing "NotEnforced" mods
Fixed double values not saving in mod settings
Added support for KeyboardShortcuts in mod settings
Version 2.3.3
Reworked the mod compatibility checks
Obsoleted and replaced some misleading named compat level
Added two new mod compat level: ServerMustHaveMod and ClientMustHaveMod
Please check your mod's compat level and change appropriately
Basic H&H compatibility. Looks like everything works but problems might still arise
Please report any problems you encounter, preferably on our Discord
Added possibility to traverse child GameObjects when resolving mocks (FixReference = true)
Mock references added via Config are resolved automatically, set FixReference = false if your actual GO does not use mocks
Check your mod's items and pieces if they really need FixReference set to true
Fundamentally refactored the Localization system - mods can and should add a CustomLocalization wrapper for all mod specific localization from now on
Localization is stored per mod, so you can create / add only one custom localization instance, which behaves like the LocalizationManager in older releases
Marked the old API obsolete, existing mods are encouraged to adapt the new system