-
Notifications
You must be signed in to change notification settings - Fork 15
Home
This library is a simple utility that allows using Minecraft Forge's & NeoForge's config system on other mod loaders. This is done to aid developers wishing to maintain their projects on multiple loaders, either via manual porting or in a multi-loader architecture. Either way, Forge Config Api Port works great for both.
All classes from Minecraft Forge / NeoForge are directly ported, meaning package names as well as class and method names are the exact same. This is especially great when your project uses a multi-loader architecture, since Forge Config Api Port can be applied directly to a common module, so your config only needs to be setup once for all mod loaders.
The main advantage of Forge Config Api Port over other config libraries lies in the fact that no additional library is required on Minecraft Forge / NeoForge (since this very exact config api is built-in), only distributions for other mod loaders depend on this one library.
Config screens are directly built-in with Forge Config Api Port, powered by the native screens shipped with NeoForge itself.
Please note that no such config screens exist when using ForgeConfigSpec, and there are no efforts made to make the NeoForge screens compatible with Minecraft Forge's config system.
Just as with Minecraft Forge itself, in-game configuration is not available in Forge Config Api Port by default. However, third-party projects exist to offer such functionality.
Forge Config Screens is one such project. Additionally, Mod Menu is required on Fabric to access the provided config screens.

Adding Forge Config Screens to your development environment is not a requirement, but highly recommended. All you need are a few more lines added to your Gradle build script.
repositories {
maven {
name = "Fuzs Mod Resources"
url = "https://raw.githubusercontent.com/Fuzss/modresources/main/maven/"
}
}
dependencies {
// Fabric
modLocalRuntime "fuzs.forgeconfigscreens:forgeconfigscreens-fabric:<modVersion>"
// NeoForge
runtimeOnly "fuzs.forgeconfigscreens:forgeconfigscreens-neoforge:<modVersion>"
// Forge
runtimeOnly(fg.deobf("fuzs.forgeconfigscreens:forgeconfigscreens-forge:<modVersion>"))
}