Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jame581/godot-debugging
Use when debugging Godot projects — remote debugger, print techniques, signal tracing, common error patterns and fixes
Passed 20 of 22 test cases with the skill, and 20 of 22 without it.
and 1 more in the full report
1 fixed19 passed either way1 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
A test case the skill fixed. Same model, same prompt, with and without the skill.
Our Godot 4.3 project has several silent bugs in our UI and inventory state, and our team is currently overusing basic `print()` statements for everything. I need a comprehensive logging and runtime inspection guide. Specifically, detail which logging functions we should use in GDScript for fatal errors versus recoverable warnings versus debug-only telemetry, and provide a step-by-step diagnostic workflow to isolate and verify subtle state bugs.
| Checked | Without skill | With skill |
|---|---|---|
| Recommends push_error() for fatal programmer errors with full stack traces. | Missed | Passed |
| Recommends push_warning() for recoverable warnings with stack traces. | Missed | Passed |
| Recommends print_debug() for debug-build telemetry stripped from release exports. | Missed | Passed |
| Outlines a multi-step diagnostic workflow beginning with Reproduce and Isolate. | Missed | Passed |
The instructions your model reads when the skill loads.
This skill covers systematic debugging for Godot 4.3+ projects in both GDScript and C#. It covers print techniques, breakpoints, signal tracing, the built-in profiler, scene tree inspection, common error patterns, and a step-by-step debugging checklist.
Related skills: godot-optimization for performance profiling, godot-testing for regression tests after fixes, csharp-signals for C# signal debugging patterns.
Godot provides several print functions with different purposes. Choose based on the severity and context of what you are logging.
# print() — general output, space-separated values
print("Player position: ", position)
print("Health: ", health, " / ", max_health)
# print_rich() — BBCode-formatted output in the Output panel
print_rich("[color=yellow]WARNING:[/color] Enemy count exceeded limit: ", enemy_count)
print_rich("[b]State:[/b] [color=green]", current_state, "[/color]")
# push_error() — logs an error with a full stack trace; does NOT stop execution
push_error("save_game: file path is empty")
# push_warning() — logs a warning with stack trace; use for recoverable issues
push_warning("AudioStreamPlayer: bus '%s' not found, using Master" % bus_name)
# print_debug() — only prints in debug builds; stripped from release exports
print_debug("Frame delta: ", delta, " | FPS: ", Engine.get_frames_per_second())
# printerr() — prints to stderr; visible in external terminals and CI logs
printerr("Critical: physics state corrupted at frame ", Engine.get_process_frames())
Formatted output patterns:
# String formatting with % operator
test cases passed, vs 20 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.