# Converting between versions

> How Settings Saver keeps one copy of your settings that works on every Minecraft version from 1.7.10 to 26.3, and which settings change along the way.

URL: https://xichil.dev/wiki/settings-saver/v0/mechanics/version-conversion/ · Updated: 2026-11-06 · Applies to: Fabric, Quilt, Legacy Fabric, Forge, NeoForge, MC 1.7.10 - 26.3

Minecraft has changed the format of `options.txt` many times: options were renamed, value ranges
changed and keybinds moved from numeric codes to names. Settings Saver keeps one copy of your settings
and converts it to and from each version's exact format, so settings saved in 26.3 load in 1.7.10 and
the other way round.

## One stored format

The store holds each profile's settings in the newest format Settings Saver knows (26.3), plus the
options that only older versions have, such as `heldItemTooltips`, so those can be restored there.

- **Saving** converts the instance's file up to that format, step by step through every format
  change between the two versions.
- **Applying** converts it down to the running version, through the same steps in reverse, and
  writes it with that version's own `version:` line. The game then reads it as its own file and
  changes nothing.

Every Minecraft version, snapshots included, is placed by its data version, the number Minecraft uses
to order its own formats. A file that names its own version (1.10 and newer) is converted from that
version, even when it was copied in from another instance. Versions newer than the Settings Saver
build get the newest format it knows, and the game upgrades it itself.

## What changes between versions

| Version | Change | Going back to older versions |
| --- | --- | --- |
| 1.8 | `clouds` became `renderClouds`, `showCape` became `modelPart_cape` | renamed back |
| 1.8.1 | `renderClouds` gained `fast` | `fast` becomes `true` |
| 1.11 | language codes became lower case (`en_US` to `en_us`) | region upper case again |
| 1.13 | keybinds changed from LWJGL key codes to key names (`key.keyboard.w`) | converted back to codes; keys with no old code fall back to the game's default |
| 1.14 | `textBackgroundOpacity` added, derived from `chatOpacity` | dropped |
| 1.16 | `fancyGraphics` became `graphicsMode` | any mode other than Fast becomes Fancy |
| 1.16 | the swap-hands keybind was renamed | renamed back |
| 1.19 | `renderClouds`, `mainHand` and `soundDevice` became quoted text | quotes removed (1.18 can't read them) |
| 1.19.3 | smooth lighting (`ao`) became on/off | on becomes Maximum, off becomes Off |
| 1.21 | menu background blur went from 0.0–1.0 to 0–10 | divided by 10 |
| 1.21.11 | `graphicsMode` split into a graphics preset and separate options (cutout leaves, weather radius, vignette, improved transparency) | Fast, Fancy or Fabulous, chosen from the separate options |
| 1.21.11 | `showNowPlayingToast` became `musicToast` | `never` becomes off, anything else on |

Settings with the same meaning in every version, such as FOV, mouse sensitivity, brightness, render
distance, GUI scale, max framerate, particles, volumes and on/off options, are copied unchanged.

## Options a version doesn't have

Settings Saver knows which options each release from 1.7.10 to 26.3 has. When it writes for a
version, options that version doesn't have are left out of the file but stay in the profile, so
going back to a newer version restores them.

Keybinds (`key_…`), volume sliders (`soundCategory_…`), skin parts (`modelPart_…`) and options that
Settings Saver doesn't know, such as those added by mods, are always passed through. That includes
keybinds of other mods, which live in `options.txt` too. Minecraft ignores options it doesn't know.

## Values a version can only approximate

Some settings can't be expressed in older versions: 1.12.2 has no Fabulous graphics. When an older
version writes its closest match (Fancy), Settings Saver doesn't treat that as a change, so the
profile keeps Fabulous. Only a value you actually change in that version is saved over it.

Numbers are compared loosely: older versions save `0.6056338` where newer ones save
`0.6056338028169014`, and differences smaller than one millionth don't count as changes.

## Forge and NeoForge key modifiers

Forge and NeoForge let keybinds require a modifier key, saved as
`key_key.attack:key.mouse.left:CONTROL`. The profile keeps the modifier. When writing for Fabric,
Quilt or Forge before 1.10, which don't have modifiers, the keybind is written without it.

## Which files are converted

Settings Saver 0.x syncs Minecraft's own `options.txt`. Other files, such as OptiFine's
`optionsof.txt`, other mods' config files and the server list (`servers.dat`), are not synced.
