Macros (CBS)
Scripting con llaves dentro de cualquier texto de prompt.
Sintaxis
Las macros son fichas entre llaves dobles que se expanden al hacer la petición. Funcionan en campos de personaje, entradas de lorebook, presets, saludos y texto normal del chat, y se pueden anidar.
{{char}} smiles at {{user}}.
{{random::sunny::rainy::foggy}}
{{calc::1+2*3}}Los argumentos se separan con dobles dos puntos. Las macros desconocidas se expanden a nada en vez de fallar, así que una errata nunca rompe una petición.
Macros básicas
| Macro | Se expande a |
|---|---|
{{char}} | El nombre del personaje actual (en grupos, el hablante actual). |
{{user}} | El nombre de tu persona. |
{{persona}} | La descripción de tu persona. |
{{description}} | El campo descripción del personaje actual. |
{{lastmessage}} | El texto del mensaje más reciente. |
{{time}} / {{date}} | Hora / fecha actuales en tu idioma y zona horaria. |
Aleatoriedad
random elige un argumento nuevo en cada expansión, pick hace una elección estable durante la conversación, y roll lanza dados con notación d.
{{random::a::b::c}} {{pick::a::b::c}} {{roll::d20}}Tiradas y aleatorios llevan semilla por turno: regenerar reutiliza los mismos valores, así que deslizar no vuelve a tirar tus dados.
Variables
Las variables de chat persisten por rama de conversación; las globales persisten en todos los chats. Defínelas en cualquier texto con macros o desde scripts de disparadores.
{{setvar::mood::happy}}
{{getvar::mood}}
{{setglobalvar::visits::1}}El almacenamiento por rama significa que deslizar a otra rama restaura su estado de variables; las ramas hermanas nunca se filtran valores entre sí.
Bloques
Los bloques envuelven contenido: if solo renderiza su cuerpo si la condición es verdadera, each recorre arrays con sustitución de hueco, y when añade ramas else por línea.
{{#if {{equal::{{getvar::mood}}::happy}}}}
{{char}} is in a great mood.
{{/if}}
{{#each {{array::red::green::blue}} item}}
Color: {{slot::item}}
{{/each}}pure y escape protegen las llaves literales de la expansión; cualquier cierre cierra el bloque abierto más interno.
Comentarios y literales
Las macros de comentario desaparecen antes de que el modelo las vea, ideales para notas dentro de los campos de la tarjeta. Usa bloques pure cuando necesites mostrar sintaxis de macros literalmente.
{{// note to self, never sent to the model}}
{{#pure}}{{char}} stays literal here{{/pure}}