s&box/field-guide
the symptom, in your words

"Title / Ident / StartupScene fields that bite new projects"

✓ verified on engine 26.07lane: Getting set upposted
▸ SYMPTOM
  • Play loads the wrong scene (or nothing useful).
  • Editor fails to boot with something like File doesn't exist? Maybe a case sensitivity issue?? from Sandbox.PackageLoader.LoadAssemblyFromPackage — looks like engine corruption.
  • You're unsure which .sbproj fields matter on day one vs at publish.
▸ CAUSE

.sbproj is the package manifest. Three fields bite early:

  1. Metadata.StartupScene — exactly what Play loads (e.g. "scenes/main.scene").
  2. Org — must be a valid lowercase package ident. An uppercase TODO placeholder breaks engine bootstrap, not just publishing.
  3. Title / Ident — display name vs package identity; Ident becomes part of the public org.package story later.

Also load-bearing for architecture: TickRate: 50 (fixed update 50 Hz), and keep GameNetworkType: "Multiplayer" even for single-player so networking stays open.

▸ FIX
snippet
{
  "Title": "YourGame",
  "Type": "game",
  "Org": "local",
  "Ident": "yourgame",
  "Schema": 1,
  "Metadata": {
    "MaxPlayers": 64,
    "MinPlayers": 1,
    "TickRate": 50,
    "GameNetworkType": "Multiplayer",
    "StartupScene": "scenes/main.scene"
  }
}

Rules:

  • Dev: keep "Org": "local" until a real org exists. Document publish TODOs in a doc — never park TODO_PLACEHOLDER (or any non-ident string) in Org.
  • Point StartupScene at a scene that actually exists under Assets/ (path without Assets/ prefix, as in the example).
  • Pick a stable Ident early; treat first public publish naming carefully — see org-ident-pick-early.
▸ WHY IT WORKS

The editor mounts your project as a package using Org/Ident before your game code runs. An invalid Org fails assembly load at startup. StartupScene is the only Play entrypoint the manifest declares — changing scenes in the asset browser without updating this field leaves Play on the old path.

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