Skip to content

Esquema del Mundo

Un mundo de Yumina se almacena como un objeto JSON llamado WorldDefinition. Este es el esquema completo.

Estructura de nivel superior

json
{
  "id": "uuid",
  "version": "20.0.0",
  "name": "World Name",
  "description": "Short description",
  "author": "Creator Name",
  "language": "en",

  "entries": [],
  "variables": [],
  "rules": [],
  "reactions": [],

  "rootComponent": null,
  "components": [],
  "audioTracks": [],
  "bgmPlaylist": null,
  "conditionalBGM": [],
  "customUI": [],

  "entryFolders": [],
  "customTags": [],
  "customTagColors": {},
  "editorMode": "advanced",

  "settings": {
    "maxTokens": 12000,
    "maxContext": 200000,
    "temperature": 1.0,
    "topP": 1,
    "frequencyPenalty": 0,
    "presencePenalty": 0,
    "playerName": "Player",
    "lorebookScanDepth": 2,
    "lorebookRecursionDepth": 0
  }
}

Referencia de campos

Identidad

CampoTipoDescripción
idstringUUID, autogenerado
versionstringVersión del esquema, actualmente "20.0.0"
namestringNombre del mundo (1-200 caracteres)
descriptionstringDescripción corta (0-10,000 caracteres)
authorstringNombre visible del creador
languagestring (opcional)Código de idioma BCP 47 ("en", "zh", "ja", etc.). Presente en la interfaz TypeScript pero opcional en el esquema Zod.

Contenido

CampoTipoDescripción
entriesWorldEntry[]Todo el contenido que lee la IA — personajes, lore, reglas, saludos
variablesVariable[]Definiciones de estado del juego con reglas de comportamiento
rulesRule[]Disparadores de automatización WHEN/IF/THEN
reactionsReaction[] (opcional)Reglas basadas en patrones de eventos (sistema más nuevo). Puede ser undefined.

Presentación

CampoTipoDescripción
rootComponentRootComponent | nullSistema de archivos virtual de UI personalizada (React/TSX)
componentsGameComponent[]Componentes de UI integrados (barras de estadística, etc.)
audioTracksAudioTrack[]Pistas de BGM, SFX y ambiente
bgmPlaylistBGMPlaylist | nullConfiguración de música de reproducción automática
conditionalBGMConditionalBGM[]Música activada por estado
customUICustomUIComponent[]Sistema de UI heredado (usa rootComponent en su lugar)

Organización

CampoTipoDescripción
entryFoldersEntryFolder[]Estructura de carpetas para organizar entradas
customTagsstring[]Etiquetas definidas por el creador para entradas
customTagColorsRecord<string, string>Clases de color de Tailwind para etiquetas personalizadas
editorMode"simple" | "advanced"Nivel de complejidad del editor

Configuración

CampoTipoPredeterminadoDescripción
maxTokensnumber12000Tokens máximos por respuesta de la IA
maxContextnumber200000Tamaño máximo de la ventana de contexto
temperaturenumber1.0Creatividad de la IA (0.0-2.0)
topPnumber1Umbral de muestreo nucleus
frequencyPenaltynumber0Penalización por tokens repetidos
presencePenaltynumber0Penalización por tokens ya usados
playerNamestring"Player"Reemplazo predeterminado de {{user}}
lorebookScanDepthnumber2Cuántos turnos recientes escanear en busca de palabras clave
lorebookRecursionDepthnumber0Cuántos niveles de entradas-disparadas-disparando-entradas
topKinteger (opcional)Limita la cantidad de tokens candidatos (min: 0)
minPfloat (opcional)Umbral de probabilidad mínima (0-1)
structuredOutputboolean (opcional)falseFuerza el formato de salida JSON
lorebookBudgetPercentnumberObsoleto — los presupuestos de tokens fueron eliminados; ahora se incluyen todas las entradas activadas
lorebookBudgetCapintegerObsoleto — ver arriba
layoutModestringObsoleto — el layout es automático; el campo se ignora
uiModestringObsoleto — el layout es automático; el campo se ignora