Files
questshock/CONFIG.md
T
2026-09-05 05:30:00 +02:00

2.8 KiB

Persistent configuration (questshock.config.json)

QuestShock can load a persistent, human-editable configuration file at startup, in addition to (and independent of) the engine's own prefs.txt.

  • Location: /sdcard/questshock/questshock.config.json - the same folder you already copy res/data/res/sound into (see README.md section 5.1).

  • Format: plain JSON, grouped by concern. Each top-level key is a group; each key inside a group is one option.

  • Loading: read automatically at app startup, before the splash screen, if the file exists. If it doesn't exist, nothing changes - the engine behaves exactly as it did before this file existed (driven by prefs.txt as usual).

  • Saving: never automatic. In-headset, open the menu (controller menu button) and press Save Configuration to write the file from your current live settings, overwriting it if present. Press Load Configuration to re-read the file and apply it without restarting the app.

  • Live vs. restart-required: every option below is tagged as either live-appliable (applying it while already playing takes effect immediately) or restart-required. Pressing Load Configuration applies every live-appliable change straight away; if the file also changes something restart-required, a dialog lists exactly which option(s) need it and offers:

    • Dismiss - keep playing with the live-appliable changes already applied; the restart-required option(s) stay as they were.
    • Restart Now - relaunches the app, which re-runs this same startup load and so applies every group in the file, including the restart-required ones.

    (Both options currently documented below are live-appliable, so this dialog won't actually appear yet - it's built in for options added in a future version that do need a restart.)

  • Unrecognized groups/keys are ignored (harmless if you're editing the file in advance for a future version). An invalid value for a specific option (see each option's possible values below) is logged and that one option is skipped - every other valid option in the file still applies. A file that isn't valid JSON at all is ignored entirely, with nothing applied.

  • questshock.config.json and prefs.txt are fully independent - loading or saving one never reads or writes the other.

Example

{
  "video_options": {
    "renderer": "opengl",
    "resolution": "1024x768"
  }
}

Video Options (video_options)

renderer

Which renderer the game uses to draw the 3D view.

  • Type: enum
  • Possible values: "software", "opengl"
  • Restart required?: No (live-appliable)

resolution

The game's internal rendering resolution.

  • Type: enum
  • Possible values: "320x200", "320x400", "640x400", "640x480", "1024x768"
  • Restart required?: No (live-appliable)