> For the complete documentation index, see [llms.txt](https://docs.menanak47.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.menanak47.com/multi-framework/ak47_drugmanagerv3/events/server.md).

# Server

Server lifecycle events located in \`custom/server/events.lua\`.   Listen with \`AddEventHandler\`.

#### `ak47_drugmanagerv3:onNPCSell`

Fires when a player sells drugs to an NPC.

**Parameters**

| Parameter  | Type     | Description                                 |
| ---------- | -------- | ------------------------------------------- |
| `source`   | `number` | Player server ID                            |
| `zoneData` | `table`  | Zone configuration table or default setting |
| `item`     | `string` | Item name sold                              |
| `amount`   | `number` | Quantity sold                               |
| `price`    | `number` | Total price earned                          |
| `currency` | `string` | Currency type (`cash`, `black_money`, etc.) |

**Example**

```lua
AddEventHandler('ak47_drugmanagerv3:onNPCSell', function(source, zoneData, item, amount, price, currency)
    -- Example: increase rcore_gangs loyalty
    TriggerEvent("rcore_gangs:server:increase_loyalty", source, "DRUGS", 1.0)
end)
```

***

#### `ak47_drugmanagerv3:onNPCRobbed`

Fires when a player gets robbed by an NPC.

**Parameters**

| Parameter | Type     | Description           |
| --------- | -------- | --------------------- |
| `source`  | `number` | Player server ID      |
| `item`    | `string` | Stolen drug item name |
| `amount`  | `number` | Quantity stolen       |

***

#### `ak47_drugmanagerv3:onDealerSell`

Fires when a player sells items to a dealer (Shop).

**Parameters**

| Parameter  | Type     | Description                |
| ---------- | -------- | -------------------------- |
| `source`   | `number` | Player server ID           |
| `shopData` | `table`  | Dealer configuration table |
| `item`     | `string` | Item name sold             |
| `amount`   | `number` | Quantity sold              |
| `price`    | `number` | Total price earned         |
| `currency` | `string` | Currency type              |

***

#### `ak47_drugmanagerv3:onDealerBuy`

Fires when a player buys items from a dealer (Shop).

**Parameters**

| Parameter  | Type     | Description                |
| ---------- | -------- | -------------------------- |
| `source`   | `number` | Player server ID           |
| `shopData` | `table`  | Dealer configuration table |
| `item`     | `string` | Item name bought           |
| `amount`   | `number` | Quantity bought            |
| `price`    | `number` | Total price paid           |
| `currency` | `string` | Currency type              |

***

#### `ak47_drugmanagerv3:onCornerboyStock`

Fires when a player stocks drugs into a cornerboy.

**Parameters**

| Parameter       | Type     | Description                   |
| --------------- | -------- | ----------------------------- |
| `source`        | `number` | Player server ID              |
| `cornerboyData` | `table`  | Cornerboy configuration table |
| `item`          | `string` | Item name stocked             |
| `amount`        | `number` | Quantity stocked              |

***

#### `ak47_drugmanagerv3:onCornerboyTakeProfit`

Fires when a player collects profits from a cornerboy.

**Parameters**

| Parameter       | Type     | Description                   |
| --------------- | -------- | ----------------------------- |
| `source`        | `number` | Player server ID              |
| `cornerboyData` | `table`  | Cornerboy configuration table |
| `amount`        | `number` | Profit amount received        |
| `currency`      | `string` | Currency type                 |

***

#### `ak47_drugmanagerv3:onCornerboySale`

Fires during automated background sales by a cornerboy.

**Parameters**

| Parameter       | Type     | Description                   |
| --------------- | -------- | ----------------------------- |
| `uid`           | `string` | Cornerboy unique ID           |
| `cornerboyData` | `table`  | Cornerboy configuration table |
| `item`          | `string` | Item name sold                |
| `amount`        | `number` | Quantity sold                 |
| `earned`        | `number` | Money earned                  |

***

#### `ak47_drugmanagerv3:onFieldHarvestComplete`

Fires when a player successfully harvests a plant in a drug field.

**Parameters**

| Parameter   | Type     | Description               |
| ----------- | -------- | ------------------------- |
| `source`    | `number` | Player server ID          |
| `fieldData` | `table`  | Field configuration table |
| `plantId`   | `number` | Plant index in field      |
| `item`      | `string` | Crop item name harvested  |
| `amount`    | `number` | Quantity harvested        |

***

#### `ak47_drugmanagerv3:onCollect`

Fires when a player collects an item from a collection zone.

**Parameters**

| Parameter     | Type     | Description                         |
| ------------- | -------- | ----------------------------------- |
| `source`      | `number` | Player server ID                    |
| `collectData` | `table`  | Collection zone configuration table |
| `item`        | `string` | Item name collected                 |
| `amount`      | `number` | Quantity collected                  |

***

#### `ak47_drugmanagerv3:onProcess`

Fires when a player processes an item in a laboratory zone.

**Parameters**

| Parameter     | Type     | Description                      |
| ------------- | -------- | -------------------------------- |
| `source`      | `number` | Player server ID                 |
| `processData` | `table`  | Process zone configuration table |
| `item`        | `string` | Produced item name               |
| `amount`      | `number` | Quantity produced                |

***

#### `ak47_drugmanagerv3:onHandcraft`

Fires when a player finishes handcrafting an item.

**Parameters**

| Parameter      | Type     | Description            |
| -------------- | -------- | ---------------------- |
| `source`       | `number` | Player server ID       |
| `craftData`    | `table`  | Handcraft recipe table |
| `rewardItem`   | `string` | Produced item name     |
| `rewardAmount` | `number` | Quantity produced      |

***

#### `ak47_drugmanagerv3:onDrugUsed`

Fires when a player consumes a usable drug.

**Parameters**

| Parameter  | Type     | Description                         |
| ---------- | -------- | ----------------------------------- |
| `source`   | `number` | Player server ID                    |
| `item`     | `string` | Drug item name                      |
| `drugData` | `table`  | Drug configuration and effect table |

***

#### `ak47_drugmanagerv3:onOverdose`

Fires when a player experiences an overdose.

**Parameters**

| Parameter | Type     | Description                                          |
| --------- | -------- | ---------------------------------------------------- |
| `source`  | `number` | Player server ID                                     |
| `details` | `table`  | `{ same = boolean, mixed = boolean, drugs = table }` |

***

#### `ak47_drugmanagerv3:onAntidoteUsed`

Fires when a player uses an antidote.

**Parameters**

| Parameter | Type     | Description      |
| --------- | -------- | ---------------- |
| `source`  | `number` | Player server ID |

***

#### `ak47_drugmanagerv3:onDrugTestKitUsed`

Fires when a player performs a drug test on another player.

**Parameters**

| Parameter      | Type     | Description              |
| -------------- | -------- | ------------------------ |
| `source`       | `number` | Testing player server ID |
| `targetSource` | `number` | Tested player server ID  |
