Extracted from cooked game data (UE 5.7 export JSON). Source folder: Plugins/BHFramework/ — 47 JSON files, all under Content/Settings/. These are user-setting definitions (BHUserSetting*). Values are the export’s defaults and ranges.
Season 02 update (2026-10-15)
New setting:AllowOverkillPreset (Video). An On/Off choice; turning it on opens a confirmation popup (“Are You Sure?”) that says these settings will affect PC performance.
Gamepad horizontal sensitivity: default 3.0 → 4.0, min 0.5 → 1.0, max 10.0 → 7.0.
Gamepad vertical sensitivity: default 2.0 → 3.0, min 0.5 → 1.0, max 10.0 → 7.0.
AimAssistSensitivityMultiplier: the maximum of 1.5 (and display maximum) is no longer in the export. Default 1.0 is unchanged.
FrameRateLimit: now exports a maximum of 360 (display maximum 360) and a step of 1 with 0 decimals. Previously it had no parameters.
File and type counts: 46 → 47 JSON files; Video settings 11 → 12; BoolDiscrete value sets 5 → 6.
1. What This Plugin Holds
The game’s user-setting definitions: each asset defines one option the player can change in the settings menu, with its default, range, and display rules. The plugin has no gameplay logic; the settings UI and the code that reads these values are elsewhere.
Setting type
Count
Meaning
BHUserSettingNumericData
21
A slider or number: min, max, default, step
BHUserSettingDiscreteData
20
A choice from a list of values, with a default index or dynamic default
BHUserSettingBoolDiscreteValues
6
On/off choice with labelled values (Yes/No, On/Off)
Each setting’s effective value is the player’s saved choice, or the default if none is saved. Discrete settings with a dynamic default pick their default from the hardware or platform at runtime.
Some settings are multipliers of others. AimAssistSensitivityMultiplier scales aim-assist strength (see the BHAimAssist doc), and the SensitivityMultiplier_* settings scale mouse sensitivity by control context (general, vehicles, vehicle weapons).
Upscaling settings (FSR3, DLSS, DLSSG, XeSS) are alternatives. Only the one matching the player’s hardware is used; the others are not active.
8. Still not pulled / limitations
Enum labels. Discrete settings store raw values (for example 0, 1, 251). The labels (what each value means) come from the BHUserSettingEnumDiscreteValues sub-exports keyed by localised strings. The labels were not resolved in this pass, so the raw values above are shown as-is.
SDK (2026-10-16):UBHUserSettingEnumDiscreteValues exposes a single property: TMap<FName, FText> NamedValues at offset 0x0080. The FName key is the enum tag (e.g. the raw integer rendered as a name), and the FText is the localised display label. Inherits from UBHUserSettingIntDiscreteValues. Resolution of labels requires reading each specific setting asset’s NamedValues map contents from data/ — tractable in a follow-up pass with a CUE4Parse re-run.
Localised labels. Yes/No, On/Off and the setting names are localised strings. Only the keys are in the export.
Dynamic defaults. How the dynamic default is picked for display, resolution, device and upscaling is in the runtime code.
Gamepad button and axis mappings. The tag values are defaults. The full mapping tables are in the gamepad config sub-exports and were not expanded.
FrameRateLimit. The export gives a maximum (360) and a step (1) but no minimum or default. Its off label is a localised string.
Setting consumers. Which code reads each setting is not in this folder.