HyTari Studios · Guía visual oficial

Menu Info Pages

Aprende JSON viendo el resultado.

Una referencia visual práctica para configurar MenuInfoPages. Empieza por la ventana central, crea la navegación en las barras laterales y después personaliza los accesos O-Key y los objetos interactivos. Cada ejemplo incluye JSON copiable y una representación simplificada del resultado.

Lee esto primero

Primeros pasos

PASO 01

Activar los tutoriales

En config.json, establece languages.es-ES.enabled y demo en true. El paquete Full incluye tutoriales en 25 idiomas.

PASO 02

Crear una página

Usa /infopages newpage <name> <command> o crea un archivo JSON dentro de mods/MenuInfoPages/pages/es-ES/.

PASO 03

Recargar y probar

Ejecuta /infopages reload después de cambiar contenido o imágenes. Un nuevo comando de jugador o un cambio estructural en ItemCommands puede requerir reiniciar el servidor.

Estos ejemplos se basan en la configuración JSON y los archivos de tutorial incluidos en la edición Full actual. Las vistas previas son diagramas educativos, no capturas de pantalla ni un renderizado nativo de la interfaz de Hytale. Sustituye los comandos, destinos y nombres PNG de ejemplo por recursos disponibles en tu servidor. Conserva una copia de seguridad de los archivos existentes.

CAPÍTULO 01 · 10 EJEMPLOS

GUI central

Empieza por la propia página: texto, secciones, imágenes, botones, permisos y AutoOpen.

01JSON de página

Tu primera página

Un archivo JSON crea una página con su propio comando, título e introducción.

Configuración JSON
{
  "command": "welcome",
  "title": "BIENVENIDO A NUESTRO SERVIDOR",
  "intro": "¡Hola {player}! Aquí tienes todo lo que necesitas para empezar.",
  "images": [],
  "sections": [
    {
      "title": "PRIMEROS PASOS",
      "text": "¡Lee las reglas, encuentra un lugar para construir y disfruta de la aventura!",
      "images": []
    }
  ],
  "buttons": [],
  "footer": "¡Disfruta de tu estancia!"
}

pages/es-ES/welcome.json

Resultado visualVista previa esquemática
MENUINFOPAGES · ESQUEMA×

BIENVENIDO A NUESTRO SERVIDOR

¡Hola Alex! Aquí tienes todo lo que necesitas para empezar.

PRIMEROS PASOS

¡Lee las reglas, encuentra un lugar para construir y disfruta de la aventura!

¡Disfruta de tu estancia!

El nombre del archivo puede ser distinto del comando. Los nuevos comandos de jugador pueden requerir reiniciar el servidor después de crearlos.

02JSON de página

Texto enriquecido y placeholders

Da formato al texto e inserta información dinámica del jugador y del servidor.

Configuración JSON
{
  "command": "player-info",
  "title": "INFORMACIÓN DEL JUGADOR",
  "intro": "{center}{#54DAF4}{b}¡Bienvenido de nuevo, {player}!{/}{/}",
  "images": [],
  "sections": [
    {
      "title": "{#F894FF}{b}TUS DATOS{/}{/}",
      "text": "{b}Jugador:{/} {player}\n{b}Mundo:{/} {world}\n{b}En línea:{/} {online}/{max_players}\n{m}Información útil del servidor{/}",
      "images": []
    }
  ],
  "buttons": []
}

pages/es-ES/player-info.json

Resultado visualVista previa esquemática
MENUINFOPAGES · ESQUEMA×

INFORMACIÓN DEL JUGADOR

¡Bienvenido de nuevo, Alex!{/}{/}

TUS DATOS{/}{/}

Jugador:{/} Alex Mundo:{/} Survival En línea:{/} 12/256 Información útil del servidor{/}

El texto enriquecido lo renderiza Hytale. La vista esquemática elimina los tokens de formato en lugar de reproducir el renderizador nativo de fuentes.

03JSON de página

Colores de fondo de las secciones

Combina secciones estándar, transparentes y con color HEX en el mismo menú.

Configuración JSON
{
  "command": "colors",
  "title": "SECCIONES PERSONALIZADAS",
  "intro": "Elige un estilo visual para cada área de contenido.",
  "images": [],
  "sections": [
    {
      "title": "PREDETERMINADO",
      "text": "Estilo nativo de la sección.",
      "backgroundColor": "default",
      "images": []
    },
    {
      "title": "TRANSPARENTE",
      "text": "Se elimina el panel de fondo.",
      "backgroundColor": "none",
      "images": []
    },
    {
      "title": "HEX PERSONALIZADO",
      "text": "Un color personalizado para la sección.",
      "backgroundColor": "#243D59",
      "images": []
    }
  ],
  "buttons": []
}

pages/es-ES/colors.json

Resultado visualVista previa esquemática
MENUINFOPAGES · ESQUEMA×

SECCIONES PERSONALIZADAS

Elige un estilo visual para cada área de contenido.

PREDETERMINADO

Estilo nativo de la sección.

TRANSPARENTE

Se elimina el panel de fondo.

HEX PERSONALIZADO

Un color personalizado para la sección.

Usa backgroundColor en la sección individual, no en toda la página.

04JSON de página

Introducción e imágenes de cabecera fijas

Una introducción y hasta seis imágenes permanecen sobre las secciones desplazables.

Configuración JSON
{
  "command": "header",
  "title": "NUESTRA COMUNIDAD",
  "intro": "{center}Explora el servidor y sus funciones.",
  "images": [
    {
      "image": "server-logo.png"
    },
    {
      "image": "welcome-banner.png"
    }
  ],
  "sections": [
    {
      "title": "CONTENIDO DESPLAZABLE",
      "text": "Esta sección se desplaza mientras la introducción y las imágenes de cabecera permanecen visibles.",
      "images": []
    }
  ],
  "buttons": []
}

pages/es-ES/header.json

Resultado visualVista previa esquemática
MENUINFOPAGES · ESQUEMA×

NUESTRA COMUNIDAD

Explora el servidor y sus funciones.

server-logo.png
welcome-banner.png
CONTENIDO DESPLAZABLE

Esta sección se desplaza mientras la introducción y las imágenes de cabecera permanecen visibles.

Coloca server-logo.png y welcome-banner.png en mods/MenuInfoPages/images/ antes de abrir la página. Usa archivos PNG; se recomienda mantener cada archivo por debajo de 2 MB para una carga más rápida, pero no es obligatorio.

05JSON de página

Varias imágenes en una sección

Coloca hasta seis imágenes en una sección. Se distribuyen en celdas horizontales del mismo tamaño.

Configuración JSON
{
  "command": "places",
  "title": "LUGARES PARA VISITAR",
  "intro": "Elige un destino.",
  "images": [],
  "sections": [
    {
      "title": "DESTINOS",
      "text": "Elige adónde quieres ir.",
      "images": [
        {
          "image": "spawn.png",
          "command": "spawn",
          "runAs": "player",
          "close": true,
          "delayMs": 100
        },
        {
          "image": "market.png",
          "command": "warp market",
          "runAs": "player",
          "close": true,
          "delayMs": 100
        },
        {
          "image": "website.png",
          "command": "https://example.org",
          "close": false
        }
      ]
    }
  ],
  "buttons": []
}

pages/es-ES/places.json

Resultado visualVista previa esquemática
MENUINFOPAGES · ESQUEMA×

LUGARES PARA VISITAR

Elige un destino.

DESTINOS

Elige adónde quieres ir.

spawn.png
market.png
website.png

Cada nombre de archivo representa un PNG que proporcionas dentro de mods/MenuInfoPages/images/.

06JSON de página

Botones dentro de una sección

Da a una sección sus propias acciones interactivas primary, secondary y danger.

Configuración JSON
{
  "command": "section-actions",
  "title": "COMANDOS ÚTILES",
  "intro": "Los distintos estilos de botones facilitan identificar las acciones.",
  "images": [],
  "sections": [
    {
      "title": "NAVEGACIÓN",
      "text": "Una sección puede contener texto, imágenes y botones.",
      "images": [],
      "buttons": [
        {
          "text": "SPAWN",
          "command": "spawn",
          "runAs": "player",
          "close": true,
          "delayMs": 250,
          "style": "primary"
        },
        {
          "text": "REGLAS DEL SERVIDOR",
          "page": "rules",
          "style": "secondary"
        },
        {
          "text": "EJEMPLO DANGER",
          "style": "danger"
        }
      ]
    }
  ],
  "buttons": []
}

pages/es-ES/section-actions.json

Resultado visualVista previa esquemática
MENUINFOPAGES · ESQUEMA×

COMANDOS ÚTILES

Los distintos estilos de botones facilitan identificar las acciones.

NAVEGACIÓN

Una sección puede contener texto, imágenes y botones.

SPAWN
REGLAS DEL SERVIDOR
EJEMPLO DANGER

Usa page para abrir directamente otra página MenuInfoPages. Usa command para ejecutar comandos; runAs: console solo debe emplearse con acciones de confianza.

07JSON de página

Barra de acciones inferior

Coloca hasta seis acciones en la parte inferior, separadas de las secciones desplazables.

Configuración JSON
{
  "command": "shortcuts",
  "title": "ACCIONES RÁPIDAS",
  "intro": "Accesos habituales reunidos en un solo lugar.",
  "images": [],
  "sections": [
    {
      "title": "AYUDA",
      "text": "Elige una acción abajo.",
      "images": []
    }
  ],
  "buttons": [
    {
      "text": "REGLAS",
      "page": "rules",
      "style": "primary"
    },
    {
      "text": "SPAWN",
      "command": "spawn",
      "runAs": "player",
      "close": true,
      "delayMs": 250,
      "style": "secondary"
    },
    {
      "text": "SITIO WEB",
      "command": "https://example.org",
      "style": "secondary"
    }
  ]
}

pages/es-ES/shortcuts.json

Resultado visualVista previa esquemática
MENUINFOPAGES · ESQUEMA×

ACCIONES RÁPIDAS

Accesos habituales reunidos en un solo lugar.

AYUDA

Elige una acción abajo.

REGLAS
SPAWN
SITIO WEB

Los destinos como rules o warp market deben existir en tu servidor. Un destino page es el comando interno de una página MenuInfoPages.

08JSON de página

Permisos de página

Añade un nodo de permiso opcional para restringir una página a usuarios autorizados.

Configuración JSON
{
  "command": "staff-info",
  "permission": "server.staff",
  "title": "INFORMACIÓN DEL STAFF",
  "intro": "Información restringida a jugadores autorizados.",
  "images": [],
  "sections": [
    {
      "title": "NOTAS DEL STAFF",
      "text": "Solo los jugadores con el permiso server.staff pueden abrir esta página.",
      "images": []
    }
  ],
  "buttons": []
}

pages/es-ES/staff-info.json

Resultado visualVista previa esquemática
MENUINFOPAGES · ESQUEMA×

INFORMACIÓN DEL STAFF

Información restringida a jugadores autorizados.

NOTAS DEL STAFF

Solo los jugadores con el permiso server.staff pueden abrir esta página.

El nodo de permiso es un ejemplo. Concédelo mediante el sistema de permisos de tu servidor. AutoOpen también respeta los permisos de página.

09JSON de página

Apertura automática al entrar

Muestra una página de bienvenida una vez, siempre o hasta que el jugador la descarte.

Configuración JSON
{
  "autoOpen": {
    "enabled": true,
    "mode": "dismissible",
    "version": 1,
    "worlds": [],
    "delayMs": 1500
  },
  "command": "server-guide",
  "title": "GUÍA DEL SERVIDOR",
  "intro": "¡Bienvenido! Marca No volver a mostrar para ocultar esta página en futuras conexiones.",
  "images": [],
  "sections": [
    {
      "title": "PRIMEROS PASOS",
      "text": "Lee nuestras reglas y aprende a moverte por el servidor.",
      "images": []
    }
  ],
  "buttons": []
}

pages/es-ES/server-guide.json

Resultado visualVista previa esquemática
MENUINFOPAGES · ESQUEMA×

GUÍA DEL SERVIDOR

¡Bienvenido! Marca No volver a mostrar para ocultar esta página en futuras conexiones.

PRIMEROS PASOS

Lee nuestras reglas y aprende a moverte por el servidor.

Configura autoOpen en la versión de esta página correspondiente al idioma de respaldo. No actives páginas AutoOpen solapadas para el mismo mundo: si coinciden varias páginas, ninguna se abrirá automáticamente.

10JSON de configuración

Activar los tutoriales incluidos

Elige los idiomas cargados independientemente de aquellos para los que se generan páginas de demostración.

Configuración JSON
{
  "fallbackLanguage": "en-US",
  "languages": {
    "en-US": {
      "enabled": true,
      "demo": true
    },
    "it-IT": {
      "enabled": true,
      "demo": false
    },
    "de-DE": {
      "enabled": true,
      "demo": false
    }
  }
}

config.json — top-level fields

Resultado visualVista previa esquemática

Ajustes de idioma

en-USCargado · Demo ON
it-ITCargado · Demo OFF
de-DECargado · Demo OFF

El idioma del cliente selecciona la traducción de la página; las traducciones que falten usan el idioma de respaldo configurado.

La edición Full incluye 25 carpetas de idioma. enabled y demo deben estar en true para que se generen las páginas de tutorial de un idioma. Pon demo en false cuando ya no las necesites.

CAPÍTULO 03 · 4 EJEMPLOS

O-Key & HUD

Crea accesos rápidos, posiciona sus indicadores y configura el comportamiento por mundo.

01JSON de configuración

Acceso O-Key global

Define el comando predeterminado, los permisos y el indicador HUD para cada mundo.

Configuración JSON
{
  "O-Key": {
    "Enabled": true,
    "RequirePermission": false,
    "Permission": "menuinfopages.okey",
    "OpPermission": "hytale.command.gamemode",
    "AllWorlds": {
      "Command": "menuinfopages",
      "OpCommand": "menuinfopages",
      "AppliesOnOP": true,
      "CooldownMs": 250,
      "Hud": {
        "Enabled": true,
        "Horizontal": "right:-8",
        "Vertical": "top:245",
        "Title": "menuinfopages.hud.okey.press",
        "Image": "default",
        "Width": 112,
        "Height": 112
      }
    }
  }
}

config.json — O-Key object

Resultado visualVista previa esquemática

O-Key · HUD ilustrativo

O

Representación de la pantalla de juego

Posición del HUD: right:-8, top:245. Los comandos y el comportamiento se configuran en config.json.

Edita el objeto O-Key existente en lugar de sustituir todo tu config.json. El valor default de la imagen HUD hace referencia al icono incluido.

02JSON de configuración

Centrar el HUD de O-Key

Usa center de forma independiente en cualquiera de los ejes y ajusta el otro eje desde un borde.

Configuración JSON
{
  "Hud": {
    "Enabled": true,
    "Image": "default",
    "Width": 112,
    "Height": 112,
    "Horizontal": "center",
    "Vertical": "top:190"
  }
}

config.json — O-Key.AllWorlds.Hud

Resultado visualVista previa esquemática

O-Key · HUD ilustrativo

O

Representación de la pantalla de juego

Posición del HUD: center, top:190. Los comandos y el comportamiento se configuran en config.json.

Este ejemplo es un objeto Hud parcial; integra estos valores en la configuración O-Key.AllWorlds.Hud existente.

03JSON de configuración

Overrides por mundo e instancia

Asigna otro acceso a mundos específicos, incluidas las instancias generadas con un wildcard final.

Configuración JSON
{
  "WorldOverrides": [
    {
      "Worlds": [
        "Survival"
      ],
      "Enabled": true,
      "Command": "welcome",
      "Hud": {
        "Enabled": true,
        "Horizontal": "right:-5",
        "Vertical": "center"
      }
    },
    {
      "Worlds": [
        "instance-Forgotten_Temple-*"
      ],
      "Enabled": true,
      "Command": "server-guide",
      "Hud": {
        "Enabled": true,
        "Horizontal": "center",
        "Vertical": "top:190"
      }
    }
  ]
}

config.json — O-Key.WorldOverrides

Resultado visualVista previa esquemática

O-Key · HUD ilustrativo

O

Representación de la pantalla de juego

Survival → /welcome
instance-Forgotten_Temple-* → /server-guide

Se admite un único * final en un prefijo de nombre de mundo. Los nombres exactos tienen prioridad sobre los patrones wildcard; si no, gana el prefijo coincidente más largo.

04JSON de configuración

Imagen O-Key personalizada

Usa tu propio PNG con tamaño y posición configurables.

Configuración JSON
{
  "Hud": {
    "Enabled": true,
    "Image": "okey-survival.png",
    "Width": 300,
    "Height": 200,
    "Horizontal": "right:-5",
    "Vertical": "top:138"
  }
}

config.json — O-Key.AllWorlds.Hud

Resultado visualVista previa esquemática

O-Key · HUD ilustrativo

O

Representación de la pantalla de juego

Posición del HUD: right:-5, top:138. Los comandos y el comportamiento se configuran en config.json.

Coloca okey-survival.png en mods/MenuInfoPages/images/. Ajusta Width/Height a la proporción del PNG, por ejemplo 600×400 mostrado como 300×200.

CAPÍTULO 04 · 2 EJEMPLOS

ItemCommands

Crea objetos con comandos separados para clic izquierdo y derecho.

01JSON de configuración

Activar un objeto de demostración

El ejemplo incluido proporciona un objeto fuente interactivo con acciones separadas para clic izquierdo y derecho.

Configuración JSON
{
  "itemCommands": {
    "enabled": true,
    "items": [
      {
        "id": "demo",
        "sourceItem": "MenuInfoPages_Demo_Grimoire_Source",
        "name": "Páginas Demo",
        "quality": "",
        "leftClickCommand": "menuinfopages",
        "rightClickCommand": "menuinfopages"
      }
    ]
  }
}

config.json — itemCommands object

Resultado visualVista previa esquemática

ItemCommands · mapa de interacciones

Páginas Demo

Clic izquierdo/menuinfopages
Clic derecho/menuinfopages

Este es el ID real del objeto fuente del ejemplo incluido. A diferencia de los cambios de página, las modificaciones estructurales de los items pueden requerir reiniciar el servidor.

02JSON de configuración

Comandos izquierdo y derecho separados

Usa un objeto existente de Hytale o de un mod instalado como fuente de un nuevo acceso interactivo.

Configuración JSON
{
  "itemCommands": {
    "enabled": true,
    "items": [
      {
        "id": "server-shortcuts",
        "sourceItem": "MenuInfoPages_Demo_Grimoire_Source",
        "name": "Accesos del servidor",
        "quality": "",
        "leftClickCommand": "welcome",
        "rightClickCommand": "spawn"
      }
    ]
  }
}

config.json — itemCommands object

Resultado visualVista previa esquemática

ItemCommands · mapa de interacciones

Accesos del servidor

Clic izquierdo/welcome
Clic derecho/spawn

Sustituye sourceItem por el ID real de un objeto instalado en tu servidor y elige comandos existentes a los que los jugadores tengan acceso. ItemCommands es independiente del JSON de las páginas.

Antes de usar un ejemplo

Ejemplos de página completos: Coloca cada objeto JSON en su propio archivo dentro de mods/MenuInfoPages/pages/es-ES/. Mantén distinto el comando de cada página y traduce los archivos correspondientes en las demás carpetas de idioma cuando sea necesario.

Ejemplos de configuración: Los objetos O-Key e ItemCommands son fragmentos de tu config.json existente. Integra las propiedades mostradas en su ubicación correcta; nunca sustituyas todo el archivo de configuración por un ejemplo pequeño.

Configuración segura: Coloca los PNG mencionados en la carpeta de imágenes prevista. Para obtener un mejor rendimiento se recomienda, aunque no es obligatorio, mantener cada imagen por debajo de 2 MB; los archivos más grandes pueden necesitar más tiempo y memoria para cargar. Los comandos de demostración, destinos de navegación, nodos de permiso y URL externas son marcadores para recursos que tú proporcionas. Evita ejecutar comandos con privilegios elevados para jugadores no confiables.

Esquema actual: Esta guía documenta el sistema actual sections, leftContent y rightContent; un posible modelo unificado content/cells futuro no se presenta como una función ya disponible.

VOLVER ARRIBA