Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
ObjectDropLaser
Tired of missing the cart? Shoot a laser to see where objects will drop!
CHANGELOG
Changelog - REPO-DropLaser-LandingLaserMod
[1.1.5]
Fixed
- Linked saga lifecycle spam logs to
EnableLoggingso cut-off/recovery chatter is suppressed when logging is disabled. - Linked ghost-preview warning chatter (including unavailable/no-renderer ghost cases) to
EnableLoggingso 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:
EnableDebugVisualsEnableHitDiagnostics
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
DebugStopOverrideKeyconsistently. EnableDebugVisualsnow defaults totrue.
Fixed
- Fixed Harmony input prefix behavior so base grabber update is not skipped when toggling without a held object.
- Consolidated duplicate
ReleaseObjectpatch 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:
UseCustomGhostColorCustomGhostColorGhostEmissionIntensity
- Applied release hygiene cleanup (
.gitignorenewline and text normalization).
[1.1.0]
Added
- Ghost preview landing mode with configurable behavior:
0 = never1 = on cart2 = 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.