Quick answer: Construct 3 SpriteFont showing wrong spacing? Set per-character widths in the Character Width property or use proportional spacing — default monospace assumes uniform width.
A SpriteFont label looks gappy with narrow letters and crammed with wide ones. The font has variable-width glyphs but the property is set to fixed.
Per-Character Width
Open the SpriteFont properties. The Character Width property accepts a string mapping each character to a width in pixels — i=4,m=12,o=8.
Auto Detect
Some tooling can auto-detect widths by reading the alpha channel of each glyph cell. Saves hand-tuning for large character sets.
Character Set Order
The SpriteFont’s character set string determines glyph order in the texture. Adding a character mid-string shifts all later characters — widths array must update.
Verifying
Various text renders with natural-looking spacing — no big gaps after narrow letters, no overlaps on wide ones.
“SpriteFont is monospace by default. Per-character widths give proportional spacing.”
Document character widths next to the texture in the project notes — getting back into this six months later is otherwise a nightmare.