Coilhead mod
Freeze when players or NPCs look at you. Choose outline colors, freeze time and cooldown in BoneMenu > Coilhead mod > Settings. Corner headset countdown. Double-tap both triggers + Y + B together to disable. PCVR with Fusion.
By MeltedMelon
| Date uploaded | 2 weeks ago |
| Version | 1.2.3 |
| Download link | MeltedMelon-Coilhead_mod-1.2.3.zip |
| Downloads | 19 |
| Dependency string | MeltedMelon-Coilhead_mod-1.2.3 |
This mod requires the following mods to function
LavaGang-MelonLoader
The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono
Preferred version: 0.7.3bonelib-BoneLib
A BONELAB mod for making life easier for other mod creators.
Preferred version: 3.2.2Lakatrazz-Fusion
A multiplayer mod for BONELAB, taking advantage of its physical interaction.
Preferred version: 1.14.2README
Coilhead mod
Freeze in your last pose when a player or NPC looks at you. Watchers have colored silhouettes, and a small countdown number appears in the lower-right corner of your headset view. For BONELAB PCVR.
Install and update
Requires MelonLoader 0.7.3, BoneLib 3.2.2 and Fusion 1.14.2. Fusion remains an installed dependency; NPC mode works without joining a lobby.
Close BONELAB completely, replace Mods/MannequinMod.dll and restart. Remove any old CoilHeadBeta.dll or renamed copies of previous versions. Use the MelonLoader Mods folder next to the game executable, not the mod.io/avatar folder.
This package is 1.2.3. Update each player using the role to 1.2.3 for the continuous countdown rule. Viewers can leave their own role off and need 1.2.0 or newer for remote pose holding. This version sends live gaze independently of the visible frozen pose and includes the remaining hold duration in freeze messages. Senders older than 1.2.0 can still transmit frozen gaze; viewers older than 1.2.0 cannot interpret the extended freeze message and may animate legs normally.
How to play
- Open BoneMenu > Coilhead mod. Choose Players, NPCs or Both under Who can freeze you. Players mode needs a Fusion lobby. NPCs and Both also work solo.
- Turn on Enable Coilhead. The role starts off each time the game launches.
- When a selected observer looks at you with clear sight, your last completed body and leg pose is held. Your real headset view remains tracked. A number counts down in the lower-right corner, without a background panel, extra labels or a progress bar.
- When everyone looks away or loses sight, you move freely, but the same countdown keeps running and stays visible. Looking back can freeze your current pose again only while more than five seconds remain. It never restarts the countdown. At five seconds or less, a new look cannot freeze you again. An uninterrupted freeze can continue until zero.
- At zero, you release and receive the configured cooldown, even if nobody is currently looking. The corner number disappears during cooldown. BoneMenu shows cooldown status. With a zero-second cooldown, another countdown can start on the next observed frame.
- To disable and release, double-tap both triggers + Y + B together: briefly squeeze both index triggers while pressing left Y and right B, release all four, then repeat. The second press disables immediately. All four controls are required on each tap. You can also use Emergency release / disable in BoneMenu. Changing observer mode releases and resets the round.
The shortcut allows up to 0.2 seconds between fingers, a first tap up to 0.4 seconds long, and up to 0.65 seconds from releasing the first tap to completing the second press. Fully release between taps. Trigger noise is filtered, and stale input or a disconnected controller cancels the sequence. Release all controls after enabling before starting a gesture. Holding grips or triggers no longer disables the role. Y and B refer to the upper face button on each Touch controller.
Settings
Open BoneMenu > Coilhead mod > Settings:
| Setting | Choices | Default |
|---|---|---|
| Outline color | Yellow, White, Cyan, Green, Blue, Purple, Pink, Red | Yellow |
| Freeze duration | 1–120 seconds | 20 seconds |
| Cooldown | 0–120 seconds | 20 seconds |
| View cone | 20–100 degrees, full angle around headset/eye forward | 60 degrees |
These settings save between launches through MelonPreferences. Freeze duration sets the continuous countdown from first sight, including time spent unseen. The default remains 20 seconds. If you choose five seconds or less, first sight can still freeze you, but after looking away you cannot be frozen again until a new countdown after cooldown. Color applies to both player and NPC watchers immediately. Editing a duration or view cone releases and resets the current round. A narrower cone requires a more direct look; a wider one includes peripheral vision. This uses headset direction, not eye tracking.
Display & highlights independently toggles the countdown or watcher outlines. The role itself does not turn on automatically after a restart.
Version 1.2.3 keeps one continuous countdown across look-aways and prevents new freezes in its final five seconds. Version 1.2.2 introduced the double-tap shortcut above; 1.2.1 updated the name and outline icon. Saved settings and the network message format remain compatible.
Fixes in 1.2.0
- Incoming player gaze uses the newest received headset pose rather than a delayed displayed rig. Without new pose packets for 0.35 seconds, a player no longer counts as watching.
- Frozen mannequins continue transmitting real headset direction and view rotation, so looking away works even when both players are mannequins. Updated receivers hold the displayed statue separately.
- Skinned silhouettes bake scale into the mesh once and use a position/rotation-only draw matrix. Rigid meshes retain their regular transform scale. This removes the extra scaling that could inflate highlights on scaled avatars.
- The countdown, local hold and remote hold all use the chosen duration. No persistent physics constraints, kinematic flags or Fusion movement-lock flags are written.
No native rig, physics, art or camera detours install. The two managed Fusion pose hooks install only after role activation in a lobby with a valid rig.
Observation and performance
Sight has a 100-metre limit. A clear ray to the head, chest or pelvis counts. Walls block it; transparent objects with solid colliders can also block it. Mirrors do not count. Headset direction and network delay mean this is an approximation of what another person sees.
Up to 8 player checks / 24 rays and 4 NPC checks / 12 rays run per frame. NPC discovery runs every two seconds only in NPC/Both mode. Newly spawned NPCs may take up to two seconds to join the roster. Dead, inactive or despawned NPCs do not count. NPCs require a standard AIBrain, living puppet and eye transform; Ford is an intended target, but custom NPC systems may not be supported.
Watcher silhouettes reuse our EchoLocation player-rendering code; EchoLocation is not a dependency. Players and NPCs share one mesh bake and up to 96 submesh draws per frame, a one-million-vertex cache and a 120,000-vertex limit per mesh. Extremely complex meshes can be skipped. Held props are not frozen.
Validation
The build and automated checks cover continuous countdowns through repeated look-aways, the five-second boundary, expiry while unseen, custom durations, local/remote hold deadlines, the double-tap gesture at several simulated frame rates, input jitter and disconnects, pose release, incoming gaze freshness, live outgoing headset data, saved settings, NPC sight, countdown state/placement and mesh transform math. They use simulated Unity/Fusion objects. Physical controller input, actual baking, both-eye rendering, multiplayer gaze and native callbacks still need an in-game test of 1.2.3. FPS has not been measured.
For bug reports, include the mod version on both players, observer mode, view-cone setting, freeze/cooldown settings, whether the menu still says FROZEN after look-away, and the newest MelonLoader log.
CHANGELOG
Changelog
1.2.0 — Live gaze, outline scaling and saved settings
- Rename the Thunderstore package, menu and display name to Mannequin. Keep the existing DLL filename and saved settings for updates.
- Keep real headset and playspace orientation in outgoing Fusion poses while independently holding the visible statue. Two mannequins can look away from each other without transmitting their old frozen gaze.
- Read gaze from the latest received pose, not the interpolated rig. Expire observations if no new pose arrives for 0.35 seconds.
- Default the view cone to 60 degrees and add an adjustable 20–100 degree setting.
- Bake skinned mesh scale into snapshots once and draw without applying the hierarchy scale again; retain normal transform scale for rigid meshes.
- Add eight outline colors, freeze duration (1–120 seconds) and cooldown (0–120 seconds), saved through MelonPreferences. Default timing stays 20/20 seconds.
- Apply chosen duration consistently to the countdown, local hold deadline and remote hold deadline. Timing or view-cone edits release and reset the current round.
- Remote freeze messages include the chosen duration. All participating viewers should update to 1.2.0; older versions cannot interpret the new extended freeze message.
- Add fresh/stale gaze, live-head transmission, saved-setting, timing and scale-once regression checks. Native VR testing remains pending.
1.1.1 — Release and highlight fixes, corner countdown
- Replace persistent rigidbody constraint writes with active-only position/rotation corrections. Both local and remote holds leave native constraints, kinematic flags and Fusion movement-lock flags untouched.
- Keep late-update and before-render pose correction, explicit feet/knee holding, zero outgoing movement and release on lost sight or timeout.
- Fix the logged highlight rejection: validate the baked mesh itself instead of comparing it to stale custom-avatar renderer bounds. Keep invalid-matrix, empty-mesh and oversized-mesh checks.
- Draw watcher highlights on a layer visible to the headset camera.
- Replace the centre panel with one small countdown number in the lower-right corner. Account for both eye projections and add a subtle shadow; remove labels, background and progress bar.
- Add regressions for repeated constraint-free releases, mesh validation and stereo corner placement. Live VR confirmation remains pending.
1.1.0 — Release, headset countdown and NPC mode
- Read Fusion's tracked headset direction and immediately reject cached sightings after turn-away, death or hiding.
- Clear pose callbacks on look-away and timeout; explicitly prevent receiver-side holds from attaching to the local rig.
- Replace the camera-screen HUD with a headset-attached world-space countdown on a visible camera layer. Show it during a freeze and hide it on look-away, disable or timeout; cooldown stays in the menu.
- Keep HUD retries independent of silhouette failures.
- Add Players, NPCs and Both modes, with solo NPC support and yellow watcher silhouettes sharing the existing render budget.
- Budget NPC sight checks, use NPC eye transforms and reject dead or inactive NPCs.
- Log freeze/release transitions and add headset, NPC and HUD-state regressions. Live VR confirmation remains pending.
1.0.2 — Startup crash hotfix
- Remove all seven native rig, physics, art and camera Harmony detours introduced in 1.0.1.
- Use existing rig late-update and Unity before-render callbacks, attached only to available player rigs, to maintain the saved pose.
- Defer the managed Fusion outgoing-pose hook until the role is enabled in a lobby with a valid rig. No patches install during mod initialization.
- Preserve other mods' callback listeners and detach this mod's listeners on rig replacement or shutdown.
- Keep temporary body constraints, remote freeze heartbeats, release guards and the 20-second freeze/cooldown rules.
- Add callback lifecycle regression checks. The reported crash was a fatal runtime error; the exact failing native hook is unconfirmed. In-game startup and multiplayer confirmation remain pending.
1.0.1 — Frozen feet and remote poses
- Hold the previous completed body and bone pose, including feet and knees.
- Temporarily constrain frozen bodies and suppress their procedural foot/art updates to address movement slip.
- Clear outgoing thumbstick motion and add a receiver-side pose hold to address remote walking-in-place. Viewers need 1.0.1 installed; their own role can stay off.
- Restore original body constraints independently and retry failed restores.
- Add expiring remote heartbeats, a hard timeout, and cleanup on disable, disconnect and rig changes.
- Isolate remote avatar failures so other players can still release.
- Expand regression coverage for native hook callbacks, remote metadata, previous-frame capture and release failures. Live multiplayer VR testing remains pending.
1.0.0 — Mannequin Mod
- Renamed the mod and package to Mannequin Mod and removed prerelease branding.
- Replaced the cover art with a simple white spring-neck mannequin outline on black.
- Removed the how-to-play menu and moved instructions to the mod description.
- Reworked freezing to avoid persistent physics and global movement-lock flags.
- Added independent observation-expiry and maximum-duration guards.
- Made release cleanup continue after a destroyed or invalid rig part; restored local avatar attachment transforms and woke released dynamic bodies.
- Kept immediate observation freezes, the 20-second escape/cooldown rules, solid yellow silhouettes, VR countdown and grip/trigger emergency disable.
- Expanded automated regression tests. Live multiplayer VR testing remains pending.