# 🗨️| Simulador de Diálogo

El Simulador de Diálogo permite probar una conversación desde el panel web antes de publicarla o sincronizarla con Minecraft.

Sirve para recorrer nodos, elegir opciones, revisar condiciones, comprobar placeholders y ver cómo respondería el diálogo según distintos estados del jugador.

### Para qué sirve

El simulador ayuda a detectar errores antes de probar el diálogo dentro del servidor.

Podés usarlo para:

* Ver el texto del NPC.
* Probar opciones de respuesta.
* Recorrer saltos entre nodos.
* Validar condiciones.
* Simular permisos, dinero, nivel, objetos y flags.
* Ver comandos que se ejecutarían.
* Revisar placeholders como `{player}`.
* Confirmar si una opción queda bloqueada.
* Probar finales de conversación.<br>

  <figure><img src="/files/NBzEXlL8sAFWw1H0HQAO" alt=""><figcaption></figcaption></figure>

### Abrir el simulador

Para abrirlo:

1. Entrá al panel web.
2. Seleccioná un diálogo.
3. Verificá que el diálogo tenga un nodo inicial.
4. Hacé click en:

```txt
Simular Conversacion
```

El simulador abrirá una ventana con una vista estilo chat de Minecraft.

### Vista principal

La vista principal muestra:

* Nodo actual.
* Mensajes del NPC.
* Respuestas del jugador.
* Opciones disponibles.
* Opciones bloqueadas.
* Comandos simulados.
* Estado de fin de diálogo.
* Botón para reiniciar.

### Variables del jugador

El simulador permite cambiar datos del jugador para probar distintas ramas del diálogo.

Variables disponibles:

| Campo         | Uso                                      |
| ------------- | ---------------------------------------- |
| Jugador       | Nombre usado para reemplazar {player}    |
| Nivel         | Nivel simulado del jugador               |
| Dinero        | Cantidad de dinero simulada              |
| Item en mano  | Material que el jugador tiene en la mano |
| Cantidad      | Cantidad del item en mano                |
| Inventario    | Lista de materiales simulados            |
| Permisos      | Permisos activos del jugador             |
| Flags activas | Flags o estados activos                  |

### Jugador

El campo Jugador se usa para reemplazar placeholders como:

`{player}`

Ejemplo:

`Hola, {player}.`

Si el jugador configurado es Steve, el simulador mostrará:

`Hola, Steve.`

### Nivel

El campo Nivel permite probar condiciones relacionadas con el nivel del jugador.

Ejemplo:

`Requiere nivel mayor o igual a 10`

Si el simulador tiene nivel 1, la opción aparecerá bloqueada.

Si cambiás el nivel a 10, la opción podrá seleccionarse.

### Dinero

El campo Dinero permite probar condiciones económicas.

Ejemplo:

`Requiere dinero mayor o igual a 500`

Esto sirve para probar diálogos de tiendas, recompensas o misiones con costo.

### Item en mano

El campo Item en mano representa el material principal que el jugador está usando o mostrando.

Ejemplo:

`DIAMOND`

### Inventario

El inventario se escribe como una lista separada por comas.

Formato:

`MATERIAL:CANTIDAD, MATERIAL:CANTIDAD`

Ejemplo:

`DIAMOND:1, EMERALD:3, GOLD_INGOT:10`

Esto permite probar condiciones como:

`Requiere 3 EMERALD`

### Permisos

Los permisos se escriben separados por comas.

Ejemplo:

`npc.test, rango.vip, quest.admin`

Si una opción requiere un permiso y el permiso está en esta lista, el simulador permitirá seleccionarla.

### Flags activas

Las flags representan estados del jugador o progreso interno.

Ejemplo:

`quest_started, talked_to_guard, has_key`

Se pueden usar para probar ramas como:

`Si el jugador ya inició la misión, mostrar una respuesta distinta.`

### Opciones bloqueadas

Cuando una opción no cumple sus condiciones, aparece bloqueada.

El simulador muestra una razón resumida, por ejemplo:

`requiere permiso npc.test`

o:

`requiere item EMERALD gte 3`

Esto ayuda a entender por qué el jugador no puede elegir esa opción.

### Probar caminos del diálogo

Para probar una conversación:

1. Abrí el simulador.
2. Leé el mensaje del NPC.
3. Elegí una opción.
4. Observá si avanza a otro nodo.
5. Cambiá variables del jugador si necesitás probar otra rama.
6. Usá Reiniciar para volver al nodo inicial.

### Reiniciar simulación

El botón:

`Reiniciar`

vuelve al nodo inicial del diálogo y limpia el historial de la simulación.

Usalo cada vez que quieras probar el diálogo desde cero.

### Fin del diálogo

Si una opción termina la conversación, el simulador mostrará:

`Fin del diálogo`

También puede aparecer una opción para cerrar el simulador.

### Comandos simulados

Cuando una opción ejecuta una acción de comando, el simulador no ejecuta el comando realmente.

Solo lo muestra como referencia:

`Comando ejecutado: "give Steve minecraft:emerald 1"`

Esto es importante: el simulador sirve para revisar el flujo, pero no modifica jugadores reales, inventarios reales ni economía real.

### Acciones simuladas

El simulador puede representar acciones como:

* Mensajes del NPC.
* Saltos a otro nodo.
* Cierre del diálogo.
* Permanecer en el nodo actual.
* Comandos.
* Entrega de items.
* Consumo de items.

Ejemplo:

`Comando ejecutado: "clear Steve EMERALD 3" Consumido: 3x EMERALD`

### Placeholders

El simulador reemplaza placeholders simples usando los valores configurados.

Ejemplo:

`Hola {player}, veo que tienes {amount} {item}.`

Con estos valores:

`Jugador: Steve Item en mano: DIAMOND Cantidad: 1`

Se verá como:

`Hola Steve, veo que tienes 1 DIAMOND.`

### Colores de Minecraft

El simulador interpreta códigos de color estilo Minecraft cuando están disponibles.

Ejemplo:

`&aHola &e{player}`

Se renderiza como texto coloreado en la vista del chat.

Esto permite revisar cómo se verán los mensajes antes de probarlos dentro del juego.

### Cuándo usar el simulador

Usalo especialmente antes de publicar diálogos que tengan:

* Muchas ramas.
* Condiciones.
* Recompensas.
* Comandos.
* Requisitos de permisos.
* Requisitos de items.
* Rutas alternativas.
* Cierre automático.
* Uso de placeholders.

### Limitaciones

El simulador no reemplaza completamente una prueba dentro de Minecraft.

No comprueba:

* Si Citizens detecta correctamente el NPC.
* Si el plugin sincronizó el diálogo.
* Si el resource pack está cargado en el cliente.
* Si otros plugins ejecutan comandos correctamente.
* Si la economía real responde.
* Si permisos reales están configurados en el servidor.

También algunas condiciones avanzadas pueden requerir prueba directa dentro del juego.

<pre class="language-mermaid" data-overflow="wrap" data-expandable="true"><code class="lang-mermaid"><strong>flowchart TD
</strong>    A[Editar diálogo] --> B[Abrir simulador]
    B --> C[Configurar variables del jugador]
    C --> D[Elegir opciones]
    D --> E{¿El flujo funciona?}
    E -->|No| F[Ajustar nodos, condiciones o acciones]
    F --> B
    E -->|Sí| G[Guardar diálogo]
    G --> H[Validar]
    H --> I[Publicar]
    I --> J[Sincronizar en Minecraft]
    J --> K[Probar in-game]

</code></pre>

***

### Problemas comunes

#### El simulador dice que no encuentra el nodo inicial

Revisá que el diálogo tenga configurado correctamente:

`Nodo inicial`

Y que exista un nodo con ese ID.

#### Una opción aparece bloqueada

Revisá las condiciones de esa opción.

Después ajustá los valores del simulador:

* Nivel.
* Dinero.
* Inventario.
* Permisos.
* Flags.

#### El diálogo no avanza al nodo esperado

Revisá la acción de la opción seleccionada.

Si querés saltar a otro nodo, la acción debe apuntar al ID correcto del nodo destino.

#### El comando no se ejecuta realmente

Es normal.

El simulador solo muestra qué comando se ejecutaría. Los comandos reales se prueban dentro del servidor Minecraft.


---

# 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://wikinrt.mstudiosmc.online/panel-web/or-simulador-de-dialogo.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.
