Skip to content

Rubric Self Config

Oliver Yasuna edited this page Jul 1, 2026 · 1 revision

Rubric — Self-config

Rubric has its own config. It lives at <gameDir>/config/Rubric.toml, loads at mod init before any consumer registers, and drives Rubric-wide behavior.

You can edit Rubric.toml by hand, or you can edit it from the in-game GUI just like any other Rubric-backed config (there's a "Rubric" entry under ModMenu / Catalogue).

Groups

The config is grouped into four sections. Every knob is defaulted to a sane value — you only touch these when something specific bothers you.

gui.*

Applied at screen-open time. Changes take effect on the next screen open (no game restart needed).

Key Type Default Notes
preferredFrontend Frontend AUTO AUTO picks YACL if present, then Cloth. YACL or CLOTH pins that frontend; if it's not installed, the placeholder screen is shown.
showMetadataSuffixes boolean true Append tag suffixes like [restart], [server, world] to entry labels in the GUI. Turn off if you find the tags noisy.
defaultSliderTicks int 200 Number of discrete steps in a slider widget — the entry's range is divided into N ticks. Higher = finer drag, lower = chunkier. Currently applied to double/float sliders only; integer/long sliders always step by 1.

io.*

Applied at IO-construction time. Changes to atomicWrites / backupRetention currently require a restart to take effect (planned to be live in a future release).

Key Type Default Notes
backupRetention int 10 How many timestamped backups of corrupt config files to keep. A backup is written before a malformed file is overwritten on load; older backups beyond this count are pruned. 0 disables backups.
fileWatchDebounceMillis long 200 Minimum quiet time before a file-watch event triggers a reload. Coalesces editor staged-write-then-rename sequences. Raise if your editor still causes double reloads.
atomicWrites boolean true Write configs via a temporary file + atomic rename, so a crash mid-write never leaves a half-written file. Disable only when your filesystem does not support atomic rename (some network mounts, sync clients like Dropbox / OneDrive, certain FUSE setups).

sync.*

Applied at sync-service construction. Changes require a restart.

Key Type Default Notes
payloadMaxBytes int 1048576 Hard cap on a single sync payload (bytes). Server-pushed snapshots larger than this are rejected. Defense against malicious / misconfigured servers. Range: 1 KiB to 16 MiB.
handshakeTimeoutMillis long 5000 Maximum wait for the server's initial sync handshake before the sync session is dropped. Range: 500 ms to 60 s.
requireProtocolMatch boolean true Fail-closed when the server's sync protocol version differs from ours. When false, mismatched payloads are skipped with a log warning instead.

validation.*

Applied per-load. Placeholders in the current release — the flags exist and are read, but the enforcement is coming.

Key Type Default Notes
strict boolean false Refuse to load a config whose load produced any corrections, instead of the default correct-and-log behavior. Useful for modpack devs / CI who want a config typo to fail the boot loudly.
dumpCorrections boolean false On each load, write a sibling <config>.corrections.log listing every correction applied. Off by default — turn on when debugging schema mismatches.

When are values re-read

Rubric holds a snapshot of the relevant flags at the moment they're consumed:

  • GUI flags — read at every screen open. No restart needed.
  • IO / sync flags — read at bootstrap. Restart needed until we wire live rebuilding of the IO / sync services.
  • Validation flags — read at every load. Live once implemented.

If you're not sure whether a change took effect, a full game restart is always safe.

Editing from the GUI

Since Rubric registers itself as a Rubric-backed config, you can edit Rubric.toml from the same GUI you use for any consumer mod:

  1. Open ModMenu (or Catalogue).
  2. Find the "Rubric" mod entry.
  3. Click the config icon.
  4. Adjust and Save & Exit.

Note the recursive feel: showMetadataSuffixes sits on the label showMetadataSuffixes [world] while it's enabled, and rebrands to just showMetadataSuffixes after you turn it off and reopen the screen.

What next

  • Frontends — how gui.preferredFrontend is applied.
  • Sync — semantics of the sync.* knobs.
  • Validation — background on what the validation.* flags will control once wired.

Clone this wiki locally