Partitioning the Config

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)
);

Last updated