Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jame581/player-controller
Use when implementing player movement — CharacterBody2D/3D patterns, input handling, physics, common movement recipes
Passed 19 of 22 test cases with the skill, and 18 of 22 without it.
1 fixed18 passed either way3 still failing0 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.
My Godot 4.3 `CharacterBody2D` platformer character gets stuck against vertical walls when pressing arrow keys toward the wall while falling. What property fixes this unwanted wall sticking?
| Checked | Without skill | With skill |
|---|---|---|
| Sets floor_block_on_wall to false on the CharacterBody. | Missed | Passed |
The instructions your model reads when the skill loads.
All examples target Godot 4.3+ with no deprecated APIs. GDScript is shown first, then C#.
Related skills: physics-system for RigidBody, Area, raycasting, and collision shapes, 2d-essentials for TileMaps, parallax, and 2D lighting, 3d-essentials for CharacterBody3D and 3D movement setup, state-machine for movement state management, camera-system for camera follow and shake, component-system for hitbox/hurtbox integration, animation-system for animation driven by movement state, input-handling for InputMap actions and controller support, ai-navigation for enemy movement and pathfinding.
| Body Type | Use For | Physics Control | Notes |
|---|---|---|---|
CharacterBody2D/3D | Player, enemies, NPCs | Manual (full) | You control velocity; move_and_slide() handles collisions |
RigidBody2D/3D | Projectiles, props, debris | Engine-driven | Physics engine applies forces; harder to control precisely |
RigidBody2D/3D | Projectiles with bouncing | Engine-driven | Set linear_velocity once; let physics resolve bounces |
CharacterBody2D | Platformers, top-down, FPS | Manual (full) | Reliable and predictable; best for responsive game feel |
Rule of thumb: Use CharacterBody when you need tight, responsive control. Use RigidBody when you want realistic physics simulation.
Every physics frame follows this order:
1. Read input → get axis/action values
2. Apply forces → gravity, friction, acceleration
3. Modify velocity → move_toward, lerp, clamp
4. move_and_slide() → engine resolves collisions, updates position
5. Post-movement state → check is_on_floor(), is_on_wall(), landing events
Always put this loop in _physics_process(delta), never _process(delta).
test cases passed, vs 18 / 22 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.