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
Campos comunes
Todos los elementos comparten estos campos base independientemente del tipo:
| Campo | Obligatorio | Default | Descripció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. |
width | No | 100 | Ancho en píxeles de UI. |
height | No | 20 | Alto en píxeles de UI. |
z_index | No | 0 | Orden de capas. Mayor valor = encima. |
visible | No | true | Visibilidad estática del elemento. |
properties | Varía | — | Propiedades específicas del tipo. |
children | No | — | Elementos hijos anidados. |
Además, dentro de properties cualquier tipo puede usar:
| Propiedad | Descripción |
|---|---|
anchor | Punto de anclaje relativo a la pantalla. Ver sistema de anclas. |
anchor_offset_x | Desplazamiento X adicional desde el punto de ancla. |
anchor_offset_y | Desplazamiento Y adicional desde el punto de ancla. |
visible_if | Condició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.
- id: "fondo"
type: IMAGE
x: 0
y: 0
width: 500
height: 350
properties:
texture: "eventui:textures/ui/fondo.png"
namespace:textures/ruta/archivo.png0x808080). 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.
- 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"
IN_PROGRESS.COMPLETED."1" = tamaño normal, "0.7" = 70%. Default: "1"."200".linear, ease_in, ease_out, ease_in_out. Default: "ease_out"."box": rectángulo completo (default). "texture_alpha": solo píxeles opacos de la textura.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.
- id: "btn-cerrar"
type: BUTTON
x: 150
y: 260
width: 100
height: 22
properties:
text: "§7← Cerrar"
action: "close"
§ para colores.TEXT
Renderiza texto con soporte para colores, alineación, sombra y data binding dinámico con {{variables}}.
- 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"
§, MiniMessage y variables {{...}}."left" (default), "center", "right"."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.
- 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"
#. Default: verde.#. 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.
- 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"
#."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.
- id: "icono-diamante"
type: ICON
x: 100
y: 50
width: 16
height: 16
properties:
item: "minecraft:diamond"
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.
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"
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"
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_type | Descripción |
|---|---|
standard | Fondo estilo vanilla de Minecraft. Soporta \n y códigos §. Soporta también alineación con offset_x y offset_y. |
text | Texto flotante sin fondo. Soporta shadow, alineación (left, center, right) y saltos de línea con \n, <br> o <newline>. |
advanced | Tooltip 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.
- 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"
minecraft:zombie, modid:entidad."30"."spin": rotación continua. "fixed": sin rotación. "follow_mouse": mira al cursor.spin. Default: "0.5"."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.
- 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"
"1.0".BLOCK_RENDER
Renderiza un bloque de Minecraft como modelo 3D isométrico.
- 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"
"1.0".Acciones de botones
Los elementos BUTTON e IMAGE_BUTTON ejecutan una acción al hacer clic:
| Acción | Descripción |
|---|---|
open:<id> | Abre otra pantalla por su id. Agrega la actual a la pila de navegación. |
close | Cierra la pantalla actual. |
back | Vuelve 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ío | Sin acción — el botón es decorativo. |
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.