> ## 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

> Cooldowns, compartilhar, sincronia, logs e webhook do Discord

Arquivos: `config/server/config.lua` e `config/server/logs.lua`. Mudanças só valem **depois de reiniciar o recurso**.

> [!NOTE]
>
> **Nada de `config/server` é enviado ao jogador.** É por isso que o webhook do Discord fica aqui, nunca no config do client ou do shared.

## Visão geral

| Opção | Padrão | O que faz |
| - | - | - |
| `debugMode` | `false` | Mostra o diagnóstico no console do servidor. Deixe desligado em produção |
| `playCooldown` | `500` | Tempo mínimo (ms) entre dois inícios de dança local |
| `remotePlayCooldown` | `5000` | Tempo mínimo (ms) entre dois inícios de dança exclusiva |
| `share` | — | Distância, tempo do convite e espera do compartilhar |
| `sync` | — | Espera entre pedidos de repetição da sincronia |
| `logs` | — | Registro de ações, no arquivo `logs.lua` |
| `hooks` | — | Os hooks do servidor (`config/server/hooks.lua`) |

## Cooldowns

```lua theme={null}
playCooldown = 500,
remotePlayCooldown = 5000,
```

| Opção | Aceita | Vale para |
| - | - | - |
| `playCooldown` | `0` a `10000` (`0` desliga) | Dois inícios de dança do mesmo jogador nas danças que **não baixam arquivo**: as do GTA base e as da `stream/` |
| `remotePlayCooldown` | `2000` a `30000` | Dois inícios de dança **remota** (as exclusivas, baixadas dos servidores da DK) do mesmo jogador |

Cada início de dança remota faz os jogadores por perto baixarem o arquivo. O limite maior evita **rajadas de download**. A prévia não tem essa espera, e o aviso de espera lembra o jogador disso.

## Compartilhar

```lua theme={null}
share = {
    radius = 5.0,
    timer = 20,
    cooldown = 5000,
},
```

| Opção | Padrão | O que faz |
| - | - | - |
| `radius` | `5.0` | Até que distância (metros) o servidor procura o destinatário, dentro do mesmo routing bucket. Aceita `1` a `30` |
| `timer` | `20` | Quanto tempo (segundos) o convite fica na tela do destinatário. Aceita `5` a `60` |
| `cooldown` | `5000` | Tempo mínimo (ms) entre dois pedidos do mesmo jogador, mesmo quando não havia ninguém por perto. Aceita `1000` a `60000` |

O liga e desliga do recurso é `share.enabled`, em `config/shared/config.lua`.

Veja também [Compartilhar uma Dança](https://docs.dkscripts.com.br/scripts/dances/usage/sharing.md): como o convite funciona do ponto de vista do jogador.

## Sincronia

```lua theme={null}
sync = {
    resyncGap = 3000,
},
```

| Opção | Padrão | O que faz |
| - | - | - |
| `resyncGap` | `3000` | Tempo mínimo (ms) entre dois pedidos para o **mesmo** dançarino repetir a animação. Impede que alguém faça o dançarino reiniciar a dança sem parar |

Veja também [Carregamento Remoto e Sincronia](https://docs.dkscripts.com.br/scripts/dances/configs/remote-sync.md#sincronia-entre-jogadores): O pedido de repetição e as demais opções da sincronia.

## Logs e webhook

Arquivo: `config/server/logs.lua`

```lua theme={null}
return {
    enabled = true,
    webhook = "",
    username = "dk_dances",
    avatar = "",
    categories = {
        assets = true,
        play = false,
        share = true,
        inject = 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 | Padrão | Registra |
| - | - | - |
| `assets` | `true` | Acesso ao serviço de animações (liberado, renovado, falhou) |
| `play` | `false` | **Cada dança iniciada.** Volumoso: ligue só para investigar |
| `share` | `true` | Cada dança compartilhada e aceita |
| `inject` | `true` | Cada dança que outro recurso registra ou remove no menu |

Uma categoria só é desligada quando recebe `false` **explicitamente**.

### Separando por canal

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

```lua theme={null}
webhook = {
    assets = "https://discord.com/api/webhooks/...",
    share = "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.

Cada registro vai para o console com o prefixo `[dk_dances]` e a categoria. As mensagens seguem para o Discord **agrupadas, a cada 2 segundos**, em texto simples, para não esbarrar no rate limit. Com `webhook` vazio, nenhuma requisição HTTP é feita.

O texto de um registro pode trazer o nome do jogador, que ele mesmo escolhe. O script envia as mensagens **sem permitir menções**, então um jogador chamado `@everyone` não marca ninguém no seu Discord.

## Hooks

O `config/server/config.lua` carrega os hooks do servidor de `config/server/hooks.lua`.

Veja também [Hooks](https://docs.dkscripts.com.br/scripts/dances/dev/hooks.md#server): negue danças por VIP, categoria ou situação, e reaja a início, fim e compartilhamento.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.