Referencia 12 tipos UIElementType v1.0.1

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.
SKILL_TREE
Árbol de habilidades interactivo con nodos y conexiones.

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"
PropiedadObligatorioDefaultDescripción
texture✅ Sí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"
PropiedadObligatorioDefaultDescripción
texture✅ SíTextura base del botón.
hover_textureNoTextura al pasar el cursor.
in_progress_textureNoTextura cuando el evento vinculado está IN_PROGRESS.
completed_textureNoTextura cuando el evento vinculado está COMPLETED.
iconNoResourceLocation del ítem renderizado encima de la textura como sprite 2D.
icon_scaleNo"1"Escala del ícono. "1" = tamaño normal, "0.7" = 70%.
hover_animationNoTipo de animación hover. Ver referencia de animaciones.
hover_animation_intensityNoIntensidad de la animación. Significado varía por tipo.
hover_animation_durationNo"200"Duración en ms.
hover_animation_easingNo"ease_out"linear, ease_in, ease_out, ease_in_out.
hover_hitboxNo"box""box": rectángulo completo. "texture_alpha": solo píxeles opacos de la textura.
hover_soundNoResourceLocation del sonido al hacer hover.
hover_sound_volumeNo"1.0"Volumen hover (0.0 – 2.0).
hover_sound_pitchNo"1.0"Tono hover.
click_soundNoSonido al hacer clic. Vacío = sonido por defecto del sistema.
click_sound_volumeNo"1.0"Volumen clic.
click_sound_pitchNo"1.0"Tono clic.
visible_ifNoCondición de visibilidad. Ver data binding.
actionNoAcció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"
PropiedadObligatorioDefaultDescripción
text✅ SíTexto del botón. Acepta códigos § para colores.
actionNoAcció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"
PropiedadObligatorioDefaultDescripción
content✅ SíTexto a mostrar. Acepta códigos §, MiniMessage, saltos de línea (\n, \n\n) y variables {{...}}.
alignNo"left""left", "center", "right".
shadowNo"false""true" activa la sombra bajo el texto.
font_sizeNo"1.0"Escala del tamaño de fuente.
line_spacingNo"0"Espacio entre líneas dentro de un párrafo.
paragraph_spacingNo"10"Espacio entre párrafos.
anchor_offset_xNoDesplazamiento X adicional para anclas.
anchor_offset_yNoDesplazamiento Y adicional para anclas.

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"
PropiedadObligatorioDefaultDescripción
event_id✅ SíID del evento del que tomar el progreso.
objective_id✅ SíID del objetivo específico dentro del evento.
colorNoverdeColor del relleno en hexadecimal sin #.
background_colorNogris oscuroColor del fondo en hexadecimal sin #.

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"
PropiedadObligatorioDefaultDescripción
colorNoColor de fondo en hexadecimal sin #.
alphaNo"255"Opacidad del fondo (0–255).

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"
PropiedadObligatorioDefaultDescripción
item✅ Sí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. Compatible con entidades de mods. Las entidades muestran automáticamente sus animaciones de reposo (idle).

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"
PropiedadObligatorioDefaultDescripción
entity✅ SíResourceLocation de la entidad. Ejemplo: minecraft:zombie, modid:entidad.
scaleNo"30"Tamaño del render. Mayor = más grande.
rotation_modeNo"spin": rotación continua. "static" / "fixed": rotación estática fija. "follow_mouse": la entidad sigue al cursor de forma suave.
spin_speedNo"0.5"Velocidad de rotación en modo spin.
y_offsetNo"0"Desplazamiento vertical del modelo.

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"
PropiedadObligatorioDefaultDescripción
item✅ SíResourceLocation del ítem. Solo ítems de Minecraft vanilla.
scaleNo"1.0"Escala del modelo.
rotation_xNoRotación en eje X en grados.
rotation_yNoRotació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"
PropiedadObligatorioDefaultDescripción
block✅ SíResourceLocation del bloque. Solo bloques de Minecraft vanilla.
scaleNo"1.0"Escala del modelo.
rotation_yNoRotación en eje Y en grados.

SKILL_TREE

Renderiza un árbol de habilidades interactivo con nodos desbloqueables, conexiones visuales y efectos de animación. Los jugadores pueden gastar puntos para desbloquear habilidades.

Ejemplo
- id: "skill-tree-ui"
  type: SKILL_TREE
  x: 0
  y: 0
  width: 500
  height: 350
  properties:
    skill_tree_id: "combate"
    point_type: "combat_points"
PropiedadObligatorioDefaultDescripción
skill_tree_id✅ SíID del árbol de habilidades definido en skill_trees.yml.
point_type✅ SíTipo de puntos que este árbol consume (ej: "combat_points").

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.