> ## Documentation Index
> Fetch the complete documentation index at: https://docs.temacstore.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Exports dos Scripts FiveM: Integração entre Recursos

> Documentação completa dos exports para integração entre scripts FiveM, com assinaturas Lua e exemplos prontos para uso no cliente e no servidor.

Os exports permitem que outros scripts do seu servidor interajam com os módulos instalados. Você pode chamar exports tanto no lado do cliente quanto no servidor, dependendo da função exposta. Esta página documenta todos os exports disponíveis por módulo.

## Como Usar Exports

Chame um export de outro script usando a sintaxe abaixo. Substitua `nome-do-script` pelo nome exato da pasta do recurso no seu servidor:

```lua theme={null}
-- No servidor:
local resultado = exports['nome-do-script']:FuncaoExportada(parametros)

-- No cliente:
local resultado = exports['nome-do-script']:FuncaoExportada(parametros)
```

<Note>
  O nome do script entre colchetes deve corresponder exatamente ao nome da pasta do recurso definido no seu `server.cfg`.
</Note>

## Módulo: Jobs

### Servidor

#### GetPlayerJob

Retorna os dados do emprego atual de um jogador.

```lua theme={null}
local jobData = exports['meu-jobs']:GetPlayerJob(source)
-- Retorna: { name = 'police', label = 'Polícia', grade = 2, gradeLabel = 'Sargento', salary = 450 }

if jobData.name == 'police' then
    print('Jogador é policial no cargo: ' .. jobData.gradeLabel)
end
```

**Parâmetros:** `source` (number) — ID do jogador no servidor
**Retorna:** table `{ name, label, grade, gradeLabel, salary }`

#### SetPlayerJob

Define o emprego de um jogador.

```lua theme={null}
exports['meu-jobs']:SetPlayerJob(source, 'mechanic', 1)
-- Parâmetros: source (number), jobName (string), grade (number)
```

**Parâmetros:** `source` (number), `jobName` (string), `grade` (number)

#### IsPlayerOnDuty

Verifica se um jogador está em serviço.

```lua theme={null}
local onDuty = exports['meu-jobs']:IsPlayerOnDuty(source)

if onDuty then
    print('Jogador está em serviço')
end
-- Retorna: boolean
```

**Retorna:** `boolean` — `true` se o jogador está em serviço

## Módulo: Inventário

### Servidor

#### GetItem

Verifica a quantidade de um item no inventário de um jogador.

```lua theme={null}
local quantidade = exports['meu-inventario']:GetItem(source, 'water')
print('Quantidade de água: ' .. quantidade)
-- Retorna: number (quantidade de itens)
```

**Parâmetros:** `source` (number), `itemName` (string)
**Retorna:** `number` — quantidade do item no inventário

#### AddItem

Adiciona itens ao inventário de um jogador.

```lua theme={null}
local sucesso = exports['meu-inventario']:AddItem(source, 'bandage', 3)

if sucesso then
    print('3 bandagens adicionadas com sucesso')
end
-- Retorna: boolean (true se adicionado com sucesso)
```

**Parâmetros:** `source` (number), `itemName` (string), `quantity` (number)
**Retorna:** `boolean`

#### RemoveItem

Remove itens do inventário de um jogador.

```lua theme={null}
local sucesso = exports['meu-inventario']:RemoveItem(source, 'lockpick', 1)

if not sucesso then
    print('Não foi possível remover o item (quantidade insuficiente?)')
end
-- Retorna: boolean (true se removido com sucesso)
```

**Parâmetros:** `source` (number), `itemName` (string), `quantity` (number)
**Retorna:** `boolean`

#### HasItem

Verifica se o jogador possui pelo menos uma quantidade determinada de um item.

```lua theme={null}
local temItem = exports['meu-inventario']:HasItem(source, 'water', 2)

if temItem then
    print('Jogador tem ao menos 2 garrafas de água')
end
-- Retorna: boolean
```

**Parâmetros:** `source` (number), `itemName` (string), `minQuantity` (number)
**Retorna:** `boolean`

### Cliente

#### OpenInventory

Abre a interface de inventário para o jogador local.

```lua theme={null}
exports['meu-inventario']:OpenInventory()
```

## Módulo: Economia

### Servidor

#### GetMoney

Retorna o saldo de um tipo específico de um jogador.

```lua theme={null}
local saldo = exports['meu-economia']:GetMoney(source, 'bank')
print('Saldo bancário: R$' .. saldo)
-- Tipos disponíveis: 'cash', 'bank'
-- Retorna: number
```

**Parâmetros:** `source` (number), `moneyType` (`'cash'` | `'bank'`)
**Retorna:** `number`

#### AddMoney

Adiciona dinheiro a um jogador.

```lua theme={null}
exports['meu-economia']:AddMoney(source, 'bank', 1000)
-- Parâmetros: source, tipo ('cash'|'bank'), valor
```

**Parâmetros:** `source` (number), `moneyType` (string), `amount` (number)

#### RemoveMoney

Remove dinheiro de um jogador. Retorna `false` se o saldo for insuficiente.

```lua theme={null}
local sucesso = exports['meu-economia']:RemoveMoney(source, 'cash', 500)

if not sucesso then
    print('Saldo insuficiente para realizar a operação')
end
-- Retorna: boolean
```

**Parâmetros:** `source` (number), `moneyType` (string), `amount` (number)
**Retorna:** `boolean`

## Módulo: Admin

### Servidor

#### IsAdmin

Verifica se um jogador possui permissão de administrador.

```lua theme={null}
local isAdmin = exports['meu-admin']:IsAdmin(source)

if isAdmin then
    print('Jogador tem permissão de admin')
end
-- Retorna: boolean
```

**Retorna:** `boolean`

#### GetAdminGroup

Retorna o grupo de admin de um jogador, ou `nil` se não for admin.

```lua theme={null}
local grupo = exports['meu-admin']:GetAdminGroup(source)

if grupo then
    print('Grupo do admin: ' .. grupo)
end
-- Retorna: string ('superadmin', 'moderator', etc.) ou nil
```

**Retorna:** `string` ou `nil`
