# Rotación de misiones

## Rotación de misiones

La rotación controla qué quests están activas por ventana temporal.

El objetivo es renovar contenido sin editar quests cada día.

### Frecuencias soportadas

* `DAILY`
* `WEEKLY`
* permanentes, si la configuración lo permite

### Cómo funciona

El plugin parte del registro completo y construye un conjunto activo para cada frecuencia.

```
Registro total
  -> Filtrar por frecuencia
  -> Aplicar reglas de selección
  -> Publicar lista activa
  -> Rechazar aceptación fuera de lista
```

### Selección de quests

La selección depende de `quests/rotation.yml` y de la frecuencia configurada.

El patrón recomendado es:

* definir un pool amplio
* exponer solo una parte cada ciclo
* mantener categorías equilibradas

### Ejemplo completo de `quests/rotation.yml`

Este ejemplo separa pools diarios y semanales, y limita cuántas quests se activan por ciclo.

```yaml
rotation:
  timezone: "UTC"

  daily:
    enabled: true
    reset-at: "00:00"
    active: 3
    pool:
      - quest_0001
      - quest_0002
      - quest_0003
      - quest_0004
      - quest_0200

  weekly:
    enabled: true
    reset-day: "MONDAY"
    reset-at: "00:00"
    active: 2
    pool:
      - quest_0100
      - quest_0101
      - quest_0102
      - quest_0300
```

#### Lectura rápida

* `daily.active: 3` publica 3 quests del pool diario.
* `weekly.active: 2` publica 2 quests del pool semanal.
* `timezone` evita resets inconsistentes entre nodos o regiones.

### Estrategia recomendada de rotación

Usa un pool mayor que la selección activa.

```
5 a 8 quests diarias definidas
  -> activar 2 o 3

4 a 6 quests semanales definidas
  -> activar 1 o 2
```

Así mantienes variedad sin saturar al jugador.

### Reset de progreso

Un reset de rotación afecta solo quests sujetas a esa ventana.

En la práctica:

* quests diarias reinician con la rotación diaria
* quests semanales reinician con la rotación semanal
* quests permanentes conservan su estado

### Efecto sobre jugadores activos

Cuando cambia la rotación, el plugin debe resolver dos cosas:

* qué quests siguen siendo válidas
* qué progreso debe resetearse o archivarse

Si una quest sale de rotación, deja de ser aceptable. El historial de completado puede mantenerse para métricas o bloqueo de reaceptación.

### Rendimiento

La rotación no debe recalcular todo en cada evento.

El patrón eficiente es recalcular solo al arrancar, al recargar o al cambiar la ventana temporal. Durante juego normal, el motor consulta una lista activa ya preparada.

### Qué ocurre en un cambio de ciclo

```
Llega hora de reset
  -> cerrar conjunto activo anterior
  -> seleccionar nuevas quests
  -> invalidar cache de rotación
  -> publicar nuevo conjunto activo
  -> resetear progreso afectado
```

### Buenas prácticas

* No mezcles demasiadas quests diarias con objetivos largos.
* Mantén un pool mayor que la selección activa.
* Separa quests semanales de alto valor.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://camiladev.gitbook.io/documentation/quests/guia-de-administracion/rotacion-de-misiones.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
