Crear NPCs
Ajustes de configuracion
isEnabled
Establece si un NPC esta habilitado.
| Clave | Valores | Predeterminado |
|---|---|---|
isEnabled | Boolean | true |
Ejemplo
isEnabled: true
name
Establece el nombre visible de un NPC. Soporta codigos de color y claves de traduccion para servidores multilingues.
| Clave | Valores | Predeterminado |
|---|---|---|
name | String | none |
Ejemplo
name: "&aEnn Peecee"

scale
Establece la escala (tamano) del NPC.
| Clave | Valores | Predeterminado |
|---|---|---|
scale | Multiplier | 1.0 |
Al escalar, 1.0 representa el tamano predeterminado. Para hacer la entidad mas grande, aumente el valor (p. ej., 1.2). Para hacerla mas pequena, disminuya el valor (p. ej., 0.8).
Ejemplo
scale: 1.2
role
Establece el rol del NPC, mostrado debajo del nombre. Solo visual. Soporta codigos de color y claves de traduccion para servidores multilingues.
| Clave | Valores | Predeterminado |
|---|---|---|
role | String | none |
Ejemplo
role: "&c<Red Fellow>"

profession
Establece la profesion del NPC, que determina su apariencia cuando no se usa un disfraz.
| Clave | Valores | Predeterminado |
|---|---|---|
profession | Profession | NITWIT |
Ejemplo
profession: NITWIT

greetings
Establece la lista de saludos que dice el NPC cuando un jugador se acerca. Soporta claves de traduccion para servidores multilingues.
| Clave | Valores | Predeterminado |
|---|---|---|
greetings | String List | none |
Ejemplo
greetings:
- Hi there!
- Good day.

dialog
Establece el dialogo que el NPC dira mientras un jugador esta cerca (en el caso del DIALOG interactionType, este seria el dialogo). Soporta claves de traduccion para servidores multilingues.
| Clave | Valores | Predeterminado |
|---|---|---|
dialog | String List | none |
Ejemplo
dialog:
- I like apples!
- Sure is hot.

farewell
Establece el mensaje de despedida del NPC. Soporta claves de traduccion para servidores multilingues.
| Clave | Valores | Predeterminado |
|---|---|---|
farewell | String List | none |
Ejemplo
farewell:
- Until next time!
- Bye!

canTalk
Establece si el NPC puede hablar.
| Clave | Valores | Predeterminado |
|---|---|---|
canTalk | Boolean | true |
Ejemplo
canTalk: true
activationRadius
Establece el radio en el que un NPC puede detectar a un jugador que se acerca.
| Clave | Valores | Predeterminado |
|---|---|---|
activationRadius | Double | 3.0 |
Ejemplo
activationRadius: 3.0
interactionType
Establece el tipo de interaccion que realizara el NPC.
| Clave | Valores | Predeterminado |
|---|---|---|
interactionType | Special [1] | none |
Ejemplo
interactionType: TELEPORT_BACK
noPreviousLocationMessage
Cuando un NPC Teletransportador no tiene una ubicacion anterior a la que teletransportar a un jugador, mostrara este mensaje. Acepta codigos de color y claves de traduccion para servidores multilingues.
| Clave | Valores | Predeterminado |
|---|---|---|
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 | Predeterminado |
|---|---|---|
timeout | Double | 0 (nunca) |
Ejemplo
timeout: 0
questFileName
Establece las misiones que otorga el NPC.
| Clave | Valores | Predeterminado |
|---|---|---|
questFileName | String List | none |
Ejemplo
questFileName:
- my_quest_one.yml
- my_quest_two.yml
disguise
Establece el disfraz de LibsDisguises del NPC.
| Clave | Valores | Predeterminado |
|---|---|---|
disguise | LibsDisguises format | none |
Ejemplo
disguise: SKELETON

customDisguiseData
Establece los datos para un disfraz personalizado de LibsDisguises.
| Clave | Valores | Predeterminado |
|---|---|---|
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 usara el NPC.
| Clave | Valores | Predeterminado |
|---|---|---|
customModel | String | none |
Ejemplo
customModel: MY_MODEL_ONE
arena
Establece el nombre de archivo de la arena para la que el NPC abrira un menu (requiere el interactionType ARENA_MASTER).
| Clave | Valores | Predeterminado |
|---|---|---|
arena | Filename | none |
Ejemplo
arena: my_arena.yml
command
Establece el comando que ejecutara el NPC (requiere interactionType COMMAND). Los comandos se ejecutan como el jugador, no como la consola. No incluir la barra diagonal inicial (/).
| Clave | Valores | Predeterminado |
|---|---|---|
command | String | none |
Ejemplo
command: say Look at me running a command, how cool!
![]()
spawnLocation
Establece la ubicacion de aparicion de los NPCs. Debe configurarse mediante el comando /em spawnnpc <npcfilename.yml>.
| Clave | Valores | Predeterminado |
|---|---|---|
spawnLocation | String | none |
Ejemplo
spawnLocation: my_world,10,50,10,0,0
spawnLocations
Establece las ubicaciones de aparicion de los NPCs. Debe configurarse mediante el comando /em spawnnpc <npcfilename.yml>.
| Clave | Valores | Predeterminado |
|---|---|---|
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). Cuando se establece en true, el NPC se clona automaticamente para cada instancia de mazmorra, existiendo cada clon en el mundo de instancia correspondiente.
| Clave | Valores | Predeterminado |
|---|---|---|
instanced | Boolean | false |
Ejemplo
instanced: false
syncMovement
Establece si el NPC debe tener su movimiento sincronizado. Se usa para controlar si las actualizaciones de posicion del NPC estan sincronizadas.
| Clave | Valores | Predeterminado |
|---|---|---|
syncMovement | Boolean | false |
Ejemplo
syncMovement: false
Ejemplo de configuracion 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
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 spawnnpc <npcfilename.yml> command, so make sure you pose where you want the NPC to be facing when running the command.

Special [1]
La siguiente es la lista de tipos de interaccion de NPC validos:
| Tipo | Descripcion |
|---|---|
GUILD_GREETER | Abre el menu de seleccion de bonificacion de habilidad de arma |
CHAT | Clic derecho recorre el dialog |
CUSTOM_SHOP | Abre el menu de la tienda personalizada |
PROCEDURALLY_GENERATED_SHOP | Abre la tienda generada proceduralmente |
BAR | Abre el menu del bar |
ARENA | No hace nada. Use ARENA_MASTER en su lugar. |
QUEST_GIVER | Abre el menu de misiones generadas proceduralmente |
CUSTOM_QUEST_GIVER | Abre el menu de misiones para un conjunto especifico en questFileName |
NONE | Sin interacciones |
SELL | Abre el menu de venta |
TELEPORT_BACK | Teletransporta a los jugadores a la ultima ubicacion de mundo no-elitemobs |
SCRAPPER | Abre el menu de desguace |
REPAIRMAN | Abre el menu de reparacion |
ENCHANTER | Abre el menu de encantamiento |
REFINER | OBSOLETO - Funcion eliminada, no usar |
SMELTER | OBSOLETO - Funcion eliminada, no usar |
ENHANCER | OBSOLETO - Funcion eliminada, no usar |
UNBINDER | Abre el menu de desvinculacion |
ARENA_MASTER | Abre el menu de arena para la arena establecida en arenaFilename |
COMMAND | Ejecuta el comando establecido en command |
SCROLL_APPLIER | Aplica pergaminos de objetos elite a objetos |
ARROW_SHOP | Abre el menu de la tienda de flechas |
GAMBLING_BLACKJACK | Abre el juego de apuestas de blackjack |
GAMBLING_COINFLIP | Abre el juego de lanzamiento de moneda |
GAMBLING_SLOTS | Abre el juego de tragamonedas |
GAMBLING_HIGHERLOWER | Abre el juego de mayor/menor |
Para mas informacion sobre lo que hacen SCRAPPER y tipos de interaccion similares, haga clic aqui.
Notas sobre el comportamiento de los NPCs
Los NPCs tienen varios comportamientos codificados que no se pueden configurar:
- IA desactivada: Los NPCs no pueden moverse autonomamente. Permanecen en su ubicacion de aparicion.
- Visualizacion de rol: El texto del rol se muestra en un soporte de armadura invisible sobre el NPC a una altura fija.
- Tiempo de espera de dialogo: Los NPCs esperan 3 segundos entre eventos de habla para evitar mensajes superpuestos.
- Ciclo de vida del chunk: Los NPCs desaparecen cuando su chunk se descarga y reaparecen cuando se recarga.
