Developer acceptance workflow
Use a disposable server folder and fresh homes when developing:
SCRATCH=$(mktemp -d)
export HORIZON_HOME="$SCRATCH/game" HORIZON_LAUNCHER_HOME="$SCRATCH/launcher"
export XDG_DATA_HOME="$SCRATCH/data" XDG_CONFIG_HOME="$SCRATCH/config"
export HORIZON_NO_AUDIO=1 HORIZON_LAUNCHER_NO_SELF_UPDATE=1
export HORIZON_LAUNCHER_TRASH="$SCRATCH/trash"
export HORIZON_LAUNCHER_CLIPBOARD="$SCRATCH/clipboard"
export HORIZON_LAUNCHER_DESKTOP="$SCRATCH/desktop"
Install and prepare the base release in that scratch launcher home first, then test your own licensed bundle:
horizon-launcher native-build bundle/ --server-output $ENGINE --version TAG --trust-native-code(scratch homes,HORIZON_NO_AUDIO=1,HORIZON_LAUNCHER_NO_SELF_UPDATE=1).horizon-server --dir SERVER config set engine.path=$ENGINE/horizon-engine;horizon-server --dir SERVER run.- Join with the same mod's client half where the hook needs one; test lifecycle, tick, command and net hooks.
- Headless compatibility: the mod's server code must not require an audio device; run the server audio-free (
HORIZON_NO_AUDIO=1).