Echolocation
Sound-driven echolocation for BONELAB PCVR with black vision, microphone and footstep pulses, nearby game sounds, adjustable sonar dots, and optional Fusion support.
| Date uploaded | 2 weeks ago |
| Version | 1.8.0 |
| Download link | ibemakingshit-Echolocation-1.8.0.zip |
| Downloads | 1249 |
| Dependency string | ibemakingshit-Echolocation-1.8.0 |
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.1bonelib-BoneLib
A BONELAB mod for making life easier for other mod creators.
Preferred version: 3.1.4README
Echolocation
Explore BONELAB through sound. Your view becomes black, and footsteps, microphone input, nearby game sounds and Fusion voices reveal surfaces as expanding, fading dots.
This is a Windows PCVR MelonLoader code mod. It also supports BONELAB's desktop view. It is not a standalone Quest/LemonLoader build.
Features
- Black echolocation-only vision in the headset and desktop view. Opening the game quick menu or BoneMenu temporarily restores normal vision so you can use the controls.
- Sound-driven surface raycasts for walking, landings, microphone input and locally audible game sounds.
- Orange exterior dots on identified sounding NPCs and props. Standard gunshot echoes start at the firing gun's muzzle and reveal its visible exterior.
- Optional Fusion integration. Audible remote voices produce violet echoes. A remote player's own detected sound reveals their silhouette: green with clear line of sight, red when obstructed. A faint proximity silhouette also shows quiet players within 2 m by default; players outside that radius need their own detected sound.
- A gentle double-clap gesture sends a brighter 360-degree pulse, with local sound feedback and an optional menu toggle.
- Hearing and reveal range controls up to 3000 m. Dot size adjusts down to 0.002 m in 0.001 m steps. Brighter dots default to 1.8x, with an adjustable brightness control.
- Automatic echoes use 9 cm dot-merging cells, bounded ray work and short fades to reduce overlapping walking trails.
Installation
- Set up a working PCVR BONELAB installation with MelonLoader and BoneLib.
- Install this package with a BONELAB-compatible mod manager, or copy
Mods/Echolocation.dllfrom the ZIP into the game'sModsfolder while BONELAB is closed. - Replace an older Echolocation DLL; keep only one installed copy.
- Launch BONELAB, load a level and open BoneMenu > Echolocation.
Code mods go in the MelonLoader Mods folder, not the mod.io content-mod folder. The package includes only Echolocation; game and loader libraries are not bundled.
Getting started
Choose Send Pulse, then close the menu. Nearby walls, floors and objects should appear as cyan dots against black. Walk, speak or make a nearby game sound to produce more echoes.
| Input | Echo color |
|---|---|
| Microphone and manual pulse | Cyan |
| Local footsteps and landings | Green |
| Nearby game sounds, NPCs, props and gunshots | Orange |
| Remote Fusion voices | Violet |
| Double-clap pulse | Bright cyan-white |
Controls
All settings are under BoneMenu > Echolocation.
- Enabled: turn the entire mod on or off.
- Blackout (Echolocation Only): toggle the black view.
- Double Clap: 360 Pulse: enable or disable the gesture. With empty hands and the menu closed, bring your hands together twice, separating them between contacts. No minimum impact speed is required. Increase Clap Distance if the contacts are difficult to register.
- Clap and Pulse Sounds, Pulse Sound Volume and Test Pulse Sound: control and preview local feedback.
- Sound Inputs: choose microphone, walking, nearby game sounds and Fusion voice inputs. Keep Nearby Game Sounds enabled for NPC, prop and gunshot echoes.
- Game Sound Threshold: lower it to detect quieter sounds.
- Hearing Range: maximum distance for detected sound sources, up to 3000 m.
- Sonar Visuals: adjust reveal range, dot brightness, dot size, dot lifetime and ray limits. Set Both Ranges to 3000 m immediately updates hearing and reveal distance.
- Faint Nearby Players: enable or disable proximity silhouettes. Nearby Player Distance adjusts the radius from 0.5 to 4 m, default 2 m. These controls are under Sonar Visuals and require player highlights to be enabled.
- Dot Brightness: adjust from 0.25x to 3x, default 1.8x. Color and fade are preserved; final appearance depends on the game's display and postprocessing.
- Optimize Walking and Sound Echoes: keep this enabled for dot merging, short automatic fades and bounded automatic work.
Hold both index triggers for 1.5 seconds with empty hands to toggle blackout. Release before repeating. Desktop shortcuts are F5 for a pulse and F6 to toggle the mod, if desktop hotkeys are enabled.
Settings are saved in the active installation or mod-manager profile's UserData/MelonPreferences.cfg.
Fresh installs start with 3000 m hearing and reveal ranges. Existing settings at the former 200 m maximum upgrade once on launch; lower custom ranges and later adjustments are preserved.
Fusion
Fusion is optional. Install it separately if you want multiplayer. Echolocation effects run locally; other players do not need this mod for you to see echoes. It creates no custom networked objects and sends no additional audio or network messages.
When Fusion is installed, microphone detection uses Fusion's existing voice-chat input. Join a session and enable voice chat. Mute, deafen, voice activation and push-to-talk affect detection. Without Fusion, the mod can use a Unity microphone device; it leaves an already-recording device alone. Microphone samples are processed in memory and are not recorded to files or transmitted by Echolocation.
A remote player's own detected sound produces the stronger silhouette, fading within 0.5 seconds of their last detected sound. Your movement, speech and deliberate pulses do not refresh someone else's sound window. Separately, Faint Nearby Players keeps a subtle distance-faded silhouette inside the proximity radius even while the person is quiet. It disappears outside that radius unless their sound is still detected. Disable the proximity toggle for entirely sound-driven player reveals. Gun and prop ownership does not infer the identity of a nearby player.
Version 1.7.6 corrects the scale and placement of baked avatar silhouettes. It also checks snapshot bounds before drawing: a malformed or greatly displaced snapshot is omitted instead of covering your view. The check follows each avatar renderer's actual size, so it does not force large avatars to human size. Unusual poses that extend well outside an avatar's configured renderer bounds can be omitted too; a throttled mod-log message reports that condition.
The included 1.7.7 corrections improve missing speaking avatars. Remote detection follows voice audio currently playing, even when the newest Fusion packet is quiet. Failed voice sources retry independently. More active mesh parts, higher-detail meshes and additional material slots can render within bounded work. Hearing range follows tracked head coordinates. If no safe avatar mesh can be drawn, a small green/red diamond marks the tracked head during an eligible sound or proximity reveal. Silent and muted audio never creates a sound reveal.
Performance and limitations
With automatic optimization enabled, each automatic pulse uses at most 512 rays and all automatic scans share a 256-ray frame budget. Automatic dots fade within 0.85 seconds. Repeated hits refresh existing dots. Manual and double-clap scans keep their separate detail and longer fades within the configured overall limits.
The renderer samples physical colliders. Decorative meshes without colliders do not produce returns, and walls block ordinary surface dots. Red player silhouettes intentionally remain visible through obstacles. The 9 cm merging cell is not a guaranteed distance between visible dots: positions come from actual raycast hits.
Sound detection requires locally playing, audible output. Very short sounds can be missed between checks. Increasing hearing range does not make muted or inaudible sounds detectable. The inspected Fusion build applies its own voice cutoff based on avatar height, approximately 33 m for an ordinary-height avatar; a 3000 m Echolocation setting does not change that cutoff. World audio retains its own attenuation and playback limits.
A larger reveal range spreads the same rays over more space; distant returns are sparser. Wave speed scales with range so the outer radius is reached within 1.25 seconds, followed by the normal fade. Physical colliders must be loaded, and actual visible distance remains subject to the game's cameras and clipping planes. Ray, dot and avatar budgets remain bounded.
Standard BONELAB gun audio supplies the muzzle mapping. Custom weapons with another audio implementation fall back to their sound-source position. Special camera compositors, custom avatars, game updates and other mods can require compatibility adjustments.
If performance drops, keep automatic optimization enabled and reduce the overall ray budget, ray count or stored-dot limit. Test settings on the same map and lobby when comparing performance.
Release notes
Version 1.8.0 adds faint nearby silhouettes, 3000 m range controls and brighter dots, including the earlier avatar and voice fixes. It remains an optimized Release build with neutral mod metadata and no debug symbols. See CHANGELOG.md for recent changes.
CHANGELOG
Changelog
1.10.0
- Change Sonar to a rotating sweep, completing a turn every 0.5 seconds. Surface hits appear immediately as the sweep passes.
- Add LiDAR mode: hold either empty hand's index trigger to scan where it points. Desktop uses held F5. Both hands share the scan budget.
- Keep owned gun, prop and NPC sound reveals active in every mode. Keep the current player detection rules.
- Improve detection of direct custom gun audio, including hybrid and gun-owned 2D sources. Keep actual audio and range checks.
- Improve custom avatar transform selection and add a bounded tracked-body fallback when a body mesh is rejected.
- Keep menu/pause guards, ray limits and deduplicated dots. Release the trigger to stop LiDAR; use the Blackout menu toggle in LiDAR mode.
1.9.0
- Add Scan Mode in BoneMenu: Sound keeps the existing sound-driven scans; Sonar sends a 360-degree surface scan every 0.5 seconds.
- Keep current player walking, sound and proximity rules in both modes. Manual pulses and double claps remain available.
- Pause automatic sonar while menus or the game are paused. Resume without replaying missed scans.
- Limit repeating scans to 2,048 rays per pulse and 256 rays per frame, within the configured lower limits. Refresh nearby dots and replace unfinished sonar work instead of building a backlog.
- Use the existing Clap and Pulse Sounds toggle and volume for the sonar ping. Save the selected mode.
1.8.2
- Detect remote walking even when Fusion produces no footstep audio. Track each player's body and foot movement near the floor, independently of voice.
- Add Remote Walking Detection under Sound Inputs, enabled by default. Turn it off for audio-only detection. Walking and Landing controls both walking inputs.
- Reject planted-foot leaning, idle movement, unsupported feet, ladders, seats, teleports and stale tracking. Remove moving-platform motion and preserve stride across static floor tiles or compound platform colliders.
- Keep ground checks limited to eight every 50 ms. Audio takes priority when footsteps are playing, and surface dots keep the existing limits.
- Try an alternate avatar transform only when it passes the same bounds checks. Keep a small head marker when a body mesh is rejected, even if an accessory still renders.
- Add separate diagnostic counts for detected audio and walking steps.
1.8.1
- Check remote players' actual footstep AudioSources directly from the Fusion player registry. Short footsteps no longer depend on the general scene-audio discovery queue, and no prior speech is needed to begin checking a player.
- Add Remote Footstep Sensitivity under Sound Inputs, default 4x and adjustable from 1x to 12x. This lowers the detection threshold for identified remote footsteps without changing saved general sound or microphone settings.
- Run the dedicated input with Walking and Landing enabled, independently of microphone, Fusion voice and Nearby Game Sounds toggles. Actual playing audio, source/listener volume and hearing range still apply; movement alone does not create a sound reveal.
- Accept the live source of a disabled native FootstepSFX behavior on an active player object. Reject detached, inactive, replaced and ambiguously shared owners, muted/stopped/silent output, and stale samples.
- Bound the dedicated sampler to eight PCM reads every 50 ms with round-robin scheduling. Keep surface echoes inside the existing queue, ray and dot limits, and preserve the half-second sound fade and optional faint proximity cue.
- Keep playback and multiplayer state unchanged. No native audio hooks are added.
1.8.0
- Add a faint proximity silhouette for remote Fusion players, including quiet players. It defaults to a 2 m radius, fades with distance and keeps the existing green/red visibility colors. Sound still produces a stronger reveal.
- Add Faint Nearby Players and Nearby Player Distance controls under Sonar Visuals. Disable the proximity toggle to return to sound-only player reveals.
- Raise hearing and reveal range limits to 3000 m across settings, menus, voice input, world audio and surface raycasts. Fresh installs start at 3000 m; saved old 200 m maximums upgrade once. Lower custom settings remain available, and a menu button sets both ranges to 3000 m.
- Increase dot brightness to 1.8x and add a 0.25x–3x brightness control. Preserve colored, feathered dots and normal fading.
- Scale distant wave travel so the pulse radius is reached in at most 1.25 seconds, followed by the normal dot lifetime. Pending distant automatic returns cannot displace all currently visible nearby dots in a full cache.
- Keep existing ray, dot and avatar workload limits. Loaded geometry, camera clipping and actual game/Fusion audio audibility still limit what can be detected or seen; the range controls do not extend Fusion's own voice cutoff.
- Include the avatar scale, missing-speaker and high-detail rendering corrections from 1.7.6 and 1.7.7.
1.7.7
- Detect remote speech from the audio currently playing. A quiet new Fusion packet no longer suppresses buffered speech, and silent output still cannot reveal a player.
- Isolate and retry unavailable voice sources so one broken source or an avatar change cannot disable everyone else's voice echoes.
- Use the tracked player's head for hearing range and visibility, preventing displaced mesh bounds from hiding nearby speakers.
- Ignore disabled avatar variants when choosing mesh parts. Support more parts, material slots and meshes up to 500,000 vertices, with four bakes and 500,000 baked vertices per frame, a bounded cache and the existing overall draw ceiling.
- Give each player's mesh parts their own turn under the bake budget, including during low frame rates and simultaneous speech.
- Show a small red/green marker at the tracked head when no safe avatar mesh can be drawn. It follows the same sound-driven fade and cannot inherit an avatar's oversized scale.
- Include the 1.7.6 oversized-silhouette correction. Silent-player filtering, saved settings and the half-second reveal window are preserved.
1.7.6
- Fix oversized or displaced green/red avatar silhouettes by drawing baked skinned meshes with their Transform position and rotation, without applying their scale a second time.
- Recalculate owned snapshot bounds and skip snapshots that are nonfinite or extend far outside the source avatar renderer's bounds.
- Refresh cached snapshots after avatar, mesh, root-bone or scale changes. A pending or failed rebake cannot draw an old-scale snapshot.
- Keep the existing four-bake frame budget and independent static-mesh transforms. Sound thresholds, silent-player filtering and the half-second player fade are unchanged.
1.7.5
- Prepare a Thunderstore package with a manifest, icon and public documentation.
- Use a text-free icon showing a human figure outlined by echolocation dots.
- Use neutral mod-author metadata and an optimized, deterministic Release build without debug symbols or personal build paths.
- Preserve the gameplay behavior of 1.7.4.
1.7.4
- Reduce automatic dot-merging cell width from 12 cm to 9 cm for moderately closer walking and sound echoes.
- Preserve automatic ray limits, duplicate refresh and short fades.
1.7.3
- Resolve standard gunshot audio to the exact firing gun and capture the muzzle position.
- Reveal the gun's visible exterior alongside nearby surfaces.
- Apply muzzle distance to gunshot hearing and strength, including delayed ownership resolution.
1.7.2
- Expand hearing and reveal range controls to 200 m.
- Allow dot sizes down to 0.002 m with 0.001 m adjustments.
1.7.1
- Replace native audio patches with bounded monitoring during game updates to improve startup compatibility.
1.7.0
- Add exterior sound echoes for identified NPCs and props.
- Improve detection and ownership tracking of pooled impact sounds.
1.6.0
- Extend blackout to desktop views.
- Reduce overlapping automatic echoes with bounded ray work, dot merging and short fades.
1.5.0
- Improve gentle double-clap detection.
- Add local pulse audio feedback and a complete 360-degree double-clap wave.
1.3.0
- Require each remote player's own detected sound to reveal them.
- Keep quiet players hidden during local footsteps, speech and deliberate scans.