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

# BL ADMIN

### Overview

BL ADMIN is a advanced staff menu for FiveM RP servers. It covers player moderation, reports with live chat, permissions, server tools, vehicles, developer utilities, and audit logging, all in one NUI with dark and light themes.

Built for QBCore, Qbox, and ESX with full auto detection. Inventory, weather sync, screenshots, and external logs are configurable from one setup.

#### Features

* Modern admin menu with dashboard, players, moderation, permissions, server, actions, logs, developer, and settings
* Dark and light theme with per player persistence
* Permission ranks: god, admin, and moderator (custom ranks supported)
* Per action permission gates via `Config.PermissionActions`
* Player panel with profile, inventory peek or native open, spectate, screenshot, teleport, bring, freeze, heal, revive, clothing, give item or money, warn, kick, and ban
* Self tools: noclip \[first or third person], godmode, invisibility, super jump, revive, max health or armor, and clear area
* Reports system with typed reports, claim and close workflow, staff and reporter chat, minimize bar, and reminder strips
* Warnings and bans with offline search, offline ban, and connect ban check
* Moderation reason templates \[warn, kick, and ban chips]
* Staff permissions UI to grant or remove ranks
* Job and gang management plus job statistics
* Server tools for weather, time, announcements, clear entities or vehicles, resource manager, and scheduled or instant restart
* Vehicles: spawn, repair, clean, delete, max upgrade, and tuning studio
* Developer tools for live coords, copy vector3 or vector4, saved locations, entity inspect \[aim or ID], and nearby entities
* Admin logs with filters, plus Discord, Fivemerr, and Fivemanage external logging
* Multi language UI strings \[en, de, es, fr]
* Console startup detection for framework and inventory

### Requirements

#### Required

* FXServer
* Lua 5.4
* bl\_lib

#### Optional

* qb-core, qbx\_core, or es\_extended
* ox\_inventory or qb-inventory
* screenshot-basic
* cd\_easytime, qb-weathersync, qbx\_weathersync, or Renewed-Weathersync
* illenium-appearance, qb-clothing

### Installation

#### Quick start

1. Add `bl_admin` to your server (folder name must stay `bl_admin`)
2. Import the SQL schema:

```
install/install.sql
```

3. Configure:

```
config/config.lua
```

Also review editable logging options:

```
server/logging.lua
```

4. Add to `server.cfg`:

```
ensure oxmysql
ensure bl_admin
```

Start after your framework and inventory resources.

5. Add your staff identifiers in `Config.AdminIdentifiers` \[use `/adminids` in game to copy a line]
6. Restart your server

{% hint style="info" %}
On start, the console prints detected systems \[framework, inventory, database]. If detection fails, set `Config.Framework` and `Config.Inventory` manually.
{% endhint %}

### Usage

Open the menu with the keybind or command. Players without a staff rank cannot open it. Reports are available to everyone when enabled.

#### Keybinds

Defaults:

* F10 opens the admin menu
* F9 toggles noclip
* H switches noclip view \[first or third person] while noclip is active
* Backspace exits spectate
* Left and Right arrows cycle spectate targets
* E acknowledges a warning notice, or opens or restores a report reminder or minimized chat
* ESC dismisses a reminder or minimized chat strip when applicable

Rebind menu and noclip keys in Settings, Key Bindings, FiveM, or change defaults in config.

#### Commands

Defaults:

* `/admin` opens the admin menu
* `/noclip` toggles noclip
* `/report` opens the report form
* `/adminids` shows your identifiers, detected rank, and a copyable config line

Edit command names:

```
Config.Commands = {
    AdminMenu = "admin",
    Noclip = "noclip",
    Report = "report",
}
```

### Menu tabs

#### Dashboard

Quick self actions, system health \[oxmysql, framework, inventory, screenshot-basic], and shortcuts.

#### Players

Online player list and player panel actions. Offline history search for notes, warnings, and bans.

#### Moderation

Reports queue, warnings, bans, offline ban, and issue warning by ID.

#### Permissions

Staff list and grant or remove permission ranks \[god rank required by default].

#### Server

Jobs, gangs, job statistics, resource manager, weather, time, announcements, clear tools, and restart controls.

#### Actions

Teleport locations or coords, vehicle spawn and tools, and tuning studio.

#### Logs

Filterable admin action logs. Stored log wipe requires god rank by default.

#### Developer

Live coordinates, vector copy, saved locations, and entity inspector.

#### Settings

Confirmation dialogs, report menu, join and leave notifications, and related client preferences. Theme toggle lives in the menu header.

### Staff permissions

Ranks are numeric in `Config.PermissionLevels`. Each action has a minimum rank in `Config.PermissionActions`.

Example:

```
Config.PermissionLevels = {
    ["god"] = 4,
    ["admin"] = 3,
    ["moderator"] = 2,
    ["user"] = 1,
}

Config.PermissionActions = {
    openMenu = "moderator",
    ban = "admin",
    banPermanent = "god",
    giveMoney = "admin",
    grantPermission = "god",
}
```

#### How rank is resolved

Highest match wins:

1. `Config.AdminIdentifiers` entry
2. Player `metadata.adminrank` \[only if `Config.TrustMetadataAdminRank = true]`
3. Optional job grade mapping when `Config.JobGradeStaffRanks = true` \[default **false]**
4. ESX group \[`superadmin`, `admin`, or `moderator]`

{% hint style="warning" %}
Keep `Config.JobGradeStaffRanks = false` unless you intentionally want high job grades \[police, ambulance, etc.] to receive admin menu access.
{% endhint %}

#### Identifier overrides

```
Config.AdminIdentifiers = {
    ["license2:xxxxxxxxxxxxxx"] = "god",
    ["license:xxxxxxxxxxxxxx"] = "admin",
    ["steam:110000xxxxxxxxx"] = "moderator",
}
```

Use `/adminids` to list identifiers and copy a ready config line.

### Reports and chat

Players submit typed reports \[`Config.ReportTypes]`. Staff claim tickets, chat with the reporter, teleport from chat, jump to Moderation, or close the ticket.

#### Report reminders

* Staff reminder strip for pending reports: **\[E]** opens the mini queue
* Reporter reminders for staff replies: **\[E]** opens chat
* Minimized chat bar: **\[E]** restore, **ESC** exit \[no mouse cursor while minimized]
* Cooldown and length limits via `Config.ReportLimits`
* Reminder persistence via `Config.ReportReminder`

```
Config.ReportReminder = {
    enabled = true,
    autoHideSeconds = nil,
    persistReporterReminders = true,
    persistMaxAgeHours = 168,
}
```

### Moderation tools

#### Warn, kick, and ban

Reason dialogs support quick chips from:

```
Config.ModerationReasonTemplates
```

Warn threshold can prompt a ban suggestion:

```
Config.WarnBanSuggest = {
    Enabled = true,
    Threshold = 3,
    WithinDays = 30,
}
```

#### Connect ban check

```
Config.BanCheckOnConnect = true
```

Optional custom ban screen: `Config.BanConnectScreen`.

#### Warning notice

Players see an on screen warning card. Default requires **\[E]** to acknowledge.

```
Config.WarningNotice = {
    enabled = true,
    requireAck = true,
    autoHideSeconds = 12,
}
```

### Noclip and spectate

```
Config.OpenMenuKey = "F10"
Config.NoclipKey = "F9"
Config.NoclipView = "third"
Config.NoclipViewSwitchKey = "H"
Config.NoclipHud = true
Config.SpectateHud = true
Config.SpectateExitKey = "Backspace"
```

#### Noclip options

Fine-tune movement in `Config.Noclip`. Active modes can show HUD chips when `Config.AdminModeChips = true`.

### Inventory

```
Config.Inventory = "auto"
Config.OpenPlayerInventoryNative = true
```

Options: `"auto"`, `"ox_inventory"`, `"qb-inventory"`

Player panel **View Inventory** opens native ox or qb inventory when supported and Wipe inventory is permission gated \[`wipeInventory]`.

### Weather and time

Routes through a detected sync resource when available:

* cd\_easytime
* qb-weathersync
* qbx\_weathersync
* Renewed-Weathersync

Falls back to a native client override if none are running.

### Screenshots and logging

#### Screenshots

```
Config.Screenshot
```

Requires `screenshot-basic` for capture. Upload targets are configured for Discord and/or Fivemanage.

#### External logging

Edited in:

```
server/logging.lua
```

Supports Discord webhooks, Fivemerr, and Fivemanage. Leave providers disabled until you add keys or URLs.

### Configuration

Main config file:

```
config/config.lua
```

#### Includes

* Framework and inventory auto detection
* Locale
* Menu, noclip, and spectate keys and HUDs
* Permission levels and per action gates
* Admin identifier overrides
* Report types, limits, and reminders
* Warn, kick, and ban reason templates
* Ban connect behaviour
* Clear radius defaults
* Protected resources \[cannot stop or restart]
* Teleport locations, weather list, jobs, and gangs
* Screenshot and announcement banners
* Clothing resource hooks
* Commands

#### Example settings

```
Config.Framework = "auto"
Config.Inventory = "auto"
Config.Locale = "en"
Config.OpenMenuKey = "F10"
Config.NoclipKey = "F9"
Config.BanCheckOnConnect = true
Config.JobGradeStaffRanks = false
```

### Database

Import once \[resource may also auto create tables]:

```
install/install.sql
```

#### Tables

* `bl_admin_bans`
* `bl_admin_warnings`
* `bl_admin_reports`
* `bl_admin_logs`
* `bl_admin_notes`

### Version check

Runs automatically on server start. Compares the installed `fxmanifest` version against the BL SCRIPTS manifest and prints whether an update is available.

### Files Structure

* `config/config.lua`: main configuration
* `client/client.lua`: NUI focus, noclip, spectate, inspect, menu bridge
* `server/server.lua`: permissions, moderation, reports, players, server tools
* `server/logging.lua`: Discord, Fivemerr, Fivemanage
* `server/version.lua`: version check
* `server/console.lua`: formatted console output
* `server/models.lua`: entity model name lookup
* `html/`: NUI (menu, reports, chat, dialogs)
* `locales/`: UI translations
* `data/`: ped, vehicle, and object name lists for inspect
* `install/install.sql`: database schema

### Troubleshooting

* Menu will not open: run `/adminids` and confirm your identifier is in `Config.AdminIdentifiers` or you have a staff rank
* Wrong framework: check console detection, then set `Config.Framework` to `"qbox"`, `"qb"`, or `"esx"`
* Reports or bans fail: ensure oxmysql is started and `install/install.sql` was imported
* Screenshots fail: ensure `screenshot-basic` is running and `Config.Screenshot` is configured
* Weather or time not syncing: start a supported weathersync resource or rely on native fallback
* Staff with high job grades can open menu: set `Config.JobGradeStaffRanks = false`
* Minimized report chat still shows mouse: ensure you are on the latest build; minimized chat is keyboard only \[**E** or **ESC]**

{% hint style="warning" %}
All privileged actions are validated server side. Do not expose `server/server.lua` edits that skip permission checks. Keep webhook and API keys only in `server/logging.lua` or config. Never commit real secrets to public repos.
{% endhint %}

### Purchase info

This script is paid. To buy it, please visit our official store.

### Support

Contact our support team on Discord for updates, help, or customization options.
