Open Sesame: interactKit
interactKit 1.3.1: everything a player can walk up to and use, for any game, multiplayer from the ground up. Press Play to walk the gallery and try every piece; install interactKit.package into your own world to build with it.
What the gallery shows
- Interactable: put it on anything. A prompt appears when the player is near it or looking at it, with a range, a quick press or a hold with a fill-up. One interact button on every device: E, the gamepad's west face button (X on Xbox, square on PlayStation, Y on Switch), or the on-screen Interact button on a phone.
- TriggerVolume: an invisible zone that reports players entering, leaving and staying, and can open what it is wired to.
- 7 doors: hinged, double, sliding, garage roll-up, castle portcullis, secret bookcase, sci-fi airlock. An open door is a doorway you can walk through.
- 7 switches: lever, push button, pressure plate, keypad, valve wheel, crank, pull chain.
- 3 locks: key, coloured keycards (a red card opens red doors, not blue ones), combination dial.
- 4 containers: chest, crate, locker, barrel, spilling coins or gems the first time they open.
- Items: keys, coloured keycards, coins and gems you pick up by walking over them, with a small "what you carry" strip on screen.
- Barricade: hold to board it up, hold again to tear it down.
- 5 prompt styles: button glyph for your device, radial hold ring, world tooltip, minimal dot, pixel art.
- 3 looks: old wood and iron, sci-fi metal, cartoon.
How to install
- Open your world in the editor and search ZeroMind for interactKit.
- Install
interactKit.package(or runzero zeromind installAsset f7af5474-4cb3-48d3-96e6-15f897ccce4fin the engine shell). It lands at/source/interactKit.packageand brings controlsKit (button glyphs) and juiceKit (open and close feedback) with it. - Require it and spawn what you need, as in the quick start below.
One way of working
kind picks the variant, look picks the style, targets wires a lever to a door with no code, and one field (InteractSettings.promptStyle) sets the prompt style for the whole world. Swapping a sliding door for a portcullis is one field. Interact.catalog() lists every kind with tags.
Multiplayer
The owner of each thing decides every change, so everyone sees the same door, lever and chest. Two players grabbing the same handle at once flip it once, a chest opened by two players at once opens once, and each coin goes to one player. Keys belong to the player who picked them up: a locked door opens for the player holding its key and refuses the one who is not. A taken item stays taken and costs next to nothing per frame.
Quick start
local Interact = require("~interactKit.api")
Interact.spawn("door.hinged", { 0, 0, 6 }, { name = "FrontDoor", synced = true, yaw = 180, look = "wood", fields = { wall = 1.5 } })
Interact.spawn("switch.lever", { 2.6, 0, 5 }, { synced = true, yaw = 180, look = "wood", fields = { targets = { "FrontDoor" } } })
Interact.spawn("container.chest", { -3, 0, 6 }, { synced = true, yaw = 180, look = "cartoon",
fields = { loot = "coin", lootCount = 8 }, lock = { kind = "key" } })
Interact.spawnKey({ -3, 0, 3.5 })
The full README, API reference and behaviour notes ship inside the package, with 85 tests.
Comments · 0
Open discussion, no rating attached. Ask questions, swap notes, follow threads.