Saltar al contenido principal

Mascotas de FreeMinecraftModels

FreeMinecraftModels puede convertir un modelo en una especie de mascota. Los jugadores domestican las mascotas con comida, las crían, las llevan consigo, les ordenan quedarse y las guardan en una colección que abren con /fmm pets. Cada especie se define con un archivo <species>.pet.yml que se coloca junto a su modelo, de modo que un paquete de modelos instala, activa y desactiva sus mascotas a la vez que sus modelos. Lo que una mascota hace por su cuenta, desde seguir a su dueño hasta rodear hogueras, procede de los módulos de comportamiento Lua que lista su archivo. Los ajustes de mascotas de todo el servidor viven en pets.yml.

Requisitos​

  • Una mascota es un mob vanilla oculto que lleva el modelo y está dirigido por la IA Mind de MagmaCore. Esto necesita la compatibilidad NMS de FreeMinecraftModels para la versión del servidor y Minecraft 1.21.4 o posterior. Sin ella, la consola registra una línea que empieza por Pets are off: al arrancar, y /fmm pets responde Pets are not available on this server.
  • FreeMinecraftModels no incluye ninguna especie de mascota. Las mascotas solo existen cuando un paquete de modelos, o tú, añade un archivo .pet.yml.
  • Los jugadores necesitan el resource pack generado, como con cualquier modelo.

Cómo está construida una mascota​

  • El cuerpo es el mob vanilla indicado por body en el archivo de la mascota, un allay por defecto. Está oculto dentro del modelo, es silencioso y nunca recoge objetos. Su salud máxima es el valor health del archivo de la mascota.
  • Los clics caen sobre el modelo que ven los jugadores, no sobre el cuerpo más pequeño que hay dentro.
  • Las mascotas nunca fijan un objetivo, y los mobs nunca fijan como objetivo a las mascotas.
  • El daño por contacto de FreeMinecraftModels está desactivado para las mascotas. Una mascota solo hace daño a algo mediante el módulo sting.
  • Una mascota que muere no suelta nada y no da experiencia.
  • Los cuerpos de las mascotas nunca se guardan con su chunk. Las mascotas con dueño se recrean junto a su dueño, y las salvajes esperan en data/wild_pets.yml (consulta Mascotas salvajes). Un cuerpo de mascota que queda en un chunk tras un fallo del servidor se elimina cuando el chunk se carga.
  • El modelo muestra sobre sí el name de la especie, con Baby delante en las crías.

Modos de mascotas​

pets.yml tiene dos modos:

ModoQué ocurre
COSMETIC (predeterminado)En el mundo solo existen las mascotas que poseen los jugadores, aparte de las migraciones nocturnas de paso. Nada más aparece salvaje y nada se puede domesticar. Las mascotas con dueño no pueden ser dañadas por nada
CREATURESLas especies de mascotas también viven salvajes en el mundo, con apariciones como las de los animales de granja vanilla, y los jugadores las domestican dándoles de comer. Las mascotas con dueño pueden ser dañadas, dentro de las reglas de daño

Cambia el modo con el botón Pets de la barra de herramientas de /fmm setup, con /fmm petadmin mode creatures o /fmm petadmin mode cosmetic, o editando mode en pets.yml y ejecutando /fmm reload. El botón y el comando escriben el nuevo modo en pets.yml.

Cambiar a COSMETIC envía las mascotas salvajes que están vivas a data/wild_pets.yml. Vuelven cuando el servidor cambia de nuevo a CREATURES. Las migraciones nocturnas vuelan en ambos modos, pero solo CREATURES permite a los jugadores domesticar a un migrante.

En el modo COSMETIC los jugadores no domestican mascotas. /fmm petadmin give <species> añade una mascota a la colección del jugador que lo ejecuta. La cría funciona en ambos modos.

Domesticación​

En el modo CREATURES, un jugador domestica a un adulto salvaje haciendo clic derecho sobre él con uno de los objetos tamingFood de su especie.

  • Cada alimentación consume un objeto, salvo en modo Creativo.
  • Cada alimentación domestica con la probabilidad tameChance, 1/3 por defecto, como con los lobos y los gatos. Una alimentación fallida muestra humo y tameFailedMessage.
  • Una mascota domesticada se une a la colección del jugador y sale junto a él. Conserva la variante de color que tenía en estado salvaje y reproduce una vez su animación interact.
  • Cuando el jugador ya tiene maxEquippedPets mascotas fuera, la nueva mascota se va a casa, a la colección.
  • Una especie con una lista tamingFood vacía no se puede domesticar.

Una correa funciona sobre el cuerpo de una mascota igual que sobre un mob vanilla.

Cría y crías​

  • Cuando el dueño hace clic derecho sobre una mascota adulta con uno de sus objetos breedingFood, consume un objeto y pone a la mascota en celo durante loveSeconds, 30 por defecto.
  • Dos adultos de la misma especie con el mismo dueño, ambos en celo y a menos de 8 bloques uno del otro, tienen una cría. La cría se une a la colección del dueño y sale, salvo que el dueño ya tenga fuera maxEquippedPets mascotas.
  • La cría toma la variante de color de uno de los padres. Lleva babyModel cuando la especie lo define, y si no el modelo de su variante, y en ambos casos tiene el tamaño del adulto multiplicado por babyScale.
  • Ambos padres esperan breedingCooldownMinutes, 5 por defecto, antes de poder criar de nuevo. Alimentar a un padre durante ese tiempo muestra breedingCooldownMessage.
  • Una cría se hace adulta babyGrowthMinutes, 20 por defecto, después de nacer. El tiempo cuenta también mientras la cría está en casa, y el adulto aparece la próxima vez que la cría sale.
  • Las crías no pueden criar, y no reproducen ninguna animación de ataque cuando pican.

Los padres reproducen su animación interact cuando nace una cría.

Seguir, quedarse y merodear​

Con los comportamientos incluidos, una mascota con dueño que está fuera se mantiene cerca de su dueño. Los números siguientes son los valores predeterminados de los módulos follow_owner, stay, drift y hover y de las claves follow y float de la especie:

  • Cuando el dueño está más lejos que follow.distance (5 bloques), la mascota lo sigue, apuntando 1,5 bloques detrás de él y, en una especie voladora, a float.hoverHeight por encima de sus pies. Una voladora sigue a 5 bloques por segundo con follow.speed: 1, y a 8 bloques por segundo más allá de follow.leashDistance (12). Deja de seguir en ese punto, o cuando está a menos de 3 bloques (0,6 de la distancia de seguimiento) de su dueño.
  • Más allá de follow.teleportDistance (24), la mascota se teletransporta junto a su dueño. También se teletransporta tras 3 segundos seguidos sin llegar a ninguna parte: sin ruta hacia el dueño, una ruta que termina antes de llegar a él en una valla o una orilla, o una pared en el camino de una voladora. Un teletransporte para alcanzar al dueño solo deja a una mascota más cerca de él, y nunca coloca a una caminante o nadadora en el mismo bloque que su dueño.
  • Dentro de la distancia de seguimiento, una voladora se desplaza a puntos aleatorios a menos de follow.roamRadius (5) del dueño y se balancea en el sitio entre desplazamientos, manteniendo float.hoverHeight sobre el suelo, con una variación de float.hoverVariance. Las especies caminantes deambulan y de vez en cuando miran a un jugador cercano; las especies nadadoras nadan bajo el agua.
  • Cuando el dueño hace clic derecho sobre la mascota con cualquier cosa que no sea su comida de cría o una correa, se queda donde está, como un perro, con un suave balanceo. El siguiente clic así le dice que vuelva a seguirlo. Define follow.stay: false para desactivarlo. Los clics de otros jugadores sobre una mascota con dueño no hacen nada.

follow.speed multiplica la velocidad de todos los comportamientos incluidos excepto el vuelo de migración. Los cuerpos voladores se dirigen directamente. Los demás cuerpos caminan o nadan hasta los mismos puntos con la búsqueda de rutas vanilla; consulta Velocidades. Las mascotas que no nadan flotan sobre las superficies de agua y lava en lugar de hundirse hasta el fondo.

Una mascota salvaje merodea del mismo modo alrededor del lugar donde apareció.

Las mascotas que están fuera abandonan el mundo cuando su dueño se desconecta y vuelven a salir junto a él en la siguiente conexión. Una mascota perdida por la descarga de un chunk, un cambio de mundo o un teletransporte largo vuelve junto a su dueño en menos de un segundo.

El menú de mascotas​

/fmm pets abre la colección del jugador como un menú de cofre, con el título menuTitle. Muestra hasta 54 mascotas.

  • Cada entrada muestra el objeto icon de la especie, con su iconItemModel cuando la especie lo define. Las mascotas que están fuera tienen el brillo de encantamiento.
  • La descripción muestra la especie, la variante (cuando difiere del modelo de la especie), la edad y si la mascota está con el jugador.
  • Al hacer clic en una entrada, la mascota sale a acompañar al jugador o vuelve a casa. Sacar una mascota más cuando ya hay maxEquippedPets fuera se rechaza con maxEquippedMessage.
  • Un jugador sin mascotas recibe noPetsMessage en lugar del menú.

La colección se guarda en el jugador, como JSON en los datos persistentes del jugador, así que viaja con el archivo de guardado del jugador y no necesita base de datos. Una mascota cuya especie ya no está instalada permanece en la colección con un icono de barrera y no sale.

Daño y muerte​

MascotaDaño
Con dueño, modo COSMETICIgnora todo el daño
Con dueño, modo CREATURESIgnora el daño de su dueño. Ignora el daño de otros jugadores mientras petsInvulnerableToPlayers sea true (el valor predeterminado). Se aplica el resto del daño
SalvajeRecibe daño como cualquier mob

Un clic izquierdo sobre una mascota que no puede ser dañada no cuenta como ataque, así que el modelo no parpadea en rojo.

Cuando muere una mascota con dueño, se va a casa y se puede volver a sacar desde /fmm pets. Con petsDiePermanently: true, en cambio, sale de la colección. Una mascota salvaje que muere desaparece.

Mascotas salvajes​

Las mascotas salvajes solo existen en el modo CREATURES. Viven como los animales de granja vanilla: la mayoría vienen con el mundo a medida que se generan los chunks, se quedan donde están y nunca desaparecen por despawn.

Poblar chunks nuevos​

Cuando se genera un chunk, FreeMinecraftModels hace una tirada con la probabilidad wildGenerationChance (0.01). Si tiene éxito, coloca un grupo de una especie, elegida por wildSpawn.weight entre las especies que pueden estar allí, en la superficie alrededor de una columna aleatoria. La tirada se repite después de cada grupo. Los valores superiores a 0.9 cuentan como 0.9, de modo que un chunk nunca se llena sin fin. Los límites, los jugadores, la hora del día y la regla de juego de aparición de mobs no restringen esta población.

Reposiciones alrededor de los jugadores​

Cada wildSpawnIntervalTicks (400, nunca menos de 20), una pasada añade mascotas salvajes en los chunks cargados a menos de 8 chunks de cada jugador que no esté en modo espectador:

  • Se prueba cada chunk con la probabilidad wildSpawnChunkChance (0.01).
  • Un punto debe estar a más de 24 bloques del jugador más cercano y del punto de aparición del mundo, y a no más de 128 bloques de ese jugador.
  • Las reposiciones se detienen cuando hay wildPetCapPerPlayer (6) mascotas salvajes, sumando todas las especies, a menos de 8 chunks de todos los jugadores cercanos al punto. El wildSpawn.cap (4) de cada especie limita aún más a esa especie.
  • Las reposiciones respetan la regla de juego de aparición de mobs del mundo y el wildSpawn.time de cada especie.

Los migrantes no cuentan para estos límites.

Dónde esperan las mascotas salvajes​

Cuando el chunk de una mascota salvaje se descarga o deja de procesarse, su especie, variante, posición y hogar pasan a plugins/FreeMinecraftModels/data/wild_pets.yml. Vuelve cuando un jugador está a menos de 8 chunks de ese chunk cargado. El archivo se escribe cada vez que se guardan los mundos y cuando FreeMinecraftModels se apaga o se recarga.

Las mascotas salvajes de una especie que ya no está instalada siguen esperando en el archivo. Una mascota salvaje viva que elimina otro plugin desaparece, como si hubiera muerto.

Migraciones nocturnas​

De vez en cuando una bandada de una especie migratoria cruza el cielo nocturno sobre un jugador y se va tras el cruce. Una especie migra cuando su locomotion es FLYING, su archivo de mascota tiene una sección migration: y sus comportamientos ejecutan migrate, que los valores predeterminados de FLYING incluyen. Cuando una especie tiene variantes, cada variante que pueda llevar un migrante debe ejecutar migrate. Una especie con una sección migration: que no cumpla estas condiciones nunca lanza bandadas, y registra una advertencia al cargarse salvo que su migration.weight sea 0 o su migration.enabled sea false.

  • El planificador revisa la situación cada 5 segundos en los mundos normales (de tipo overworld) durante la noche. Cada jugador recibe una tirada por noche contra migrations.chancePerNight (0.15). Una tirada ganada elige un momento del resto de la noche, lo bastante temprano para que todo el cruce termine al amanecer.
  • En ese momento la bandada empieza si el jugador está bajo cielo abierto, no hay otra bandada a menos de migrations.viewDistance de él y hay menos de migrations.maxActiveFlocks (3) bandadas en el aire. Si no, lo intenta de nuevo hasta que se acabe la noche.
  • Una bandada tiene de minFlockSize a maxFlockSize miembros (8 a 14), vuela altitude bloques (28) por encima de lo más alto entre el jugador y el suelo bajo él, a speed bloques por tick (0.15), en una trayectoria recta que pasa sobre el jugador a la mitad de durationSeconds (90), o antes cuando la distancia de simulación del mundo es inferior a 12 chunks, ya que la bandada empieza donde sus miembros aún se procesan.
  • Los miembros son mascotas salvajes normales de la especie con su modelo y animaciones completos, a migration.scale veces el tamaño de la especie, iluminados al máximo y vistos desde migrations.viewDistance (160) bloques. Aun así, los clientes necesitan que los chunks bajo la bandada estén dentro de su distancia de renderizado.
  • En el modo CREATURES, un jugador que alcance a un migrante puede domesticarlo, lo que lo saca de la bandada. Cuando termina el cruce, se eliminan los miembros que aún vuelan.

/fmm petmigrate [species] envía de inmediato una bandada sobre ti, sea cual sea la hora, el cielo o las demás bandadas. Con una especie, se inicia incluso cuando esa especie no tiene sección migration:, pero sus miembros solo vuelan la ruta cuando ejecutan migrate. Sin especie, elige una especie migratoria según migration.weight.

Sección de migración​

ClavePor defectoSignificado
enabledtruefalse desactiva las migraciones de la especie y conserva los demás valores
modelvacíoUn modelo fijo para todos los miembros. Vacío elige entre las variantes de la especie, como una aparición salvaje
scale1Tamaño de un migrante en relación con el scale de la especie
animationvacíoUna animación que se repite mientras vuela. Vacío reproduce las animaciones idle y walk del propio modelo
weight1Con qué frecuencia se elige esta especie cuando migran varias. 0 la deja fuera de la planificación nocturna

Comportamientos​

Todo lo que una mascota hace por su cuenta procede de módulos de comportamiento: archivos Lua en plugins/FreeMinecraftModels/pet_behaviors/. FreeMinecraftModels incluye 15 y escribe cada uno en esa carpeta al arrancar y con /fmm reload cuando no hay ningún archivo con su nombre. Un módulo incluido que se elimina vuelve en la siguiente carga. Un módulo que ya está en la carpeta nunca se sobrescribe, esté editado o no, así que conserva la versión con la que se escribió: elimina tu copia y recarga para obtener la que incluye tu versión de FreeMinecraftModels.

Cada mascota ejecuta los módulos que lista su archivo de especie, con los ajustes de esa especie. /fmm reload vuelve a leer los módulos y los archivos de mascota y vuelve a poner en marcha cada mascota con ellos. Para cambiar un módulo o escribir el tuyo, consulta Módulos de comportamiento de mascotas.

La lista behaviors​

behaviors:
- migrate
- stay
- follow_owner
- campfire: { radius: 20, night_only: false }
- drift
- hover
- sting:
effect: POISON
damage: 1
  • Cada entrada es el nombre de un módulo, que es el nombre de su archivo sin .lua, o el nombre con ajustes: en línea como name: { setting: value }, o en las líneas siguientes, con una sangría de dos espacios respecto al nombre.
  • Un ajuste que la entrada omite conserva el valor predeterminado del módulo. Los valores predeterminados se enumeran en Módulos incluidos y al principio de cada archivo .lua.
  • Una mascota ejecuta solo lo que su lista nombra. Si omites un módulo, la especie nunca lo hace.
  • El orden de la lista no decide qué comportamiento se ejecuta. Lo decide la prioridad de cada módulo, y un archivo de mascota no puede cambiarla: copia el módulo y cambia allí la prioridad. El orden solo importa cuando dos módulos chocan, en cuyo caso se conserva el primero.
  • Un módulo listado dos veces se ejecuta una vez, con los ajustes de la primera entrada, y la consola avisa.

Valores predeterminados sin lista​

Un archivo de especie sin lista behaviors: ejecuta los valores predeterminados de su locomoción:

locomotionComportamientos predeterminados
FLYINGmigrate, stay, follow_owner, drift, hover
GROUNDED, AMPHIBIOUSstay, follow_owner, wander, idle_look
AQUATICstay, follow_owner, swim
STATIONARYstay, follow_owner

Una lista sustituye estos valores predeterminados en lugar de añadirse a ellos, así que una lista que añade un módulo también debe nombrar los valores predeterminados que conserva. behaviors: [] no ejecuta ningún módulo. Un valor de behaviors que no sea una lista se ignora con una advertencia, y la especie ejecuta sus valores predeterminados.

Comportamientos de variante​

Escribe una variante como un mapa para dar a las mascotas que la llevan más módulos u otros ajustes:

variants:
- firefly
- model: firefly_blue
weight: 0.5
behaviors:
- night_glow: { light: 10 }
- crop_drizzle
  • Un mapa de variante admite model, weight (1 por defecto) y behaviors. Cualquier otra clave se ignora con una advertencia.
  • Una mascota que lleva la variante ejecuta la lista de la especie, o los valores predeterminados de su locomoción, más las entradas de la variante. Un módulo que nombran ambas listas conserva su lugar en la lista de la especie y toma los ajustes de la variante por encima de los de la especie. Los demás módulos de la variante van después de los propios de la especie.
  • Una cría ejecuta la lista de su variante, incluso mientras lleva babyModel.

Valores de los ajustes​

Cada ajuste tiene el tipo de su valor predeterminado: un número, true o false, texto, o una lista de textos.

  • Un valor cuyo significado es claro se acepta en otra forma: un número entre comillas como "8", "true" o "false" en cualquier combinación de mayúsculas, y una sola palabra para una lista de un elemento.
  • Un ajuste de texto al que se da un número o true/false lo toma tal como YAML lo lee, así que on y yes se convierten en true. Pon esas palabras entre comillas.
  • Escribe una lista con corchetes, como en [CAMPFIRE, SOUL_CAMPFIRE], o un elemento por línea empezando por - . Un texto que contenga comas o espacios no se lee como lista.
  • Un ajuste que el módulo no tiene, un ajuste sin valor, una lista con una entrada vacía o un valor del tipo equivocado registra una advertencia que nombra el archivo de la mascota, y el valor predeterminado se mantiene. La criatura se carga igualmente.

Módulos incluidos​

MóduloPrioridadTipoQué hace
migrate1ComportamientoVuela una ruta de migración nocturna
stay5ComportamientoMantiene el lugar donde se le ordenó quedarse
follow_owner10ComportamientoSe mantiene a la par de su dueño
campfire15ComportamientoRodea una hoguera encendida por la noche
day_perch18ComportamientoDescansa sobre hojas o el suelo de día
rain_bloom19Comportamiento y sensorSe hincha, y se desplaza más, bajo la lluvia
drift20ComportamientoVuela a puntos aleatorios alrededor de su ancla
wander20ComportamientoCamina a puntos de apoyo alrededor de su ancla
swim20ComportamientoNada a puntos bajo el agua alrededor de su ancla
hover30ComportamientoSe balancea en el sitio entre desplazamientos
idle_look30ComportamientoMira de vez en cuando a un jugador cercano
night_glowSensorIlumina el modelo por la noche
stingSensoresPica a los jugadores o mobs hostiles que lo tocan
crop_drizzleSensorHace crecer los cultivos sobre los que flota
owner_effectSensorDa a su dueño un efecto de poción

Un comportamiento con un número de prioridad más bajo toma el relevo de uno en ejecución con un número más alto, así que seguir gana a las hogueras y las hogueras ganan a los desplazamientos de drift. Los sensores nunca mueven a la mascota; se ejecutan junto a cualquier comportamiento que esté en marcha.

El ancla de una mascota es aquello alrededor de lo que merodea: su dueño, o en una mascota salvaje el lugar donde apareció. Una mascota está asentada mientras no se le ha ordenado quedarse y es salvaje o está a menos de follow.distance de su dueño.

Velocidades​

La velocidad que pide un módulo es su ajuste speed multiplicado por follow.speed. Un cuerpo volador vuela esa cantidad de bloques por tick, como máximo 4; 0.05 es un bloque por segundo. Un cuerpo caminante o nadador busca una ruta hasta allí con la navegación vanilla a 4 veces ese número, como multiplicador de la propia velocidad de movimiento de su tipo de cuerpo, nunca por debajo de una cuarta parte de ella. Un speed de 0 deja inmóvil a un caminante o nadador.

migrate​

Mientras la mascota vuela una migración nocturna, vuela la ruta de su bandada a la velocidad de la bandada, con prioridad sobre cualquier otro comportamiento. Se detiene cuando termina el cruce o un jugador domestica a la mascota. Una especie cuyos comportamientos no lo ejecutan nunca lanza bandadas. Sin ajustes.

stay​

Tras el clic de quedarse del dueño, la mascota mantiene el lugar con un suave balanceo. Cada balanceo se queda en el medio propio del cuerpo: en el aire para una voladora, en el suelo para una caminante, bajo el agua para una nadadora, que conserva la profundidad a la que se le ordenó quedarse.

AjustePor defectoSignificado
speed0.03Consulta Velocidades
bob_ticks40Ticks entre balanceos
bob_radius0.5Distancia máxima en bloques desde el punto a la que un balanceo puede moverla

Todos los comportamientos de movimiento incluidos esperan mientras se ha ordenado quedarse a una mascota, así que una mascota sin stay en su lista no tiene balanceo.

follow_owner​

Mantiene a una mascota con dueño junto a él, como se describe en Seguir, quedarse y merodear. Lee follow.distance, follow.leashDistance, follow.teleportDistance y float.hoverHeight del archivo de la especie.

Un teletransporte para alcanzar al dueño deja a la mascota a menos de 2 bloques de él, en el medio propio de la mascota: su banda de flotación para una voladora, suelo firme para una caminante, agua a hasta 6 bloques de distancia para una nadadora, y suelo o si no agua para un cuerpo anfibio. Solo deja a una mascota al menos un bloque más cerca de su dueño que antes, y a una caminante o nadadora al menos a un bloque de él. Cuando no encuentra ningún punto válido, lo intenta de nuevo tras otros stuck_ticks.

AjustePor defectoSignificado
speed0.25Velocidad de seguimiento. Consulta Velocidades. Con 0 la mascota solo sigue mediante teletransportes para alcanzar al dueño
leash_urgency1.6Multiplicador de velocidad más allá de follow.leashDistance
trail_back1.5Bloques detrás del dueño hacia los que apunta la mascota
stuck_ticks60Ticks seguidos sin llegar a ninguna parte antes de que la mascota se teletransporte junto a su dueño

drift​

Para especies voladoras. La mascota vuela a un punto aleatorio a menos de follow.roamRadius de su ancla, dentro de su banda de flotación (float.hoverHeight sobre el suelo, con una variación de float.hoverVariance), y después descansa.

AjustePor defectoSignificado
speed0.06Consulta Velocidades
drift_ticks160Máximo de ticks que dura un desplazamiento
stuck_ticks20Ticks sin moverse antes de que un desplazamiento se abandone
rest_ticks60Ticks que descansa la mascota tras un desplazamiento
rest_random_ticks80Añade de 0 a este valor menos 1 ticks de descanso aleatorios

hover​

Para especies voladoras. Mientras no se ejecuta ningún otro comportamiento de movimiento, la mascota se balancea en el sitio: cada bob_ticks sube o baja hasta la mitad de float.hoverVariance. Una mascota que está a más de correct_above bloques de float.hoverHeight sobre el suelo vuelve en su lugar directamente a esa altura. Busca el suelo hasta 12 bloques más abajo.

AjustePor defectoSignificado
speed0.03Consulta Velocidades
bob_ticks30Ticks entre balanceos
correct_above1.5Bloques de diferencia con su altura de flotación a partir de los cuales vuelve directamente

wander​

Para especies caminantes. La mascota camina a un punto de apoyo cerca de su ancla, descansa y vuelve a ir. Una mascota salvaje elige puntos a menos de follow.roamRadius del lugar donde apareció. Una mascota con dueño elige puntos a menos de follow.roamRadius de su dueño y a no más de 0,8 veces follow.distance, para que el seguimiento no empiece en cuanto llega. Un paseo termina a menos de 1,5 bloques de su punto, tras walk_ticks, o tras stuck_ticks sin moverse. Sobre agua o una caída larga, donde no encuentra ningún punto válido, espera a que pase un descanso y vuelve a buscar.

AjustePor defectoSignificado
speed0.15Consulta Velocidades
walk_ticks120Máximo de ticks que dura un paseo
stuck_ticks20Ticks sin moverse antes de que un paseo se abandone
rest_ticks80Ticks que descansa la mascota tras un paseo
rest_random_ticks120Añade de 0 a este valor menos 1 ticks de descanso aleatorios

idle_look​

De vez en cuando la mascota mira al jugador más cercano a menos de range bloques durante look_ticks, y después descansa. Solo reserva el control de la mirada, así que cualquier comportamiento que mueva a la mascota toma el relevo, y nunca mira a jugadores en modo Creativo o Espectador. Un range de 0 lo desactiva. Un cuerpo STATIONARY nunca gira su mirada, así que sus valores predeterminados omiten este módulo.

AjustePor defectoSignificado
range8Bloques dentro de los cuales mira a un jugador
look_ticks40Máximo de ticks que dura una mirada
rest_ticks100Ticks entre miradas
rest_random_ticks100Añade de 0 a este valor menos 1 ticks aleatorios entre miradas

swim​

Para especies nadadoras. La mascota nada a un punto en el agua cerca de su ancla, entre min_depth y max_depth bloques bajo la superficie, descansa y vuelve a ir. Elige puntos alrededor de su ancla como wander, y solo en el agua. Una nadadora varada en tierra espera allí; una con dueño vuelve al agua cuando su dueño se aleja y el teletransporte de follow_owner para alcanzar al dueño encuentra agua junto a él.

AjustePor defectoSignificado
speed0.15Consulta Velocidades
min_depth / max_depth0.5 / 3Bloques bajo la superficie, de 0 a 16
swim_ticks120Máximo de ticks que dura un nado
stuck_ticks20Ticks sin moverse antes de que un nado se abandone
rest_ticks40Ticks que descansa la mascota tras un nado
rest_random_ticks60Añade de 0 a este valor menos 1 ticks de descanso aleatorios

campfire​

Por la noche, las mascotas asentadas se desplazan hasta la hoguera encendida más cercana a menos de radius bloques y la rodean despacio entre su humo. Una mascota con dueño solo toma una hoguera lo bastante cercana a su dueño como para que rodearla nunca inicie el seguimiento. La mascota comprueba una vez por segundo que la hoguera sigue encendida.

AjustePor defectoSignificado
radius12Bloques en los que buscar una hoguera, de 1 a 32
height2.5Altura en bloques sobre la hoguera a la que la mascota la rodea
ring0.8Radio del círculo
night_onlytrueSolo entre el anochecer y el amanecer
wild / petstrue / trueSi se reúnen las mascotas salvajes y las mascotas con dueño
blocks[CAMPFIRE, SOUL_CAMPFIRE]Hogueras que cuentan. Solo funcionan estas dos
soul_variants[]Modelos de variante atraídos solo por hogueras de almas. Todas las demás variantes toman entonces solo hogueras normales. Vacío significa que cualquier variante toma cualquiera de las hogueras listadas
search_seconds5Segundos entre búsquedas de una hoguera. Al menos 1
speed0.06Consulta Velocidades

day_perch​

De día, una mascota asentada baja hasta las hojas más cercanas bajo ella, o hasta el suelo justo debajo, y descansa allí con un leve balanceo. Despega al anochecer, cuando le cae lluvia encima y cuando su dueño sale de su rango de seguimiento. Una mascota con dueño solo toma una percha a menos de follow.distance de su dueño. Cuando no encuentra nada donde posarse, como agua o una caída larga, vuelve a buscar 5 segundos después.

AjustePor defectoSignificado
height0.3Altura en bloques sobre las hojas o el suelo a la que descansa, de 0 a 8
search_radius2Bloques hacia los lados en los que buscar hojas, de 0 a 4
wild / petstrue / trueSi se posan las mascotas salvajes y las mascotas con dueño
speed0.06Velocidad mientras está a más de un bloque de la percha. Consulta Velocidades
settle_speed0.03Velocidad durante el último bloque

rain_bloom​

Mientras la lluvia cae sobre la mascota, se hincha y se desplaza alrededor de su ancla con más frecuencia, más alto y más rápido. Vuelve a encogerse cuando la lluvia cesa o encuentra cobijo. La lluvia cae sobre una mascota durante una tormenta, bajo cielo abierto, en un bioma lo bastante cálido y húmedo para que llueva. El hinchado es un sensor que se ejecuta cada 4 ticks; el desplazamiento es un comportamiento con prioridad 19, así que ocupa el lugar de drift bajo la lluvia.

AjustePor defectoSignificado
scale_multiplier1.25Tamaño bajo la lluvia, relativo a su tamaño normal, de 0.1 a 16
scale_seconds3Segundos para hincharse o encogerse
drift_frequency2.5Cuántas veces más cortos son sus descansos entre desplazamientos que lo que dan rest_ticks y rest_random_ticks, nunca por debajo de 10 ticks
rise1Cuántos bloques más alto se desplaza
speed_multiplier1.4Cuántas veces más rápido se desplaza
speed0.06Velocidad de desplazamiento antes de speed_multiplier. Consulta Velocidades
drift_ticks120Máximo de ticks que dura un desplazamiento
stuck_ticks20Ticks sin moverse antes de que un desplazamiento se abandone
rest_ticks / rest_random_ticks60 / 80El descanso que drift_frequency acorta

night_glow​

Los huesos de display del modelo se iluminan a un nivel de luz fijo por la noche, sea cual sea la luz del lugar donde está la mascota. Los mundos sin sol cuentan como noche. El sensor comprueba cada 2 segundos. Solo para jugadores de Java: los jugadores de Bedrock ven el modelo con la luz del mundo.

AjustePor defectoSignificado
night_onlytrueCon false brilla de día y de noche
light15Nivel de luz, de 0 a 15
lantern_bonelanternUn modelo con un hueso de este nombre repite animation mientras brilla
animationglowLa animación del hueso linterna

sting​

Una mascota salvaje pica a los jugadores que tocan su modelo, salvo en modo Creativo o Espectador. Una mascota con dueño pica a los mobs hostiles que se acercan a menos de reach de la hitbox de su modelo, y nunca a un jugador. Los adultos reproducen su animación attack al picar. Los contactos se comprueban cada 4 ticks y los mobs cercanos cada 10.

AjustePor defectoSignificado
wild / petstrue / trueSi las mascotas salvajes pican a jugadores y las mascotas con dueño pican a mobs hostiles
effectSLOWNESSEfecto de poción, por nombre. NONE para ningún efecto
duration_ticks60Duración del efecto en ticks, de 1 a 6000
amplifier0Nivel del efecto; 0 es el nivel I
damage0Daño por picadura, en medios corazones
cooldown_seconds3Segundos antes de que esta mascota pueda picar de nuevo a la misma víctima
reach0.5Bloques de distancia a la hitbox del modelo a los que una mascota con dueño aún pica a un mob, de 0 a 4. Las picaduras salvajes requieren que el jugador toque el modelo

Un nombre de effect que no existe registra una advertencia una vez por especie y nombre, y la picadura no aplica ningún efecto.

crop_drizzle​

Mientras la mascota flota quieta sobre un cultivo, cae una lluvia ligera sobre el cultivo, y cada interval_seconds el cultivo puede crecer una etapa. Los cultivos son los bloques de la etiqueta crops de Minecraft, la verruga del Nether y los arbustos de bayas dulces. La mascota mira recto hacia abajo solo a través del aire. El crecimiento se emite como un BlockGrowEvent, de modo que los plugins de protección y de cultivo pueden rechazarlo. Vale tanto para mascotas salvajes como para mascotas con dueño.

AjustePor defectoSignificado
chance0.1Probabilidad por intervalo de que el cultivo crezca, de 0 a 1
interval_seconds5Segundos entre intentos. Al menos 1; se comprueba una vez por segundo, así que una fracción espera al siguiente segundo entero
depth4Bloques bajo la mascota en los que buscar el cultivo, de 1 a 8

owner_effect​

Mientras una mascota con dueño está fuera y a menos de range bloques de su dueño, el dueño tiene un efecto de poción, como visión nocturna o respiración acuática. El efecto dura 15 segundos y se renueva cada segundo, de modo que nunca parpadea, y se disipa en menos de 15 segundos después de que la mascota se vaya a casa o el dueño salga de su rango. Muestra su icono pero no partículas. Si el dueño ya tiene ese efecto, al menos igual de fuerte y de igual o mayor duración, por ejemplo de una poción que bebió, la mascota lo deja como está.

Conviene a los efectos constantes: visión nocturna, respiración acuática, velocidad, prisa minera, resistencia al fuego. Los efectos que actúan según su tiempo restante, como regeneración, veneno y wither, se comportan mal cuando se renuevan cada segundo.

AjustePor defectoSignificado
effectNIGHT_VISIONEfecto de poción, por nombre
amplifier0Nivel del efecto; 0 es el nivel I
range16Bloques desde la mascota

Secciones antiguas de interacción con el mundo​

Los archivos de mascota escritos antes de los módulos de comportamiento pueden tener secciones campfire:, rainBloom:, glow:, sting:, dayPerch: o drizzle:. Ahora no hacen nada, y cada una registra una advertencia cuando se carga el archivo:

firefly.pet.yml: the campfire section is ignored now that world interactions are behavior modules; list the campfire module under behaviors: instead (see plugins/FreeMinecraftModels/pet_behaviors/campfire.lua for its settings).

Una simple línea glow: true recibe la misma advertencia, redactada como the glow setting. Cuando la sección estaba desactivada (enabled: false, o glow: con cualquier valor distinto de true), o el archivo ya lista su módulo, la advertencia solo pide que la elimines.

Para conservar una interacción, lista su módulo y renombra sus ajustes:

Sección antiguaMóduloAjustes renombrados
campfirecampfirenightOnly a night_only, soulVariants a soul_variants, searchSeconds a search_seconds
rainBloomrain_bloomscaleMultiplier a scale_multiplier, scaleSeconds a scale_seconds, driftFrequency a drift_frequency, speedMultiplier a speed_multiplier
glownight_glownightOnly a night_only, lanternBone a lantern_bone
stingstingdurationTicks a duration_ticks, cooldownSeconds a cooldown_seconds
dayPerchday_perchsearchRadius a search_radius
drizzlecrop_drizzleintervalSeconds a interval_seconds

Los demás ajustes conservan sus nombres. Elimina enabled: dejar un módulo fuera de la lista es la forma de desactivarlo. Un archivo sin lista behaviors: ejecuta solo los valores predeterminados de su locomoción, así que lístalos también. Para una especie voladora que conservaba su hoguera y su brillo:

behaviors:
- migrate
- stay
- follow_owner
- campfire: { radius: 12 }
- drift
- hover
- night_glow

migration: sigue siendo una sección del archivo de mascota; consulta Sección de migración.

Inclinación y centrado​

Las criaturas voladoras y nadadoras suelen verse mejor cuando se inclinan con su desplazamiento y giran alrededor de su propio centro:

  • orientation define cómo se inclina el modelo al desplazarse. UPRIGHT (el valor predeterminado) solo mira hacia donde va. TOP_FIRST avanza con su parte superior por delante, como una medusa: se inclina hacia su desplazamiento, se tumba de lado al avanzar y se pone boca abajo para descender. FRONT_FIRST conviene a aves y peces: cabecea al subir y bajar y se ladea en los giros. Todos los estilos vuelven a la vertical cuando la mascota se detiene. Consulta Orientación de desplazamiento.
  • centerOnBody dibuja el modelo con el centro de sus cubos sobre el centro de su cuerpo oculto, en lugar de apoyarlo en los pies del cuerpo. El modelo se mueve, gira y se inclina entonces alrededor del cuerpo, y su caja de clic queda sobre lo que ven los jugadores. Es true por defecto para las especies FLYING y AQUATIC y false para las demás. Consulta Centrado en el cuerpo.

Referencia del archivo de especie​

Coloca <species>.pet.yml en cualquier lugar de plugins/FreeMinecraftModels/models/, normalmente junto al modelo que usa. FreeMinecraftModels lee todos los archivos cuyo nombre termina en .pet.yml al arrancar y con /fmm reload. El nombre del archivo antes de .pet.yml es el ID de especie predeterminado.

isEnabled: true
species: firefly
model: firefly
name: '&eFirefly'
body: ALLAY
scale: 1.0
health: 20
icon: GLOW_BERRIES
iconItemModel: ''
tamingFood:
- GLOW_BERRIES
breedingFood:
- GLOW_BERRIES
tameChance: 0.34
babyModel: ''
babyScale: 0.5
babyGrowthMinutes: 20
breedingCooldownMinutes: 5
loveSeconds: 30
variants:
- firefly
- firefly_blue:0.5
follow:
distance: 5
leashDistance: 12
teleportDistance: 24
roamRadius: 5
speed: 1.0
stay: true
float:
hoverHeight: 1.5
hoverVariance: 0.75
locomotion: FLYING
centerOnBody: true
orientation:
style: FRONT_FIRST
startSpeed: 0.6
fullSpeed: 4.0
maxTilt: 180
turnSpeed: 180
wildSpawn:
enabled: true
weight: 10
minGroup: 1
maxGroup: 3
placement: AIR
minLight: 0
maxLight: 15
cap: 4
worlds: []
environments:
- NORMAL
biomes:
- minecraft:plains
time: NIGHT
minY: -64
maxY: 320
behaviors:
- migrate
- stay
- follow_owner
- campfire: { radius: 12 }
- drift
- hover
- night_glow: { light: 15 }
migration:
scale: 2.0

Identidad y aspecto​

ClavePor defectoSignificado
isEnabledtruefalse omite el archivo
speciesnombre del archivoEl ID de especie, en minúsculas. Las mascotas guardadas de los jugadores y /fmm petadmin lo usan, así que mantenlo estable cuando los jugadores ya tengan mascotas. Cuando dos archivos definen el mismo ID, se conserva el primero por ruta y la consola avisa
modelnombre del archivoEl modelo que lleva la mascota. La consola avisa cuando no está cargado, y la mascota no puede aparecer
namenombre del archivoNombre mostrado sobre la mascota y en los mensajes. Admite códigos de color con &
bodyALLAYEl tipo de mob vanilla que lleva el modelo. Su tamaño es lo que bloquea el movimiento
scale1Tamaño general, al menos 0.0625
health20Salud máxima del cuerpo, al menos 1
iconGLOW_BERRIESObjeto del icono del menú
iconItemModelvacíoUn modelo de objeto (namespace:path) de un resource pack para el icono del menú
variants[]Variantes de color, como model, model:weight, o un mapa con model, weight y behaviors (consulta Comportamientos de variante). Una aparición salvaje elige una por peso, una mascota domesticada conserva la suya y una cría toma la de uno de sus padres. Vacío significa solo model. Las variantes deben compartir los mismos huesos y animaciones

Domesticación y cría​

ClavePor defectoSignificado
tamingFood[]Nombres de objetos que domestican a un adulto salvaje
breedingFood[]Nombres de objetos que ponen en celo a un adulto con dueño
tameChance0.333Probabilidad de que una alimentación domestique
babyModelvacíoModelo que lleva mientras es una cría, a babyScale. Vacío usa el modelo de la variante
babyScale0.5Tamaño de la cría relativo a scale
babyGrowthMinutes20Minutos hasta que una cría es adulta
breedingCooldownMinutes5Minutos antes de que los padres críen de nuevo
loveSeconds30Cuánto tiempo espera un adulto alimentado a una pareja

Movimiento​

Los valores de follow y float los leen los módulos de comportamiento incluidos, como se indica.

ClavePor defectoSignificado
follow.distance5follow_owner sigue cuando el dueño está más lejos que esto. Dentro de ese radio, la mascota está asentada y merodea libremente
follow.leashDistance12Más allá de esta distancia follow_owner se apresura
follow.teleportDistance24Más allá de esta distancia follow_owner teletransporta la mascota a su dueño
follow.roamRadius5A qué distancia de su ancla llevan a la mascota drift, rain_bloom, wander y swim
follow.speed1Multiplica la velocidad de todos los comportamientos incluidos excepto migrate, al menos 0.05
follow.staytrueSi un clic derecho ordena a la mascota quedarse
float.hoverHeight1.5Bloques sobre el suelo que mantiene una mascota voladora
float.hoverVariance0.75Cuánto se aparta de esa altura
locomotionFLYINGCómo se mueve el cuerpo: FLYING, GROUNDED, AQUATIC, AMPHIBIOUS o STATIONARY. También define los comportamientos predeterminados
centerOnBodytrue para FLYING y AQUATICConsulta Inclinación y centrado
orientation.styleUPRIGHTUPRIGHT, TOP_FIRST o FRONT_FIRST
orientation.startSpeed0.6Bloques por segundo por debajo de los cuales el modelo se mantiene derecho
orientation.fullSpeed4.0Bloques por segundo a los que se alinea por completo con su desplazamiento
orientation.maxTilt180Inclinación máxima, en grados. 180 permite que un modelo TOP_FIRST se ponga boca abajo
orientation.turnSpeed180Grados por segundo a los que puede cambiar su inclinación

Aparición salvaje​

Estas claves solo se aplican en el modo CREATURES. Las listas vacías lo permiten todo.

ClavePor defectoSignificado
wildSpawn.enabledtrueSi la especie vive en estado salvaje
wildSpawn.weight10Peso frente a las demás especies que pueden aparecer en el mismo punto. 0 nunca aparece. Un archivo con la clave antigua chance (0 a 1) y sin weight usa chance multiplicado por 10
wildSpawn.minGroup / maxGroup1 / minGroupTamaño del grupo
wildSpawn.placementsegún locomotionGROUND, WATER, WATER_SURFACE o AIR. FLYING usa AIR por defecto, AQUATIC usa WATER y el resto GROUND. AIR necesita un bloque superior sólido y seco y WATER_SURFACE un bloque superior de agua, cada uno con dos bloques libres encima
wildSpawn.minLight / maxLight0 / 15Nivel de luz que necesita el punto
wildSpawn.cap4Máximo de mascotas salvajes de esta especie a menos de 8 chunks de un jugador, para las reposiciones
wildSpawn.worlds[]Nombres de mundos
wildSpawn.environments[]NORMAL, NETHER o THE_END
wildSpawn.biomes[]Claves de bioma como minecraft:plains
wildSpawn.timeANYANY, DAY o NIGHT, para las reposiciones
wildSpawn.minY / maxY-64 / 320Rango de altura

Comportamientos y migración​

ClavePor defectoSignificado
behaviorslos valores predeterminados de la locomociónLos módulos de comportamiento que ejecuta la especie, con sus ajustes. Consulta Comportamientos
migrationningunaEl aspecto de la especie en las migraciones nocturnas. Consulta Sección de migración

Las secciones antiguas campfire, rainBloom, glow, sting, dayPerch y drizzle se ignoran con una advertencia. Consulta Secciones antiguas de interacción con el mundo.

Referencia de pets.yml​

plugins/FreeMinecraftModels/pets.yml se genera en el primer arranque. /fmm reload aplica los cambios.

ClavePor defectoSignificado
modeCOSMETICCOSMETIC o CREATURES. Consulta Modos de mascotas
maxEquippedPets0Cuántas mascotas puede tener fuera un jugador a la vez. 0 significa sin límite
petsInvulnerableToPlayerstrueSi las mascotas con dueño ignoran el daño de jugadores distintos de su dueño
petsDiePermanentlyfalseSi una mascota que muere sale de la colección de su dueño
wildGenerationChance0.01Probabilidad, de 0 a 0.9, de que un chunk nuevo reciba un grupo de mascotas salvajes, que se vuelve a tirar tras cada grupo
wildSpawnIntervalTicks400Ticks entre pasadas de reposición
wildSpawnChunkChance0.01Probabilidad de que una pasada de reposición pruebe un chunk concreto cerca de un jugador
wildPetCapPerPlayer6Número de mascotas salvajes, sumando todas las especies, a menos de 8 chunks de un jugador a partir del cual se detienen las reposiciones
migrations.enabledtrueSi se ejecutan las migraciones nocturnas
migrations.chancePerNight0.15Probabilidad, de 0 a 1, de que un jugador reciba una bandada en una noche dada
migrations.minFlockSize / maxFlockSize8 / 14Tamaño de la bandada
migrations.altitude28Bloques sobre el jugador o el suelo, lo que sea más alto
migrations.speed0.15Bloques por tick (0.15 son 3 bloques por segundo)
migrations.durationSeconds90Segundos desde que aparece la bandada hasta que se elimina
migrations.viewDistance160Bloques desde los que los jugadores ven una bandada
migrations.maxActiveFlocks3Máximo de bandadas en el aire a la vez en todo el servidor
migrations.species[]IDs de especie que pueden migrar. Vacío significa todas las que pueden (consulta Migraciones nocturnas)

Los mensajes admiten códigos de color con &. $pet es el nombre de la mascota, y $amount en maxEquippedMessage es el límite.

ClavePor defecto
tamedMessage&aYou tamed a $pet&a! It follows you now. &f/fmm pets &amanages your pets.
tameFailedMessage&7The $pet &7eats it, but is not tamed yet.
stayMessage&7Your $pet &7stays here.
followMessage&7Your $pet &7follows you again.
menuTitle&2Your pets
noPetsMessage&7You have no pets yet. Tame a wild creature by feeding it its favorite food.
equippedMessage&a$pet &ais with you.
unequippedMessage&7$pet &7went home.
maxEquippedMessage&cYou can only have $amount pets with you at once.
breedingCooldownMessage&7Your $pet &7is not ready to breed again yet.
bornMessage&aA $pet &awas born!

Comandos y permisos​

ComandoPermisoPredeterminadoPropósito
/fmm petsfreeminecraftmodels.petstrueAbre tu menú de mascotas
/fmm petadmin mode [creatures|cosmetic]freeminecraftmodels.pets.adminopMuestra el modo de mascotas, o lo cambia y lo guarda en pets.yml
/fmm petadmin listfreeminecraftmodels.pets.adminopLista las especies cargadas con su archivo, modelo, cuerpo, comida de domesticación y comida de cría
/fmm petadmin spawn <species>freeminecraftmodels.pets.adminopGenera una mascota salvaje sobre el bloque al que miras, hasta a 12 bloques de distancia. Solo en el modo CREATURES
/fmm petadmin give <species>freeminecraftmodels.pets.adminopAñade un adulto de la especie a tu propia colección y lo saca, salvo que ya tengas fuera maxEquippedPets mascotas
/fmm petmigrate [species]freeminecraftmodels.pets.adminopEnvía ahora una bandada migratoria sobre ti. Consulta Migraciones nocturnas

Los tres comandos son solo para jugadores. freeminecraftmodels.pets controla el menú de mascotas, y todos los jugadores lo tienen por defecto. freeminecraftmodels.pets.admin controla /fmm petadmin y /fmm petmigrate; por defecto lo tienen los operadores y se incluye en freeminecraftmodels.*. Domesticar, criar y ordenar a una mascota que se quede no necesitan ningún permiso.

Solución de problemas​

Busca en la consola pet behavior, pet_behaviors y .pet.yml para encontrar las advertencias sobre los módulos de comportamiento. Cada una nombra el archivo de mascota o de módulo que hay que corregir.

La consola dice Pets are off. La versión del servidor no tiene compatibilidad NMS de FreeMinecraftModels, o es anterior a Minecraft 1.21.4.

La consola dice Pet <species> (<file>) names model <model>, which is not loaded. La clave model nombra un ID de modelo que no se cargó. Una variante cuyo modelo no se cargó no registra nada; las mascotas de esa variante llevan en su lugar el model de la especie. Revisa el nombre de archivo del modelo, que es su ID, y el registro de la recarga para ese modelo.

La consola dice Could not spawn pet <species>: <cause>. Una mascota de esa especie no pudo entrar en el mundo, por el motivo indicado, como un modelo que no está cargado, comportamientos que no pudieron iniciarse o un cuerpo que no pudo aparecer. Cada especie y causa se registra una vez hasta la siguiente recarga, por muchas veces que se reintente la aparición.

La consola dice the <section> section is ignored now that world interactions are behavior modules. El archivo de mascota todavía tiene una sección antigua de interacción con el mundo, o una línea glow: true, que la advertencia llama the glow setting. Consulta Secciones antiguas de interacción con el mundo.

La consola dice there is no pet behavior <name> in pet_behaviors/. La lista behaviors nombra un módulo que no tiene archivo. Revisa la ortografía; la advertencia sugiere el nombre más parecido cuando lo hay. La criatura se carga sin ese módulo.

La consola dice the pet behavior <name> failed to load. El archivo del módulo tiene un error. Una advertencia anterior nombra el archivo y, en un error de Lua, la línea. Corrígelo y ejecuta /fmm reload, o elimina un módulo incluido que esté roto para que FreeMinecraftModels lo escriba de nuevo.

La consola dice the pet behavior <module> has no setting <setting>, o <module>.<setting> must be .... Un ajuste de la lista behaviors está mal escrito o tiene el tipo equivocado. La advertencia lista los ajustes del módulo o el tipo que necesita, y el valor predeterminado se mantiene. Consulta Valores de los ajustes.

La consola dice cannot run alongside the ones listed before it. Dos módulos de la lista no pueden ejecutarse juntos, normalmente porque ambos declaran la misma memoria, comportamiento o sensor, como cuando un módulo copiado se lista junto a su original. Se ejecuta el primero de la lista y el otro queda fuera. Consulta Módulos de comportamiento de mascotas.

No aparecen mascotas salvajes. Comprueba que mode sea CREATURES y que /fmm petadmin list muestre la especie. Después revisa wildSpawn: enabled, un weight superior a 0, y los mundos, entornos, biomas, luz y altura que permite. Los chunks se pueblan una sola vez, al generarse, así que una zona ya explorada solo se llena mediante reposiciones, que son lentas por defecto y se detienen en los límites. /fmm petadmin spawn <species> coloca una para comprobar la propia mascota.

Los jugadores no pueden abrir /fmm pets. Necesitan freeminecraftmodels.pets, que todos los jugadores tienen por defecto salvo que un plugin de permisos se lo quite. Consulta Comandos y permisos.

Ninguna bandada cruza nunca el cielo. Las bandadas vuelan de noche en mundos de tipo overworld sobre jugadores bajo cielo abierto, y solo para especies FLYING con una sección migration: cuyos comportamientos ejecuten migrate. Una especie que no puede migrar registra has a migration section, but ... al cargarse, con la solución. /fmm petmigrate <species> envía una de inmediato.

Una mascota no hace nada, o dejó de hacer algo tras una actualización. Revisa su lista behaviors: una mascota ejecuta solo los módulos que nombra, y una lista sustituye los valores predeterminados. Un archivo cuyas interacciones con el mundo eran secciones no ejecuta ninguna hasta que lista sus módulos.

El brillo de una mascota no se ve para los jugadores de Bedrock. El brillo solo ilumina los huesos de display de Java.