Aller au contenu principal

Journal des modifications

Notes de version des extensions et plugins BTC Studio.

Chaque entrée indique l'extension, sa version, la date de publication et le détail des changements. Les entrées sont ajoutées ici au fil des publications.

2026-08-12

OmniGUI Extension v0.12

  • Menus étendus. extendToPlayerInventory sur open_gui transforme les 36 cases du joueur en quatre rangées de menu supplémentaires, soit une toile de 10 rangées. La projection est purement côté client : l'inventaire réel n'est jamais écrit, et il est restauré à la fermeture du menu.
  • Une mise en page racine dont l'identifiant se termine par _extended active seule cette projection : un châssis partagé peut donc livrer une variante normale et une variante étendue sans que chaque menu ait à répéter le drapeau.
  • DynamicMarkers transforme les marqueurs de contenu répétés en marqueurs indexés (QUEST_SLOT#0, QUEST_SLOT#1, …) avant l'analyse de la mise en page, ce qui évite à chaque extension d'en garder une copie privée.
  • La répétition de slots est bornée et journalisée : les positions hors grille sont écartées et signalées, avec l'identifiant de la mise en page et les coordonnées rejetées. L'éditeur avertit quand count/gap/repeatY sont renseignés sans direction, et refuse une direction inconnue.
  • Documenté : gap est un pas (1 = adjacent) et repeatY répète sur l'axe perpendiculaire à direction.
  • Correction de l'héritage de mainLayoutId : une valeur vide sur l'enfant l'emportait sur celle héritée, si bien qu'une page héritant de tout son châssis résolvait une mise en page inexistante et s'affichait vide — sans plus aucun bouton pour recevoir un clic.
  • L'ombrage de slots a désormais un propriétaire unique : quand deux slots revendiquent la même case, celui qui porte un comportement l'emporte, au rendu comme au clic, et la collision est journalisée une fois.
  • La validation au démarrage ne signale plus que ce qui échoue réellement. Les contrôles qui pointaient l'absence d'éléments facultatifs ont été supprimés — frame.view.unresolved, slot.outOfFrame, layout.unreferenced — parce que dans une architecture à modèles ils décrivent la conception, pas un défaut. Ce qui reste nomme une intention écrite qui échoue : une vue désignant une mise en page absente, un slot quittant l'inventaire, deux slots de même nature en collision dans une même mise en page.

Release v0.12

Shop Extension v1.4

  • Mode onglet. baseMenuId fait d'une boutique un onglet d'un menu partagé : son pool de mises en page et ses vues fusionnent sous le châssis, avec views, defaultViewId et un rectangle de contenu (contentX, contentY, contentColumns, contentRows). Laissé vide, une boutique s'ouvre exactement comme avant.
  • Prise en charge du châssis étendu : une boutique ouverte dans un châssis étendu dispose de la toile de 10 rangées.
  • Ajout de defaultNameFormat et defaultLoreFormat. Un article qui ne déclare ni nom ni lore hérite du format de la boutique ; un article qui déclare le sien le conserve intact — le format de boutique comble les vides, il n'écrase jamais la formulation d'un auteur.
  • Les deux acceptent les mêmes jetons : {item}, {buy}, {sell}, {stock}, {stock_max}, {currency}. Une ligne de lore réclamant un prix indisponible est retirée plutôt qu'affichée vide.
  • Ajout de ShopTransactionEvent, émis une fois l'achat ou la vente conclu. C'est la couture sur laquelle d'autres extensions se branchent — un relais Discord, un journal d'audit — sans que Shops sache qu'elles existent. Annoncé, jamais annulable.
  • Ajout de notificationWebhookId. Shops ne le résout pas et ignore ce qu'est un webhook ; l'identifiant voyage sur l'événement. Un listener qui échoue est signalé et la transaction tient — rien ne défait un achat payé.
  • Correction : une mise en page vidée de ses marqueurs était retirée du pool, si bien qu'un écran de boutique entièrement fait de marqueurs, ou un onglet encore vide, disparaissait en silence.

Release v1.4

QuestCodex Extension v2.9

  • La promotion du châssis étendu est désormais portée par l'héritage plutôt que par une égalité littérale d'identifiant. Un châssis dont la racine porte un autre nom que shell_root perdait son habillage étendu, et tout contrôle ancré dans la bande basse disparaissait au rendu — donc injoignable au clic.
  • L'extension est construite contre le moteur GUI de cette vague de release et non contre un jar figé plus ancien. Elle était bloquée sur la v0.11 du moteur : tout ajout postérieur lui était invisible.

Release v2.9

Discord Extension v0.9 — anciennement Community

  • L'extension s'appelle désormais Discord, plus Community. Le dossier, le package et le nom d'extension suivent. Les noms d'entrées ne changent pas : les pages les sérialisent.
  • DiscordClientService quitte la fonctionnalité de liaison pour son propre package : la synchronisation du chat, la console et les rapports de bug l'utilisent tous, il n'appartenait donc pas à la liaison de compte.
  • Les webhooks sont des entrées. webhook_definition déclare une destination Discord une fois et la référence partout. La synchronisation du chat, la liaison de compte et les rapports de bug portaient chacun leur copie de l'URL, du nom et de l'avatar — changer de salon imposait d'éditer chaque manifeste, sans rien qui garantisse qu'ils visaient le même endroit.
  • WebhookService est un singleton que n'importe quelle extension peut injecter. Le client HTTP était auparavant construit à la main dans l'initialiseur et remis à chaque service : rien à l'extérieur ne pouvait envoyer un message.
  • Les rapports de bug perdent leur second interrupteur : une destination vide est l'état désactivé.
  • Migration. Les pages écrites avant cette version sont converties au premier démarrage : une entrée webhook_definition par destination distincte — les manifestes configurés à l'identique en partagent une seule — et les manifestes repointés dessus. Chaque page réécrite est d'abord sauvegardée, sous backup/community-webhook-v1/. La conversion se fonde sur la forme et non sur un numéro de version : la relancer ne change rien. Un manifeste désactivé conserve son URL sur une destination désactivée au lieu de la perdre.
  • Annonces de boutique. shop_notification_manifest décrit la mise en forme d'une transaction une fois arrivée sur Discord. La destination en est délibérément absente — elle appartient à la boutique. Une même présentation sert donc toutes les boutiques, chacune publiant dans son propre salon. Nécessite l'extension Shops, mais n'en dépend pas.

Release v0.9

Puzzle Extension v0.1 — première release

  • Neuf types d'énigmes, chacune étant un objectif Typewriter avec son audience, sa progression et ses déclencheurs : poussée de blocs, offrande sur piédestal, séquences de mémoire, ordre de leviers, reproduction de motif, rotation de cadres, serrures à combinaison, grilles laser et plaques de pression coopératives.
  • Tout ce qu'une énigme dessine est côté client — blocs, aperçus fantômes, surbrillances et rayons laser sont envoyés au joueur qui la résout. Deux joueurs peuvent travailler sur le même dispositif sans voir la progression de l'autre, et le monde n'est jamais modifié.
  • Cycle de vie commun à toutes : timeLimit, maxAttempts, cooldownOnFail, resetOnWrong, lifespan, indices, et déclencheurs onStart / onComplete / onFail / onTimeout / onLifespanExpire.
  • isShared fait passer une énigme d'une progression individuelle à un dispositif unique que tout le groupe fait avancer ensemble.
  • puzzle_chain enchaîne plusieurs énigmes dans l'ordre et se déclenche une fois la séquence résolue ; resetOnFail décide si une erreur renvoie le joueur au départ.
  • puzzle_artifact persiste l'état des énigmes : un redémarrage en pleine tentative n'efface plus la progression.
  • puzzle_solved_fact et puzzle_active_fact exposent la progression au reste de votre contenu ; puzzle_menu liste les énigmes et leur état dans le chat.
  • Compatible Folia : chaque lecture et chaque écriture dans le monde s'exécute sur la région propriétaire de l'énigme.

Release v0.1

Corpse Extension v0.1 — première release

  • Les cadavres sont rendus une fois par spectateur, comme les affichages d'entité du moteur, si bien que tout le monde autour les voit ; l'animation du modèle et les plaques de nom tournent sur les backends BetterModel, BTC Mob NPC et MythicMobs NPC.

  • Fonctionne sur Folia : toute la planification passe par un ordonnanceur compatible Folia, et les drops d'objets, les orbes d'expérience et les particules s'exécutent sur la région propriétaire du cadavre.

  • L'inventaire porté par un cadavre survit à un redémarrage, un crash ou un rechargement. Les cadavres sont stockés dans MySQL quand il est disponible, sinon dans le dossier du plugin, et restaurés au démarrage.

  • onlyOwnerCanLoot est réellement appliqué, et le pillage est rattaché à l'identifiant d'entité du cadavre plutôt qu'à n'importe quel clic droit dans un rayon de quatre blocs.

  • Une définition de cadavre est choisie à chaque mort selon le monde et la priorité, et sa durée de vie est résolue une seule fois, sur ce cadavre.

  • Les événements on_corpse_spawn, on_corpse_loot et on_corpse_expire passent par le pipeline de déclencheurs du moteur et publient le propriétaire, le butin et la position du cadavre comme contexte.

  • displayName, showDisplayName, dropOnInteract, renderArmor, playDeathAnimation et deathAnimationName sont tous honorés, et la plupart des réglages sont des valeurs dynamiques, donc pilotables par des placeholders et des facts.

  • Un contour lumineux rendu côté client, de couleur configurable, et des sons de cadavre envoyés par joueur à proximité au lieu d'être diffusés à tout le monde.

  • Les facts has_corpse et corpse_count, l'audience corpse_owner_audience, corpse_waypoint qui indique la distance et la direction vers son propre cadavre, corpse_recovery_objective, et corpse_admin_command avec les sous-commandes list et clear.

  • Une fenêtre de protection du butin, au terme de laquelle le cadavre s'ouvre à tout le monde.

  • Le menu de butin est un menu de la GUI Extension et non un inventaire nu avec son propre listener de clics : il hérite du routage des clics, de l'historique de menus et de la projection d'inventaire étendu du moteur. La GUI Extension devient donc requise.

Release v0.1

Custom Biome Extension v0.5

  • Les biomes personnalisés existent immédiatement. Une définition est enregistrée dans le registre vivant dès sa sauvegarde, au lieu d'attendre un redémarrage du serveur. Le datapack généré devient la couche de persistance plutôt que le seul chemin possible.
  • Corrigé : le datapack généré était ignoré par le serveur, son format de pack étant figé sur une ancienne valeur et le fichier écrit dans un dossier que le serveur ne lit jamais.
  • Corrigé : baseBiome n'avait aucun effet en dehors de plains. Les biomes sont désormais construits à partir du biome de base détenu par le serveur et encodés avec son propre codec, si bien que les apparitions de créatures, les features et les carvers sont hérités au lieu d'être perdus.
  • Corrigé : les changements de biome trouaient le monde. Le rafraîchissement envoyait des paquets de déchargement de chunk, que le serveur ne faisait jamais suivre d'un renvoi. Les clients reçoivent maintenant une mise à jour de biome construite à partir des données réelles du chunk.
  • Corrigé : leave_biome_event ne se déclenchait jamais. Les écouteurs d'entrée et de sortie écrasaient mutuellement leur état, si bien que le résultat dépendait de l'ordre d'enregistrement.
  • Corrigé : la peinture écrivait chaque bloc d'une colonne au lieu d'un par cellule 4x4x4, et le faisait depuis le thread appelant. Les écritures sont désormais planifiées sur la région propriétaire de chaque chunk.
  • Un biome que le serveur refuserait de sérialiser est maintenant rejeté à l'enregistrement, en nommant la valeur fautive. Auparavant il était accepté puis cassait toutes les connexions.
  • Superpositions de biome par joueur (player_biome_overlay_action) : montrer un biome différent à un seul joueur, sans toucher au monde ni affecter les autres.
  • Peinture de région (paint_biome_region_action) avec instantanés, et restore_biome_action pour remettre une région en l'état.
  • biome_transition_cinematic : faire évoluer le biome perçu par un joueur au fil d'une cinématique.
  • custom_biome_preset : partager couleurs et attributs visuels entre biomes, surchargeables par définition.
  • explore_biome_objective et biome_discovery_fact : des quêtes que l'on termine en visitant des biomes.
  • Chaque entrée de lecture gagne une option source, qui choisit entre ce que le joueur voit et ce que le monde contient.
  • Retrait de /tw biome setcolor, qui créait des biomes jetables jamais persistés, et du mode de fact HASH, dont la valeur n'était pas stable d'un redémarrage à l'autre.
  • Le jar de l'extension passe de 2,6 Mo à 230 Ko : il n'embarque plus les bibliothèques que le serveur fournit déjà.

Release v0.5

Enchantment Creator Extension v0.8

  • levelMode sur une mécanique compare runOnLevel comme niveau exact, minimum (AT_LEAST) ou maximum (AT_MOST). Auparavant seule l'égalité stricte était possible.
  • eventPhase exécute les actions d'une mécanique pendant l'événement Bukkit en cours, si bien que l'annulation de l'événement ou la modification des dégâts prend réellement effet. À passer à false pour les interactions Typewriter mises en file.
  • clientSideEffects devient conscient du client, avec une action client_particle_effect : l'artefact BTC custom utilise le rendu basé sur PacketEvents quand il est disponible, l'artefact public Paper un repli Bukkit ciblé sur le joueur.
  • Les clés de registre dérivent désormais de id. L'ancien name est conservé comme alias historique au chargement des pages et des objets existants, donc rien n'est à ressaisir.
  • L'artefact public n'a délibérément aucune dépendance à BTC-CORE ni à BTC Velocity : il tourne sur Paper 1.21.x en Java 21, compilé depuis un JDK 25 en bytecode Java 21.

Release v0.8

Numerical Storage Extension v0.9

  • transactionMode sur la configuration de transaction : INTERNAL conserve le chemin PlaceholderAPI + commandes console, VAULT passe directement par l'API Vault Economy et ignore amountPlaceholder ainsi que les champs de commande.
  • addCommand et removeCommand étaient documentés à l'envers. addCommand complète un dépôt vers le stockage et est vérifié avant la mutation persistante ; removeCommand complète un retrait.
  • La persistance est maintenant asynchrone, avec des verrous de mutation par artefact et un cache de courte durée : deux dépôts simultanés ne peuvent plus se marcher dessus.
  • Les fichiers de stockage passent au schéma JSON version 2, sous un chemin d'artefact technique. Un fichier ancien basé sur l'artifactId sémantique est sauvegardé dans backups/numericalstorage/ puis migré au premier accès — sauvegardez le dossier assets/ de Typewriter avant de mettre à jour.
  • artifactId est un identifiant technique généré : laissez-le vide, Typewriter le remplit.
  • Les placeholders prennent un argument de définition explicite (%typewriter_ns_balance_bank%), ce qui supprime l'ancienne ambiguïté de découpage sur les underscores quand un identifiant de définition en contient lui-même.
  • Clés sensibles au profil, en option, quand l'intégration Profiles est installée.

Release v0.9

2026-08-07

QuestCodex Extension v2.8

  • De vrais succès Minecraft. La nouvelle entrée advancement_definition écrit de véritables succès dans un datapack que l'extension possède : ils apparaissent dans l'écran des succès vanilla, avec leur propre onglet, leur arbre, leurs cadres et leurs notifications. parent référence une autre définition, donc l'arbre se dessine dans l'éditeur nodal.
  • grant_advancement accorde un succès ou le retire, et remonte la chaîne des parents pour qu'un enfant ne soit jamais obtenu sous un parent non obtenu.
  • autoGrant fait obtenir un succès dès le premier tick du joueur. Sur une racine, c'est ce qui donne une existence à son onglet avant que quoi que ce soit ne soit obtenu.
  • Ordre des quêtes corrigé : une quête imbriquée lit son ordre dans sa propre sous-catégorie, les quêtes sans ordre explicite ne s'agglutinent plus, et ajouter une quête n'efface plus l'ordre qu'elle avait déjà.
  • Les marqueurs de quêtes sont paginés, le mode de tri est propre à chaque joueur, et le suivi multiple survit à une reconnexion dans l'ordre choisi.

Release v2.8

OmniGUI Extension v0.11

  • Infobulles d'objets, avec une option hideVanillaItemStats sur l'entrée de configuration GUI.
  • Une mise en page paginée peut porter un indicateur de page, via le nouveau rôle INDICATOR.
  • Les menus sont validés au démarrage du serveur : un slot hors bornes, un modèle manquant ou un type de bouton inconnu est nommé dans la console avant qu'un joueur n'ouvre le menu.
  • <shift:N> fonctionne sans CraftEngine, grâce à la police Magic Digit intégrée.
  • count et repeatY sont documentés comme des compteurs de répétition de slots, et non comme une taille de pile.

Release v0.11

Shop Extension v1.3

  • Une boutique ne peut plus faire passer un joueur sous zéro. Trois chemins indépendants le permettaient.
  • Un solde illisible n'est plus interprété comme zéro, et les soldes formatés tels que 12.5k sont correctement lus.

Release v1.3

2026-08-03

QuestCodex Extension v2.7

  • Ajout des modes d'affichage des waypoints : WORLD_DIRECTIONAL projette les marqueurs sur une sphère autour des yeux du joueur, dans la direction réelle de la destination, TARGET_ANCHORED les place sur la cible, et ADAPTIVE fait la transition entre les deux. HUD_LOCKED reste le mode par défaut : les pages existantes ne changent pas.
  • Ajout d'une taille apparente constante et d'un désencombrement angulaire, pour que plusieurs marqueurs restent lisibles quand leurs destinations sont alignées.
  • Ajout du rendu multi-cibles dans une seule entrée waypoint, avec les nouvelles sélections d'objectifs suivis ALL et ONE_PER_QUEST, et un plafond maxTargets.
  • Correction du multi-tracking ignoré par les waypoints : les objectifs des quêtes suivies secondaires n'étaient jamais résolus, donc seule la quête principale produisait un marqueur.
  • Ajout de quest_codex_locator_bar, qui affiche les mêmes cibles résolues sous forme de points de barre de localisation vanilla sur Minecraft 1.21.6+, sans faire apparaître la moindre entité.

Version v2.7

2026-08-02

QuestCodex Extension v2.6

  • Ajout de la reprise persistante des dialogues et cinématiques Typewriter interrompus, y compris la dernière image de cinématique. La reprise conserve désormais l'instantané capturé quand Typewriter émet ses événements de fermeture après la déconnexion d'un joueur.
  • Ajout du suivi persistant de plusieurs quêtes, avec un menu des quêtes suivies, des placeholders dédiés et un exemple public de waypoint à deux quêtes.
  • Ajout des waypoints client-side en texte seul, avec texte d'icône configurable, blocs display centrés, rotation de beacon centrée, alignement de cible au niveau, interpolation fluide, placement à proximité de la cible et cône de visibilité horizontal configurable.
  • Suppression des anciennes couches de waypoint (item display et flèche directionnelle) avant leur premier déploiement public.

Version v2.6

OmniGUI Extension v0.10

  • Ajout des moteurs de disposition Flex et Composite, pour un placement de slots responsive et des calques de menu composés.
  • Ajout de vues adressables réutilisables, avec pools de disposition hérités, vues par défaut, fil d'Ariane, tags de vue et intégration facultative à l'historique.
  • Ajout de la migration de schéma tenant compte des vues et de l'intégration QuestCodex, plus les métadonnées de publication Maven.
  • Correction des changements de vue, qui reconstruisent désormais les menus sans clignotement de fermeture/réouverture ; la fermeture d'inventaire est devenue compatible Folia.

Version v0.10

Shop Extension v1.2

  • Reconstruction et validation de l'extension Shop publique face à OmniGUI v0.10.
  • Conservation des dispositions de boutique dynamiques existantes, de l'historique de navigation, de la gestion des remplisseurs, des règles de stock et de limite, et des handlers de boutons personnalisés.
  • Aucune migration nécessaire depuis Shop Extension v1.1.

Version v1.2

MythicMobsNPC Extension v0.4.6

  • Correction d'un changement d'échelle ignoré sur un modèle livré sans aucune animation, de la même manière que dans l'extension BetterModel.
  • Les variantes de mobs vanilla (chat, renard, loup, villageois et consorts) sont désormais signalées une fois en console au lieu d'être ignorées en silence : elles appartiennent à la configuration MythicMobs, qui possède l'identité du mob et les écraserait à chaque réapparition.
  • Correction d'une entrée de données en échec qui annulait toutes les autres entrées envoyées dans le même lot, ce qui pouvait laisser un NPC sans aucune de ses données configurées.
  • L'effet de brillance et l'équipement sont maintenant pilotés sur le modèle, et plus seulement sur le mob. Le corps du mob étant masqué derrière le modèle, les appliquer au mob seul ne rendait rien visible.
  • L'équipement signale désormais en console quand le modèle n'a aucun os porteur d'item, au lieu de ne rien faire en silence.
  • Le feu est réaffirmé chaque seconde afin de ne plus s'éteindre tout seul, et il indique quand BetterModel masque le corps sur lequel les flammes sont dessinées.
  • Correction des saccades de la plaque de nom quand le NPC marche ou suit un réseau routier : le texte affiché interpole désormais entre les mises à jour au lieu de se téléporter par à-coups.

BetterModel Extension v1.3

  • Correction de l'échelle du modèle ignorée sur les modèles livrés sans aucune animation. BetterModel ne recalcule la transformation d'un modèle que pendant qu'une animation tourne, si bien qu'un changement d'échelle appliqué à l'exécution n'atteignait jamais un modèle statique. L'extension force désormais le recalcul elle-même.
  • Le même correctif s'applique au décalage du modèle, qui passait par le même chemin de code.
  • Les entrées de données d'entité atteignent maintenant réellement le modèle au lieu d'être abandonnées. Prises en charge : effet de brillance, couleur d'effet de potion (rendue en teinte d'item), luminosité, contrainte de panneau, durée d'interpolation, translation, échelle 3D, taille de boîte, équipement et feu.
  • Ajout de bettermodel_bone_appearance, une version par os des réglages de brillance, teinte, scintillement et luminosité, avec le même système de critères que bettermodel_bone_visibility.
  • L'équipement est associé aux os d'item de main et de tête de BetterModel. Les emplacements d'armure sont signalés une fois en console plutôt qu'ignorés en silence, car le torse et les jambes d'un modèle portent sa propre géométrie.
  • Une échelle 3D non uniforme émet désormais un avertissement au lieu d'utiliser silencieusement un seul axe : BetterModel ne gère qu'une échelle uniforme.
  • Toute entrée de données sans signification sur un modèle 3D (postures, variantes de mobs, état de reproduction…) est désormais signalée une fois en console au lieu d'être écartée en silence.
  • Brillance, teinte, luminosité, panneau, translation et équipement survivent maintenant à un rechargement de pack de ressources ou à une réapparition, au lieu de revenir à l'aspect par défaut du modèle.
  • L'équipement signale en console quand le modèle n'a aucun os taggé ri, li ou ph, au lieu de ne rien faire en silence — c'est la raison habituelle pour laquelle un item n'apparaît pas.
  • Le feu est désormais dessiné sur l'entité d'interaction du NPC plutôt que sur les os du modèle : le client met la flamme à l'échelle de la boîte englobante de l'entité, et une entité d'affichage n'en a pas, si bien que les flammes étaient rendues à taille nulle.

Nexo Extension v1.0

  • Ajout de faits pour savoir ce que le joueur tient, transporte dans son inventaire, regarde ou foule.
  • Ajout de variables donnant l'ID et les propriétés de l'item, du bloc et du meuble visés.
  • Ajout d'une action pour donner et une pour retirer un item, toutes deux basées sur l'ID d'item Nexo.
  • Ajout des événements de ramassage, de lâcher et de consommation d'item.
  • Ajout des événements d'interaction et de dégâts pour les blocs et meubles personnalisés, ainsi qu'un événement de butin.
  • Les événements transmettent maintenant leurs données (ID de bloc, position, item en main) à ce qui suit, si bien qu'un dialogue ou une action peut les utiliser directement.

CraftEngine Extension v1.0

  • Les objectifs de quête fonctionnent. Ils peuvent être attachés à une quête, ils sauvegardent leur progression et peuvent déclencher une séquence à leur achèvement.
  • Ajout de faits pour les temps de recharge, pour les items tenus et transportés, et pour le bloc ou le meuble visé par le joueur.
  • Ajout de variables donnant les ID, les propriétés d'item et la liste du contenu chargé.
  • Ajout d'une action pour donner et une pour retirer un item, toutes deux basées sur l'ID d'item CraftEngine.
  • Ajout des événements de ramassage, de lâcher et de consommation d'item.
  • Ajout d'événements pour les tentatives de pose et pour les coups portés au mobilier.
  • Les événements transmettent maintenant leurs données à ce qui suit.

ItemsAdder Extension v1.0

  • Les événements de bloc et de mobilier lisent désormais ItemsAdder directement au lieu de les déduire des événements vanilla, ce qui les rend fiables et supprime un court délai qui pouvait manquer ou répéter un déclenchement.
  • Ajout de faits pour les items tenus et transportés, les utilisations restantes, la durabilité personnalisée, la visibilité du HUD et la croissance des cultures.
  • Ajout de variables donnant les ID, les propriétés d'item et les images de police.
  • Ajout d'une action pour donner et une pour retirer un item, toutes deux basées sur l'ID d'item ItemsAdder.
  • Ajout des événements de ramassage, de lâcher et de consommation d'item.
  • Ajout d'événements d'interaction, d'un événement de pré-pose pour le mobilier et d'un événement de mort d'entité personnalisée.
  • Les événements transmettent maintenant leurs données à ce qui suit.
  • Correction des objectifs de quête, de la même manière que dans l'extension Nexo.

2026-07-26

QuestCodex Extension v2.5

  • Ajout du suivi persistant de plusieurs quêtes via l'entrée quest_codex_tracking_artifact.
  • Ajout du mode de menu de catégorie @tracked et des marqueurs dynamiques TRACKED_QUEST_SLOT.
  • Ajout de /tw codex tracked et de la commande GUI interne codex:tracked.
  • Ajout de placeholders PlaceholderAPI pour le nombre de quêtes suivies, la limite, la quête principale, les quêtes suivies indexées, les statuts, les objectifs et les priorités.
  • Documentation de la structure du lot de pages publiques : manifeste principal, artefact de suivi statique, définitions de quêtes et réglages GUI.

OmniGUI Extension v0.9

  • Ajout de la migration automatique du schéma des pages publiques pour le stockage en ligne et les anciens champs de pagination.
  • Documentation du schéma compact storagePool / storageId et navigationButtons, utilisé pour réduire les blocages de publication dans l'éditeur Typewriter.
  • Clarification du motif recommandé de menu référencé pour les grands menus QuestCodex.