بنقرة واحدة
debug-issue
Systematic Godot debugging decision trees for physics, signals, rendering, navigation, and input issues
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Systematic Godot debugging decision trees for physics, signals, rendering, navigation, and input issues
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | debug-issue |
| description | Systematic Godot debugging decision trees for physics, signals, rendering, navigation, and input issues |
| argument-hint | [symptom description] |
Systematic debugging using domain-specific decision trees. Start by identifying the symptom category, then follow the corresponding tree.
Map user's symptom to the right tree:
| Symptom keywords | Category |
|---|---|
| "pass through", "no collision", "overlap", "stuck", "slides off" | Physics |
| "signal not firing", "not connected", "callback not called" | Signals |
| "invisible", "not showing", "behind", "flickering", "wrong color" | Rendering |
| "not moving to target", "path wrong", "stuck on nav", "no path" | Navigation |
| "key not working", "input ignored", "wrong button", "double input" | Input |
Check in this order -- each step is the most common cause at that point:
Collision layer/mask mismatch (most common):
physics(action="layers")nodes(action="get_property", scene_path="<scene>.tscn", name="<body>", property="collision_layer")
nodes(action="get_property", scene_path="<scene>.tscn", name="<body>", property="collision_mask")
collision_mask has a bit that matches B's collision_layer. Both must be set correctly.Missing CollisionShape2D/3D:
scenes(action="info", scene_path="<scene>.tscn")Wrong body type:
StaticBody2D: immovable (walls, floors)CharacterBody2D: player/NPC movement via move_and_slide()RigidBody2D: physics-driven (projectiles, debris)RigidBody2D for a player character, then fighting the physics engineScript velocity issues:
scripts(action="read", script_path="res://scripts/<name>.gd")velocity is being set before move_and_slide()_physics_process (not _process)delta is used for frame-independent movementConnection exists?
signals(action="list", scene_path="<scene>.tscn")Signature match?
signal health_changed(new_hp: int) requires handler func _on_health_changed(new_hp: int)Signal emitted?
print("signal emitted") before emit_signal() / signal.emit()Callable valid?
connect() runsVisibility:
visible property = false? Check node and ALL parents (parent invisible = children invisible)modulate.a = 0? (fully transparent)Z-index:
z_as_relative = true means z_index is relative to parentMaterial/shader:
Viewport issues:
render_target_update_modeenabled = true per viewportNavigationRegion setup:
NavigationRegion2D/3D must exist in sceneNavigationPolygon/NavigationMesh resource assignedNavigation mesh baked?
bake_navigation_mesh())NavigationAgent config:
path_desired_distance: how close before moving to next path pointtarget_desired_distance: how close to target before stoppingPath calculation:
NavigationAgent.set_target_position() then check get_next_path_position()Input Map:
input_map(action="list")project.godot for [input] sectionAction name match:
Input.is_action_pressed("jump") -- exact string match requiredEvent processing:
_input() vs _unhandled_input() -- if another node consumes the event, _unhandled_input never firesset_process_input(false) disables _input() on that nodeConflicts:
For any category:
scenes(action="info", scene_path="<scene>.tscn")scripts(action="read", script_path="res://scripts/<name>.gd")nodes(action="get_property", scene_path="<scene>.tscn", name="<node_path>", property="<name>")project(action="run", scene_path="<scene>.tscn") and check output for errors