Quick answer: GameMaker instance with a custom Draw event rendering nothing? Overriding Draw replaces the default draw_self — you must call it explicitly if you want the sprite to appear.
An object adds a custom Draw to render a health bar; the sprite stops appearing because the event no longer auto-draws.
Default Behavior
Without a Draw event, GM auto-draws the instance’s sprite. Adding any Draw event disables auto-draw — you take full control.
Restore draw_self
// Draw event
draw_self();
// then your custom additions
draw_text(x, y - 32, hp);Call draw_self at the start of your custom Draw. Sprite renders normally, then your overlay.
Draw GUI for HUD
For HUD overlays that ignore camera, use the Draw GUI event instead of Draw. Keeps gameplay drawing in Draw, HUD in GUI.
Draw Begin / End
Need to run code unconditionally per frame? Draw Begin runs first regardless of visibility; Draw End last. Don’t auto-draw — you implement.
Verifying
Custom Draw renders both the sprite and your overlays. No invisible objects.
“Custom Draw event disables auto-draw. Call draw_self if you want the sprite.”
When debugging an invisible object, ‘does this have a Draw event?’ is the first question — a forgotten draw_self trips up new GM devs constantly.