Contenido generado con IA — puede contener errores.

Módulos

Movimiento

Spawn, homes, warps, TPA, /back, teletransporte aleatorio y /near: los siete módulos que mueven a un jugador.

Siete módulos mueven jugadores. Cinco comparten el mismo warmup: una cuenta atrás dibujada como barra de acción y título, cancelada al moverse o al recibir daño, con un sonido por segundo y un permiso que se la salta entera. Cada módulo tiene su propia copia de esos ajustes, así que un home puede ser instantáneo mientras un warp tarda cinco segundos.

Un teletransporte que no puede ocurrir dice por qué en vez de no hacer nada. Spawn, homes, warps, TPA, /back y los portales comparten cuatro líneas de messages.yml: errors.server-unreachable (el sitio está en un servidor al que este no llega), errors.world-not-loaded, errors.player-not-found y errors.teleport-failed.

Spawn

/spawn teletransporta al spawn del servidor. /spawn set lo guarda, y necesita exyliasurvivalcore.spawn.set.

AjustePor defectoQué hace
warmup-seconds3Cuenta atrás antes del teletransporte
cancel-on-move, cancel-on-damagetrueQué lo detiene
permission-bypass-warmupexyliasurvivalcore.spawn.bypassEl nodo que se salta la cuenta atrás — la cadena es tuya
blacklisted-worlds[]Mundos desde los que /spawn se niega
teleport-on-joinfalseCada login va al spawn
teleport-on-first-jointrueEl primer login va al spawn
respawn-at-spawntrueMorir manda al spawn
override-bed-spawntrueIncluso teniendo cama

/spawn en sí no comprueba ningún permiso. El spawn se envía además a los clientes como waypoint donde estén Apollo o Feather.

Cada servidor tiene su propio spawn. La fila lleva el nombre del servidor, así que varios servidores con la misma base de datos ya no se pisan unos a otros con una posición en un mundo que los demás no tienen. Un servidor sin fila propia lee el spawn único que escribían las versiones anteriores y guarda una copia con su propio nombre. Si el mundo del spawn no está cargado en ese servidor, respawn-at-spawn no toca el punto de reaparición.

Homes

Posiciones personales con nombre. /sethome [nombre], /home [nombre], y /homes para el menú: renombrar, cambiar icono, teletransportarse, borrar.

AjustePor defectoQué hace
max-homes3El suelo para todo el mundo
default-home-namehomeCómo se llama un /sethome sin nombre
default-iconGRASS_BLOCKEl icono de un home nuevo
home-name-max-length16Nombre más largo
warmup-seconds y compañía3Como arriba

Cuántos homes tiene un jugador es un escalón de permisos: exyliasurvivalcore.homes.max_homes.<n>, y gana el nodo más alto que tenga. max-homes es solo lo que recibe quien no tenga ninguno.

Un home sabe en qué servidor se puso

Los homes guardan un servidor junto a las coordenadas, así que /home funciona desde cualquier punto de la red. Un home en otro servidor no tiene posición local ninguna, que es por lo que la API expone un método de teletransporte en vez de dejar que quien la llama lea las coordenadas.

/homesadmin delhome <jugador> <home> y /homesadmin listhomes <jugador> necesitan survivalcore.admin.homes, y los dos funcionan desde consola.

Warps

Posiciones con nombre para todo el servidor, montadas desde /warpadmin. Cada una tiene nombre visible, icono, coste, permiso opcional y posición.

/warp abre la lista de las que puede usar el jugador; /warp <id> va directo. Los warps también cruzan la red.

Nodo de bypassQué se salta
exyliasurvivalcore.warps.bypassEl coste y el cooldown
exyliasurvivalcore.warps.bypass.costEl coste
exyliasurvivalcore.warps.bypass.cooldownEl cooldown

exyliasurvivalcore.warps.bypass se salta además la cuenta atrás del warp.

AjustePor defectoQué hace
warmup-seconds3Cuenta atrás antes del warp
cancel-on-move, cancel-on-damagetrueQué la detiene
cooldown-seconds0Segundos antes de que el mismo jugador pueda volver a usar el mismo warp. 0 lo desactiva
blacklisted-worlds[]Mundos desde los que /warp se niega

El cooldown cuenta por jugador y por warp, y se guarda en la base de datos (sc_warp_cooldowns), así que un warp que lleva al jugador a otro servidor no le regala allí un cooldown nuevo.

El coste se comprueba antes de la cuenta atrás pero se cobra al llegar. El dinero y el cooldown solo se gastan cuando el teletransporte sale bien: salirse de la cuenta atrás, un mundo que ya no está cargado o un servidor al que no se llega no cuestan nada ni empiezan ningún cooldown.

modules/warps/menus/warp_setup.yml es un editor de administración que vive con los menús de jugador y no bajo menus/admin/, así que lo que cambies en él se conserva. Todo lo que hay bajo menus/admin/ se reescribe desde el jar en cada arranque.

TPA

/tpa <jugador> pide ir hacia él; /tpahere <jugador> le pide que venga. /tpaccept y /tpadeny responden, con un nombre opcional para elegir qué petición. Sin nombre responden a la más reciente.

/tpacancel [jugador] retira una petición que enviaste y que aún no tiene respuesta; sin nombre, la más reciente. Necesita exyliasurvivalcore.tpa.cancel. El autocompletado solo ofrece nombres con sentido: /tpaccept y /tpadeny sugieren a quienes te están esperando, y /tpacancel a quienes has pedido.

Entre servidores

El otro jugador puede estar en cualquier servidor de la red. Para eso hacen falta los teletransportes entre servidores de ExyliaLib: donde no están disponibles, un jugador de otro servidor cuenta como no encontrado. Quien se mueve pasa al servidor del otro jugador. Un tpa mueve a quien lo envía y un tpahere mueve al destinatario, y la posición del otro jugador se lee al acabar la cuenta atrás, no al aceptar la petición.

  • El auto-aceptar lo deciden los ajustes del destinatario, en su propio servidor.
  • La pantalla de confirmación muestra a un jugador de otro servidor por el nombre de ese servidor. Su mundo, posición, vida y comida se leen —.
Quien cambia de servidor antes de la respuesta no se mueve

Cada servidor guarda su propia copia de las peticiones en las que participa alguien que está en él. Quien envía una petición y se va a un tercer servidor mientras espera no tiene copia allí. Cuando el destinatario acepta, a este se le dice que se aceptó, pero nadie se mueve. El comentario del código dice que ese jugador "sigue recibiendo la respuesta esté donde esté". El código no lo hace.

La petición es un aviso centrado con botones clicables [✔ ACCEPT] y [✘ DENY]. tpa.request-received y tpa.request-here-received ahora son listas, una línea por entrada, y una línea puede empezar con [center]. Un messages.yml existente solo recibe el aviso nuevo donde la línea seguía siendo la de antes por defecto. Una línea que hayas reescrito sigue siendo tuya.

AjustePor defectoQué hace
request-expire-seconds60Cuánto vive una petición
send-confirm-defaulttrueSi se muestra una confirmación antes de enviar
tpa-enabled-defaulttrueSi de entrada se aceptan peticiones
auto-accept-defaultfalseSi se aceptan sin preguntar

/tpatoggle cambia si recibe peticiones; /tpatoggle autoaccept y /tpatoggle confirm cambian los otros dos. /autotpaaccept existe además y es un duplicado exacto de /tpatoggle autoaccept — mismo comportamiento, mismo nodo.

Las tres preferencias están también en la pantalla de /settings, leyendo y escribiendo las mismas filas.

Back

/back devuelve al jugador a donde estaba. Qué momentos se recuerdan es configuración:

AjustePor defecto
save-on-deathtrue
save-on-teleporttrue
save-on-portalfalse
blacklisted-worlds[]

Se recuerda un sitio por jugador, y se guarda en la base de datos (sc_back). Sobrevive a un reinicio y acompaña al jugador a otro servidor: el sitio del que salió en uno es el que /back ofrece en el siguiente. Deja de ofrecerse pasados teleport.back-history-minutes de config.yml, 30 por defecto.

Los homes, /back y un TPA dentro del mismo servidor guardan el sitio solo cuando el teletransporte sale bien, así que una cuenta atrás de la que el jugador se sale no deja un /back apuntando a donde estaba. Un warp lo guarda al acabar su cuenta atrás, justo antes de moverse, y lo mismo hace un TPA que pasa al jugador a otro servidor. El otro servidor lee la fila en cuanto el jugador entra, así que se escribe antes de que se vaya.

Teletransporte aleatorio

/rtp abre una lista de mundos; /rtp <mundo> va directo a uno. Los mundos salen de modules/rtp/worlds.yml: uno que no esté en el archivo no se puede alcanzar.

Clave por mundoQué hace
enabledSi se ofrece
display-name, iconCómo aparece en el menú
min-x, max-x, min-z, max-zLa caja donde se busca
priceSe cobra por teletransporte
cooldownSegundos, o -1 para usar el del módulo
biome-blacklistBiomas en los que no puede caer

Un pool mantiene posiciones seguras listas de antemano, así que /rtp es instantáneo en vez de una búsqueda:

pool:
  enabled: true
  size: 40
  max-concurrent-searches: 3
  refill-interval: 30

Pregenerar los chunks del mundo — con Chunky, por ejemplo — reduce drásticamente lo que tarda el pool en llenarse.

Los nodos de bypass del RTP son cadenas de configuración

bypass-cooldown-permission y bypass-price-permission vienen los dos como survivalcore.rtp.bypass — ojo al prefijo corto. Son lo que tú escribas ahí, no nodos fijos.

/rtpadmin forcertp <jugador> <mundo> manda a alguien, y /rtpadmin pool informa del pool.

Near

/near lista los jugadores cercanos con su distancia y una dirección de brújula.

AjustePor defectoQué hace
display-modeUIUI para el menú, CHAT para una lista por chat
default-radius100El que se busca cuando no aplica otra cosa
max-radius1000El techo, permiso incluido
cooldown-seconds3Entre usos
distance-typeHORIZONTALHORIZONTAL o 3D, para filtrar

exyliasurvivalcore.near.radius.<n> sube el radio de un jugador, ganando el nodo más alto — pero max-radius lo sigue limitando. distance-type solo decide a quién se filtra; la distancia que se muestra es siempre horizontal.

La sección teleport

config.yml tiene una sección teleport que se entrega a ExyliaLib al arrancar y en cada /sc reload. Guarda los valores por defecto de cualquier teletransporte que no fije los suyos, y lo que comparten los traspasos entre servidores.

teleport:
  warmup-seconds: 0.0
  cancel-on-move: true
  cancel-on-damage: true
  safe-search-radius: 5
  safe-max-attempts: 32
  cross-server-ttl-seconds: 300
  cross-server-settle-seconds: 0.5
  back-history-size: 3
  back-history-minutes: 30
  tpa-expiry-seconds: 60
  tpa-max-pending: 8
  random-max-attempts: 16
ClaveRangoQué hace aquí
warmup-seconds0 o másLa cuenta atrás de un teletransporte al que ningún módulo pone la suya. Admite decimales
cancel-on-move, cancel-on-damage—Lo mismo, para esa cuenta atrás
cross-server-ttl-seconds30–3600Cuánto sigue valiendo un destino en cola para otro servidor
cross-server-settle-seconds0,05–5Cuánto espera el servidor de llegada antes de mover al jugador
back-history-minutes1–1440Cuánto tiempo sigue ofreciendo /back su sitio

Los valores fuera de rango se ajustan al límite.

`warmup-seconds` llega a los teletransportes que debían ser instantáneos

Los módulos solo ponen cuenta atrás cuando la suya es mayor que cero y el jugador no tiene el nodo de bypass. Cualquier otro teletransporte usa este valor: un spawn, home o /back de un jugador con el nodo de bypass de ese módulo, un warp de un jugador con exyliasurvivalcore.warps.bypass, un spawn, home, warp, TPA o /back cuyo warmup-seconds propio sea 0, un portal, y el movimiento que hace un warp después de su propia cuenta atrás. Subirlo por encima de 0 añade una segunda cuenta atrás a los warps y una simple, sin título ni sonido, al resto.

Seis de estas claves no cambian nada en este plugin

safe-search-radius, safe-max-attempts, back-history-size, tpa-expiry-seconds, tpa-max-pending y random-max-attempts son de los aterrizajes seguros, el historial de back, las peticiones y los teletransportes aleatorios propios de ExyliaLib. Ningún módulo de aquí los usa. Las peticiones de TPA caducan con el request-expire-seconds del módulo tpa, /back guarda un solo sitio y /rtp busca con su propio pool.

¿Falta algo en esta página? Dínoslo en Discord