Contenido generado con IA — puede contener errores.

Referencia

Configuración

config.yml clave por clave, con todos sus valores por defecto, y qué guarda messages.yml.

Los dos archivos se generan en plugins/ExyliaPracticeBotV3/ la primera vez que arranca el plugin, ya con los comentarios de abajo dentro. Edita los archivos de ahí, nunca las copias del jar, y ejecuta /bot reload después — vuelve a leer config.yml, messages.yml y los dos archivos de menú. Los colores usan tokens de paleta como {primary} o {success}.

El archivo es deliberadamente plano arriba: bot.mode y bot.difficulty son las dos únicas claves que alguien tiene que entender. El modo decide el kit y qué técnicas existen, la dificultad decide con qué soltura se ejecutan, y todo lo que hay bajo advanced ya trae un valor que funciona.

config.yml

plugins/ExyliaPracticeBotV3/config.yml
config-version: 2
 
bot:
  mode: POT_PVP
  difficulty: NORMAL
  name: "{primary}%player%'s Bot"
  skin: "%player%"
 
worlds:
  - exylia_sandbox_badlands
  - exylia_sandbox_desert
  - exylia_sandbox_mushroom
  - exylia_sandbox_plains
  - exylia_sandbox_snowy
 
respawn:
  enabled: true
  delay-seconds: 2.0
 
interaction:
  shift-click-opens-menu: true
 
advanced:
  attack:
    reach: 3.0
    damage: 7.0
    speed-multiplier: 1.0
  movement:
    speed-multiplier: 1.0
    follow-distance: 3.0
  health:
    max: 20.0
    invincible: false
    totems: -1
  defense:
    shield-disable-seconds: 5.0
    anti-knockback: false
    slow-falling: false
  pot-pvp:
    apple-percent: 35.0
    potion-percent: 70.0
    enchanted-apples: false
  crystal-pvp:
    range: 5.0
    self-preservation-percent: 30.0
    anchor: true
    trap: true
    ender-pearls: true
    break-blocks: true
  uhc:
    apple-percent: 60.0
    cobweb: true
    lava: true
    water: true
  pathfinding:
    enabled: true
    max-search-radius-horizontal: 16
    max-search-radius-vertical: 10
    max-expanded-nodes: 200
    max-search-time-micros: 1500
    max-drop-height-safe: 3
    max-drop-height-protected: 10
    max-gap-jump-columns: 1
    stuck-check-interval-ticks: 10
    stuck-progress-epsilon: 0.5
    stuck-strikes-threshold: 2
    path-stale-distance: 5.0
    path-max-age-ticks: 60
    checkpoint-reached-radius: 0.6
    consecutive-failed-searches-before-cooldown: 3
    give-up-cooldown-ticks: 60
 
limits:
  min-attack-speed: 0.25
  max-attack-speed: 4.0
  min-movement-speed: 0.25
  max-movement-speed: 3.0
  min-attack-reach: 1.0
  max-attack-reach: 6.0
  min-follow-distance: 1.0
  max-follow-distance: 12.0
  min-attack-damage: 0.5
  max-attack-damage: 40.0
  min-max-health: 1.0
  max-max-health: 40.0
  min-shield-disable: 0.0
  max-shield-disable: 20.0
  min-totems: -1.0
  max-totems: 16.0
 
max-bots: 16

config-version lo escribe y lo mantiene el plugin; no lo toques. Un archivo escrito por la versión 1 se migra a esta disposición en el primer arranque en lugar de reemplazarse — cada valor que pudieras haber cambiado se mueve, y los deslizadores de probabilidad por modo se descartan a propósito, porque ahora la dificultad los deriva todos.

bot

ClavePor defectoQué hace
modePOT_PVPNONE, SWORD, POT_PVP, UHC, CRYSTAL_PVP, MACE_PVP o BOXING. Elegir un modo aplica el kit de ese modo y su modelo de combate. Un nombre no reconocido cae en NONE. Ver Modos.
difficultyNORMALEASY, NORMAL, HARD, INSANE o EXTREME. El tiempo de reacción, la puntería, la disciplina de enfriamiento y la técnica salen todos de aquí. Un nombre no reconocido cae en NORMAL. Ver Dificultad.
name{primary}%player%'s BotNombre sobre el bot. %player% es su dueño.
skin%player%Skin que lleva. %player% copia la skin del dueño.

El propio bloque de comentarios del archivo generado resume los siete:

ModoCon qué pelea
SWORDEspada y escudo, casi ningún crítico, todo movimiento.
POT_PVPCríticos en casi cada golpe, pociones arrojadizas y manzanas.
UHCHacha y escudo, roturas de guardia, telaraña, lava, agua.
CRYSTAL_PVPObsidiana, cristales, anclas, perlas y tótems.
MACE_PVPCargas de viento y perlas hacia arriba, mazazos hacia abajo.
BOXINGLos golpes se cuentan, no se aplican. Práctica de combos.

NONE es el ajuste vanilla puro: sin técnicas y sin consumibles.

Las dos claves son el valor por defecto del servidor. Cada jugador tiene su propio modo y su propia dificultad desde el momento en que abre /bot, y cambiarlas después no toca a un jugador que ya guardó ajustes.

worlds

Una lista simple de nombres de mundo: los mundos donde se puede invocar un bot. Un jugador que lo intente en cualquier otro sitio recibe el mensaje world-not-allowed y ningún bot.

Una instalación nueva no invoca nada hasta que edites esto

Los cinco valores por defecto son los mundos sandbox de Exylia y no existen en ningún otro servidor, así que recién instalado se rechaza toda invocación. Sustituye la lista por tus propios nombres de mundo antes de que nada funcione. Una lista vacía no es un comodín — vacía significa en ninguna parte.

En la versión 1 la clave era restrictions.allowed-worlds. Un archivo escrito por esa versión la ve movida a worlds automáticamente en el primer arranque, con la lista intacta.

respawn

ClavePor defectoQué hace
enabledtrueSi un bot muerto vuelve por su cuenta.
delay-seconds2.0Segundos antes de que lo haga. Se convierte a ticks y nunca baja de un tick.

interaction

ClavePor defectoQué hace
shift-click-opens-menutrueHacer shift + clic derecho sobre tu propio bot abre su menú.

advanced

Perillas de sandbox y ajuste por modo. Se puede ignorar sin problema.

Cuatro de estos son solo valores de partida

advanced.attack, advanced.movement, advanced.health y advanced.defense son los valores con los que empiezan los ajustes de un jugador y a los que los devuelve Reiniciar ajustes. A partir de ahí cada jugador tiene su propia copia y la mueve desde el menú de Ajuste fino. Los bloques por modo de más abajo — pot-pvp, crystal-pvp, uhc — y pathfinding no son por jugador: los lee la IA en vivo y se aplican a todos los bots del servidor.

advanced.attack

ClavePor defectoQué hace
reach3.0Bloques desde los que puede golpear el bot. Los jugadores vanilla tienen 3.0.
damage7.0Daño de un golpe cargado del todo y no crítico, en medios corazones. El escalado por enfriamiento y los críticos se aplican encima, exactamente como en vanilla.
speed-multiplier1.0Multiplica la cadencia que eligió el modo; 1.0 la deja en paz. El modo ya elige el tempo correcto — una barra moderna para cristales y maza, una tasa de clics para pot PvP. Sube esto solo para empujar un modo más allá de lo que podría hacer un jugador.

advanced.movement

ClavePor defectoQué hace
speed-multiplier1.0Multiplica la velocidad al andar y al correr. 1.0 es un jugador vanilla.
follow-distance3.0Cómo de cerca se queda cuando no está peleando.

advanced.health

ClavePor defectoQué hace
max20.0Vida máxima, en medios corazones.
invinciblefalseNunca muere. Útil para practicar combos.
totems-1Tótems de repuesto con los que se rearma el bot después de consumir uno, por vida. Los saca como un jugador: de uno en uno, con un tiempo para llevarse el siguiente a la mano. 0 significa que el de su kit es el único que tiene, y -1 que nunca se le acaban.

advanced.defense

ClavePor defectoQué hace
shield-disable-seconds5.0Cuánto mantiene un hachazo el escudo del bot abajo.
anti-knockbackfalseIgnorar el empuje por completo. Apagado por defecto: el empuje es la mitad del PvP.
slow-fallingfalseCaída Lenta permanente.

advanced.pot-pvp

ClavePor defectoQué hace
apple-percent35.0Porcentaje de vida al que empieza a buscar un momento seguro para comer. Una manzana son treinta y dos ticks quieto, así que mantén esto bajo: es la cura de último recurso, no con la que se juega el combate.
potion-percent70.0Porcentaje de vida al que lanza Curación Instantánea II de inmediato. Es la cura de primera línea del bot y debería quedar bastante por encima de apple-percent — una arrojadiza le cuesta un tick y ningún terreno.
enchanted-applesfalseComer manzanas doradas encantadas en lugar de normales. Se ignora cuando otro plugin le envió un kit al bot: come la manzana que haya en él.

advanced.crystal-pvp

ClavePor defectoQué hace
range5.0Bloques respecto al rival dentro de los cuales empieza una cadena de cristales.
self-preservation-percent30.0Por debajo de esta vida deja de poner cristales pegados a sí mismo.
anchortrueUsar también anclas de resurrección cargadas.
traptrueEncerrar a un rival bajo de vida antes de detonar.
ender-pearlstruePerlar a los pies del rival para cerrar la distancia. El crystal PvP es un formato agresivo: el bot persigue, no kitea.
break-blockstrueCrystal PvP de verdad: las explosiones destruyen el terreno y la obsidiana que pone el bot se queda donde la puso. Apaga esto en un mundo que te importe — el bot recogerá lo suyo.

advanced.uhc

ClavePor defectoQué hace
apple-percent60.0Porcentaje de vida al que se come una manzana dorada. UHC no tiene pociones arrojadizas, así que la manzana es la única cura que hay y esto queda mucho más alto que el equivalente de pot PvP.
cobwebtrueAtrapar al rival en una telaraña para dejarlo quieto y encadenar un combo.
lavatrueSoltar lava a los pies del rival. Se coloca sin actualización de bloque, así que la fuente nunca fluye, y se recoge con un temporizador.
watertrueLlevar un cubo de agua, para apagarse y para limpiar la lava.

advanced.pathfinding

Búsqueda local en rejilla que se usa solo cuando la dirección directa no consigue pasar el terreno. En campo abierto el bot camina recto hacia su objetivo y nada de esto se ejecuta.

ClavePor defectoQué hace
enabledtrueApaga la búsqueda por completo; el bot entonces solo apunta recto a su objetivo.
max-search-radius-horizontal16Bloques desde el bot que puede expandir la búsqueda, y la distancia a partir de la cual ni siquiera busca.
max-search-radius-vertical10El mismo techo y suelo, en vertical.
max-expanded-nodes200Nodos que puede expandir una búsqueda antes de rendirse.
max-search-time-micros1500Microsegundos que puede durar una búsqueda antes de rendirse. Es la clave que mantiene a los bots de un servidor lleno fuera del tick.
max-drop-height-safe3Bloques que el bot se dejará caer en una ruta.
max-drop-height-protected10Lo mismo, para un bot que sobreviviría a la caída — uno con Caída Lenta o invencibilidad.
max-gap-jump-columns1Cuántas columnas vacías de ancho puede tener un hueco para que la ruta lo salte.
stuck-check-interval-ticks10Ticks entre dos comprobaciones de avance.
stuck-progress-epsilon0.5Bloques que tiene que haberse movido en horizontal en ese intervalo para contar como avance.
stuck-strikes-threshold2Comprobaciones fallidas seguidas antes de contar como atascado y pedir una ruta.
path-stale-distance5.0Bloques que el objetivo puede alejarse de donde se construyó la ruta antes de tirarla.
path-max-age-ticks60Ticks que se conserva una ruta pase lo que pase.
checkpoint-reached-radius0.6Distancia horizontal a la que un punto de control cuenta como alcanzado.
consecutive-failed-searches-before-cooldown3Búsquedas fallidas seguidas antes de dejar de intentarlo.
give-up-cooldown-ticks60Ticks que espera antes de volver a intentarlo.

limits

Los límites a los que el menú del juego recorta sus deslizadores. Cada par es el suelo y el techo de un campo de adjust, y un valor fuera de ellos no se puede alcanzar desde un menú.

CampoPar de clavesRango por defecto
attack_speedmin-attack-speed / max-attack-speed0.25 – 4.0
movement_speedmin-movement-speed / max-movement-speed0.25 – 3.0
attack_reachmin-attack-reach / max-attack-reach1.0 – 6.0
follow_distancemin-follow-distance / max-follow-distance1.0 – 12.0
attack_damagemin-attack-damage / max-attack-damage0.5 – 40.0
max_healthmin-max-health / max-max-health1.0 – 40.0
shield_disablemin-shield-disable / max-shield-disable0.0 – 20.0
totemsmin-totems / max-totems−1.0 – 16.0

Los tótems se detienen en -1, que es el ajuste ilimitado. Cada valor ajustado se redondea a un decimal después del recorte. Ver Límites.

max-bots

16 por defecto. Cuántos bots pueden existir a la vez en el servidor. Cada bot piensa una vez por tick y busca su propia ruta, así que este es un techo real y no una formalidad — súbelo solo después de mirar el tiempo de tick con el actual lleno. Una invocación por encima del techo se rechaza con el mensaje limit-reached, y la API la rechaza con una BotLimitReachedException. Un valor por debajo de 1 se lee como 1.

messages.yml

Cada línea que ve un jugador, con la misma cabecera config-version. Los placeholders de color vienen de ExyliaCommons, así que recolorear la red nunca significa editar este archivo. Una línea puede abrir con una etiqueta de efecto que nunca llega a la pantalla — [sound:NOMBRE|volumen|tono] y [particle:NOMBRE|cantidad] — y los valores por defecto las usan por todas partes.

SecciónContiene
prefix{primary}&lEXYLIA PRACTICEBOT &8•&r por defecto. El %prefix% de cada línea se expande a esto.
botLas dieciséis líneas que dice el plugin: spawned, removed, no-bot, already-has-bot, world-not-allowed, removed-death, removed-world-change, removed-too-far, teleported-to-bot, teleported-bot-to-you, respawning, respawned, settings-reset, mode-changed (%mode%), difficulty-changed (%difficulty%), limit-reached (%limit%) y boxing-score (%player_hits%, %bot_hits%, mostrada en la action bar durante una ronda de boxeo).
placeholdersLas etiquetas que imprimen los menús: enabled, disabled, unlimited, y un bloque para cada uno de armor, enchant, main-hand, off-hand, knockback, strength, speed, mode y difficulty.

Los bloques mode y difficulty guardan dos cosas por valor: el nombre, y la línea de resumen que el menú muestra debajo — pot-pvp y pot-pvp-summary, hard y hard-summary. Esos resúmenes son lo que imprimen %mode_summary% y %difficulty_summary%, que es cómo un botón que cicla puede explicarse sin cuatro botones describiéndose cada uno a sí mismo.

Renombrar o recolorear cualquier cosa de aquí cambia solo lo que leen los jugadores. Los valores que guarda el plugin son los nombres de enum de Equipamiento, Modos y Dificultad, y no se ven afectados.

database.yml

Lo escribe ExyliaLib la primera vez que arranca el plugin: H2 por defecto, con MySQL, MariaDB, PostgreSQL y MongoDB como alternativas. Una fila por jugador, con cada ajuste de la mitad por jugador de esta página. Ver la página de base de datos de la librería.

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