Variables
Las variables son el estado del juego de tu mundo. Números, texto, banderas, objetos complejos, cualquier cosa que persista entre turnos. La IA las lee, las actualiza mediante directivas, y tu automatización puede reaccionar a los cambios.
Solo describe la variable en lenguaje natural
En las Reglas de comportamiento de una variable, solo necesitas describir qué representa la variable y cuándo debería cambiar, en lenguaje natural. No intentes enseñarle a la IA cómo emitir la sintaxis [health: -1]: el motor mete el formato de directiva en el prompt automáticamente, así que la IA ya sabe cómo escribirlo.
✅ Escribe esto: "Disminuye cuando el jugador recibe daño físico, escalado por gravedad. Puñetazo -5 a -10, tajo de espada -15 a -25. Se recupera lentamente al descansar."
❌ No esto: "Cuando el jugador reciba daño, añade [health: -X] a tu respuesta donde X es la cantidad de daño."
En el editor, abre la sección Variables. Cada variable tiene un nombre, un tipo, un valor por defecto y Reglas de comportamiento.

El mundo de horror de la página de entradas usa 5 variables: health (number, 0-5), energy (number, 0-8), day count (number, 1-14), game phase (string, "Night" o "Day"), y armed status (boolean). Eso es suficiente para correr un juego de supervivencia completo de 14 noches.
En cada turno, la IA lee los valores actuales, escribe directivas como [health: -1] en su respuesta, y el motor las extrae y actualiza el estado. El jugador solo ve la narrativa.
Tipos de variables
Number
Rastrea cantidades: salud, oro, afinidad, contador de días, hambre.
[health: -15] → restar 15
[gold: +50] → añadir 50
[day-count: set 3] → fijar a exactamente 3
[damage: *2] → multiplicar por 2Puedes establecer límites min/max. El motor recorta automáticamente.
String
Rastrea estado de texto: ubicación, ánimo, misión actual, hora del día.
[location: set "dark forest"]
[mood: set "suspicious"]
[time-period: set "night"]Boolean
Rastrea banderas verdadero/falso: tiene una llave, conoció al NPC, disparó un evento.
[has-key: toggle] → cambia true ↔ false
[met-elder: set true]JSON
Rastrea estructuras complejas: arrays de inventario, objetos de relaciones con NPCs, registros de misiones, datos de mapa.
[inventory: push {"name": "Iron Sword", "damage": 10}]
[npcs.aria.affinity: +5]
[npcs.aria.mood: set "happy"]
[quest-log: merge {"main": "completed"}]Las variables JSON soportan actualizaciones por dot-path: puedes modificar campos anidados sin reescribir el objeto entero.
Atención:
deletesiempre necesita un valor con forma JSON después: una cadena entrecomillada para la clave de un objeto ([npcs: delete "aria"]), o un número para el índice de un array ([inventory: delete 0]). La forma escueta[var: delete]no funciona; el parser cae a un set implícito y termina escribiendo la cadena literal"delete"dentro de la variable. Para eliminaciones por lotes, un Comportamiento con una acción<UpdateVariable>de JSON Patch o[inventory: set [...]]para sobrescribir son alternativas válidas.
Reglas de comportamiento — La parte más importante
Las Reglas de comportamiento son instrucciones en lenguaje natural que le enseñan a la IA cuándo y cómo cambiar una variable. Sin ellas, la IA no usará tus variables de forma fiable.
Malas Reglas de comportamiento
Rastrea la salud del jugador.
La IA no sabe qué significa "rastrear". ¿Cuándo debería cambiar? ¿En qué cantidad? ¿Qué significa cero?
Buenas Reglas de comportamiento
0 = muerte — describe una escena de muerte y termina el juego. 1-20 = crítico (sangrando, dificultad para respirar). 20-50 = herido (el dolor afecta las acciones). 50-80 = magullado (molestia menor). 80-100 = sano.
Disminuye con daño físico proporcional a la gravedad. Un puñetazo: -5 a -10. Un tajo de espada: -15 a -25. Una caída desde altura: -20 a -40. Aumenta lentamente al descansar (+5 por escena de descanso) o al curarse (+10 a +30). Nunca cambia más de 30 en un solo turno.
Esto es específico. La IA conoce la escala, los umbrales, los disparadores y los límites.
Patrones que funcionan
Rangos numéricos — define qué significa cada rango narrativamente:
0 = fin de juego. 1-25 = desesperado. 26-50 = luchando. 51-75 = capaz. 76-100 = confiado.
Disparadores — cuándo debería cambiar esto:
Aumenta cuando el jugador ayuda a los aldeanos, da regalos o los defiende. Disminuye en robos, amenazas o promesas rotas.
Límites — evita oscilaciones salvajes:
Nunca cambia más de 10 en un turno. Mínimo 0, máximo 100.
Relaciones entre variables — cómo interactúan:
Cuando el hambre llega a 0, empieza a disminuir la salud en 5 cada turno.
TIP
De dos a cuatro frases suele bastar. Si tus Reglas de comportamiento son más largas que un párrafo corto, simplifica. La IA es lista: dale el concepto y los límites, no un ensayo de 500 palabras.
Consejos
- Elige un estilo de ID que funcione con macros: las macros de variables solo se resuelven cuando el ID es letras / números / guiones bajos. Usa
snake_case(p. ej.player_health) — ocamelCase— si alguna vez quieres referenciar la variable como macro de doble llave dentro de una entrada.kebab-caseestá bien en directivas como[player-health: +5]pero no se resolverá como macro. - JSON para cualquier cosa compleja: Si necesitas más de un valor (objetos de inventario con propiedades, datos de NPCs con varios campos), usa JSON
- No rastrees de más: No necesitas una variable para todo. Si la IA puede manejar algo narrativamente sin rastrearlo, omite la variable
- Prueba tus Reglas de comportamiento: Juega tu mundo y verifica si la IA actualiza las variables cuando lo esperas. Si no, tus instrucciones necesitan ser más específicas
