You are viewing a potentially older version of this package. View all versions.
REPOWorkshop-ObjectDropLaser-1.0.1 icon

ObjectDropLaser

Tired of missing the cart? Shoot a laser to see where objects will drop!

Date uploaded a year ago
Version 1.0.1
Download link REPOWorkshop-ObjectDropLaser-1.0.1.zip
Downloads 7257
Dependency string REPOWorkshop-ObjectDropLaser-1.0.1

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

REPO-DropLaser

A precise object landing assistant for the game REPO.
Adds a customizable laser showing where your held object will land if dropped, helping you aim throws and drops more accurately.


Features

  • Adds a downward-pointing laser from your grabbed objects.
  • Helps visually predict where objects will land when dropped.
  • Customizable colors: match your beam color or define your own.
  • Fully configurable beam width, brightness, and range.
  • Auto-activation option: laser turns on automatically when grabbing an object.
  • Multiplayer compatible: laser is shown only for your local player.
  • Efficiently optimized for minimal performance impact.

Installation

  1. Install BepInEx for REPO if you haven't already.
  2. Download the latest release .zip from this repository or Thunderstore page.
  3. Extract the .dll file into your BepInEx/plugins/ folder.
  4. Launch REPO.
  5. The landing laser system will now be available when grabbing objects.

Configuration

The mod automatically generates a config file at: REPO\BepInEx\config

You can customize:

  • Master Enable: Fully disable or enable the system.
  • Laser Toggle Key: Default is L, but you can assign any key.
  • Beam Colors:
    • Use your grab beam's color automatically.
    • Or override with a custom static color.
  • Laser Shape:
    • Start and end widths.
    • Laser max downward scan distance.
  • Laser Light:
    • Glow brightness (intensity).
    • Glow range.
  • Auto-Enable:
    • Automatically turns the laser on when grabbing an object if you want.

How It Works

  • Dynamic Laser Control:
    Laser only appears when you're holding something and can be toggled freely.

  • Precision Raycasting:
    The laser scans downward, ignoring invisible cart barriers and non-physical triggers to accurately hit solid ground or surfaces.

  • Singleplayer and Multiplayer Handling:
    In multiplayer, lasers are local to each client and don't interfere across players.

  • Auto Cleanup:
    On scene changes, lasers are properly destroyed and reset to prevent duplication or errors.


Credits

  • Developed by M1llerF

License

This mod is released under the MIT License.
You are free to modify, distribute, and expand upon it with appropriate attribution.


CHANGELOG

Changelog - REPO-DropLaser-LandingLaserMod

[1.1.5]

Fixed

  • Linked saga lifecycle spam logs to EnableLogging so cut-off/recovery chatter is suppressed when logging is disabled.
  • Linked ghost-preview warning chatter (including unavailable/no-renderer ghost cases) to EnableLogging so normal play no longer floods the log/chat.

[1.1.4]

Fixed

  • Reworked ghost preview instantiation to use a visual-only ghost hierarchy instead of cloning full gameplay objects.
  • Prevented runtime side effects from cloned object scripts/components during ghost creation (including Awake()-time null-reference crash paths such as enemy component initialization).
  • Added guard behavior to skip ghost preview safely when a held object has no supported renderers.

[1.1.3]

Added

  • The 3x3 bounds raycasting system was not great. Replaced with bottom-face downward casting.

Fixed

  • README should now display images and link to video on Thunderstore.

[1.1.2]

Added

  • None

Fixed

  • README should now display images and link to video on Thunderstore.

[1.1.1]

Added

  • New debug visualization architecture for cart hitbox inspection:
    • Dedicated beam debug service.
    • Cart hit-ray visualizer.
    • Cart part highlighter with forward/backward cycling.
  • New debug/runtime config options:
    • EnableDebugVisuals
    • EnableHitDiagnostics

Changed

  • Refactored beam debug logic out of the main beam runtime path for cleaner architecture.
  • Unified configured key parsing through a shared input helper.
  • Debug stop override now uses the configured DebugStopOverrideKey consistently.
  • EnableDebugVisuals now defaults to true.

Fixed

  • Fixed Harmony input prefix behavior so base grabber update is not skipped when toggling without a held object.
  • Consolidated duplicate ReleaseObject patch behavior into a single release flow.
  • Removed unused ghost projection subsystem that was not wired into runtime.
  • Wired previously unused ghost configs into runtime behavior:
    • UseCustomGhostColor
    • CustomGhostColor
    • GhostEmissionIntensity
  • Applied release hygiene cleanup (.gitignore newline and text normalization).

[1.1.0]

Added

  • Ghost preview landing mode with configurable behavior:
    • 0 = never
    • 1 = on cart
    • 2 = always
  • New ghost preview tuning options:
    • Custom ghost color support.
    • Ghost opacity setting.
    • Ghost emission intensity setting.
    • Ghost update frame interval setting.
  • Config migration support so existing user settings are preserved across schema changes/updates.
  • Cart state accessor helpers to improve landing/preview decision logic.

Changed

  • Reworked drop beam update flow for more stable ghost preview behavior.
  • Added vertical lock handling during preview updates.
  • Reduced default laser light intensity by 50% for a less overpowering glow.
  • Refactored controller lifecycle for cleaner activation/deactivation handling.

Fixed

  • Prevented the laser from rendering above objects during object intersections.
  • Fixed logger info output to correctly print the provided message.

[1.0.1]

Added

  • None

Fixed

  • Corrected Manifest

Notes

  • Fully compatible with BepInEx 5.4.

[1.0.0]

Added

  • Initial public release.
  • Adds a downward-pointing laser when holding objects.
  • Laser dynamically shows where the held object would land if dropped.
  • Configurable options for:
    • Enabling/disabling the laser system.
    • Customizing laser color (match grab beam or set your own).
    • Adjusting laser start width, end width, and max scan distance.
    • Adjusting laser glow light intensity and range.
    • Choosing a custom toggle key (default L).
    • Auto-enable laser when grabbing an object.
  • Multiplayer support: laser is local-only and behaves correctly in multiplayer sessions.
  • Scene transitions handled cleanly with no leftover objects or memory leaks.
  • Fully optimized for minimal CPU and GPU impact.

Fixed

  • No fixes required

Notes

  • Fully compatible with BepInEx 5.4.