GravityControl
v2.1: fixed GUI textures sometimes going blank, key rebind now a simple KeyCode config, cursor reliably unlocks while the window is open. Gravity slider + presets (1x/0.75x/0.5x/0.25x/0x/-1x).Gravity Control
Standalone PEAK mod that lets you tune your local gravity
v2.1 - bugfix update
- Fixed the custom GUI occasionally going blank (only text/numbers left, no background/buttons). Runtime-created textures could get silently destroyed by the engine; they're now protected and automatically rebuilt if that happens.
- Toggle key switched from a "keyboard shortcut" to a plain key config entry - simpler to edit in the .cfg file and shows up correctly in config-manager mods.
- Cursor now reliably unlocks and stays unlocked for the whole time the window is open (previously the game's own camera script could re-lock it right after).
v2.0 - "revolutionary" update
- Reworked GUI: custom purple theme instead of the plain PeakAdminMenu-style look.
- Negative gravity support (slider now goes down to -1x by default, with a quick -1x preset).
- Toggle key is a proper BepInEx config entry instead of being hardcoded - by design it's not a control inside the window itself.
Features
- Press the toggle key (I by default) to open/close the Gravity Control window.
- Slider from -1x to 1x gravity (range configurable via
MinGravityMultiplier/MaxGravityMultiplierin the .cfg file). - Quick presets: 1x, 0.75x, 0.5x, 0.25x, 0x, -1x.
- Automatically restores your original gravity values on death/respawn or when the mod is unloaded, so it never leaves your character in a broken state.
Config
On first launch, BepInEx generates BepInEx/config/tim.peak.gravitycontrol.cfg with:
ToggleKey- the key that opens/closes the window (default:I). Any UnityKeyCodename works, e.g.J,F4,Keypad0.MinGravityMultiplier/MaxGravityMultiplier- slider bounds (default:-1/1).
How it works
Character.localCharacter (falling back to Player.localPlayer.character) exposes
character.refs.movement, a CharacterMovement component with public jumpGravity
and maxGravity fields. The plugin snapshots the original values once, then every
frame sets jumpGravity = original * multiplier (and the same for maxGravity).
This is purely client-side/local physics - no networking or Harmony patch required.
