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 petsrespondePets 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
bodyen 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 valorhealthdel 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
namede la especie, conBabydelante en las crías.
Modos de mascotas
pets.yml tiene dos modos:
| Modo | Qué 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 |
CREATURES | Las 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/3por defecto, como con los lobos y los gatos. Una alimentación fallida muestra humo ytameFailedMessage. - 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
maxEquippedPetsmascotas fuera, la nueva mascota se va a casa, a la colección. - Una especie con una lista
tamingFoodvací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 duranteloveSeconds,30por 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
maxEquippedPetsmascotas. - La cría toma la variante de color de uno de los padres. Lleva
babyModelcuando la especie lo define, y si no el modelo de su variante, y en ambos casos tiene el tamaño del adulto multiplicado porbabyScale. - Ambos padres esperan
breedingCooldownMinutes,5por defecto, antes de poder criar de nuevo. Alimentar a un padre durante ese tiempo muestrabreedingCooldownMessage. - Una cría se hace adulta
babyGrowthMinutes,20por 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(5bloques), la mascota lo sigue, apuntando 1,5 bloques detrás de él y, en una especie voladora, afloat.hoverHeightpor encima de sus pies. Una voladora sigue a 5 bloques por segundo confollow.speed: 1, y a 8 bloques por segundo más allá defollow.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, manteniendofloat.hoverHeightsobre el suelo, con una variación defloat.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: falsepara 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
iconde la especie, con suiconItemModelcuando 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
maxEquippedPetsfuera se rechaza conmaxEquippedMessage. - Un jugador sin mascotas recibe
noPetsMessageen 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
| Mascota | Daño |
|---|---|
Con dueño, modo COSMETIC | Ignora todo el daño |
Con dueño, modo CREATURES | Ignora 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 |
| Salvaje | Recibe 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. ElwildSpawn.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.timede 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.viewDistancede él y hay menos demigrations.maxActiveFlocks(3) bandadas en el aire. Si no, lo intenta de nuevo hasta que se acabe la noche. - Una bandada tiene de
minFlockSizeamaxFlockSizemiembros (8a14), vuelaaltitudebloques (28) por encima de lo más alto entre el jugador y el suelo bajo él, aspeedbloques por tick (0.15), en una trayectoria recta que pasa sobre el jugador a la mitad dedurationSeconds(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.scaleveces el tamaño de la especie, iluminados al máximo y vistos desdemigrations.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
| Clave | Por defecto | Significado |
|---|---|---|
enabled | true | false desactiva las migraciones de la especie y conserva los demás valores |
model | vacío | Un modelo fijo para todos los miembros. Vacío elige entre las variantes de la especie, como una aparición salvaje |
scale | 1 | Tamaño de un migrante en relación con el scale de la especie |
animation | vacío | Una animación que se repite mientras vuela. Vacío reproduce las animaciones idle y walk del propio modelo |
weight | 1 | Con 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 comoname: { 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:
locomotion | Comportamientos predeterminados |
|---|---|
FLYING | migrate, stay, follow_owner, drift, hover |
GROUNDED, AMPHIBIOUS | stay, follow_owner, wander, idle_look |
AQUATIC | stay, follow_owner, swim |
STATIONARY | stay, 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(1por defecto) ybehaviors. 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/falselo toma tal como YAML lo lee, así queonyyesse convierten entrue. 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ódulo | Prioridad | Tipo | Qué hace |
|---|---|---|---|
migrate | 1 | Comportamiento | Vuela una ruta de migración nocturna |
stay | 5 | Comportamiento | Mantiene el lugar donde se le ordenó quedarse |
follow_owner | 10 | Comportamiento | Se mantiene a la par de su dueño |
campfire | 15 | Comportamiento | Rodea una hoguera encendida por la noche |
day_perch | 18 | Comportamiento | Descansa sobre hojas o el suelo de día |
rain_bloom | 19 | Comportamiento y sensor | Se hincha, y se desplaza más, bajo la lluvia |
drift | 20 | Comportamiento | Vuela a puntos aleatorios alrededor de su ancla |
wander | 20 | Comportamiento | Camina a puntos de apoyo alrededor de su ancla |
swim | 20 | Comportamiento | Nada a puntos bajo el agua alrededor de su ancla |
hover | 30 | Comportamiento | Se balancea en el sitio entre desplazamientos |
idle_look | 30 | Comportamiento | Mira de vez en cuando a un jugador cercano |
night_glow | Sensor | Ilumina el modelo por la noche | |
sting | Sensores | Pica a los jugadores o mobs hostiles que lo tocan | |
crop_drizzle | Sensor | Hace crecer los cultivos sobre los que flota | |
owner_effect | Sensor | Da 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
speed | 0.03 | Consulta Velocidades |
bob_ticks | 40 | Ticks entre balanceos |
bob_radius | 0.5 | Distancia 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
speed | 0.25 | Velocidad de seguimiento. Consulta Velocidades. Con 0 la mascota solo sigue mediante teletransportes para alcanzar al dueño |
leash_urgency | 1.6 | Multiplicador de velocidad más allá de follow.leashDistance |
trail_back | 1.5 | Bloques detrás del dueño hacia los que apunta la mascota |
stuck_ticks | 60 | Ticks 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
speed | 0.06 | Consulta Velocidades |
drift_ticks | 160 | Máximo de ticks que dura un desplazamiento |
stuck_ticks | 20 | Ticks sin moverse antes de que un desplazamiento se abandone |
rest_ticks | 60 | Ticks que descansa la mascota tras un desplazamiento |
rest_random_ticks | 80 | Añ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.
| Ajuste | Por defecto | Significado |
|---|---|---|
speed | 0.03 | Consulta Velocidades |
bob_ticks | 30 | Ticks entre balanceos |
correct_above | 1.5 | Bloques 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
speed | 0.15 | Consulta Velocidades |
walk_ticks | 120 | Máximo de ticks que dura un paseo |
stuck_ticks | 20 | Ticks sin moverse antes de que un paseo se abandone |
rest_ticks | 80 | Ticks que descansa la mascota tras un paseo |
rest_random_ticks | 120 | Añ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.
| Ajuste | Por defecto | Significado |
|---|---|---|
range | 8 | Bloques dentro de los cuales mira a un jugador |
look_ticks | 40 | Máximo de ticks que dura una mirada |
rest_ticks | 100 | Ticks entre miradas |
rest_random_ticks | 100 | Añ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.
| Ajuste | Por defecto | Significado |
|---|---|---|
speed | 0.15 | Consulta Velocidades |
min_depth / max_depth | 0.5 / 3 | Bloques bajo la superficie, de 0 a 16 |
swim_ticks | 120 | Máximo de ticks que dura un nado |
stuck_ticks | 20 | Ticks sin moverse antes de que un nado se abandone |
rest_ticks | 40 | Ticks que descansa la mascota tras un nado |
rest_random_ticks | 60 | Añ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.
| Ajuste | Por defecto | Significado |
|---|---|---|
radius | 12 | Bloques en los que buscar una hoguera, de 1 a 32 |
height | 2.5 | Altura en bloques sobre la hoguera a la que la mascota la rodea |
ring | 0.8 | Radio del círculo |
night_only | true | Solo entre el anochecer y el amanecer |
wild / pets | true / true | Si 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_seconds | 5 | Segundos entre búsquedas de una hoguera. Al menos 1 |
speed | 0.06 | Consulta 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
height | 0.3 | Altura en bloques sobre las hojas o el suelo a la que descansa, de 0 a 8 |
search_radius | 2 | Bloques hacia los lados en los que buscar hojas, de 0 a 4 |
wild / pets | true / true | Si se posan las mascotas salvajes y las mascotas con dueño |
speed | 0.06 | Velocidad mientras está a más de un bloque de la percha. Consulta Velocidades |
settle_speed | 0.03 | Velocidad 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
scale_multiplier | 1.25 | Tamaño bajo la lluvia, relativo a su tamaño normal, de 0.1 a 16 |
scale_seconds | 3 | Segundos para hincharse o encogerse |
drift_frequency | 2.5 | Cuá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 |
rise | 1 | Cuántos bloques más alto se desplaza |
speed_multiplier | 1.4 | Cuántas veces más rápido se desplaza |
speed | 0.06 | Velocidad de desplazamiento antes de speed_multiplier. Consulta Velocidades |
drift_ticks | 120 | Máximo de ticks que dura un desplazamiento |
stuck_ticks | 20 | Ticks sin moverse antes de que un desplazamiento se abandone |
rest_ticks / rest_random_ticks | 60 / 80 | El 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
night_only | true | Con false brilla de día y de noche |
light | 15 | Nivel de luz, de 0 a 15 |
lantern_bone | lantern | Un modelo con un hueso de este nombre repite animation mientras brilla |
animation | glow | La 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
wild / pets | true / true | Si las mascotas salvajes pican a jugadores y las mascotas con dueño pican a mobs hostiles |
effect | SLOWNESS | Efecto de poción, por nombre. NONE para ningún efecto |
duration_ticks | 60 | Duración del efecto en ticks, de 1 a 6000 |
amplifier | 0 | Nivel del efecto; 0 es el nivel I |
damage | 0 | Daño por picadura, en medios corazones |
cooldown_seconds | 3 | Segundos antes de que esta mascota pueda picar de nuevo a la misma víctima |
reach | 0.5 | Bloques 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
chance | 0.1 | Probabilidad por intervalo de que el cultivo crezca, de 0 a 1 |
interval_seconds | 5 | Segundos entre intentos. Al menos 1; se comprueba una vez por segundo, así que una fracción espera al siguiente segundo entero |
depth | 4 | Bloques 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.
| Ajuste | Por defecto | Significado |
|---|---|---|
effect | NIGHT_VISION | Efecto de poción, por nombre |
amplifier | 0 | Nivel del efecto; 0 es el nivel I |
range | 16 | Bloques 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 antigua | Módulo | Ajustes renombrados |
|---|---|---|
campfire | campfire | nightOnly a night_only, soulVariants a soul_variants, searchSeconds a search_seconds |
rainBloom | rain_bloom | scaleMultiplier a scale_multiplier, scaleSeconds a scale_seconds, driftFrequency a drift_frequency, speedMultiplier a speed_multiplier |
glow | night_glow | nightOnly a night_only, lanternBone a lantern_bone |
sting | sting | durationTicks a duration_ticks, cooldownSeconds a cooldown_seconds |
dayPerch | day_perch | searchRadius a search_radius |
drizzle | crop_drizzle | intervalSeconds 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:
orientationdefine cómo se inclina el modelo al desplazarse.UPRIGHT(el valor predeterminado) solo mira hacia donde va.TOP_FIRSTavanza 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_FIRSTconviene 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.centerOnBodydibuja 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. Estruepor defecto para las especiesFLYINGyAQUATICyfalsepara 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
| Clave | Por defecto | Significado |
|---|---|---|
isEnabled | true | false omite el archivo |
species | nombre del archivo | El 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 |
model | nombre del archivo | El modelo que lleva la mascota. La consola avisa cuando no está cargado, y la mascota no puede aparecer |
name | nombre del archivo | Nombre mostrado sobre la mascota y en los mensajes. Admite códigos de color con & |
body | ALLAY | El tipo de mob vanilla que lleva el modelo. Su tamaño es lo que bloquea el movimiento |
scale | 1 | Tamaño general, al menos 0.0625 |
health | 20 | Salud máxima del cuerpo, al menos 1 |
icon | GLOW_BERRIES | Objeto del icono del menú |
iconItemModel | vacío | Un 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
| Clave | Por defecto | Significado |
|---|---|---|
tamingFood | [] | Nombres de objetos que domestican a un adulto salvaje |
breedingFood | [] | Nombres de objetos que ponen en celo a un adulto con dueño |
tameChance | 0.333 | Probabilidad de que una alimentación domestique |
babyModel | vacío | Modelo que lleva mientras es una cría, a babyScale. Vacío usa el modelo de la variante |
babyScale | 0.5 | Tamaño de la cría relativo a scale |
babyGrowthMinutes | 20 | Minutos hasta que una cría es adulta |
breedingCooldownMinutes | 5 | Minutos antes de que los padres críen de nuevo |
loveSeconds | 30 | Cuá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.
| Clave | Por defecto | Significado |
|---|---|---|
follow.distance | 5 | follow_owner sigue cuando el dueño está más lejos que esto. Dentro de ese radio, la mascota está asentada y merodea libremente |
follow.leashDistance | 12 | Más allá de esta distancia follow_owner se apresura |
follow.teleportDistance | 24 | Más allá de esta distancia follow_owner teletransporta la mascota a su dueño |
follow.roamRadius | 5 | A qué distancia de su ancla llevan a la mascota drift, rain_bloom, wander y swim |
follow.speed | 1 | Multiplica la velocidad de todos los comportamientos incluidos excepto migrate, al menos 0.05 |
follow.stay | true | Si un clic derecho ordena a la mascota quedarse |
float.hoverHeight | 1.5 | Bloques sobre el suelo que mantiene una mascota voladora |
float.hoverVariance | 0.75 | Cuánto se aparta de esa altura |
locomotion | FLYING | Cómo se mueve el cuerpo: FLYING, GROUNDED, AQUATIC, AMPHIBIOUS o STATIONARY. También define los comportamientos predeterminados |
centerOnBody | true para FLYING y AQUATIC | Consulta Inclinación y centrado |
orientation.style | UPRIGHT | UPRIGHT, TOP_FIRST o FRONT_FIRST |
orientation.startSpeed | 0.6 | Bloques por segundo por debajo de los cuales el modelo se mantiene derecho |
orientation.fullSpeed | 4.0 | Bloques por segundo a los que se alinea por completo con su desplazamiento |
orientation.maxTilt | 180 | Inclinación máxima, en grados. 180 permite que un modelo TOP_FIRST se ponga boca abajo |
orientation.turnSpeed | 180 | Grados 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.
| Clave | Por defecto | Significado |
|---|---|---|
wildSpawn.enabled | true | Si la especie vive en estado salvaje |
wildSpawn.weight | 10 | Peso 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 / maxGroup | 1 / minGroup | Tamaño del grupo |
wildSpawn.placement | según locomotion | GROUND, 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 / maxLight | 0 / 15 | Nivel de luz que necesita el punto |
wildSpawn.cap | 4 | Má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.time | ANY | ANY, DAY o NIGHT, para las reposiciones |
wildSpawn.minY / maxY | -64 / 320 | Rango de altura |
Comportamientos y migración
| Clave | Por defecto | Significado |
|---|---|---|
behaviors | los valores predeterminados de la locomoción | Los módulos de comportamiento que ejecuta la especie, con sus ajustes. Consulta Comportamientos |
migration | ninguna | El 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.
| Clave | Por defecto | Significado |
|---|---|---|
mode | COSMETIC | COSMETIC o CREATURES. Consulta Modos de mascotas |
maxEquippedPets | 0 | Cuántas mascotas puede tener fuera un jugador a la vez. 0 significa sin límite |
petsInvulnerableToPlayers | true | Si las mascotas con dueño ignoran el daño de jugadores distintos de su dueño |
petsDiePermanently | false | Si una mascota que muere sale de la colección de su dueño |
wildGenerationChance | 0.01 | Probabilidad, de 0 a 0.9, de que un chunk nuevo reciba un grupo de mascotas salvajes, que se vuelve a tirar tras cada grupo |
wildSpawnIntervalTicks | 400 | Ticks entre pasadas de reposición |
wildSpawnChunkChance | 0.01 | Probabilidad de que una pasada de reposición pruebe un chunk concreto cerca de un jugador |
wildPetCapPerPlayer | 6 | Nú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.enabled | true | Si se ejecutan las migraciones nocturnas |
migrations.chancePerNight | 0.15 | Probabilidad, de 0 a 1, de que un jugador reciba una bandada en una noche dada |
migrations.minFlockSize / maxFlockSize | 8 / 14 | Tamaño de la bandada |
migrations.altitude | 28 | Bloques sobre el jugador o el suelo, lo que sea más alto |
migrations.speed | 0.15 | Bloques por tick (0.15 son 3 bloques por segundo) |
migrations.durationSeconds | 90 | Segundos desde que aparece la bandada hasta que se elimina |
migrations.viewDistance | 160 | Bloques desde los que los jugadores ven una bandada |
migrations.maxActiveFlocks | 3 | Má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.
| Clave | Por 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
| Comando | Permiso | Predeterminado | Propósito |
|---|---|---|---|
/fmm pets | freeminecraftmodels.pets | true | Abre tu menú de mascotas |
/fmm petadmin mode [creatures|cosmetic] | freeminecraftmodels.pets.admin | op | Muestra el modo de mascotas, o lo cambia y lo guarda en pets.yml |
/fmm petadmin list | freeminecraftmodels.pets.admin | op | Lista las especies cargadas con su archivo, modelo, cuerpo, comida de domesticación y comida de cría |
/fmm petadmin spawn <species> | freeminecraftmodels.pets.admin | op | Genera 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.admin | op | Añ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.admin | op | Enví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.