BTCMobs
BTCMobs es una extensión Soon (próximamente). No se ha publicado, aún no tiene descarga ni número de versión, y las entradas o los campos pueden cambiar antes de su publicación. Esta página documenta la compilación de desarrollo actual a modo de referencia. No es el antiguo plugin "BTC Mob": el motor de mobs vive ahora dentro de la propia extensión y no hay ningún plugin independiente que instalar.
Descripción general

BTCMobs te permite crear mobs personalizados y NPC interactivos por completo desde el panel web de TypeWriter. Una plantilla de mob describe una criatura: su entidad base de Minecraft, nivel, salud, armadura, habilidades, botín, facción, modelo 3D opcional y reproducción opcional. Los spawners y las apariciones naturales deciden dónde y cuándo aparecen las plantillas en el mundo. Las habilidades y las tablas de botín definen qué hace el mob y qué deja tras de sí.
Todo lo que hacen los mobs se expone de vuelta a TypeWriter. Se disparan eventos cuando un mob aparece, recibe daño, lanza una habilidad o muere. Los hechos y las variables informan de la salud, el nivel, el recuento o la distancia. Las acciones generan mobs, los eliminan o hacen que lancen habilidades. Esto permite que las misiones, los diálogos y las cinemáticas reaccionen a un combate, o lo inicien.
La misma extensión ofrece también un lado de NPC: una plantilla de mob puede mostrarse como un NPC en el cliente, con interacciones de diálogo, objetivos de misión, cinemáticas de cámara (incluidas cámaras acopladas a un hueso de modelo), visibilidad de huesos por jugador y control de animaciones de ModelEngine o BetterModel. La extensión está pensada para la versión BTC de TypeWriter (Paper/Folia).
Características
- Plantillas de mob: una entrada
btc_mob_templatepor criatura: tipo de entidad, nivel, salud, daño de ataque, armadura, habilidades, botín, facción, tabla de amenaza, modelo y animaciones. - Spawners: spawners basados en regiones con un límite de apariciones, un ritmo de aparición y un calentamiento que pueden controlarse mediante hechos, de modo que cada jugador pueda ver un ritmo distinto.
- Sustitución de apariciones naturales: cambia las apariciones de criaturas vanilla por mobs BTC, regla por regla, según el mundo, el bioma y la probabilidad.
- Habilidades: una habilidad es una lista ordenada de acciones de TypeWriter, o una línea de script. Las plantillas asocian habilidades a disparadores como aparición, ataque, daño, muerte o un temporizador repetitivo.
- Tablas de botín y objetos: materiales vanilla, objetos personalizados, XP y tablas reutilizables, con una probabilidad y una cantidad que escalan con el nivel del mob.
- Enlaces con misiones: eventos, hechos, variables y un objetivo de habilidad para que las historias puedan reaccionar a los mobs y a los combates.
- NPC: NPC en el cliente basados en plantillas, con diálogo, interacción, mirada y comportamiento de cámara.
- Cinemáticas: genera un mob, lanza una habilidad, enfoca a un NPC o monta un hueso de modelo durante una cinemática de TypeWriter.
- Persistencia: los cooldowns de habilidades, los contadores, las auras, las tablas de amenaza y las barras de jefe sobreviven a un reinicio cuando se configura un artefacto de almacenamiento.
- Importación de MythicMobs: un comando de operador convierte un pack de MythicMobs en páginas de BTCMobs.
Instalación
BTCMobs está en desarrollo y no tiene descarga pública. Las notas siguientes describen cómo está conectada la compilación de desarrollo.
- Ejecuta la versión BTC de TypeWriter (BTC Core, Paper o Folia) con las extensiones Quest y RoadNetwork, que la compilación declara como dependencias.
- Coloca el JAR de BTCMobs en
plugins/Typewriter/extensions/y reinicia el servidor. Incluye su propio motor de mobs, por lo que no se necesita ningún plugin BTCMobs independiente. - Instala las integraciones opcionales que quieras. La extensión las detecta en tiempo de ejecución: ModelEngine o BetterModel para los modelos 3D, MiniPlaceholders para exponer placeholders, PacketEvents, Vault, DecentHolograms y WorldGuard.
- Para abrir el menú del catálogo de mobs, debe estar instalada la extensión GUI de BTC.
- En el panel web, crea un artefacto
btcmobs_storagey haz referencia a él desde una entradabtcmobs_config(véase más abajo) para que se guarde el estado del juego.
Primeros pasos
Este recorrido crea un jefe zombi, lo hace aparecer en una arena y reacciona a su muerte.
- En el panel web de TypeWriter, abre una página de manifiesto. Añade un artefacto BTCMobs Storage y después una entrada BTCMobs Global Configuration y establece
storageen ese artefacto. - Abre una página estática y añade una Native BTC mob template. Dale un
idque reutilizarás (por ejemplocrypt_warden). EstableceentityTypeenZOMBIE,displayen el nombre que ven los jugadores y despuéslevel,maxHealth,attackDamageyarmor. - Añade una Native BTC mob drop table y enumera sus
drops, una declaración por línea, por ejemploDIAMOND 1 0.25(material, cantidad, probabilidad) oexp 20to40. Haz referencia a la tabla por su id en la listadropsde la plantilla. - Añade una Native BTC mob skill y rellena
actionscon las acciones de TypeWriter que ejecuta, en orden. En la plantilla, añade el id de la habilidad askills, por ejemplowarden_slam~onTimer:100para lanzarla cada 100 ticks. - Añade un BTCMobs Spawner. Establece
mobTypeen el id de la plantilla (no en su nombre visible),world, las dos esquinascorner1ycorner2de una región,defaultMaxMobsydefaultCooldown(en ticks). - Añade un evento On BTCMob die con
mobNameestablecido en el id de la plantilla y enlaza sustriggerscon un diálogo, una recompensa o un modificador de hecho. - Publica las páginas, acércate a
defaultActivationRange(24 bloques por defecto) del centro de la región y el mob aparecerá. Usa/tw btcmobs spawners force <id>para probar sin esperar.
/tw btcmobs spawn <template> <level> <amount> genera una plantilla junto a ti con el nivel que elijas. El comando sugiere los ids de las plantillas cargadas.
Cómo funciona
Una plantilla es solo una descripción. Un mob vivo se crea cuando lo solicita un spawner, una aparición natural, una acción Spawn a mob o el comando spawn. A partir de ese momento, el mob ejecuta las habilidades asociadas a sus disparadores y tira sus declaraciones de botín cuando muere. Cada paso dispara además un evento de TypeWriter, que es como las misiones y los diálogos siguen el combate.
Habilidades y disparadores
Los elementos de la lista skills de una plantilla se escriben skillId o skillId~trigger. El id es el id (o el nombre) de una entrada btc_mob_skill. El disparador indica cuándo la ejecuta el mob: onSpawn, onAttack, onDamaged, onDeath, onKill, onDespawn, onInteract, onTeleport, onExplode, onRanged, onProjectile, o onTimer:<ticks> para una habilidad repetitiva (también se acepta onTimer:5s, en segundos). Una habilidad sin disparador se ejecuta con cada disparador que activa el mob, así que añade siempre uno. conditions filtra cada línea de habilidad y targeters elige los objetivos que comparten.
Declaraciones de botín
Cada línea de una tabla de botín, o de una lista drops de una plantilla, es una de estas:
- un material vanilla con cantidad y probabilidad opcionales, por ejemplo
BONE 2 0.5; - el id o el nombre de una entrada
btc_mob_item, con cantidad y probabilidad opcionales; exp 10oexp 10to20para la experiencia;btc:<item_id> [amount or range] [chance] [+n/m]para un objeto del catálogo de BTC. Sin el token+n/m, la cantidad crece con el nivel del mob, de x1 en el nivel 1 a x6 en el nivel 100;- el id de otra tabla de botín, que se expande en el mismo lugar.
Las declaraciones desconocidas se registran como advertencias y se omiten.
NPC
Un NPC es una plantilla que se muestra a los jugadores como una entidad en el cliente. Una BtcMob NPC definition nombra la plantilla en mobType y establece el nombre visible, su desfase y si se actualiza en cada tick. Una BtcMob NPC instance la coloca con spawnLocation, una activity opcional, un group y data adicionales. Las entradas de datos del NPC cambian el aspecto del modelo: la visibilidad de huesos por jugador, los adjuntos que sustituyen un hueso por uno de otro modelo, las posturas de ModelEngine para el día y la noche, y la velocidad al caminar.
Comandos
Todos los comandos están bajo /tw btcmobs. Los alias cortos /tw btc y /tw btcmobsadmin ejecutan el mismo árbol. Cada nodo tiene un permiso con la forma btcmobs.command.<node> (véase más abajo).
| Comando | Descripción |
|---|---|
/tw btcmobs mobs [list] | Lista las plantillas de mob cargadas. |
/tw btcmobs mobs listactive | Lista los mobs que están vivos en este momento. |
/tw btcmobs spawn <template> [level] [amount] | Genera una plantilla junto a ti (cantidad de 1 a 64). summon y mobs spawn son equivalentes. |
/tw btcmobs mobs kill <template> [radius] | Mata a los mobs de una plantilla a tu alrededor (radio por defecto 48). |
/tw btcmobs mobs killall [radius] | Mata a todos los mobs BTC a tu alrededor (radio por defecto 48). |
/tw btcmobs mobs info | Muestra información sobre el mob al que estás mirando. |
/tw btcmobs skills [list] | Lista las habilidades cargadas. |
/tw btcmobs cast <skill> | Lanza una habilidad desde ti mismo (skills cast, test cast y profile cast son equivalentes). |
/tw btcmobs spawners [list] | Lista las entradas de spawner. |
/tw btcmobs spawners info <id> | Muestra un spawner. |
/tw btcmobs spawners force <id> [amount] | Fuerza una aparición, ignorando condiciones y límites. |
/tw btcmobs spawners reload | Recarga las entradas nativas. |
/tw btcmobs reload | Recarga las entradas nativas. |
/tw btcmobs menu | Abre el menú del catálogo de mobs (las primeras 45 plantillas, por orden alfabético). |
/tw btcmobs items list y get <item> [amount] | Lista u obtiene un objeto del catálogo. |
/tw btcmobs items give <player> <item> [amount] | Da un objeto del catálogo a un jugador. |
/tw btcmobs signal <uuid> <signal> | Envía una señal a un mob activo. |
/tw btcmobs test mechanic, condition, targeter <line> | Ejecuta una línea de script como prueba. |
/tw btcmobs test on <uuid or nearest> <line> | Ejecuta una línea de script sobre un mob activo concreto. |
/tw btcmobs import mythic [path] | Convierte un pack de MythicMobs en páginas de BTCMobs (carpeta por defecto import/BtcMob en la carpeta de datos de TypeWriter). migrate mythic es equivalente. |
/tw btcmobs audit, coverage, registrydump, variables, placeholders | Diagnósticos sobre las plantillas, habilidades, spawners y registros cargados. |
/tw btcmobs debug, version, modeldiag | Diagnósticos en tiempo de ejecución, versión y estado de BetterModel de los mobs cercanos. |
Permisos
| Permiso | Concede |
|---|---|
btcmobs.command.main | La raíz /tw btcmobs y su ayuda. Concedido a todos por defecto. |
btcmobs.command.version | version y v. Concedido a todos por defecto. |
btcmobs.command.mobs, .mobs.spawn, .mobs.kill, .mobs.killall, .mobs.info, .mobs.listactive, .mobs.stats | Los comandos mobs y spawn. |
btcmobs.command.skills, .skills.cast | Listar y lanzar habilidades. |
btcmobs.command.spawners, .spawners.list, .spawners.info, .spawners.force, .spawners.reload | Los comandos spawners. |
btcmobs.command.items, .items.list, .items.get, .items.give | Los comandos items. |
btcmobs.command.menu, .menu.open | El menú del catálogo. |
btcmobs.command.import, .migrate, .migrate.mythic, btcmobs.import | La importación de MythicMobs. |
btcmobs.command.test, .test.mechanic, .test.condition, .test.targeter, .test.cast | Los comandos test. |
btcmobs.command.audit, .variables, .debug, .modeldiag, .signal, .reload, .profile | Los comandos de diagnóstico correspondientes. |
btcmobs.command.admin, btcmobs.admin | Raíz administrativa (/tw btcmobsadmin). |
btcmobs.command.*, btcmobs.* | Todos los anteriores. |
Todos los permisos, salvo btcmobs.command.main y btcmobs.command.version, son por defecto solo para operadores. El comando modeldiag comprueba btcmobs.command.modeldiag, que la extensión registra (para operadores por defecto).
Placeholders
Los placeholders se publican únicamente en MiniPlaceholders; no se usa PlaceholderAPI para publicarlos. La sintaxis es <name:argument:argument>.
| Placeholder | Devuelve |
|---|---|
<btcmobs_caster> y <btcmobs_caster:field> | El id de la plantilla, o un campo del mob ligado al jugador: name, type, level, hp, maxhp, percent, uuid. |
<btcmobs_looking> y <btcmobs_looking:field> | Los mismos campos para el mob BTC al que mira el jugador (hasta el alcance de visión), vacío cuando no hay ninguno. |
<btcmobs_var:name> | El valor de una variable global de BTCMobs. |
<btcmobsdamage_top:BOSS:POSITION:field> | El jugador en una posición de la clasificación de daño de un jefe. Campos: name, damage, raw_damage, percent, uuid. |
<btcmobsdamage_self:BOSS:field> | La propia clasificación del jugador que mira. Campos: damage, raw_damage, percent, position. |
<btcmobsdamage_participants:BOSS>, _total, _max_health, _last_update | Totales de la clasificación de daño de un jefe. |
Entradas
57 entradas, generadas a partir del código fuente de la extensión.
Acciones7
- BTC Mob Script ActionNative BTC mob script action
- Btcmob NPC HideHide a BtcMob NPC
- Btcmob NPC ShowShow a BtcMob NPC
- Despawn Btcmobs MobDespawn a mob from BTCMobs
- Execute Btcmobs SkillExecutes a BTCMobs skill
- Open BTC Mob MenuOpen the native BTC mob catalogue
- Spawn Btcmobs MobSpawn a mob from BTCMobs
Eventos9
- Btcmob NPC HitWhen a BtcMob NPC is hit or hits a player
- Btcmob NPC InteractWhen the player clicks on a BtcMob NPC
- Btcmobs Interact EventBTCMob Interact Event
- Btcmobs Kill Player EventBTCMob Kill Player Event
- On Btcmob DamageWhen a BTCMob takes damage.
- On Btcmob DespawnWhen a BTCMob despawns without being killed by a player.
- On Btcmob DieWhen a player kill a BTCMob.
- On Btcmob SkillWhen a BTCMob casts a skill.
- On Btcmob SpawnWhen a BTCMob spawns in the world.
Objetivos2
- Btcmob Skill ObjectiveBtcMob Skill Objective
- Interact Btcmob NPC ObjectiveInteract with a BtcMob NPC
Hechos9
- Btcmob Count FactCount the number of active BTCMobs of the specified type
- Btcmob Health Percentage FactReturns the current health percentage of the nearest BTCMob of the specified type
- Btcmob Level FactReturns the level of the nearest BTCMob of the specified type
- Btcmob NPC Animation Playing FactReturns 1 when the specified ModelEngine animation is playing
- Btcmob NPC Distance FactReturns the distance between the player and the BtcMobs NPC
- Btcmob NPC Health Percentage FactReturns the NPC's current health percentage
- Btcmob NPC Presence FactReturns 1 when the BtcMobs NPC is currently spawned
- Btcmob NPC Threat Table Size FactReturns the size of the BtcMobs threat table
- Btcmob NPC Visibility FactReturns 1 if the player can currently see the BtcMobs NPC
Cinemáticas5
- Btcmob CinematicSpawn a BTCMob during a cinematic
- Btcmob NPC Bone Camera CinematicAttach the cinematic camera to a bone of a BtcMob NPC's model
- Btcmob NPC Camera CinematicFocus on a BtcMob NPC during a cinematic
- Btcmob NPC Skill CinematicTrigger a BtcMob NPC Skill
- Btcmobs Skill CinematicTrigger a BTCMob Skill during a cinematic
Entidades2
- Btcmob NPC DefinitionA BtcMob that can be used as an NPC
- Btcmob NPC InstanceAn instance of a BtcMob NPC
Datos de entidad4
- 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
Límites de interacción3
- 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
Artefactos1
- Btcmobs StorageBTCMobs Storage Artifact
Manifiestos1
- Btcmobs ConfigBTCMobs Global Configuration
Definiciones6
- 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
Resolución de problemas
El spawner no hace nada y el registro dice "references unknown mob template". mobType debe ser el id de una btc_mob_template, no el nombre que se muestra en el editor. Copia el id de la entrada de la plantilla. La misma regla se aplica a btc_natural_spawn, a las acciones de aparición y desaparición y a las definiciones de NPC.
El spawner nunca alcanza su límite, o se detiene en 1. Una región cuyas dos esquinas son el mismo punto limita defaultMaxMobs a 1. El límite cuenta los mobs que pertenecen a ese spawner, estén donde estén. El spawner solo funciona mientras un jugador está a defaultActivationRange del centro de una región.
Un spawner no hace nada para algunos jugadores. Para cada jugador cercano a la región, el spawner comprueba el mundo, después conditionLines y después criteria, y todo debe cumplirse antes de mirar la región, el cooldown y el spawn. Un jugador que no cumple criteria se omite (se registra una vez por jugador una línea de diagnóstico «criteria did not match»). criteria nunca elimina un mob que ya ha aparecido. Los campos ...Fact (maxMobsFact, mobsPerSpawnFact y los demás) siguen sustituyendo los valores numéricos por defecto.
La sustitución de apariciones naturales nunca se activa. La entrada solo sustituye las apariciones que el servidor ya produce (naturales, de generación de chunks o por defecto). Si los spawn-limits del mundo en paper-world-defaults.yml valen 0, las criaturas vanilla nunca aparecen y no se sustituye nada. Prevalece la primera regla que coincide, y maxNearby en 0 significa sin límite, no cero mobs.
Un mob reproduce en bucle las animaciones de Attack o Death, o no camina. modelAnimations solo reproduce en bucle animaciones de tipo idle cuando se acopla un modelo; los nombres de ataque y muerte puestos ahí se ignoran. Las animaciones puntuales se definen en el modelLifecycle de la plantilla (aparición, ataque, golpe recibido, muerte) y se reproducen en el momento correspondiente; una animación de muerte se reproduce hasta el final antes de que el modelo desaparezca. Un nombre ausente del modelo se registra una vez por plantilla y ese momento queda en silencio. Los mobs todavía no controlan las animaciones de caminar, solo el lado de NPC.
Falta una habilidad o un botín en silencio. Revisa el registro del servidor: las declaraciones de botín desconocidas, los objetos desconocidos y las probabilidades no válidas se registran como advertencias y se omiten. Un elemento de skills cuyo id no coincide con ninguna entrada btc_mob_skill se registra cuando el mob lanza.
On BTCMob despawn no se dispara. El evento se dispara cuando un mob rastreado sale del mundo sin morir (despawn natural, eliminación por un plugin, caída fuera del mundo) y hay un jugador a menos de radius bloques. No se dispara cuando el mob muere (usa On BTCMob die), cuando solo se descarga su chunk (el mob se readopta al recargar) ni cuando lo eliminas con la acción Despawn o con /tw btcmobs mobs kill. Un mobName vacío coincide con cualquier mob; lo mismo vale para los eventos spawn, die, damage e interact.
Extensiones relacionadas
- BetterModel: BetterModel es uno de los dos motores de modelos (
modelProvider) que BTCMobs puede controlar para los modelos de mobs y de NPC.