Guía rápida ~10 minutos

Primeros pasos

Esta guía te lleva desde cero hasta tener EventUI funcionando en tu servidor con un evento real y una UI personalizada. Sigue los pasos en orden.

Requisitos previos: un servidor Paper o Arclight 1.21.1 y un cliente Fabric 1.21.1 con Fabric API instalado. Si todavía no los tienes, ve primero a la guía de instalación.

Paso 1 — Instala el plugin

Descarga el archivo eventui-core.jar y colócalo en la carpeta plugins/ de tu servidor. Luego inicia o reinicia el servidor.

Al arrancar por primera vez, el plugin genera automáticamente la siguiente estructura de carpetas:

Estructura generada automáticamente
plugins/
└── EventUI/
    ├── config.yml        ← configuración principal
    ├── events/           ← aquí van tus archivos de eventos
    ├── uis/              ← aquí van tus archivos de UI
    ├── playerdata/       ← progreso de jugadores (no editar)
    └── playerstate/      ← variables de estado (no editar)
Si la carpeta events/ está vacía al iniciar, el plugin genera un evento de ejemplo llamado example-event.yml para que tengas una referencia del formato.

Paso 2 — Instala el mod cliente

Descarga el archivo eventui-fabric.jar y colócalo en la carpeta mods/ de tu instancia de Fabric 1.21.1. Asegúrate de tener Fabric API instalado — es el único requisito.

No se necesitan mods adicionales. Una vez instalado, el mod se conecta automáticamente al servidor cuando entras a él.

Versión exacta: el mod y el plugin deben ser de la misma versión de EventUI. Mezclar versiones distintas puede causar errores de comunicación entre cliente y servidor.

Paso 3 — Configura el modo de UI

Abre plugins/EventUI/config.yml. La configuración más importante al empezar es el modo de UI:

config.yml
ui:
  # "hardcoded" usa la pantalla por defecto de EventUI
  # "custom"    usa tus propios archivos de la carpeta /uis/
  mode: "hardcoded"

events:
  # true = los eventos se inician automáticamente
  # false = requieren inicio manual con /eventui start
  always_active: true

Para empezar, deja mode: "hardcoded". Esto activa la pantalla de eventos incluida en EventUI — funcional desde el primer momento, sin necesidad de crear ningún archivo de UI.

Paso 4 — Crea tu primer evento

Crea un archivo .yml dentro de plugins/EventUI/events/. El nombre del archivo no importa, pero el campo id dentro del archivo sí debe ser único.

Este es un evento mínimo funcional que pide al jugador matar 10 zombies:

events/mi-primer-evento.yml
id: "mi-primer-evento"
display_name: "Exterminador de zombies"
description: "Elimina zombies para ganar experiencia."

metadata:
  icon: "minecraft:rotten_flesh"
  difficulty: "easy"
  category: "combate"
  repeatable: "false"

objectives:
  - id: "matar-zombies"
    type: KILL_ENTITY
    description: "Mata zombies"
    target_amount: 10
    parameters:
      entity_type: "minecraft:zombie"

rewards:
  xp: 500
Hot reload: no necesitas reiniciar el servidor cada vez que editas un evento. Usa el comando /eventui reload para recargar todos los eventos y UIs en caliente.

Paso 5 — Verifica que funciona

Con el servidor corriendo y el mod instalado en el cliente, entra al servidor y ejecuta:

Comandos de verificación
# Ver todos los eventos cargados
/eventui list

# Ver info de tu evento
/eventui info mi-primer-evento

# Abrir la pantalla de EventUI (tecla K por defecto en el cliente)
/eventui open

Si ves tu evento en la lista, todo está funcionando. Si always_active: true está activado, el evento se inicia automáticamente la primera vez que matas un zombie.

Paso 6 — Tu primera UI personalizada

Una vez que el evento funciona en modo hardcoded, puedes crear tu propia pantalla. Crea un archivo en plugins/EventUI/uis/:

uis/mi-menu.yml
id: "mi-menu"
title: "Mi menú de eventos"
screen_width: 400
screen_height: 300

screen_properties:
  pause_game: "true"

elements:
  - id: "fondo"
    type: IMAGE
    x: 0
    y: 0
    width: 400
    height: 300
    properties:
      texture: "minecraft:textures/block/deepslate_tiles.png"

  - id: "titulo"
    type: TEXT
    x: 200
    y: 20
    width: 380
    height: 20
    properties:
      content: "§6§lMis Misiones"
      align: "center"
      shadow: "true"

  - id: "btn-cerrar"
    type: BUTTON
    x: 150
    y: 260
    width: 100
    height: 22
    properties:
      text: "Cerrar"
      action: "close"

Luego actualiza config.yml para usar tu UI:

config.yml — activar modo custom
ui:
  mode: "custom"
  custom:
    screenId: "mi-menu"
    fallback: true

Ejecuta /eventui reload y abre la UI con la tecla K en el cliente. Verás tu pantalla personalizada.

fallback: true hace que si tu UI tiene un error de sintaxis en el YAML, el servidor use la UI por defecto en lugar de lanzar un error y bloquear el inicio. Recomendado dejarlo en true en producción.

Resumen

Paso Qué hiciste Resultado
1 Instalaste el plugin Estructura de carpetas generada automáticamente
2 Instalaste el mod Cliente conectado al sistema de UI del servidor
3 Configuraste config.yml Plugin listo con modo de UI y auto-inicio activados
4 Creaste un evento YAML Misión funcional con objetivo y recompensa
5 Verificaste con /eventui list Evento visible y activo en el servidor
6 Creaste tu primera UI Pantalla personalizada abierta con la tecla K