A comprehensive frame window tracking, HUD customization, and
- In-Game Markers: Spawns animated markers on player positions during gameplay corresponding to specific frame actions and window tolerances.
- Live HUD Statistics: Customizable HUD overlay in the top-left corner tracking action counts across configured frame window ranges.
- Custom Audio Effects: Bind dedicated sound effects (
.ogg,.mp3) to specific frame window presets. - Camera Compatibility: Full world-to-screen matrix transformations ensuring markers properly track through rotations, zoom, and reversed gravity.
-
Multi-Dimensional Metrics: Solves for theoretical level precision across 8 dimension combinations:
-
Base (
$L^*$ ) -
Nerve (
$K_T$ ) — Time-dependent decay -
Fatigue (
$K_U$ ) — Input count-dependent decay -
CPS (
$K_C$ ) — High click-frequency penalty - Composites: N+F, N+C, F+C, and All (N+F+C)
-
Base (
- Multi-Threaded Asynchronous Solver: Fast root-finding algorithm using an error function (erfc) LUT lookup table.
-
Configurable Calculation Parameters:
- Level TPS: Target calculation rate (synced with macro FPS).
- Respawn Time (s): Accounts for penalty time from death back to start.
- Target Solve Time (s): Expected completion time benchmark (default: 86,400s / 24 hours).
-
Model Constants: Fine-tune
$K_T$ ,$K_U$ , and$K_C$ up to 16 decimal places with one-click default restore.
-
Dirty State Indication: Automatically highlights
$L^*$ values in red when frames or settings are modified without recalculating.
- Timeline Tracking: Automatically highlights and scrolls to the active frame in real-time as the level plays.
- Dual Player (1P/2P) Control: Toggle individual action player assignments on the fly.
- Import & Export:
- Import replay/macro files (
.gdr,.gdr2,.slc,.json,.fwc). - Export custom binary
.fwcand NaNDL.jsonproject files.
- Import replay/macro files (
- Automated Safety Backups: Background autosaves generated periodically to the Geode config directory.
src/
├── Audio/ # Audio management & playback engine
│ ├── SoundManager.cpp
│ └── SoundManager.hpp
├── Data/ # Global state, cache & type definitions
│ ├── State.cpp
│ ├── State.hpp
│ └── Types.hpp
├── Hook/ # Geode game hooks & lifecycle modifications
│ ├── CCDirectorHook.cpp # Scene loop, autosave & hotkey handler
│ ├── PauseLayerHook.cpp # Pause menu UI integration
│ └── PlayLayerHook.cpp # HUD rendering, marker spawning & game ticks
├── IO/ # File importing/exporting logic (.fwc, .gdr)
│ ├── FileIO.cpp
│ └── FileIO.hpp
├── Math/ # L* mathematical models & multi-threaded solver
│ ├── Calculator.cpp
│ └── Calculator.hpp
├── UI/ # Custom Geode popups and editors
│ ├── AddFramePopup.cpp / .hpp
│ ├── FrameActionPopup.cpp / .hpp
│ ├── LabelPresetPopup.cpp / .hpp
│ ├── LStarCalcSettingsPopup.cpp / .hpp
│ ├── PrecisionSettingsPopup.cpp / .hpp
│ └── WindowPresetPopup.cpp / .hpp
└── Common.hpp # Global constant definitions & math helpers
| Input | Location | Action |
|---|---|---|
O |
Anywhere in-game (Windows) | Toggle Frame Action Editor & close active submenus |
| Time Icon | Pause Menu (Right side) | Open Frame Action Editor |
- Open the Windows or Labels popup from the bottom bar of the main editor.
- Configure Min/Max Frame Windows, custom HUD label text, colors, and audio file triggers.
- Enable Show in HUD to display a live tally during gameplay.
- Click Import in the main editor to load a macro or replay file (
.gdr,.gdr2,.slc,.json,.fwc). - Edit frame numbers, frame window tolerances, or switch between 1P and 2P modes.
- Use Activate All / Inactivate All to bulk toggle drawing and HUD inclusion.
- Click the Options gear icon in the top-right of the Frame Editor to open the Precision Display popup.
- Toggle your desired metrics (Base, Nerve, Fatigue, CPS, etc.).
- (Optional) Click the top-right gear in the Precision Display to open L Calc Settings* to configure TPS, respawn time, target solve time, or model constants.
- Click Start Calculation. Once finished, cycle through metrics on the top status button or view live values in the bottom-left corner during level runs.
- Geode CLI installed and configured.
- Clang compiler with C++20 support (LLVM / Clang-cl).
- CMake 3.27+.