Skip to main content
FORGEJO ERA / ISSUE #630

Let the user add raw options.txt lines to the global Minecraft defaults

closedOpened by MelanX on

Original description​

By MelanX · October 24, 2026

Crates: ephervex-options, ephervex-storage, ephervex-core, ephervex-gui

Behavior

The global Minecraft defaults offer a curated set of settings (#629). Anything outside that set, such as a setting added in a new release, a mod's option or a rarely used key binding, cannot be put into the options.txt of a new instance.

Expected behavior

The Minecraft defaults screen has a free-text area for raw options.txt lines. The text is stored in the configuration, and when an instance's options.txt is written, each line is applied after the managed preferences: a line whose key already exists in the file replaces that line, and any other line is appended. Lines are written as given, with no check against any release's settings, codecs or data version; the user is responsible for their correctness, and the screen says so.

The only requirements are those of the file format: a line is key:value with a non-empty key, a line that cannot be one (no separator, a control character in the key or value) is reported to the user and not written, and the data-version marker line (version) is never taken from the text because it belongs to the release being written. Blank lines are ignored. Because raw lines are applied last, they win over any managed preference and over the line Ephervex adds for the graphics preset. A raw line is applied only to instances created or imported afterwards, like every other default, and never to an existing instance.

Impact

Any setting can be set as a default without waiting for the catalog to offer it, while the catalog itself stays small and fully verified.

Validation

Tests cover replacing an existing key, appending a new one, ignoring blank lines, refusing a malformed line and the version line, and precedence over a managed preference. The configuration field defaults to empty so existing configuration files load unchanged.