Aller au contenu principal

Familiers FreeMinecraftModels

FreeMinecraftModels peut transformer un modèle en espèce de familier. Les joueurs apprivoisent les familiers avec de la nourriture, les font se reproduire, les emmènent avec eux, leur ordonnent de rester sur place et les conservent dans une collection qu'ils ouvrent avec /fmm pets. Chaque espèce est définie par un fichier <species>.pet.yml placé à côté de son modèle : un pack de modèles installe, active et désactive donc ses familiers en même temps que ses modèles. Ce qu'un familier fait de lui-même, de suivre son propriétaire à tourner autour des feux de camp, provient des modules de comportement Lua que son fichier énumère. Les réglages de familiers valables pour tout le serveur se trouvent dans pets.yml.

Prérequis​

  • Un familier est un mob vanilla caché qui porte le modèle, piloté par l'IA Mind de MagmaCore. Cela nécessite la prise en charge NMS de FreeMinecraftModels pour la version du serveur, et Minecraft 1.21.4 ou plus récent. Sans elle, la console journalise au démarrage une ligne commençant par Pets are off:, et /fmm pets répond Pets are not available on this server.
  • FreeMinecraftModels ne fournit aucune espèce de familier. Les familiers n'existent qu'une fois qu'un pack de modèles ou vous-même avez ajouté un fichier .pet.yml.
  • Les joueurs ont besoin du resource pack généré, comme pour n'importe quel modèle.

Comment un familier est construit​

  • Le corps est le mob vanilla désigné par body dans le fichier du familier, un allay par défaut. Il est caché à l'intérieur du modèle, silencieux, et ne ramasse jamais d'objets. Sa santé maximale est la valeur health du fichier du familier.
  • Les clics atteignent le modèle que les joueurs voient, pas le corps, plus petit, qui se trouve à l'intérieur.
  • Les familiers ne ciblent jamais rien, et les mobs ne ciblent jamais les familiers.
  • Les dégâts de contact de FreeMinecraftModels sont désactivés pour les familiers. Un familier ne blesse quelque chose que par le module sting.
  • Un familier qui meurt ne lâche rien et ne donne aucune expérience.
  • Les corps des familiers ne sont jamais sauvegardés avec leur chunk. Les familiers possédés sont recréés à côté de leur propriétaire, et les familiers sauvages attendent dans data/wild_pets.yml (voir Familiers sauvages). Un corps de familier resté dans un chunk après un crash est supprimé au chargement du chunk.
  • Le modèle affiche au-dessus de lui le name de l'espèce, précédé de Baby pour les bébés.

Modes des familiers​

pets.yml propose deux modes :

ModeCe qui se passe
COSMETIC (par défaut)Seuls les familiers que les joueurs possèdent existent dans le monde, hormis les migrations nocturnes de passage. Rien d'autre n'apparaît à l'état sauvage et rien ne peut être apprivoisé. Les familiers possédés ne peuvent être blessés par rien
CREATURESLes espèces de familiers vivent aussi à l'état sauvage dans le monde, apparaissent comme les animaux de ferme vanilla, et les joueurs les apprivoisent en les nourrissant. Les familiers possédés peuvent être blessés, selon les règles de dégâts

Changez de mode avec le bouton Pets de la barre d'outils de /fmm setup, avec /fmm petadmin mode creatures ou /fmm petadmin mode cosmetic, ou en modifiant mode dans pets.yml puis en exécutant /fmm reload. Le bouton et la commande écrivent le nouveau mode dans pets.yml.

Passer en COSMETIC envoie les familiers sauvages encore en vie dans data/wild_pets.yml. Ils reviennent lorsque le serveur repasse en CREATURES. Les migrations nocturnes ont lieu dans les deux modes, mais seul CREATURES permet aux joueurs d'apprivoiser un migrateur.

En mode COSMETIC, les joueurs n'apprivoisent pas de familiers. /fmm petadmin give <species> ajoute un familier à la collection du joueur qui l'exécute. La reproduction fonctionne dans les deux modes.

Apprivoisement​

En mode CREATURES, un joueur apprivoise un adulte sauvage en faisant un clic droit dessus avec l'un des objets tamingFood de son espèce.

  • Chaque nourrissage consomme un objet, sauf en mode Créatif.
  • Chaque nourrissage apprivoise avec la probabilité tameChance, 1/3 par défaut, comme pour les loups et les chats. Un nourrissage raté affiche de la fumée et tameFailedMessage.
  • Un familier apprivoisé rejoint la collection du joueur et sort à côté de lui. Il garde la variante de couleur qu'il avait à l'état sauvage et joue une fois son animation interact.
  • Lorsque le joueur a déjà maxEquippedPets familiers dehors, le nouveau familier rentre dans la collection à la place.
  • Une espèce dont la liste tamingFood est vide ne peut pas être apprivoisée.

Une laisse fonctionne sur le corps d'un familier comme sur un mob vanilla.

Reproduction et bébés​

  • Lorsque le propriétaire fait un clic droit sur un familier adulte avec l'un de ses objets breedingFood, cela consomme un objet et met le familier en mode Amour pendant loveSeconds, 30 par défaut.
  • Deux adultes de la même espèce appartenant au même joueur, tous deux en mode Amour et distants de 8 blocs au plus, ont un bébé. Le bébé rejoint la collection du propriétaire et sort, sauf si le propriétaire a atteint maxEquippedPets.
  • Le bébé prend la variante de couleur de l'un des parents. Il porte babyModel lorsque l'espèce en définit un, sinon le modèle de sa variante, et sa taille vaut babyScale fois celle de l'adulte dans les deux cas.
  • Les deux parents attendent breedingCooldownMinutes, 5 par défaut, avant de pouvoir se reproduire de nouveau. Nourrir un parent pendant ce délai affiche breedingCooldownMessage.
  • Un bébé devient adulte babyGrowthMinutes après sa naissance, 20 par défaut. Le temps compte aussi lorsque le bébé est à la maison, et l'adulte apparaît la prochaine fois que le bébé sort.
  • Les bébés ne peuvent pas se reproduire, et ils ne jouent aucune animation d'attaque lorsqu'ils piquent.

Les parents jouent leur animation interact à la naissance d'un bébé.

Suivre, rester et se promener​

Avec les comportements fournis, un familier possédé qui est dehors reste près de son propriétaire. Les nombres ci-dessous sont les valeurs par défaut des modules follow_owner, stay, drift et hover et des clés follow et float de l'espèce :

  • Dès que le propriétaire est plus loin que follow.distance (5 blocs), le familier le suit, en visant 1,5 bloc derrière lui et, pour une espèce volante, à float.hoverHeight au-dessus de ses pieds. Un volant suit à 5 blocs par seconde avec follow.speed: 1, et à 8 blocs par seconde au-delà de follow.leashDistance (12). Il arrête de suivre à cet endroit, ou dès qu'il se trouve à moins de 3 blocs (0,6 fois la distance de suivi) de son propriétaire.
  • Au-delà de follow.teleportDistance (24), le familier se téléporte à côté de son propriétaire. Il se téléporte aussi après 3 secondes d'affilée sans arriver nulle part : aucun chemin vers le propriétaire, un chemin qui s'arrête avant lui à une clôture ou à un rivage, ou un mur sur la route d'un volant. Un rattrapage ne fait jamais que rapprocher un familier de son propriétaire, et ne place jamais un marcheur ou un nageur sur le bloc même de son propriétaire.
  • Dans la distance de suivi, un volant dérive vers des points aléatoires situés dans un rayon de follow.roamRadius (5) autour du propriétaire et oscille sur place entre deux dérives, en restant à float.hoverHeight au-dessus du sol, à float.hoverVariance près. Les espèces marcheuses errent et regardent de temps en temps un joueur proche ; les espèces nageuses nagent sous l'eau.
  • Lorsque le propriétaire fait un clic droit sur le familier avec autre chose que sa nourriture de reproduction ou une laisse, celui-ci reste où il est, comme un chien, avec un léger balancement. Le clic suivant du même genre lui dit de suivre de nouveau. Définissez follow.stay: false pour désactiver cela. Les clics d'autres joueurs sur un familier possédé ne font rien.

follow.speed multiplie la vitesse de chaque comportement fourni, sauf le vol de migration. Les corps volants sont pilotés directement. Les autres corps marchent ou nagent vers les mêmes points avec le pathfinding vanilla ; voir Vitesses. Les familiers qui ne nagent pas flottent au-dessus des surfaces d'eau et de lave au lieu de couler au fond.

Un familier sauvage se promène de la même façon autour de l'endroit où il est apparu.

Les familiers qui sont dehors quittent le monde lorsque leur propriétaire se déconnecte et ressortent à côté de lui à la connexion suivante. Un familier perdu à cause d'un déchargement de chunk, d'un changement de monde ou d'une longue téléportation revient à côté de son propriétaire en moins d'une seconde.

Le menu des familiers​

/fmm pets ouvre la collection du joueur sous forme de menu de coffre, intitulé menuTitle. Il affiche jusqu'à 54 familiers.

  • Chaque entrée affiche l'objet icon de l'espèce, avec son iconItemModel lorsque l'espèce en définit un. Les familiers qui sont dehors brillent.
  • Le lore indique l'espèce, la variante (lorsqu'elle diffère du modèle de l'espèce), l'âge et si le familier est avec le joueur.
  • Cliquer sur une entrée emmène le familier avec soi ou le renvoie chez lui. En emmener un de plus que maxEquippedPets est refusé avec maxEquippedMessage.
  • Un joueur sans familiers reçoit noPetsMessage au lieu du menu.

La collection est stockée sur le joueur, en JSON dans les données persistantes du joueur : elle suit donc le fichier de sauvegarde du joueur et ne nécessite aucune base de données. Un familier dont l'espèce n'est plus installée reste dans la collection avec une icône de barrière et ne sort pas.

Dégâts et mort​

FamilierDégâts
Possédé, mode COSMETICIgnore tous les dégâts
Possédé, mode CREATURESIgnore les dégâts de son propriétaire. Ignore les dégâts des autres joueurs tant que petsInvulnerableToPlayers vaut true (valeur par défaut). Les autres dégâts s'appliquent
SauvageSubit les dégâts comme n'importe quel mob

Un clic gauche sur un familier qui ne peut pas être blessé ne compte pas comme une attaque : le modèle ne clignote donc pas en rouge.

Lorsqu'un familier possédé meurt, il rentre à la maison et peut être ressorti depuis /fmm pets. Avec petsDiePermanently: true, il quitte la collection à la place. Un familier sauvage qui meurt a disparu.

Familiers sauvages​

Les familiers sauvages n'existent qu'en mode CREATURES. Ils vivent comme les animaux de ferme vanilla : la plupart arrivent avec le monde à mesure que les chunks se génèrent, ils restent où ils sont et ne disparaissent jamais.

Peuplement des nouveaux chunks​

Lorsqu'un chunk se génère, FreeMinecraftModels tire wildGenerationChance (0.01). En cas de succès, il place un groupe d'une espèce, choisie selon wildSpawn.weight parmi les espèces qui peuvent se tenir là, à la surface autour d'une colonne aléatoire. Le tirage se répète après chaque groupe. Les valeurs supérieures à 0.9 comptent comme 0.9, afin qu'un chunk ne se remplisse jamais indéfiniment. Les plafonds, les joueurs, l'heure du jour et la règle de jeu d'apparition des mobs ne limitent pas ce peuplement.

Renforts autour des joueurs​

Tous les wildSpawnIntervalTicks ticks (400, jamais moins de 20), une passe ajoute des familiers sauvages dans les chunks chargés situés à 8 chunks au plus de chaque joueur qui n'est pas en mode spectateur :

  • Chaque chunk est essayé avec la probabilité wildSpawnChunkChance (0.01).
  • Un emplacement doit se trouver à plus de 24 blocs du joueur le plus proche et du point d'apparition du monde, et à 128 blocs au plus de ce joueur.
  • Les renforts s'arrêtent dès que wildPetCapPerPlayer (6) familiers sauvages, toutes espèces confondues, se trouvent à 8 chunks au plus de chaque joueur proche de l'emplacement. Le wildSpawn.cap (4) de chaque espèce limite davantage cette espèce.
  • Les renforts respectent la règle de jeu d'apparition des mobs du monde et le wildSpawn.time de chaque espèce.

Les migrateurs ne comptent pas dans ces plafonds.

Où attendent les familiers sauvages​

Lorsque le chunk d'un familier sauvage se décharge ou cesse d'être actualisé, son espèce, sa variante, sa position et sa maison sont enregistrées dans plugins/FreeMinecraftModels/data/wild_pets.yml. Il revient lorsqu'un joueur se trouve à 8 chunks au plus de ce chunk une fois chargé. Le fichier est écrit à chaque sauvegarde des mondes, ainsi qu'à l'arrêt ou au rechargement de FreeMinecraftModels.

Les familiers sauvages d'une espèce qui n'est plus installée continuent d'attendre dans le fichier. Un familier sauvage vivant qu'un autre plugin supprime a disparu, comme s'il était mort.

Migrations nocturnes​

De temps en temps, une volée d'une espèce migratrice traverse le ciel nocturne au-dessus d'un joueur puis repart après la traversée. Une espèce migre lorsque sa locomotion est FLYING, que son fichier de familier comporte une section migration: et que ses comportements exécutent migrate, que les valeurs par défaut FLYING incluent. Lorsqu'une espèce a des variantes, chaque variante qu'un migrateur peut porter doit exécuter migrate. Une espèce dotée d'une section migration: qui ne remplit pas ces conditions ne lance jamais de volées, et journalise un avertissement au chargement, sauf si son migration.weight vaut 0 ou si son migration.enabled vaut false.

  • Le planificateur fait le point toutes les 5 secondes dans les mondes normaux (de type overworld) pendant la nuit. Chaque joueur obtient un tirage par nuit contre migrations.chancePerNight (0.15). Un tirage gagné choisit un moment dans le reste de la nuit, assez tôt pour que toute la traversée se termine avant l'aube.
  • À ce moment, la volée démarre si le joueur est à ciel ouvert, si aucune autre volée n'est à moins de migrations.viewDistance de lui, et si moins de migrations.maxActiveFlocks (3) volées sont en l'air. Sinon, elle réessaie jusqu'à la fin de la nuit.
  • Une volée compte de minFlockSize à maxFlockSize membres (8 à 14), vole à altitude blocs (28) au-dessus du plus haut du joueur et du sol sous lui, à speed blocs par tick (0.15), sur une trajectoire rectiligne qui passe au-dessus du joueur à la moitié de durationSeconds (90), ou plus tôt lorsque la distance de simulation du monde est inférieure à 12 chunks, puisque la volée démarre là où ses membres sont encore actualisés.
  • Les membres sont de simples familiers sauvages de l'espèce, avec leur modèle et leurs animations complets, à migration.scale fois la taille de l'espèce, pleinement éclairés, et visibles jusqu'à migrations.viewDistance (160) blocs. Les clients ont toujours besoin que les chunks situés sous la volée soient dans leur distance d'affichage.
  • En mode CREATURES, un joueur qui atteint un migrateur peut l'apprivoiser, ce qui le retire de la volée. À la fin de la traversée, les membres encore en vol sont supprimés.

/fmm petmigrate [species] envoie immédiatement une volée au-dessus de vous, quels que soient l'heure, le ciel ou les autres volées. Avec une espèce, elle démarre même lorsque cette espèce n'a pas de section migration:, mais ses membres ne suivent la route que s'ils exécutent migrate. Sans espèce, elle choisit une espèce migratrice selon migration.weight.

Section migration​

CléDéfautSignification
enabledtruefalse désactive les migrations de l'espèce et conserve les autres valeurs
modelvideUn modèle fixe pour chaque membre. Vide : choisi parmi les variantes de l'espèce, comme pour une apparition sauvage
scale1Taille d'un migrateur par rapport au scale de l'espèce
animationvideUne animation à jouer en boucle pendant le vol. Vide : joue les animations idle et walk du modèle
weight1Fréquence à laquelle cette espèce est choisie lorsque plusieurs migrent. 0 l'exclut du planning nocturne

Comportements​

Tout ce qu'un familier fait de lui-même provient de modules de comportement : des fichiers Lua dans plugins/FreeMinecraftModels/pet_behaviors/. FreeMinecraftModels en fournit 15 et écrit chacun dans ce dossier au démarrage et à chaque /fmm reload lorsqu'aucun fichier de ce nom n'y est présent. Un module fourni supprimé revient au chargement suivant. Un module déjà présent dans le dossier n'est jamais écrasé, modifié ou non : il conserve donc la version avec laquelle il a été écrit. Supprimez votre copie et rechargez pour obtenir celle que fournit votre version de FreeMinecraftModels.

Chaque familier exécute les modules que son fichier d'espèce énumère, avec les réglages de cette espèce. /fmm reload relit les modules et les fichiers de familiers et remet chaque familier sur ces versions. Pour modifier un module ou en écrire un, voir Modules de comportement des familiers.

La liste behaviors​

behaviors:
- migrate
- stay
- follow_owner
- campfire: { radius: 20, night_only: false }
- drift
- hover
- sting:
effect: POISON
damage: 1
  • Chaque entrée est un nom de module, qui est son nom de fichier sans .lua, ou le nom accompagné de réglages : en ligne sous la forme name: { setting: value }, ou sur les lignes suivantes, indentées de deux espaces par rapport au nom.
  • Un réglage que l'entrée omet conserve la valeur par défaut du module. Les valeurs par défaut sont énumérées sous Modules fournis et en haut de chaque fichier .lua.
  • Un familier n'exécute que ce que sa liste nomme. Omettez un module et l'espèce ne le fait jamais.
  • L'ordre de la liste ne détermine pas quel comportement s'exécute. C'est la priorité de chaque module qui le détermine, et un fichier de familier ne peut pas la changer : copiez le module et changez la priorité dans la copie. L'ordre ne compte que lorsque deux modules entrent en conflit : dans ce cas, le premier est conservé.
  • Un module listé deux fois s'exécute une seule fois, avec les réglages de la première entrée, et la console avertit.

Valeurs par défaut sans liste​

Un fichier d'espèce sans liste behaviors: exécute les valeurs par défaut de sa locomotion :

locomotionComportements par défaut
FLYINGmigrate, stay, follow_owner, drift, hover
GROUNDED, AMPHIBIOUSstay, follow_owner, wander, idle_look
AQUATICstay, follow_owner, swim
STATIONARYstay, follow_owner

Une liste remplace ces valeurs par défaut au lieu de s'y ajouter : une liste qui ajoute un module doit donc aussi nommer les valeurs par défaut qu'elle conserve. behaviors: [] n'exécute aucun module. Une valeur de behaviors qui n'est pas une liste est ignorée avec un avertissement, et l'espèce exécute ses valeurs par défaut.

Comportements des variantes​

Écrivez une variante sous forme de map pour donner aux familiers qui la portent davantage de modules ou d'autres réglages :

variants:
- firefly
- model: firefly_blue
weight: 0.5
behaviors:
- night_glow: { light: 10 }
- crop_drizzle
  • Une map de variante accepte model, weight (1 par défaut) et behaviors. Toute autre clé est ignorée avec un avertissement.
  • Un familier qui porte la variante exécute la liste de l'espèce, ou les valeurs par défaut de sa locomotion, plus les entrées de la variante. Un module que les deux listes nomment garde sa place dans la liste de l'espèce et prend les réglages de la variante par-dessus ceux de l'espèce. Les autres modules de la variante viennent après ceux de l'espèce.
  • Un bébé exécute la liste de sa variante, même lorsqu'il porte babyModel.

Valeurs des réglages​

Chaque réglage a le type de sa valeur par défaut : un nombre, true ou false, du texte, ou une liste de textes.

  • Une valeur dont le sens est clair est acceptée sous une autre forme : un nombre entre guillemets comme "8", "true" ou "false" quelle que soit la casse, et un seul mot pour une liste d'un élément.
  • Un réglage de type texte auquel on donne un nombre ou true/false le prend tel que YAML l'a lu : on et yes deviennent donc true. Mettez ces mots entre guillemets.
  • Écrivez une liste avec des crochets, comme [CAMPFIRE, SOUL_CAMPFIRE], ou un élément par ligne commençant par - . Un texte qui contient des virgules ou des espaces n'est pas lu comme une liste.
  • Un réglage que le module n'a pas, un réglage sans valeur, une liste avec une entrée vide ou une valeur du mauvais type journalise un avertissement qui nomme le fichier du familier, et la valeur par défaut est conservée. La créature se charge quand même.

Modules fournis​

ModulePrioritéTypeRôle
migrate1ComportementSuit une route de migration nocturne
stay5ComportementGarde l'endroit où on lui a dit de rester
follow_owner10ComportementSuit le rythme du propriétaire
campfire15ComportementTourne autour d'un feu de camp allumé la nuit
day_perch18ComportementSe repose sur des feuilles ou sur le sol le jour
rain_bloom19Comportement et capteurGonfle, et dérive davantage, sous la pluie
drift20ComportementVole vers des points aléatoires autour de son ancre
wander20ComportementMarche vers des endroits où se tenir autour de son ancre
swim20ComportementNage vers des endroits sous l'eau autour de son ancre
hover30ComportementOscille sur place entre deux dérives
idle_look30ComportementRegarde de temps en temps un joueur proche
night_glowCapteurÉclaire le modèle la nuit
stingCapteursPique les joueurs ou les mobs hostiles qui le touchent
crop_drizzleCapteurFait pousser les cultures au-dessus desquelles il flotte
owner_effectCapteurDonne un effet de potion à son propriétaire

Un comportement dont le numéro de priorité est plus bas prend la place d'un comportement en cours dont le numéro est plus élevé : suivre l'emporte donc sur les feux de camp, et les feux de camp sur la dérive. Les capteurs ne déplacent jamais le familier ; ils s'exécutent en parallèle du comportement en cours.

L'ancre d'un familier est ce autour de quoi il se promène : son propriétaire, ou, pour un familier sauvage, l'endroit où il est apparu. Un familier est libre de ses mouvements (settled) tant qu'on ne lui a pas ordonné de rester sur place et qu'il est sauvage ou à moins de follow.distance de son propriétaire.

Vitesses​

La vitesse que demande un module est son réglage speed multiplié par follow.speed. Un corps volant vole à ce nombre de blocs par tick, au plus 4 ; 0.05 correspond à un bloc par seconde. Un corps marcheur ou nageur s'y rend par la navigation vanilla à 4 fois ce nombre, comme multiplicateur de la vitesse de déplacement propre à son type de corps, sans jamais descendre sous un quart de celle-ci. Un speed de 0 immobilise un marcheur ou un nageur.

migrate​

Tant que le familier vole dans une migration nocturne, il suit la route de sa volée à la vitesse de la volée, avant tout autre comportement. Il s'arrête à la fin de la traversée ou lorsqu'un joueur apprivoise le familier. Une espèce dont les comportements ne l'exécutent pas ne lance jamais de volées. Aucun réglage.

stay​

Après le clic d'ordre de rester du propriétaire, le familier garde l'endroit avec un léger balancement. Chaque balancement se fait dans le milieu propre au corps : dans l'air pour un volant, sur le sol pour un marcheur, sous l'eau pour un nageur, qui conserve la profondeur à laquelle on lui a dit de rester.

RéglageDéfautSignification
speed0.03Voir Vitesses
bob_ticks40Ticks entre deux balancements
bob_radius0.5Blocs dont un balancement peut l'éloigner de l'endroit

Tous les comportements de déplacement fournis attendent tant qu'un familier a reçu l'ordre de rester ; un familier sans stay dans sa liste ne se balance donc pas.

follow_owner​

Garde un familier possédé auprès de son propriétaire, comme décrit dans Suivre, rester et se promener. Il lit follow.distance, follow.leashDistance, follow.teleportDistance et float.hoverHeight dans le fichier de l'espèce.

Une téléportation de rattrapage atterrit à 2 blocs au plus du propriétaire, dans le milieu propre du familier : sa plage de flottement pour un volant, un sol où se tenir pour un marcheur, de l'eau jusqu'à 6 blocs de distance pour un nageur, et le sol ou à défaut l'eau pour un corps amphibie. Elle ne dépose un familier qu'à au moins un bloc plus près de son propriétaire qu'il ne l'est déjà, et un marcheur ou un nageur qu'à au moins un bloc de lui. Quand rien ne convient, elle réessaie après un nouveau délai stuck_ticks.

RéglageDéfautSignification
speed0.25Vitesse de suivi. Voir Vitesses. À 0, le familier ne suit le rythme que par des téléportations de rattrapage
leash_urgency1.6Multiplicateur de vitesse au-delà de follow.leashDistance
trail_back1.5Blocs derrière le propriétaire que le familier vise
stuck_ticks60Ticks d'affilée sans arriver nulle part avant que le familier ne se téléporte à côté de son propriétaire

drift​

Pour les espèces volantes. Le familier vole vers un point aléatoire situé dans un rayon de follow.roamRadius autour de son ancre, dans sa plage de flottement (float.hoverHeight au-dessus du sol, à float.hoverVariance près), puis se repose.

RéglageDéfautSignification
speed0.06Voir Vitesses
drift_ticks160Nombre maximal de ticks d'une dérive
stuck_ticks20Ticks sans bouger avant qu'une dérive abandonne
rest_ticks60Ticks de repos du familier après une dérive
rest_random_ticks80Ajoute de 0 à cette valeur moins 1 tick de repos aléatoire

hover​

Pour les espèces volantes. Tant qu'aucun autre comportement de déplacement ne s'exécute, le familier oscille sur place : tous les bob_ticks, il monte ou descend d'au plus la moitié de float.hoverVariance. Un familier qui s'écarte de plus de correct_above blocs de float.hoverHeight au-dessus du sol revient directement à cette hauteur. Il cherche le sol jusqu'à 12 blocs plus bas.

RéglageDéfautSignification
speed0.03Voir Vitesses
bob_ticks30Ticks entre deux oscillations
correct_above1.5Blocs d'écart avec sa hauteur de flottement à partir desquels il revient directement

wander​

Pour les espèces marcheuses. Le familier marche vers un endroit où se tenir près de son ancre, se repose, puis repart. Un familier sauvage choisit des endroits situés dans un rayon de follow.roamRadius autour de l'endroit où il est apparu. Un familier possédé choisit des endroits situés dans un rayon de follow.roamRadius autour de son propriétaire et pas plus loin que 0,8 fois follow.distance, afin que le suivi ne démarre pas dès son arrivée. Une marche se termine à moins de 1,5 bloc de son but, après walk_ticks, ou après stuck_ticks sans bouger. Au-dessus de l'eau ou d'une longue chute, où rien ne convient, il attend la fin d'un repos et cherche de nouveau.

RéglageDéfautSignification
speed0.15Voir Vitesses
walk_ticks120Nombre maximal de ticks d'une marche
stuck_ticks20Ticks sans bouger avant qu'une marche abandonne
rest_ticks80Ticks de repos du familier après une marche
rest_random_ticks120Ajoute de 0 à cette valeur moins 1 tick de repos aléatoire

idle_look​

De temps en temps, le familier regarde le joueur le plus proche situé à range blocs ou moins pendant look_ticks, puis se repose. Il ne prend que le regard : tout comportement qui déplace le familier reprend donc la main, et il ne regarde jamais les joueurs en mode Créatif ou Spectateur. Un range de 0 le désactive. Un corps STATIONARY ne tourne jamais son regard : ses valeurs par défaut omettent donc ce module.

RéglageDéfautSignification
range8Blocs dans lesquels il regarde un joueur
look_ticks40Nombre maximal de ticks d'un regard
rest_ticks100Ticks entre deux regards
rest_random_ticks100Ajoute de 0 à cette valeur moins 1 tick entre deux regards

swim​

Pour les espèces nageuses. Le familier nage vers un endroit situé dans l'eau près de son ancre, entre min_depth et max_depth blocs sous la surface, se repose, puis repart. Il choisit des endroits autour de son ancre comme le fait wander, et uniquement dans l'eau. Un nageur échoué sur la terre y attend ; un nageur possédé retourne dans l'eau dès que son propriétaire s'éloigne et que le rattrapage de follow_owner trouve de l'eau à côté de lui.

RéglageDéfautSignification
speed0.15Voir Vitesses
min_depth / max_depth0.5 / 3Blocs sous la surface, de 0 à 16
swim_ticks120Nombre maximal de ticks d'une nage
stuck_ticks20Ticks sans bouger avant qu'une nage abandonne
rest_ticks40Ticks de repos du familier après une nage
rest_random_ticks60Ajoute de 0 à cette valeur moins 1 tick de repos aléatoire

campfire​

La nuit, les familiers libres de leurs mouvements dérivent vers le feu de camp allumé le plus proche situé à radius blocs ou moins et tournent lentement dans sa fumée. Un familier possédé ne prend qu'un feu assez proche de son propriétaire pour que tourner autour ne déclenche jamais le suivi. Le familier vérifie une fois par seconde que le feu est toujours allumé.

RéglageDéfautSignification
radius12Blocs dans lesquels chercher un feu, de 1 à 32
height2.5Hauteur, en blocs, au-dessus du feu à laquelle le familier tourne
ring0.8Rayon du cercle
night_onlytrueSeulement entre le crépuscule et l'aube
wild / petstrue / trueSi les familiers sauvages et les familiers possédés se rassemblent
blocks[CAMPFIRE, SOUL_CAMPFIRE]Feux qui comptent. Seuls ces deux-là fonctionnent
soul_variants[]Modèles de variantes attirés uniquement par les feux de camp des âmes. Toutes les autres variantes ne prennent alors que les feux de camp ordinaires. Vide : toute variante prend n'importe quel feu listé
search_seconds5Secondes entre deux recherches d'un feu. Au moins 1
speed0.06Voir Vitesses

day_perch​

Le jour, un familier libre de ses mouvements descend sur les feuilles les plus proches sous lui, ou sur le sol juste en dessous, et s'y repose avec un léger balancement. Il décolle au crépuscule, lorsque la pluie tombe sur lui et lorsque son propriétaire sort de la portée de suivi. Un familier possédé ne prend un perchoir qu'à moins de follow.distance de son propriétaire. Lorsqu'il ne trouve rien où se poser, comme de l'eau ou une longue chute, il cherche de nouveau 5 secondes plus tard.

RéglageDéfautSignification
height0.3Blocs au-dessus des feuilles ou du sol où il se repose, de 0 à 8
search_radius2Blocs sur le côté où chercher des feuilles, de 0 à 4
wild / petstrue / trueSi les familiers sauvages et les familiers possédés se perchent
speed0.06Vitesse tant qu'il est à plus d'un bloc du perchoir. Voir Vitesses
settle_speed0.03Vitesse sur le dernier bloc

rain_bloom​

Tant que la pluie tombe sur le familier, il gonfle et dérive plus souvent autour de son ancre, plus haut et plus vite. Il reprend sa taille lorsque la pluie s'arrête ou qu'il trouve un abri. La pluie tombe sur un familier pendant un orage, à ciel ouvert, dans un biome assez chaud et humide pour qu'il pleuve. Le gonflement est un capteur qui s'exécute tous les 4 ticks ; la dérive est un comportement de priorité 19, il prend donc la place de drift sous la pluie.

RéglageDéfautSignification
scale_multiplier1.25Taille sous la pluie, par rapport à sa taille normale, de 0.1 à 16
scale_seconds3Secondes pour gonfler ou se dégonfler
drift_frequency2.5Combien de fois ses repos entre deux dérives sont plus courts que ne le donnent rest_ticks et rest_random_ticks, sans jamais descendre sous 10 ticks
rise1Blocs de hauteur supplémentaires de sa dérive
speed_multiplier1.4Combien de fois plus vite il dérive
speed0.06Vitesse de dérive avant speed_multiplier. Voir Vitesses
drift_ticks120Nombre maximal de ticks d'une dérive
stuck_ticks20Ticks sans bouger avant qu'une dérive abandonne
rest_ticks / rest_random_ticks60 / 80Le repos que drift_frequency raccourcit

night_glow​

Les os d'affichage du modèle sont éclairés à un niveau de lumière fixe la nuit, quelle que soit la lumière à l'endroit où se trouve le familier. Les mondes sans soleil comptent comme la nuit. Le capteur vérifie toutes les 2 secondes. Joueurs Java uniquement : les joueurs Bedrock voient le modèle à la lumière du monde.

RéglageDéfautSignification
night_onlytruefalse fait briller jour et nuit
light15Niveau de lumière, de 0 à 15
lantern_bonelanternUn modèle doté d'un os de ce nom joue animation en boucle tant qu'il brille
animationglowL'animation de l'os lanterne

sting​

Un familier sauvage pique les joueurs qui touchent son modèle, sauf en mode Créatif ou Spectateur. Un familier possédé pique les mobs hostiles qui s'approchent à reach blocs ou moins de la hitbox de son modèle, et jamais un joueur. Les adultes jouent leur animation attack en piquant. Les contacts sont vérifiés tous les 4 ticks et les mobs proches tous les 10.

RéglageDéfautSignification
wild / petstrue / trueSi les familiers sauvages piquent les joueurs et si les familiers possédés piquent les mobs hostiles
effectSLOWNESSEffet de potion, par nom. NONE pour aucun effet
duration_ticks60Durée de l'effet en ticks, de 1 à 6000
amplifier0Niveau de l'effet ; 0 correspond au niveau I
damage0Dégâts par piqûre, en demi-cœurs
cooldown_seconds3Secondes avant que ce familier puisse piquer de nouveau la même victime
reach0.5Blocs de distance avec la hitbox du modèle auxquels un familier possédé pique encore un mob, de 0 à 4. Les piqûres sauvages exigent que le joueur touche le modèle

Un nom d'effect qui n'existe pas journalise un avertissement une fois par espèce et par nom, et la piqûre n'applique aucun effet.

crop_drizzle​

Tant que le familier plane immobile au-dessus d'une culture, une légère pluie tombe sur elle, et toutes les interval_seconds la culture peut gagner un stade de croissance. Les cultures sont les blocs de la balise crops de Minecraft, la verrue du Nether et les buissons de baies sucrées. Le familier regarde droit vers le bas, à travers l'air uniquement. La croissance est émise sous forme de BlockGrowEvent : les plugins de protection et d'agriculture peuvent donc la refuser. Familiers sauvages et possédés confondus.

RéglageDéfautSignification
chance0.1Probabilité par intervalle que la culture pousse, de 0 à 1
interval_seconds5Secondes entre deux essais. Au moins 1 ; la vérification a lieu une fois par seconde, une fraction attend donc la seconde entière suivante
depth4Blocs sous le familier où chercher la culture, de 1 à 8

owner_effect​

Tant qu'un familier possédé est dehors et à range blocs ou moins de son propriétaire, celui-ci a un effet de potion, comme la vision nocturne ou la respiration aquatique. L'effet dure 15 secondes et est renouvelé chaque seconde : il ne clignote donc jamais, et il disparaît dans les 15 secondes qui suivent le retour du familier à la maison ou la sortie du propriétaire de sa portée. Il affiche son icône mais aucune particule. Si le propriétaire a déjà cet effet, au moins aussi puissant et pour au moins aussi longtemps, par exemple grâce à une potion qu'il a bue, le familier n'y touche pas.

Il convient aux effets constants : vision nocturne, respiration aquatique, vitesse, célérité, résistance au feu. Les effets qui agissent selon leur durée restante, comme la régénération, le poison et le wither, se comportent mal lorsqu'ils sont renouvelés chaque seconde.

RéglageDéfautSignification
effectNIGHT_VISIONEffet de potion, par nom
amplifier0Niveau de l'effet ; 0 correspond au niveau I
range16Blocs depuis le familier

Anciennes sections d'interaction avec le monde​

Les fichiers de familiers écrits avant les modules de comportement peuvent comporter des sections campfire:, rainBloom:, glow:, sting:, dayPerch: ou drizzle:. Elles ne font plus rien, et chacune journalise un avertissement au chargement du fichier :

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).

Une simple ligne glow: true reçoit le même avertissement, formulé the glow setting. Lorsque la section était désactivée (enabled: false, ou glow: défini à autre chose que true), ou que le fichier liste déjà son module, l'avertissement vous demande seulement de la retirer.

Pour conserver une interaction, listez son module et renommez ses réglages :

Ancienne sectionModuleRéglages renommés
campfirecampfirenightOnly en night_only, soulVariants en soul_variants, searchSeconds en search_seconds
rainBloomrain_bloomscaleMultiplier en scale_multiplier, scaleSeconds en scale_seconds, driftFrequency en drift_frequency, speedMultiplier en speed_multiplier
glownight_glownightOnly en night_only, lanternBone en lantern_bone
stingstingdurationTicks en duration_ticks, cooldownSeconds en cooldown_seconds
dayPerchday_perchsearchRadius en search_radius
drizzlecrop_drizzleintervalSeconds en interval_seconds

Les autres réglages gardent leur nom. Supprimez enabled : omettre un module de la liste est la façon de le désactiver. Un fichier sans liste behaviors: n'exécute que les valeurs par défaut de sa locomotion : listez donc aussi celles-ci. Pour une espèce volante qui a conservé son feu de camp et sa lueur :

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

migration: reste une section du fichier de familier ; voir Section migration.

Inclinaison et centrage​

Les créatures volantes et nageuses ont généralement meilleure allure lorsqu'elles s'inclinent selon leur déplacement et tournent autour de leur propre milieu :

  • orientation définit comment le modèle s'incline en se déplaçant. UPRIGHT (valeur par défaut) ne fait que faire face à sa direction. TOP_FIRST mène avec son haut, comme une méduse : il s'incline dans son déplacement, se couche sur le côté en croisière et se retourne pour plonger. FRONT_FIRST convient aux oiseaux et aux poissons : il tangue dans les montées et les plongées et s'incline dans les virages. Chaque style se redresse lorsque le familier s'arrête. Voir Orientation de déplacement.
  • centerOnBody dessine le modèle avec le milieu de ses cubes sur le milieu de son corps caché, au lieu de le poser sur les pieds du corps. Le modèle se déplace, tourne et s'incline alors autour du corps, et sa boîte de clic se trouve sur ce que les joueurs voient. Il vaut true par défaut pour les espèces FLYING et AQUATIC et false pour les autres. Voir Centrer un modèle sur son corps.

Référence du fichier d'espèce​

Placez <species>.pet.yml n'importe où sous plugins/FreeMinecraftModels/models/, en général à côté du modèle qu'il utilise. FreeMinecraftModels lit chaque fichier dont le nom se termine par .pet.yml au démarrage et à chaque /fmm reload. Le nom du fichier avant .pet.yml est l'ID d'espèce par défaut.

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

Identité et apparence​

CléDéfautSignification
isEnabledtruefalse ignore le fichier
speciesnom du fichierL'ID d'espèce, en minuscules. Les familiers enregistrés des joueurs et /fmm petadmin l'utilisent : gardez-le donc stable dès que des joueurs possèdent des familiers. Lorsque deux fichiers définissent le même ID, le premier par chemin est conservé et la console avertit
modelnom du fichierLe modèle que porte le familier. La console avertit lorsqu'il n'est pas chargé, et le familier ne peut pas apparaître
namenom du fichierNom affiché au-dessus du familier et dans les messages. Prend en charge les codes couleur &
bodyALLAYLe type de mob vanilla qui porte le modèle. Sa taille est ce qui bloque le déplacement
scale1Taille globale, au moins 0.0625
health20Santé maximale du corps, au moins 1
iconGLOW_BERRIESObjet d'icône du menu
iconItemModelvideUn modèle d'objet (namespace:path) issu d'un resource pack pour l'icône du menu
variants[]Variantes de couleur, sous la forme model, model:weight, ou une map avec model, weight et behaviors (voir Comportements des variantes). Une apparition sauvage en choisit une selon le poids, un familier apprivoisé garde la sienne et un bébé prend celle d'un parent. Vide : seul model est utilisé. Les variantes devraient partager les mêmes os et animations

Apprivoisement et reproduction​

CléDéfautSignification
tamingFood[]Noms d'objets qui apprivoisent un adulte sauvage
breedingFood[]Noms d'objets qui mettent un adulte possédé en mode Amour
tameChance0.333Probabilité qu'un nourrissage apprivoise
babyModelvideModèle porté tant qu'il est bébé, à babyScale. Vide : utilise le modèle de la variante
babyScale0.5Taille du bébé par rapport à scale
babyGrowthMinutes20Minutes avant qu'un bébé devienne adulte
breedingCooldownMinutes5Minutes avant que les parents se reproduisent de nouveau
loveSeconds30Durée pendant laquelle un adulte nourri attend un partenaire

Déplacement​

Les valeurs follow et float sont lues par les modules de comportement fournis, comme indiqué.

CléDéfautSignification
follow.distance5follow_owner suit dès que le propriétaire est plus loin que cette valeur. En deçà, le familier est libre de ses mouvements et se promène à sa guise
follow.leashDistance12Au-delà, follow_owner se dépêche
follow.teleportDistance24Au-delà, follow_owner téléporte le familier auprès de son propriétaire
follow.roamRadius5Distance maximale à son ancre à laquelle drift, rain_bloom, wander et swim emmènent le familier
follow.speed1Multiplie la vitesse de chaque comportement fourni sauf migrate, au moins 0.05
follow.staytrueSi un clic droit ordonne au familier de rester
float.hoverHeight1.5Blocs au-dessus du sol que garde un familier volant
float.hoverVariance0.75Écart maximal à cette hauteur
locomotionFLYINGComment le corps se déplace : FLYING, GROUNDED, AQUATIC, AMPHIBIOUS ou STATIONARY. Elle détermine aussi les comportements par défaut
centerOnBodytrue pour FLYING et AQUATICVoir Inclinaison et centrage
orientation.styleUPRIGHTUPRIGHT, TOP_FIRST ou FRONT_FIRST
orientation.startSpeed0.6Blocs par seconde en dessous desquels le modèle reste droit
orientation.fullSpeed4.0Blocs par seconde auxquels il s'aligne complètement sur son déplacement
orientation.maxTilt180Inclinaison maximale, en degrés. 180 permet à un modèle TOP_FIRST de se retourner
orientation.turnSpeed180Degrés par seconde dont son inclinaison peut varier

Apparition sauvage​

Ces clés ne s'appliquent qu'en mode CREATURES. Les listes vides autorisent tout.

CléDéfautSignification
wildSpawn.enabledtrueSi l'espèce vit à l'état sauvage
wildSpawn.weight10Poids face aux autres espèces qui peuvent apparaître au même endroit. 0 n'apparaît jamais. Un fichier avec l'ancienne clé chance (0 à 1) et sans weight utilise chance fois 10
wildSpawn.minGroup / maxGroup1 / minGroupTaille du groupe
wildSpawn.placementselon locomotionGROUND, WATER, WATER_SURFACE ou AIR. FLYING prend AIR par défaut, AQUATIC prend WATER, les autres GROUND. AIR exige un bloc supérieur solide et sec et WATER_SURFACE un bloc supérieur d'eau, chacun avec deux blocs libres au-dessus
wildSpawn.minLight / maxLight0 / 15Niveau de lumière dont l'endroit a besoin
wildSpawn.cap4Nombre maximal de familiers sauvages de cette espèce à 8 chunks au plus d'un joueur, pour les renforts
wildSpawn.worlds[]Noms de mondes
wildSpawn.environments[]NORMAL, NETHER ou THE_END
wildSpawn.biomes[]Clés de biomes comme minecraft:plains
wildSpawn.timeANYANY, DAY ou NIGHT, pour les renforts
wildSpawn.minY / maxY-64 / 320Plage de hauteur

Comportements et migration​

CléDéfautSignification
behaviorsles valeurs par défaut de la locomotionLes modules de comportement que l'espèce exécute, avec leurs réglages. Voir Comportements
migrationaucuneL'apparence de l'espèce lors des migrations nocturnes. Voir Section migration

Les anciennes sections campfire, rainBloom, glow, sting, dayPerch et drizzle sont ignorées avec un avertissement. Voir Anciennes sections d'interaction avec le monde.

Référence de pets.yml​

plugins/FreeMinecraftModels/pets.yml est généré au premier démarrage. /fmm reload applique les changements.

CléDéfautSignification
modeCOSMETICCOSMETIC ou CREATURES. Voir Modes des familiers
maxEquippedPets0Combien de familiers un joueur peut avoir dehors en même temps. 0 signifie aucune limite
petsInvulnerableToPlayerstrueSi les familiers possédés ignorent les dégâts des joueurs autres que leur propriétaire
petsDiePermanentlyfalseSi un familier qui meurt quitte la collection de son propriétaire
wildGenerationChance0.01Probabilité, de 0 à 0.9, qu'un nouveau chunk reçoive un groupe de familiers sauvages, tirée de nouveau après chaque groupe
wildSpawnIntervalTicks400Ticks entre deux passes de renfort
wildSpawnChunkChance0.01Probabilité qu'une passe de renfort essaie un chunk donné près d'un joueur
wildPetCapPerPlayer6Familiers sauvages, toutes espèces confondues, à moins de 8 chunks d'un joueur à partir desquels les renforts s'arrêtent
migrations.enabledtrueSi les migrations nocturnes ont lieu
migrations.chancePerNight0.15Probabilité, de 0 à 1, qu'un joueur reçoive une volée une nuit donnée
migrations.minFlockSize / maxFlockSize8 / 14Taille de la volée
migrations.altitude28Blocs au-dessus du joueur ou du sol, selon le plus haut
migrations.speed0.15Blocs par tick (0.15 correspond à 3 blocs par seconde)
migrations.durationSeconds90Secondes entre l'apparition de la volée et sa suppression
migrations.viewDistance160Distance en blocs jusqu'à laquelle les joueurs voient une volée
migrations.maxActiveFlocks3Nombre maximal de volées en l'air simultanément sur tout le serveur
migrations.species[]ID d'espèces qui peuvent migrer. Vide : toutes les espèces qui le peuvent (voir Migrations nocturnes)

Les messages prennent en charge les codes couleur &. $pet est le nom du familier, et $amount dans maxEquippedMessage est la limite.

CléDéfaut
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!

Commandes et permissions​

CommandePermissionDéfautRôle
/fmm petsfreeminecraftmodels.petstrueOuvre votre menu des familiers
/fmm petadmin mode [creatures|cosmetic]freeminecraftmodels.pets.adminopAffiche le mode des familiers, ou le change et l'enregistre dans pets.yml
/fmm petadmin listfreeminecraftmodels.pets.adminopListe les espèces chargées avec leur fichier, leur modèle, leur corps, leur nourriture d'apprivoisement et leur nourriture de reproduction
/fmm petadmin spawn <species>freeminecraftmodels.pets.adminopFait apparaître un familier sauvage au-dessus du bloc que vous regardez, jusqu'à 12 blocs de distance. Mode CREATURES uniquement
/fmm petadmin give <species>freeminecraftmodels.pets.adminopAjoute un adulte de l'espèce à votre propre collection et le fait sortir, sauf si vous avez atteint maxEquippedPets
/fmm petmigrate [species]freeminecraftmodels.pets.adminopEnvoie dès maintenant une volée de migration au-dessus de vous. Voir Migrations nocturnes

Les trois commandes sont réservées aux joueurs. freeminecraftmodels.pets contrôle le menu des familiers, et tous les joueurs l'ont par défaut. freeminecraftmodels.pets.admin contrôle /fmm petadmin et /fmm petmigrate, est accordée par défaut aux opérateurs et est incluse dans freeminecraftmodels.*. Apprivoiser, faire se reproduire et ordonner à un familier de rester ne nécessitent aucune permission.

Dépannage​

Cherchez pet behavior, pet_behaviors et .pet.yml dans la console pour trouver les avertissements concernant les modules de comportement. Chacun nomme le fichier de familier ou de module à corriger.

La console affiche Pets are off. La version du serveur n'a pas de prise en charge NMS de FreeMinecraftModels, ou elle est antérieure à Minecraft 1.21.4.

La console affiche Pet <species> (<file>) names model <model>, which is not loaded. La clé model désigne un ID de modèle qui ne s'est pas chargé. Une variante dont le modèle ne s'est pas chargé n'écrit rien dans les journaux ; les familiers de cette variante portent à la place le model de l'espèce. Vérifiez le nom de fichier du modèle, qui est son ID, et le journal de rechargement pour ce modèle.

La console affiche Could not spawn pet <species>: <cause>. Un familier de cette espèce n'a pas pu entrer dans le monde, pour la raison indiquée, comme un modèle non chargé, des comportements qui n'ont pas pu démarrer ou un corps qui n'a pas pu apparaître. Chaque espèce et chaque cause sont journalisées une seule fois jusqu'au prochain rechargement, quel que soit le nombre de nouvelles tentatives d'apparition.

La console affiche the <section> section is ignored now that world interactions are behavior modules. Le fichier du familier contient encore une ancienne section d'interaction avec le monde, ou une ligne glow: true, que l'avertissement appelle the glow setting. Voir Anciennes sections d'interaction avec le monde.

La console affiche there is no pet behavior <name> in pet_behaviors/. La liste behaviors nomme un module qui n'a pas de fichier. Vérifiez l'orthographe ; l'avertissement suggère le nom le plus proche lorsqu'il y en a un. La créature se charge sans ce module.

La console affiche the pet behavior <name> failed to load. Le fichier du module contient une erreur. Un avertissement précédent nomme le fichier et, pour une erreur Lua, la ligne. Corrigez-la et exécutez /fmm reload, ou supprimez un module fourni endommagé pour que FreeMinecraftModels l'écrive de nouveau.

La console affiche the pet behavior <module> has no setting <setting>, ou <module>.<setting> must be .... Un réglage de la liste behaviors est mal orthographié ou n'a pas le bon type. L'avertissement liste les réglages du module ou le type attendu, et la valeur par défaut est conservée. Voir Valeurs des réglages.

La console affiche cannot run alongside the ones listed before it. Deux modules de la liste ne peuvent pas s'exécuter ensemble, généralement parce que tous deux déclarent la même mémoire, le même comportement ou le même capteur, comme un module copié listé à côté de son original. Le premier de la liste s'exécute et l'autre est écarté. Voir Modules de comportement des familiers.

Aucun familier sauvage n'apparaît. Vérifiez que mode vaut CREATURES et que /fmm petadmin list affiche l'espèce. Vérifiez ensuite wildSpawn : enabled, un weight supérieur à 0, et les mondes, environnements, biomes, lumière et hauteurs qu'il autorise. Les chunks ne sont peuplés qu'une fois, à leur génération : une zone déjà explorée ne se remplit donc que par les renforts, lents par défaut et qui s'arrêtent aux plafonds. /fmm petadmin spawn <species> en place un pour vérifier le familier lui-même.

Les joueurs ne peuvent pas ouvrir /fmm pets. Ils ont besoin de freeminecraftmodels.pets, que tous les joueurs ont par défaut sauf si un plugin de permissions la leur retire. Voir Commandes et permissions.

Aucune volée ne traverse jamais le ciel. Les volées volent la nuit dans les mondes de type overworld au-dessus des joueurs à ciel ouvert, et uniquement pour les espèces FLYING dotées d'une section migration: dont les comportements exécutent migrate. Une espèce qui ne peut pas migrer journalise has a migration section, but ... au chargement, avec la solution. /fmm petmigrate <species> en envoie une immédiatement.

Un familier ne fait rien, ou a cessé de faire quelque chose après une mise à jour. Vérifiez sa liste behaviors : un familier n'exécute que les modules qu'elle nomme, et une liste remplace les valeurs par défaut. Un fichier dont les interactions avec le monde étaient des sections n'en exécute aucune tant qu'il ne liste pas leurs modules.

La lueur d'un familier ne s'affiche pas pour les joueurs Bedrock. La lueur n'éclaire que les os d'affichage Java.