> 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/features/players.md).

# Players

The roster, profiles, and everything you can do to a person.

## The roster

Everyone online: server id, name, role badge, ping, and their identifier. Sort by ping, name, id or role. Anyone with a role wears their badge colour, so you can see at a glance who on the server is staff.

## A profile

Click a name. One page with everything about that person:

|                |                                                                                 |
| -------------- | ------------------------------------------------------------------------------- |
| **Identity**   | Every identifier they hold — licence, Steam, Discord, FiveM — and their mugshot |
| **Characters** | Every character on the account, with job, money and when it was last played     |
| **Vehicles**   | Everything they own, with plate, model and where it is                          |
| **Inventory**  | What the character is carrying, live, editable                                  |
| **Money**      | Cash, bank and dirty money, with give / take / set                              |
| **History**    | Bans, kicks and warnings, oldest to newest                                      |
| **Discord**    | Whether they are in your guild, and what they are called there                  |

A profile also opens from an **identifier alone**, so somebody who has not been online for a year still has a page.

## Deleting a character

**Character Management** can remove a character permanently. It asks you to type the character’s name — not to click Yes — because the character you are about to destroy should be named by you, not by whichever row the pointer happened to be over.

{% hint style="danger" %}
**This cannot be undone.** The row is deleted from your database.
{% endhint %}

Bans and the audit log are **not** touched: the record of what somebody did stays after their character is gone.

If the player is in the world on that character, they are logged out and sent back to character selection **first**, and only then is the row deleted — otherwise the framework’s own save would write the character back a moment after it went.

{% code title="shared/config/players.lua" %}

```lua
Config.Characters = {
    -- anything else on YOUR server keyed by the character’s identifier
    deleteAlso = {
        -- { table = 'owned_vehicles', column = 'owner' },
    },
}
```

{% endcode %}

Every entry is checked against the live schema before it is used. A table or column that is not there is named in the console and skipped, never guessed at.

## What you can do

**Go to**, **Bring**, **Spectate**, **Freeze**, **Heal**, **Revive**, **Kill**, **Kick**, **Ban**, **Jail**, **Release**, **Give money**, **Edit inventory**, **Give a vehicle**, **Call to Discord**, **Warn**, **Message**, **Mute**, **Leave a note**.

Each is a separate permission, so "can heal" and "can kill" are genuinely different powers and a role can hold one without the other.

## Warnings

A warning with a reason, either typed or picked from a list. The player is told, the warning joins their record, and it counts.

{% code title="shared/config/moderation.lua" %}

```lua
Config.Warnings = {
    enabled = true,
    notify  = true,    -- false: a note on their record they never see
    kickAt  = 0,       -- 0 = never
    banAt   = 0,       -- 0 = never
    banDays = 7,
}
```

{% endcode %}

{% hint style="warning" %}
**`kickAt` and `banAt` are both off out of the box, on purpose.** A threshold that bans is a threshold that eventually bans somebody for a run of small things on a bad night. Turn them on knowing that.
{% endhint %}

## Staff notes

A private note on a person, for whoever is on next. The player never sees it and nothing happens to them — it is a note, not a punishment. It shows on their profile and in the mini menu.

## Messaging somebody

A line of text straight onto one player’s screen as a notification. No reply, no ticket, no thread — for "stop doing that" when opening a report would be heavier than the thing deserves.

## Voice mute

Mutes a player so nobody hears them, either for a set number of minutes or until somebody lifts it.

{% hint style="info" %}
**How this works is worth knowing.** `pma-voice` has no server-side mute — its mute is per listener — so the panel tells **every other client** to stop hearing that person, and owns the list itself. A player who joins while somebody is muted is told on the way in.

It covers proximity voice. It does **not** reach a radio or phone script that carries audio its own way. Those resources can ask, with `exports.mango_admin:IsVoiceMuted(source)`.
{% endhint %}

Another voice resource can be described in `Config.Voice.custom`, the same shape as the jail hooks.

## Everybody at once

**Heal all**, **Revive all**, **Freeze all**, **Unfreeze**, **Bring all**. Each asks first, because they are the quickest way to wreck a busy server by accident, and each is its own permission.

## Time played

A profile shows total time on the server and how many sessions, banked when they disconnect — so it survives restarts rather than resetting to whatever this session happens to be.

## Telling them what happened

Anything done **to** somebody puts a notification on their screen — healed, revived, frozen, teleported, jailed, released, inventory changed. Spectating never does. Kicks and bans never do either; they already end with a disconnect screen that says more.

Turn the lot off with `Config.Notifications.onAction = false`, or keep it and hide **who** did it with `showStaffName = false`.

## Yourself

Your own tools are separate permissions again: noclip, god mode, invisible, name tags, see-through-walls, set your own health and armour, and teleport to your waypoint.
