> For the complete documentation index, see [llms.txt](https://ccfivem.gitbook.io/ccfivem-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ccfivem.gitbook.io/ccfivem-docs/player-and-ui/pause-menu-cc_pause.md).

# Pause Menu (cc\_pause)

Your own ESC menu instead of the GTA pause menu, with a key overview of all CrankChaos scripts. Runs without a framework.

**Frameworks:** standalone – works with ESX Legacy, QBCore, QBox or without any framework.

## Features

* Resume, map, statistics, settings, key bindings, legend, appearance and quit
* Key overview including the keys of all cc\_\* scripts; warns about keys bound twice
* Map legend with blips that can be shown or hidden
* Quick settings (HUD on/off and km/h–mph with cc\_hud, voice range with pma-voice)
* Adjustable accent colour, layout, corners, size and background blur – per player
* Add your own server logo
* Switch back to the original GTA menu any time with `/classicpause`
* Map and GTA settings open the game's original pages – no modified game files
* No database: all player settings are stored as KVP on the player's own machine

{% hint style="info" %}
The code is protected by Cfx asset escrow. `config/config.lua`, `config/ui.lua` and `locales/*.json` stay editable.
{% endhint %}

## Works well with

* cc\_hud/00%20Overview\.md) – HUD toggle and speed unit in quick settings
* cc\_phone/00%20Overview\.md) – the menu does not open while the phone is open
* cc\_images%20(cc\_images)/00%20Overview\.md) – real map icons in the legend
* cc\_lib/00%20Overview\.md) – shared notifications
* pma-voice – show and cycle voice range

## Pages

* Installation
* Configuration
* API
* FAQ

## Installation

See also the general installation guide and dependencies.

### Requirements

None – no framework, no database.

| Resource    | Required | Notes                                                                |
| ----------- | -------- | -------------------------------------------------------------------- |
| `cc_lib`    | optional | shared notifications                                                 |
| `cc_hud`    | optional | HUD on/off and km/h–mph in quick settings; toggles missing otherwise |
| `cc_phone`  | optional | menu does not open while the phone is open                           |
| `pma-voice` | optional | show and cycle voice range; display missing otherwise                |
| `cc_images` | optional | real map icons in the legend                                         |

### 1. Copy the resource

Copy the folder to `resources/[crankchaos]/cc_pause`.

### 2. server.cfg

```cfg
ensure cc_lib           # optional
ensure cc_pause
```

### 3. Permissions and SQL

None. No ACE permissions and no SQL required.

### 4. Custom logo (optional)

Place your logo at `web/public/branding/logo.png` (path set in `Config.Pause.logo`). If it is missing, the menu shows the initials of `Config.Pause.serverName`.

### Framework notes

cc\_pause is framework-independent. No framework-specific steps.

## Configuration

| File                                 | Contents                                                            |
| ------------------------------------ | ------------------------------------------------------------------- |
| `config/config.lua`                  | menu, appearance, entries, legend, extra binds, quit message, hooks |
| `config/ui.lua`                      | language and interface                                              |
| `locales/de.json`, `locales/en.json` | translations                                                        |

Everything here is a server **suggestion**. What a player picks under "Appearance" is stored in their KVP and wins, unless they choose "Server default".

### Menu (`Config.Pause`)

```lua
Config.Pause = {
    serverName = 'CrankChaos',
    logo = 'branding/logo.png',
    position = 'center',   -- top-left, top, top-right, left, center, right, bottom-left, bottom, bottom-right
    scale = 1.0,           -- 0.85 … 1.25
    returnToMenu = true,   -- return to this menu after leaving the GTA map/settings
    allowClassic = true,   -- allow /classicpause
    escGraceMs = 350,      -- delay after another UI closed before ESC opens the menu
}
```

### Appearance

```lua
Config.Appearance = {
    accent = '',          -- hex colour, empty = Config.UI.primary
    layout = 'sidebar',   -- 'sidebar' or 'tabs'
    corners = 'rounded',  -- 'rounded' or 'sharp'
    textScale = 1.0,      -- 0.85 … 1.3
    blur = true,          -- game blur behind the menu
}
Config.AccentPresets = { '#8B5CF6', '#3B82F6', '#06B6D4', '#22C55E', '#EAB308', '#F97316', '#EF4444', '#EC4899' }
```

### Entries

```lua
Config.Entries = { map = true, stats = true, settings = true, keybinds = true, legend = true, appearance = true, quit = true }
```

`false` hides an entry. `Config.Native` names the original game pages opened for map, settings and key mapping (`enterMap = true` jumps straight into the map).

### Legend

```lua
Config.Legend = {
    maxSprite = 900,
    reapplyMs = 250,
    images = false,   -- load real icons from cc_images/blips/<sprite>.png
    names = {},       -- e.g. [408] = { label = 'Headquarters', group = 'jobs' }
}
```

Groups: `self`, `services`, `vehicles`, `shops`, `jobs`, `activities`, `property`, `places`.

{% hint style="warning" %}
Blip images are Rockstar graphics. Only use them on your own server with cc\_images%20(cc\_images)/00%20Overview\.md); without them a coloured dot with a group icon is shown.
{% endhint %}

### Extra key bindings

```lua
Config.ExtraBinds = {
    -- { command = 'e', label = 'Emote menu', resource = 'rpemotes' },
}
```

For key mappings the automatic scan cannot find (e.g. from third-party scripts).

### Quit and hooks

```lua
Config.QuitMessage = ''           -- empty = text from the locale file
Config.OnOpen = function() end    -- client, runs protected (pcall)
Config.OnClose = function() end
```

### Interface (`config/ui.lua`)

```lua
Config.UI = { theme = 'default', primary = '#8B5CF6', radius = 'md', scale = 1.0, locale = 'de', animations = true, blur = false, sounds = true }
```

Set `locale = 'en'` for English.

## Exports, Events & Commands

### Commands and keys

| Command / key                              | Who                          | Purpose                                            |
| ------------------------------------------ | ---------------------------- | -------------------------------------------------- |
| ESC                                        | everyone                     | open the pause menu                                |
| `/classicpause`                            | everyone (if `allowClassic`) | switch to the GTA pause menu for yourself and back |
| `/pausediag [binds\|legend]`               | everyone                     | diagnostics in the F8 console                      |
| `/pausereset [prefs\|legend\|career\|all]` | everyone                     | reset own settings                                 |

### Client exports

All exports are **client-side**.

| Export                                    | Parameters                                                             | Returns                                                                 |
| ----------------------------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `RegisterBind(command, label, resource?)` | key-mapping command, label (max. 80 chars), resource (default: caller) | `boolean` – shown under "Key Bindings", removed when the resource stops |
| `RegisterBlipName(sprite, label, group?)` | blip sprite, name (max. 60 chars), legend group                        | `boolean`                                                               |
| `IsOpen()`                                | –                                                                      | `boolean`                                                               |
| `IsClassic()`                             | –                                                                      | `boolean` – player uses the GTA menu                                    |
| `Open(tab?)`                              | start tab                                                              | `boolean` – `false` if blocked (classic mode, phone open …)             |
| `Close()`                                 | –                                                                      | –                                                                       |

```lua
exports.cc_pause:RegisterBind('+emote', 'Emote menu', 'rpemotes')
exports.cc_pause:RegisterBlipName(408, 'Headquarters', 'jobs')

if not exports.cc_pause:IsOpen() then
    -- open your own UI
end
```

### Client events

* `cc_pause:opened` – the menu was opened
* `cc_pause:closed` – the menu was closed

## FAQ & Troubleshooting

**Can players rebind keys in the menu?** No. Key bindings are only displayed; rebinding is done in the FiveM settings (Settings → Key Bindings → FiveM).

**A script's keys are missing from the overview.** Add them with `Config.ExtraBinds` or the `RegisterBind` export. Use `/pausediag binds` to check.

**Settings were lost on another PC.** Settings are stored per machine (KVP) and do not follow the player.

**A player wants the original GTA menu back.** `/classicpause` switches for that player (if `Config.Pause.allowClassic = true`).

**ESC closes my inventory and immediately opens the pause menu.** Increase `Config.Pause.escGraceMs`.

**The menu does not open.** It stays closed while the phone is open or when the player uses classic mode. `/pausereset all` resets the player's own settings.

**My logo does not show.** Check the file at `web/public/branding/logo.png` and `Config.Pause.logo`. Without a logo, the server name's initials are shown.

**Why do the map and GTA settings look like the original?** They are the game's original pages and are intentionally not restyled – no game files are modified.

Still stuck? See Support.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://ccfivem.gitbook.io/ccfivem-docs/player-and-ui/pause-menu-cc_pause.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
