Modscraper Modscraper Minecraft
ZConfig logo

ZConfig

Mod

by zenxarch

A mixin config mod with override loading from other mods

Type

Mod

CurseForge Downloads

341,982

CurseForge ID

1632946

Modrinth Downloads

1,290,936

Modrinth ID

4qmvXRB9

Last Updated

Nov 15, 2026

Description

Why does this project exist?

This is a general purpose config mod slightly based on c2me's internal config system. This also lets me reduce zfastnoise's size to a few dozen kilobytes and users only have to download the config mod once.

Features

  • Toml based config files
  • boolean and int based config entries
  • allow other mods to override config entries using mod metadata
  • mark mods as incompatible with certain config entries

For example, fabric.mod.json

{
  ...
  "custom": {
    "zfastnoise:overrides" : "mixin.perf.surface"
  }
}

The above disables mixin.perf.surface config option

Future plans

  • add support for modmenu/forge config api
  • add neoforge builds
  • add more sugar to easily generate config

Example config

package org.codeberg.zenxarch.zconfig.test;

import org.codeberg.zenxarch.zconfig.entry.BooleanConfigEntry;
import org.codeberg.zenxarch.zconfig.entry.ConfigEntries;
import org.codeberg.zenxarch.zconfig.entry.IntConfigEntry;
import org.codeberg.zenxarch.zconfig.loader.Config;
import org.codeberg.zenxarch.zconfig.loader.ConfigLoader;
import org.codeberg.zenxarch.zconfig.loader.OverrideCollector;
import org.junit.jupiter.api.Test;

public class ExampleConfig extends ConfigEntries {
  public static final ExampleConfig INSTANCE = new ExampleConfig();

  public static final BooleanConfigEntry MAIN =
      INSTANCE.createEntry(
          "main",
          builder -> builder.addComment("Main entry").defaultValue(false).addIncompat("sodium"));

  public static final IntConfigEntry OTHER =
      INSTANCE.createIntEntry(
          "other", builder -> builder.addComment("Other entry").defaultValue(0).constraints(-1, 1));

  public static final Config CONFIG =
      new Config(
          new ConfigLoader("example_mod_id", INSTANCE), new OverrideCollector("example_mod_id"));

  @Test
  public void loadConfig() {
    IO.println(CONFIG.get(MAIN));
    IO.println(CONFIG.get(OTHER));
    IO.println(CONFIG.loadMixinEntries());
  }
}

Compatibility

Mod Loaders

Client Fabric Server Quilt

Game Versions

1.21 1.21.8 1.21.5 1.21.4 1.21.1 1.21.6 1.21.3 1.21.7 1.21.2 1.21.9 +2 more

Recommended Gear

Affiliate

Hardware and extras that pair well with this mod.

As an Amazon Associate I earn from qualifying purchases.

Screenshots

Similar Mods

Included in Modpacks (132)

Most downloaded
Show all 132 modpacks

External Resources