> For the complete documentation index, see [llms.txt](https://docs.rainmad.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rainmad.com/resources/3d-interactive-minigames-bundle.md).

# 3D-Interactive Minigames Bundle

A library of 33 minigames and a hack-point placer, in one resource. Call a minigame from any other script for heists, robberies, jobs, tuning, chop shops, whatever you need. Or drop a scanner, laptop, tablet or monitor into the world with `/create_minigame` and let players walk up and press E.

The same minigame can run fullscreen, on the player's own tablet, on a wall-mounted tablet, on a closed laptop that opens on E, or on a world monitor where the cam slides in and paints the game onto the screen. Everything is persisted to a plain Lua file, so a server restart keeps every hack point where you put it.

***

### Features

**33 minigames, one export each.** Untangle, wire matching, port scanner, DNA splicer, spinner lock, vault combination, sliding puzzle, cipher wheel, and so on. Each one returns `true` on success and `false` on cancel or fail, so wiring it into your own job takes a single line.

**Three placements per minigame.** `screen` for a classic fullscreen overlay, `prop` to pop the player's tablet out with the minigame drawn on it, and `monitor` to paint the minigame onto a world prop and slide the camera in. The placement is chosen at the callsite, so the same minigame reuses across all three surfaces.

**Six hack types.** Fingerprint scanner with USB and phone sync-scene, laptop sync-scene on a wall panel, hand-tablet dock, wall-mounted tablet, closed laptop that opens on E, and a plain world monitor. Every type is a preset in `cfg.lua`, so adding a seventh takes an entry, not a code change.

**World placement gizmo.** `/create_minigame` spawns the prop in front of you, opens a three.js gizmo so you can slide, spin and dial it in with the mouse, then writes the finished point to `data/saved_minigames.lua`. Restart-safe, network-spawned for shared props like monitors and laptops.

**DUI keyboard forwarding.** Tablets and monitors get real keyboard input routed through raw VK codes into the React side, so a minigame that reads letters works the same whether it renders fullscreen or on a prop.

**onSuccess and onFail hooks.** Global defaults in `cfg.lua`, per-point overrides in the saved list. Fire a client event, a server event, an inline function, or all three, with any arg list.

**Admin auth for placement.** ACE, an identifier whitelist, or both. Discord, license, license2, steam, fivem or ip identifiers all work, so an ACE-free Discord-role setup is a two-line config change.

**Open where it matters.** `cfg.lua`, `data/saved_minigames.lua` and `client/editable_client.lua` sit outside escrow. Rewrite notifications, swap the interact key, add your own hack type, or point the auto-save at a different file, without touching protected code.

***

### Dependencies

`ox_lib`, `rm_stream`, and the shipped `rm_tablet_02` stream asset. Full version notes on the Installation page.

***

### Next steps

* [Installation](https://docs.rainmad.com/resources/3d-interactive-minigames-bundle/installation)
* [Configuration](https://docs.rainmad.com/resources/3d-interactive-minigames-bundle/configuration)
* [Hack Types](https://docs.rainmad.com/resources/3d-interactive-minigames-bundle/configuration/hack-types)
* [Minigames](https://docs.rainmad.com/resources/3d-interactive-minigames-bundle/systems/minigames)

Trouble getting a minigame to fire, tablet not showing up, monitor cam behind the wall? Head to [Troubleshooting](https://docs.rainmad.com/resources/3d-interactive-minigames-bundle/reference/troubleshooting).
