Studio doesn't run the HUD client binder in Edit view, so an authored SurvivalHud
shows its static template there — full bars, blank readouts, and only the shipped
default icons (an icon override isn't visible until Play). The admin plugin now has
a footer with **Preview HUD** / **Clear** that paints, in Edit, what the running
game would render, so owners tune-and-see without pressing Play.
- plugin/HudPreview.luau (new): mirrors the engine binder's resolution — per-bar
`Icon` attribute › the stat's effective icon (config/admin override else shipped
default) for icons; FillAxis-aware sample fill; per-stat ValueFormat for the
readout; a sample counter value. Every property is snapshotted once before the
first write and clear() restores them exactly (so it's fully reversible);
apply() takes an optional hud root for testability. Skips the Assets registry
tier (runtime-only, empty in Edit) and never guesses engine-owned invert/dangerHigh.
- StatAdminUi: a footer bar with Preview / Clear buttons + a status readout.
- init.server: wires both through ChangeHistory (each is one undo step).
- Verified in Studio: synthetic-HUD logic test (icon resolution, sample fill/value,
exact restore) + a live visual pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>