# Events

{% hint style="info" %}

#### **Note**

These events are optional and can be used in your scripts or custom systems.
{% endhint %}

***

## Client

{% hint style="success" %}

#### **Client-Side Events**

* Defined with **`RegisterNetEvent`** or **`AddEventHandler`** **in client files**.
* Triggered using **`TriggerEvent`** (if from client) or **`TriggerClientEvent`** (if from server).
* Runs only on **one player’s game client** (the player’s PC).
  {% endhint %}

### Open Tablet

Opens the mechanic tablet.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:OpenTablet')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:OpenTablet', source)
```

{% endcode %}

***

### Open Customs

Opens mechanic and public customs.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:OpenCustomsUI')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:OpenCustomsUI', source)
```

{% endcode %}

***

### View Slips

View accepted work orders and start work on vehicles.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:WorkOrder:ShowSlips')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:WorkOrder:ShowSlips', source)
```

{% endcode %}

***

### Open Inventory

Opens the mechanic inventory (Codesign).

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:Inventory:Open')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:Inventory:Open', source)
```

{% endcode %}

***

### Open Crafting

Open mechanic crafting.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:Crafting:Open')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:Crafting:Open', source)
```

{% endcode %}

***

### Cancel Vehicle Upgrade

Cancels the vehicle upgrade process and resets the job slip so it can be started again.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:WorkOrder:CancelSlip')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:WorkOrder:CancelSlip', source)
```

{% endcode %}

### Use Repair Kit

Uses a repair kit to restore the vehicle to a configurable health level. This event bypasses the item checks and item removal.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:UseRepairKit')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:UseRepairKit', source)
```

{% endcode %}

### Open OBD Scanner

Opens the OBD scanner to check for critical vehicle errors. This event bypasses the item checks.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:ObdScanner:UseItem')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:ObdScanner:UseItem', source)
```

{% endcode %}

### Install NOS

Installs a NOS system on the vehicle. This event bypasses the item checks and item removal.

{% code title="@parameters" %}

```lua
--- @param vehicle number The vehicle entity.

--- @example
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
TriggerEvent('cd_mechanic:Nos:InstallNos', vehicle)
```

{% endcode %}

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:Nos:InstallNos', vehicle)
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:Nos:InstallNos', source, vehicle)
```

{% endcode %}

### Refill NOS

Refills the NOS system back to 100.0 on the vehicle. This event bypasses the item checks and item removal.

{% code title="@parameters" %}

```lua
--- @param vehicle number The vehicle entity.

--- @example
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
TriggerEvent('cd_mechanic:Nos:RefillCanister', vehicle)
```

{% endcode %}

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:Nos:RefillCanister', vehicle)
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:Nos:RefillCanister', source, vehicle)
```

{% endcode %}

### Open RGB Controller

Opens the RGB lighting controller. This event bypasses the item checks.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:HeadlightsNeons:UseRgbController')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:HeadlightsNeons:UseRgbController', source)
```

{% endcode %}

### Use Car Jack

Use the car jack on the nearest vehicle. This event bypasses the item checks and item removal.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:CarJack:UseItem')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:CarJack:UseItem', source)
```

{% endcode %}

***

### Open Car Lift Controls

Opens the controls to operate the car lift.

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:Carlift:OpenControls')
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:Carlift:OpenControls', source)
```

{% endcode %}

### Set Stancer

Set the stancer data of a vehicle.

{% code title="@parameters" %}

```lua
--- @param vehicle number The vehicle entity.
--- @param stancerData table The stancer data to set.

--- @example
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local stancerData = {
    height = 0.0,
    wheels = {
        ['0'] = {offset = -0.75, rotation = 0.0},
        ['1'] = {offset = 0.75, rotation = 0.0},
        ['2'] = {offset = -0.75, rotation = 0.0},
        ['3'] = {offset = 0.75, rotation = 0.0}
    }
}
TriggerEvent('cd_mechanic:Stancer:Set', vehicle, stancerData)
```

{% endcode %}

{% code title="client-side to client-side" %}

```lua
TriggerEvent('cd_mechanic:Stancer:Set', vehicle, stancerData)
```

{% endcode %}

{% code title="server-side to client-side" %}

```lua
TriggerClientEvent('cd_mechanic:Stancer:Set', source, vehicle, stancerData)
```

{% endcode %}

***

## Server

{% hint style="success" %}

#### **Server-Side Events**

* Defined with **`RegisterServerEvent`** or **`AddEventHandler`** **in server files**.
* Triggered using **`TriggerEvent`** (if from server) or **`TriggerServerEvent`** (if from client).
* Runs on the **server**, not on any individual player’s game client.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.codesign.pro/paid-scripts/cd_mechanic/developer-api/events.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
