# Hijack Hijacking takes a scene full of packet NPCs and re-spawns each one as a real NMS Player you can fight. Vanilla handles damage, knockback, physics, and death drops. The hijacker's own actions are recorded for cinematic replay later. --- ## Starting a hijack ``` /recap hijack <scene> ``` Each entry in the scene becomes a real `ServerPlayer` standing on its recorded path. You can attack them, get attacked by them (if their recording had hostile actions), get knocked back by them. When they die, vanilla `dropAllDeathLoot` runs on their captured inventory. --- ## Co-op hijack ``` /recap hijack <scene> @a ``` All online players hijack the same scene. Each hijacker gets their own output recording named `<scene>_<player>`. --- ## What gets recorded during a hijack Two streams are written: 1. **Hijacker output** — `<scene>_<player>` — captures the human hijacker's path and combat. 2. **Reactive recording** — `<scene>_h_<player>_<ts>` — captures each touched NPC's MODIFIED behavior (post-knockback, post-damage, post-death). On `/recap stop`: - **Touched NPC** entries in the scene are **swapped** for the reactive recording. - **Untouched NPC** entries stay as the original (you walked past them, didn't hit them). - The hijacker's output is auto-appended to the scene as **playback-only** — it plays back fully in `/recap play`, and on re-hijack it returns as an un-killable **ghost actor**. --- ## Why playback-only matters Without the playback-only flag, every hijack would add a killable NMS Player at the hijacker's spawn position to the scene. On re-hijack, sword sweep / mace AOE would kill the new target AND the previous-hijacker NPC, doubling drops per lap. Playback-only entries appear normally on `/recap play` so the cinematic shows the human hijacker walking the scene. On **re-hijack**, they spawn as visual **ghost actors** (regular packet NPCs, never promoted to a killable `ServerPlayer`) so you can watch every past lap unfold alongside the live one — and because they can't be killed, there are no duplicate death drops. --- ## Force a new scene By default, hijacking an existing scene edits that scene in place. To force a brand-new output scene: ``` /recap hijack <scene> --new <new_name> /recap hijack <scene> -n <new_name> ``` Useful when you want to compare laps side-by-side instead of layering them. --- ## Auto-end on scene end ``` /recap hijack <scene> --stop-on-end /recap hijack <scene> --soe ``` Ends the hijack automatically the moment the scene's last recording finishes playing — the same finalisation as a manual `/recap stop` (reactive saved, entries swapped, hijacker appended). Combinable with `--new`. Handy for hands-off capture where you don't want to time the stop yourself. --- ## Ending a hijack | Command | Effect | |---|---| | `/recap stop` | Finalize — save reactive recordings, swap touched-NPC entries, append hijacker as playback-only. | | `/recap cancel` | Discard the hijack — no save, no swap, no scene mutation. | | `--stop-on-end` / `--soe` | (Flag, set at start) auto-finalises when the scene's last recording ends. | If you die or disconnect, the hijack tick loop ends the session automatically. --- ## Reverting ``` /recap revert /recap revert <scene> /recap revert --maintain ``` Undoes the most recent hijack's scene mutation. `--maintain` keeps the reactive recording file on disk while restoring the scene to its pre-hijack state. --- ## Multi-actor scenes & combat events When a scene contains many actors and the hijacker hits them, vanilla emits real crit / hurt / sweep effects. The recording's frame-driven combat anims (captured in the original recording) still fire too. Playback-only entries (hijacker paths) explicitly suppress damage hearts, crit particles, and hit sounds during `/recap play` so a multi-lap scene doesn't visually layer the same event multiple times. --- ## See Also - [[Recap/Server Owners/Features/Scenes]] - [[Recap/Developers/Hijack Architecture]]