Skip to content

03 10 Config cheats

evets17 edited this page Mar 14, 2026 · 1 revision

03 10 Config cheats

This page explains cheats in Sprint Boost.

What cheats are

Cheats let you write values back into game memory through existing game_info keys.

Typical examples:

  • set lives to a fixed number
  • add score in steps
  • refill counters like items/energy

Why cheats depend on game_info

Cheats do not target raw addresses directly in cheat actions.

Instead, each cheat action points to a key you already defined in:

  • game_info.values.<key>

That keeps cheat setup safer and easier to maintain.

Where cheats can be used

Cheats are active only when all of these are true:

  • boost_mode = "enhanced"

Cheat commands

Sprint Boost supports two cheat commands:

  • set_game_info: sets the target key to the value you provide.
  • offset_game_info: reads current value, adds your offset, then writes result.

Both operate in the same normalized value domain used by game_info.

You can trigger them from:

  • hotkeys (input.hotkeys.binding.on_press / on_release)
  • menu items (menu.menus.<name>.item* actions)

Command fields

Required fields:

  • game_info (must match a key under game_info.values)
  • value (integer)

Optional fields:

  • min_value
  • max_value

min_value and max_value are guardrails. If the computed value is outside the allowed range, Sprint Boost skips the write.

Hotkey cheat example

[[input.hotkeys.binding]]
keys = ["C1_9"]
duration_ms = 0
menu_enabled = true
on_press = { command = "set_game_info", game_info = "p1_lives", value = 10 }
[[input.hotkeys.binding]]
keys = ["C1_8"]
duration_ms = 0
menu_enabled = true
on_press = { command = "offset_game_info", game_info = "p1_score_thousands", value = 1000, min_value = 0, max_value = 900000 }

Menu cheat example

[menu.menus.cheat]
allow_directional_nav = true
header = "Cheats"
footer = "Press 'clear' to go back"

[menu.menus.cheat.item1]
label = "Set P1 Lives To 10"
action = { command = "set_game_info", game_info = "p1_lives", value = 10 }

[menu.menus.cheat.item2]
label = "+1000 P1 Score"
action = { command = "offset_game_info", game_info = "p1_score_thousands", value = 1000 }

[menu.menus.pause.item9]
label = "Cheats"
action = { command = "show_menu", menu = "cheat" }

Important limits and behavior

  • Cheats can write only game_info.values keys.
  • game_info.derived keys are not writable.
  • Some games do not refresh changed values immediately on screen; updated values may appear after the game re-reads memory.
  • Out-of-range values with guardrails are blocked.

For mappings that are not exactly representable in reverse conversion, Sprint Boost truncates toward zero.

Practical tips

  • Start with one safe value (for example lives), verify behavior, then add more cheats.
  • Use min_value / max_value for anything that could break gameplay when set too high or too low.
  • Keep cheat labels clear so menu users know exactly what each action does.
  • Put game-specific cheats in each game’s *_boost.toml file.

Troubleshooting

Common reasons a cheat appears to do nothing:

  • game_info key name is wrong
  • key points to derived value instead of values key
  • value is missing or not an integer
  • backend/mode does not meet cheat activation requirements
  • guardrails block the write

These are usually non-fatal warnings; Sprint Boost keeps running.

Next step

Clone this wiki locally