Skip to content

Cooking a Home

xAstroBoy edited this page Jul 11, 2026 · 7 revisions

Cooking a Home

  1. Drag the old home (env.apk / .gltf.ovrscene / .opa) onto the editor (or pass it on the command line). It loads and renders exactly as the headset would — this preview is the desktop preview the cook approximates (the headset is the final word).
  2. (Optional) Edit it: move/scale/hide objects, set the spawn point, add chairs / navmesh / colliders / wall placements, replace the audio, retexture things — see the Editor Guide. You can also skip this entirely and port the home as-is.
  3. Open the Cook tab and press COOK + SIGN + INSTALL.

⚠️ Every home needs at least one collider. With no collision the player has no floor and falls through the world forever (respawning at the void floor). The default Auto floor collision (Cook tab) covers this for you — leave it on unless you're placing your own. If you turn it off, add a Navmesh (walkable mesh, baked from a selection) or a Box collider from the Scene tab → + Add. If a cook would ship zero collision, the editor pops a warning before it starts so you don't ship a fall-through home by accident.

Every control has a hover tooltip. The defaults are what most people want:

Option Default Meaning
Package env's id Android package id for the own-package (rooted) APK only. The spoof always uses Meta's haven2025 id and ignores this.
Auto-sign ✅ on Sign the APKs so the Quest accepts them. Keep on.
Emit haven2025 spoof ✅ on Also build the no-root APK. Keep on — it's the one most people install.
Animate skinned meshes (HZANIM) ✅ on Skeletal + rigid node animation ports (full-length clips, ACL-compressed).
Install to headset (auto) ✅ on Cook → sign → install automatically (root-aware).
Wi-Fi IP / Device blank Wireless adb IP / a specific device serial. Blank = USB / default device.

What "COOK + SIGN + INSTALL" does

  1. Auto-saves your session (edits are never lost to a cook), then cooks the (edited) scene into APK(s) in the cooked/ folder (editor sessions live in saved/).
  2. Signs them.
  3. Detects root on the connected headset and installs the right one automatically — see The Two APKs — then reloads the shell so the env appears immediately.

The status line at the bottom of the panel reports exactly what happened (which APK, signed or not, installed or not). Outputs are named:

  • <env>_NoRoot-Spoof.apk — install on any (non-rooted) Quest.
  • <env>_Rooted-System.apk — for rooted / dev headsets.

What actually gets ported

  • Geometry — world-baked, large meshes auto-split to device-safe sizes, double-sided where authored.
  • Textures — the source ASTC mip chains pass through losslessly when untouched (no double-compression softening), tagged sRGB like every official Meta texture; edited/cropped textures re-encode at the authored block footprint.
  • Materials — authored Transparent / Additive / AlphaTest (with the per-material alphatestthreshold), SpecIbl lighting from the env's own IBL cubemaps, baked lightmaps.
  • Animations — everything, full-length, no caps: node motion, UV scrolls, spritesheet flipbooks (exact per-frame matrix replay), tint/fade cycles, skinned meshes, VAT. See Animation System.
  • Audio — the background loop (incl. Ogg-Opus) becomes an auto-starting FMOD bank.
  • Scene components — spawns, chairs, colliders, navmesh, wall placements, hotspots cook to the real Meta/Horizon components (haven2025-exact recipes).

Manual cook (command line / headless)

Loading an env headless and cooking is supported; set HSR_NOINSTALL to skip the auto-install step in batch runs:

HSR_EXPORT=1 HSR_EXPORT_QUIT=1 hsr_renderer <env.apk>

To sign an already-built APK someone sent you:

"Quest Home Editor.exe" --sign <file>.apk      # -> <file>_signed.apk

Clone this wiki locally