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.

2026-08-12

OmniGUI Extension v0.12

  • Menus estendidos. extendToPlayerInventory em open_gui transforma os 36 espaços do jogador em quatro linhas extras de menu, uma tela de 10 linhas. A projeção é apenas do lado do cliente: o inventário real nunca é escrito e é restaurado ao fechar o menu.
  • Um layout raiz cujo identificador termina em _extended ativa essa projeção sozinho, de modo que um chassi compartilhado pode oferecer uma variante normal e uma estendida sem que cada menu repita o sinalizador.
  • DynamicMarkers transforma marcadores de conteúdo repetidos em marcadores indexados (QUEST_SLOT#0, QUEST_SLOT#1, …) antes da análise do layout, para que as extensões parem de manter cada uma sua cópia privada dessa semântica.
  • A repetição de espaços é limitada e informada: posições fora da grade são descartadas e registradas, com o identificador do layout e as coordenadas rejeitadas. O editor avisa quando count/gap/repeatY são definidos sem direction, e acusa erro em uma direction desconhecida.
  • Documentado: gap é um passo (1 = adjacente) e repeatY repete no eixo perpendicular a direction.
  • Corrigida a herança de mainLayoutId: um valor vazio no filho vencia o herdado, então uma página que herdava todo o seu chassi resolvia um layout inexistente e era exibida vazia — sem nenhum botão para receber um clique.
  • O sombreamento de espaços passa a ter um único dono: quando dois espaços reivindicam a mesma célula, vence o que carrega comportamento, tanto na renderização quanto no clique, e a colisão é registrada uma vez.
  • A validação de inicialização só relata o que realmente falha. Foram removidas as verificações que apontavam a ausência de itens opcionais — frame.view.unresolved, slot.outOfFrame, layout.unreferenced — porque, numa arquitetura de modelos, elas descrevem o projeto e não um defeito. O que resta nomeia uma intenção escrita que falha: uma view apontando para um layout ausente, um espaço saindo do inventário, dois espaços de mesma natureza colidindo no mesmo layout.

Release v0.12

Shop Extension v1.4

  • Modo aba. baseMenuId torna uma loja uma aba de um menu compartilhado: seu conjunto de layouts e suas views se fundem sob o chassi, com views, defaultViewId e um retângulo de conteúdo (contentX, contentY, contentColumns, contentRows). Deixado vazio, a loja abre exatamente como antes.
  • Suporte ao chassi estendido: uma loja aberta dentro de um chassi estendido ganha a tela de 10 linhas.
  • Adicionados defaultNameFormat e defaultLoreFormat. Um item que não declara nome nem lore herda o formato da loja; um item que declara o seu o mantém intacto — o formato da loja preenche lacunas, nunca sobrescreve a redação do autor.
  • Ambos aceitam os mesmos tokens: {item}, {buy}, {sell}, {stock}, {stock_max}, {currency}. Uma linha de lore que pede um preço indisponível é removida em vez de exibida vazia.
  • Adicionado ShopTransactionEvent, disparado assim que uma compra ou venda é concluída. É a costura onde outras extensões se conectam — um relé do Discord, um log de auditoria — sem que a Shops saiba que existem. Anunciado, nunca cancelável.
  • Adicionado notificationWebhookId. A Shops não o resolve e não sabe o que é um webhook; o identificador viaja no evento. Um listener que falha é relatado e a transação se mantém — nada desfaz uma compra já paga.
  • Corrigido: um layout esvaziado de seus marcadores era descartado do conjunto, então uma tela de loja feita inteiramente de marcadores, ou uma aba ainda vazia, desaparecia em silêncio.

Release v1.4

QuestCodex Extension v2.9

  • A promoção do chassi estendido passa a ser conduzida pela herança, e não por uma comparação literal de identificador. Um chassi cuja raiz tivesse outro nome que não shell_root perdia seu acabamento estendido, e todo controle ancorado na faixa inferior sumia na renderização — ficando inalcançável ao clique.
  • A extensão é compilada contra o motor GUI desta leva de publicações, e não contra um jar congelado mais antigo. Ela estava presa à v0.11 do motor, de modo que tudo acrescentado depois lhe era invisível.

Release v2.9

Discord Extension v0.9 — antes Community

  • A extensão agora se chama Discord, não mais Community. Pasta, pacote e nome da extensão acompanham. Os nomes das entradas não mudam: as páginas os serializam.
  • DiscordClientService sai do recurso de vínculo para seu próprio pacote: sincronização de chat, console e relatórios de bug todos o utilizam, então ele nunca pertenceu ao vínculo de contas.
  • Webhooks são entradas. webhook_definition declara um destino do Discord uma vez e o referencia em todo lugar. Sincronização de chat, vínculo de conta e relatórios de bug carregavam cada um sua cópia da URL, do nome e do avatar — trocar de canal exigia editar cada manifesto, sem nada que garantisse que apontavam para o mesmo lugar.
  • WebhookService é um singleton que qualquer extensão pode injetar. Antes o cliente HTTP era construído à mão no inicializador e entregue a cada serviço, então nada de fora conseguia entregar uma mensagem.
  • Relatórios de bug perdem seu segundo interruptor: um destino vazio é o estado desativado.
  • Migração. Páginas escritas antes desta versão são convertidas na primeira inicialização: uma entrada webhook_definition por destino distinto — manifestos configurados de forma idêntica compartilham uma só — e os manifestos reapontados para ela. Cada página reescrita é salva antes, em backup/community-webhook-v1/. A conversão é guiada pela forma, não por um número de versão: rodá-la duas vezes não muda nada. Um manifesto desligado mantém sua URL em um destino desativado em vez de perdê-la.
  • Avisos de loja. shop_notification_manifest descreve como uma transação de loja aparece ao chegar no Discord. O destino está deliberadamente ausente dessa entrada — ele pertence à loja. Uma mesma apresentação serve assim a todas as lojas, cada uma publicando em seu próprio canal. Requer a extensão Shops, mas não depende dela.

Release v0.9

Puzzle Extension v0.1 — primeira versão

  • Nove tipos de quebra-cabeças, cada um um objetivo do Typewriter com sua audiência, seu progresso e seus gatilhos: empurrar blocos, oferenda em pedestal, sequências de memória, ordem de alavancas, reprodução de padrões, rotação de molduras, cadeados de combinação, grades de laser e placas de pressão cooperativas.
  • Tudo o que um quebra-cabeça desenha é do lado do cliente — blocos, prévias fantasma, destaques e feixes de laser são enviados ao jogador que o resolve. Dois jogadores podem trabalhar no mesmo conjunto sem ver o progresso um do outro, e o mundo nunca é modificado.
  • Ciclo de vida comum a todos: timeLimit, maxAttempts, cooldownOnFail, resetOnWrong, lifespan, dicas e os gatilhos onStart / onComplete / onFail / onTimeout / onLifespanExpire.
  • isShared muda um quebra-cabeça de progresso individual para um único conjunto que todo o grupo avança em comum.
  • puzzle_chain encadeia vários quebra-cabeças em ordem e dispara assim que a sequência é resolvida; resetOnFail decide se um erro devolve o jogador ao início.
  • puzzle_artifact persiste o estado dos quebra-cabeças: um reinício no meio de uma tentativa não apaga mais o progresso.
  • puzzle_solved_fact e puzzle_active_fact expõem o progresso ao resto do seu conteúdo; puzzle_menu lista os quebra-cabeças e seu estado no chat.
  • Compatível com Folia: cada leitura e escrita no mundo roda na região dona do quebra-cabeça.

Release v0.1

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.

  • O menu de saque é um menu da GUI Extension, e não um inventário nu com seu próprio listener de cliques: ele herda o roteamento de cliques, o histórico de menus e a projeção de inventário estendido do motor. A GUI Extension passa portanto a ser obrigatória.

Release v0.1

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.

Release v0.5

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.

Release v0.8

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.

Release v0.9

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.