Configuration de FreeMinecraftModels
Les paramètres YAML des modèles sont préparés ensemble lors du rechargement du contenu. Après avoir modifié le YAML d'un prop, terminez le rechargement avec succès avant d'en créer un nouveau. Donnez à chaque YAML de modèle un nom de fichier unique dans tous les dossiers de modèles. Lorsque deux fichiers portent le même nom (sans distinction de casse), même dans des sous-dossiers différents, FMM charge celui dont le chemin absolu arrive en premier dans l'ordre de tri et ignore les autres avec un avertissement Duplicate content filename. Une copie ignorée dont toutes les valeurs correspondent au fichier chargé est ignorée sans avertissement.
Cette page décrit les paramètres actuels de config.yml et shop_config.yml qui influencent l'installation, le rendu, les interactions des joueurs et la boutique de mobilier facultative. Les paramètres des familiers dans pets.yml sont décrits sur la page Familiers.
Emplacements des fichiers
plugins/FreeMinecraftModels/config.yml
plugins/FreeMinecraftModels/shop_config.yml
plugins/FreeMinecraftModels/pets.yml
shop_config.yml est généré au premier démarrage ; la boutique reste désactivée jusqu'à son activation explicite. pets.yml est généré au premier démarrage en mode COSMETIC, où les familiers sauvages n'apparaissent que lors des migrations nocturnes. Les modules Lua exécutés par les familiers se trouvent dans plugins/FreeMinecraftModels/pet_behaviors/ ; voir Modules de comportement des familiers.
plugin.yml déclare api-version: 1.21.4, donc Minecraft 1.21.4 est la version de serveur minimale prise en charge. La prise en charge des lignes plus anciennes a été abandonnée ; les branches héritées de rendu/sortie existent toujours dans le code mais ne sont plus atteignables sur un serveur capable de charger le plugin.
Paramètres de config.yml
setupDone
- Défaut :
false - Contrôle si les conseils de configuration initiale sont considérés comme terminés
- Les joueurs disposant de
freeminecraftmodels.*reçoivent un rappel environ 10 secondes après chaque connexion tant que cette valeur reste àfalse, s'ils sont encore en ligne - Ouvrir
/fmm setupenregistretruepour le serveur et supprime les futurs rappels. Choisir une option de fin dans/fmm initializel'enregistre aussi ; cet indicateur ne prouve pas qu'un pack a été installé ou reçu par les clients
nightbreak.autoDownloadPluginUpdates
- Défaut :
false - Paramètre partagé de MagmaCore, dans la section
nightbreak:deconfig.yml - Lorsque
true, FreeMinecraftModels télécharge automatiquement les mises à jour disponibles du jar du plugin et les fichiers de mise à jour de contenu au démarrage - Les mises à jour téléchargées du plugin et du contenu sont appliquées après le redémarrage du serveur, sauf si
nightbreak.applyPluginUpdatesWithoutRestartapplique la mise à jour du plugin plus tôt - Les téléchargements automatiques du plugin nécessitent un jeton de compte Nightbreak valide et un abonnement Patreon supporter actif. Sans les deux, laissez cette valeur à
falseet utilisez plutôt le bouton de mise à jour en jeu - La mise à jour automatique du contenu vise les packs déjà installés et diffère leur rechargement. Elle n'équivaut pas à installer tous les packs accessibles avec
/fmm downloadall. Modifiez ce réglage depuis/fmm setupou manuellement
nightbreak.applyPluginUpdatesWithoutRestart
- Défaut :
never - Paramètre partagé de MagmaCore, dans la section
nightbreak:deconfig.yml. Il détermine quand une mise à jour du plugin téléchargée est appliquée sans redémarrage never: la mise à jour attend le prochain redémarrage. Vous pouvez toujours l'appliquer manuellement avec/fmm applypluginupdatewhen-empty: la mise à jour est appliquée la prochaine fois qu'aucun joueur n'est en ligne. FMM vérifie toutes les 30 secondesimmediately: la mise à jour est appliquée dès la fin de son téléchargement- Toute autre valeur équivaut à
never - Appliquer une mise à jour désactive FreeMinecraftModels et chaque plugin MagmaGuy qui en dépend, remplace le jar, puis les recharge et les réactive. Les boss, arènes et instances de donjon en cours prennent fin lors du rechargement de ces plugins
- Un plugin d'un autre auteur qui dépend de FreeMinecraftModels bloque le remplacement ; la mise à jour attend alors un redémarrage. Si le nouveau jar ne parvient pas à s'activer, l'ancien jar est rechargé et la mise à jour reste en attente pour le prochain redémarrage. Voir Commandes
useDisplayEntitiesWhenPossible
- Défaut :
true - Demande à FreeMinecraftModels de privilégier les entités d'affichage lorsque le serveur et le client les prennent en charge
- La valeur
falsesélectionne le rendu des os par porte-armures pour les clients Java. La branche héritée antérieure à 1.19.4 ne rend pas les anciens serveurs compatibles - Si les modèles Bedrock sont activés et que la passerelle native d'entités personnalisées est disponible, les joueurs Bedrock utilisent cette présentation. Sinon, leur rendu des os utilise des porte-armures. Ce réglage n'impose pas le même moteur de rendu à tous les joueurs
maxModelViewDistance
- Défaut :
60 - Fixe la limite de distance habituelle. Dans les mondes peu denses, l'exception de proximité à moins de 10 blocs contourne cette limite et le contrôle d'occlusion ; une valeur inférieure à 10 n'y impose donc pas une coupure stricte
- Des valeurs plus faibles réduisent la charge de paquets et de rendu client dans les zones denses en modèles
- Les entités individuelles peuvent surcharger cette valeur au runtime via
ModeledEntity.setViewDistanceOverride(int)— voir le guide de l'API
maxInteractionAndAttackDistance
- Défaut :
3 - S'applique aux entités modélisées statiques et dynamiques
- Utilisé par les vérifications d'interaction et de détection de coup runtime
maxInteractionAndAttackDistanceForProps
- Défaut :
6 - S'applique aux entités prop
- Cette valeur est distincte de la distance d'interaction des entités statiques/dynamiques
sendCustomModelsToBedrockClientsV2
- Défaut :
true - Contrôle si FreeMinecraftModels tente d'envoyer des modèles personnalisés aux clients Bedrock
- Cette clé remplace l'ancienne
sendCustomModelsToBedrockClients(qui avait pour défautfalse). Le renommage enV2inverse le défaut afin que les joueurs Bedrock voient les modèles par défaut ; si vous aviez auparavant défini explicitement l'ancienne clé, vous pouvez la supprimer et la nouvelle clé V2 prend le relais - Si désactivé, les joueurs Bedrock retombent sur l'entité vanilla sous-jacente lorsqu'elle existe (et les déguisements ne s'affichent pas pour eux)
- Si vous l'activez, assurez-vous que votre chaîne resource-pack Bedrock/Geyser/Floodgate est réellement prête pour ces clients
- Les journaux de diagnostic Bedrock ne dépendent pas d'une clé de configuration. Utilisez
/fmm debug bedrock on|offet désactivez-les explicitement après avoir recueilli les preuves./fmm reloadne réinitialise pas cet indicateur ; un nouveau démarrage du serveur le fait. Consultez les commandes
skipUnchangedBoneUpdates
- Défaut :
true - Lorsque
true, les mises à jour de déplacement et de métadonnées des os sont omises si les transformations suivies n'ont pas changé au-delà de la tolérance de comparaison. Les os d'affichage suivent la position, la rotation et l'échelle ; les porte-armures suivent la position et la rotation - Les os immobiles évitent généralement ces mises à jour, mais une modification explicitement marquée, comme la teinte, force un nouvel envoi
- La resynchronisation complète périodique corrige toujours les écarts du client ; cette option ne supprime pas tous les types de paquets des modèles
- Ne le passez à
falseque pour rétablir l'ancien comportement « toujours renvoyer chaque os à chaque tick » à des fins de débogage
useDeltaMetadataPackets
- Défaut :
true - Lorsque
true, le paquet de métadonnées par tick des os de modèle en entités d'affichage n'envoie que les valeurs qui ont changé (la transformation de l'os) au lieu de re-sérialiser à chaque tick l'intégralité du bloc d'affichage d'item (item model + custom model data) - L'état complet est toujours envoyé lorsqu'un joueur voit un modèle pour la première fois ainsi qu'à la resynchronisation périodique
- Passez-le à
falsepour rétablir l'ancien comportement d'instantané complet à chaque tick, à des fins de débogage ou de comparaison
displayBonesRideTheirEntity
- Défaut :
true - Lorsque
true, les os d'affichage d'un modèle dynamique chevauchent son entité comme passagers sur les clients Java. Le client place chaque os à partir de la même position lissée que celle qu'il utilise pour l'entité et ses cavaliers : montures, cavaliers et modèles en mouvement restent donc ensemble au lieu de traîner derrière, et les os n'envoient aucun paquet de position - Cela s'applique aux montures comme
/fmm mountet aux modèles dont l'entité masquée est suivie viamodelViewersTrackHiddenBodies. Les os ne chevauchent l'entité que tant que le client de chaque observateur Java suit l'entité. Un observateur peut voir un modèle plus loin que la distance à laquelle le serveur suit son entité (les modèles apparaissent jusqu'àmaxModelViewDistance, 60 blocs par défaut, tandis que Spigot suit les monstres jusqu'à 48 blocs par défaut), et des plugins peuvent masquer l'entité à un observateur. Dans ces cas, et pendant la mort du modèle, les os reviennent aux téléportations os par os - Les joueurs Bedrock ne sont pas concernés
- Passez-le à
falsepour conserver les téléportations os par os sur tous les modèles, comme avant
riddenBoneInterpolationTicks
- Défaut :
1 - Nombre de ticks que met un client Java à faire glisser un os passager vers sa pose d'animation suivante.
0le place directement sur sa pose à chaque tick.1glisse sur un tick, ce qui lisse aussi les rotations - Seuls les os qui chevauchent leur entité l'utilisent ; voir
displayBonesRideTheirEntity /fmm boneglide <ticks>le modifie jusqu'au rechargement de FMM, sans modifier ce fichier. Voir Commandes
modelViewersTrackHiddenBodies
- Défaut :
true - Lorsque
true, chaque joueur Java qui peut voir un modèle dynamique dont l'entité est masquée reçoit aussi cette entité sous forme de corps invisible dont l'équipement est retiré. Les os du modèle peuvent alors la chevaucher, comme décrit sousdisplayBonesRideTheirEntity - Pour les autres joueurs et les joueurs Bedrock, l'entité reste masquée, comme avant
- Passez-le à
falsepour laisser les entités masquées non suivies et leurs os en téléportations os par os
idleWalkBlendTicks
- Défaut :
5 - Expérimental. Nombre de ticks que met un modèle à faire un fondu enchaîné entre ses animations
idleetwalk. Les deux animations continuent de jouer pendant le fondu 0bascule instantanément, comme dans les anciennes versions- Les joueurs Bedrock obtiennent la même durée de fondu. Elle est écrite dans les contrôleurs d'animation Bedrock générés : ils voient donc un changement après la régénération du resource pack
- Voir Mélange des animations
deathBlendTicks
- Défaut :
4 - Expérimental. Nombre de ticks que met un modèle à passer en fondu de la pose qu'il tient à son animation
death.0bascule instantanément, comme dans les anciennes versions - Les joueurs Bedrock obtiennent la même durée de fondu une fois le resource pack régénéré
weightedTurning
- Défaut :
true - Expérimental. Lorsque
true, un modèle dynamique tourne vers l'orientation de son mob avec de l'inertie : il accélère, tourne à une vitesse plafonnée, puis ralentit jusqu'à la nouvelle orientation sans la dépasser. Les modèles plus grands tournent plus lentement - Seul le modèle tourne ainsi. Le mob lui-même tourne et marche exactement comme avant
- Un modèle tourne instantanément lorsqu'un joueur monte directement son mob ou s'assoit sur l'un de ses sièges
m_ - Passez-le à
falsepour que les modèles tournent instantanément avec leur mob, comme dans les anciennes versions - Voir Inertie de rotation pour savoir comment la taille modifie les limites
turnSpeedCap
- Défaut :
30 - Expérimental. Vitesse de rotation maximale, en degrés par tick, d'un modèle d'un bloc de taille
- Le plafond est divisé par la racine carrée de la taille du modèle et ne dépasse jamais 90 degrés par tick
turnAcceleration
- Défaut :
6 - Expérimental. Nombre de degrés par tick qu'un modèle d'un bloc de taille gagne ou perd en vitesse de rotation à chaque tick
- Il est divisé par la taille du modèle : les modèles plus grands accélèrent et ralentissent donc plus lentement
- Une valeur de
0ou moins, comme unturnSpeedCapde0ou moins, fait tourner les modèles instantanément
maxModelsForProximityOverride
- Défaut :
25 - Ajuste selon la charge l'exception de visibilité à courte distance
- Normalement, un modèle situé à moins de 10 blocs d'un joueur contourne les contrôles de distance et d'occlusion qui sélectionnent les observateurs ; les autres règles de visibilité restent applicables
- Dans une zone dense, comme un hub de PNJ à plusieurs étages, cette exception rend le joueur destinataire des paquets de dizaines de modèles pourtant invisibles, à d'autres étages ou derrière des murs
- Lorsqu'un monde contient au moins ce nombre de modèles chargés, l'exception de proximité y est désactivée. Les observateurs doivent passer les contrôles de distance et de visibilité, même de près. Le contrôle de visibilité échantillonne le centre du modèle et les coins de sa hitbox ; l'absence de hitbox valide ce contrôle. Les mondes peu denses conservent l'exception
- La décision est prise par monde, et non globalement, afin qu'un monde hub surchargé ne pénalise pas les mondes calmes
- Montez-le très haut pour rétablir de fait le comportement de surcharge systématique ; réglez-le à
0pour toujours exiger une ligne de vue /fmm packetdebugest l'outil prévu pour en mesurer l'effet — voir Commandes
filmicMode
Déconseillé en dehors des enregistrements. Le mode filmique envoie beaucoup plus de paquets à chaque joueur et oblige le serveur à animer chaque modèle chargé. Attendez-vous à du lag sur les serveurs chargés.
- Défaut :
false - Destiné à l'enregistrement de bandes-annonces et de vidéos avec ReplayMod ou un mod d'enregistrement similaire
- Normalement, un joueur ne reçoit un modèle que lorsqu'il se trouve à moins de
maxModelViewDistanceet passe le contrôle de ligne de vue. Les modèles masqués sont retirés de ce client et cessent de s'animer. Un replay ne contient que ce que le client d'enregistrement a reçu : ces modèles sont donc absents ou figés lorsque la caméra du replay les regarde - Lorsque
true, chaque joueur reçoit tous les modèles chargés dans les chunks qu'il a chargés, et ces modèles continuent de s'animer, même derrière des murs ou au-delà demaxModelViewDistance. La zone de chunks chargés correspond à la distance de vue du monde, plafonnée par la distance de rendu du client, plus un chunk. Les modèles situés dans des chunks non chargés n'apparaissent toujours pas - Pour ne l'activer que le temps d'un enregistrement, utilisez
/fmm filmic on|offplutôt que de modifier ce fichier. Voir Commandes
particleEffectsEnabled
- Défaut :
true - Lorsque
false, aucun effet de particules Blockbench n'est joué sur les modèles, props ou objets tenus. Les modèles se chargent et s'animent normalement - Le changement s'applique après
/fmm reloadou un redémarrage. Les joueurs Java le voient dès que FMM a rechargé. Les joueurs Bedrock le voient une fois qu'ils ont reçu le resource pack régénéré, car leurs effets sont inclus dans le pack - Voir Particules
maxParticlesPerEmitter
- Défaut :
100 - Nombre maximal de particules actives pour un effet de particules sur un modèle. Le
max_particlespropre au fichier de particules s'applique lorsqu'il est inférieur - Chaque particule vue par un joueur Java est une entité envoyée par paquets : des valeurs élevées consomment donc de la bande passante
maxParticlesPerViewer
- Défaut :
400 - Nombre maximal de particules actives affichées à un même joueur Java, tous modèles confondus
- Au-delà, les nouvelles particules destinées à ce joueur sont ignorées jusqu'à l'expiration des plus anciennes. Les joueurs Bedrock dessinent les particules sur leur propre client et ne sont pas comptés
preventPropPlacementInProtectedRegions
- Défaut :
true - Lorsque
true, FreeMinecraftModels demande aux fournisseurs de protection enregistrés auprès de MagmaCore si ce joueur précis peut construire dans la case que le prop occuperait, et refuse le placement si la réponse est non - Les joueurs disposant de la permission
freeminecraftmodels.bypassregionprotection(défaut :op) ignorent cette vérification de FMM. Les contrôles d'espace et les restrictions des autres plugins restent applicables - Les fournisseurs intégrés tenant compte du joueur couvrent WorldGuard et GriefPrevention. D'autres plugins peuvent enregistrer des fournisseurs. Un refus ou une erreur d'un fournisseur interdit le placement ; MagmaCore refuse aussi les emplacements couverts par un propriétaire d'emplacement protégé. Sans fournisseur qui refuse ni propriété protégée, ce contrôle n'ajoute aucune restriction
- Le message de refus est
You don't have permission to place a model here!
Le fournisseur vérifie si ce joueur peut construire ; l'appartenance à un claim peut donc autoriser le placement. La propriété d'emplacement protégé est un contrôle distinct, sans exemption liée au joueur. Cette requête interroge les intégrations enregistrées et ne simule pas un événement de placement de bloc vanilla ; elle ne reproduit donc pas les règles de tous les plugins.
Chaque placement reçoit une vérification à case unique ; les props voxelisés en reçoivent une seconde, sur tout le volume :
| Type de prop | Cases vérifiées |
|---|---|
| Prop normal (forme libre) | La seule case adjacente à la face de bloc cliquée — la case que le prop occupera |
Prop voxelize: true | Cette même case adjacente d'abord, puis chaque case de l'empreinte pivotée du prop (largeur x hauteur x profondeur) autour du point de placement aligné sur la grille. Si une seule case de ce volume est interdite, tout le placement est refusé |
La vérification de volume existe parce qu'un prop voxelisé peut faire plusieurs blocs de large : ne tester que la case cliquée permettrait à un joueur de chevaucher une limite de claim et de déposer un gros prop dans la construction de quelqu'un d'autre. Elle s'exécute après la vérification d'espace libre, de sorte que Not enough space to place this model! reste prioritaire lorsque l'empreinte est physiquement obstruée.
L'empreinte vérifiée arrondit chaque dimension de hitbox avec Math.round, avec un minimum d'un bloc. Le volume des barrières envoyées par paquets utilise plutôt ceil(size - 0.4) et peut différer ; le contrôle de placement ne garantit pas une couverture identique de toutes les cellules de collision côté client.
La permission est vérifiée avant d'interroger le fournisseur. Accordez freeminecraftmodels.bypassregionprotection pour exempter l'équipe des contrôles de protection de FMM tout en les conservant pour les autres joueurs. Cela ne contourne ni les contrôles d'espace ni l'annulation d'un événement par un autre plugin.
registerCraftingRecipes
- Défaut :
true - Passez à
falseet redémarrez pour une économie fondée uniquement sur les achats. Les recettes valides et activées restent dans le catalogue de la boutique, mais leurs recettes Bukkit sont retirées - Le menu de fabrication
/fmmdes joueurs et les détails des recettes nécessitent une recette effectivement enregistrée ; les entrées dont la fabrication est désactivée n'y figurent donc pas isEnabled: falsedans une recette la retire du catalogue chargé, boutique comprise.shopEnabled: falsela masque uniquement à l'achat
shop_config.yml
La boutique facultative utilisant Vault possède sa propre configuration, pour pouvoir être activée et réglée indépendamment du plugin principal. Elle refuse de s'enregistrer si Vault ou un fournisseur d'économie manque.
Clés de premier niveau
| Clé | Défaut | Description |
|---|---|---|
enabled | false | Interrupteur principal pour /fmm shop. La commande ne s'enregistre que lorsque ceci est true et que Vault + un fournisseur d'économie sont tous deux présents |
defaultPrice | 100.0 | Prix par défaut des recettes sans shopPrice ; une valeur nulle ou négative est remplacée par 100.0. Les prix déjà enregistrés par recette ne changent pas lorsque ce défaut change |
menuTitle | &8FMM - Furniture Shop | Titre affiché en haut de l'inventaire de la boutique (supporte les codes de couleur &) |
priceLoreFormat | &7Price: &e{price} | Ligne de lore ajoutée à chaque objet de la boutique montrant son prix. Placeholder : {price} |
clickToBuyLoreFormat | &aClick to purchase | Ligne de lore ajoutée à chaque objet de la boutique invitant à l'achat |
Clés de messages (messages.*)
Toutes les chaînes de message supportent les codes de couleur &.
| Clé | Défaut | Placeholders |
|---|---|---|
messages.purchaseSuccess | &aPurchased &f{item} &afor &e{price}&a. Balance: &e{balance}&a. | {item}, {price}, {balance} |
messages.insufficientFunds | &cYou need &e{price} &cto buy &f{item}&c. Balance: &e{balance}&c. | {item}, {price}, {balance} |
messages.shopDisabled | &cThe furniture shop is currently unavailable. | aucun |
messages.itemNotForSale | &cThat item is not currently for sale. | {item} |
messages.inventoryFull | &eYour inventory was full; &f{item} &ehas been dropped at your feet. | {item} |
Champs de boutique par recette
Chaque fichier de recette dans plugins/FreeMinecraftModels/recipes/<model_id>.yml reçoit deux champs supplémentaires :
| Champ | Défaut | Description |
|---|---|---|
shopEnabled | true | Indique si cette recette est visible dans /fmm shop. La valeur false ne désactive pas à elle seule la fabrication ; l'activation de la recette et registerCraftingRecipes restent applicables |
shopPrice | defaultPrice depuis shop_config.yml | Coût en monnaie Vault pour cet objet spécifique |
L'éditeur de recettes (/fmm craftify) écrit ces deux champs à l'enregistrement, donc ajuster le prix se fait par une simple édition de texte.
Permissions
Enregistrées dans plugin.yml
| Permission | Défaut | Description |
|---|---|---|
freeminecraftmodels.* | op | Wildcard accordant les permissions admin, deleteall, de déguisement self/others, de contournement de la protection des régions et d'administration des familiers |
freeminecraftmodels.admin | op | Accès à /fmm admin (le navigateur de contenu admin) et /fmm giveitem. Les autres commandes admin/debug (/fmm location, /fmm spawn, /fmm mount, /fmm itemify, /fmm craftify, /fmm reload, /fmm stats, /fmm hitbox visualize, /fmm debug, /fmm packetdebug, /fmm filmic, /fmm boneglide, /fmm setup, /fmm initialize, /fmm recommendedplugins, /fmm downloadall, /fmm downloadallcontent, /fmm updatecontent, /fmm downloadpluginupdate, /fmm applypluginupdate, /fmm forcereinstallcontent) vérifient le wildcard freeminecraftmodels.* à la place |
freeminecraftmodels.deleteall | op | Enfant du wildcard ; accès à /fmm deleteall |
freeminecraftmodels.disguise.self | op | Autorise /fmm disguise / /fmm undisguise sur l'expéditeur |
freeminecraftmodels.disguise.others | op | Autorise le déguisement/dé-déguisement ciblé plus /fmm disguiselist |
freeminecraftmodels.bypassregionprotection | op | Ignore les contrôles de protection du placement et des interactions de FMM, même avec preventPropPlacementInProtectedRegions activé ; ne remplace ni les annulations des autres plugins ni les contraintes d'espace |
freeminecraftmodels.menu | true | Accès au menu d'objets craftables /fmm |
freeminecraftmodels.shop | true | Accès à /fmm shop |
freeminecraftmodels.pets | true | Accès à /fmm pets |
freeminecraftmodels.pets.admin | op | Enfant du wildcard ; accès à /fmm petadmin et /fmm petmigrate |
nightbreak.login | op | Enregistrée par MagmaCore, pas par plugin.yml. Requise par les commandes partagées /nightbreaklogin et /nightbreaklogout |
nightbreak.plugins | op | Enregistrée par MagmaCore, pas par plugin.yml. Requise par la commande partagée /nightbreak plugins |
Les commandes de familiers sont décrites dans Familiers.
Configuration YML du modèle
Le fichier .yml compagnon d'un modèle porte le même nom de base et se trouve dans le même dossier que son .bbmodel. Les props et les objets tenus utilisent des parties différentes de cette configuration.
Props
isEnabled: true
name: "&6Oak Table"
lore:
- "&7Seats four"
voxelize: true
solidify: true
scripts:
- my_prop.lua
| Champ | Description |
|---|---|
isEnabled | Active ou désactive la définition ; vaut true par défaut |
name | Nom d'affichage de l'objet de placement du prop. Accepte les codes de couleur. Sans lui, l'objet porte le nom du modèle, comme dans ✦ Oak Table ✦ |
lore | Lore de l'objet de placement. Accepte les codes de couleur. Toute clé lore remplace le lore par défaut (indications de pose et de ramassage plus l'ID du modèle), et une liste vide (lore: []) le supprime |
scripts | Scripts Lua de props indépendants provenant de plugins/FreeMinecraftModels/scripts/ |
voxelize | Aligne le placement sur la grille de blocs et la rotation par pas de 90 degrés ; vérifie l'espace libre sur toute l'emprise après rotation |
solidify | Avec la voxelisation, envoie des blocs barrière uniquement par paquets pour la collision côté client ; ces blocs n'existent pas dans le monde et sont retirés avec le prop |
Le name et le lore de l'objet de placement s'appliquent partout où FMM crée cet objet : /fmm itemify, résultat des recettes craftées, achats en boutique et objets pris dans les menus d'administration. Les entrées de menu, comme les annonces de la boutique et ses messages d'achat, affichent toujours le nom formé à partir de l'ID du modèle. Les objets déjà présents dans les inventaires conservent leur ancien nom et leur ancien lore.
Objets tenus
isEnabled: true
material: DIAMOND_SWORD
name: "&bFrost Blade"
lore:
- "&7A sword forged in ice"
enchantments:
- "minecraft:sharpness,3"
- "minecraft:unbreaking,2"
material sélectionne un matériau d'objet Bukkit et enregistre un objet tenu au lieu d'un prop. name et lore acceptent les codes de couleur. Les enchantements utilisent des identifiants en minuscules avec espace de noms et des niveaux entiers strictement positifs. Lorsqu'un enchantement est un ensemble d'objets, le lore de l'objet affiche les pièces de l'ensemble sur la ligne de lore qui contient $itemSet, ou à la suite du lore si aucune ligne ne le contient. Obtenez les objets enregistrés via /fmm giveitem <id> ou le menu administrateur. Les recettes et la boutique de props créent des objets de placement en papier, pas ces objets tenus définis par l'auteur.
Pour teindre une armure en cuir, ajoutez une couleur RVB hexadécimale après le matériau, sans #, comme pour l'équipement EliteMobs : material: LEATHER_CHESTPLATE:ff8800. Le suffixe ne fonctionne que sur les matériaux dont le nom commence par LEATHER_, comme les pièces d'armure en cuir et l'armure de cheval en cuir. Un suffixe sur tout autre matériau, ou une valeur qui ne compte pas entre un et six chiffres hexadécimaux, fait rejeter le catalogue d'objets : /fmm reload conserve le catalogue actuel et la console indique le fichier concerné. Les objets déjà présents dans les inventaires conservent leur ancienne couleur.
Les scripts Lua d'objets équipés ont été retirés. Une définition d'objet tenu avec une liste scripts: non vide, des enchantements anciens sans espace de noms comme SHARPNESS,3, ou un matériau indisponible sur ce serveur est ignorée avec un diagnostic. FMM laisse le fichier de l'auteur inchangé. Retirez l'ancienne liaison au script d'objet et définissez les effets avec des définitions d'enchantements ; les scripts de props restent pris en charge.
Pour les baguettes et les bâtons, ajoutez une définition d'arme magique. Ne placez pas le comportement de l'arme dans un script de prop ou dans les anciens hooks d'objets.
Notes de fonctionnement
/fmm reloadimporte et valide d'abord les objets, enchantements et recettes de props définis par les auteurs, tout en conservant le catalogue actif. Un échec de validation refuse le rechargement ; une validation réussie lance la réinitialisation complète, notamment deconfig.yml,shop_config.yml,pets.yml, des recettes, modèles, espèces de familiers, modules de comportement des familiers et packs générés. Les demandes simultanées d'initialisation ou de rechargement sont refusées- Une initialisation complète réussie programme
FmmReloadedEvent40 ticks plus tard pour que les plugins dépendants rétablissent leurs attachements. Le rechargement de contenu plus limité déclenché par l'importateur émet cet événement en cas de réussite. Il reconstruit les modèles, objets, enchantements, scripts de props et recettes, mais ne relit niconfig.ymlnishop_config.yml. Un échec après l'effacement des registres actifs par ce chemin de contenu désactive FMM. Un échec sur les recettes de props fait exception : FMM consigneProp recipe catalog rejecteddans les journaux et garde les recettes précédentes actives. Une validation refusée n'est pas un rechargement terminé - Lorsqu'un monde est déchargé, FMM retire les modèles actifs des props tout en conservant leurs porte-armures persistants. Au prochain chargement de ces entités, il élimine les doublons et restaure les props. Ce processus est distinct du ramassage ou de la destruction définitive d'un prop.
- Les horodatages ZIP fixes et les collections de modèles ordonnées réduisent les changements inutiles, mais l'ordre de parcours du système de fichiers peut modifier les octets du ZIP et son SHA1 même avec des modèles inchangés. Une sortie identique n'est pas garantie. Voir Sortie du resource pack.
- FreeMinecraftModels ne fait que générer le resource pack ; il ne l'héberge pas de lui-même.
- ResourcePackManager reste le chemin de livraison recommandé pour les clients Java et le chemin documenté le plus sûr pour les configurations mixtes.
- WorldGuard, WorldEdit, GriefPrevention, Vault, floodgate et Geyser-Spigot sont déclarés
softdependdansplugin.yml. WorldGuard et GriefPrevention fournissent les requêtes de protection intégrées ; WorldEdit n'est pas un fournisseur de protection distinct. Vault et un fournisseur d'économie activent la boutique. La détection des clients Bedrock, leur passerelle de rendu et la livraison du pack doivent toutes être disponibles pour la présentation Bedrock correspondante
Quand modifier ces valeurs
Cette configuration sert à régler le comportement du plugin pendant son fonctionnement ; la gestion des packs de contenu passe par les commandes prévues à cet effet.
- Utilisez
/fmm setup,/fmm downloadallet/fmm updatecontentpour le cycle de vie des packs officiels - Utilisez le dossier
importspour l'import manuel de.bbmodelou d'autres contenus locaux - Utilisez
config.ymllorsque vous devez ajuster le mode de rendu, la distance de visibilité, la distance d'interaction, le comportement Bedrock, l'application de la protection des régions ou les téléchargements automatiques de mises à jour - Utilisez
skipUnchangedBoneUpdates,useDeltaMetadataPacketsetmaxModelsForProximityOverridepour l'ajustement des paquets/de la bande passante dans les mondes denses en modèles. Les trois utilisent par défaut le comportement optimisé ; les réglagesfalse/ très élevés existent pour le débogage et la comparaison A/B, et non comme valeurs de production recommandées - N'utilisez
filmicMode(ou/fmm filmic on) que pendant l'enregistrement de vidéos, puis désactivez-le - Utilisez
idleWalkBlendTicks,deathBlendTicks,weightedTurning,turnSpeedCapetturnAccelerationpour régler la façon dont les modèles s'animent et tournent. Mettez les durées de fondu à0etweightedTurningàfalsepour retrouver les changements d'animation et les rotations instantanés des anciennes versions displayBonesRideTheirEntityetmodelViewersTrackHiddenBodiessont activés par défaut. Les passer àfalserétablit les anciennes téléportations os par os, où les modèles en mouvement et les montures peuvent traîner derrière leur entité- Réduisez
maxParticlesPerEmitteretmaxParticlesPerViewer, ou définissezparticleEffectsEnabled: false, si les modèles riches en particules consomment trop de bande passante - Utilisez
shop_config.yml(et les champs par recetteshopEnabled/shopPrice) pour ajuster la boutique de mobilier sans toucher au code
Limitations connues
- Le comportement Bedrock dépend à la fois de
sendCustomModelsToBedrockClientsV2et de toute votre configuration Floodgate/Geyser/resource pack. Ne considérez pas une compatibilité comme acquise sans avoir testé cette combinaison exacte. - Si la boutique est activée mais que Vault ou un fournisseur d'économie manque, elle reste indisponible et un avertissement précis est journalisé au démarrage.
/fmm versionindique seulement la version du plugin ; consultez ces avertissements si/fmm shopest absent.