> For the complete documentation index, see [llms.txt](https://mango-5m.gitbook.io/mango5m-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mango-5m.gitbook.io/mango5m-docs/resources/mango-admin/reference/troubleshooting.md).

# Troubleshooting

The things that actually go wrong, and why.

<details>

<summary>The panel will not open</summary>

You need **one** of: the ace, a framework group in `Config.AllowedGroups`, an identifier in `Config.Owners`, or any role with any permission.

```cfg
add_ace group.admin mango_admin.access allow
```

If your staff roles come from Discord and the bot cannot be reached, those roles are not held. Keep yourself in `Config.Owners` — that is the one route nothing outside the config file can take away.

</details>

<details>

<summary>Tabs or buttons are missing</summary>

That is the permission system working. A tab you have no permission for is not in the sidebar, and a button whose action you cannot run is not drawn.

Open **Roles**, find the role, and check the node. Opening a page another way shows a card naming the exact permission it needs.

</details>

<details>

<summary>A module did not load / a script error about a nil global</summary>

You added a file and restarted without refreshing. FXServer caches which files a resource has when it **scans** it, so a plain restart ignores new ones.

```
refresh
restart mango_admin
```

The watchdog prints exactly this if one of its own modules is missing, and switches that feature off rather than failing.

</details>

<details>

<summary>Characters, vehicles or the economy are empty</summary>

Those read your framework's database and need `oxmysql` started plus a supported framework. The page says which of the two it could not find rather than showing an empty list that looks like an answer.

</details>

<details>

<summary>No mugshots, no honeypot evidence</summary>

`screenshot-basic` must be started **server side**. Check `Config.Mugshots.resource` matches what you actually run.

</details>

<details>

<summary>Somebody I banned is back on the server</summary>

Press **Identifiers** on the ban to see what it is enforced against. A ban made while the player was online carries their tokens, which is what normally catches a second license; a ban made while they were offline only carries the identifiers that were typed into it — and you can add more to it at any time.

If **both** the panel and the guard were stopped when they connected, nothing was running to refuse anybody. [Bans and Identifiers](/mango5m-docs/resources/mango-admin/configuration/bans-and-identifiers.md) covers the database option, and the drop-in enforcer that keeps bans working even then.

</details>

<details>

<summary>Deaths are not being logged</summary>

The panel detects deaths on its own client rather than trusting another resource's death event, so it does not need `baseevents`. If they stopped after the first one, the player was revived in place by an ambulance script without a `playerSpawned` — re-arming handles that, but make sure you are on the current version.

</details>

<details>

<summary>The watchdog restarted the panel when I did not want it to</summary>

That is its job: an unexpected stop is a stop it puts back. To work on the panel without it being restarted under you, set `Config.AutoRecovery = false` in the **guard’s** `config.lua` and restart the guard. Stops are then recorded and left alone. Turn it back on when you are done.

</details>

<details>

<summary>A server shutdown appears as an incident</summary>

It should not. Every resource stops when the server stops, and the guard reads that burst as a shutdown and stands aside — it also believes txAdmin's shutdown event immediately. If you see one, check `Config.Recovery.ShutdownResources` is not set higher than the number of resources your server actually stops.

</details>

<details>

<summary>An incident says Unknown, or txAdmin, and I know who did it</summary>

That is honest rather than broken. Only an action taken **through the panel** can name a player; a `/stop` typed in chat with the `command.stop` ace raises no event any resource can hook. See [Incidents and Who Stopped It](/mango5m-docs/resources/mango-admin/resource-protection/incidents-and-who-stopped-it.md).

</details>

<details>

<summary>Everything feels slow</summary>

Open **Performance**. The panel itself runs on a five-second tick that sends only what changed, and the Performance page polls once a second only while it is open. If the health score is low, the page names which part is dragging it down.

</details>
