Creando Misiones
Ejemplo de Misión
EliteMobs viene preempaquetado con un test_quest.yml, que será analizado aquí como un formato de misión simple a seguir.
¡Las misiones personalizadas están en la carpeta ~plugins/EliteMobs/customquests!
test_quest.yml
isEnabled: true
customObjectives:
Objective1:
amount: '1'
filename: test_boss.yml
objectiveType: KILL_CUSTOM
customRewards:
- filename=magmaguys_toothpick.yml:amount=1:chance=1
name: "&aKill the Test Boss"
questLore:
- "&cEnd the test boss'' reign of terror!"

Si tu interfaz de misión no se ve así, puedes cambiarla para que coincida usando /em alt.
Esta misión de ejemplo dará a los jugadores la tarea de matar 1 test_boss.yml. (El nombre real del jefe que se muestra en el rastreador de misiones será el name: establecido en test_boss.yml.) Y como recompensa por completar la misión, serán recompensados con 1 Palillo de Magmaguy.
Creando Misiones Personalizadas
customObjectives
Establece los objetivos de la misión.
| Clave | Valores | Por defecto |
|---|---|---|
customObjectives | Especial [1] | ninguno |
Nota: Si estás usando un jefe multifase como tu objetivo, entonces el objetivo debe estar usando la primera fase como objetivo.
Ejemplos
KILL_CUSTOM:
customObjectives:
Objective1:
amount: '1'
filename: my_cool_boss.yml
objectiveType: KILL_CUSTOM
DIALOG:
customObjectives:
Objective1:
dialog:
- "&a[Dialog NPC] &fCome here often?"
- "&7&oI should eat more apples."
filename: dialog_npc.yml
npcName: Dialog NPC
location: at dialog location.
objectiveType: DIALOG
FETCH_ITEM:
customObjectives:
Objective1:
amount: '99'
itemName: Red Apples
filename: my_quest_item_red_apples.yml
objectiveType: FETCH_ITEM
ARENA:
customObjectives:
Objective1:
objectiveType: ARENA
filename: my_arena.yml
name: "Complete the Arena"

Especial [1]
Expandir Tabla
Los Objetivos Personalizados se construyen usando los siguientes valores:
| Clave | Descripción |
|---|---|
KILL_CUSTOM / FETCH_ITEM / DIALOG / ARENA | Se usa para establecer el tipo de objetivo que esto representa. KILL_CUSTOM indica que la misión involucra matar un Jefe Personalizado específico, FETCH_ITEM indica que la misión involucra obtener un Objeto Personalizado específico, DIALOG indica que la misión involucra hablar con un NPC, y ARENA indica que la misión involucra completar una arena específica. |
filename | Se usa para establecer el nombre del archivo del Jefe Personalizado, el Objeto Personalizado que el jugador tiene que matar / obtener, el NPC con el que tiene que hablar, o la arena que debe completar. |
amount | Se usa para establecer la cantidad de Jefes Personalizados que deben ser asesinados u objetos que deben ser obtenidos. Por defecto es 1 si no se especifica. |
dialog | Se usa para establecer el diálogo del NPC con el que habla el jugador. |
name | Se usa para establecer el nombre del objetivo de la misión, ya sea un NPC, un objeto personalizado o una arena. Solo con propósitos visuales. |
itemName | Se usa solo con FETCH_ITEM – Esta configuración cambia cómo aparece el nombre del objeto en el rastreador de misiones. Te permite mostrar un nombre personalizado que es diferente del nombre real del objeto en el juego. |
¡Ten en cuenta que cada campo de Objetivo Personalizado está separado con un : !
customRewards
Establece las recompensas de la misión.
| Clave | Valores | Por defecto |
|---|---|---|
customRewards | Formato universal de botín de EliteMobs | ninguno |
Ejemplo
customRewards:
- currencyAmount=50:amount=1:chance=0.05
- material=COOKED_COD:amount=3:chance=1.0
- filename=magmaguys_toothpick.yml:amount=1:chance=1.0

Nota: Si no especificas customRewards, el sistema de misiones generará automáticamente recompensas basadas en el nivel de la misión. La calidad de la recompensa escala con la dificultad de la misión e incluye tanto moneda como objetos. Para un control preciso sobre las recompensas, siempre especifica customRewards explícitamente.
questAcceptPermission
Establece el permiso que el jugador debe tener para aceptar la misión.
| Clave | Valores | Por defecto |
|---|---|---|
questAcceptPermission | String | ninguno |
Ejemplo
questAcceptPermission: elitequest.my_permission
Nota: Si no especificas customRewards, el sistema de misiones generará automáticamente recompensas basadas en el nivel de la misión. La calidad de la recompensa escala con la dificultad de la misión e incluye tanto moneda como objetos. Para un control preciso sobre las recompensas, siempre especifica customRewards explícitamente.
questAcceptPermissions
Establece los permisos que el jugador debe tener para aceptar la misión.
| Clave | Valores | Por defecto |
|---|---|---|
questAcceptPermissions | String List | ninguno |
Ejemplo
questAcceptPermissions:
- elitequest.my_previous_quest_one.yml
- elitequest.my_previous_quest_two.yml
questLockoutPermission
Establece el permiso que el jugador obtendrá al completar la misión, lo cual los bloqueará para hacer la misión nuevamente. Si no se especifica, el permiso de bloqueo de misión se genera automáticamente como elitequest.[filename].
| Clave | Valores | Por defecto |
|---|---|---|
questLockoutPermission | String | elitequest.[filename] |
Ejemplo
questLockoutPermission: elitequest.my_quest.yml
questLockoutMinutes
Establece cuánto tiempo, en minutos, el jugador tendrá que esperar antes de poder hacer la misión nuevamente (funciona eliminando el permiso de bloqueo de misión).
| Clave | Valores | Por defecto |
|---|---|---|
questLockoutMinutes | Integer | -1(nunca se repetirá) |
Ejemplo
questLockoutMinutes: 60
name
Establece el nombre de la misión. Acepta Códigos de Color.
| Clave | Valores | Por defecto |
|---|---|---|
name | String | ninguno |
Ejemplo
name: "&aMy Great Quest Name"
questLore
Establece la historia de la misión que aparecerá en el menú de misiones del juego.
| Clave | Valores | Por defecto |
|---|---|---|
questLore | String List | ninguno |
Ejemplo
questLore:
- "Interesting lore sentence."
- "Yet another interesting lore sentence."

temporaryPermissions
Establece los permisos asignados al jugador hasta que entregue la misión.
Si estás usando esta configuración para asegurar que un objeto solo se dropee cuando los jugadores tienen una misión específica activa, también necesitarás configurar el Mismo Permiso en el archivo de configuración del objeto.
| Clave | Valores | Por defecto |
|---|---|---|
temporaryPermissions | String List | ninguno |
Ejemplo
temporaryPermissions:
- elitequest.item_that_should_drop_only_during_quest.yml
questAcceptDialog
Establece el diálogo que aparece en el chat al aceptar la misión.
| Clave | Valores | Por defecto |
|---|---|---|
questAcceptDialog | String List | ninguno |
Ejemplo
questAcceptDialog:
- "My hero! You are so helpful!"
- "I wish you the best of luck!"

questCompleteMessage
Establece el diálogo que aparece en el chat al completar la misión.
| Clave | Valores | Por defecto |
|---|---|---|
questCompleteMessage | String List | ninguno |
Ejemplo
questCompleteMessage:
- "My hero! You have completed my difficult quest!"
- "As a reward you can have this loaf of bread!"

questCompleteCommands
Establece los comandos que se ejecutarán al completar la misión. Soporta marcadores de posición: $player para el nombre del jugador, y $getX, $getY, $getZ para las coordenadas de ubicación del jugador.
| Clave | Valores | Por defecto |
|---|---|---|
questCompleteCommands | String List | ninguno |
Ejemplo
questCompleteCommands:
- say $player has finished a quest at $getX, $getY, $getZ!
- give $player diamond 1
![]()
turnInNPC
Establece el nombre del archivo del NPC con el que los jugadores necesitan hablar/interactuar para completar la misión. Este no tiene que ser el mismo NPC que entregó la misión.
| Clave | Valores | Por defecto |
|---|---|---|
turnInNPC | Filename | ninguno |
Ejemplo
turnInNPC: my_cool_quest_npc.yml
Quest Givers
Para asignar una misión a un NPC que la dará a los jugadores, necesitas configurar el archivo del NPC, no el archivo de la misión.
En tu archivo de configuración del NPC (~/plugins/EliteMobs/npcs/), agrega:
questFileName: my_quest.yml
Para NPCs que dan múltiples misiones:
questFileName:
- quest_one.yml
- quest_two.yml
Consulta la documentación de creación de NPCs para más información sobre cómo configurar NPCs.
trackable
Establece si la misión usará el rastreador de misiones.
| Clave | Valores | Por defecto |
|---|---|---|
trackable | Boolean | true |
Ejemplo
trackable: true
questLevel
Establece el nivel de la misión. Esto es solo una guía visual para que los jugadores puedan saber qué tan desafiante será la misión. Esto no modifica de ninguna manera los niveles de jefes, objetos u otros.
| Clave | Valores | Por defecto |
|---|---|---|
questLevel | Integer | 0 |
Ejemplo
questLevel: 10

questAcceptSound
Establece el sonido que se reproduce cuando se acepta una misión. Es posible tanto reproducir sonidos de Minecraft como reproducir sonidos de un paquete de recursos.
| Clave | Valores | Por defecto |
|---|---|---|
questAcceptSound | String | ninguno |
Ejemplo
questAcceptSound: entity.experience_orb.pickup

questCompleteSound
Establece el sonido que se reproduce cuando se completa una misión (se entrega). Es posible tanto reproducir sonidos de Minecraft como reproducir sonidos de un paquete de recursos.
| Clave | Valores | Por defecto |
|---|---|---|
questCompleteSound | String | ninguno |
Ejemplo
questCompleteSound: entity.player.levelup

Soporte de Localización
Los siguientes campos soportan localización para servidores multiidioma:
namequestLorequestAcceptDialogquestCompleteMessage
Esto te permite proporcionar traducciones para diferentes idiomas en tu servidor.
Permisos
Como se mencionó en las tablas anteriores, los permisos son usualmente Strings o String Lists. Pero vamos a entrar en más detalle sobre cómo los usarás para bloquear y desbloquear misiones.
Digamos que estás haciendo quest_3 en una serie de misiones que has planeado y no quieres que los jugadores puedan tomar quest_3 antes de que terminen quest_2. Configuraríamos el archivo de misión de esta manera:
questAcceptPermission: elitequest.quest_2.yml
questLockoutPermission: elitequest.quest_3.yml
Al establecer questAcceptPermissions a elitequest.quest_2.yml ahora hemos evitado que los jugadores tomen quest_3.yml antes de que terminen quest_2.yml.
Al establecer questLockoutPermission a elitequest.quest_3.yml hemos evitado que los jugadores puedan recibir esa misión mientras ya tengan esa misión en su rastreador o si ya terminaron esa misión. Esto evita que los jugadores puedan repetir la misión.
Si quieres hacer una misión que solo esté disponible después de que los jugadores hayan completado una serie de misiones, entonces configurarías el archivo de misión de esta manera:
questAcceptPermissions:
- elitequest.quest_2.yml
- elitequest.quest_3.yml
- elitequest.quest_4.yml
Si quieres que los jugadores solo puedan obtener ciertos objetos cuando tienen la misión correcta activa, entonces podemos hacer eso usando temporaryPermissions. Haríamos un permiso en el archivo de misión usando temporaryPermissions y luego hacer un permiso coincidente en el archivo del objeto usando permission.
Por ejemplo, abriríamos nuestro archivo de misión y agregaríamos lo siguiente:
temporaryPermissions:
- elitequest.my_cool_item.yml
Luego abriríamos el archivo del objeto, en nuestro caso my_cool_item.yml y luego agregaríamos lo siguiente:
permission: elitequest.my_cool_item.yml
Ambos archivos ahora tienen permisos coincidentes que deberían hacer que nuestro objeto solo se dropee cuando los jugadores tienen la misión correcta activa.
