# server.cfg

> Configuración del servidor MY Multiplayer (MYMP) mediante server.cfg: directivas ensure y set, convars de red, cola, límites de eventos, sincronización y clave content.key.

- **Plataforma**: MY Multiplayer (MYMP) — Lua 5.4
- **Secciones**: Documentación › Servidor
- **Idioma**: Español
- **URL**: https://wiki.mymp.gg/es/docs/server-config

El archivo `server.cfg` configura la instancia del servidor en **MY Multiplayer** (**MYMP**). Cada línea es un comando de consola: una convar seguida de su valor, `set` para crear convars personalizadas o `ensure` para iniciar [recursos](https://wiki.mymp.gg/es/docs/resources.md). Los recursos se inician en el orden en que aparecen en el archivo.

## Ejemplo de configuración

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

### Directivas de inicio

- `ensure recurso`: inicia un recurso específico.
- `ensure [carpeta]`: inicia todos los recursos de esa subcarpeta, en orden alfabético.
- `set nombre valor`: crea una convar personalizada que nada declaró. Los scripts la leen con `getConvar`.

## Convars principales

| Convar                                     | Por defecto | Descripción                                                                                                                          |
| ------------------------------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `resources_dir`                            | `resources` | Carpeta donde se alojan los recursos del servidor.                                                                                   |
| `players`                                  | `1`         | Plazas máximas de jugadores en el servidor.                                                                                          |
| `net_port`                                 | `27015`     | Puerto del juego (UDP). La cola usa el mismo puerto por TCP.                                                                         |
| `http_port`                                | `22005`     | Puerto HTTP interno que sirve los archivos de los recursos a los clientes.                                                           |
| `http_url`                                 |             | Espejo HTTP externo para los archivos. Con él configurado, `http_port 0` desactiva el servidor HTTP interno.                         |
| `queue_size`                               | `500`       | Tamaño máximo de la cola cuando el servidor está lleno. `0` desactiva la cola.                                                       |
| `join_rate`                                | `20`        | Ritmo de entrada de jugadores al servidor.                                                                                           |
| `player_triggered_event_interval`          | `1000`      | Ventana de tiempo, en ms, del límite de eventos remotos por jugador.                                                                 |
| `max_player_triggered_events_per_interval` | `100`       | Máximo de [eventos remotos](https://wiki.mymp.gg/es/docs/custom-events.md) que un jugador puede disparar en la ventana antes de `onPlayerTriggerEventThreshold`.     |
| `server_key`                               |             | Clave de MYMP para listar el servidor en el launcher. Sin ella, el servidor no se lista y cualquiera entra con el nombre que traiga. |
| `languages`                                |             | Idiomas del servidor en el launcher, el principal primero (`pt-BR`, `en`, `es`).                                                     |
| `min_launcher_version`                     |             | Rechaza conexiones de launchers más antiguos que esta versión.                                                                       |
| `steam_api_key`                            |             | Clave de la Web API de Steam para verificar el identificador `steam` de los jugadores.                                               |
| `password`                                 |             | Contraseña para entrar al servidor. Nunca aparece en el log ni se sincroniza.                                                        |

### Convars de sincronización

La sincronización de red tiene sus propias convars, cuyos valores por defecto figuran en el `server.cfg` de ejemplo:

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

## Cifrado de recursos (content.key)

La primera vez que el servidor inicia, crea un archivo `content.key` junto al `server.cfg`. Los archivos de cliente de los recursos se envían cifrados con esa clave.

- **Seguridad**: nunca publiques `content.key` en un espejo HTTP público (`http_url`).
- **Caché compartida**: los servidores con los mismos recursos pueden compartir la clave; cambiarla hace que todos los jugadores descarguen todos los archivos de nuevo.
