Let the user add raw options.txt lines to the global Minecraft defaults
Original description
By MelanX · October 24, 2026Crates: 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.