Cloth Config
  • Introduction to Cloth Config
  • Frequently Asked Questions
  • Setup Cloth Config
    • Setup with Fabric
    • Setup with Forge
  • Using Cloth Config
    • Creating a Config Screen
    • Saving the Config
    • Creating a Config Category
    • Creating a Config Option
    • Building the Config Screen
  • Advanced
    • Creating a Dropdown Menu
    • ModMenu Integration
  • Auto Config
    • Introduction to Auto Config 1u
    • Setup with Gradle
    • Creating a Config Class
    • Registering the Config
    • Reading the Config
    • Generating a Cloth Config Screen
    • Annotations
    • Post-Validation
    • Partitioning the Config
    • Custom Gui Handlers
Powered by GitBook
On this page
  1. Auto Config

Partitioning the Config

PreviousPost-ValidationNextCustom Gui Handlers

Last updated 5 years ago

Was this helpful?

CtrlK
  • Example
  • Registering the Config

Was this helpful?

There's a PartitioningSerializer included to partition your config into multiple files within a directory. When using PartitioningSerializer, your top level config class must inherit from PartitioningSerializer.GlobalData and every field in that top level class must be of a type that inherits from ConfigData and is annotated with @Config.

Example

@Config(name = "modid")
class ModConfig extends PartitioningSerializer.GlobalData {
    @ConfigEntry.Category("module_a")
    @ConfigEntry.Gui.TransitiveObject
    ModuleAConfig moduleA = new ModuleAConfig();
    
    @ConfigEntry.Category("module_b")
    @ConfigEntry.Gui.TransitiveObject
    ModuleBConfig moduleB = new ModuleBConfig();
}

@Config(name = "module_a")
class ModuleAConfig implements ConfigData {
    /* your config fields here */
}

@Config(name = "module_b")
class ModuleBConfig implements ConfigData {
    /* your config fields here */
}

Registering the Config

AutoConfig.register(
    ModConfig.class,
    PartitioningSerializer.wrap(JanksonConfigSerializer::new)
);