Agent Skill
2/7/2026

nethercore-debugging

Debug inspector and runtime debugging tools (all consoles). Triggers on "debug", "F4 inspector", "debug_register", "debug panel", "live editing", "watch values", "frame stepping", "pause game". **Load references when:** - Full debug API details -> `references/inspector-api.md`

N
nethercore
1GitHub Stars
1Views
npx skills add nethercore-systems/nethercore-ai-plugins

SKILL.md

Namenethercore-debugging
DescriptionDebug inspector and runtime debugging tools (all consoles). Triggers on "debug", "F4 inspector", "debug_register", "debug panel", "live editing", "watch values", "frame stepping", "pause game". **Load references when:** - Full debug API details -> `references/inspector-api.md`

name: debugging description: >- Runtime debugging tools for Nethercore games on all consoles. Covers the F4 Debug Inspector, live value editing, watch variables, frame stepping, and time-scale controls. Use when tuning game parameters at runtime, tracking state over time, or stepping through frames to find bugs. license: Apache-2.0 compatibility: Debug Inspector available in all Nethercore consoles. Works offline. metadata: author: nethercore-systems version: "1.0.0"

Nethercore Debugging

The debug system is built into the Nethercore player and works with all consoles.

F4 Debug Inspector

Press F4 during development to open the Debug Inspector. This is your primary debugging tool.

Features:

  • Live value editing (sliders, toggles, color pickers)
  • Read-only watches for monitoring
  • Grouped/collapsible organization
  • Frame control (pause, step, time scale)
  • Zero overhead in release builds

Quick Reference

FunctionPurposeCall In
debug_register_i32(name, ptr)Editable integerinit()
debug_register_f32(name, ptr)Editable floatinit()
debug_register_bool(name, ptr)Toggle checkboxinit()
debug_register_vec3(name, ptr)3D positioninit()
debug_register_color(name, ptr)RGBA pickerinit()
debug_watch_*(name, ptr)Read-only displayinit()
debug_group_begin/end(name)Collapsible sectionsinit()

Range-Constrained (Sliders)

debug_register_f32_range(b"Speed".as_ptr(), 5, &SPEED, 0.0, 20.0);
debug_register_i32_range(b"Lives".as_ptr(), 5, &LIVES, 0, 10);

Keyboard Shortcuts

KeyAction
F4Toggle Debug Inspector
F3Toggle Runtime Stats
F5Pause/Resume
F6Step one frame (when paused)
F7/F8Decrease/Increase time scale

Frame Control

fn update() {
    if debug_is_paused() != 0 { return; }
    let dt = delta_time() * debug_get_time_scale();
    // ...
}

Typical Setup

static mut PLAYER_X: f32 = 0.0;
static mut GRAVITY: f32 = 9.8;
static mut GOD_MODE: u8 = 0;

fn init() {
    unsafe {
        debug_group_begin(b"Player".as_ptr(), 6);
        debug_watch_f32(b"X".as_ptr(), 1, &PLAYER_X);
        debug_register_f32_range(b"Gravity".as_ptr(), 7, &GRAVITY, 1.0, 50.0);
        debug_register_bool(b"God Mode".as_ptr(), 8, &GOD_MODE);
        debug_group_end();
    }
}

When to Use What

ScenarioTool
Live parameter tuningDebug Inspector (F4)
Tracking state over timelog() in update()
Regression testingReplay system
Finding exact frame of bugF5 pause + F6 step
Skills Info
Original Name:nethercore-debuggingAuthor:nethercore