Criar NPCs
Definicoes de configuracao
isEnabled
Define se um NPC esta ativado.
| Chave | Valores | Padrao |
|---|---|---|
isEnabled | Boolean | true |
Exemplo
isEnabled: true
name
Define o nome de exibicao de um NPC. Suporta codigos de cor e chaves de traducao para servidores multilinguisticos.
| Chave | Valores | Padrao |
|---|---|---|
name | String | none |
Exemplo
name: "&aEnn Peecee"

scale
Define a escala (tamanho) do NPC.
| Chave | Valores | Padrao |
|---|---|---|
scale | Multiplier | 1.0 |
Ao escalar, 1.0 representa o tamanho padrao. Para tornar a entidade maior, aumente o valor (ex.: 1.2). Para torna-la menor, diminua o valor (ex.: 0.8).
Exemplo
scale: 1.2
role
Define o papel do NPC, exibido abaixo do nome. Apenas visual. Suporta codigos de cor e chaves de traducao para servidores multilinguisticos.
| Chave | Valores | Padrao |
|---|---|---|
role | String | none |
Exemplo
role: "&c<Red Fellow>"

profession
Define a profissao do NPC, que determina sua aparencia quando nao esta usando um disfarce.
| Chave | Valores | Padrao |
|---|---|---|
profession | Profession | NITWIT |
Exemplo
profession: NITWIT

greetings
Define a lista de saudacoes que o NPC diz quando um jogador se aproxima. Suporta chaves de traducao para servidores multilinguisticos.
| Chave | Valores | Padrao |
|---|---|---|
greetings | String List | none |
Exemplo
greetings:
- Hi there!
- Good day.

dialog
Define o dialogo que o NPC dira enquanto um jogador estiver por perto (no caso do DIALOG interactionType, este seria o dialogo). Suporta chaves de traducao para servidores multilinguisticos.
| Chave | Valores | Padrao |
|---|---|---|
dialog | String List | none |
Exemplo
dialog:
- I like apples!
- Sure is hot.

farewell
Define a mensagem de despedida do NPC. Suporta chaves de traducao para servidores multilinguisticos.
| Chave | Valores | Padrao |
|---|---|---|
farewell | String List | none |
Exemplo
farewell:
- Until next time!
- Bye!

canTalk
Define se o NPC pode falar.
| Chave | Valores | Padrao |
|---|---|---|
canTalk | Boolean | true |
Exemplo
canTalk: true
activationRadius
Define o raio em que um NPC pode detectar um jogador se aproximando.
| Chave | Valores | Padrao |
|---|---|---|
activationRadius | Double | 3.0 |
Exemplo
activationRadius: 3.0
interactionType
Define o tipo de interacao que o NPC realizara.
| Chave | Valores | Padrao |
|---|---|---|
interactionType | Special [1] | none |
Exemplo
interactionType: TELEPORT_BACK
noPreviousLocationMessage
Quando um NPC Teletransportador nao tem uma localizacao anterior para a qual teletransportar um jogador, ele exibira esta mensagem. Aceita codigos de cor e chaves de traducao para servidores multilinguisticos.
| Chave | Valores | Padrao |
|---|---|---|
noPreviousLocationMessage | String | none |
Exemplo
noPreviousLocationMessage: '&8[EliteMobs] &cCouldn''t send you back to your previous location - no previous location found!'

timeout
Define a quantidade de tempo, em minutos, antes de um NPC desaparecer permanentemente.
| Chave | Valores | Padrao |
|---|---|---|
timeout | Double | 0 (nunca) |
Exemplo
timeout: 0
questFileName
Define as missoes que o NPC oferece.
| Chave | Valores | Padrao |
|---|---|---|
questFileName | String List | none |
Exemplo
questFileName:
- my_quest_one.yml
- my_quest_two.yml
disguise
Define o disfarce LibsDisguises do NPC.
| Chave | Valores | Padrao |
|---|---|---|
disguise | LibsDisguises format | none |
Exemplo
disguise: SKELETON

customDisguiseData
Define os dados para um disfarce LibsDisguises personalizado.
| Chave | Valores | Padrao |
|---|---|---|
customDisguiseData | LibsDisguises format | none |
Exemplo
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
Define o modelo personalizado do ModelEngine que o NPC usara.
| Chave | Valores | Padrao |
|---|---|---|
customModel | String | none |
Exemplo
customModel: MY_MODEL_ONE
arena
Define o nome do arquivo da arena para a qual o NPC abrira um menu (requer o interactionType ARENA_MASTER).
| Chave | Valores | Padrao |
|---|---|---|
arena | Filename | none |
Exemplo
arena: my_arena.yml
command
Define o comando que o NPC executara (requer interactionType COMMAND). Os comandos sao executados como o jogador, nao como o console. Nao inclua a barra inicial (/).
| Chave | Valores | Padrao |
|---|---|---|
command | String | none |
Exemplo
command: say Look at me running a command, how cool!
![]()
spawnLocation
Define a localizacao de aparecimento dos NPCs. Deve ser configurado atraves do comando /em spawnnpc <npcfilename.yml>.
| Chave | Valores | Padrao |
|---|---|---|
spawnLocation | String | none |
Exemplo
spawnLocation: my_world,10,50,10,0,0
spawnLocations
Define as localizacoes de aparecimento dos NPCs. Deve ser configurado atraves do comando /em spawnnpc <npcfilename.yml>.
| Chave | Valores | Padrao |
|---|---|---|
spawnLocations | String List | none |
Exemplo
spawnLocations:
- my_world,10,50,10,0,0
- my_world,-10,50,-10,0,0
instanced
Define se o NPC deve ser instanciado (para uso em masmorras instanciadas). Quando definido como true, o NPC e automaticamente clonado para cada instancia de masmorra, com cada clone existindo no mundo de instancia correspondente.
| Chave | Valores | Padrao |
|---|---|---|
instanced | Boolean | false |
Exemplo
instanced: false
syncMovement
Define se o NPC deve ter seu movimento sincronizado. Usado para controlar se as atualizacoes de posicao do NPC sao sincronizadas.
| Chave | Valores | Padrao |
|---|---|---|
syncMovement | Boolean | false |
Exemplo
syncMovement: false
Exemplo de configuracao 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]
A seguir esta a lista de tipos de interacao de NPC validos:
| Tipo | Descricao |
|---|---|
GUILD_GREETER | Abre o menu de selecao de bonus de habilidade de arma |
CHAT | Clique direito percorre o dialog |
CUSTOM_SHOP | Abre o menu da loja personalizada |
PROCEDURALLY_GENERATED_SHOP | Abre a loja gerada proceduralmente |
BAR | Abre o menu do bar |
ARENA | Nao faz nada. Use ARENA_MASTER em vez disso. |
QUEST_GIVER | Abre o menu de missoes geradas proceduralmente |
CUSTOM_QUEST_GIVER | Abre o menu de missoes para um conjunto especifico em questFileName |
NONE | Sem interacoes |
SELL | Abre o menu de venda |
TELEPORT_BACK | Teletransporta jogadores para a ultima localizacao em mundo nao-elitemobs |
SCRAPPER | Abre o menu de sucata |
REPAIRMAN | Abre o menu de reparo |
ENCHANTER | Abre o menu de encantamento |
REFINER | OBSOLETO - Funcionalidade removida, nao usar |
SMELTER | OBSOLETO - Funcionalidade removida, nao usar |
ENHANCER | OBSOLETO - Funcionalidade removida, nao usar |
UNBINDER | Abre o menu de desvinculacao |
ARENA_MASTER | Abre o menu da arena para a arena definida em arenaFilename |
COMMAND | Executa o comando definido em command |
SCROLL_APPLIER | Aplica pergaminhos de itens elite a itens |
ARROW_SHOP | Abre o menu da loja de flechas |
GAMBLING_BLACKJACK | Abre o jogo de aposta de blackjack |
GAMBLING_COINFLIP | Abre o jogo de aposta de cara ou coroa |
GAMBLING_SLOTS | Abre o jogo de aposta de caca-niqueis |
GAMBLING_HIGHERLOWER | Abre o jogo de aposta de maior/menor |
Para mais informacoes sobre o que SCRAPPER e tipos de interacao similares fazem, clique aqui.
Notas sobre o comportamento dos NPCs
Os NPCs possuem varios comportamentos codificados que nao podem ser configurados:
- IA desativada: Os NPCs nao podem se mover autonomamente. Eles permanecem em sua localizacao de aparecimento.
- Exibicao de papel: O texto do papel e exibido em um suporte de armadura invisivel acima do NPC em uma altura fixa.
- Tempo de espera do dialogo: Os NPCs esperam 3 segundos entre eventos de fala para evitar mensagens sobrepostas.
- Ciclo de vida do chunk: Os NPCs desaparecem quando seu chunk e descarregado e reaparecem quando e recarregado.
