

Wondrous gizmos and gadgets for the restless mind.
A collection of wacky scripts I've written for projects I'm involved in, most prominently Bozoros and PlayZone.
Everything's kept fairly abstract so it can be generally applied for many use cases. Feel free to add this to your project to play around with, if anything catches your eye!
NOTE: Expect a few breaking changes here and there (at least while everything is being polished), should you choose to add this as a dependency.
NOTE 2: This is not intended to be a JLL replacement, though there are a couple overlapping features. It should be fine to use both in the same project without issues, but I'd still recommend opting for JLL's implementations for a more tried and tested approach.
A proper write-up and documentation for all components and their intended usage is planned, but here's a quick rundown of some of the more interesting ones:
Jump), or they are detached through some other means. Used for Bozoros' balloon rides and PlayZone's slides.Jump, Move, Crouch), and invokes an event callback if so. A cooldown can be applied so as to not trigger continuously, which can even be used for things like fake custom footstep sound effects. Used for PlayZone's ball pit movement effects.InteractTrigger. Used for PlayZone's slides.Collider instances belonging to objects of a certain type.
MeshRenderer and/or Collider instances.MapHazards layer inside the region, with an additional function to despawn found hazards.Landmine.SpawnExplosion using DetectRegion, which performs non-allocating searches inside a Collider (instead of a radius), contains some additional customizability for explosion properties, and has an adjustable collision mask to define which layers should count as 'cover' from the explosion.GrabbableObject but with a bunch of event callbacks that can mimic an inheriting class (e.g. SoccerBallProp) without actually inheriting it, sacrificing polymorphism for modularity. All these components can be mixed and matched to create items with multiple properties (e.g. ItemKickable + ItemThrowable to make a throwable soccer ball).
NoisemakerProp, with pretty much the same properties save for a few additional ones.SoccerBallProp, with some added customizability for kick trajectory parameters, event callbacks, and an adjustable collision mask for objects it can land on top of.StunGrenadeItem, with some added customizability for throw trajectory parameters, event callbacks, and an adjustable collision mask for objects it can land on top of.BeltBagItem's wearable properties, specifically 'attaching' to either the player's head, belt, or a custom bone when pocketed.Shovel, with added customizability for its properties (e.g. hit cooldown or hit speed), event callbacks for every stage of the 'whacking' process, and adjustable collision masks for hittable objects, with the added bonus of not allocating GC on every swing.InteractTrigger to fulfill various purposes.
InteractTrigger for a ladder with adjustable climbing speed.DoorLock implementation that allows custom tooltips that don't get overwritten when using a key. Doesn't inherit from InteractTrigger but is used alongside them for locked doors.InteractTrigger that can spawn a prefab or run an event, but for a fee.InteractTrigger that acts like a Cruiser seat, but requiring a specific button press to get back up.
PlayerSeater for functionally the same effect, without the vanilla bug where two players get softlocked if they sit down at the same time.InteractTrigger that can transmit a player's voice over the Walkie while held; though only for one-way communication.ScriptableEvent to create an arbitrary 'global' event. This event can be raised from within any other event callback, to trigger something to happen on another, completely detached object.There's a bunch more scripts that are very niche, require further explanation to employ, or are in need of some refactoring (as they're a bit old now). If you're curious about any of them and/or have any questions regarding usage of a particular script, I've kept my commit messages fairly lengthy when adding new scripts, but also feel free to ping me in the Lethal Company Modding Discord server. Feedback, suggestions, and bug reports are also welcome!
