ONI Is Upgrading to Harmony 2.0!

Oxygen Not Included

Oxygen Not Included is a space-colony simulation game. Deep inside an alien space rock your industrious crew will need to master science, overcome strange new lifeforms, and harness incredible space tech to survive, and possibly, thrive.

Originally posted by [url=https://forums.kleientertainment.com/forums/topic/130712-oni-is-upgrading-to-harmony-20/]Ipsquiggle on the official forums[/url] Hello modders! Over the course of this last year, many in this community have requested that we update the version of Harmony that we ship with the game, in order to smooth out mod development and make sure modders have access to the latest features the Harmony API provides! [b]In the testing period beginning June 10th[/b], we will be shipping Harmony 2.0.4.0 on the [b]Public Testing branch[/b]. [b]This upgrade will require modders to update all .dll mods![/b] It is also the case that the major code changes we're doing right now are going to break a significant number of mods, and later when the Vanilla and DLC codebases are finally fully merged, all the existing Vanilla .dll mods will have broken anyways. We'd rather not break any mods at all, but since it's going to happen, we're opting to put all the breakage into a single update, and this gives you some time to prepare. [h2]The Mergedown Process -- Use mod_info.yaml[/h2] As we unify the codebases, all these changes (including the Harmony 2.0 update) will slowly roll down through various versions of the game, like this: Spaced Out Public Testing -> Spaced Out (all players) -> Oxygen Not Included Public Testing -> Oxygen Not Included (all players) So mods running on Spaced Out will have to be updated first, and will have this testing period to get updated before all Spaced Out players see the code changes. The changes to the base game will happen some time after that, though specific dates are still being determined. [b]Once your mod has been made compatible, it will remain compatible for the rest of the Mergedown. [/b](Breakage from normal ongoing development aside ;) ) Be sure to use mod_info.yaml and the archive folder to separate the versions of your mod and make the transition seamless for your users! (More details below) [h2]How do I update my mod?[/h2] There are three key changes you'll need to make: [olist][*] Change all using Harmony; to using HarmonyLib; in your code [*] If you use OnLoad(HarmonyInstance harmony), change it to OnLoad(Harmony harmony) [*][url=https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net48-developer-pack-offline-installer] Install the .net 4.8 developer pack[/url], and retarget your project at .net 4.8.[/olist] Additionally: [list] [*] A number of methods in Harmony have changed signature or scope, so various compile errors will have to be resolved [*] As always, a number of changes have happened in the ONI code, so those errors will have to be resolved [*] Update your mod_info.yaml as described below for best compatibility. NOTE! If you're currently using a single version of your mod that runs on Vanilla and Expansion1, you will likely want to two versions of the mod for the duration of this Harmony 2.0 rollout. [*] Finally, upload the new version of your mod! [/list] [h2]So what's new, anyways?[/h2] Here's the official [url=https://harmony.pardeike.net/articles/new.html]Harmony update information[/url]. Here's the [url=https://github.com/pardeike/Harmony/releases]full list of patch notes[/url] (Reminder, we're on 2.0.4.0, catching up from 1.2.0.1). The full [url=https://harmony.pardeike.net/api/index.html]Harmony 2.0 documentation[/url]. [h2] In Conclusion[/h2] Please let me know if there are any gotchas or missing steps I should include in this post! A huge thanks to everyone in this community! I know from personal experience how much work it is to keep modding a game that is in active development, but the champions here nonetheless have made a workshop full of amazing mods! It's always exciting to browse through and see what's new, and to get the chance to play visions of the game that are different than our own. How cool is it that these things can co-exist side-by-side? So again, THANK-YOU! mod_info.yaml for Hamony changes can be found on the post on [url=https://forums.kleientertainment.com/forums/topic/130712-oni-is-upgrading-to-harmony-20/]our official forums here[/url].