# server.cfg

> Configuração do servidor MY Multiplayer (MYMP) via server.cfg: diretivas ensure e set, convars de rede, fila, limites de eventos, sincronização e chave content.key.

- **Plataforma**: MY Multiplayer (MYMP) — Lua 5.4
- **Seções**: Documentação › Servidor
- **Idioma**: Português
- **URL**: https://wiki.mymp.gg/pt/docs/server-config

O arquivo `server.cfg` configura a instância do servidor no **MY Multiplayer** (**MYMP**). Cada linha corresponde a um comando de console: o nome de uma convar seguido do seu valor, `set` para criar convars personalizadas ou `ensure` para iniciar [recursos](https://wiki.mymp.gg/pt/docs/resources.md). Os recursos iniciam na ordem em que aparecem no arquivo.

## Exemplo de configuração

```ini
players 64
net_port 27015
queue_size 200
server_key hz_<id>_<secret>
languages pt-BR es

set gamemode freeroam

ensure accounts
ensure [maps]
ensure shop
```

### Diretivas de inicialização

- `ensure recurso`: inicia um recurso específico.
- `ensure [pasta]`: inicia todos os recursos dentro daquela subpasta, em ordem alfabética.
- `set nome valor`: cria uma convar personalizada não declarada nativamente. Os scripts podem lê-la com `getConvar`.

## Convars principais

| Convar                                     | Padrão      | Descrição                                                                                                                            |
| ------------------------------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `resources_dir`                            | `resources` | Pasta onde ficam os recursos do servidor.                                                                                            |
| `players`                                  | `1`         | Número máximo de vagas simultâneas de jogadores.                                                                                     |
| `net_port`                                 | `27015`     | Porta principal do jogo (UDP). A fila de entrada usa essa mesma porta em TCP.                                                        |
| `http_port`                                | `22005`     | Porta HTTP interna que serve os arquivos dos recursos aos clientes.                                                                  |
| `http_url`                                 |             | URL de um espelho HTTP externo para os arquivos. Com ele definido, `http_port 0` desativa o servidor HTTP interno.                   |
| `queue_size`                               | `500`       | Tamanho máximo da fila quando o servidor está cheio. `0` desativa a fila.                                                            |
| `join_rate`                                | `20`        | Ritmo de entrada de jogadores no servidor.                                                                                           |
| `player_triggered_event_interval`          | `1000`      | Janela de tempo, em milissegundos, usada no limite de eventos remotos por jogador.                                                   |
| `max_player_triggered_events_per_interval` | `100`       | Máximo de [eventos remotos](https://wiki.mymp.gg/pt/docs/custom-events.md) que um jogador pode disparar na janela antes de acionar `onPlayerTriggerEventThreshold`.  |
| `server_key`                               |             | Chave da MYMP para listar o servidor no launcher. Sem ela, o servidor não é listado e qualquer jogador entra com o nome que trouxer. |
| `languages`                                |             | Idiomas exibidos para o servidor no launcher, com o idioma principal primeiro (`pt-BR`, `en`, `es`).                                 |
| `min_launcher_version`                     |             | Recusa conexões de launchers mais antigos que a versão informada.                                                                    |
| `steam_api_key`                            |             | Chave da Web API da Steam usada para verificar o identificador `steam` dos jogadores.                                                |
| `password`                                 |             | Senha exigida para entrar no servidor. Nunca aparece no log nem é sincronizada.                                                      |

### Convars de sincronização

A sincronização de rede possui convars próprias, cujos valores padrão vêm documentados no `server.cfg` de exemplo:

- `sync_rate` e `sync_threads`
- `player_sync_interval`
- `unoccupied_vehicle_sync_interval`
- `ped_sync_interval`
- `far_state_interval`

## Chave de criptografia (content.key)

Na primeira vez em que o servidor inicia, ele gera automaticamente um arquivo `content.key` ao lado do `server.cfg`. Os arquivos de cliente dos recursos são enviados cifrados com essa chave.

- **Segurança**: nunca publique o `content.key` em um espelho HTTP público (`http_url`).
- **Cache entre servidores**: servidores que usam os mesmos recursos podem compartilhar a mesma `content.key`; trocá-la faz todos os jogadores baixarem novamente todos os arquivos.
