Описание
# Universal Settings
A client-side Minecraft mod (Fabric + NeoForge) that syncs your settings across every computer, instance, and game version you play on.
No more redoing the same setup for every new instance or PC. A fresh install pulls your settings on first launch, and every change you make afterwards syncs to your other installs automatically.
**What syncs:** everything in `options.txt` and your multiplayer server list.
**Profiles:** keep multiple named profiles (e.g. `default`, `laptop`) and pick one as the default. If an install already has customized settings, you get a one-time choice to keep them as a new profile or switch to your synced ones.
**Authentication:** no login, ever. The mod proves who you are through the same Mojang session handshake used to join multiplayer servers, so only you can read or write your settings. In offline mode syncing pauses for the session and your local settings are untouched.
## Privacy
This mod uploads your settings to a sync server so they can be shared across your installs. By default that server is the central instance operated by the mod author ([universalsettings.whitemcwizard.nl](https://universalsettings.whitemcwizard.nl)).
- **What is stored:** your Minecraft username and UUID, the contents of your `options.txt`, your `servers.dat` (multiplayer server list), and your exclusion lists.
- **Your server list is included.** `servers.dat` holds the addresses of every multiplayer server you've saved. If you'd rather not upload that, turn off **Sync servers** in the in-game *Ignored Settings* screen.
- **You can delete it.** Deleting a profile in-game removes it from the server.
- **No secrets are stored.** The Mojang handshake never exposes your password or launcher token to the sync server.
Prefer not to use the central server? This repository includes the full server (`server/`). Self-host it and point the mod at your own instance with `serverUrl` in `config/universalsettings.json`.
## Layout
- `common/`: all mod logic (sync manager, options codec, HTTP client, auth, first-run UI, mixins)
- `fabric/`, `neoforge/`: thin loader entry points
- `server/`: the central sync server (Node.js + Fastify + SQLite)
- `versions/{mc}/gradle.properties`: per-Minecraft-version properties, shared by all branches
Multi-version builds are managed by [Stonecutter](https://stonecutter.kikugie.dev/):
every supported Minecraft version is a Gradle subproject ("node") of each branch,
e.g. `:fabric:26.1.2`. The active version's sources live directly in `{branch}/src/`;
use the `Reset active project` task before committing after a version switch.
To add a Minecraft version: register it in `settings.gradle` (`versions '26.1.2', '...'`),
create `versions/{mc}/gradle.properties` with that version's properties, and port
version-specific code with Stonecutter comments (`//? if