Skip to content

Config format

Мурза Лейн edited this page Feb 16, 2022 · 18 revisions

Config location

All config for Genshin Impact is located in registry. Path to config is Computer\HKEY_CURRENT_USER\SOFTWARE\miHoYo\Genshin Impact.
Config files are JSON encoded as HEX and stored in registry values.

GENERAL_DATA... contains settings for the current device, like sensitivity or graphics. This application works with it mostly.
Screenmanager... entries contain resolution width, height and fullscreen flag. They are simple numbers.
USD_{User_ID}... entries are storing some "temporary" data - they are responsible for red exclamation marks for sure, and might be for something else. They aren't much useful.

GENERAL_DATA format

Example config
{
    "deviceUUID": "",
    "userLocalDataVersionId": "0.0.1",
    "deviceLanguageType": 8,
    "deviceVoiceLanguageType": 1,
    "selectedServerName": "os_euro",
    "localLevelIndex": 0,
    "deviceID": "",
    "targetUID": "",
    "curAccountName": "",
    "uiSaveData": {
        "currWindowResolutionIndex": 0
    },
    "inputData": {
        "scriptVersion": "OSRELWin2.5.0",
        "mouseSensitivity": 10.0,
        "joypadSenseIndex": 2,
        "joypadFocusSenseIndex": 0,
        "joypadInvertCameraX": false,
        "joypadInvertCameraY": false,
        "joypadInvertFocusCameraX": false,
        "joypadInvertFocusCameraY": false,
        "mouseSenseIndex": 2,
        "mouseFocusSenseIndex": 1,
        "touchpadSenseIndex": 2,
        "touchpadFocusSenseIndex": 5,
        "enableTouchpadFocusAcceleration": false,
        "lastJoypadDefaultScale": 0.8999999761581421,
        "lastJoypadFocusScale": 0.5,
        "lastPCDefaultScale": 0.5,
        "lastPCFocusScale": 0.4000000059604645,
        "lastTouchDefaultScale": 1.0,
        "lastTouchFcousScale": 1.0,
        "switchWalkRunByBtn": false,
        "skiffCameraAutoFix": true,
        "skiffCameraAutoFixInCombat": false,
        "cameraDistanceRatio": 1.0,
        "wwiseVibration": true
    },
    "graphicsData": {
        "currentVolatielGrade": -1,
        "customVolatileGrades": [...],
        "volatileVersion": "OSRELWin2.5.0"
    },
    "globalPerfData": "",
    "miniMapConfig": 1,
    "enableCameraSlope": true,
    "enableCameraCombatLock": true,
    "completionPkg": false,
    "completionPlayGoPkg": false,
    "onlyPlayWithPSPlayer": false,
    "needPlayGoFullPkgPatch": false,
    "resinNotification": true,
    "exploreNotification": true,
    "volumeGlobal": 10,
    "volumeSFX": 10,
    "volumeMusic": 8,
    "volumeVoice": 10,
    "audioAPI": -1,
    "audioDynamicRange": 0,
    "audioOutput": 0,
    "_audioSuccessInit": true,
    "enableAudioChangeAndroidMinimumBufferCapacity": true,
    "audioAndroidMiniumBufferCapacity": 2048,
    "motionBlur": true,
    "gyroAiming": false,
    "firstHDRSetting": true,
    "maxLuminosity": 0.0,
    "uiPaperWhite": 0.0,
    "scenePaperWhite": 0.0,
    "_overrideControllerMapKeyList": [
        "OverrideControllerMap__d74a350e-fe8b-4e9e-bbcd-efff16d34115__2000000",
        "OverrideControllerMap__d74a350e-fe8b-4e9e-bbcd-efff16d34115__2001000",
        "OverrideControllerMap__00000000-0000-0000-0000-000000000000__0"
    ],
    "_overrideControllerMapValueList": [...],
    "lastSeenPreDownloadTime": 0,
    "mtrCached": true,
    "mtrIsOpen": false,
    "mtrMaxTTL": 32,
    "mtrTimeOut": 5000,
    "mtrTraceCount": 5,
    "mtrAbortTimeOutCount": 3,
    "mtrAutoTraceInterval": 3600,
    "mtrTraceCDEachReason": 600
}

Only part of those values are known, some of them are kept just for compatibility. They may change between the game versions.

Name Type Value Description
deviceUUID string Empty Probably device ID, currently not used
userLocalDataVersionId string "0.0.1" Might be the version of the config
deviceLanguageType int 1-13 Game text language ID
deviceVoiceLanguageType int 1-4 Game voice language ID
selectedServerName string Server name Last selected server name
localLevelIndex int 0 ?
deviceID string Empty ?
targetUID string Empty ?
curAccountName string Empty ?
uiSaveData dictionary ... ?
uiSaveData.currWindowResolutionIndex int 0 ?
inputData dictionary Input config Values related to sensitivity and camera
graphicsData dictionary Graphics config Values related to graphics preset and settings
globalPerfData string Empty ?
miniMapConfig int 1 ?
enableCameraSlope bool true Automatic view height?
enableCameraCombatLock bool true Smart combat camera?
completionPkg bool false ?
completionPlayGoPkg bool false ?
onlyPlayWithPSPlayer bool false Might be related to older PlayStation multiplayer lock
needPlayGoFullPkgPatch bool false ?
resinNotification bool true Probably notification about full resin - useless for PC
exploreNotification bool true Looks like notification about finished expeditions - useless for PC
volumeGlobal int 0-10 Main volume slider
volumeSFX int 0-10 SFX volume slider
volumeMusic int 0-10 Music volume slider
volumeVoice int 0-10 Voice volume slider
audioAPI int -1 ?
audioDynamicRange int 0 Audio dynamic range. 0 - full, 1 - limited
audioOutput int 0 Audio output format. 0 - stereo, 1 - 5.1?
_audioSuccessInit bool true ?
enableAudioChangeAndroidMinimumBufferCapacity bool true ?
audioAndroidMinimumBufferCapacity int 2048 ?
motionBlur bool true ?
gyroAiming bool false Bow aiming with gyroscope - useless for PC
firstHDRSetting bool true ?
maxLuminosity float 0.0 ?
uiPaperWhite float 0.0 ?
scenePaperWhite float 0.0 ?
_overrideControllerMapKeyList list Controller override IDs List with the controllers that has overridden keys
_overrideControllerMapValueList list List of controller maps Keybindings overrides for previous option
lastSeenPreDownloadTime int 0 ?
mtrCached bool true ?
mtrIsOpen bool false ?
mtrMaxTTL int 32 ?
mtrTraceCount int 5 ?
mtrAbortTimeOutCount int 3 ?
mtrAutoTraceInterval int 3600 ?
mtrTraceCDEachReason int 600 ?

Input Data format

Example config
"inputData": {
        "scriptVersion": "OSRELWin2.5.0",
        "mouseSensitivity": 10.0,
        "joypadSenseIndex": 2,
        "joypadFocusSenseIndex": 0,
        "joypadInvertCameraX": false,
        "joypadInvertCameraY": false,
        "joypadInvertFocusCameraX": false,
        "joypadInvertFocusCameraY": false,
        "mouseSenseIndex": 2,
        "mouseFocusSenseIndex": 1,
        "touchpadSenseIndex": 2,
        "touchpadFocusSenseIndex": 5,
        "enableTouchpadFocusAcceleration": false,
        "lastJoypadDefaultScale": 0.8999999761581421,
        "lastJoypadFocusScale": 0.5,
        "lastPCDefaultScale": 0.5,
        "lastPCFocusScale": 0.4000000059604645,
        "lastTouchDefaultScale": 1.0,
        "lastTouchFcousScale": 1.0,
        "switchWalkRunByBtn": false,
        "skiffCameraAutoFix": true,
        "skiffCameraAutoFixInCombat": false,
        "cameraDistanceRatio": 1.0,
        "wwiseVibration": true
    },
Name Type Value Description
scriptVersion string OSRELWin{version} Current config version
mouseSensitivity float 10.0 ?
joypadSenseIndex int 1-5 Gamepad sensitivity
joypadFocusSenseIndex int 1-5 Gamepad aimed sensitivity
joypadInvertCameraX bool false Invert gamepad X axis
joypadInvertCameraY bool false Invert gamepad Y axis
joypadInvertFocusCameraX bool false Invert gamepad X axis (aimed)
joypadInvertFocusCameraY bool false Invert gamepad Y axis (aimed)
mouseSenseIndex int 1-5 Mouse sensitivity
mouseFocusSenseIndex int 1-5 Mouse aimed sensitivity
touchpadSenseIndex int 1-5 Touchscreen sensitivity?
touchpadFocusSenseIndex int 1-5 Touchscreen aimed sensitivity?
enableTouchpadFocusAcceleration bool false ?
lastJoypadDefaultScale float 0-1 Gamepad - camera FOV?
lastJoypadFocusScale float 0-1 Gamepad - aimed FOV?
lastPCDefaultScale float 0-1 Mouse - camera FOV?
lastPCFocusScale float 0-1 Mouse - aimed FOV?
lastTouchDefaultScale float 0-1 Touchscreen - camera FOV?
lastTouchFcousScale float 0-1 Touchscreen - aimed FOV?
switchWalkRunByBtn bool false ?
skiffCameraAutoFix bool true Waverider camera view fix?
skiffCameraAutoFixInCombat false Waverider camera view fix in combat?
cameraDistanceRatio float 0-1 ?
wwiseVibration bool true ?

Graphics Data format

Example config
"graphicsData": {
        "currentVolatielGrade": -1,
        "customVolatileGrades": [
            {
                "key": 1,
                "value": 2
            }, {
                "key": 2,
                "value": 1
            }, {
                "key": 3,
                "value": 1
            }, {
                "key": 4,
                "value": 1
            }, {
                "key": 5,
                "value": 1
            }, {
                "key": 6,
                "value": 1
            }, {
                "key": 7,
                "value": 2
            }, {
                "key": 8,
                "value": 1
            }, {
                "key": 9,
                "value": 1
            }, {
                "key": 10,
                "value": 1
            }, {
                "key": 11,
                "value": 1
            }, {
                "key": 12,
                "value": 1
            }, {
                "key": 13,
                "value": 1
            }, {
                "key": 16,
                "value": 1
            }, {
                "key": 15,
                "value": 1
            }, {
                "key": 17,
                "value": 1
            }
        ],
        "volatileVersion": "OSRELWin2.5.0"
    }

Graphics settings consists of two main values. First one is preset - if it's set, then all custom settings are ignored. If it isn't set, then the game loads custom graphics settings.

Name Type Value Description
currentVolatielGrade -1-4? Graphics preset, where -1 is "Custom"
customVolatileGrades Dictionary ... Custom graphics settings
customVolatileGrades.key int 1-17 Setting ID
customVolatileGrades.value int 1-? Setting value
volatileVersion string OSRELWin{version} Current config version

Graphics settings IDs

Name ID Min Max
Vertical Sync 1 1 2
Render Resolution 2 1 8
Shadow Quality 3 1 4
Visual Effects 4 1 4
SFX Quality 5 1 4
Environment Detail 6 1 5
FPS 7 1 2
Antialiasing 8 1 3
Volumetric Fog 9 1 2
Reflections 10 1 2
Motion Blur 11 1 4
Bloom 12 1 2
Crowd Density 13 1 2
Subsurface Scattering 15 1 3
Teammate Effects 16 3 1
Anisotropic Filtering 17 1 5

If Shadow Quality is set on low, then Volumetric Fog can't be enabled
Teammate Effects values are reversed

Clone this wiki locally