BTCMobs
O BTCMobs é uma extensão Soon. Ele não foi lançado, ainda não tem download nem número de versão, e as entries ou campos podem mudar antes da publicação. Esta página documenta o build de desenvolvimento atual como referência. Não se trata do antigo plugin "BTC Mob": o motor de mobs agora vive dentro da própria extensão, e não há nenhum plugin separado para instalar.
Visão geral

O BTCMobs permite construir mobs personalizados e NPCs interativos inteiramente pelo painel web do TypeWriter. Um mob template descreve uma criatura: sua entidade base do Minecraft, nível, vida, armadura, habilidades, drops, facção, modelo 3D opcional e reprodução opcional. Spawners e spawns naturais decidem onde e quando os templates aparecem no mundo. Skills e tabelas de drops definem o que o mob faz e o que ele deixa para trás.
Tudo o que os mobs fazem é exposto de volta ao TypeWriter. Eventos disparam quando um mob é gerado, sofre dano, lança uma habilidade ou morre. Facts e variáveis informam vida, nível, contagem ou distância. Ações geram, removem ou fazem mobs lançarem habilidades. Isso permite que quests, diálogos e cinemáticas reajam a uma luta, ou comecem uma.
A mesma extensão também fornece um lado de NPCs: um mob template pode ser exibido como um NPC no lado do cliente, com interações de diálogo, objetivos de quest, cinemáticas de câmera (incluindo câmeras presas a um osso de modelo), visibilidade de ossos por jogador e controle de animações do ModelEngine ou do BetterModel. A extensão tem como alvo o build BTC do TypeWriter (Paper/Folia).
Recursos
- Mob templates — uma entry
btc_mob_templatepor criatura: tipo de entidade, nível, vida, dano de ataque, armadura, habilidades, drops, facção, tabela de ameaça, modelo e animações. - Spawners — spawners baseados em região com um limite de spawn, cadência de geração e aquecimento que podem ser guiados por facts, de modo que cada jogador pode ver um ritmo diferente.
- Substituição de spawn natural — troque os spawns de criaturas vanilla por mobs BTC, regra por regra, por mundo, bioma e probabilidade.
- Skills — uma skill é uma lista ordenada de ações do TypeWriter, ou uma linha de script. Os templates anexam skills a triggers como spawn, ataque, dano, morte ou um timer repetitivo.
- Tabelas de drops e itens — materiais vanilla, itens personalizados, XP e tabelas reutilizáveis, com chance e quantidade que escalam com o nível do mob.
- Ganchos para quests — eventos, facts, variáveis e um objetivo de skill para que as histórias possam reagir a mobs e lutas.
- NPCs — NPCs baseados em templates no lado do cliente, com diálogo, interação, olhar para o jogador e comportamento de câmera.
- Cinemáticas — gere um mob, lance uma skill, foque em um NPC ou cavalgue um osso de modelo durante uma cinemática do TypeWriter.
- Persistência — cooldowns de skills, contadores, auras, tabelas de ameaça e boss bars sobrevivem a um reinício quando um artifact de armazenamento está configurado.
- Importação do MythicMobs — um comando de operador converte um pack do MythicMobs em pages do BTCMobs.
Instalação
O BTCMobs está em desenvolvimento e não tem download público. As notas abaixo descrevem como o build de desenvolvimento é conectado.
- Execute o build BTC do TypeWriter (BTC Core, Paper ou Folia) com as extensões Quest e RoadNetwork, que o build declara como dependências.
- Coloque o JAR do BTCMobs em
plugins/Typewriter/extensions/e reinicie o servidor. Ele inclui seu próprio motor de mobs, então nenhum plugin BTCMobs separado é necessário. - Instale as integrações opcionais que desejar. A extensão as detecta em tempo de execução: ModelEngine ou BetterModel para modelos 3D, MiniPlaceholders para expor placeholders, PacketEvents, Vault, DecentHolograms e WorldGuard.
- Para abrir o menu de catálogo de mobs, a extensão GUI da BTC deve estar instalada.
- No painel web, crie um artifact
btcmobs_storagee referencie-o a partir de uma entrybtcmobs_config(veja abaixo) para que o estado do jogo seja salvo.
Primeiros passos
Este passo a passo cria um chefe zumbi, o gera em uma arena e reage à sua morte.
- No painel web do TypeWriter, abra uma page manifest. Adicione um artifact BTCMobs Storage e depois uma entry BTCMobs Global Configuration e defina
storagecomo esse artifact. - Abra uma page static e adicione um Native BTC mob template. Dê a ele um
idque você reutilizará (por exemplocrypt_warden). DefinaentityTypecomoZOMBIE,displaycomo o nome que os jogadores veem e depoislevel,maxHealth,attackDamageearmor. - Adicione uma Native BTC mob drop table e liste seus
drops, uma declaração por linha, por exemploDIAMOND 1 0.25(material, quantidade, chance) ouexp 20to40. Referencie a tabela pelo id dela na listadropsdo template. - Adicione uma Native BTC mob skill e preencha
actionscom as ações do TypeWriter que ela executa, em ordem. No template, adicione o id da skill askills, por exemplowarden_slam~onTimer:100para lançá-la a cada 100 ticks. - Adicione um BTCMobs Spawner. Defina
mobTypecomo o id do template (não o nome de exibição),world, os doiscorner1ecorner2de uma região,defaultMaxMobsedefaultCooldown(em ticks). - Adicione um evento On BTCMob die com
mobNamedefinido como o id do template e ligue seustriggersa um diálogo, uma recompensa ou um modifier de fact. - Publique as pages, aproxime-se a até
defaultActivationRange(24 blocos por padrão) do centro da região e o mob aparece. Use/tw btcmobs spawners force <id>para testar sem esperar.
/tw btcmobs spawn <template> <level> <amount> gera um template ao seu lado com o nível que você escolher. O comando sugere os ids de template carregados.
Como funciona
Um template é apenas uma descrição. Um mob ativo é criado quando um spawner, um spawn natural, uma ação Spawn a mob ou o comando spawn pede um. A partir daí, o mob executa as skills anexadas aos seus triggers e sorteia suas declarações de drops quando morre. Cada etapa também gera um evento do TypeWriter, que é como as quests e os diálogos acompanham a luta.
Skills e triggers
As entradas na lista skills de um template são escritas como skillId ou skillId~trigger. O id é o id (ou nome) de uma entry btc_mob_skill. O trigger diz quando o mob a executa: onSpawn, onAttack, onDamaged, onDeath, onKill, onDespawn, onInteract, onTeleport, onExplode, onRanged, onProjectile ou onTimer:<ticks> para uma skill repetitiva (onTimer:5s também é aceito, em segundos). Uma skill sem trigger é executada em todo trigger que o mob gera, então sempre adicione um. conditions filtra cada linha de skill e targeters escolhe os alvos que elas compartilham.
Declarações de drops
Cada linha de uma tabela de drops, ou da lista drops de um template, é uma destas:
- um material vanilla com quantidade e chance opcionais, por exemplo
BONE 2 0.5; - o id ou nome de uma entry
btc_mob_item, com quantidade e chance opcionais; exp 10ouexp 10to20para experiência;btc:<item_id> [amount or range] [chance] [+n/m]para um item do catálogo BTC. Sem o token+n/m, a quantidade cresce com o nível do mob, de x1 no nível 1 a x6 no nível 100;- o id de outra tabela de drops, que é expandida no local.
Declarações desconhecidas são registradas como avisos e ignoradas.
NPCs
Um NPC é um template exibido aos jogadores como uma entidade no lado do cliente. Uma BtcMob NPC definition nomeia o template em mobType e define o nome de exibição, seu deslocamento e se ele recebe ticks. Uma BtcMob NPC instance o posiciona com spawnLocation, uma activity opcional, um group e data extra. As entries de dados de NPC alteram a aparência do modelo: visibilidade de ossos por jogador, anexos que trocam um osso por um de outro modelo, stances do ModelEngine para dia e noite e velocidade de caminhada.
Comandos
Todos os comandos ficam sob /tw btcmobs. Os aliases curtos /tw btc e /tw btcmobsadmin executam a mesma árvore. Todo nó tem uma permissão no formato btcmobs.command.<node> (veja abaixo).
| Comando | Descrição |
|---|---|
/tw btcmobs mobs [list] | Lista os mob templates carregados. |
/tw btcmobs mobs listactive | Lista os mobs atualmente vivos. |
/tw btcmobs spawn <template> [level] [amount] | Gera um template ao seu lado (quantidade de 1 a 64). summon e mobs spawn são equivalentes. |
/tw btcmobs mobs kill <template> [radius] | Mata mobs de um template ao seu redor (raio padrão 48). |
/tw btcmobs mobs killall [radius] | Mata todos os mobs BTC ao seu redor (raio padrão 48). |
/tw btcmobs mobs info | Mostra informações sobre o mob que você está olhando. |
/tw btcmobs skills [list] | Lista as skills carregadas. |
/tw btcmobs cast <skill> | Lança uma skill a partir de você (skills cast, test cast e profile cast são equivalentes). |
/tw btcmobs spawners [list] | Lista as entries de spawners. |
/tw btcmobs spawners info <id> | Mostra um spawner. |
/tw btcmobs spawners force <id> [amount] | Força um spawn, ignorando condições e limites. |
/tw btcmobs spawners reload | Recarrega as entries nativas. |
/tw btcmobs reload | Recarrega as entries nativas. |
/tw btcmobs menu | Abre o menu de catálogo de mobs (os primeiros 45 templates, em ordem alfabética). |
/tw btcmobs items list e get <item> [amount] | Lista ou pega um item do catálogo. |
/tw btcmobs items give <player> <item> [amount] | Dá um item do catálogo a um jogador. |
/tw btcmobs signal <uuid> <signal> | Envia um sinal a um mob ativo. |
/tw btcmobs test mechanic, condition, targeter <line> | Executa uma linha de script como teste. |
/tw btcmobs test on <uuid or nearest> <line> | Executa uma linha de script em um mob ativo específico. |
/tw btcmobs import mythic [path] | Converte um pack do MythicMobs em pages do BTCMobs (pasta padrão import/BtcMob na pasta de dados do TypeWriter). migrate mythic é equivalente. |
/tw btcmobs audit, coverage, registrydump, variables, placeholders | Diagnósticos sobre templates, skills, spawners e registros carregados. |
/tw btcmobs debug, version, modeldiag | Diagnósticos de execução, versão e estado do BetterModel dos mobs próximos. |
Permissões
| Permissão | Concede |
|---|---|
btcmobs.command.main | A raiz /tw btcmobs e sua ajuda. Concedida a todos por padrão. |
btcmobs.command.version | version e v. Concedida a todos por padrão. |
btcmobs.command.mobs, .mobs.spawn, .mobs.kill, .mobs.killall, .mobs.info, .mobs.listactive, .mobs.stats | Os comandos mobs e spawn. |
btcmobs.command.skills, .skills.cast | Listar e lançar skills. |
btcmobs.command.spawners, .spawners.list, .spawners.info, .spawners.force, .spawners.reload | Os comandos spawners. |
btcmobs.command.items, .items.list, .items.get, .items.give | Os comandos items. |
btcmobs.command.menu, .menu.open | O menu de catálogo. |
btcmobs.command.import, .migrate, .migrate.mythic, btcmobs.import | A importação do MythicMobs. |
btcmobs.command.test, .test.mechanic, .test.condition, .test.targeter, .test.cast | Os comandos test. |
btcmobs.command.audit, .variables, .debug, .modeldiag, .signal, .reload, .profile | Os comandos de diagnóstico correspondentes. |
btcmobs.command.admin, btcmobs.admin | Raiz administrativa (/tw btcmobsadmin). |
btcmobs.command.*, btcmobs.* | Todas as anteriores. |
Todas as permissões, exceto btcmobs.command.main e btcmobs.command.version, são por padrão apenas para operadores. O comando modeldiag verifica btcmobs.command.modeldiag, que a extensão registra (operadores por padrão).
Placeholders
Os placeholders são publicados apenas no MiniPlaceholders; o PlaceholderAPI não é usado para publicá-los. A sintaxe é <name:argument:argument>.
| Placeholder | Retorna |
|---|---|
<btcmobs_caster> e <btcmobs_caster:field> | O id do template, ou um campo do mob vinculado ao jogador: name, type, level, hp, maxhp, percent, uuid. |
<btcmobs_looking> e <btcmobs_looking:field> | Os mesmos campos para o mob BTC que o jogador está olhando (até o alcance de visão), vazio quando não há nenhum. |
<btcmobs_var:name> | O valor de uma variável global do BTCMobs. |
<btcmobsdamage_top:BOSS:POSITION:field> | O jogador em uma posição de um ranking de dano de chefe. Campos: name, damage, raw_damage, percent, uuid. |
<btcmobsdamage_self:BOSS:field> | O ranking do próprio jogador que está vendo. Campos: damage, raw_damage, percent, position. |
<btcmobsdamage_participants:BOSS>, _total, _max_health, _last_update | Totais de um ranking de dano de chefe. |
Entries
57 entradas, geradas a partir do código-fonte da extensão.
Ações7
- BTC Mob Script ActionNative BTC mob script action
- Btcmob NPC HideHide a BtcMob NPC
- Btcmob NPC ShowShow a BtcMob NPC
- Despawn Btcmobs MobDespawn a mob from BTCMobs
- Execute Btcmobs SkillExecutes a BTCMobs skill
- Open BTC Mob MenuOpen the native BTC mob catalogue
- Spawn Btcmobs MobSpawn a mob from BTCMobs
Eventos9
- Btcmob NPC HitWhen a BtcMob NPC is hit or hits a player
- Btcmob NPC InteractWhen the player clicks on a BtcMob NPC
- Btcmobs Interact EventBTCMob Interact Event
- Btcmobs Kill Player EventBTCMob Kill Player Event
- On Btcmob DamageWhen a BTCMob takes damage.
- On Btcmob DespawnWhen a BTCMob despawns without being killed by a player.
- On Btcmob DieWhen a player kill a BTCMob.
- On Btcmob SkillWhen a BTCMob casts a skill.
- On Btcmob SpawnWhen a BTCMob spawns in the world.
Objetivos2
- Btcmob Skill ObjectiveBtcMob Skill Objective
- Interact Btcmob NPC ObjectiveInteract with a BtcMob NPC
Fatos9
- Btcmob Count FactCount the number of active BTCMobs of the specified type
- Btcmob Health Percentage FactReturns the current health percentage of the nearest BTCMob of the specified type
- Btcmob Level FactReturns the level of the nearest BTCMob of the specified type
- Btcmob NPC Animation Playing FactReturns 1 when the specified ModelEngine animation is playing
- Btcmob NPC Distance FactReturns the distance between the player and the BtcMobs NPC
- Btcmob NPC Health Percentage FactReturns the NPC's current health percentage
- Btcmob NPC Presence FactReturns 1 when the BtcMobs NPC is currently spawned
- Btcmob NPC Threat Table Size FactReturns the size of the BtcMobs threat table
- Btcmob NPC Visibility FactReturns 1 if the player can currently see the BtcMobs NPC
Cinemáticas5
- Btcmob CinematicSpawn a BTCMob during a cinematic
- Btcmob NPC Bone Camera CinematicAttach the cinematic camera to a bone of a BtcMob NPC's model
- Btcmob NPC Camera CinematicFocus on a BtcMob NPC during a cinematic
- Btcmob NPC Skill CinematicTrigger a BtcMob NPC Skill
- Btcmobs Skill CinematicTrigger a BTCMob Skill during a cinematic
Entidades2
- Btcmob NPC DefinitionA BtcMob that can be used as an NPC
- Btcmob NPC InstanceAn instance of a BtcMob NPC
Dados de entidade4
- Btcmob NPC AttachmentReplace a bone of a BtcMob NPC model with one from another model
- Btcmob NPC Bone VisibilityControl BtcMob NPC bone visibility with criteria
- Modelengine Stance DataModelEngine stance configuration for day/night animations
- Mythicmob Speed DataChange the walking speed of a BtcMob
Limites de interação3
- Btcmob NPC Camera BoundA camera bound that focuses on a BtcMob NPC with custom focus offset
- Btcmob NPC Look at Interaction BoundAn interaction which forces the player to look at a BtcMob NPC
- Mythicmob Look at Interaction BoundAn interaction which forces the player to look at the nearest BtcMob of a specific type
Variáveis8
- Btcmob NPC Active Animations VariableReturns the active ModelEngine animations for the BtcMobs NPC
- Btcmob NPC Faction VariableReturns the BtcMobs NPC faction
- Btcmob NPC Health Percentage VariableReturns the current health percentage of the BtcMobs NPC
- Btcmob NPC Health VariableReturns the current health of the BtcMobs NPC
- Btcmob NPC Level VariableReturns the BtcMobs NPC level
- Btcmob NPC Max Health VariableReturns the maximum health of the BtcMobs NPC
- Btcmob NPC Power VariableReturns the BtcMobs NPC power
- Btcmob NPC Stance VariableReturns the current stance applied to the BtcMobs NPC
Artefatos1
- Btcmobs StorageBTCMobs Storage Artifact
Manifestos1
- Btcmobs ConfigBTCMobs Global Configuration
Definições6
- BTC Mob Drop TableNative BTC mob drop table
- BTC Mob ItemNative BTC mob item
- BTC Mob SkillNative BTC mob skill
- BTC Mob TemplateNative BTC mob template
- BTC Natural SpawnBTCMobs Natural Spawn Replacement
- BTC SpawnerBTCMobs Spawner with Corner System
Solução de problemas
O spawner não faz nada e o log diz "references unknown mob template". mobType deve ser o id de um btc_mob_template, não o nome exibido no editor. Copie o id da entry do template. A mesma regra vale para btc_natural_spawn, as ações de spawn e despawn e as definições de NPC.
O spawner nunca atinge seu limite, ou para em 1. Uma região cujos dois cantos são o mesmo ponto limita defaultMaxMobs a 1. O limite conta os mobs pertencentes a esse spawner, onde quer que estejam. O spawner só funciona enquanto um jogador está a até defaultActivationRange do centro de uma região.
Um spawner não faz nada para alguns jogadores. Para cada jogador próximo da região, o spawner verifica o mundo, depois conditionLines, depois criteria, e tudo precisa passar antes de olhar a região, o cooldown e o spawn. Um jogador que falha em criteria é ignorado (uma linha de diagnóstico "criteria did not match" é registrada uma vez por jogador). criteria nunca remove um mob que já apareceu. Os campos ...Fact (maxMobsFact, mobsPerSpawnFact e os demais) continuam substituindo os valores numéricos padrão.
A substituição de spawn natural nunca dispara. A entry só substitui spawns que o servidor já produz (naturais, de geração de chunks ou padrão). Se os spawn-limits do mundo em paper-world-defaults.yml forem 0, as criaturas vanilla nunca são geradas e nada é substituído. A primeira regra correspondente vence, e maxNearby definido como 0 significa sem limite, não zero mobs.
Um mob toca animações de Attack ou Death em loop, ou não anda. modelAnimations só toca em loop animações do tipo idle quando um modelo é anexado; nomes de ataque e morte colocados ali são ignorados. As animações pontuais são definidas no modelLifecycle do template (spawn, ataque, golpe recebido, morte) e tocam no momento correspondente; uma animação de morte toca até o fim antes de o modelo desaparecer. Um nome ausente do modelo é registrado uma vez por template e esse momento fica silencioso. As animações de caminhada ainda não são controladas pelos mobs, apenas no lado dos NPCs.
Uma skill ou um drop está faltando silenciosamente. Verifique o log do servidor: declarações de drops desconhecidas, itens desconhecidos e chances inválidas são registrados como avisos e ignorados. Uma entrada de skills cujo id não corresponde a uma entry btc_mob_skill é registrada no log quando o mob a lança.
On BTCMob despawn não dispara. O evento dispara quando um mob rastreado sai do mundo sem morrer (despawn natural, remoção por um plugin, queda para fora do mundo) e há um jogador a menos de radius blocos. Ele não dispara quando o mob morre (use On BTCMob die), quando apenas o seu chunk é descarregado (o mob é readotado ao recarregar) nem quando você o remove com a ação Despawn ou com /tw btcmobs mobs kill. Um mobName vazio corresponde a todos os mobs; o mesmo vale para os eventos spawn, die, damage e interact.
Extensões relacionadas
- BetterModel — o BetterModel é um dos dois backends de modelos (
modelProvider) que o BTCMobs pode controlar para modelos de mobs e NPCs.