Skip to content

v1.0.0.1 - Speed Control & Noclip Overhaul

Choose a tag to compare

@cataIystdev cataIystdev released this 24 Dec 21:45
· 5 commits to main since this release

✨ New Features

Speed Control System

  • Global Speed - Control game time scale (0.1x - 5.0x)
  • Player Speed - Movement, Attack, and Combined speed multipliers
  • Enemy Speed - Movement, Attack, and Combined speed multipliers
  • Manual Input UI - Replaced sliders with precise manual input (+/- buttons and text fields)
  • Quick Presets - One-click buttons for common values (0.25x, 0.5x, 1x, 2x, 5x)
  • Projectile Speed Scaling - All spawned projectiles scale with player attack speed
  • Attack Cooldown Scaling - Player attack cooldowns scale inversely with attack speed

Noclip System Overhaul

  • Complete rewrite for working directions and transitions
  • Proper scene transitions - Can now enter doors and transition points while in noclip
  • Diagonal movement - All directions work simultaneously
  • Configurable speeds - Normal speed (default 15) and Boost speed (default 30)
  • Customizable boost keybind - Assign any key to speed boost (default: LeftShift)
  • Uses game keybindings - Respects user's custom movement keys from game settings
  • Auto-invincibility - Automatically enabled while noclip is active

Invincibility System Improvements

  • User-controlled flag - Separate from game's internal isInvincible state
  • Persistence - User-enabled invincibility survives game resets and noclip toggles
  • UI updates - Player window shows user's intended state, not game's current state

Keybind System

  • NoclipSpeedBoost - New customizable keybind for noclip acceleration

🔧 Bug Fixes

Noclip

  • Fixed character slowly falling when noclip enabled (now uses transform.position)
  • Fixed horizontal movement acceleration not working with Shift key
  • Fixed inability to activate scene transition triggers
  • Fixed diagonal movement (changed from else if to separate if statements)

Invincibility

  • Fixed invincibility being reset by game when user enabled it
  • Fixed UI showing game's state instead of user's intended state

Speed Control

  • Removed Environment Speed scaling (was causing issues)
  • Fixed projectile speed not applying consistently to pooled objects

💻 Technical Changes

CheatSystem.cs

  • Added _noclipPos (Vector3) for position tracking
  • Added NoclipSpeed and NoclipBoostSpeed config entries
  • Rewrote ProcessNoclipMovement() to use transform.position directly
  • Uses RigidbodyConstraints2D.FreezePosition for physics control
  • Checks HeroTransitionState.WAITING_TO_TRANSITION for trigger detection
  • Added _userInvincible flag with config persistence

ModKeybindManager.cs

  • Added ModAction.NoclipSpeedBoost enum value
  • Added IsKeyHeld() method for continuous key detection
  • Default keybind: LeftShift

SpeedControlWindow.cs

  • Complete UI rewrite with manual input fields
  • Added +/- buttons for precise value adjustment
  • Removed slider-based controls

PlayerWindow.cs

  • Added inline noclip speed configuration (visible when noclip enabled)
  • Changed invincibility button to use CheatSystem.UserInvincible

📦 Files Modified

  • Player/CheatSystem.cs - Noclip and invincibility logic
  • Player/PlayerActions.cs - Invincibility toggle
  • Menu/Keybinds/ModKeybindManager.cs - New keybind
  • DebugMenu/Windows/SpeedControlWindow.cs - UI rewrite
  • DebugMenu/Windows/PlayerWindow.cs - Noclip speed settings
  • SpeedControl/SpeedControlConfig.cs - Removed environment speed
  • SpeedControl/SpeedControlManager.cs - Removed environment speed
  • SpeedControl/SpeedControlPatches.cs - Attack cooldown scaling

🎯 Upgrade Notes

This is a Pre-Alpha release. Configuration files may need to be reset after updates.

Default keybinds:

  • Noclip Toggle: N
  • Noclip Speed Boost: LeftShift
  • Invincibility: I

Author: Catalyst (catalyst@kyokai.ru)
Telegram: @Catalyst_Kyokai