BONELAB
Install with App

Details

Latest version
1.2.4
Last Updated
First Uploaded
Downloads
48
Likes
0
Size
41KB
Dependants

Coilhead mod

Freeze in your last pose after players or NPCs watch for the required time. Separate looks add up; the default is 2.5 seconds. Watchers have colored silhouettes, and a small countdown number appears in the lower-right corner of your headset view once you freeze. 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.4. Update each player using the role to 1.2.4 for the adjustable look-time requirement. 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

  1. 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.
  2. Turn on Enable Coilhead. The role starts off each time the game launches.
  3. Before each freeze, selected observers must watch you with clear sight for the configured Look time before freezing (default 2.5 seconds). Separate looks add up: one second now plus 1.5 seconds later qualifies. Time pauses while nobody is looking; simultaneous watchers count at normal speed. Once the requirement is met while watched, your last completed body and leg pose is held and the full main countdown starts. Your real headset view remains tracked. The corner display stays a basic number; BoneMenu shows pending look-time progress before the countdown starts.
  4. When everyone looks away or loses sight, you move freely, but the same main countdown keeps running and stays visible. Each new freeze needs a fresh combined look-time requirement and can begin only while more than five seconds remain. It never restarts the main countdown. At five seconds or less, completing the look requirement cannot freeze you again. An uninterrupted freeze can continue until zero.
  5. 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.
  6. 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
Look time before freezing 0–10 seconds, in 0.25-second steps 2.5 seconds
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. Set look time to zero for instant freezing. Freeze duration sets the continuous countdown from the first qualifying freeze, including time spent unseen after that freeze. The default remains 20 seconds. If you choose five seconds or less, the first qualifying look can still freeze you, but after looking away you cannot be frozen again until a new countdown after cooldown. Watching during cooldown does not build look time. Disabling, scene/avatar changes, mode changes, or editing a duration/view cone clears pending look time and the current round. Color applies to both player and NPC watchers immediately. 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.4 adds the adjustable combined look-time requirement. 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. Existing settings and the network message format remain compatible; the new look-time setting starts at 2.5 seconds.

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 combined look time, unseen gaps, repeated qualifying freezes, cooldown exclusion, the five-second boundary, zero/custom look settings, saved settings, continuous countdowns, local/remote hold deadlines, the double-tap gesture, input jitter/disconnects, pose release, gaze freshness, 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.4. 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.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.