Creando NPCs
Configuración
isEnabled
Establece si un NPC está habilitado.
| Clave | Valores | Por defecto |
|---|---|---|
isEnabled | Boolean | true |
Ejemplo
isEnabled: true
name
Establece el nombre visible de un NPC. Soporta Códigos de Color.
| Clave | Valores | Por defecto |
|---|---|---|
name | String | none |
Ejemplo
name: "&aEnn Peecee"

scale
Establece la escala (tamaño) del NPC.
| Clave | Valores | Por defecto |
|---|---|---|
scale | Multiplier | 1.0 |
Al escalar, 1.0 representa el tamaño predeterminado. Para hacer la entidad más grande, aumenta el valor (ej., 1.2). Para hacer la entidad más pequeña, disminuye el valor (ej., 0.8).
Ejemplo
scale: 1.2
role
Establece el rol del NPC, debajo del nombre. Solo visual. Soporta Códigos de Color.
| Clave | Valores | Por defecto |
|---|---|---|
role | String | none |
Ejemplo
role: "&c<Red Fellow>"

profession
Establece la profesión del NPC, que determina su apariencia cuando no se usa un disfraz.
| Clave | Valores | Por defecto |
|---|---|---|
profession | Profession | NITWIT |
Ejemplo
profession: NITWIT

greetings
Establece la lista de saludos que el NPC dice cuando un jugador se acerca.
| Clave | Valores | Por defecto |
|---|---|---|
greetings | String List | none |
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).
| Clave | Valores | Por defecto |
|---|---|---|
dialog | String List | none |
Ejemplo
dialog:
- I like apples!
- Sure is hot.

farewell
Establece el mensaje de despedida del NPC.
| Clave | Valores | Por defecto |
|---|---|---|
farewell | String List | none |
Ejemplo
farewell:
- Until next time!
- Bye!

canTalk
Establece si el NPC puede hablar.
| Clave | Valores | Por defecto |
|---|---|---|
canTalk | Boolean | true |
Ejemplo
canTalk: true
activationRadius
Establece el radio en el que un NPC puede detectar a un jugador acercándose.
| Clave | Valores | Por defecto |
|---|---|---|
activationRadius | Double | 3.0 |
Ejemplo
activationRadius: 3.0
interactionType
Establece el tipo de interacción que hará el NPC.
| Clave | Valores | Por defecto |
|---|---|---|
interactionType | Special [1] | none |
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 Códigos de Color
| Clave | Valores | Por defecto |
|---|---|---|
noPreviousLocationMessage | String | none |
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.
| Clave | Valores | Por defecto |
|---|---|---|
timeout | Integer | 0 (nunca) |
Ejemplo
timeout: 0
questFileName
Establece las misiones que el NPC otorga.
| Clave | Valores | Por defecto |
|---|---|---|
questFileName | String List | none |
Ejemplo
questFileName:
- my_quest_one.yml
- my_quest_two.yml
disguise
Establece el disfraz de LibsDisguises que tiene el NPC.
| Clave | Valores | Por defecto |
|---|---|---|
disguise | LibsDisguises format | none |
Ejemplo
disguise: SKELETON

customDisguiseData
Establece los datos para un disfraz personalizado de LibsDisguises.
| Clave | Valores | Por defecto |
|---|---|---|
customDisguiseData | LibsDisguises format | none |
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.
| Clave | Valores | Por defecto |
|---|---|---|
customModel | String | none |
Ejemplo
customModel: MY_MODEL_ONE
arena
Establece el nombre del archivo de la arena para la que el NPC abrirá un menú (requiere el interactionType ARENA_MASTER).
| Clave | Valores | Por defecto |
|---|---|---|
arena | Filename | none |
Ejemplo
arena: my_arena.yml
command
Establece el comando que ejecutará el NPC (requiere el interactionType COMMAND).
| Clave | Valores | Por defecto |
|---|---|---|
command | String | none |
Ejemplo
command: say Look at me running a command, how cool!
![]()
spawnLocation
Establece la ubicación de aparición de los NPCs. Deberías configurar esto a través del comando /em spawnnpc <npcfilename.yml>.
| Clave | Valores | Por defecto |
|---|---|---|
spawnLocation | String | none |
Ejemplo
spawnLocation: my_world,10,50,10,0,0
spawnLocations
Establece las ubicaciones de aparición de los NPCs. Deberías configurar esto a través del comando /em spawnnpc <npcfilename.yml>.
| Clave | Valores | Por defecto |
|---|---|---|
spawnLocations | String List | none |
Ejemplo
spawnLocations:
- my_world,10,50,10,0,0
- my_world,-10,50,-10,0,0
instanced
Establece si el NPC debe ser instanciado (para uso en mazmorras instanciadas).
| Clave | Valores | Por defecto |
|---|---|---|
instanced | Boolean | false |
Ejemplo
instanced: false
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 #el interactionType del npc debe estar configurado como CUSTOM_QUEST_GIVER
disguise: SKELETON
customDisguiseData: #usado cuando se configura un libsdisguise personalizado
customModel: MODEL_ONE
arena: my_arena.yml #el interactionType del npc debe estar configurado como ARENA_MASTER
command: /say Hello World! #el interactionType del npc debe estar configurado como COMMAND
spawnLocation: my_world,584,55,127,90,10 #recuerda que los NPCs usan pitch y yaw para establecer hacia dónde están mirando. esto también se configura automáticamente al ejecutar el comando /em spawnnpc <npcfilename.yml>, así que asegúrate de posar donde quieres que el NPC esté mirando al ejecutar el comando.

Special [1]
La siguiente es la lista de tipos de interacción válidos para NPCs:
| Tipo | Descripción |
|---|---|
GUILD_GREETER | Abre el menú del gremio de aventureros |
CHAT | Hacer clic derecho recorre el dialog |
CUSTOM_SHOP | Abre el menú de tienda personalizada |
PROCEDURALLY_GENERATED_SHOP | Abre la tienda generada proceduralmente |
BAR | Abre el menú del bar |
ARENA | Abre el menú de arena |
QUEST_GIVER | Abre el menú de misiones generadas proceduralmente |
CUSTOM_QUEST_GIVER | Abre el menú de misión para una misión específica configurada 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-elitemobs en la que estuvieron |
SCRAPPER | Abre el menú de chatarra |
REPAIRMAN | Abre el menú de reparación |
ENCHANTER | Abre el menú de encantamiento |
REFINER | Abre el menú de refinación |
UNBINDER | Abre el menú de desvinculación |
ARENA_MASTER | Abre el menú de arena para la arena configurada en arenaFilename |
COMMAND | Ejecuta el comando configurado en command |
Para más información sobre lo que hacen el SCRAPPER y tipos de interacción similares, haz clic aquí.
