"Library host project fails to compile library-mounted scenes"
▸ SYMPTOM
Play shows a black screen. The editor's startup-scene load silently creates an empty scene with the same name. Double-clicking the scene asset in the asset browser falls through to the OS file-open dialog instead of opening in the scene editor. The scene file exists and is valid — the same scene compiles fine in a game project consuming the same kit.
Danger: saving the empty impostor tab overwrites the real scene asset. Close it without saving.
▸ CAUSE
A library host project (a project whose kits live under its own Libraries/) triggers a resource compiler path bug when compiling a library-mounted .scene asset. The compiler probes a mangled path (external/RegisterPathSymbols<scene path>), logs ERROR recompiling, and never produces the compiled scene_c. The editor then silently creates an empty scene at the same name as a fallback.
Consumer game projects that install the same kit are unaffected — the game-project compile path handles the library scene correctly.
▸ FIX
Place a byte-identical copy of the scene under the host project's own Assets/scenes/ directory. The project-local copy compiles through the normal path while the library copy fails.
- The editor mounts a newly created
Assets/folder only at project load, so an editor restart is needed the first time. - With both copies mounted,
save_sceneresolves to the library-mounted copy, not the host twin. After any editor-side scene save in a twin-copy setup, diff both copies and treat whichever contains the new edit as canonical before syncing.
▸ WHY IT WORKS
The host project's own Assets/ compile path does not go through the external/library resource compiler codepath that mangles the path. A byte-identical copy at the same bare resource path is behavior-neutral — the engine picks one copy for a bare path, and if both are identical the pick is unobservable.
- Published