To design no-code hitboxes that feel fair, make the player hurtbox smaller than the visible sprite, make danger zones match what the player can read, and test every collision at normal play speed. A fair hitbox forgives intention without making the game feel fake.
The player does not care that the spike technically touched one transparent corner of the sprite. They care that the game looked like it lied.
That is the whole hitbox problem. The engine sees shapes. The player sees meaning. If those two are not close enough, every death feels like a legal argument from a machine.
GDevelop lets sprite objects use custom collision masks, with points you can drag into a polygon, and it can share or separate masks across animations and instances. Construct documents collision polygons in its physics behavior path too. These tools let you shape collision. They do not tell you which pixels deserve mercy.

Players Judge the Picture, Not the Polygon
A sprite can have hair, a cape, a raised sword, smoke, a backpack, a big hat, or a bounce frame where one foot sticks out. If the whole rectangle counts as the player, the game is punishing decoration.
Decoration should almost never be lethal. The player reads the body, not the silhouette dust around it. In a platformer, I usually want the player hurtbox tucked inside the torso and legs. In a top-down game, I want the feet or base circle to matter more than the head.
This is not cheating. It is translation. You are translating what the player thinks happened into what the engine checks.
Hitbox Choices That Feel Fair
| Collision job | Usually smaller than art? | Why it works |
|---|---|---|
| Player hurtbox | Yes | A slight inset forgives decorative pixels and close dodges that looked clean. |
| Enemy damage box | Often | The enemy should hurt where the attack or body clearly threatens the player. |
| Pickup box | No | A generous pickup area makes collection feel smooth instead of fussy. |
| Platform box | Usually exact enough | Floors and walls should support the visible shape players plan around. |
| Spike or hazard box | Yes | The lethal area should sit on the dangerous point, not the empty air around it. |
Danger Needs a Smaller Truth
If you make one rule, make this one: danger should be stricter on itself than it is on the player. A spike can look sharp and still have a slightly smaller lethal shape. A saw blade can show a scary blur without the whole blur being death. A fireball can glow bigger than the place that actually hits.
Players forgive generous danger more than they forgive sneaky danger. When a death looks early, late, or outside the visible threat, the player stops learning the level and starts distrusting the game.
The trick is not to make everything easy. The trick is to make punishment land where the player would have predicted it.
Use an inset box
The sprite has decoration, hair, gear, or animation smear around the body.
Player hurtboxes, enemies with big art, and moving hazards.Use a foot box
The game is top-down and the player judges position by ground contact.
Doors, floor traps, pickups, pressure plates, and NPC bumping.Use a generous trigger
The collision is helpful instead of harmful.
Coins, dialogue prompts, ladders, checkpoints, and interact zones.Use a separate attack box
The sprite art is not the same as the active attack.
Sword swings, dashes, punches, projectiles, and boss attacks.Do Not Let the Art Animate the Rules by Accident
Animation can quietly ruin collision. A run frame leans forward, so the player gets hit earlier. A jump frame stretches upward, so the ceiling suddenly catches them. An enemy windup frame shows a huge weapon, so the attack feels active before it really is.
You need to decide which frames change collision on purpose. Some animations should share the same mask because the player is still the same playable body. Some attacks need their own active box because the danger really did move.
This is where GDevelop and Construct both reward boring discipline. Keep the idle, run, and jump hurtbox stable unless the movement truly changes the promise. Give attacks a separate timing window instead of letting the prettiest frame decide.
- Turn on visible collision shapes or build a debug scene where boxes are always visible.
- Inset the player hurtbox so hair, capes, weapons, and animation smear do not count as the body.
- Make helpful triggers larger than they look and harmful triggers a little smaller than they look.
- Test collision at normal speed, slow speed, and while holding movement toward the hazard.
- Check every animation that changes pose, especially jump, crouch, dash, attack, and hurt frames.
- Pair hits with visual and audio feedback so players know what touched them.
- After every unfair death, ask what the player thought the shape was before checking what the engine thought.
Feedback Is Part of the Hitbox
A collision that gives no feedback feels bigger than it is. The player dies, flashes, or loses health, but the contact moment is mushy. They cannot tell whether the enemy body hit them, the weapon hit them, the projectile hit them, or the floor trap woke up.
Show the contact. A tiny spark. A knockback direction. A red flash on the actual hazard. A sound with a visual partner, because not every player can rely on audio. The accessibility lesson here is simple: if sound matters, give it a visible twin.
The Kind Player Body
The player hurtbox is narrower than the art, especially around head, hands, hair, capes, and weapons.
Do not make it so tiny that players pass through danger they clearly touched.
The Honest Spike
Only the sharp upper area is lethal. The base can be solid or decorative without killing the player.
If the whole tile kills, draw the whole tile as dangerous.
The Active Attack Window
A sword, dash, bite, or boss swipe only turns on its damage box during the readable impact frames.
Telegraph frames should warn. Impact frames should hurt. Do not merge them.
Prototype the Collision Before You Polish the Sprite
If you are still deciding what the collision should feel like, build the ugly test first. A Chatforce 2D game maker prompt can get you a browser-playable room with a jump, spike, enemy, pickup, and visible boxes quickly. Then rebuild the collision in GDevelop or Construct once the fairness rule is obvious.
That order matters. Pretty art makes people polite. Visible boxes make people honest. You want the argument while the fix is still cheap.
Chatforce 2D game maker
Useful for testing a small browser-playable collision room before committing to a manual no-code setup.
GDevelop collision masks
Sprite collision masks can be customized with polygon points and handled per animation or per instance when needed.
Construct collision polygons
Construct uses collision polygons in its object and physics workflows, which makes shape decisions part of the gameplay feel.
Game Accessibility Guidelines
A reminder that important audio feedback should have visual feedback too, including contact and damage cues.
The Test Is a Bad Death
Do not test hitboxes by standing still and nudging objects together in the editor. Test by playing badly. Jump late. Turn around at the spike. Graze the enemy. Collect a coin from the edge. Dash through the boss swing. Do the things real players do when they are surprised.
A fair hitbox survives ugly play. It still teaches. It still makes the player say, fine, that was my fault. That sentence is gold. When players say it, your collision is doing its job.
A no-code hitbox should punish the decision the player made, not the stray pixels the engine happened to catch. Inset danger, enlarge help, and keep the visible promise honest.
No-Code Hitbox FAQ
Should a hitbox match the sprite exactly?
Usually no. Exact sprite collision often punishes decoration and animation smear. Use tighter hurtboxes for danger and bigger triggers for helpful interactions.
How do I know if a hitbox is unfair?
If players can point to the screen and say the hit looked outside the threat, believe them. Make the shape visible, replay the moment, and adjust the collision to match the readable promise.
Should every animation frame have its own collision mask?
Only when the gameplay meaning changes. Idle, run, and jump often need stable hurtboxes. Attacks, crouches, dashes, and boss impacts may need separate active boxes.