> 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/reference/troubleshooting.md).

# Troubleshooting

***

### `/create_minigame` says "No permission"

The command is admin-gated. Either grant yourself the ACE:

```cfg
add_ace identifier.discord:123456789012345678 command.create_minigame allow
```

Or add your identifier to `cfg.hacks.adminWhitelist`. Discord, license, steam and fivem all work. See Configuration.

For local testing you can also set both to empty:

```lua
cfg.hacks.adminAce       = ''
cfg.hacks.adminWhitelist = {}
```

Every command opens up. Never do this on a live server.

***

### Nothing happens when I press E

Work through these in order:

1. **Is the point live?** Restart the resource and watch the console for the load count. If your hand-written entry in `data/saved_minigames.lua` is malformed, it is silently skipped.
2. **Are you inside the radius?** `cfg.hacks.pointRadius` defaults to 1.5 metres. Bump it while debugging.
3. **Is the model streamed?** Networked types (`laptop_open`, `monitor`) need the player near the spawn coords for the entity handle to resolve. Check the F8 console for `waiting for entity` warnings.
4. **Is another script eating the key?** `cfg.hacks.pressKey` is `E` (control 38) by default. If a menu script grabs `E` first, you never get the input.

***

### The minigame does not open

Almost always the React bundle. Rebuild it:

```
cd web
npm run build
```

The bundle lands in `build/`. `fxmanifest.lua` points at `build/index.html`, so a stale bundle means a blank overlay.

If the bundle is fresh and the overlay is still blank, watch the F8 console for red errors. Missing minigame names come through as:

```
[rm_3dminigames] unknown minigame: myGame
```

Check the `Minigames` map in `web/src/App.tsx`.

***

### Prop mode: the tablet is invisible

Two possibilities.

**The stream asset is missing.** Confirm `stream/rm_tablet_02.ydr` and `stream/rm_tablet_02.ytyp` are both present. Restart the resource and watch the console for `couldn't stream asset` warnings.

**The tablet is drawn behind the player's arm.** The default calibration in `cfg.propPresets.tablet` is dialled in for `rm_tablet_02`. If you swapped the model, adjust `bbOffset`, `bbScaleX/Y`, and `attachOffset` in small steps.

***

### Monitor mode: the camera is inside the wall

Almost always the wrong `camOffsetY` sign. Y is local-forward on the prop. Negative Y puts the cam **in front of** the screen, which is what you want. Positive Y puts the cam behind. Flip the sign and try again.

If the framing is off centre, tweak `camOffsetX` and `camOffsetZ` after you have the depth right. `renderMode = 'quad'` presets also need `bbOffset` and `bbScaleX/Y` calibrated to the prop's local origin.

***

### Monitor mode: every same-model prop in the map shows the minigame

Expected. `AddReplaceTexture` is model-global. If only one instance is placed per area this is fine.

If you need many identical monitors in the same scene, switch the type to `renderMode = 'quad'` in its monitor preset. The quad renderer draws onto that one entity only, so the others stay untouched. See the shipped `tablet_wall` type for a working example.

***

### Backspace does not cancel

Two known cases.

**A DUI input has focus.** Prop and monitor placements forward keyboard input to the DUI. Once a text field takes focus, Backspace edits the field instead of cancelling. That is on purpose. Click outside the input or press `Esc` first.

**The minigame swallows the key.** Some minigames rebind Backspace for their own use (delete character, undo). In that case the minigame's own quit button is the way out.

***

### Sync-scene props (USB, phone, laptop) do not spawn

The scene tables in `cfg.hacks.types.fingerprint` and `cfg.hacks.types.laptop` reference vanilla model hashes. If a mod removes them the scene fails silently. Verify with:

```
/spawnobject prop_phone_ing
```

If the object does not spawn, that model is missing from the client's game files.

***

### `/create_minigame` saves the point but a restart forgets it

Check the console for auto-save errors. If `cfg.hacks.autoSave = false`, persistence is off by design. Otherwise the server needs write access to `data/saved_minigames.lua`, which txAdmin blocks in some read-only setups.

Also check the file itself is valid Lua. A parse error at load time skips the whole file, so a single trailing comma from a hand-edit can lose every saved point.

***

### Networked laptop opens twice / anim glitches

This was a known issue in early builds and is fixed. The symptom was the open anim replaying every time the state bag fired. If you still see it, you are on an old build, update the resource.

If you customised `applyStaticAnim` in `client/fingerprints.lua`, verify that the "already playing" fast-path is still in place. Removing it brings the glitch back.

***

### Reporting a bug

Include:

* The hack type and minigame name involved.
* Whether it reproduces with `/test_minigame <placement> <name>` outside a hack point.
* Console output from both F8 and the server console around the failure.
* If prop or monitor mode, whether other minigames work in the same mode.

That output usually pins the cause on the first read.
