BTCMobs
BTCMobs est une extension Soon (bientôt disponible). Elle n'est pas publiée, n'a pas de téléchargement ni de numéro de version pour le moment, et les entrées ou les champs peuvent changer avant la publication. Cette page documente la build de développement actuelle à titre de référence. Ce n'est pas l'ancien plugin « BTC Mob » : le moteur de mobs vit désormais dans l'extension elle-même, il n'y a aucun plugin séparé à installer.
Présentation

BTCMobs vous permet de construire des mobs personnalisés et des PNJ interactifs entièrement depuis le panneau web de TypeWriter. Un modèle de mob décrit une créature : son entité Minecraft de base, son niveau, sa santé, son armure, ses compétences, son butin, sa faction, son modèle 3D facultatif et sa reproduction facultative. Les spawners et les apparitions naturelles décident où et quand les modèles apparaissent dans le monde. Les compétences et les tables de butin définissent ce que fait le mob et ce qu'il laisse derrière lui.
Tout ce que font les mobs est exposé en retour à TypeWriter. Des événements se déclenchent lorsqu'un mob apparaît, subit des dégâts, lance une compétence ou meurt. Des facts et des variables rapportent la santé, le niveau, le nombre ou la distance. Des actions font apparaître ou disparaître des mobs, ou leur font lancer des compétences. Les quêtes, les dialogues et les cinématiques peuvent ainsi réagir à un combat, ou en déclencher un.
La même extension fournit aussi un côté PNJ : un modèle de mob peut être affiché comme un PNJ côté client, avec des interactions de dialogue, des objectifs de quête, des cinématiques de caméra (y compris des caméras attachées à un os de modèle), une visibilité des os par joueur et un contrôle des animations ModelEngine ou BetterModel. L'extension cible la version BTC de TypeWriter (Paper/Folia).
Fonctionnalités
- Modèles de mobs — une entrée
btc_mob_templatepar créature : type d'entité, niveau, santé, dégâts d'attaque, armure, compétences, butin, faction, table de menace, modèle et animations. - Spawners — spawners basés sur des régions avec un plafond d'apparitions, une cadence d'apparition et un temps de chauffe pouvant être pilotés par des facts, de sorte que chaque joueur peut voir un rythme différent.
- Remplacement des apparitions naturelles — remplacez les apparitions de créatures vanilla par des mobs BTC, règle par règle, selon le monde, le biome et la probabilité.
- Compétences — une compétence est une liste ordonnée d'actions TypeWriter, ou une ligne de script. Les modèles attachent des compétences à des triggers tels que l'apparition, l'attaque, les dégâts, la mort ou un minuteur répété.
- Tables de butin et objets — matériaux vanilla, objets personnalisés, XP et tables réutilisables, avec une probabilité et une quantité qui évoluent avec le niveau du mob.
- Points d'accroche de quête — événements, facts, variables et objectif de compétence pour que les histoires puissent réagir aux mobs et aux combats.
- PNJ — PNJ côté client basés sur des modèles, avec dialogue, interaction, regard et comportement de caméra.
- Cinématiques — faites apparaître un mob, lancez une compétence, centrez sur un PNJ ou chevauchez un os de modèle pendant une cinématique TypeWriter.
- Persistance — les cooldowns de compétences, les compteurs, les auras, les tables de menace et les boss bars survivent à un redémarrage lorsqu'un artifact de stockage est configuré.
- Import MythicMobs — une commande d'opérateur convertit un pack MythicMobs en pages BTCMobs.
Installation
BTCMobs est en développement et n'a pas de téléchargement public. Les notes ci-dessous décrivent comment la build de développement est câblée.
- Utilisez la version BTC de TypeWriter (BTC Core, Paper ou Folia) avec les extensions Quest et RoadNetwork, que la build déclare comme dépendances.
- Placez le JAR de BTCMobs dans
plugins/Typewriter/extensions/et redémarrez le serveur. Il embarque son propre moteur de mobs, aucun plugin BTCMobs séparé n'est donc nécessaire. - Installez les intégrations facultatives que vous souhaitez. L'extension les détecte à l'exécution : ModelEngine ou BetterModel pour les modèles 3D, MiniPlaceholders pour exposer des placeholders, PacketEvents, Vault, DecentHolograms et WorldGuard.
- Pour ouvrir le menu du catalogue de mobs, l'extension BTC GUI doit être installée.
- Dans le panneau web, créez un artifact
btcmobs_storageet référencez-le depuis une entréebtcmobs_config(voir ci-dessous) afin que l'état du gameplay soit sauvegardé.
Premiers pas
Ce pas-à-pas crée un boss zombie, le fait apparaître dans une arène et réagit à sa mort.
- Dans le panneau web de TypeWriter, ouvrez une page manifest. Ajoutez un artifact BTCMobs Storage, puis une entrée BTCMobs Global Configuration et définissez
storagesur cet artifact. - Ouvrez une page statique et ajoutez un Native BTC mob template. Donnez-lui un
idque vous réutiliserez (par exemplecrypt_warden). DéfinissezentityTypesurZOMBIE,displaysur le nom que voient les joueurs, puislevel,maxHealth,attackDamageetarmor. - Ajoutez une Native BTC mob drop table et listez ses
drops, une déclaration par ligne, par exempleDIAMOND 1 0.25(matériau, quantité, probabilité) ouexp 20to40. Référencez la table par son identifiant dans la listedropsdu modèle. - Ajoutez une Native BTC mob skill et remplissez
actionsavec les actions TypeWriter qu'elle exécute, dans l'ordre. Dans le modèle, ajoutez l'identifiant de la compétence àskills, par exemplewarden_slam~onTimer:100pour la lancer tous les 100 ticks. - Ajoutez un BTCMobs Spawner. Définissez
mobTypesur l'identifiant du modèle (pas son nom d'affichage),world, les deux coinscorner1etcorner2d'une région,defaultMaxMobsetdefaultCooldown(en ticks). - Ajoutez un événement On BTCMob die avec
mobNamedéfini sur l'identifiant du modèle, et liez sestriggersà un dialogue, une récompense ou un modificateur de fact. - Publiez les pages, approchez-vous à moins de
defaultActivationRange(24 blocs par défaut) du centre de la région, et le mob apparaît. Utilisez/tw btcmobs spawners force <id>pour tester sans attendre.
/tw btcmobs spawn <template> <level> <amount> fait apparaître un modèle à côté de vous avec le niveau que vous choisissez. La commande suggère les identifiants des modèles chargés.
Fonctionnement
Un modèle n'est qu'une description. Un mob vivant est créé lorsqu'un spawner, une apparition naturelle, une action Spawn a mob ou la commande spawn en demande un. À partir de là, le mob exécute les compétences attachées à ses triggers et tire ses déclarations de butin lorsqu'il meurt. Chaque étape déclenche aussi un événement TypeWriter, ce qui permet aux quêtes et aux dialogues de suivre le combat.
Compétences et triggers
Les entrées de la liste skills d'un modèle s'écrivent skillId ou skillId~trigger. L'identifiant est l'identifiant (ou le nom) d'une entrée btc_mob_skill. Le trigger indique quand le mob l'exécute : onSpawn, onAttack, onDamaged, onDeath, onKill, onDespawn, onInteract, onTeleport, onExplode, onRanged, onProjectile, ou onTimer:<ticks> pour une compétence répétée (onTimer:5s est aussi accepté, en secondes). Une compétence sans trigger s'exécute à chaque trigger que le mob déclenche ; ajoutez-en donc toujours un. Les conditions filtrent chaque ligne de compétence et les targeters choisissent les cibles qu'elles partagent.
Déclarations de butin
Chaque ligne d'une table de butin, ou d'une liste drops de modèle, est de l'un de ces types :
- un matériau vanilla avec une quantité et une probabilité facultatives, par exemple
BONE 2 0.5; - l'identifiant ou le nom d'une entrée
btc_mob_item, avec une quantité et une probabilité facultatives ; exp 10ouexp 10to20pour l'expérience ;btc:<item_id> [amount or range] [chance] [+n/m]pour un objet du catalogue BTC. Sans le jeton+n/m, la quantité croît avec le niveau du mob, de x1 au niveau 1 à x6 au niveau 100 ;- l'identifiant d'une autre table de butin, qui est développée sur place.
Les déclarations inconnues sont consignées comme avertissements et ignorées.
PNJ
Un PNJ est un modèle présenté aux joueurs comme une entité côté client. Une BtcMob NPC definition désigne le modèle dans mobType et définit le nom d'affichage, son décalage et s'il est mis à jour à chaque tick. Une BtcMob NPC instance le place avec spawnLocation, une activity facultative, un group et des data supplémentaires. Les entrées de données de PNJ modifient l'apparence du modèle : la visibilité des os par joueur, les attachements qui remplacent un os par un os d'un autre modèle, les postures ModelEngine pour le jour et la nuit, et la vitesse de marche.
Commandes
Toutes les commandes se trouvent sous /tw btcmobs. Les alias courts /tw btc et /tw btcmobsadmin exécutent la même arborescence. Chaque nœud a une permission de la forme btcmobs.command.<node> (voir ci-dessous).
| Commande | Description |
|---|---|
/tw btcmobs mobs [list] | Liste les modèles de mobs chargés. |
/tw btcmobs mobs listactive | Liste les mobs actuellement vivants. |
/tw btcmobs spawn <template> [level] [amount] | Fait apparaître un modèle à côté de vous (quantité de 1 à 64). summon et mobs spawn sont équivalents. |
/tw btcmobs mobs kill <template> [radius] | Tue les mobs d'un modèle autour de vous (rayon par défaut 48). |
/tw btcmobs mobs killall [radius] | Tue tous les mobs BTC autour de vous (rayon par défaut 48). |
/tw btcmobs mobs info | Affiche des informations sur le mob que vous regardez. |
/tw btcmobs skills [list] | Liste les compétences chargées. |
/tw btcmobs cast <skill> | Lance une compétence depuis vous-même (skills cast, test cast et profile cast sont équivalents). |
/tw btcmobs spawners [list] | Liste les entrées de spawners. |
/tw btcmobs spawners info <id> | Affiche un spawner. |
/tw btcmobs spawners force <id> [amount] | Force une apparition, sans tenir compte des conditions ni des plafonds. |
/tw btcmobs spawners reload | Recharge les entrées natives. |
/tw btcmobs reload | Recharge les entrées natives. |
/tw btcmobs menu | Ouvre le menu du catalogue de mobs (les 45 premiers modèles, par ordre alphabétique). |
/tw btcmobs items list et get <item> [amount] | Liste ou prend un objet du catalogue. |
/tw btcmobs items give <player> <item> [amount] | Donne un objet du catalogue à un joueur. |
/tw btcmobs signal <uuid> <signal> | Envoie un signal à un mob actif. |
/tw btcmobs test mechanic, condition, targeter <line> | Exécute une ligne de script comme test. |
/tw btcmobs test on <uuid or nearest> <line> | Exécute une ligne de script sur un mob actif précis. |
/tw btcmobs import mythic [path] | Convertit un pack MythicMobs en pages BTCMobs (dossier par défaut import/BtcMob dans le dossier de données de TypeWriter). migrate mythic est équivalent. |
/tw btcmobs audit, coverage, registrydump, variables, placeholders | Diagnostics sur les modèles, compétences, spawners et registres chargés. |
/tw btcmobs debug, version, modeldiag | Diagnostics d'exécution, version et état BetterModel des mobs proches. |
Permissions
| Permission | Autorise |
|---|---|
btcmobs.command.main | La racine /tw btcmobs et son aide. Accordée à tout le monde par défaut. |
btcmobs.command.version | version et v. Accordée à tout le monde par défaut. |
btcmobs.command.mobs, .mobs.spawn, .mobs.kill, .mobs.killall, .mobs.info, .mobs.listactive, .mobs.stats | Les commandes mobs et spawn. |
btcmobs.command.skills, .skills.cast | Lister et lancer des compétences. |
btcmobs.command.spawners, .spawners.list, .spawners.info, .spawners.force, .spawners.reload | Les commandes spawners. |
btcmobs.command.items, .items.list, .items.get, .items.give | Les commandes items. |
btcmobs.command.menu, .menu.open | Le menu du catalogue. |
btcmobs.command.import, .migrate, .migrate.mythic, btcmobs.import | L'import MythicMobs. |
btcmobs.command.test, .test.mechanic, .test.condition, .test.targeter, .test.cast | Les commandes test. |
btcmobs.command.audit, .variables, .debug, .modeldiag, .signal, .reload, .profile | Les commandes de diagnostic correspondantes. |
btcmobs.command.admin, btcmobs.admin | Racine d'administration (/tw btcmobsadmin). |
btcmobs.command.*, btcmobs.* | Toutes les précédentes. |
Toutes les permissions, sauf btcmobs.command.main et btcmobs.command.version, sont réservées aux opérateurs par défaut. La commande modeldiag vérifie btcmobs.command.modeldiag, que l'extension enregistre (opérateurs par défaut).
Placeholders
Les placeholders ne sont publiés que vers MiniPlaceholders ; PlaceholderAPI n'est pas utilisé pour les publier. La syntaxe est <name:argument:argument>.
| Placeholder | Renvoie |
|---|---|
<btcmobs_caster> et <btcmobs_caster:field> | L'identifiant du modèle, ou un champ du mob lié au joueur : name, type, level, hp, maxhp, percent, uuid. |
<btcmobs_looking> et <btcmobs_looking:field> | Les mêmes champs pour le mob BTC que le joueur regarde (jusqu'à la portée de regard), vide s'il n'y en a pas. |
<btcmobs_var:name> | La valeur d'une variable globale BTCMobs. |
<btcmobsdamage_top:BOSS:POSITION:field> | Le joueur à un rang du classement de dégâts d'un boss. Champs : name, damage, raw_damage, percent, uuid. |
<btcmobsdamage_self:BOSS:field> | Le propre classement du joueur qui regarde. Champs : damage, raw_damage, percent, position. |
<btcmobsdamage_participants:BOSS>, _total, _max_health, _last_update | Totaux d'un classement de dégâts de boss. |
Entrées
57 entrées, générées depuis la source de l'extension.
Actions7
- 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
Événements9
- 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.
Objectifs2
- Btcmob Skill ObjectiveBtcMob Skill Objective
- Interact Btcmob NPC ObjectiveInteract with a BtcMob NPC
Faits9
- 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
Cinématiques5
- 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
Entités2
- Btcmob NPC DefinitionA BtcMob that can be used as an NPC
- Btcmob NPC InstanceAn instance of a BtcMob NPC
Données d'entité4
- 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
Zones d'interaction3
- 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
Variables8
- 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
Artefacts1
- Btcmobs StorageBTCMobs Storage Artifact
Manifestes1
- Btcmobs ConfigBTCMobs Global Configuration
Définitions6
- 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
Dépannage
Le spawner ne fait rien et le journal indique « references unknown mob template ». mobType doit être l'identifiant d'un btc_mob_template, et non le nom affiché dans l'éditeur. Copiez l'identifiant depuis l'entrée du modèle. La même règle s'applique à btc_natural_spawn, aux actions d'apparition et de disparition, et aux définitions de PNJ.
Le spawner n'atteint jamais son plafond, ou s'arrête à 1. Une région dont les deux coins sont le même point plafonne defaultMaxMobs à 1. Le plafond compte les mobs appartenant à ce spawner, où qu'ils soient. Le spawner ne fonctionne que lorsqu'un joueur se trouve à moins de defaultActivationRange du centre d'une région.
Un spawner ne fait rien pour certains joueurs. Pour chaque joueur proche de la région, le spawner vérifie le monde, puis conditionLines, puis criteria, et tout doit passer avant d'examiner la région, le cooldown et l'apparition. Un joueur qui échoue à criteria est ignoré (une ligne de diagnostic « criteria did not match » est journalisée une fois par joueur). criteria ne retire jamais un mob déjà apparu. Les champs ...Fact (maxMobsFact, mobsPerSpawnFact et les autres) continuent de remplacer les valeurs numériques par défaut.
Le remplacement des apparitions naturelles ne se déclenche jamais. L'entrée ne remplace que les apparitions que le serveur produit déjà (naturelles, génération de chunk ou par défaut). Si les spawn-limits du monde dans paper-world-defaults.yml valent 0, les créatures vanilla n'apparaissent jamais et rien n'est remplacé. La première règle correspondante l'emporte, et maxNearby à 0 signifie aucun plafond, et non zéro mob.
Un mob joue les animations d'attaque ou de mort en boucle, ou ne marche pas. modelAnimations ne joue en boucle que les animations de type repos lorsqu'un modèle est attaché ; les noms d'attaque et de mort qui y figurent sont ignorés. Les animations ponctuelles se règlent dans modelLifecycle du template (apparition, attaque, coup reçu, mort) et sont jouées au moment correspondant ; une animation de mort est jouée jusqu'au bout avant que le modèle ne disparaisse. Un nom absent du modèle est journalisé une fois par template et ce moment reste muet. Les animations de marche ne sont pas encore pilotées par les mobs, uniquement côté PNJ.
Une compétence ou un butin manque silencieusement. Consultez le journal du serveur : les déclarations de butin inconnues, les objets inconnus et les probabilités invalides sont consignés comme avertissements et ignorés. Une entrée de skills dont l'identifiant ne correspond à aucune entrée btc_mob_skill est consignée lorsque le mob la lance.
On BTCMob despawn ne se déclenche pas. L'événement se déclenche quand un mob suivi quitte le monde sans mourir (despawn naturel, retrait par un plugin, chute hors du monde) et qu'un joueur se trouve à moins de radius blocs. Il ne se déclenche pas quand le mob meurt (utilisez On BTCMob die), quand son chunk est seulement déchargé (le mob est repris au rechargement), ni quand vous le retirez avec l'action Despawn ou /tw btcmobs mobs kill. Un mobName vide correspond à tous les mobs ; il en va de même pour les événements spawn, die, damage et interact.
Extensions associées
- BetterModel — BetterModel est l'un des deux moteurs de modèles (
modelProvider) que BTCMobs peut piloter pour les modèles de mobs et de PNJ.