Config format - Myp3a/GenshinConfigurator GitHub Wiki

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 0-3 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 dictionary PerfData Last time when you changed a graphics setting (Values must be identical to graphicsData, otherwise ones from here are used)
miniMapConfig int 1 ?
enableCameraSlope bool true Automatic view height?
enableCameraCombatLock bool true Smart combat camera?
completionPkg bool false ? (true for mobile)
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 ?
vibrationLevel int 0-2 New vibration feature. 0 - Full, 1 - Partial, 2 - Off
vibrationIntensity int 1-5 Vibration intensity
usingNewVibrationSetting bool true ?
motionBlur bool true ?
gyroAiming bool false Bow aiming with gyroscope
gyroHorMoveSpeedIndex int 1-5 Horizontal gyroscope sensitivity
gyroVerMoveSpeedIndex int 1-5 Vertical gyroscope sensitivity
gyroHorReverse bool false Horizontal gyroscope axis invert
gyroVerReverse bool false Vertical gyroscope axis invert
gyroRotateType int 0-2 Axis used for horizontal aiming
gyroExcludeRightStickVerInput bool false Exclude right stick adjustments when aiming
firstHDRSetting bool true ?
maxLuminosity float 0.0 ?
uiPaperWhite float 0.0 ?
scenePaperWhite float 0.0 ?
gammaValue float 3.0-1.4 Gamma setting in-game
enableHDR bool false HDR?
_overrideControllerMapKeyList list Controller override IDs List with the controllers that has overridden keys
_overrideControllerMapValueList list<ControllerMap> List of controller maps Keybindings overrides for previous option
rewiredDisableKeyboard bool false ?
rewiredEnableKeyboard bool false ?
rewiredEnableEDS bool true ?
disableRewiredDelayInit bool false ?
disableRewiredInitProtection bool false ?
conflictKeyBindingElementId List<string>? [] ?
conflictKeyBindingActionId List<string>? [] ?
lastSeenPreDownloadTime int 0 ?
lastSeenSettingResourceTabScriptVersion string Empty ?
enableEffectAssembleInEditor bool true ?
forceDisableQuestResourceManagement bool false ?
needReportQuestResourceDeleteStatusFiles bool false ?
disableTeamPageBackgroundSwitch bool false Disable region-based background when switching team characters
disableHttpDns bool false ?
mtrCached bool true Somehow related to mtr, a traceroute tool
mtrIsOpen bool true ?
mtrMaxTTL int 32 ?
mtrTimeOut int 5000 ?
mtrTraceCount int 5 ?
mtrAbortTimeOutCount int 3 ?
mtrAutoTraceInterval int 3600 ?
mtrTraceCDEachReason int 600 ?
mtrTimeInterval int 1000 ?
mtrBanReasons List<string>? [] ?
gcgInLevelDefaultShowUIDetail bool true ?
_customDataKeyList List<string>? [] ?
_customDataValueList List<string>? [] ?
_serializedCodeSwitches List<int> [] ?
urlCheckCached bool false Another tool like mtr?
urlCheckIsOpen bool false ?
urlCheckAllIP bool false ?
urlCheckTimeOut int 5000 ?
urlCheckSueecssTraceCount int 5 ?
urlCheckErrorTraceCount int 30 ?
urlCheckAbortTimeOutCount int 3 ?
urlCheckTimeInterval int 1000 ?
urlCheckCDEachReason int 600 ?
urlCheckBanReasons List<string>? [] ?
mtrUseOldWinVersion bool true ?
greyTestUniqueDeviceId string Empty ?
muteAudioOnAppMinimized bool false Mute game when not in focus

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 0-4 Gamepad sensitivity
joypadFocusSenseIndex int 0-4 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 0-4 Mouse sensitivity
mouseFocusSenseIndex int 0-4 Mouse aimed sensitivity
touchpadSenseIndex int 0-4 Touchscreen sensitivity
touchpadFocusSenseIndex int 0-4 Touchscreen aimed sensitivity
enableTouchpadFocusAcceleration bool false Touchscreen dynamic acceleration
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 Toggle walking by button / by axis value
skiffCameraAutoFix bool true Waverider camera view fix
skiffCameraAutoFixInCombat bool false Waverider camera view fix in combat
cameraDistanceRatio float 0-1 Default camera distance, between 4.5 (0) and 6.0 (1)
wwiseVibration bool true ?
isYInited bool true ?
joypadSenseIndexY int 0-4 Same sensitivities, but for Y axis?
joypadFocusSenseIndexY int 0-4 ?
mouseSenseIndexY int 0-4 ?
mouseFocusSenseIndexY int 0-4 ?
touchpadSenseIndexY int 0-4 ?
touchpadFocusSenseIndexY int 0-4 ?
lastJoypadDefaultScaleY float 0-1 ?
lastJoypadFocusScaleY float 0-1 ?
lastPCDefaultScaleY float 0-1 ?
lastPCFocusScaleY float 0-1 ?
lastTouchDefaultScaleY float 0-1 ?
lastTouchFcousScaleY float 0-1 ?

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 int -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

PerfData format

Example config
{
    "saveItems": [{
        "entryType": 1,
        "index": 1,
        "itemVersion": "OSRELWin2.7.0"
    }, {
        "entryType": 7,
        "index": 1,
        "itemVersion": "OSRELWin2.7.0"
    },
    ...
    {
        "entryType": 17,
        "index": 4,
        "itemVersion": "OSRELWin2.7.0"
    }],
    "truePortedFromGraphicData": true,
    "portedVersion": "OSRELWin2.7.0",
    "portedFromGraphicData": false
}

This dictionary keeps track of graphics settings changes - on what version you specified your current value.
saveItems.entryType - graphics setting ID, saveItems.index - it's value minus one.

Name Type Value Description
saveItems List PerfItem ?
saveItems.entryType int 1-17 Graphics setting ID
saveItems.index int 0-7? Graphics setting value - 1
saveItems.itemVersion string OSRELWin{version} Graphics config version
truePortedFromGraphicsData bool true ?
portedVersion string OSRELWin{version} Graphics config version
portedFromGraphicsData bool false ?

Graphics settings IDs

Name ID Min Max
FPS 1 1 3
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
Vertical Sync 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 1 3
Anisotropic Filtering 17 1 5
Dynamic Character Resolution 21 1 2

If Shadow Quality is set on low, then Volumetric Fog can't be enabled
FPS options: 30 (1), 60 (2), 45 (3) On mobile, some options are set to 0, and hidden from the settings

⚠️ **GitHub.com Fallback** ⚠️