ValheimModding-Jotunn icon

Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Last updated 6 days ago
Total downloads 313381
Total rating 40 
Categories Libraries
Dependency string ValheimModding-Jotunn-2.7.9
Dependants 544 other mods depend on this mod

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.1901 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.1901

README

Jötunn, the Valheim Library

Banner

Jötunn (/ˈjɔːtʊn/, "giant"), the Valheim Library was created with the intent to facilitate developer creativity, unify the communities problem solving efforts, and enhance developer productivity by curating a library of common helper utilities. Additionally, it supplies specific interfaces and abstractions which aid with mod interoperability, networked gameplay consistency, and remove the need to maintain valheim version specific code by acting as an interface between the developer and the games changing internals.

This project was originally derived from the base structure of JötunnLib, and had many entity abstractions and features from ValheimLib merged into it before we proceeded with further implementations. We have lots of features planned for the future, and we hope the community has many feature requests to suggest. I hope the features we have implemented thus far prove to be a useful base and provide an idea of the consistency we aim to deliver moving forwards.

Usage

Please refer to our documentation. We have gone to great lengths to ensure there is ample documentation to facilitate the developer's learning experience.

Installation

If you're using a mod installer, you can likely ignore this section.
For a more in-depth installation guide, please check out the manual installation guide in our documentation.
However, here is a quick run-down:

  1. Install BepInEx
    Download BepInEx, extract everything inside BepInEx_Valheim into your Valheim folder (typically C:\<PathToYourSteamLibary>\steamapps\common\Valheim).

  2. Install Jötunn Download from either Nexus / Thunderstore, extract the ZIP, and put the Jotunn.dll file inside the plugins folder in your Valheim install.

That's it, launch the game and mod away!

Features

JVL provides three distinct groups of features. Entities, which abstract the game's own entities into easy-to-use interfaces. Managers, which act as interfaces between the entities and native collections or subsystems. Utilities, which are there to aid in generic/common functions that can span many different areas.

Entities

  • CustomCreature - Represents custom animals, enemies and NPCs.
  • CustomItem - Represents ingame items such as weapons, tools and consumables.
  • CustomItemConversion - Represents ingame item conversions for the CookingStation, Fermenter, Smelter and Incinerator in one abstraction.
  • CustomLocalization - Represents custom localizations for your mod.
  • CustomLocation - Represents custom locations from simple stone circles to complete villages.
  • CustomPiece - Represent ingame building pieces.
  • CustomPieceTable - Represent ingame building tables. Support for custom categories included.
  • CustomRecipe - Represents ingame recipes for managing crafting and upgrading of items.
  • CustomStatusEffect - Represents ingame status effects from weapon hit effects to guardian powers.
  • CustomVegetation - Represents vegetation spread throughout biomes from pickables to cosmetics.
  • KitbashObject - Represents a custom object assembled from various other prefabs' components.
  • Mocks - Fake any vanilla prefab and use it in your custom assets - Jötunn resolves the references to the vanilla objects at runtime.
  • Config classes - There are many more abstractions beside the main entities which allow for easy creation of things like key bindings, custom commands, skills and more.

Managers

  • Command Manager - Facilitates implementation of methods which can be registered as executable console commands.
  • CreatureManager - Add new creatures or copy and modify vanilla ones.
  • GUI Manager - Allows invocation of UI prefabs on the fly via code.
  • Input Manager - Provides an interface for binding keys via ZInput in a consistent manner, facilitating custom keybind hints.
  • Item Manager - Abstracts away implementation details of configurations applied to items/recipes to provide a consistent developer experience in adding new items. tl;dr items are easy!
  • Kitbash Manager - Create custom assets with individual pieces from vanilla prefabs.
  • KeyHint Manager - Create custom key hints for your weapons and tools, even down to the selected piece.
  • Localization Manager - Provides multiple methods of loading localization data into the game, as well as exposing an interface for adding additional languages to provide localizations to unsupported languages.
  • Minimap Manager - Alter map data or create overlays for the map.
  • Piece Manager - Very similar to the Item Manager, abstracting implementation details of configurations for pieces/recipe's.
  • Prefab Manager - Provides a cache of prefabs registered through other managers, mostly developers will only query the cache for prefabs added via other managers.
  • Render Manager - Provides a custom render queue to render visual GameObjects into a Sprite - Useful to generate icons for your custom items.
  • Skill Manager - Facilitates additional custom skills.
  • Undo Manager - Provides global undo/redo queues for mods to revert and replay any actions in the game.
  • Zone Manager - Create custom locations and vegetation to add in the world generation.

Utilities

  • Asset Helpers - Methods to facilitate referencing and loading of assets.
  • Bone Reorderer - Fixes bone ordering issues on SkinnedMeshRenderer's that have been ripped and imported into unity.
  • Network Compatibility - Allows plugins to define their own version requirements for clients connected to the server. Ensures a customisable level of interoperability with clients of differing mod configurations on a plugin-by-plugin basis.
  • Config Synchronisation - Allows administrators to adjust configuration values via an in game menu. Config setting is synced to connected clients.
  • Mod Registry - Query added content per Mod.
  • SimpleJSON - We have imported SimpleJSON into our library at the request of developers who would simply prefer to have this dependency taken care of already. We use the MIT Licensed SimpleJSON

Bugs, Support, Contributions

Please refer to our documentation before requesting support via discord. If there are any mod interoperability issues developers experience (not just exclusive JVL issues), we would like to hear from you! If we can facilitate better mod interoperability by providing a common interface, or exposing native valheim objects, including a utility which you have created, then please feel free to create a new feature request or pull request.

Roadmap

Check our projects for a more up to date list of features currently in development, or suggest your own features for inclusion by creating a new feature request

Changelog

See the full Changelog.

Contributors to Jötunn, the Valheim Library

These people have been integral to pushing JVL out of the door, and without them we could not have achieved nearly as much. Please give them some love on github, thunderstore, and nexus.

Core:

Jules#7950: github

Margmas#9562: github, thunderstore, nexus

iDeathHD#7866: github, thunderstore

Algorithman#6741: github

Quaesar#5604: github

radu#0571: github, thunderstore, nexus

paddy#1337: github, thunderstore, nexus

Contributors:

Cinnabun#0451: github

GoldenJude#8965: github, nexus

zarboz#7828: github, thunderstore, nexus

MarcoPogo#6095: github, nexus

blaxxun#9098: github

Tekla#1012: github

JoeyParrish#8644: github, thunderstore, nexus

Nosirrom#2626: github

Jere#0989: github, thunderstore, nexus

Available versions

Please note that the install buttons only work if you have compatible client software installed, such as the Thunderstore Mod Manager. Otherwise use the zip download links instead.

Upload date Version number Downloads Download link  
2022-9-22 2.7.9 3960 Version 2.7.9 Install
2022-9-4 2.7.8 9224 Version 2.7.8 Install
2022-8-7 2.7.7 13533 Version 2.7.7 Install
2022-7-29 2.7.6 5786 Version 2.7.6 Install
2022-7-26 2.7.5 2231 Version 2.7.5 Install
2022-7-23 2.7.4 3822 Version 2.7.4 Install
2022-7-21 2.7.3 1828 Version 2.7.3 Install
2022-7-7 2.7.2 8408 Version 2.7.2 Install
2022-7-4 2.7.1 2837 Version 2.7.1 Install
2022-6-23 2.7.0 7109 Version 2.7.0 Install
2022-6-22 2.6.12 1260 Version 2.6.12 Install
2022-6-20 2.6.11 2503 Version 2.6.11 Install
2022-6-17 2.6.10 2269 Version 2.6.10 Install
2022-6-10 2.6.9 4457 Version 2.6.9 Install
2022-6-8 2.6.8 1793 Version 2.6.8 Install
2022-5-24 2.6.7 9199 Version 2.6.7 Install
2022-5-12 2.6.6 8362 Version 2.6.6 Install
2022-5-6 2.6.5 4420 Version 2.6.5 Install
2022-4-28 2.6.4 5825 Version 2.6.4 Install
2022-4-21 2.6.3 5071 Version 2.6.3 Install
2022-4-5 2.6.2 9907 Version 2.6.2 Install
2022-3-29 2.6.1 4964 Version 2.6.1 Install
2022-3-1 2.6.0 16982 Version 2.6.0 Install
2022-2-15 2.5.1 7801 Version 2.5.1 Install
2022-2-9 2.5.0 4381 Version 2.5.0 Install
2022-2-4 2.4.10 4591 Version 2.4.10 Install
2022-1-28 2.4.9 5080 Version 2.4.9 Install
2022-1-20 2.4.8 5884 Version 2.4.8 Install
2022-1-17 2.4.7 3125 Version 2.4.7 Install
2022-1-12 2.4.6 4295 Version 2.4.6 Install
2021-12-20 2.4.5 12508 Version 2.4.5 Install
2021-12-13 2.4.4 3554 Version 2.4.4 Install
2021-12-8 2.4.3 3155 Version 2.4.3 Install
2021-12-8 2.4.2 162 Version 2.4.2 Install
2021-11-23 2.4.1 7138 Version 2.4.1 Install
2021-11-17 2.4.0 3682 Version 2.4.0 Install
2021-11-8 2.3.12 4451 Version 2.3.12 Install
2021-10-31 2.3.10 4661 Version 2.3.10 Install
2021-10-27 2.3.9 2301 Version 2.3.9 Install
2021-10-25 2.3.8 1848 Version 2.3.8 Install
2021-10-3 2.3.7 10820 Version 2.3.7 Install
2021-10-1 2.3.6 1438 Version 2.3.6 Install
2021-9-28 2.3.5 2604 Version 2.3.5 Install
2021-9-23 2.3.4 4790 Version 2.3.4 Install
2021-9-21 2.3.3 2562 Version 2.3.3 Install
2021-9-18 2.3.2 3963 Version 2.3.2 Install
2021-9-17 2.3.1 2982 Version 2.3.1 Install
2021-9-16 2.3.0 1658 Version 2.3.0 Install
2021-9-11 2.2.9 2398 Version 2.2.9 Install
2021-9-10 2.2.8 662 Version 2.2.8 Install
2021-8-30 2.2.7 4339 Version 2.2.7 Install
2021-8-26 2.2.6 2260 Version 2.2.6 Install
2021-8-25 2.2.5 970 Version 2.2.5 Install
2021-8-24 2.2.4 1165 Version 2.2.4 Install
2021-8-10 2.2.3 5927 Version 2.2.3 Install
2021-8-4 2.2.2 3377 Version 2.2.2 Install
2021-7-30 2.2.1 3147 Version 2.2.1 Install
2021-7-27 2.2.0 2202 Version 2.2.0 Install
2021-7-8 2.1.3 6479 Version 2.1.3 Install
2021-7-4 2.1.2 3378 Version 2.1.2 Install
2021-7-3 2.1.1 1362 Version 2.1.1 Install
2021-6-29 2.1.0 2367 Version 2.1.0 Install
2021-6-3 2.0.12 8157 Version 2.0.12 Install
2021-5-24 2.0.11 4277 Version 2.0.11 Install
2021-5-18 2.0.10 3660 Version 2.0.10 Install
2021-5-12 2.0.9 3495 Version 2.0.9 Install
2021-5-11 2.0.8 3527 Version 2.0.8 Install
2021-5-5 2.0.7 2419 Version 2.0.7 Install
2021-5-5 2.0.6 685 Version 2.0.6 Install
2021-5-3 2.0.5 702 Version 2.0.5 Install
2021-5-2 2.0.4 605 Version 2.0.4 Install
2021-5-1 2.0.3 292 Version 2.0.3 Install
2021-4-30 2.0.1 345 Version 2.0.1 Install