Configuration
JsonConfigStore reads and writes Config.json in the application directory. JSON properties use PascalCase and are read case-insensitively
Close the launcher before editing the file manually and preserve unrelated fields. The following fragment illustrates common preferences, not a complete replacement file
{
"Language": "en-US",
"CloseAfterLaunch": false,
"UseCustomJava": false,
"JavaArguments": "-Xms2G -Xmx4G",
"GpuPreference": "auto",
"OnlineMode": false
}
Selection and authentication
| Key | Default | Meaning |
|---|---|---|
Version | 2.0.0 | Configuration schema version, not the launcher release |
SelectedInstanceId | empty | Current instance ID |
SelectedProfileId | empty | Active profile ID |
OnlineMode | true | Use a connected authentication service for local profiles |
AuthDomain | sessions.sanasol.ws | Connected local-profile session service |
AuthServers | [] | User-added authentication service domains available in Network settings |
CurseForgeKey | empty | API key prepared during bootstrap when missing |
Official profiles always use official authentication and do not show the Auth Server editor. For unofficial profiles, the Network settings list appears only while Connected mode is enabled. The built-in sessions.sanasol.ws entry is always listed; AuthServers stores additional user-added entries and AuthDomain stores the selected value. The desktop checks each listed server with the game-session authentication API and records no availability result in configuration. Local Node chooses a free port from 8443–9999 on 127.0.0.1; neither the address nor its per-launch port is stored in this file
Launch settings
| Key | Default | Meaning |
|---|---|---|
CloseAfterLaunch | false | Close Desktop after successful process start |
UseCustomJava | false | Use the executable in CustomJavaPath |
CustomJavaPath | empty | Path to the Java executable |
JavaArguments | empty | Extra JVM arguments and UI-managed heap options |
GpuPreference | dedicated | Automatic, legacy adapter type, or a specific adapter key |
GameEnvironmentVariables | empty | Newline-separated KEY=VALUE assignments |
GPU values include auto, legacy dedicated and integrated, or pci:<id> when available and an adapter name otherwise. Platform adapters translate the selection into supported launch overrides
Interface and storage
| Key | Default | Meaning |
|---|---|---|
Language | en-US | UI culture |
MusicEnabled | true | Persisted background music preference |
ShowDiscordAnnouncements | true | Persisted announcement preference |
DismissedAnnouncementIds | [] | Previously dismissed announcement IDs |
DisableNews | false | News disabled preference |
InstanceDirectory | empty | Default instance root, or a custom path |
ShowAlphaMods | false | Include alpha mod releases |
LastExportPath | empty | Remembered mod export destination |
HasCompletedOnboarding | false | Compatibility state for onboarding |
A persisted property does not imply a completed Desktop workflow. The current onboarding and instance log viewer remain unfinished
Compatibility
Profile names, UUIDs, and sessions belong in Profiles, not Config.json. Loading older data migrates Nick, UUID, Profiles, and ActiveProfileIndex into the profile store
Instances, VersionType, and SelectedVersion remain compatibility fields. PreferredMirror is obsolete and ignored; source selection is automatic
Environment overrides
| Variable | Scope |
|---|---|
HYPRISM_DATA | Existing directory used as the full application data root |
XDG_DATA_HOME | Linux default data root when HYPRISM_DATA is absent |
HYPRISM_WIN32_COMPOSITION | Windows rendering diagnostic override, see performance |
HYPRISM_DOCS_SCREENSHOTS | Opt-in output directory for documentation captures |
The managed launch also supplies Java, DualAuth, GPU, and local certificate variables to child processes. Those runtime values are not independent launcher settings
Source: Config