godot-characterbody-2d
CharacterBody2D Implementation
Expert guidance for player-controlled 2D movement using Godot's physics system.
NEVER Do
- NEVER use
RigidBody2Dfor standard player controllers — RigidBody is for physics-simulated objects. For responsive, feel-driven player movement, always useCharacterBody2D. - NEVER multiply
velocitybydeltabeforemove_and_slide()—move_and_slide()handles delta internally. Manual multiplication makes movement framerate-dependent [12]. - NEVER use
global_positionupdates for movement — Usevelocityandmove_and_slide(). Direct position updates bypass collision detection and floor snapping. - NEVER ignore the return value of
move_and_slide()— While optional, checkingis_on_floor()orget_last_motion()immediately after is critical for state logic. - NEVER rely on default
floor_snap_lengthfor fast stair-climbing — Default snapping is too small for high-velocity characters. Use custom raycast-based stair logic for smooth transitions. - NEVER apply gravity while
is_on_floor()is true — Constant downward force on the floor can cause "micro-jitter" or prevent floor-snap from working correctly. Resetvelocity.yto 0 or a small constant. - NEVER use
Area2Dfor ground detection — Real collisions (rays/shapecasts) are more precise.is_on_floor()is highly optimized; only augment it if necessary. - NEVER forget Ceiling Bonk detection — If you don't reset
velocity.yto 0 whenis_on_ceiling(), the player will "float" against the ceiling until gravity pulls them down. - NEVER use high-precision physics for pixel art visuals — Keep physics math high-precision, but round your Sprite nodal positions in
_processto avoid visual sub-pixel jitter. - NEVER use
queue_free()on characters every frame — Use object pooling for bullets or enemies to avoid SceneTree performance spikes.
Available Scripts
More from thedivergentai/gd-agentic-skills
godot-master
Consolidated expert library for professional Godot 4.x game and application development. Orchestrates 94 specialized blueprints through architectural workflows, anti-pattern catalogs, performance budgets, and Server API patterns. Use when: (1) starting a new Godot project, (2) designing game or app architecture, (3) building entity/component systems, (4) debugging performance or physics issues, (5) choosing between 2D/3D approaches, (6) implementing multiplayer, (7) optimizing draw calls or script time, (8) porting between platforms. Primary entry point for ALL Godot development tasks.
584godot-shaders-basics
Expert blueprint for shader programming (visual effects, post-processing, material customization) using Godot's GLSL-like shader language. Covers canvas_item (2D), spatial (3D), uniforms, built-in variables, and performance. Use when implementing custom effects OR stylized rendering. Keywords shader, GLSL, fragment, vertex, canvas_item, spatial, uniform, UV, COLOR, ALBEDO, post-processing.
217godot-2d-animation
Expert patterns for 2D animation in Godot using AnimatedSprite2D and skeletal cutout rigs. Use when implementing sprite frame animations, procedural animation (squash/stretch), cutout bone hierarchies, or frame-perfect timing systems. Trigger keywords: AnimatedSprite2D, SpriteFrames, animation_finished, animation_looped, frame_changed, frame_progress, set_frame_and_progress, cutout animation, skeletal 2D, Bone2D, procedural animation, animation state machine, advance(0).
194godot-particles
Expert blueprint for GPU particle systems (explosions, magic effects, weather, trails) using GPUParticles2D/3D, ParticleProcessMaterial, gradients, sub-emitters, and custom shaders. Use when creating VFX, environmental effects, or visual feedback. Keywords GPUParticles2D, ParticleProcessMaterial, emission_shape, color_ramp, sub_emitter, one_shot.
176godot-ui-theming
Expert blueprint for UI themes using Theme resources, StyleBoxes, custom fonts, and theme overrides for consistent visual styling. Covers StyleBoxFlat/Texture, theme inheritance, dynamic theme switching, and font variations. Use when implementing consistent UI styling OR supporting multiple themes. Keywords Theme, StyleBox, StyleBoxFlat, add_theme_override, font, theme inheritance, dark mode.
172godot-save-load-systems
Expert blueprint for save/load systems using JSON/binary serialization, PERSIST group pattern, versioning, and migration. Covers player progress, settings, game state persistence, and error recovery. Use when implementing save systems OR data persistence. Keywords save, load, JSON, FileAccess, user://, serialization, version migration, PERSIST group.
160