Undertale’s dialogue feels alive — and it’s not an accident. It’s five deliberate design choices working together. Steal all five for your indie game.
The 5 Ingredients
- The box: pure black fill, 2–3px white border, sharp corners. It reads instantly as “dialogue” and costs nothing to render.
- The pixel font: a bitmap font (Undertale uses 8bitoperator) at integer sizes. Crisp at small sizes, dripping with retro personality.
- The typewriter effect: text reveals letter by letter at ~30–60 characters per second, with punctuation pauses (longer after periods, shorter after commas).
- The blip sounds: a short square-wave blip per character, pitch-shifted per speaker. This is the secret ingredient — it makes text feel voiced.
- The asterisk convention:
*prefixes narration and action text; direct speech skips it.
Implementation Notes (Any Engine)
- Typewriter: reveal characters on a timer using delta time, not frame counts — frame-rate independent.
- Skip: let players press a key to complete the current line instantly, then advance. Never trap them at typewriter speed.
- Blips: play the blip every 2–3 characters (not every character) to avoid audio mush; vary pitch slightly per character for voice identity.
- Word wrap: wrap on word boundaries with a fixed characters-per-line budget; Undertale-style boxes rarely exceed 2–3 lines.
- Portraits: optional — Undertale mostly skips them; Deltarune leans on expressive faces. Pick one lane.
Prototype It Free First
Before writing code, mock up your dialogue with our Undertale Text Box Generator — type real lines, see them in the authentic style, and show your team exactly what you’re building toward.
Common Mistakes
- Smooth anti-aliased fonts — kills the retro feel instantly.
- No skip function — players will resent the typewriter within minutes.
- Blip on every character at high speed — sounds like static; thin it out.
- Rounded, shaded boxes — the Undertale look is flat black and sharp.