Skip to content

Rubric Installation

Oliver Yasuna edited this page Jul 3, 2026 · 2 revisions

Rubric — Installation

Two audiences: players who want to run a mod that uses Rubric, and developers who want to build a mod against Rubric.

Rubric ships an integration for both Fabric and NeoForge. Pick the one matching your target loader.

For players

Fabric

  1. Install Fabric Loader and Fabric API.
  2. Drop rubric-fabric-<version>.jar into your mods/ folder alongside the mod that depends on it.
  3. Optional but recommended: install a config-GUI library so you can edit Rubric-backed configs from ModMenu / Catalogue:
    • YetAnotherConfigLib (YACL)
    • Cloth Config
    • You can install both. Which one Rubric uses is controlled by the gui.preferredFrontend setting in Rubric's own config (default AUTO picks YACL when both are present).
  4. Optional but recommended: ModMenu or Catalogue — Rubric registers config screen entries with both.

NeoForge

  1. Install NeoForge matching the mod's target MC version.
  2. Drop rubric-neoforge-<version>.jar into your mods/ folder alongside the mod that depends on it.
  3. Optional but recommended: install a config-GUI library:
    • YetAnotherConfigLib (YACL) — NeoForge builds available.
    • Cloth Config — NeoForge builds available.
    • gui.preferredFrontend in Rubric's own config picks between them (default AUTO = YACL first).
  4. Optional but recommended: Catalogue surfaces Rubric-backed configs via NeoForge's standard IConfigScreenFactory extension point — no extra setup needed.

If no GUI library is installed, config buttons in ModMenu / Catalogue still work — clicking one opens a placeholder screen with buttons that reveal the config file on disk so you can edit it manually.

For mod developers

Rubric is published to Maven Central under group com.oliveryasuna.mc. Every module is versioned in lock-step.

Fabric — Gradle (Kotlin DSL)

repositories {
    mavenCentral()
}

dependencies {
    // The Fabric integration bundles every other Rubric module via Loom's
    // include() mechanism, so consuming mods only need a single dep.
    modImplementation("com.oliveryasuna.mc:rubric-fabric:<version>") {
        // Rubric depends on Fabric API but consumers pin their own version.
        exclude(group = "net.fabricmc.fabric-api")
    }
    include("com.oliveryasuna.mc:rubric-fabric:<version>")
}

NeoForge — Gradle (Kotlin DSL)

plugins {
    id("net.neoforged.moddev") version "<moddev-version>"
}

repositories {
    mavenCentral()
}

dependencies {
    // The NeoForge integration bundles every other Rubric module via
    // ModDev's jarJar mechanism, so consuming mods only need a single dep.
    implementation("com.oliveryasuna.mc:rubric-neoforge:<version>")
    jarJar("com.oliveryasuna.mc:rubric-neoforge:<version>")
}

If you want to depend on the pure-Java modules directly (e.g. for a shared config-only library), pull them individually:

  • com.oliveryasuna.mc:rubric-api — leaf module: annotations, Format enum. Everyone depends on it.
  • com.oliveryasuna.mc:rubric-model — config data model: schema tree, format-neutral ValueTree + codecs, validators, ConfigSpec builder.
  • com.oliveryasuna.mc:rubric-core — runtime: Rubric entry point, ConfigManager, ConfigHandle, ConfigValue, lifecycle, events, Platform SPI.
  • com.oliveryasuna.mc:rubric-ioConfigIO / FormatAdapter interfaces + NIO file backend.
  • com.oliveryasuna.mc:rubric-format — format adapters: TOML, JSON, JSON5 (NightConfig + Jankson backends).
  • com.oliveryasuna.mc:rubric-migration — versioned migration steps.
  • com.oliveryasuna.mc:rubric-sync — server/client sync: wire protocol + runtime service.
  • com.oliveryasuna.mc:rubric-mojang-codec — Mojang Codec<T> bridge.
  • com.oliveryasuna.mc:rubric-loader-common — loader-agnostic bits (self-config POJO, RubricSelf, RubricSerialization, ScreenBuildContext). Depended on transitively via rubric-fabric / rubric-neoforge.

Gradle Version Catalog

If you already use a version catalog:

[versions]
rubric = "<version>"

[libraries]
rubric-fabric = { module = "com.oliveryasuna.mc:rubric-fabric", version.ref = "rubric" }
rubric-neoforge = { module = "com.oliveryasuna.mc:rubric-neoforge", version.ref = "rubric" }

Declaring Rubric as a dependency

Fabric — add to fabric.mod.json:

{
    "depends": {
        "rubric": ">=<version>"
    },
    "suggests": {
        "yet_another_config_lib_v3": "*",
        "cloth-config": "*",
        "modmenu": "*"
    }
}

NeoForge — add to META-INF/neoforge.mods.toml:

[[dependencies.your_mod_id]]
modId = "rubric"
type = "required"
versionRange = "[<version>,)"
ordering = "NONE"
side = "BOTH"

[[dependencies.your_mod_id]]
modId = "yet_another_config_lib_v3"
type = "optional"
versionRange = "[3.7.0,)"
ordering = "NONE"
side = "CLIENT"

[[dependencies.your_mod_id]]
modId = "cloth_config"
type = "optional"
versionRange = "[19.0,)"
ordering = "NONE"
side = "CLIENT"

Verifying it works

After bootstrap, Rubric writes its own config to <gameDir>/config/Rubric.toml. If that file exists after first launch, the library is loaded and running.

Next: Quick Start.

Clone this wiki locally