the symptom, in your words

"Loose resource files don't auto-publish"

✓ verified on 26.07.08e
lane Publishing & shippingposted

▸ SYMPTOM

  • Works in editor; after publish, textures/sounds/JSON configs missing.
  • Often cited as the #1 "worked in editor, broken after publish" cause.

▸ CAUSE

Non-compiled assets do not auto-publish. PNG, WAV, MP3, JSON, and similar loose files must be explicitly listed in Project Settings → Other → Resource Files.

Paths must not be prefixed with assets/: use root-relative paths the resource system expects.

Compiled types (.vmdl, .vmat, .sound*_c, etc.) follow the normal asset compile/publish path; loose files are the footgun.

▸ FIX

  1. Open Project Settings → Other → Resource Files.
  2. Add every loose file the game loads at runtime, e.g.:
snippet
materials/foo/bar.png
sounds/impact/boing_a.mp3
data/waves.json

Wrong: assets/materials/foo/bar.png

  1. Republish; join as a player and confirm loads.
  2. Keep the list in sync when generators add new PNGs/MP3s/JSON: treat Resource Files as part of the asset pipeline checklist.

Related publish traps: cloud-assets-fail-under-load, dotnet-build-vs-whitelist.

▸ WHY IT WORKS

The publisher packs what the project declares. Editor play can see anything on disk under Assets/; the published package only includes compiled assets plus the explicit Resource Files allowlist: omit the list and players get holes.

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

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