# Weapons

Here, you'll find key exports for managing weapons. These exports allow you to register and update weapons as needed.

***

## Type

<pre class="language-typescript"><code class="lang-typescript"><strong>type Weapon = {
</strong>    name: string,
    label: string, 
    serial: string, 
    notes: string, 
    evidences: {
        id: number,
        createdAt: string
    }[]
}
</code></pre>

## Exports

### Search for a weapon

```lua
exports['redutzu-mdt']:SearchWeapon(serial: string) // WeaponType | null
```

### Register a new weapon

```lua
local serialNumber = exports['redutzu-mdt']:GenerateWeaponSerial()

exports['redutzu-mdt']:RegisterWeapon({
  label = 'Pistol',
  name = 'weapon_pistol', -- this must be the same as in your GetWeapons function
  serial = serialNumber, -- you can generate your own serial number but it must be unique
  identifier = 'license:1234567890', -- owner identifier (QBCore: citizenid, ESX/Standalone: Identifier)
  notes = 'Weapon notes'
}) -- string (serial number)
```

### Generate a weapon Serial

<pre class="language-lua"><code class="lang-lua">-- It returns a string
<strong>exports['redutzu-mdt']:GenerateWeaponSerial() // string (generates an UNIQUE serial number)
</strong></code></pre>

### Update a weapons info

```lua
-- It returns a boolean (if it was successfully updated)
exports['redutzu-mdt']:UpdateWeapon('serialNumber', { notes = 'Updated notes' }) -- boolean
```
