# Server Exports

Server Only

`GetFramework` - Returns the detected framework (qb, qbx, esx, or nil if none detected).

```lua
exports['sd_lib']:GetFramework()
-- Returns: string
```

`ShowNotification` - Triggers a client notification for a player.

```lua
exports['sd_lib']:ShowNotification(source, message, type, duration)
-- source: number - Player server ID
-- message: string - Notification message
-- type: string - Optional notification type (success, error, warning, info)
-- duration: number - Optional duration in milliseconds
```

`GetPlayerJob` - Gets the current job of a player.

```lua
exports['sd_lib']:GetPlayerJob(source)
-- source: number - Player server ID
-- Returns: table or nil
-- {
--     name = string,        -- Job name (e.g., 'police')
--     label = string,       -- Job label (e.g., 'Police')
--     grade = number,       -- Grade level
--     grade_name = string,  -- Grade name (e.g., 'Chief')
--     isBoss = boolean      -- Whether player is boss
-- }
```

`GetJobEmployees` - Gets all employees for a specific job.

```lua
exports['sd_lib']:GetJobEmployees(jobName)
-- jobName: string - Job name
-- Returns: table - Array of employee tables
-- {
--     {
--         id = number,        -- Player ID
--         name = string,      -- Player name
--         grade = number,     -- Grade level
--         grade_name = string -- Grade name
--     }
-- }
```

`GetJobGrades` - Gets all available grades for a job.

```lua
exports['sd_lib']:GetJobGrades(jobName)
-- jobName: string - Job name
-- Returns: table - Array of grade tables
-- {
--     {
--         level = number,   -- Grade level
--         name = string,    -- Grade name
--         salary = number   -- Grade salary
--     }
-- }
```

`GetJobSalaries` - Gets salary information for all job grades.

```lua
exports['sd_lib']:GetJobSalaries(jobName)
-- jobName: string - Job name
-- Returns: table - Array of salary tables
-- {
--     {
--         name = string,         -- Job label
--         grade_name = string,   -- Grade name
--         grade_level = number,  -- Grade level
--         salary = number        -- Salary amount
--     }
-- }
```

`HireEmployee` - Hires a player to a job.

```lua
exports['sd_lib']:HireEmployee(source, targetId, jobName, grade)
-- source: number - Hiring player server ID
-- targetId: number - Target player server ID
-- jobName: string - Job name
-- grade: number - Grade level
-- Returns: boolean - Success status
```

`PromoteEmployee` - Promotes an employee to the next grade.

```lua
exports['sd_lib']:PromoteEmployee(source, employeeId, jobName)
-- source: number - Player server ID
-- employeeId: number - Employee player ID
-- jobName: string - Job name
-- Returns: boolean - Success status
```

`DemoteEmployee` - Demotes an employee to the previous grade.

```lua
exports['sd_lib']:DemoteEmployee(source, employeeId, jobName)
-- source: number - Player server ID
-- employeeId: number - Employee player ID
-- jobName: string - Job name
-- Returns: boolean - Success status
```

`FireEmployee` - Fires an employee from a job.

```lua
exports['sd_lib']:FireEmployee(source, employeeId, jobName)
-- source: number - Player server ID
-- employeeId: number - Employee player ID
-- jobName: string - Job name
-- Returns: boolean - Success status
```

`AddItem` - Adds an item to a player's inventory.

```lua
exports['sd_lib']:AddItem(player, item, count)
-- player: number - Player server ID
-- item: string - Item name
-- count: number - Item amount
-- Returns: boolean - Success status
```

`RemoveItem` - Removes an item from a player's inventory.

```lua
exports['sd_lib']:RemoveItem(player, item, count)
-- player: number - Player server ID
-- item: string - Item name
-- count: number - Item amount
-- Returns: boolean - Success status
```

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

```lua
exports['sd_lib']:GetItemCount(player, item)
-- player: number - Player server ID
-- item: string - Item name
-- Returns: number - Item count
```

`GetPlayer` - Gets player object from framework.

```lua
exports['sd_lib']:GetPlayer(source)
-- source: number - Player server ID
-- Returns: table or nil - Framework player object
```

`GetPlayerIdentifier` - Gets player identifier.

```lua
exports['sd_lib']:GetPlayerIdentifier(src, identifierType)
-- src: number - Player server ID
-- identifierType: string - Optional identifier type (defaults to license)
-- Returns: string or nil - Player identifier
```

`GetPlayerFullName` - Gets player's full name.

```lua
exports['sd_lib']:GetPlayerFullName(src)
-- src: number - Player server ID
-- Returns: string - Player full name
```

`GetPlayerJobName` - Gets player's job name.

```lua
exports['sd_lib']:GetPlayerJobName(source)
-- source: number - Player server ID
-- Returns: string - Job name
```

`GetFunds` - Gets player's money.

```lua
exports['sd_lib']:GetFunds(Player)
-- Player: table - Framework player object
-- Returns: table
-- {
--     cash = number,  -- Cash amount
--     bank = number   -- Bank amount
-- }
```

`AddMoney` - Adds money to player.

```lua
exports['sd_lib']:AddMoney(Player, Amount, Type, comment)
-- Player: table - Framework player object
-- Amount: number - Amount to add
-- Type: string - Money type ('cash', 'bank')
-- comment: string - Optional comment/reason
```

`RemoveMoney` - Removes money from player.

```lua
exports['sd_lib']:RemoveMoney(Player, Amount, Type, comment)
-- Player: table - Framework player object
-- Amount: number - Amount to remove
-- Type: string - Money type ('cash', 'bank')
-- comment: string - Optional comment/reason
-- Returns: boolean - Success status
```

`GetPlayers` - Gets all players from database.

```lua
exports['sd_lib']:GetPlayers()
-- Returns: table - Indexed by license/identifier
-- {
--     [identifier] = {
--         identifier = string,
--         name = string,
--         job = { name, grade, grade_name },
--         money = { cash, bank }
--     }
-- }
```

`GetPlayerData` - Gets full player data.

```lua
exports['sd_lib']:GetPlayerData(source)
-- source: number - Player server ID
-- Returns: table or nil - Player data
```

`GetCharId` - Gets player's character ID.

```lua
exports['sd_lib']:GetCharId(source)
-- source: number - Player server ID
-- Returns: number or nil - Character ID (citizenid for QB, identifier for ESX)
```

`RegisterCallback` - Registers a server callback.

```lua
exports['sd_lib']:RegisterCallback(name, cb)
-- name: string - Callback name
-- cb: function - Callback function
```


---

# 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/sd_lib/server-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.
