Pular para o conteúdo principal

Registro de alterações

Notas de versão das extensões e plugins da BTC Studio.

Cada entrada indica a extensão, sua versão, a data de publicação e o que mudou. As entradas são adicionadas aqui conforme as versões são publicadas.

Em breve

Estas extensões estão prontas e aguardam publicação. Elas aparecem aqui para que você saiba o que vem por aí — nenhuma release foi publicada ainda, e os números de versão abaixo são os que essas releases vão levar.

Corpse Extension v0.1 — primeira release

  • Os corpos são renderizados uma vez por espectador, como os displays de entidade do próprio motor, então todos por perto os veem; a animação do modelo e as placas de nome funcionam nos backends BetterModel, BTC Mob NPC e MythicMobs NPC.
  • Roda no Folia: todo o agendamento passa por um agendador compatível com Folia, e os itens derrubados, os orbes de experiência e as partículas rodam na região dona do corpo.
  • O inventário guardado por um corpo sobrevive a um reinício, a uma queda ou a um reload. Os corpos são armazenados no MySQL quando disponível, senão na pasta do plugin, e restaurados na inicialização.
  • onlyOwnerCanLoot é realmente aplicado, e o saque é associado ao id de entidade do próprio corpo em vez de a qualquer clique direito num raio de quatro blocos.
  • A definição de corpo é escolhida a cada morte conforme o mundo e a prioridade, e sua duração é resolvida uma única vez, naquele corpo.
  • Os eventos on_corpse_spawn, on_corpse_loot e on_corpse_expire passam pelo pipeline de gatilhos do motor e publicam o dono, o loot e a posição do corpo como contexto.
  • displayName, showDisplayName, dropOnInteract, renderArmor, playDeathAnimation e deathAnimationName são todos respeitados, e a maioria dos ajustes são valores dinâmicos, podendo ser controlados por placeholders e facts.
  • Um contorno luminoso renderizado no cliente, com cor configurável, e sons de corpo enviados por jogador próximo em vez de para o mundo inteiro.
  • Os facts has_corpse e corpse_count, a audiência corpse_owner_audience, corpse_waypoint mostrando distância e direção até o próprio corpo, corpse_recovery_objective, e corpse_admin_command com os subcomandos list e clear.
  • Uma janela de proteção do loot, após a qual o corpo se abre para todos.

Custom Biome Extension v0.5

  • Os biomas personalizados existem imediatamente. Uma definição é registrada no registro vivo assim que é salva, em vez de só depois de um reinício do servidor. O datapack gerado passa a ser a camada de persistência, e não mais o único caminho.
  • Corrigido: o servidor ignorava o datapack gerado, porque seu formato de pack estava fixado num valor antigo e ele era escrito numa pasta que o servidor nunca lê.
  • Corrigido: baseBiome não tinha efeito algum além de plains. Os biomas agora são construídos a partir do bioma base que o servidor mantém e codificados com o codec dele, de modo que os spawns de mobs, as features e os carvers são herdados em vez de perdidos.
  • Corrigido: mudanças de bioma abriam buracos no mundo. A atualização enviava pacotes de descarregamento de chunk que o servidor nunca seguia com um reenvio. Os clientes agora recebem uma atualização de bioma construída a partir dos dados reais do chunk.
  • Corrigido: leave_biome_event nunca disparava. Os listeners de entrada e de saída sobrescreviam o estado um do outro, então o resultado dependia da ordem de registro.
  • Corrigido: a pintura escrevia cada bloco de uma coluna em vez de um por célula 4x4x4, e fazia isso a partir da thread chamadora. As escritas agora são agendadas na região dona de cada chunk.
  • Um bioma que o servidor se recusaria a serializar agora é rejeitado no registro, com o valor culpado nomeado. Antes ele era aceito e depois quebrava todos os logins.
  • Sobreposições de bioma por jogador (player_biome_overlay_action): mostrar um bioma diferente a um único jogador, sem tocar no mundo nem afetar mais ninguém.
  • Pintura de região (paint_biome_region_action) com snapshots, e restore_biome_action para devolver uma região ao estado anterior.
  • biome_transition_cinematic: mudar o bioma que um jogador vê ao longo de uma cinemática.
  • custom_biome_preset: compartilhar cores e atributos visuais entre biomas, sobrescrevíveis por definição.
  • explore_biome_objective e biome_discovery_fact: missões concluídas visitando biomas.
  • Toda entrada de leitura ganha uma opção source, que escolhe entre o que é mostrado ao jogador e o que o mundo contém.
  • Removidos /tw biome setcolor, que criava biomas descartáveis nunca persistidos, e o modo de fact HASH, cujo valor não era estável entre reinícios.
  • O jar da extensão caiu de 2,6 MB para 230 KB: ele não empacota mais as bibliotecas que o servidor já fornece.

Enchantment Creator Extension v0.8

  • levelMode em uma mecânica compara runOnLevel como nível exato, mínimo (AT_LEAST) ou máximo (AT_MOST). Antes só era possível a igualdade exata.
  • eventPhase executa as ações de uma mecânica durante o evento Bukkit em curso, de modo que cancelar o evento ou alterar o dano realmente surta efeito. Use false para as interações do Typewriter enfileiradas.
  • clientSideEffects passa a ser consciente do cliente, com a ação client_particle_effect: o artefato BTC customizado usa o renderizador baseado em PacketEvents quando disponível, e o artefato público do Paper um fallback do Bukkit direcionado ao jogador.
  • As chaves de registro passam a derivar de id. O name anterior é mantido como alias legado ao carregar páginas e itens existentes, então nada precisa ser refeito.
  • O artefato público não tem, propositalmente, nenhuma dependência de BTC-CORE ou BTC Velocity: roda em Paper 1.21.x com Java 21, compilado a partir do JDK 25 em bytecode Java 21.

Numerical Storage Extension v0.9

  • transactionMode na configuração de transação: INTERNAL mantém o caminho de PlaceholderAPI mais comandos de console, VAULT passa direto pela API Vault Economy e ignora amountPlaceholder e os campos de comando.
  • addCommand e removeCommand estavam documentados ao contrário. addCommand conclui um depósito no armazenamento e é verificado antes da mutação persistente; removeCommand conclui um saque.
  • A persistência agora é assíncrona, com travas de mutação por artefato e um cache de curta duração, então dois depósitos simultâneos não podem mais se atropelar.
  • Os arquivos de armazenamento passam para o esquema JSON versão 2, sob um caminho de artefato técnico. Um arquivo antigo baseado no artifactId semântico é salvo em backups/numericalstorage/ e migrado no primeiro acesso — faça backup da pasta assets/ do Typewriter antes de atualizar.
  • artifactId é um identificador técnico gerado: deixe vazio e o Typewriter preenche.
  • Os placeholders recebem um argumento de definição explícito (%typewriter_ns_balance_bank%), o que elimina a antiga ambiguidade de divisão por underscores quando o ID de definição já contém algum.
  • Chaves cientes de perfil, opcionais, quando a integração Profiles está instalada.

2026-08-07

QuestCodex Extension v2.8

  • Conquistas reais do Minecraft. A nova entrada advancement_definition grava conquistas autênticas em um pacote de dados que a própria extensão administra, de modo que aparecem na tela de conquistas vanilla com aba, árvore, molduras e notificações próprias. parent referencia outra definição, então a árvore é desenhada no editor de nós.
  • grant_advancement concede uma conquista ou a retira, e percorre a cadeia de pais para que um filho nunca seja obtido sob um pai não obtido.
  • autoGrant concede uma conquista no primeiro tick do jogador. Em uma raiz, é isso que faz sua aba existir antes de qualquer coisa ter sido obtida.
  • Ordem das missões corrigida: uma missão aninhada lê sua ordem da própria subcategoria, missões sem ordem explícita não se agrupam mais, e adicionar uma missão não apaga mais a ordem que ela já tinha.
  • Os marcadores de missões são paginados, o modo de ordenação é por jogador, e o acompanhamento múltiplo sobrevive a uma reconexão na ordem escolhida.

Release v2.8

OmniGUI Extension v0.11

  • Dicas de itens, com um interruptor hideVanillaItemStats na entrada de configuração da GUI.
  • Um layout paginado pode exibir um indicador de página, através do novo papel INDICATOR.
  • Os menus são validados na inicialização do servidor: um slot fora dos limites, um modelo ausente ou um tipo de botão desconhecido é apontado no console antes que um jogador abra o menu.
  • <shift:N> funciona sem o CraftEngine, através da fonte Magic Digit incluída.
  • count e repeatY estão documentados como contadores de repetição de slots, não como tamanho de pilha.

Release v0.11

Shop Extension v1.3

  • Uma loja não pode mais deixar um jogador abaixo de zero. Três caminhos independentes permitiam isso.
  • Um saldo ilegível não é mais interpretado como zero, e saldos formatados como 12.5k são lidos corretamente.

Release v1.3

2026-08-03

QuestCodex Extension v2.7

  • Adicionados modos de exibição de waypoints: WORLD_DIRECTIONAL projeta os marcadores em uma esfera ao redor dos olhos do jogador, seguindo a direção real do destino, TARGET_ANCHORED os coloca sobre o alvo e ADAPTIVE faz a transição entre os dois. HUD_LOCKED continua sendo o padrão, então as páginas existentes não mudam.
  • Adicionado tamanho aparente constante e desagrupamento angular, para que vários marcadores permaneçam legíveis quando seus destinos compartilham a linha de visão.
  • Adicionada a renderização de múltiplos alvos em uma única entrada de waypoint, com as novas seleções de objetivos rastreados ALL e ONE_PER_QUEST, e um limite maxTargets.
  • Corrigido o rastreamento múltiplo ignorado pelos waypoints: os objetivos das missões rastreadas secundárias nunca eram resolvidos, então apenas a missão principal gerava marcador.
  • Adicionado quest_codex_locator_bar, que renderiza os mesmos alvos resolvidos como pontos da barra de localização vanilla no Minecraft 1.21.6+, sem gerar nenhuma entidade.

Versão v2.7

2026-08-02

QuestCodex Extension v2.6

  • Adicionada a recuperação persistente de diálogos e cinemáticas do Typewriter interrompidos, incluindo o último quadro da cinemática. A recuperação agora preserva o instantâneo capturado quando o Typewriter emite seus eventos de encerramento após a desconexão de um jogador.
  • Adicionado o rastreamento persistente de várias missões, com menu de missões rastreadas, placeholders dedicados e um exemplo público de waypoint com duas missões.
  • Adicionados waypoints do lado do cliente somente com texto, com texto de ícone configurável, blocos display centralizados, rotação de beacon centralizada, alinhamento de alvo por nível, interpolação suave, posicionamento próximo ao alvo e cone de visibilidade horizontal configurável.
  • Removidas as camadas antigas de waypoint (item display e seta direcional) antes de sua primeira implantação pública.

Versão v2.6

OmniGUI Extension v0.10

  • Adicionados os motores de layout Flex e Composite, para posicionamento responsivo de slots e camadas de menu compostas.
  • Adicionadas visões endereçáveis reutilizáveis, com pools de layout herdados, visões padrão, trilhas de navegação, tags de visão e integração opcional com o histórico.
  • Adicionada a migração de esquema ciente das visões e a integração com o QuestCodex, além dos metadados de publicação no Maven.
  • Corrigidas as trocas de visão, que agora reconstroem os menus sem piscar ao fechar e reabrir; o fechamento de inventário passou a ser seguro no Folia.

Versão v0.10

Shop Extension v1.2

  • A extensão Shop pública foi reconstruída e validada contra o OmniGUI v0.10.
  • Preservados os layouts dinâmicos de loja existentes, o histórico de navegação, o tratamento de preenchimento, as regras de estoque e limite, e os handlers de botões personalizados.
  • Nenhuma migração é necessária a partir da Shop Extension v1.1.

Versão v1.2

MythicMobsNPC Extension v0.4.6

  • Corrigida a mudança de escala ignorada em modelos que não trazem nenhuma animação, do mesmo modo que na extensão BetterModel.
  • As variantes de mobs vanilla (gato, raposa, lobo, aldeão e afins) agora são relatadas uma vez no console em vez de ignoradas em silêncio: pertencem à configuração do MythicMobs, que detém a identidade do mob e as sobrescreveria a cada renascimento.
  • Corrigido o caso em que uma única entrada de dados com falha cancelava todas as demais enviadas no mesmo lote, o que podia deixar um NPC sem nenhum de seus dados configurados.
  • O efeito de brilho e o equipamento agora são aplicados no modelo, não apenas no mob. O corpo do mob fica escondido atrás do modelo, então aplicá-los somente no mob não deixava nada visível.
  • O equipamento agora relata no console quando o modelo não tem nenhum osso portador de item, em vez de não fazer nada em silêncio.
  • O fogo é reafirmado a cada segundo para não se apagar sozinho, e informa quando o BetterModel está escondendo o corpo sobre o qual as chamas são desenhadas.
  • Corrigida a trepidação da placa de nome quando o NPC caminha ou segue uma rede de estradas: o texto exibido agora interpola entre atualizações em vez de se teletransportar aos saltos.

BetterModel Extension v1.3

  • Corrigida a escala do modelo ignorada em modelos que não trazem nenhuma animação. O BetterModel só recalcula a transformação de um modelo enquanto uma animação está em execução, de modo que uma mudança de escala aplicada em tempo de execução nunca chegava a um modelo estático. A extensão agora força o recálculo por conta própria.
  • A mesma correção vale para o deslocamento do modelo, que passava pelo mesmo caminho de código.
  • As entradas de dados de entidade agora realmente chegam ao modelo em vez de serem descartadas. Suportadas: efeito de brilho, cor de efeito de poção (renderizada como tingimento de item), luminosidade, restrição de billboard, duração de interpolação, translação, escala 3D, tamanho da caixa, equipamento e fogo.
  • Adicionado bettermodel_bone_appearance, uma versão por osso dos ajustes de brilho, tingimento, cintilação e luminosidade, com o mesmo sistema de critérios de bettermodel_bone_visibility.
  • O equipamento é mapeado nos ossos de item de mão e cabeça do BetterModel. Os espaços de armadura são relatados uma vez no console em vez de ignorados em silêncio, porque o torso e as pernas de um modelo carregam sua própria geometria.
  • Uma escala 3D não uniforme agora emite um aviso em vez de usar silenciosamente um único eixo: o BetterModel só suporta escala uniforme.
  • Qualquer entrada de dados sem sentido em um modelo 3D (poses, variantes de mobs, estado de reprodução…) agora é relatada uma vez no console em vez de descartada em silêncio.
  • Brilho, tingimento, luminosidade, billboard, translação e equipamento agora sobrevivem a um recarregamento de pacote de recursos ou a um renascimento, em vez de voltarem à aparência padrão.
  • O equipamento relata no console quando o modelo não tem nenhum osso marcado com ri, li ou ph, em vez de não fazer nada em silêncio — essa é a razão habitual de um item não aparecer.
  • O fogo agora é desenhado na entidade de interação do NPC, e não nos ossos do modelo: o cliente dimensiona a chama pela caixa delimitadora da entidade, e uma entidade de display não tem nenhuma, então as chamas eram renderizadas com tamanho zero.

Nexo Extension v1.0

  • Adicionados fatos para saber o que o jogador segura, carrega no inventário, olha ou pisa.
  • Adicionadas variáveis que fornecem o ID e as propriedades do item, bloco e mobília mirados.
  • Adicionadas uma ação para dar e outra para remover um item, ambas a partir do ID de item do Nexo.
  • Adicionados eventos de coleta, descarte e consumo de itens.
  • Adicionados eventos de interação e dano para blocos e mobílias personalizados, além de um evento de espólio.
  • Os eventos agora passam seus dados (ID do bloco, posição, item na mão) para o que vier a seguir, de modo que um diálogo ou uma ação possa usá-los diretamente.

CraftEngine Extension v1.0

  • Os objetivos de missão funcionam. Podem ser anexados a uma missão, salvam o progresso e podem disparar uma sequência ao serem concluídos.
  • Adicionados fatos para tempos de recarga, para itens segurados e carregados, e para o bloco ou a mobília que o jogador mira.
  • Adicionadas variáveis que fornecem IDs, propriedades de item e a lista de conteúdo carregado.
  • Adicionadas uma ação para dar e outra para remover um item, ambas a partir do ID de item do CraftEngine.
  • Adicionados eventos de coleta, descarte e consumo de itens.
  • Adicionados eventos para tentativas de colocação e para golpes em mobílias.
  • Os eventos agora passam seus dados para o que vier a seguir.

ItemsAdder Extension v1.0

  • Os eventos de bloco e mobília agora leem o ItemsAdder diretamente, em vez de deduzi-los dos eventos vanilla, o que os torna confiáveis e elimina um breve atraso que podia perder ou repetir um disparo.
  • Adicionados fatos para itens segurados e carregados, usos restantes, durabilidade personalizada, visibilidade do HUD e crescimento de plantações.
  • Adicionadas variáveis que fornecem IDs, propriedades de item e imagens de fonte.
  • Adicionadas uma ação para dar e outra para remover um item, ambas a partir do ID de item do ItemsAdder.
  • Adicionados eventos de coleta, descarte e consumo de itens.
  • Adicionados eventos de interação, um evento anterior à colocação de mobílias e um evento de morte de entidade personalizada.
  • Os eventos agora passam seus dados para o que vier a seguir.
  • Corrigidos os objetivos de missão, do mesmo modo que na extensão Nexo.

2026-07-26

QuestCodex Extension v2.5

  • Adicionado o rastreamento persistente de várias missões por meio da entrada quest_codex_tracking_artifact.
  • Adicionados o modo de menu de categoria @tracked e os marcadores dinâmicos TRACKED_QUEST_SLOT.
  • Adicionados /tw codex tracked e o comando de GUI interno codex:tracked.
  • Adicionados placeholders do PlaceholderAPI para a contagem de missões rastreadas, o limite, a missão principal, as missões rastreadas indexadas, os status, os objetivos e as prioridades.
  • Documentada a estrutura do pacote de páginas públicas: manifesto principal, artefato de rastreamento estático, definições de missões e configurações da GUI.

OmniGUI Extension v0.9

  • Adicionada a migração automática do esquema de páginas públicas para armazenamento embutido e campos antigos de paginação.
  • Documentado o esquema compacto storagePool / storageId e navigationButtons, usado para reduzir travamentos de publicação no editor do Typewriter.
  • Esclarecido o padrão recomendado de menu referenciado para menus grandes do QuestCodex.