Saltar al contenido principal

Quest Codex

La extensión Quest Codex proporciona un sistema de GUI totalmente personalizable para que los jugadores exploren, rastreen y gestionen misiones organizadas por categorías jerárquicas. Cada menú se construye mediante pools de diseño declarativos impulsados por la extensión GUI — sin menús codificados, personalización infinita.

Características

  • Categorías jerárquicas — Anida categorías mediante relaciones padre/hijo. Las subcategorías heredan la visibilidad de su padre.
    • Pools de diseño — Diseña cada menú mediante pools de diseño declarativos. Los placeholders (SORT_SLOT, CATEGORY_SLOT, QUEST_SLOT) se inyectan automáticamente.
    • Listas de misiones desplazables — Las ranuras de misión y categoría siguen los viewports scrollable, paginated y frame — crea cuadrículas de misiones con desplazamiento de cualquier tamaño (desde la 0.3.0).
    • Orden dinámico — Alterna entre Todas → No iniciadas → Activas → Completadas, con una visualización de botón por modo (etiqueta, lore, objeto personalizado).
    • Seguimiento de misiones — Rastrea las misiones activas con indicadores de prioridad mediante el sistema de seguimiento nativo de QuestExtension.
    • Diseño de sonido completo — Configura sonidos para la apertura del menú, los clics, el desplazamiento y los eventos de seguimiento/dejar de seguir misión.
    • Integración con BlueMap — Muestra iconos de misión en BlueMap con etiquetas dinámicas y reglas de visibilidad (versión BTC).

Arquitectura

Biblioteca de entradas

Configuración

  • Quest Codex Config — Sonidos globales, número de filas por defecto y plantillas de mensajes.

Sistema de categorías

  • Quest Category — Define una categoría con título, icono, padre y criterios de visibilidad.
    • Quest Assignment — Vincula entradas de misión a una categoría, con orden y sobrescrituras por estado.

Menú y visualización

  • Category Menu — Diseña menús con pools de diseño declarativos, ranuras de placeholder y botones de orden por modo.
    • Quest Lore — Sobrescribe las líneas de lore por misión y por estado.

Inicio rápido

  • 1. Añadir configuración global (opcional) — Crea una entrada Quest Codex Config en un JSON de página para personalizar sonidos y mensajes. La extensión funciona de fábrica sin esto — usa valores por defecto razonables. json { "type": "quest_codex", "id": "my_codex_config", "defaultRows": 5, "nowTrackingMessage": "<green>Now tracking: {quest}</green>" } Colócala en cualquier página compilada bajo plugins/Typewriter/pages/. → Quest Codex Config

  • 2. Definir categorías — Añade una entrada Quest Category. Define un grupo lógico de misiones en el códice con su título de visualización, su icono y un padre opcional para el anidamiento. Campos clave: - category — Nombre interno único (p. ej. main_quests) - title — Título de visualización mostrado a los jugadores (MiniMessage) - icon — Objeto mostrado en la lista de padre/categoría - parent — Déjalo vacío para el nivel superior, o defínelo para anidar → Quest Category

  • 3. Asignar misiones — Añade una entrada Quest Assignment para vincular tus misiones de QuestExtension a una categoría. Controla el orden y las sobrescrituras por estado. json { "type": "quest_assignment", "id": "assign_main", "category": "main_quests", "questRefs": ["quest:quest_main_1", "quest:quest_main_2"], "orders": [0, 1] } → Quest Assignment

  • 4. Diseñar menús — Añade una entrada Category Menu por cada categoría para la que quieras una GUI personalizada. Usa el pool de diseño para colocar: - CATEGORY_SLOT — Iconos de categoría autoinyectados (menú principal) - QUEST_SLOT — Botones de misión autoinyectados (menú de categoría) - SORT_SLOT — Botón de orden dinámico autoinyectado - Objetos GUI estándar — Objetos decorativos, rellenos, botones estáticos El pool de diseño usa el guiType CUSTOM. Todo es posicional: coloca los objetos en coordenadas (x, y). → Category Menu

  • 5. Abrir el menú — Accede al códice mediante un comando: /tw codex → menú principal del códice (desde la 0.3.0) /tw codex <category> → una categoría concreta Ejemplos: - /tw codex main_quests — Abre la categoría de misiones principales - /tw codex daily_tasks — Abre las tareas diarias > Menú principal: crea una entrada category_menu con una category vacía y marcadores CATEGORY_SLOT, o construye el hub como un menú open_gui de la extensión GUI cuyos botones ejecuten codex:open <category> y referéncialo en el mainMenuTrigger de la config — /tw codex y el botón BACK del códice lo abrirán entonces.

Comandos

ComandoPermissionDescripción
/tw codextypewriter.codex.openAbrir el menú principal del códice (category_menu de categoría vacía, o el mainMenuTrigger de la config).
/tw codex <category>typewriter.codex.openAbrir directamente una categoría de misiones concreta. Autocompletado disponible.

Placeholders

Prefijo: %typewriter_*%

Placeholders globales
PlaceholderDevuelveEjemplo
%typewriter_total_quests%Número total de misiones en todas las categorías42
%typewriter_total_completed%Total de misiones completadas15
%typewriter_total_in_progress%Total de misiones en progreso5
%typewriter_total_not_started%Total de misiones no iniciadas22
%typewriter_total_progress%Completadas/Total formateado15/42
Placeholders por categoría

Sustituye <name> por el identificador de la categoría (p. ej. main_quests).

PlaceholderDevuelveEjemplo
%typewriter_category_<name>%Total de misiones en la categoría10
%typewriter_category_<name>_completed%Completadas en la categoría3
%typewriter_category_<name>_in_progress%En progreso en la categoría2
%typewriter_category_<name>_not_started%No iniciadas en la categoría5
%typewriter_category_<name>_progress%Progreso formateado3/10

Alias: _inprogress% y _notstarted% también funcionan.

Variables de plantilla (en campos @Placeholder)
VariableContextoSustituida por
{quest}Plantillas de mensajeEl nombre de visualización de la misión
{completed}Mensajes de progresoNúmero de misiones completadas
{total}Mensajes de progresoTotal de misiones en la categoría

Permisos

PermissionDescripción
typewriter.codex.openAbrir el códice de misiones.

Dependencias

ExtensionRequeridoUso
QuestExtensionRequeridoMotor de misiones principal.
GUI ExtensionRequeridoRenderizado de menús y sistema de pool de diseño.
PlaceholderAPIOpcionalPara los campos @Placeholder.