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

# Exports

## Client

### hideUI

***

This function hides the gang-related user interface (UI) elements on the player's screen.

* This function does not require any parameters.

**Usage Example:**

```lua
exports['zat-gangs']:hideUI()
```

In this example:

* The gang UI elements are hidden from the player's screen.

### hideCameraUI

***

This function hides the camera-related user interface (UI) elements from the player's screen.

* This function does not require any parameters.

**Usage Example:**

```lua
exports['zat-gangs']:hideCameraUI()
```

In this example:

* The camera UI elements are hidden from the player's screen.

### GetMyContractIdByResource

***

This  function retrieves the contract ID for the player based on the specified resource name.

```lua
exports['zat-gangs']:GetMyContractIdByResource(resource)
```

1. **`resource`** *(string)*
   * The name of the resource for which the contract ID is being retrieved.

**Returns:**

* **`contractId`** *(number)*
  * The contract ID associated with the specified resource.

**Usage Example:**

```lua
luaCopyEditlocal contractId = exports['zat-gangs']:GetMyContractIdByResource("zat-roofrunning")
print("Your contract ID is: " .. contractId)
```

### AmIMemberOfThisContractById

***

This function checks if the player is a member of a contract based on the provided contract ID.

```lua
exports['zat-gangs']:AmIMemberOfThisContractById(id)
```

1. **`id`** *(number)*
   * The contract ID to check membership for.

**Returns:**

* **`boolean`**
  * Returns `true` if the player is a member of the contract, `false` otherwise.

**Usage Example:**

```lua
local contractId = exports['zat-gangs']:GetMyContractIdByResource("zat-roofrunning")
local isMember = exports['zat-gangs']:AmIMemberOfThisContractById(contractId)

if isMember then
    print("You are a member of this contract.")
else
    print("You are not a member of this contract.")
end
```

### GetContractMembersById

***

This function retrieves the members associated with a specific contract ID

```lua
exports['zat-gangs']:GetContractMembersById(id)
```

1. **`id`** *(number)*
   * The contract ID to retrieve the members for.

**Returns:**

* **`members`** *(table)*
  * A table containing the IDs of members associated with the specified contract.

**Usage Example:**

```lua
luaCopyEditlocal contractId = exports['zat-gangs']:GetMyContractIdByResource("zat-roofrunning")
local contractMembers = exports['zat-gangs']:GetContractMembersById(contractId)

print(json.encode(contractMembers , {indent=true}))
```

### GetContractResourceById

***

This  function retrieves the resource associated with a specific contract ID.

```lua
exports['zat-gangs']:GetContractResourceById(id)
```

1. **`id`** *(number)*
   * The contract ID to retrieve the associated resource for.

**Returns:**

* **`resource`** *(string)*
  * The name of the resource associated with the given contract ID.

**Usage Example:**

```lua
luaCopyEditlocal contractId = 5  -- example contract ID
local contractResource = exports['zat-gangs']:GetContractResourceById(contractId)

print("Contract Resource: " .. contractResource)
```

### DisableContractById

***

This client-side function disables a contract based on the provided contract ID. It is typically used after starting a contract or mission to prevent further abuse or changes.

```lua
exports['zat-gangs']:DisableContractById(id)
```

1. **`id`** *(number)*
   * The contract ID to disable.

**Usage Example:**

```lua
luaCopyEditlocal contractId = exports['zat-gangs']:GetMyContractIdByResource("zat-roofrunning")
exports['zat-gangs']:DisableContractById(contractId)
```

## Server

### SetGang

***

This function sets a player's gang affiliation and rank.

```lua
exports['zat-gangs']:SetGang(source, identifier, gang, grade)
```

1. **`source`** *(number)*
   * The player executing the command. This is the source of the request.
2. **`identifier`** *(number)*
   * The in-game ID of the player whose gang affiliation is being set.
3. **`gang`** *(string)*
   * The name of the gang to assign to the target player.
4. **`grade`** *(number)*
   * The rank or grade within the gang to assign to the player.

**Usage Example:**

```lua
exports['zat-gangs']:SetGang(source, 23, "vagos", 2)
```

In this example:

* The player identified by `source` assigns player with ID `23` to the gang `"Vagos"` with the rank 2.

### GetGang

***

This function retrieves the gang information for a specified player.

```lua
exports['zat-gangs']:GetGang(source)
```

1. **`source`** *(number)*
   * The player whose gang information is being requested.

**Returns:**

* **`data`** *(table)*
  * A table containing the player's gang information:
    * **`data.gang`** *(string)*: The name of the gang the player is affiliated with.
    * **`data.grade`** *(number)*: The player's rank or grade within the gang.

**Usage Example:**

```lua
local data = exports['zat-gangs']:GetGang(source)
print("Gang Name: " .. data.gang)
print("Gang Grade: " .. data.grade)
```

In this example:

* The player's gang name and grade are retrieved and printed to the console.

### RemoveGang

***

This function removes a player's gang affiliation.

```lua
exports['zat-gangs']:RemoveGang(source, targetId)
```

1. **`source`** *(number)*
   * The player executing the command. This is the source of the request.
2. **`targetId`** *(number)*
   * The in-game ID of the player whose gang affiliation is to be removed.

**Usage Example:**

```lua
exports['zat-gangs']:RemoveGang(source, 23)
```

In this example:

* The player identified by `source` removes the gang affiliation of the player with ID `23`.

### AddGangMoney

***

This function adds money to a specified gang's fund.

```lua
exports['zat-gangs']:AddGangMoney(gang, amount, details)
```

1. **`gang`** *(string)*
   * The name of the gang to which the money will be added.
2. **`amount`** *(number)*
   * The amount of money to add to the gang's account.
3. **`details`** *(string)*
   * A text description or note to record under the transaction in the UI.

**Usage Example:**

```lua
exports['zat-gangs']:AddGangMoney("vagos", 5000, 'Gift from anonymous')
```

In this example:

* The gang `"Vagos"` is credited with `5000` units of currency.

### RemoveGangMoney

***

This function deducts money from a specified gang's fund.

```lua
exports['zat-gangs']:RemoveGangMoney(gang, amount, details)
```

1. **`gang`** *(string)*
   * The name of the gang from which the money will be deducted.
2. **`amount`** *(number)*
   * The amount of money to remove from the gang's fund.
3. **`details`** *(string)*
   * A text description or note to record under the transaction in the UI.

**Usage Example:**

```lua
exports['zat-gangs']:RemoveGangMoney("vagos", 2000, 'bills payment')
```

In this example:

* The gang `"Vagos"` has `2000` units of currency deducted from its fund.

### AddPoints

***

This function adds points to a specified gang.

```lua
exports['zat-gangs']:AddPoints(gang, points)
```

1. **`gang`** *(string)*
   * The name of the gang to which the points will be added.
2. **`points`** *(number)*
   * The number of points to add to the gang's total.

**Usage Example:**

```lua
exports['zat-gangs']:AddPoints("ballas", 15)
```

In this example:

* The gang `"Ballas"` is awarded `15` points.

### RemovePoints

***

This function removes points from a specified gang.

```lua
exports['zat-gangs']:RemovePoints(gang, points)
```

1. **`gang`** *(string)*
   * The name of the gang from which the points will be deducted.
2. **`points`** *(number)*
   * The number of points to remove from the gang's total.

**Usage Example:**

```lua
exports['zat-gangs']:RemovePoints("ballas", 10)
```

In this example:

* The gang `"Ballas"` has `10` points deducted from its total.

### SendNotification

***

This function sends a notification to a specified gang with optional location pinging.

```lua
exports['zat-gangs']:SendNotification(title, text, gang, coords
```

1. **`title`** *(string)*
   * The title of the notification.
2. **`text`** *(string)*
   * The body text of the notification.
3. **`gang`** *(string)*
   * The name of the gang that will receive the notification.
4. **`coords`** *(optional, vector3)*
   * A vector3 representing the coordinates of a location. If provided, clicking the notification will show a location ping on the map. If not provided, no location ping will be shown.

**Usage Example:**

```lua
exports['zat-gangs']:SendNotification("Mission Update", "The Vagos have a new mission!", "vagos", vector3(215.5, -1350.3, 30.5))
```

In this example:

* The `"Vagos"` gang receives a notification with the title `"Mission Update"` and the body text `"The Vagos have a new mission!"`.
* The notification also includes a clickable map location at the coordinates `vector3(215.5, -1350.3, 30.5)`.

### AddTrust

***

This function adds trust points to the player's gang's turf.

```lua
exports['zat-gangs']:AddTrust(src, index, amount)
```

1. **`source`***(number)*
   * The player (source) who is performing the action.
2. **`index`** *(number)*
   * The turf index, which is the turf ID retrieved from the database (SQL).
3. **`amount`** *(number)*
   * The number of trust points to add to the specified turf.

**Usage Example:**

```lua
exports['zat-gangs']:AddTrust(source, 5, 100)
```

In this example:

* The player identified by `source` adds `100` trust points to the turf with ID `5`.

### GetMyContractIdByResource

***

This function retrieves the contract ID for a player based on a specified resource.

```lua
exports['zat-gangs']:GetMyContractIdByResource(source, resource)
```

1. **`source`** *(number)*
   * The player (source) whose contract ID is being requested.
2. **`resource`** *(string)*
   * The name of the resource to fetch the contract ID for. (script name)

**Returns:**

* **`contractId`** *(number)*
  * The contract ID associated with the specified resource and player.

**Usage Example:**

```lua
local contractId = exports['zat-gangs']:GetMyContractIdByResource(source, "zat-roofrunning")
print("Contract ID: " .. contractId)
```

In this example:

* The contract ID for the resource `"zat-roofrunning"` is retrieved for the player identified by `source` and printed to the console.

### GetContractResourceById

***

This function retrieves the resource associated with a specific contract ID.

```lua
exports['zat-gangs']:GetContractResourceById(id)
```

1. **`id`** *(number)*
   * The contract ID for which the resource is being retrieved.

**Returns:**

* **`resource`** *(string)*
  * The name of the resource associated with the given contract ID.

**Usage Example:**

```lua
local contractResource = exports['zat-gangs']:GetContractResourceById(5)
print("Contract Resource: " .. contractResource)
```

In this example:

* The contract ID for the `"zat-roofrunning"` resource is retrieved, and then the associated resource name is printed.

### GetContractMembersById

***

This function retrieves the members associated with a specific contract ID.

```lua
exports['zat-gangs']:GetContractMembersById(id)
```

1. **`id`** *(number)*
   * The contract ID for which the members are being retrieved. This can be obtained by using `GetMyContractIdByResource(source, resource)`.

**Returns:**

* **`members`** *(table)*
  * A table containing the list of members associated with the specified contract ID.

**Usage Example:**

```lua
local contractId = exports['zat-gangs']:GetMyContractIdByResource(source, "zat-roofrunning")
local contractMembers = exports['zat-gangs']:GetContractMembersById(contractId)
print(json.encode(contractMembers, {indent=true}))

```

In this example:

* The contract ID for the `"zat-roofrunning"` resource is first retrieved using `GetMyContractIdByResource`.
* Then, the list of members associated with that contract ID is printed.

### DisableContractById

***

This function disables a contract using the specified contract ID, usually after a contract or mission has started to prevent abuse.

```lua
exports['zat-gangs']:DisableContractById(id)
```

1. **`id`** *(number)*
   * The contract ID to be disabled. This ID can be obtained from functions like `GetMyContractIdByResource(source, resource)`.

**Usage Example:**

```lua
luaCopyEditlocal contractId = exports['zat-gangs']:GetMyContractIdByResource(source, "zat-roofrunning")
exports['zat-gangs']:DisableContractById(contractId)
```

In this example:

* The contract ID for the `"zat-roofrunning"` resource is retrieved and then the contract is disabled to prevent abuse after it has started.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://zat-scripts.gitbook.io/zat-scripts/esx/gang/exports.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.
