-
Notifications
You must be signed in to change notification settings - Fork 0
DSL Variables
DarkBladeDev edited this page Feb 22, 2026
·
2 revisions
CEE soporta variables por evento, con scope local o global.
- Locales: existen dentro del runtime (se re-inicializan en cada ejecución).
-
Globales: existen a nivel motor y se comparten entre eventos (solo si están declaradas como
scope: global).
event:
variables:
phase: "INIT"
kills: 0
enabled: true-
stringsi es String -
numbersi es Number -
booleansi es Boolean -
arraysi es List -
objectsi es Map
En esta forma, el scope por defecto es local.
event:
variables:
kills:
type: number
scope: local
initial: 0
description: "Kills dentro del runtime"
total_kills:
type: number
scope: global
initial: 0
description: "Contador global"Campos:
-
type:string | number | boolean | array | object -
scope:local | global -
initial(ovalue): valor inicial -
description: texto libre
CEE resuelve valores iniciales en múltiples pasadas para soportar dependencias.
variables:
a:
type: number
scope: local
initial: 10
b:
type: number
scope: local
initial: "${a}"Si la referencia aún no está resuelta, se reintenta en la siguiente pasada.
variables:
base:
type: number
initial: 5
double:
type: number
initial: "= base * 2"La expresión debe devolver el tipo correcto según type, o el motor falla la inicialización.
- En texto:
{var}y${var}-
{var}reemplaza ocurrencias dentro del string. -
${var}como valor completo (si el string es exactamente${var}) devuelve el valor sin convertirlo a texto.
-
Ejemplo:
- action: broadcast
message: "Kills: {kills}"set_variable escribe con context.setVariable(key, value).
Importante:
- Para escribir en una variable global, el evento debe declarar esa variable con
scope: globalen su propia secciónevent.variables. - Si no está declarada como global por ese evento, la escritura no afecta a globales.
Esto evita que un evento “ensucie” el estado global por accidente.
CustomEventEngine • Paper/Spigot API 1.20+ • Java 21