
EchoLocation MM
Explore BONELAB through sound, forward LiDAR scans or continuous 360-degree Sonar. Features distance-colored dots, player silhouettes, footprints, shot trails and a configurable BoneMenu. Windows PCVR; Fusion optional.EchoLocation-MM
Explore BONELAB through sound and scanning. Let footsteps, your microphone and nearby sounds reveal the world, sweep a room with LiDAR, or keep a rotating Sonar scan moving around you. Walls, floors and objects appear as circular dots that fade back into the dark.
This is a Windows PCVR MelonLoader code mod, with effects in the headset and desktop view. Standalone Quest/LemonLoader is not supported. Fusion is optional.
Features
- Three ways to scan: sound-driven EchoLocation, double-X forward LiDAR and automatic 360-degree Sonar.
- Optional blackout vision: see the scan against black, or draw the effects over normal gameplay. Opening the game quick menu or BoneMenu temporarily restores normal vision.
- Distance-colored circular dots: white nearby, then blue, green, yellow and red as surfaces get farther away. Existing dots change color as you move.
- Better ground visibility: local walking pulses start at head height, downward samples are spread throughout EchoLocation scans, and dots are offset to prevent floor clipping.
- Original-style avatar silhouettes: detected players use their actual supported stock or custom avatar meshes, with no stick-figure replacement.
- Movement and sound detection: quiet slow movement stays hidden; sustained fast movement or an attributable voice/game sound reveals a player briefly.
- Shoe-shaped footprints and shot trails: fast grounded movement leaves fading left/right prints, while locally received gunfire events produce short muzzle-to-hit traces.
- Organized, colored BoneMenu: first-page On/Off, mode selection and blackout controls, plus separate LiDAR and Sonar settings and explanations on key controls.
- Bounded work: Low, Medium and High presets, configurable density, short ray-work slices, bounded histories and a streamlined dot-rendering loop.
Installation
- Set up PC BONELAB with MelonLoader 0.7.3 and BoneLib 3.2.2, the versions used to compile this release. A compatible mod manager can install the declared dependencies.
- Install this package using a BONELAB-compatible mod manager. For a manual installation, close BONELAB and copy
Mods/EchoLocation.dllfrom the ZIP into the game'sModsfolder. - Replace the older Echolocation DLL and keep one installed copy. On Windows, capitalization does not create a separate filename, but differently named duplicate copies must still be removed.
- Launch BONELAB, load a level and open BoneMenu. Look for EchoLocation-MM, or the name of your previously selected mode.
Code mods belong in MelonLoader's Mods folder, not the mod.io content-mod folder. The package includes the mod and its documentation; it does not bundle BONELAB, BoneLib or loader libraries.
Getting started
On the first page, switch On/Off on. The menu title turns green while the mod is enabled. Choose a mode, then close the menu:
| Mode | How it works | In-game title |
|---|---|---|
| EchoLocation | Walk, speak or make a locally audible sound to reveal nearby surfaces. Use the selected gesture for a deliberate 360 pulse. | EchoLocation-MM |
| LiDAR | Double-tap the left-controller X button to scan the area in front of you. | LiDAR-MM |
| Sonar | Automatically rotate a scan around your current position; no repeated button presses are needed. | Sonar-MM |
The Mode selector is red for EchoLocation, white for LiDAR and cyan for Sonar. The page title remains green while enabled and returns to the selected mode's color when disabled. The Thunderstore listing itself has a fixed name; the BoneMenu title changes in-game.
Blackout View is also on the first page. Turn it off to keep the normal world visible behind the effects. Send Pulse / Scan starts the selected mode's deliberate scan when one is available; it does not stack additional scans over an unfinished one. Switching modes clears old dots and queued surface work.
Scan modes and settings
Settings opens six sections: General, Performance, Visuals, Sound Inputs, LiDAR and Sonar. Timing and Advanced controls are inside General. Menu pages stay within six rows, and key settings include tooltips explaining what they affect.
EchoLocation
The sound-driven mode responds to enabled local walking, microphone, game-sound and Fusion-voice inputs. Hearing depends on sources actually playing locally; increasing a range setting cannot make muted or inaudible sounds detectable.
Under General, select an Echo Pulse Shortcut:
| Shortcut | Input |
|---|---|
| DoubleTapX | Two left-controller X presses within 0.45 seconds, releasing between presses. Default for EchoLocation. |
| BothTriggersPlusXY | Both index triggers and left-controller X+Y together. Release all four before repeating. |
| DoubleClap | Bring empty hands together twice, separating them between contacts. Clap Distance controls how close the hands must be. |
| Disabled | No gesture-triggered EchoLocation pulse. |
Echo Shortcut Enabled controls these EchoLocation gestures. LiDAR always uses double X, and Sonar runs automatically. Your EchoLocation gesture preference is preserved when changing modes. Controller scan shortcuts ignore open menus, paused rigs and unavailable controllers; normal game button actions remain available.
General > Timing adjusts the minimum EchoLocation pulse gap, microphone/voice cooldown, repeated game-sound cooldown and local walking step distance. LiDAR and Sonar use their own sweep settings.
General > Pulse Audio controls local pulse/clap feedback, volume and a test sound. General > Advanced contains desktop F5/F6 controls, microphone selection, input refresh and diagnostics. F5 requests a pulse/scan; F6 switches the mod on or off. Holding both index triggers for 1.5 seconds with empty hands toggles blackout; that gesture is suppressed when the four-button EchoLocation chord is selected.
LiDAR
LiDAR captures your head position and direction when triggered, then sweeps left to right across the area ahead. It samples approximately 110 degrees horizontally, from 30 degrees above to 60 degrees below the captured forward direction, including the ground. Turning after the trigger does not redirect that pass.
Open Settings > LiDAR:
| Setting | Purpose | Default |
|---|---|---|
| Scan Sweep | Requested duration of the forward pass. | 1.5 seconds |
| Scan Dot Lifetime | How long returns stay visible. They hold brightness for the first 70%, then fade. | 10 seconds |
| LiDAR Range | Maximum ray distance for this mode. | Existing EchoLocation reveal range on first upgrade; 3000 m on a fresh install |
LiDAR does not produce walking- or sound-triggered surface pulses. Player detection and shot trails remain available. It uses the shared Rays Per Pulse and live-dot limits; dense or repeated scans can replace older dots when the limit is reached.
Sonar
Sonar continuously scans a full circle around your position. Each rotation finishes before the next begins, and the scan origin follows you as you move. The rotating vertical fan covers floors, surrounding surfaces and overhead areas.
Open Settings > Sonar:
| Setting | Purpose | Default |
|---|---|---|
| Full Rotation | Requested time to complete a 360-degree pass. | 4 seconds |
| Sonar Dot Lifetime | How long returns remain. Use at least a full rotation's duration for a more complete surrounding view. | 6 seconds |
| Sonar Range | Maximum ray distance for this mode. | 50 m |
| Green Scenery / Red Objects | Replace the distance gradient with green scenery and red physics objects/revealed players. | Off |
The green/red option classifies props using attached physics bodies, including kinematic bodies. A decorative object without a physics body counts as scenery and can remain green. Revealed player silhouettes turn red regardless of line of sight. This option does not disable player stealth rules or permanently reveal quiet players.
Requested sweep times remain subject to the shared work budget. Heavy scenes may extend LiDAR or Sonar passes; unfinished scanner passes time out after 12 seconds. Starting a new pass never queues an unlimited backlog.
Dot appearance and distance colors
Settings > Visuals controls dot brightness, size and EchoLocation lifetime. LiDAR and Sonar have their own lifetime settings. Visuals > Range > Red Dot Distance scales the shared gradient:
| Color | Default distance |
|---|---|
| White | At the viewer |
| Blue | 7.5 m |
| Green | 15 m |
| Yellow | 22.5 m |
| Red | 30 m and beyond |
Colors blend smoothly between those points. Moving the red boundary also moves blue to one quarter, green to one half and yellow to three quarters of that distance. The optional Sonar green/red scheme overrides this gradient only in Sonar mode.
Dot Brightness adjusts from 0.25x to 3x. Dot Size is a world-space radius, adjustable down to 0.002 m. EchoLocation reveal range and hearing range are separate from the scanner ranges. A longer range samples more space with the same rays; it does not guarantee a dense distant view.
Players, footprints and bullets
Under Visuals > Player Highlights, Player Highlights Enabled controls the avatar overlay. Quiet slow movement and standing still do not create a reveal. Horizontal movement above the configured speed for about 0.16 seconds, or an attributable voice/non-footstep sound, refreshes a brief highlight. A reveal then fades after the last qualifying event.
The default movement threshold is 1.4 m/s and the default reveal fade is 1.5 seconds. Slow footstep audio cannot bypass the movement threshold. With the normal palette, silhouettes are green when visible and red when obstructed; Sonar's green/red option makes all revealed silhouettes red.
Avatar meshes are drawn locally using the original-style snapshot approach. Supported custom and stock avatars follow the same path. Unavailable, malformed or excessively large meshes can be omitted within the renderer's safety limits. There is no stick-figure or distant-icon fallback.
Fast grounded movement leaves fading shoe-shaped prints. Foot placement uses humanoid foot bones where available, with a position estimate otherwise. Prints are movement-derived rather than exact animation-contact recordings. Existing prints can linger after a player slows down.
Visuals > Bullet Trails controls short gunfire-derived muzzle-to-hit traces. These visualize locally received gun events rather than tracking exact projectile ballistics. Remote/custom guns need to deliver a compatible event locally.
Fusion and sound inputs
Fusion is optional and installed separately. Effects are client-side: other players do not need this mod for you to see local scans. This mod creates no custom networked scan objects and sends no extra reveal messages.
When Fusion supplies microphone input, its voice-chat settings affect detection. Otherwise, the mod can use a Unity microphone device. Audio samples are processed in memory; EchoLocation-MM does not record them to files or transmit microphone audio itself. Existing voice chat still behaves according to its own settings.
Use Sound Inputs to select microphone, walking, nearby game sounds and Fusion voice detection. Lower thresholds respond to quieter input. Hearing range does not override game audio attenuation, playback availability or Fusion's own voice distance limits. Very short sounds may be missed between checks.
Performance and limitations
The previous live-dot limits are preserved. Direct corner arithmetic, reusable native array access and shared bounds calculation reduce dot-preparation overhead. Surface scans remain one batched mesh with circular textured dots, plus a circular geometry fallback when required.
| Quality | Maximum live dots | Maximum rays/frame | Ray-work time slice |
|---|---|---|---|
| Low | 2048 | 96 | 0.6 ms |
| Medium | 4096 | 192 | 1.0 ms |
| High | 8192 | 320 | 1.4 ms |
The ray-count cap halves when observed frame duration exceeds 1/60 second. Lower custom limits still apply. The menu uses Requested for limits that can be reduced by these protections. Reapplying a quality preset also updates EchoLocation density and timing values.
Work budgets do not cap the entire game's CPU or GPU time. Individual physics queries cannot be interrupted, and more live dots or complex avatars can still cost performance. Keep automatic optimization enabled; use a slower scanner rotation or lower preset if your map/lobby needs it.
Surface returns require loaded physical colliders. Decorative meshes without colliders cannot produce dots, and camera clipping limits distant visibility. Normal surface dots are depth-tested; detected red player silhouettes can remain visible through obstacles. Moving-object returns are snapshots until refreshed by another pass.
This release builds against the listed local game dependencies and passes automated logic/menu checks. Live VR appearance, multiplayer/custom-avatar compatibility and actual frame times still require in-game testing; they are not guaranteed by those checks.
Saved settings
Settings are stored in the active installation or mod-manager profile's UserData/MelonPreferences.cfg. The existing Echolocation preference category is retained so earlier custom values survive the display-name change. Mode, scanner settings and the Sonar color option are saved there too.
Release notes and credits
Version 1.13.0 adds continuous Sonar, dynamic -MM menu titles, a first-page blackout switch, separate scanner settings and explanatory tooltips. See CHANGELOG.md for the recent modified-build history.
This is a modified build of the supplied Echolocation mod, using its original avatar silhouette approach. BoneLib provides BoneMenu and game hooks; MelonLoader provides code-mod loading. BONELAB and its game libraries are not included in this package.