# Exports

### Server exports

#### Notification system

**`ShowNotification(source, message, type, duration)`**

Shows a notification to a player.

**Parameters**

* `source` — Player server ID.
* `message` — Notification message.
* `type` — Optional. `success`, `error`, `warning`, or `info`.
* `duration` — Optional. Duration in milliseconds.

**Returns**

* `nil`

#### Framework detection

**`GetFramework()`**

Returns the detected framework.

**Parameters**

* None.

**Returns**

* `string` — `qb`, `qbx`, `esx`, or `nil`.

#### Job management

**`GetPlayerJob(source)`**

Gets the current job for a player.

**Parameters**

* `source` — Player server ID.

**Returns**

* `table | nil`

```lua
{
    name = string,
    label = string,
    grade = number,
    grade_name = string,
    isBoss = boolean
}
```

**`GetJobEmployees(jobName)`**

Gets all employees for a job.

**Parameters**

* `jobName` — Job name.

**Returns**

* `table` — Array of employee tables.

```lua
{
    {
        id = number,
        name = string,
        grade = number,
        grade_name = string
    }
}
```

**`GetJobGrades(jobName)`**

Gets all available grades for a job.

**Parameters**

* `jobName` — Job name.

**Returns**

* `table` — Array of grade tables.

```lua
{
    {
        level = number,
        name = string,
        salary = number
    }
}
```

**`GetJobSalaries(jobName)`**

Gets salary data for all job grades.

**Parameters**

* `jobName` — Job name.

**Returns**

* `table` — Array of salary tables.

```lua
{
    {
        name = string,
        grade_name = string,
        grade_level = number,
        salary = number
    }
}
```

**`HireEmployee(source, targetId, jobName, grade)`**

Hires a player into a job.

**Parameters**

* `source` — Hiring player server ID.
* `targetId` — Target player server ID.
* `jobName` — Job name.
* `grade` — Grade level.

**Returns**

* `boolean` — Success status.

**`PromoteEmployee(source, employeeId, jobName)`**

Promotes an employee to the next grade.

**Parameters**

* `source` — Player server ID.
* `employeeId` — Employee player ID.
* `jobName` — Job name.

**Returns**

* `boolean` — Success status.

**`DemoteEmployee(source, employeeId, jobName)`**

Demotes an employee to the previous grade.

**Parameters**

* `source` — Player server ID.
* `employeeId` — Employee player ID.
* `jobName` — Job name.

**Returns**

* `boolean` — Success status.

**`FireEmployee(source, employeeId, jobName)`**

Fires an employee from a job.

**Parameters**

* `source` — Player server ID.
* `employeeId` — Employee player ID.
* `jobName` — Job name.

**Returns**

* `boolean` — Success status.

#### Inventory system

**`AddItem(source, item, amount, metadata)`**

Adds an item to a player's inventory.

**Parameters**

* `source` — Player server ID.
* `item` — Item name.
* `amount` — Item amount.
* `metadata` — Optional item metadata.

**Returns**

* `boolean` — Success status.

**`RemoveItem(source, item, amount, metadata)`**

Removes an item from a player's inventory.

**Parameters**

* `source` — Player server ID.
* `item` — Item name.
* `amount` — Item amount.
* `metadata` — Optional item metadata.

**Returns**

* `boolean` — Success status.

**`GetItemCount(source, item)`**

Gets the count of an item in a player's inventory.

**Parameters**

* `source` — Player server ID.
* `item` — Item name.

**Returns**

* `number` — Item count.

#### Player data

**`GetPlayer(source)`**

Gets the framework player object.

**Parameters**

* `source` — Player server ID.

**Returns**

* `table | nil` — Framework player object.

**`GetPlayerObject(source)`**

Alias for `GetPlayer`.

**Parameters**

* `source` — Player server ID.

**Returns**

* `table | nil` — Framework player object.

**`GetPlayerIdentifier(source, identifierType)`**

Gets a player identifier.

**Parameters**

* `source` — Player server ID.
* `identifierType` — Optional. `license`, `steam`, and others.

**Returns**

* `string | nil` — Player identifier.

**`GetPlayerFullName(source)`**

Gets a player's full name.

**Parameters**

* `source` — Player server ID.

**Returns**

* `string` — Player full name.

**`GetPlayerJobName(source)`**

Gets a player's job name.

**Parameters**

* `source` — Player server ID.

**Returns**

* `string` — Job name.

**`GetFunds(source)`**

Gets a player's money.

**Parameters**

* `source` — Player server ID.

**Returns**

* `table`

```lua
{
    cash = number,
    bank = number
}
```

**`AddMoney(source, type, amount)`**

Adds money to a player.

**Parameters**

* `source` — Player server ID.
* `type` — Money type. `cash` or `bank`.
* `amount` — Amount to add.

**Returns**

* `boolean` — Success status.

**`RemoveMoney(source, type, amount)`**

Removes money from a player.

**Parameters**

* `source` — Player server ID.
* `type` — Money type. `cash` or `bank`.
* `amount` — Amount to remove.

**Returns**

* `boolean` — Success status.

**`GetPlayers()`**

Gets all online players.

**Parameters**

* None.

**Returns**

* `table` — Array of player objects.

**`GetPlayerData(source)`**

Gets full player data.

**Parameters**

* `source` — Player server ID.

**Returns**

* `table` — Player data.

**`GetCharId(source)`**

Gets a player's character ID.

**Parameters**

* `source` — Player server ID.

**Returns**

* `number | nil` — Character ID.

#### Callbacks

**`RegisterCallback(name, cb)`**

Registers a server callback.

**Parameters**

* `name` — Callback name.
* `cb` — Callback function.

**Returns**

* `nil`

### Client exports

#### Framework detection

**`GetFramework()`**

Returns the detected framework.

**Parameters**

* None.

**Returns**

* `string` — `qb`, `qbx`, `esx`, or `custom`.

**`GetJobUpdateEvents()`**

Returns job update event names for the current framework.

**Parameters**

* None.

**Returns**

* `table` — Array of event names.

**`GetPlayerLoadedEvents()`**

Returns player loaded event names for the current framework.

**Parameters**

* None.

**Returns**

* `table` — Array of event names.

#### Player data

**`GetPlayerData()`**

Gets current player data.

**Parameters**

* None.

**Returns**

* `table` — Player data.

**`GetPlayerFullName()`**

Gets the current player's full name.

**Parameters**

* None.

**Returns**

* `string` — Player full name.

**`GetPlayerJobName()`**

Gets the current player's job name.

**Parameters**

* None.

**Returns**

* `string` — Job name.

**`GetFunds()`**

Gets the current player's money.

**Parameters**

* None.

**Returns**

* `table`

```lua
{
    cash = number,
    bank = number
}
```

**`GetPlayerName()`**

Gets the current player's name.

**Parameters**

* None.

**Returns**

* `string` — Player name.

**`GetPlayerJobGrade()`**

Gets the current player's job grade.

**Parameters**

* None.

**Returns**

* `number` — Grade level.

**`GetPlayerStats()`**

Gets the current player's stats.

**Parameters**

* None.

**Returns**

* `table` — Player stats.

**`GetCharId()`**

Gets the current player's character ID.

**Parameters**

* None.

**Returns**

* `number | nil` — Character ID.

**`GetPlayerJob()`**

Gets the current player's full job data.

**Parameters**

* None.

**Returns**

* `table`

```lua
{
    name = string,
    label = string,
    grade = number,
    grade_name = string,
    isBoss = boolean
}
```

#### Vehicle system

**`SpawnVehicle(model, coords, heading)`**

Spawns a vehicle.

**Parameters**

* `model` — Vehicle model name or hash.
* `coords` — Spawn coordinates.
* `heading` — Spawn heading.

**Returns**

* `number | nil` — Vehicle entity handle.

**`SetVehicleProperties(vehicle, props)`**

Sets vehicle properties.

**Parameters**

* `vehicle` — Vehicle entity handle.
* `props` — Vehicle properties.

**Returns**

* `nil`

**`GetVehicleProperties(vehicle)`**

Gets vehicle properties.

**Parameters**

* `vehicle` — Vehicle entity handle.

**Returns**

* `table` — Vehicle properties.

#### Notification system

**`ShowNotification(message, type, duration)`**

Shows a notification.

**Parameters**

* `message` — Notification message.
* `type` — Optional. `success`, `error`, `warning`, or `info`.
* `duration` — Optional. Duration in milliseconds.

**Returns**

* `nil`

#### Progress bar

**`ShowProgress(label, duration, callback)`**

Shows a progress bar.

**Parameters**

* `label` — Progress label.
* `duration` — Duration in milliseconds.
* `callback` — Callback on completion.

**Returns**

* `nil`

#### Text UI

**`ShowTextUI(message, option, extra)`**

Shows text UI.

**Parameters**

* `message` — Text message.
* `option` — Optional UI option.
* `extra` — Optional extra parameters.

**Returns**

* `nil`

**`HideTextUI()`**

Hides text UI.

**Parameters**

* None.

**Returns**

* `nil`

#### Skill check

**`Skillcheck(difficulty, amount)`**

Starts a skill check minigame.

**Parameters**

* `difficulty` — `easy`, `medium`, or `hard`.
* `amount` — Number of checks.

**Returns**

* `boolean` — Success status.

#### Zones

**`CreatePolyZone(points, options)`**

Creates a polygon zone.

**Parameters**

* `points` — Array of `vector3` points.
* `options` — Zone options.

**Returns**

* `number` — Zone ID.

**`CreateBoxZone(center, length, width, options)`**

Creates a box zone.

**Parameters**

* `center` — Center coordinates.
* `length` — Box length.
* `width` — Box width.
* `options` — Zone options.

**Returns**

* `number` — Zone ID.

**`CreateSphereZone(center, radius, options)`**

Creates a sphere zone.

**Parameters**

* `center` — Center coordinates.
* `radius` — Sphere radius.
* `options` — Zone options.

**Returns**

* `number` — Zone ID.

**`DeleteZone(zoneId)`**

Deletes a zone.

**Parameters**

* `zoneId` — Zone ID.

**Returns**

* `nil`

#### Interaction system

**`CreateInteractionPoint(position, options)`**

Creates an interaction point.

**Parameters**

* `position` — Position coordinates.
* `options` — Interaction options.

**Returns**

* `number` — Interaction point ID.

```lua
{
    distance = number,
    options = {
        {
            icon = string,
            label = string,
            canInteract = function,
            action = function
        }
    }
}
```

**`CreateVehicleInteraction(vehicle, options)`**

Creates a vehicle interaction.

**Parameters**

* `vehicle` — Vehicle entity handle.
* `options` — Interaction options.

**Returns**

* `number` — Interaction ID.

**`CreateModelInteraction(model, options)`**

Creates a model interaction.

**Parameters**

* `model` — Model name or hash.
* `options` — Interaction options.

**Returns**

* `number` — Interaction ID.

**`CreateEntityInteraction(entity, options)`**

Creates an entity interaction.

**Parameters**

* `entity` — Entity handle.
* `options` — Interaction options.

**Returns**

* `number` — Interaction ID.

**`RemoveInteractionPoint(pointId)`**

Removes an interaction point.

**Parameters**

* `pointId` — Interaction point ID.

**Returns**

* `nil`

**`RemoveVehicleInteraction(vehicleId)`**

Removes a vehicle interaction.

**Parameters**

* `vehicleId` — Vehicle interaction ID.

**Returns**

* `nil`

**`RemoveModelInteraction(modelId)`**

Removes a model interaction.

**Parameters**

* `modelId` — Model interaction ID.

**Returns**

* `nil`

**`RemoveEntityInteraction(entityId)`**

Removes an entity interaction.

**Parameters**

* `entityId` — Entity interaction ID.

**Returns**

* `nil`

**`HandleDrawText(pos, radius, options, entity)`**

Handles draw text interaction.

**Parameters**

* `pos` — Position.
* `radius` — Detection radius.
* `options` — Interaction options.
* `entity` — Optional entity handle.

**Returns**

* `nil`

#### Voice system

**`GetRadioChannel()`**

Gets the current radio channel.

**Parameters**

* None.

**Returns**

* `number` — Radio channel.

**`IsUsingRadio()`**

Checks if the player is using radio.

**Parameters**

* None.

**Returns**

* `boolean` — Radio usage status.

#### Dispatch system

**`Dispatch(data)`**

Sends a dispatch alert.

**Parameters**

* `data` — Dispatch data.

**Returns**

* `nil`

```lua
{
    type = string,
    message = string,
    coords = vector3,
    priority = string
}
```

#### Dialog system

**`ShowDialog(header, rows, callback)`**

Shows an input dialog.

**Parameters**

* `header` — Dialog header.
* `rows` — Input rows.
* `callback` — Callback with the result.

**Returns**

* `nil`

```lua
{
    {
        type = string,
        label = string,
        default = string
    }
}
```

**`CloseDialog()`**

Closes the current dialog.

**Parameters**

* None.

**Returns**

* `nil`

#### Inventory system

**`GetInventoryImagePath(item)`**

Gets an inventory item image path.

**Parameters**

* `item` — Item name.

**Returns**

* `string` — Image path.

**`GetItemCount(item)`**

Gets an item count from the current inventory.

**Parameters**

* `item` — Item name.

**Returns**

* `number` — Item count.

#### Callbacks

**`TriggerCallback(name, cb, ...)`**

Triggers a server callback.

**Parameters**

* `name` — Callback name.
* `cb` — Callback function.
* `...` — Additional parameters.

**Returns**

* `nil`


---

# 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://spark-developments.gitbook.io/dev/library-1/sd_lib/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.
