# Gun Range

[**Buy Here**](https://codesign.pro/product/5382133)

**FiveM Forums Post**

[**YouTube Walkthrough Video**](https://www.youtube.com/watch?v=8xla3d0uKhM)

#### Translate

* [Click here to translate this page.](https://docs-codesign-pro.translate.goog/paid-scripts/gun-range?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp)
* [How do I change language?](https://gyazo.com/38606313ac9a7c290dc2c72b6793bde6)

## INSTALLATION GUIDE

### Step 0 - First Steps

{% hint style="warning" %}
**1.** Download your resource from [FiveM’s Keymaster](https://keymaster.fivem.net/asset-grants). &#x20;

**2.** Unzip the `cd_gunrange.zip` folder and place this folder in your server's resource folder.

**3.** Add the resource to your server start config (server.cfg): `ensure cd_gunrange`. If you are using a framework, it must be placed anywhere below your framework resource e.g., es\_extended, not above.

```
ensure es_extended
ensure cd_gunrange
```

{% endhint %}

### Step 1 - Configure Resource

{% hint style="warning" %}
You **MUST** read all configurable options inside the **`[cd_gunrange/configs/config.lua]`** file and configure them to suit your server's needs. Please read the [”commented out help text”](https://i.imgur.com/QCja8UZ.png) at the end of each line so you can understand what each config option does.

**The most important sections are the options under the** [**Framework** ](https://i.imgur.com/4ukCTZr.png)**and** [**Important** ](https://i.imgur.com/IVm7E8l.png)**sections at the top of the `config.lua`. Everything else is optional.**

> [**NEW: Auto Framework Detect!**](https://i.imgur.com/zNW8Kpg.png)
>
> Introducing our new 'auto\_detect' feature! It automatically identifies your framework and applies the appropriate default settings.
> {% endhint %}

### HOW TO USE

This resource is very easy to install and configure. Once the steps above are complete, the rest is simple:

1. You can move your target further away to get a higher score by using the [#Chat Command](#chat-commands).
2. Use the [#Chat Command](#chat-commands) to start your game and wait for the countdown to begin.
3. Try to aim for the head and centre body for the highest score. You can track where your bullets hit on the UI to the left of your screen.
4. The script will automatically recognise your weapon type and add your score to the scoreboard if high enough.

##

## INFORMATION

### Chat Commands

These chat commands can be renamed and/or disabled in the [Keys and Commands](https://i.imgur.com/bTvuXLZ.png) section of the `[configs/config.lua]`.

The exact usage for each command will be displayed in the chat suggestions when using the commands in-game.

| Command                    | Description                                  |
| -------------------------- | -------------------------------------------- |
| **`/gunrange_start`**      | Start a ranked shooting session.             |
| **`/gunrange_movetarget`** | Open the UI to move the target.              |
| **`/gunrange_scoreboard`** | Open the UI to view your servers top scores. |
| **`/gunrange_practice`**   | Start a unranked practise shooting session.  |

### Events

These events are completely optional; you can use them if needed.

{% tabs %}
{% tab title="client-side to client-side" %}
**Start a ranked shooting session**

{% code title="Ranked sessions adds your score to your servers scoreboard." %}

```lua
TriggerEvent('cd_gunrange:client:Start')
```

{% endcode %}

**Open the UI to move the target**

{% code title="Move the target closer or further away from you (further = higher score)." %}

```lua
TriggerEvent('cd_gunrange:client:MoveTarget')
```

{% endcode %}

**Open the UI to view your servers scoreboard**

{% code title="View the top scores from players in your server from all the different weapon categories." %}

```lua
TriggerEvent('cd_gunrange:client:ShowScoreBoard')
```

{% endcode %}

**Start an unranked practice shooting session**

{% code title="Practise sessions do not get added to the scoreboard." %}

```lua
TriggerEvent('cd_gunrange:client:PracticeMode')
```

{% endcode %}
{% endtab %}

{% tab title="server-side to client-side" %}
**Start a ranked shooting session**

{% code title="Ranked sessions adds your score to your servers scoreboard." %}

```lua
TriggerClientEvent('cd_gunrange:client:Start', source)
```

{% endcode %}

**Open the UI to move the target**

{% code title="Move the target closer or further away from you (further = higher score)." %}

```lua
TriggerClientEvent('cd_gunrange:client:MoveTarget', source)
```

{% endcode %}

**Open the UI to view your servers scoreboard**

{% code title="View the top scores from players in your server from all the different weapon types." %}

```lua
TriggerClientEvent('cd_gunrange:client:ShowScoreBoard', source)
```

{% endcode %}

**Start an unranked practice shooting session**

{% code title="Practise sessions do not get added to the scoreboard." %}

```lua
TriggerClientEvent('cd_gunrange:client:PracticeMode', source)
```

{% endcode %}
{% endtab %}
{% endtabs %}

##

## COMMON ISSUES

Please check out our [**Troubleshooting Guide**](https://docs.codesign.pro/coding-information/self-debugging#troubleshooting) before contacting our support.

🔔 <mark style="color:red;">**Folder Name**</mark> Make sure the name of the folder either `cd_gunrange`.

🔔 <mark style="color:red;">**Encrypted Files**</mark> Do not edit the encrypted files in any way.

## ERROR CODES

If you see an error code not listed below, please open a script support ticket in the [Codesign Discord](https://discord.gg/codesign).

{% tabs %}
{% tab title="Server" %}
N/A
{% endtab %}

{% tab title="Client" %}
N/A
{% endtab %}
{% endtabs %}

## CHANGELOG

> **Files Changed**
>
> Not every update requires you to replace the whole folder. We do this because we understand it's a pain to redo the configs for every update.

* **All Files -**  This means you should **make a backup of the `JSON Files`** folder, delete your old `cd_gunrange` folder, download and add in the latest version, replace the new JSON Files folder with the one you made a backup of, configure the configs folder and restart your server.
* **All Files Except config.lua -** This means you should do all of the above (in the All Files section) but additionally **make a backup of the `config.lua`** file and replace the new config.lua file with the one you made a backup of.
* **Specific Files -** This means you can copy and paste the **SPECIFIC** new files over the old ones and restart the server.

> **Update Type**
>
> On rare occasions, you are forced to update to the latest version. Mostly due to authentication updates where the old versions will no longer work.

* **Mandatory -** This means you MUST update to this new version, or the old versions will no longer work.
* **Optional -** This means it's completely your choice whether you wish to update to the latest version. But we do not offer support for old versions for obvious reasons; they are old.

{% hint style="danger" %}
**PLEASE READ! (JSON files)**

When updating a resource that uses JSON files as a database as this one does, **DO NOT** delete/replace the files/folders inside the **`JSON files`** folder, as this will overwrite your saved database.
{% endhint %}

{% hint style="warning" %}
**Skipping Updates**

If you are attempting to update to the latest version but have skipped previous updates, you should update all files just to be safe. For example., let's say you are currently on v4.0.1, you did not update when v4.0.2 was released, and now v4.0.3 is released, and you want to update; you should always use the “All Files” update method.
{% endhint %}

{% tabs %}
{% tab title="v1.0.0" %}

### 20/12/2022

**Files Changed**:&#x20;

* [x] All Files
* [ ] All Files Except config.lua
* [ ] Specific Files

**Update Type**:

* [x] Mandatory
* [ ] Optional

**Changelog:**

{% hint style="success" %}
&#x20;**STATUS**

* **Development Stage:** COMPLETE
* **Alpha Test Stage:** COMPLETE
* **Beta Test Stage:** COMPLETE
  {% endhint %}
  {% endtab %}

{% tab title="v1.0.2" %}

### 29/01/2023

**Files Changed**:&#x20;

* [x] All Files
* [ ] All Files Except config.lua
* [ ] Specific Files

**Update Type**:

* [ ] Mandatory
* [x] Optional

**Changelog:**

{% hint style="success" %}
**Add**

* Added option to create new gun ranges anywhere.
  {% endhint %}

{% hint style="warning" %}
**Fix**

* Various bug fixes.
  {% endhint %}
  {% endtab %}

{% tab title="v1.0.3" %}

### 12/02/2023

**Files Changed:**&#x20;

* [x] All Files
* [ ] All Files Except config.lua
* [ ] Specific Files

**Update Type:**

* [ ] Mandatory
* [x] Optional

**Changelog:**

{% hint style="success" %}
**Add**

* **Auto Framework Detection** - We have added a new feature we are calling '**auto\_detect**', which will automatically identify your framework and apply the appropriate default settings.
* Added the option to display debug prints.
  {% endhint %}
  {% endtab %}

{% tab title="v1.1.0" %}

### 17/09/2024

**Files Changed:**&#x20;

* [x] All Files
* [ ] All Files Except config.lua
* [ ] Specific Files

**Update Type:**

* [ ] Mandatory
* [x] Optional

**Changelog:**

{% hint style="success" %}
**Add**

* Added webhooks.
  {% endhint %}

{% hint style="info" %}
**Edit**

* Code optimisation.
* Removed unnecessary prints.
  {% endhint %}

{% hint style="warning" %}
**Fix**

* Bug fix with custom gun ranges.
  {% endhint %}
  {% endtab %}

{% tab title="v1.1.1" %}

### 19/02/2025

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```lua
fxmanifest.lua
configs/config.lua
configs/server_customise_me.lua
server/server.lua
```

**Update Type:**

* [ ] Mandatory
* [x] Optional

**Changelog:**

{% hint style="warning" %}
**Fix**

* Fix for esx character names.
  {% endhint %}
  {% endtab %}
  {% endtabs %}
