Referencia 11 tipos UIElementType

Tipos de UI

Referencia completa de todos los tipos de elementos disponibles en EventUI. Cada tipo tiene sus propias propiedades y comportamiento dentro del árbol de la pantalla.

Resumen

IMAGE
Textura estática. Fondos, títulos, decoración.
IMAGE_BUTTON
Botón con textura personalizada, ícono, hover y sonidos.
BUTTON
Botón de texto estilo vanilla de Minecraft.
TEXT
Texto con colores MiniMessage y data binding.
PROGRESS_BAR
Barra de progreso vinculada a un objetivo de evento.
PANEL
Contenedor con fondo de color. Agrupa hijos.
ICON
Sprite 2D de un ítem de Minecraft. Solo visual.
TOOLTIP
Texto flotante al pasar el cursor. Solo como hijo.
ENTITY_RENDER
Entidad viva en 3D con rotación y escala.
ITEM_RENDER
Modelo 3D de ítem con rotación.
BLOCK_RENDER
Modelo 3D de bloque con rotación.

Campos comunes

Todos los elementos comparten estos campos base independientemente del tipo:

CampoObligatorioDefaultDescripción
id✅ SíIdentificador único dentro del archivo de UI.
type✅ SíTipo del elemento en mayúsculas.
x✅ SíPosición X. Con anchor actúa como offset.
y✅ SíPosición Y. Con anchor actúa como offset.
widthNo100Ancho en píxeles de UI.
heightNo20Alto en píxeles de UI.
z_indexNo0Orden de capas. Mayor valor = encima.
visibleNotrueVisibilidad estática del elemento.
propertiesVaríaPropiedades específicas del tipo.
childrenNoElementos hijos anidados.

Además, dentro de properties cualquier tipo puede usar:

PropiedadDescripción
anchorPunto de anclaje relativo a la pantalla. Ver sistema de anclas.
anchor_offset_xDesplazamiento X adicional desde el punto de ancla.
anchor_offset_yDesplazamiento Y adicional desde el punto de ancla.
visible_ifCondición de visibilidad basada en variables de estado. Ver data binding.

IMAGE

Renderiza una textura de Minecraft o de un resource pack como imagen estática. Es el elemento más básico — ideal para fondos, títulos decorativos y separadores.

Ejemplo
- id: "fondo"
  type: IMAGE
  x: 0
  y: 0
  width: 500
  height: 350
  properties:
    texture: "eventui:textures/ui/fondo.png"
texture ✅ req
ResourceLocation de la textura. Formato: namespace:textures/ruta/archivo.png
Si la textura no existe en el resource pack del cliente, el elemento se renderiza como un rectángulo gris (0x808080). No lanza error en consola del servidor.

IMAGE_BUTTON

El elemento más completo del sistema. Botón con textura personalizada que soporta íconos, animaciones de hover, sonidos, hitbox preciso y texturas dinámicas según el estado del evento vinculado.

Ejemplo completo
- id: "btn-mision"
  type: IMAGE_BUTTON
  x: 0
  y: 0
  width: 64
  height: 64
  properties:
    anchor: "center"
    anchor_offset_x: -100
    anchor_offset_y: 0

    # Texturas
    texture: "eventui:textures/ui/btn.png"
    hover_texture: "eventui:textures/ui/btn_hover.png"
    in_progress_texture: "eventui:textures/ui/btn_inprogress.png"
    completed_texture: "eventui:textures/ui/btn_completed.png"

    # Ícono de ítem
    icon: "minecraft:diamond"
    icon_scale: "0.8"

    # Hover
    hover_animation: "zoom_in"
    hover_animation_intensity: "1.15"
    hover_animation_duration: "200"
    hover_animation_easing: "ease_out"
    hover_hitbox: "texture_alpha"

    # Sonidos
    hover_sound: "minecraft:ui.toast.in"
    hover_sound_volume: "1.0"
    hover_sound_pitch: "1.3"
    click_sound: "minecraft:item.book.page_turn"
    click_sound_volume: "1.0"
    click_sound_pitch: "1.0"

    # Visibilidad y acción
    visible_if: "mision_activa == true"
    action: "open:misiones-menu"
texture ✅ req
Textura base del botón.
hover_texture opt
Textura al pasar el cursor.
in_progress_texture opt
Textura cuando el evento vinculado está IN_PROGRESS.
completed_texture opt
Textura cuando el evento vinculado está COMPLETED.
icon opt
ResourceLocation del ítem renderizado encima de la textura como sprite 2D.
icon_scale opt
Escala del ícono. "1" = tamaño normal, "0.7" = 70%. Default: "1".
hover_animation opt
Tipo de animación hover. Ver referencia de animaciones.
hover_animation_intensity opt
Intensidad de la animación. Significado varía por tipo.
hover_animation_duration opt
Duración en ms. Default: "200".
hover_animation_easing opt
linear, ease_in, ease_out, ease_in_out. Default: "ease_out".
hover_hitbox opt
"box": rectángulo completo (default). "texture_alpha": solo píxeles opacos de la textura.
hover_sound opt
ResourceLocation del sonido al hacer hover.
hover_sound_volume opt
Volumen hover (0.0 – 2.0).
hover_sound_pitch opt
Tono hover.
click_sound opt
Sonido al hacer clic. Vacío = sonido por defecto del sistema.
click_sound_volume opt
Volumen clic.
click_sound_pitch opt
Tono clic.
visible_if opt
Condición de visibilidad. Ver data binding.
action opt
Acción al hacer clic. Ver tabla de acciones abajo.

BUTTON

Botón de texto estilo vanilla de Minecraft. Renderiza el fondo estándar del juego con texto centrado. Ideal para acciones simples como cerrar una pantalla.

Ejemplo
- id: "btn-cerrar"
  type: BUTTON
  x: 150
  y: 260
  width: 100
  height: 22
  properties:
    text: "§7← Cerrar"
    action: "close"
text ✅ req
Texto del botón. Acepta códigos § para colores.
action opt
Acción al hacer clic.

TEXT

Renderiza texto con soporte para colores, alineación, sombra y data binding dinámico con {{variables}}.

Ejemplo con data binding
- id: "texto-progreso"
  type: TEXT
  x: 250
  y: 80
  width: 480
  height: 20
  properties:
    content: "§7Progreso: §e{{event.currentProgress}}§7/§e{{event.targetProgress}}"
    align: "center"
    shadow: "true"
content ✅ req
Texto a mostrar. Acepta códigos §, MiniMessage y variables {{...}}.
align opt
"left" (default), "center", "right".
shadow opt
"true" activa la sombra bajo el texto. Default: "false".

PROGRESS_BAR

Barra de progreso que lee automáticamente el avance de un objetivo específico de un evento.

Ejemplo
- id: "barra-zombies"
  type: PROGRESS_BAR
  x: 68
  y: 190
  width: 128
  height: 8
  properties:
    event_id: "matar-zombies"
    objective_id: "kill-zombies"
    color: "5cb85c"
    background_color: "2a2a2a"
event_id ✅ req
ID del evento del que tomar el progreso.
objective_id ✅ req
ID del objetivo específico dentro del evento.
color opt
Color del relleno en hexadecimal sin #. Default: verde.
background_color opt
Color del fondo en hexadecimal sin #. Default: gris oscuro.

PANEL

Contenedor con fondo de color sólido. Funciona como un grupo visual — sus hijos se renderizan con posición relativa al panel. Útil para agrupar elementos con un fondo común.

Ejemplo
- id: "panel-info"
  type: PANEL
  x: 50
  y: 100
  width: 200
  height: 80
  properties:
    color: "1a1a1a"
    alpha: "180"
  children:
    - id: "texto-panel"
      type: TEXT
      x: 10
      y: 10
      width: 180
      height: 20
      properties:
        content: "§eInformación"
        shadow: "true"
color opt
Color de fondo en hexadecimal sin #.
alpha opt
Opacidad del fondo (0–255). Default: "255" (opaco).

ICON

Renderiza el sprite 2D de un ítem de Minecraft — el mismo icono que ves en el inventario. A diferencia de IMAGE_BUTTON, no tiene hover, clic ni animaciones. Es puramente decorativo.

Ejemplo
- id: "icono-diamante"
  type: ICON
  x: 100
  y: 50
  width: 16
  height: 16
  properties:
    item: "minecraft:diamond"
item ✅ req
ResourceLocation del ítem a mostrar. Solo ítems de Minecraft vanilla.

TOOLTIP

Muestra información al pasar el cursor sobre el elemento padre. Solo funciona como hijo (children) de otro elemento — no puede usarse como elemento raíz de la pantalla.

render_type: "standard" — fondo vanilla
children:
  - id: "tooltip-info"
    type: TOOLTIP
    x: 0
    y: 0
    width: 0
    height: 0
    properties:
      render_type: "standard"
      content: "§eNombre del objeto\n§7Descripción aquí"
      shadow: "true"
render_type: "text" — texto flotante sin fondo
children:
  - id: "tooltip-texto"
    type: TOOLTIP
    x: 0
    y: 0
    width: 0
    height: 0
    properties:
      render_type: "text"
      content: "Texto flotante sin fondo"
      shadow: "true"
render_type: "advanced" — receta de crafting
children:
  - id: "tooltip-receta"
    type: TOOLTIP
    x: 0
    y: 0
    width: 0
    height: 0
    properties:
      render_type: "advanced"
      content: |
        recipe: minecraft:diamond_chestplate [frame:eventui:textures/ui/crafting_frame.png]
render_typeDescripción
standardFondo estilo vanilla de Minecraft. Soporta \n y códigos §. Soporta también alineación con offset_x y offset_y.
textTexto flotante sin fondo. Soporta shadow, alineación (left, center, right) y saltos de línea con \n, <br> o <newline>.
advancedTooltip enriquecido con secciones: TEXT, ITEM, RECIPE, ENTITY, IMAGE, SEPARATOR.

ENTITY_RENDER

Renderiza una entidad viva en 3D dentro de la UI con animaciones y rotación. Compatible con entidades de Minecraft y de mods. Las entidades se cachean en memoria para mejor rendimiento.

Ejemplo
- id: "render-zombie"
  type: ENTITY_RENDER
  x: 100
  y: 100
  width: 50
  height: 50
  properties:
    entity: "minecraft:zombie"
    scale: "35"
    rotation_mode: "spin"
    spin_speed: "0.5"
    y_offset: "0"
entity ✅ req
ResourceLocation de la entidad. Ejemplo: minecraft:zombie, modid:entidad.
scale opt
Tamaño del render. Mayor = más grande. Default: "30".
rotation_mode opt
"spin": rotación continua. "fixed": sin rotación. "follow_mouse": mira al cursor.
spin_speed opt
Velocidad de rotación en modo spin. Default: "0.5".
y_offset opt
Desplazamiento vertical del modelo. Default: "0".

ITEM_RENDER

Renderiza un ítem de Minecraft como modelo 3D completo — muestra el modelo con iluminación, a diferencia de ICON que muestra el sprite 2D plano.

Ejemplo
- id: "render-espada"
  type: ITEM_RENDER
  x: 120
  y: 80
  width: 32
  height: 32
  properties:
    item: "minecraft:diamond_sword"
    scale: "2.0"
    rotation_x: "20"
    rotation_y: "45"
item ✅ req
ResourceLocation del ítem. Solo ítems de Minecraft vanilla.
scale opt
Escala del modelo. Default: "1.0".
rotation_x opt
Rotación en eje X en grados.
rotation_y opt
Rotación en eje Y en grados.

BLOCK_RENDER

Renderiza un bloque de Minecraft como modelo 3D isométrico.

Ejemplo
- id: "render-diamante"
  type: BLOCK_RENDER
  x: 150
  y: 100
  width: 48
  height: 48
  properties:
    block: "minecraft:diamond_block"
    scale: "1.5"
    rotation_y: "30"
block ✅ req
ResourceLocation del bloque. Solo bloques de Minecraft vanilla.
scale opt
Escala del modelo. Default: "1.0".
rotation_y opt
Rotación en eje Y en grados.

Acciones de botones

Los elementos BUTTON e IMAGE_BUTTON ejecutan una acción al hacer clic:

AcciónDescripción
open:<id>Abre otra pantalla por su id. Agrega la actual a la pila de navegación.
closeCierra la pantalla actual.
backVuelve a la pantalla anterior en la pila de navegación.
start_event:<id>Inicia el evento indicado en el servidor.
abandon_event:<id>Abandona el evento. Pide confirmación si no es repetible.
none o vacíoSin acción — el botón es decorativo.
Las acciones start_event y abandon_event se envían al servidor vía el bridge. El cliente no modifica el progreso directamente — espera la respuesta del servidor.