Skip to content
InputBooster
Configuration ReferenceBehaviour

Profile format

The JSON schema of inputbooster_profiles.json, every field it holds, and the per-server binding file format.

3 min readInputBooster 4.1.2-alphaMinecraft 26.2 / 26.3

A profile is one JSON object in an array. The format is stable enough to edit by hand, and a file that is not valid JSON is moved aside instead of breaking the game.

The profile file

Profile file
$ .minecraft/config/inputbooster_profiles.json

It is a JSON array. Each element is one profile:

json
[
  {
    "name": "Competitive",
    "pollRateHz": 500,
    "pollRateAutoMode": false,
    "sprintFixEnabled": true,
    "autoSprintEnabled": true,
    "wTapAssistEnabled": true,
    "antiIdleEnabled": true,
    "autoStrafeEnabled": false,
    "cpsLimiterEnabled": true,
    "showF3Info": true,
    "showKeystrokes": true,
    "showActionBar": true,
    "burstModeEnabled": true,
    "maxCps": 20,
    "comboKeysEnabled": true,
    "fpsCheckInterval": 20,
    "debugMode": false,
    "cpsMode": "HUMANIZED",
    "replayEnabled": true,
    "safeModeEnabled": true,
    "eventLogEnabled": true,
    "keyConflictWarn": true,
    "perServerProfiles": true
  }
]

Field reference

All 23 fields, with the type and the default used when the field is missing.

FieldTypeDefaultNotes
namestringUnnamedA blank name becomes Unnamed
pollRateHznumber200Clamped to 60–1000 on apply
pollRateAutoModebooleantrue
sprintFixEnabledbooleantrue
autoSprintEnabledbooleantrue
wTapAssistEnabledbooleantrue
antiIdleEnabledbooleantrue
autoStrafeEnabledbooleantrue
cpsLimiterEnabledbooleantrue
showF3Infobooleantrue
showKeystrokesbooleantrueStored, but the keystroke overlay has no renderer
showActionBarbooleantrue
burstModeEnabledbooleantrue
maxCpsnumber20Clamped to 1–20 on apply
comboKeysEnabledbooleantrue
fpsCheckIntervalnumber20Stored, but the adaptive rate ignores it
debugModebooleanfalseStored, but no logging is gated on it
cpsModestringFIXEDUpper-cased on apply; a blank value becomes FIXED
replayEnabledbooleantrue
safeModeEnabledbooleantrue
eventLogEnabledbooleantrue
keyConflictWarnbooleantrue
perServerProfilesbooleantrue

What is not in a profile

These config keys are deliberately outside the profile schema:

overlay_position, overlay_scale, overlay_opacity, overlay_mode, overlay_show_engine, overlay_show_events, overlay_show_overhead, engine_mode, custom_keyboard_handler, compat_fallback, keyboard_repeat_guard, mouse_scroll_debounce_ms, mouse_click_dedupe_ms, click_sounds, click_sound_pitch, click_sound_volume, config_version.

Applying a profile leaves them exactly as they were.

Limits and failure handling

RuleBehaviour
Maximum profiles5
ReadingAt most the first 5 valid objects are loaded
WriteAtomic — a temporary file is written and then moved into place
Invalid JSONThe file is moved to inputbooster_profiles.json.corrupt and the game starts with no profiles
Not an arraySame treatment, with the reason not a JSON array
Unreadable fileA warning is logged; the game continues

Per-server bindings

Binding file
$ .minecraft/config/inputbooster_server_profiles.properties

A standard properties file. The key is the normalised server identifier and the value is the profile name:

properties
example.com=Competitive
hypixel.net=Slow
singleplayer=Casual

The identifier

The identifier is normalised before it is used as a key:

Raw addressKey
Example.comexample.com
example.com:25565example.com
tcp://EXAMPLE.COMexample.com
ws://example.comexample.com
example.com/some/pathexample.com
No server, singleplayersingleplayer
No server, main menutitle
Detection failedunknown

Write the normalised form when you edit the file by hand.

The profile name

The value is matched against the profile names exactly, ignoring case. A name that does not exist is ignored: the log records nothing and your settings simply do not change.

Detection

The server is detected once every 20 ticks, roughly once a second, using reflection over the vanilla server entry. The reflective lookups are individually guarded: a field that moved between Minecraft versions degrades to a stable identifier instead of throwing on the client tick.