Storyarn docs
Documentación

Construcción de Mundos

Bloques y Variables

Cómo los bloques definen tu estructura de datos y se convierten en variables para los flujos.

Los bloques (blocks) son los campos de una ficha. Cada bloque tiene un tipo y una etiqueta. A menos que se marque como constante o use un tipo que no genera variables, un bloque se convierte automáticamente en una variable que los flujos pueden leer y modificar.

Una ficha con varios bloques de distintos tipos: texto, número, selección, booleano, mostrando sus etiquetas y valores actuales.

Tipos de bloques

Storyarn admite 10 tipos de bloques:

TipoDescripción¿Variable?Ejemplo de valor
TextoEntrada de texto corto o de una sola línea con placeholder opcionalSí"Jaime"
Texto EnriquecidoTexto formateado con negrita, cursiva, listas, enlacesSí"<p>Un guerrero valiente...</p>"
NúmeroEntrada numérica con restricciones opcionales de mín, máx y pasoSí42
BooleanoInterruptor. Admite modo de dos estados (true/false) o tres estados (true/false/nil)Sítrue
SelecciónElección única de una lista de opciones definidaSí"warrior"
Selección MúltipleMúltiples elecciones de una lista definida (etiquetas)Sí["fire", "ice"]
FechaSelector de fechaSí"2024-03-15"
TablaCuadrícula tipo hoja de cálculo con columnas tipadas y filas con nombreSí (a nivel de celda)Ver Bloques de tabla
ReferenciaEnlace a otra hoja o flujoNo–
GaleríaColección de imágenes de recursos subidosNo–

Los bloques de referencia y galería se excluyen del sistema de variables porque no llevan un valor significativo en tiempo de ejecución.

El menú selector de tipos de bloque mostrando los 10 tipos con sus iconos.

Nombrado de variables

Las variables siguen el patrón {atajo_de_hoja}.{nombre_de_variable}.

El nombre de variable se genera automáticamente a partir de la etiqueta del bloque: los espacios se convierten en guiones bajos, los caracteres acentuados se transliteran a ASCII y todo se pone en minúsculas.

EtiquetaNombre de variableReferencia completa (en mc.jaime)
Health Pointshealth_pointsmc.jaime.health_points
Clase Socialclase_socialmc.jaime.clase_social
Is Aliveis_alivemc.jaime.is_alive

Puedes personalizar el nombre de variable después de crearlo, y se queda como lo nombraste hasta que cambias la etiqueta. Un bloque heredado toma su nombre de variable de la etiqueta del bloque de su padre; desvincúlalo para darle un nombre propio. En ambos casos, una variable que se usa en otro sitio, en un flujo o en una escena, conserva su nombre cuando cambia la etiqueta, para que nada de lo que la usa se rompa. Si una ficha ya tiene una variable con el mismo nombre (p.ej., por herencia), Storyarn añade un sufijo numérico para mantener los nombres únicos.

Constantes

Marca un bloque como constante para excluirlo del sistema de variables. Las constantes son para datos estáticos que los flujos nunca necesitan comprobar o modificar: descripciones de personajes, texto de ambientación, entradas de lore, imágenes de referencia.

Un bloque constante sigue mostrándose en la ficha y se incluye en las capturas de versión — simplemente no aparecerá en el selector de variables al construir condiciones o instrucciones en los flujos.

La marca de constante también se hereda: cuando un bloque padre con alcance “hijos” es constante, todas las instancias hijas también lo son. Una ficha hija solo puede cambiarla tras desvincular el bloque.

Configuración de bloques

Cada tipo de bloque tiene sus propias opciones de configuración:

  • Texto – texto de placeholder.
  • Número – placeholder, valores mínimo, máximo y de paso para validación de entrada.
  • Booleano – modo de dos estados (true/false) o tres estados (true/false/sin asignar).
  • Selección / Selección Múltiple – una lista de opciones, cada una con una clave y un valor de visualización.
  • Tabla – visualización plegable, más definiciones de columnas y filas (ver Bloques de tabla).
  • Referencia – tipos de destino permitidos (hoja, flujo).

Alcance de propiedades

Cada bloque tiene un alcance (scope) que controla la herencia:

  • Propio (Self) – el bloque solo existe en esta hoja. Es el valor predeterminado.
  • Hijos (Children) – la definición del bloque se propaga en cascada a todas las fichas descendientes. Cada hija obtiene una instancia con el mismo tipo, etiqueta y configuración pero su propio valor independiente. Un bloque que pasas a Hijos más tarde llega también a todas las fichas que tiene debajo, incluso a una ficha que esté en la papelera. Si vuelves a pasarlo a Propio, el bloque sale de las fichas hijas; si lo pasas de nuevo a Hijos, cada ficha recupera la instancia que tenía, con su valor.

Cuando un bloque padre con alcance “hijos” se actualiza (etiqueta, tipo, opciones), todas las instancias hijas no desvinculadas se sincronizan automáticamente, también en una ficha hija que alguien tenga abierta. Si el tipo cambia, los valores de las hijas se restablecen al valor predeterminado del nuevo tipo.

Una instancia heredada toma del bloque padre su etiqueta, su configuración y sus marcas de constante y obligatorio, así que la ficha hija no las edita. Puedes desvincular (detach) una instancia heredada para que deje de sincronizarse con el padre. Un bloque desvinculado mantiene su configuración actual y puede editarse independientemente. Puedes volver a vincularlo (re-attach) más tarde para resincronizarlo con la definición del padre, siempre que el bloque padre siga llegando a la ficha.

Bloques obligatorios

Marca un bloque como obligatorio (required) desde su barra de herramientas (el asterisco) para saber si está completo. Un bloque obligatorio muestra la etiqueta obligatorio junto a su nombre y, mientras está vacío, es un aviso en el estado de la ficha, de modo que las fichas incompletas se ven de un vistazo. Un bloque de tabla marca como obligatorias sus columnas.

La marca de obligatorio también se hereda: cuando un bloque padre con alcance “hijos” es obligatorio, todas las instancias hijas heredan esa obligación.

Disposición en columnas

Los bloques pueden organizarse en una disposición multicolumna usando grupos de columnas. Dentro de un grupo, los bloques pueden colocarse en las posiciones 0, 1 o 2, permitiendo hasta tres bloques lado a lado para disposiciones de hoja más compactas.

Una ficha con bloques organizados en disposición de dos columnas, mostrando Name y Class lado a lado, con Health y Level debajo.