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

# nn\_loading

A premium loading screen for your server. From the moment a player clicks *Connect* until they spawn, they see your server name and description, your socials, your rules, your latest patch notes, your admin team and a music player, over a full-screen image or video — with a loading ring that follows the **real** FiveM progress, and a **Keyboard** button that opens your keybinds on a keyboard drawn on screen.

None of it is locked away in code. An admin types `/loadingadmin` in game, a visual editor opens with a live preview, and every text, colour, image, rule, patch note, staff member, track and keybind changes without editing a file or restarting anything.

{% hint style="info" %}
**At a glance** — Resource: `nn_loading` · Author: NANO Scripts · Version: 2.0.0 · Frameworks: QBox, QBCore, ESX (via the built-in Community Bridge) and Standalone · No dependencies, no database, no SQL.
{% endhint %}

#### Features

| Feature                  | What it does                                                                                    |
| ------------------------ | ----------------------------------------------------------------------------------------------- |
| **In-game admin editor** | `/loadingadmin` opens a 19-section editor with live preview, undo / redo and presets.           |
| **Real progress**        | A loading ring driven by the real FiveM loading events, with the current step in a status log.  |
| **Server news & rules**  | Patch notes with image, date and version, and rule cards players read while they wait.          |
| **Admin team**           | Staff cards with avatar, role and a colour per member.                                          |
| **Keybinds window**      | A real on-screen keyboard: bound keys light up, hover one to read its action.                   |
| **Music player**         | Playlist with cover art, seek bar, volume and mute.                                             |
| **Socials**              | Discord, Telegram, YouTube, TikTok — one click copies the link.                                 |
| **Player card**          | Name, cash, bank, job and grade pulled from your framework.                                     |
| **Backgrounds**          | Image or video, with overlay, blur, brightness, contrast, saturation, grain and vignette.       |
| **Three layouts**        | The main design, a broadcast-style HUD and a classic side rail.                                 |
| **Every resolution**     | The layout holds at 1080p, 1440p and 4K, and is ultrawide friendly.                             |
| **Lists that scale**     | A 4th rule, a 3rd patch note or a 10th admin scroll inside their box — the layout never breaks. |
| **Translations**         | Every label on the screen is a text you can change.                                             |

#### What you will need

| Requirement                 | Required | Why                                                                                                                             |
| --------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------- |
| **A recent FiveM artifact** | Yes      | The resource runs on Lua 5.4.                                                                                                   |
| **QBox, QBCore or ESX**     | No       | Fills the player card and tells the screen when the player is loaded. Without one, nn\_loading runs standalone on placeholders. |
| **Anything else**           | No       | No dependency to install, no database, no SQL file to import.                                                                   |

{% hint style="warning" %}
The demo images, names and music cover that ship with the resource are **placeholders**. Replace them with content you own before you go live.
{% endhint %}

#### How it works

1. The player connects. The screen opens instantly with the defaults from `config.lua`.
2. The server sends the **effective configuration** — `config.lua` merged with the overrides your admins saved in the editor. The screen updates without a flicker.
3. Player data (name, money, job) and the online count arrive from your framework through the Community Bridge, and refresh every few seconds.
4. When the framework reports the player as loaded — or on spawn, or after the failsafe timer — the screen fades out and shuts itself down. No client thread survives it.

#### Built to be trusted

A loading screen with an editor is a door into your server, so nn\_loading locks it properly. Access to the editor is checked **server-side on every action**: ACE permission, identifier whitelist or framework group. Every value saved from the editor is validated against a strict whitelist — unknown keys dropped, texts capped, numbers clamped, paths and URLs pattern-checked — and no code is ever executed from client data. Every save is written to an audit log, and the saved configuration is kept in two places so it survives a restart even if the resource folder is not writable.

#### Common questions

<details>

<summary>Do I need a framework?</summary>

No. Without one nn\_loading runs standalone: the screen is identical, and the player card shows placeholders instead of live money and job.

</details>

<details>

<summary>Do I need to import an SQL file?</summary>

No. There is no database at all — what your admins save is written to `data/loading_config.json` inside the resource.

</details>

<details>

<summary>Do my admins have to edit files?</summary>

No. `/loadingadmin` covers the whole screen. `config.lua` only holds the defaults a fresh install starts from.

</details>

<details>

<summary>Do editor changes survive a restart?</summary>

Yes. They are saved to `data/loading_config.json` and mirrored in the server KVP store, so they come back even if the `data/` folder is not writable.

</details>

<details>

<summary>Does it work on multi-character servers?</summary>

Yes. Keep `Config.WaitForFramework = false` (the default) so the screen closes on spawn and your character selection takes over.

</details>

<details>

<summary>Can I use a video background?</summary>

Yes. Set `Config.Background.type = 'video'` and point `source` at an `.mp4` or `.webm` in `web/assets/videos/`.

</details>

#### What's next

**Installation** → **Configuration** → **Admin Editor**.

#### Support

* **Discord:** <https://discord.gg/nanoscripts>
