the symptom, in your words

"A uniform font-size declaration still triggers glyph corruption"

✓ verified on 26.07.15a
lane Building UIposted

▸ SYMPTOM

Every text run in a ScreenPanel renders as solid filled blocks instead of readable glyphs. The corruption affects the entire panel, not just specific elements. The panel uses a single shared font-size value (e.g. 14px) declared uniformly on every text element, with no letter-spacing declarations.

A sibling panel in the same project with no font-size declarations renders all text crisp.

▸ CAUSE

The glyph-corruption bug is triggered by the presence of a font-size declaration itself, not by variety or count of distinct values. A single uniform font-size value applied to every element is not safer than mixing multiple sizes. The declaration is what pushes the font atlas into its corrupted state.

This extends the known cumulative-text-count trigger: even a stylesheet that looks "safe" (one shared size, no letter-spacing) crosses the corruption threshold.

▸ FIX

Remove every font-size and letter-spacing declaration from the stylesheet entirely. Let all text elements inherit the engine's default font size.

For a shipping or library panel, the verified-safe form is zero font-size declarations and zero letter-spacing declarations anywhere in the panel's CSS.

To diagnose, use a play-mode camera_screenshot(includeUi: true) zoomed to native pixel resolution. Do not rely on headless rendering, which may not reproduce the atlas state.

▸ WHY IT WORKS

Omitting font-size prevents the engine's font atlas from entering the corrupted rendering path. The engine default size is applied internally without triggering the per-element atlas allocation that leads to the filled-block rendering. Verified live: removing the declarations in the same session (same panel, same fonts) immediately restored crisp text with no editor restart needed.

Verified on engine 26.07.15a: seen in a real project.
s&box moves fast; an undated fix is a liability. Spot a stale detail?
changelog
  • Published

Want to know when new guides or fixes drop? Join the community to help build this out. Report gotchas, flag outdated fixes, or just lurk.

Join the Discord