What are you searching for?

FermiumBooter

FermiumBooter

Simplistic mixin mod utility to allow developers to load mixins both early and late

download 129.7K Downloads · favorite 3 Followers · Updated 2 months ago
Forge Library Utility 1.12.2

About

FermiumBooter is a mixin mod utility to allow developers to load mixins both early and late, allowing for modifying classes that normally could not be modified otherwise.

Current features include;

  • Enqueue mixins to be applied both early and late, to allow for for modifying Vanilla/Forge classes, as well as mod classes

  • @MixinConfig annotation system to expand on the Forge @Config system, to allow for automatic mixin enqueue based on config toggles

  • Optional compatibility handling through the config annotation system to allow developers to define required/incompatible mods for specific mixins

  • Logged warnings when a mixin using the config annotation system fails compatibility checks

  • Optional forced mixin disabling when a mixin using the config annotation system fails compatibility checks

  • Ingame (disable-able) warning rendering when mixins using the config annotation system fail compatibility checks

  • Enable/disable enqueued mixins prior to application through the use of a Supplier, to allow developer control over optional mixins

  • Utility method to check if a ModID is present similar to Loader.isModLoaded() however usable during mixin enqueue/early mixin application unlike Loader.isModLoaded()

  • Disallow other FermiumBooter enqueued mixins from applying, for testing or tweaking purposes

  • Shadows Mixin 0.8.7 and MixinExtras 0.4.1

For developer usage:

In your IFMLLoadingPlugin init, instead of "Mixins.addConfiguration("mixinConfigName")", use "FermiumRegistryAPI.enqueueMixin("mixinConfigName").
If you are registering it as a late-loaded mixin use "FermiumRegistryAPI.enqueueMixin(true, "mixinConfigName")".
That is all that is required, and FermiumBooter takes care of the rest.
For additional utilities as described previously, all are documented in code with explanations of usage and purpose.

If you have any issues/suggestions/requests, please post them to the Github issue tracker linked above.

Need to get in contact with me, or want to support me? Click the badges below:

Discord Patreon Ko-Fi

Need a server? Click the banner below and use code "fonny" for 25% off your first month with Bisect Hosting: Bisect Banner

open_in_new View on Modrinth
Compatibility
Client: Optional Server: Optional
gavel LGPL-3.0-or-later

Conversation

What are your thoughts?

Related projects

Library
Fabric API
Fabric API

by modmuss50

Lightweight and modular API providing common hooks and intercompatibility measures utilized by mods using the Fabric toolchain.

download 128.4M
favorite 27,401
Library
Cloth Config API
Cloth Config API

by shedaniel

Configuration Library for Minecraft Mods

download 94.4M
favorite 13,670
Optimization Utility
FerriteCore
FerriteCore

by malte0811

Memory usage optimizations

download 84.3M
favorite 12,712
Utility
Mod Menu
Mod Menu

by Prospector

Adds a mod menu to view the list of mods you have installed.

download 77.7M
favorite 22,127
lock Cookie consent

SkinMC uses cookies to provide functionality and features.