Releases: Centrifuge-Modding-Framework/Centrifuge
Centrifuge 3.2.2
Adds a global toggle settings key.
Set CentrifugeEnabled
to false
to disable the loader.
API has not changed.
08-Aug-2022: Centrifuge Installer has been updated and now attempts to install a GSL if present in the definitions repository.
Centrifuge 3.2.1
Fix a bug in the mod loader, Dependencies are meant to be optional... 😅
API stays 3.2.0 so no changes in that package.
Centrifuge 3.2.0
Messenger system deprecation
In order to communicate between mods you should useManager.GetMod(string modId)?.Instance
to get the desired mod's entry point.Messenger system will be removed in Centrifuge 4.0
Settings system can now typecast enums
Apparently it's just me who needs that shit because nobody else reported that exception before.
GslEventFinished
event
Raised after all GSLs have been loaded.
ModInfo will now provide information on entry point type
You can useIsMonoBehaviour
boolean property to tweak your mods' behavior for whatever reason.
How do I install Centrifuge?
Centrifuge 3.1.0
Release switching from Harmony 1.0 and moving to HarmonyX. Additionally from now on, two builds are going to be released - one for the legacy Unity Engine systems (pre-netstandard) and the other for modern game builds.
If you're a user - refer to the GSL/mod documentation on which version to use. If your game released back in 2015/2016 then you're probably good with the net35
version. A good example of netstandard
release target is Risk of Rain 2.
If you're a developer - best course of action to avoid confusion is to attach a readme file describing which version of Centrifuge to download in order to run your mod.
You can also use the included installer to install Centrifuge for your game.
Centrifuge 2.3.0
Update for both users and developers.
- We're back to Json.Net. Heh.
- Minor fixes, public API stays the same.
Centrifuge 2.2.0
Update for both users and developers.
Changes:
- Mods can now utilize an optional callback to load textures and whatnot with 100% certainty that it will not crash the game. The callback method name is defined by the mod entry point attribute and is set to
Load
by default.
Component versions:
Bootstrap version: 2.1.0
TypeBridge version: 2.2.0
Reactor version: 2.1.0
API version: 2.1.0
Centrifuge 2.1.0
This is a user-mode update only, no NuGet package this time. Improved stability and fixes for games with iffy dependencies like Newtonsoft.Json.
Bootstrap version: 2.1.0
TypeBridge version: 2.1.0
Reactor version: 2.0.3
API version: 2.0.2
Centrifuge 2.0.2
Minor release fixing a catastrophic bug where a missing Logs directory would bring the whole system down.
Centrifuge 2.0.0
This is a major update for Centrifuge.
Changes
▐ Logging system has been vastly improved. Breaking changes had to be introduced in order to make this happen.
▐ Unity log interceptor has been improved and displays its logs way better than before.
▐ Reactor.API got the new RuntimePatcher
system. It allows mods and GSLs to easily run all the patches and GameCodeTranspiler
classes without manually creating a new Harmony instance.
▐ GSLs are now able to get a reference to the IManager
interface via Initialize(IManager)
method, just like mods, it can be configured to run before or after the Awake
method.
▐ Mod manifest now accepts the RequiredGSLs
string array, allowing mod developers to specify hard dependencies against GSLs by providing the desired GSL IDs.
▐ A critical bug where Section
and float
types could not be loaded from the settings has been fixed.
▐ Many minor cosmetic and usability changes were introduced. See commit history for details on those.
Logging System - details on breaking changes
Initialization
// Before
public Log Log { get; } = new Log("mylogfile");
// After
public Log Log { get; } = LogManager.GetForCurrentAssembly();
Exception logging
// Before
Log.Exception(e, true); // Silent
Log.Exception(e, false); // Verbose
// After
Log.Exception(e);
Moreover, log configuration is now done at the time of initialization via call chaining. Visit docs on details for using the new Logging system.
Centrifuge 1.2.1
This release makes Centrifuge work on Linux again.
No SDK changes - this time it's only related to Spindle, changes include mainly Linq replacement, target framework changed to .NET 3.5, and addition of platform awareness.