Crear NPCs
Ajustes de configuración
isEnabled
Establece si un NPC está habilitado.
| Key | Valores | Predeterminado |
|---|---|---|
isEnabled | Boolean | true |
Ejemplo
isEnabled: true
name
Establece el nombre visible de un NPC. Admite Color Codes y claves de traducción para servidores multiidioma.
| Key | Valores | Predeterminado |
|---|---|---|
name | String | ninguno |
Ejemplo
name: "&aEnn Peecee"

scale
Establece la escala (tamaño) del NPC.
| Key | Valores | Predeterminado |
|---|---|---|
scale | Multiplier | 1.0 |
Al escalar, 1.0 representa el tamaño predeterminado. Para hacer la entidad más grande, aumenta el valor (por ejemplo, 1.2). Para hacer la entidad más pequeña, disminuye el valor (por ejemplo, 0.8).
Ejemplo
scale: 1.2
role
Establece el rol del NPC, bajo el nombre. Solo es visual. Admite Color Codes y claves de traducción para servidores multiidioma.
| Key | Valores | Predeterminado |
|---|---|---|
role | String | ninguno |
Ejemplo
role: "&c<Red Fellow>"

profession
Establece la profesión del NPC, que define su skin cuando no se usa un disfraz.
| Key | Valores | Predeterminado |
|---|---|---|
profession | Profession | NITWIT |
Ejemplo
profession: NITWIT

greetings
Establece la lista de saludos que el NPC dice cuando un jugador se acerca. Admite claves de traducción para servidores multiidioma.
| Key | Valores | Predeterminado |
|---|---|---|
greetings | String List | ninguno |
Ejemplo
greetings:
- Hi there!
- Good day.

dialog
Establece el diálogo que el NPC dirá mientras un jugador esté cerca (en el caso del interactionType DIALOG, este sería el diálogo). Admite claves de traducción para servidores multiidioma.
| Key | Valores | Predeterminado |
|---|---|---|
dialog | String List | ninguno |
Ejemplo
dialog:
- I like apples!
- Sure is hot.

farewell
Establece el mensaje de despedida del NPC. Admite claves de traducción para servidores multiidioma.
| Key | Valores | Predeterminado |
|---|---|---|
farewell | String List | ninguno |
Ejemplo
farewell:
- Until next time!
- Bye!

canTalk
Establece si el NPC puede hablar.
| Key | Valores | Predeterminado |
|---|---|---|
canTalk | Boolean | true |
Ejemplo
canTalk: true
activationRadius
Establece el radio en el que un NPC puede detectar a un jugador acercándose.
| Key | Valores | Predeterminado |
|---|---|---|
activationRadius | Double | 3.0 |
Ejemplo
activationRadius: 3.0
scripts
Establece los scripts Lua adjuntos a este NPC. Los archivos de script se cargan desde plugins/EliteMobs/npc_scripts/ y los nombres de archivo deben coincidir exactamente, incluida la extensión .lua.
| Key | Valores | Predeterminado |
|---|---|---|
scripts | String List | ninguno |
Los scripts de NPC pueden reaccionar a hooks de ciclo de vida, interacción y proximidad, como on_npc_proximity_enter. Consulta Scripts Lua de NPC para ver la API completa y ejemplos.
Ejemplo
scripts:
- wave.lua
interactionType
Establece el tipo de interacción que realizará el NPC.
| Key | Valores | Predeterminado |
|---|---|---|
interactionType | Especial [1] | ninguno |
Ejemplo
interactionType: TELEPORT_BACK
noPreviousLocationMessage
Cuando un NPC Teletransportador no tiene una ubicación anterior a la que pueda teletransportar a un jugador, mostrará este mensaje. Acepta Color Codes y claves de traducción para servidores multiidioma.
| Key | Valores | Predeterminado |
|---|---|---|
noPreviousLocationMessage | String | ninguno |
Ejemplo
noPreviousLocationMessage: '&8[EliteMobs] &cCouldn''t send you back to your previous location - no previous location found!'

timeout
Establece la cantidad de tiempo, en minutos, antes de que un NPC desaparezca permanentemente.
| Key | Valores | Predeterminado |
|---|---|---|
timeout | Double | 0 (nunca) |
Ejemplo
timeout: 0
questFileName
Establece las misiones que da el NPC.
| Key | Valores | Predeterminado |
|---|---|---|
questFileName | String List | ninguno |
Ejemplo
questFileName:
- my_quest_one.yml
- my_quest_two.yml
disguise
Establece el disfraz de LibsDisguises que tiene el NPC.
| Key | Valores | Predeterminado |
|---|---|---|
disguise | Formato de LibsDisguises | ninguno |
Ejemplo
disguise: SKELETON

customDisguiseData
Establece los datos de un disfraz personalizado de LibsDisguises.
| Key | Valores | Predeterminado |
|---|---|---|
customDisguiseData | Formato de LibsDisguises | ninguno |
Ejemplo
disguise: custom:my_cool_disguise_name
customDisguiseData: player my_cool_disguise_name setskin {"id":"364acb6d-9050-46f7-b5fb-f8c3fd83a6fc","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTYxMTk4ODA4Nzc1NSwKICAicHJvZmlsZUlkIiA6ICJkZGVkNTZlMWVmOGI0MGZlOGFkMTYyOTIwZjdhZWNkYSIsCiAgInByb2ZpbGVOYW1lIiA6ICJEaXNjb3JkQXBwIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzliYmVkODQzNWY4YmYyNzhhZmUyNmU2NGZkOTI2YjhiMzc3MzJkODhlMzM0ODk3ZGJkNTI3ZDU2ZmY5MTk5MGUiCiAgICB9CiAgfQp9","signature":"ujLq1joYVktuQAp1xpFKlxQFUVinSePiDBiVCAxxix/mA5vP86i/eAOfb1mtGjaAZ6sO0l2olbzvycnGXNBtbAxgqprguROXY4tpWiePVTDmy3iD4GdOCxHAkYLoyMV5qTT4SNsldUFFuND8GSEgbNMltKDLmhNKwzm08iCigPfpeuYpwljgJPxu6ka54PKNaQu4doI0ZDZXKqq4hPhR3Bs2Sz9MI0SmdmQWwcCzUz3DFdVno27fmQ6LwqmT+eSoOv0EttVG/XMaTYQ5lhBY61mqf6WlJyYVUSfjJk1AbYsctu7dWM+sbY8jFq5ljvXJGGr5TyKi+fs8vHy06Z2go20QgTYOw+caFxFijAS6fgm3oY57VEO/+/9OLHdD+Z9BrWqQWcIIrVeIfxjue/yt4pyeVv9jX59hjNFjhcPEwotkxJ+vZ96WlTLWDG4BiqauDr2VeGyLlVaygO9ZU0wwsN65iSh91GI3tMIA5wbDR0Hts/9ABvt9eafHbowS+4SZXN0i9mYnKg7op1eiB8nMEAGsPJg3DwsmUrh3ACAapQ6eYHiJpo59RXDqKlRcXwo7wsEFp//5LgQWbPj0NP3nxnywdpozqSAeq6236qlhE9BT9eiyJ41V9sMelYFEWMlUAltR40NdbIrHB0J3nmfuLJz44/sTwWf6P1khOy//XX0="}],"legacy":false}

customModel
Establece el modelo personalizado de ModelEngine que usará el NPC.
| Key | Valores | Predeterminado |
|---|---|---|
customModel | String | ninguno |
Ejemplo
customModel: MY_MODEL_ONE
arena
Establece el nombre de archivo de la arena para la que el NPC abrirá un menú (requiere el interactionType ARENA_MASTER).
| Key | Valores | Predeterminado |
|---|---|---|
arena | Filename | ninguno |
Ejemplo
arena: my_arena.yml
command
Establece el comando que ejecutará el NPC (requiere el interactionType COMMAND). Los comandos se ejecutan como el jugador, no como la consola. No incluyas la barra inicial (/).
| Key | Valores | Predeterminado |
|---|---|---|
command | String | ninguno |
Ejemplo
command: say Look at me running a command, how cool!
![]()
spawnLocation
Establece la ubicación de aparición de los NPCs. Deberías establecer esto mediante el comando /em place npc <npcfilename.yml>.
| Key | Valores | Predeterminado |
|---|---|---|
spawnLocation | String | ninguno |
Ejemplo
spawnLocation: my_world,10,50,10,0,0
spawnLocations
Establece las ubicaciones de aparición de los NPCs. Deberías establecer esto mediante el comando /em place npc <npcfilename.yml>.
| Key | Valores | Predeterminado |
|---|---|---|
spawnLocations | String List | ninguno |
Ejemplo
spawnLocations:
- my_world,10,50,10,0,0
- my_world,-10,50,-10,0,0
instanced
Establece si el NPC debe estar instanciado (para uso en mazmorras instanciadas). Cuando se establece en true, el NPC se clona automáticamente para cada instancia de mazmorra, y cada clon existe en el mundo de instancia correspondiente.
| Key | Valores | Predeterminado |
|---|---|---|
instanced | Boolean | false |
Ejemplo
instanced: false
syncMovement
Establece si el movimiento del NPC debe sincronizarse. Se usa para controlar si las actualizaciones de posición del NPC se sincronizan.
| Key | Valores | Predeterminado |
|---|---|---|
syncMovement | Boolean | true |
Ejemplo
syncMovement: true
Ejemplo de configuración de NPC
isEnabled: true
name: "&cRed Rubin"
role: "&a<Generic NPC>"
profession: NITWIT
greetings:
- Hiya!
- Hello!
dialog:
- Great conversation!
- Pleasure talking with you!
farewell:
- Goodbye!
- Laters!
canTalk: true
activationRadius: 4
interactionType: CHAT
timeout: 0
questFileName:
- my_quest.yml #npc interactionType must be set to CUSTOM_QUEST_GIVER
disguise: SKELETON
customDisguiseData: #used when a custom libsdisguise is being set
customModel: MODEL_ONE
arena: my_arena.yml #npc interactionType must be set to ARENA_MASTER
command: say Hello World! #npc interactionType must be set to COMMAND (do not include the leading slash)
spawnLocation: my_world,584,55,127,90,10 #remember that NPCs use pitch and yaw to set where they are looking at. this is also automatically set when running the /em place npc <npcfilename.yml> command, so make sure you pose where you want the NPC to be facing when running the command.

Especial [1]
La siguiente es la lista de tipos de interacción de NPC válidos:
| Tipo | Descripción |
|---|---|
GUILD_GREETER | Abre el menú de selección de bono de habilidad de arma |
CHAT | El clic derecho recorre el dialog |
CUSTOM_SHOP | Abre el menú de la tienda personalizada |
PROCEDURALLY_GENERATED_SHOP | Abre la tienda generada proceduralmente |
BAR | Sin implementar. Indica al jugador que la característica llegará pronto. |
ARENA | No hace nada. Usa ARENA_MASTER en su lugar. |
QUEST_GIVER | Abre el menú de misiones generadas proceduralmente |
CUSTOM_QUEST_GIVER | Abre el menú de misiones para una misión específica establecida en questFileName |
NONE | Sin interacciones |
SELL | Abre el menú de venta |
TELEPORT_BACK | Teletransporta a los jugadores de vuelta a la última ubicación de mundo no perteneciente a elitemobs en la que estuvieron |
SCRAPPER | Abre el menú de desguace |
REPAIRMAN | Abre el menú de reparación |
ENCHANTER | Abre el menú de encantamiento |
REFINER | REEMPLAZADO - Indica al jugador que la característica fue reemplazada; a los administradores se les indica que eliminen el NPC |
SMELTER | REEMPLAZADO - Indica al jugador que la característica fue reemplazada; a los administradores se les indica que eliminen el NPC |
ENHANCER | REEMPLAZADO - Indica al jugador que la característica fue reemplazada; a los administradores se les indica que eliminen el NPC |
UNBINDER | Abre el menú de desvinculación |
ARENA_MASTER | Abre el menú de la arena establecida en arena |
COMMAND | Ejecuta el comando establecido en command |
SCROLL_APPLIER | Aplica pergaminos elite a los objetos |
ARROW_SHOP | Abre el menú de la tienda de flechas |
GAMBLING_BLACKJACK | Abre el juego de apuestas de blackjack |
GAMBLING_COINFLIP | Abre el juego de apuestas de cara o cruz |
GAMBLING_SLOTS | Abre el juego de apuestas de tragaperras |
GAMBLING_HIGHERLOWER | Abre el juego de apuestas de mayor/menor |
Para más información sobre lo que hacen el SCRAPPER y tipos de interacción similares haz clic aquí.
Notas sobre el comportamiento de los NPCs
Los NPCs tienen varios comportamientos preprogramados que no se pueden configurar:
- IA Deshabilitada: Los NPCs no pueden moverse de forma autónoma. Permanecen en su ubicación de aparición.
- Visualización del Rol: El texto del rol se muestra en un soporte de armadura invisible sobre el NPC a una altura fija.
- Tiempo de espera de diálogo: Los NPCs esperan 3 segundos entre eventos de habla para evitar que los mensajes se solapen.
- Ciclo de vida del Chunk: Los NPCs desaparecen cuando su chunk se descarga y reaparecen cuando se vuelve a cargar.
