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

# Configurações do Server

> Comandos de staff, permissão de VIP, armazenamento das roupas e logs no Discord

# 🗄️ Configurações do Server

Arquivo: `config/server/config.lua`

<Info>
  **Nada deste arquivo é enviado ao jogador.** É por isso que os webhooks e as permissões ficam aqui, nunca no config do client.
</Info>

***

## Visão geral

| Opção            | Padrão       | O que faz                                             |
| ---------------- | ------------ | ----------------------------------------------------- |
| `debugMode`      | `true`       | Mostra o diagnóstico no console do servidor           |
| `adminCommand`   | `"ssadmin"`  | Comando do painel de pontos                           |
| `shopCommand`    | `"skinshop"` | Comando que abre a loja onde o admin estiver          |
| `vipPermission`  | `"vip"`      | Permissão do framework que identifica um VIP          |
| `clothesStorage` | `"auto"`     | Onde a roupa atual do jogador é lida e salva          |
| `logs`           | —            | Registro de compras, outfits, grupos e ações de admin |

<Tip>
  Deixe `debugMode = false` em produção. Ele é útil para diagnosticar um problema, não para o dia a dia.
</Tip>

<Warning>
  Mudanças aqui só valem **depois de reiniciar o recurso**.
</Warning>

***

## Comandos de staff

```lua theme={null}
adminCommand = "ssadmin",
shopCommand = "skinshop",
```

| Comando        | O que faz                                                                                        |
| -------------- | ------------------------------------------------------------------------------------------------ |
| `adminCommand` | Abre o **painel de pontos** — criar, listar, teleportar, editar e remover lojas e guarda-roupas  |
| `shopCommand`  | Abre a **loja completa** na posição atual, sem precisar de ponto. Bom para testar peças e preços |

<Warning>
  Os dois são **admin-only**, e a checagem acontece aqui, no servidor. Um jogador sem permissão não abre nenhum dos dois nem alterando o próprio client.
</Warning>

Valor vazio (`""`) desativa o comando.

***

## Permissão de VIP

```lua theme={null}
vipPermission = "vip"
```

A permissão consultada no framework para reconhecer um jogador VIP. Ajuste para o que o seu servidor usa: ace, grupo ou flag.

Ela controla:

* Acesso aos pontos com permissão **VIP**
* Os **slots extras de outfit** definidos em `outfitSlots.vip`

<Note>
  **Administradores sempre contam como VIP**, sem precisar da permissão.
</Note>

***

## Armazenamento das roupas

```lua theme={null}
clothesStorage = "auto"
```

Onde a roupa atual do jogador é lida e salva. No modo automático, o script detecta o schema do banco e grava, sempre que possível, no mesmo lugar que o seu framework já usa.

<Card title="Armazenamento das Roupas" icon="database" href="/scripts/skinshop/configs/clothes-storage" horizontal>
  A lista completa de adapters, a ordem de detecção e como forçar um deles.
</Card>

***

## Logs e webhook

```lua theme={null}
logs = {
    enabled = false,
    webhook = "",
    username = "dk_skinshop",
    avatar = "",
    categories = {
        purchase = true,
        outfit = true,
        group = true,
        admin = true,
    },
},
```

| Opção        | Função                                            |
| ------------ | ------------------------------------------------- |
| `enabled`    | Liga o registro de ações                          |
| `webhook`    | URL do webhook do Discord. **Vazio = só console** |
| `username`   | Nome exibido pelo bot no Discord                  |
| `avatar`     | Avatar exibido pelo bot                           |
| `categories` | Quais tipos de ação registrar                     |

### Categorias

| Categoria  | Registra                                         |
| ---------- | ------------------------------------------------ |
| `purchase` | Compras de roupa                                 |
| `outfit`   | Salvar, excluir e compartilhar outfits pessoais  |
| `group`    | Outfits de organização (criar, editar, excluir)  |
| `admin`    | Gerenciamento de pontos (criar, editar, remover) |

<Note>
  Uma categoria só é desligada quando recebe `false` **explicitamente**.
</Note>

### Separando por canal

O `webhook` aceita uma **string** (tudo no mesmo canal) ou uma **tabela por categoria**:

```lua theme={null}
webhook = {
    purchase = "https://discord.com/api/webhooks/...",
    admin = "https://discord.com/api/webhooks/...",
    default = "https://discord.com/api/webhooks/...",
},
```

A chave `default` atende as categorias que não têm URL própria.

<Info>
  As mensagens saem em **lotes de até 10 embeds a cada 2 segundos**, para não esbarrar no rate limit do Discord. Com `webhook` vazio, nenhuma requisição HTTP é feita — o registro fica só no console.
</Info>

***

## Hooks

O `config/server/config.lua` também traz os hooks de integração do servidor: compra, outfits, compartilhamento, grupos e pontos.

<Card title="Hooks" icon="bolt" href="/scripts/skinshop/dev/hooks#server" horizontal>
  Cancele compras, sincronize com outros recursos e registre eventos.
</Card>
