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

# Installation

How to install and set up Complete HUD on your server.

### **How to download the script**

To download the asset, you need to have completed the purchase using your own Cfx.re account.

Once your purchase is confirmed, the asset appears in your Keymaster, inside the **Cfx.re Portal** ([portal.cfx.re](https://portal.cfx.re)). From there you can download it and install it by following the steps below.

{% hint style="info" %} <mark style="color:blue;">**If the asset was bought through a different account, you can transfer it via the Keymaster transfer system**</mark>
{% endhint %}

{% hint style="danger" %} <mark style="color:red;">**NOTE: Do not rename the downloaded folder. It must stay complete\_hud, otherwise the pause menu, the settings menu and the exports won't work**</mark>
{% endhint %}

### **Dependencies**

{% hint style="warning" %} <mark style="color:orange;">**Run the script on one of the latest server artifacts and keep ox\_lib up to date**</mark>
{% endhint %}

{% hint style="danger" %} <mark style="color:red;">**This asset relies on certain essential dependencies to function correctly. If these dependencies are not installed, the asset may start, but you could encounter errors or warnings in the command console**</mark>
{% endhint %}

| Script                                                                                                                                                      | Download                                                                                                                                                                        |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ox\_lib**                                                                                                                                                 | <https://github.com/overextended/ox_lib/releases>                                                                                                                               |
| <p><strong>Framework</strong><br><em>Optional: ESX, QBCore or Qbox are detected automatically, any other framework uses the custom files</em></p>           | [ESX](https://github.com/esx-framework/esx_core) / [QBCore](https://github.com/qbcore-framework/qb-core) / [Qbox](https://github.com/Qbox-project/qbx_core)                     |
| <p><strong>pma-voice OR mumble-voip OR tokovoip\_script</strong><br><em>Optional: needed for the voice and radio indicator</em></p>                         | [pma-voice](https://github.com/AvarianKnight/pma-voice) / [mumble-voip](https://github.com/FrazzIe/mumble-voip-fivem) / [TokoVOIP](https://github.com/Itokoyamato/TokoVOIP_TS3) |
| <p><strong>esx\_status</strong><br><em>Optional: ESX only, needed for hunger and thirst</em></p>                                                            | <https://github.com/esx-framework/esx_status>                                                                                                                                   |
| <p><strong>nearest-postal</strong><br><em>Optional: shows the postal code next to the street</em></p>                                                       | <https://github.com/DevBlocky/nearest-postal>                                                                                                                                   |
| <p><strong>LegacyFuel</strong><br><em>Optional: used automatically for the fuel gauge when started, any other fuel script can be set in the config</em></p> | <https://github.com/InZidiuZ/LegacyFuel>                                                                                                                                        |

{% hint style="danger" %} <mark style="color:red;">**Complete HUD already includes a speedometer. If Complete Speedometer (complete\_speedometer) is installed, remove it or stop it, otherwise you will see two speedometers**</mark>
{% endhint %}

### **Correct Asset Placement**

{% hint style="danger" %} <mark style="color:red;">**Properly placing the assets is crucial to avoid errors, FOLLOW THIS ORDER**</mark>
{% endhint %}

To ensure the asset runs smoothly, configure your server.cfg with the sequence specified below:

```lua
# at the bottom of the file and after all the dependencies add

ensure ox_lib

# your framework (es_extended / qb-core / qbx_core) and its resources
# your voice resource (pma-voice / mumble-voip / tokovoip_script)

# optional
ensure nearest-postal
ensure LegacyFuel

ensure complete_hud
```

The HUD does not need any database table or item.

### **Voice / radio configuration**

Set `Config.Radio` in `complete_hud/config.lua` to the exact name of the voice resource you use:

| Voice resource | Value               |
| -------------- | ------------------- |
| pma-voice      | `'pma-voice'`       |
| mumble-voip    | `'mumble-voip'`     |
| TokoVOIP       | `'tokovoip_script'` |

The radio indicator appears when the player joins a radio channel. With pma-voice and mumble-voip it also lists the players in the channel (pma-voice highlights who is talking). `Config.You` is the text added after your own name in that list.

### **Minimap**

The HUD replaces the minimap mask with its own texture (shipped in `complete_hud/stream`) and places the minimap inside its own frame. Players can move and resize it from the settings menu (**Edit and resize**) and choose between **Always visible** and **Only inside vehicles**.

For the minimap to line up with the frame, every player should have, in **FiveM Settings > Screen**:

* **Extended radar** set to **No**
* **Safezone size** set to the default value

See [Common errors](/complete-scripts/scripts/complete-hud/common-errors.md) if the minimap looks too big or out of its frame.

### **Framework files**

Everything the HUD reads from your framework (name, money, job, illegal job / gang, hunger, thirst, pause menu data) lives in editable files:

* `complete_hud/framework/esx/client.lua` and `server.lua`
* `complete_hud/framework/qbcore/client.lua` and `server.lua` (used for QBCore and Qbox)
* `complete_hud/framework/custom/client.lua` and `server.lua` (used when neither ESX nor QBCore is started)

If your server stores money, jobs or gangs in a different place, edit the matching function (`GetBank`, `GetCash`, `GetDirtyMoney`, `GetJob`, `GetJobGrade`, `GetIllegalJob`, `GetIllegalJobGrade`...). Functions must return plain values: the HUD adds the currency by itself.

### **Language**

The settings menu, pause menu and editor are translated into English (`en`), Italian (`it`), French (`fr`), German (`de`) and Spanish (`es`). Choose the language with `window.CompleteHUD.Locale` in `complete_hud/web/dist/config.js`.

Translations live in `complete_hud/web/dist/locales/`. To add a new language:

1. Copy `en.js` to `web/dist/locales/<your-lang>.js`
2. Rename `Locales.en` to `Locales.<your-lang>` inside the file
3. Translate the values (never the keys)
4. Add `<script src="./locales/<your-lang>.js"></script>` in `web/dist/index.html`, right below the other locale scripts
5. Set `window.CompleteHUD.Locale = '<your-lang>'` in `web/dist/config.js`

Any missing text falls back to English.

### Configure the script

As for the last step, open the config files and modify them as you like. Please make sure to have a minimum of coding skills before editing those files: a single wrong character won't let the code start. Restart the resource after every change.

* Main config file: `complete_hud/config.lua` (commands, keys, radio, pause menu, stress, seatbelt, fuel, speed limits)
* Interface config: `complete_hud/web/dist/config.js` (language, key menu, pause menu announcements, popups, social links and cards)
* Default HUD layout: `complete_hud/web/dist/hud-config.js` (default visibility, style and colors of every component, and the switch to disable components)
* Translations: `complete_hud/web/dist/locales/`
* Server logo: put your image in `complete_hud/web/dist/img/` and set its file name in `Config.LogoImgName`
* Framework functions: `complete_hud/framework/<your framework>/client.lua` and `server.lua`

All the options are explained on the [Config](/complete-scripts/scripts/complete-hud/config.md) page.
