#broke-after-publish
12 items (12 fixes)
A razor background-image referencing a loose PNG/JPG renders in-editor (loose Assets are readable off the mounted filesystem) but goes blank in the published package, because loose non-compiled images are not auto-shipped. Add the disk glob to the sbproj Resources list; the wildcard matches the loose disk path, not the normalized asset path.
Org/ident rules, every store-page field is launch-blocking, AI thumbnails demoted: verify as a player after publish.
System.Array.Clone() compiles clean in dotnet build but fails SB1000 in the editor: the headless build does not enforce the whitelist.
Published game boots with error.vmdl placeholders; engine may rewrite prefab refs, no auto-retry; restart editor + republish.
Headless dotnet build is green while the in-editor compiler emits SB1000: Environment/IO/Process/reflection are banned in game code.
Whitelist divergence, loose Resource Files, and silent cloud-asset failures after publish.
Standalone export hangs if PackageReferences still need sbox.game to resolve: don't accumulate cloud package deps casually.
PNG/WAV/MP3/JSON must be listed in Project Settings → Resource Files without an assets/ prefix: #1 editor-vs-publish break.
Lowering the sea level in a priority-flood water pass doesn't drain interior lakes: they're perched at their own spill surface. Use a per-basin depth gate and a land floor for below-sea valleys instead.
A loading screen mounted right before a synchronous multi-second call never paints: one consumed tick isn't enough; gate the block on a frame counter (~6 frames) so the Razor pipeline finishes mount → style → layout → paint.
Preview as of 2026-07: Valve approval + Facepunch license; full .NET, lose platform services; clean PackageReferences or startup hangs.
No paid storefront: revenue is clamped player-hours from a daily pool; retention is the monetization feature.