Skip to content

Configuration

DttR stores settings in dttr.json next to dttr.exe. Invalid JSON or a missing schema_major_version causes a configuration error.

If dttr.json is missing or empty, DttR uses the built-in defaults, creating the file only when it is missing.

Pass a config file to dttr.exe to use multiple persistent configurations:

dttr.exe custom_dttr.json

Set string fields to null to clear them. DttR treats unknown or mistyped scalar keys as configuration errors.

Example

{
  "schema_major_version": 1,
  "log_level": "info",
  "minidump_type": "normal",
  "show_crash_popup": true,
  "log_file_path": "dttr.log",
  "pcdogs_path": "",
  "saves_path": "saves",
  "skip_intro_movies": false,
  "graphics": {
    "scaling_fit": "letterbox",
    "scaling_method": "logical",
    "graphics_api": "auto",
    "present_scaling_algorithm": "linear",
    "window_width": 640,
    "window_height": 480,
    "msaa_samples": 2,
    "generate_texture_mipmaps": true,
    "vertex_precision": "native",
    "sprite_smooth": true,
    "fullscreen": false
  },
  "audio": {
    "mss_sample_gain": 1.0,
    "mss_simulate_directsound_delay": false
  },
  "modding": {
    "hot_reload": false,
    "disabled_mods": [],
    "mod_configs": {}
  },
  "gamepad": {
    "enabled": true,
    "analog_remap": true,
    "index": 0,
    "axis_stick_x": "axis_left_x",
    "axis_stick_y": "axis_left_y",
    "axis_camera_rz": "axis_right_x",
    "deadzone_stick_x": 333,
    "deadzone_stick_y": 333,
    "deadzone_camera_rz": 600,
    "sensitivity_stick_x": 100,
    "sensitivity_stick_y": 100,
    "sensitivity_camera_rz": 100
  },
  "controls": {
    "special_bindings": {
      "start_pause": 1030,
      "menu_confirm": 1040
    }
  }
}

Mod Configs (modding.mod_configs)

Mod settings are stored by stable SDK mod_id. Each entry has a schema_version and a values object. Values may be booleans, integers, floats, or strings; enums are stored as strings. The settings come from mods that export DTTR_Mod_Config.

{
  "modding": {
    "mod_configs": {
      "example.author.my_mod": {
        "schema_version": 1,
        "values": {
          "enabled": true,
          "mode": "fast"
        }
      }
    }
  }
}

Gamepad Analog Remap

gamepad.analog_remap routes left-stick X/Y through PS1-style analog scaling and is enabled by default.

Control Bindings (controls.special_bindings)

controls.special_bindings stores extra bindings for inputs that the in-game controls menu does not expose.

Supported entries:

Key Native/default source Notes
start_pause Escape/gamepad start paths; mask 0x8000 Extra pause/start mask.
menu_confirm Controls-menu Enter path Confirms menu choices outside control remapping.

Movement, camera, in-game confirm, and back stay in the in-game Controls menu. Missing keys keep the game default and are omitted when saving.

{
  "schema_major_version": 1,
  "controls": {
    "special_bindings": {
      "start_pause": 1030,
      "menu_confirm": 1040
    }
  }
}