Jump to content

Photo

Bannerlord HarmonyX Update


  • This topic is locked This topic is locked
13 replies to this topic

#1
Pickysaurus

Pickysaurus

    Community Manager

  • Admin
  • 21,626 posts
A couple of weeks ago, we shared an update on the future of Bannerlord modding with the release of Bannerlord Software Extender and a shift to HarmonyX as the preferred library for mod authors. After a brief testing period, HarmonyX hasn't worked out quite as well as the community expected so a new version of the original Harmony library has been introduced to replace it. Once again, thank you to Aragas for the information! 


The first closed test of HarmonyX revealed some quirks, such as a difference in reverse patcher behavior. While almost no one was using this feature and there were known workarounds for the issue, it suggested that HarmonyX might not be a true drop-in replacement. We continued the test as a public beta to see if there were any more issues, and we did find some.

For example, we found that patching some game structures caused an AccessViolationException with no known workarounds. Since major mods depend on patching those structures, this issue is unacceptable. We therefore decided that the best course of action would be to continue using Lib.Harmony but introduce a fork that fixes some development issues that HarmonyX was fixing for us.

If you switched to the HarmonyX package, you need to switch to Bannerlord.Lib.Harmony. The version schema will be reverted to v2.2.2. We will support mods that were written and will be written with *Lib.Harmony** indefinitely. We do not force you to use Bannerlord.Lib.Harmony to develop mods, but if you do, it should ease cross-platform support for Steam/GOG/Epic and Xbox versions of the game.

Why is a fork necessary?
The original Lib.Harmony supports both game's runtimes - .NET Framework 4.7.2 and .NET Core 3.1. To build a mod, you can either target each runtime separately or use a shared target that can be used by both runtimes - netstandard2.0. However, Lib.Harmony doesn't support netstandard2.0. We fix this by reintroducing it back for modders in our fork.

Additionally, Lib.Harmony packs its dependencies differently. MonoMod.Common is included in Lib.Harmony (static linking) for .NET Framework, while on .NET (Core) it's a separate dependency (dynamic linking). With our fork, we switch to dynamic linking on both runtimes.

While HarmonyX supported these changes out of the box, we need to reinvent the wheel for Lib.Harmony with the fork.

The good news is, this doesn't make a lot of difference for players, all you need to do is make sure your mods are up to date. 

We hope our Bannerlord mod authors find this information helpful!

#2
jazza1198

jazza1198

    Journeyman

  • Premium Member
  • 36 posts
I'm somewhat retarded when it comes to techno babbel, can this be dumbed down for me please?

#3
Philozoraptor

Philozoraptor

    Faithful poster

  • Members
  • PipPipPipPip
  • 2,147 posts
In response to post #122811858.


Spoiler

HarmonyX was causing crashes to some mods so they are reverting back to "normal" Harmony. Harmony is esentailly a form of hack (I believe originally developed for game Outher Worlds) that enables code based mods (complex mods) in Bannerlord.

#4
ADamnSexyName

ADamnSexyName

    Old hand

  • Premium Member
  • 533 posts
In response to post #122811858. #122812626 is also a reply to the same post.


Spoiler

still no clue :(

#5
nomadofwarZDEfdssd

nomadofwarZDEfdssd

    Stranger

  • Members
  • Pip
  • 2 posts
In response to post #122811858. #122812626, #122815254 are all replies on the same post.


Spoiler

why was i told of this??

#6
Makron8

Makron8

    Old hand

  • Members
  • PipPipPip
  • 815 posts
In response to post #122811858. #122812626, #122815254, #122816751 are all replies on the same post.


Spoiler

Thank you. There are so many arbitrary names for things just to make mods work that it helps to at least understand where they come from. I know Subnautica since the Living Large update also has a Harmony folder as well.

#7
e04su3no

e04su3no

    Newbie

  • Members
  • Pip
  • 15 posts
Please consider work on STEAMDECK

#8
Dromundas

Dromundas

    Fan

  • Members
  • PipPipPip
  • 486 posts
In response to post #122811858. #122812626, #122815254, #122816751, #122816931 are all replies on the same post.


Spoiler

Yeah for sure…

This for people modding Bannerlord. It all good now.

There you go little buddy.

#9
Vasiliy1988

Vasiliy1988

    Stranger

  • Members
  • Pip
  • 1 posts
ok

#10
AdeptusFreemanicus

AdeptusFreemanicus

    Enthusiast

  • Members
  • PipPip
  • 175 posts
Not sure if anyone is answering questions, but I got one. I remember in the original post about HarmonyX there was something about it being good at having mods work with newer/older game versions, in this fork, will it do that too?




IPB skins by Skinbox
Page loaded in: 0.419 seconds