Saltar al contenido principal

Configuración de FreeMinecraftModels

Los ajustes YAML de los modelos se preparan juntos al recargar el contenido. Después de editar el YAML de un prop, completa la recarga antes de crear otro. Da a cada YAML de modelo un nombre de archivo único en todas las carpetas de modelos. Cuando dos archivos comparten nombre (sin distinguir mayúsculas), aunque estén en subcarpetas distintas, FMM carga aquel cuya ruta absoluta va primero en orden y omite los demás con un aviso Duplicate content filename. Una copia omitida cuyos valores coinciden todos con el archivo cargado se omite sin aviso.

Esta página cubre los ajustes actuales de config.yml y shop_config.yml que afectan materialmente la configuración inicial, el renderizado, la interacción del jugador y la tienda de muebles opcional. Los ajustes de mascotas de pets.yml se tratan en Mascotas.

Ubicaciones de archivos​

plugins/FreeMinecraftModels/config.yml
plugins/FreeMinecraftModels/shop_config.yml
plugins/FreeMinecraftModels/pets.yml

shop_config.yml se genera en la primera ejecución; la tienda en sí permanece deshabilitada hasta que la habilites explícitamente. pets.yml se genera en la primera ejecución en modo COSMETIC, donde las mascotas salvajes solo aparecen en migraciones nocturnas. Los módulos Lua que ejecutan las mascotas viven en plugins/FreeMinecraftModels/pet_behaviors/; consulta Módulos de comportamiento de mascotas.

Versión mínima del servidor

plugin.yml declara api-version: 1.21.4, por lo que Minecraft 1.21.4 es la versión mínima admitida del servidor. Se retiró la compatibilidad con versiones anteriores; el código conserva rutas antiguas de renderizado y generación de salida, pero ya no se ejecutan en un servidor capaz de cargar el plugin.

Ajustes de config.yml​

setupDone​

  • Predeterminado: false
  • Controla si la guía de configuración inicial se considera completada
  • Los jugadores con freeminecraftmodels.* reciben un recordatorio unos 10 segundos después de cada inicio de sesión mientras este valor sea false, si siguen conectados
  • Abrir /fmm setup guarda true para el servidor y descarta los recordatorios futuros. Completar una opción en /fmm initialize también lo guarda; el indicador no demuestra que se haya instalado un pack o que los clientes lo hayan recibido

nightbreak.autoDownloadPluginUpdates​

  • Predeterminado: false
  • Ajuste compartido de MagmaCore (vive bajo la sección nightbreak: de config.yml)
  • Cuando es true, FreeMinecraftModels descarga automáticamente las actualizaciones del jar del plugin disponibles y los archivos de actualización de contenido al iniciar
  • Las actualizaciones de plugin y contenido descargadas se aplican después de que el servidor se reinicie, salvo que nightbreak.applyPluginUpdatesWithoutRestart aplique antes la actualización del plugin
  • Las descargas automáticas del plugin requieren un token de cuenta de Nightbreak válido y una membresía activa de supporter en Patreon. Sin ambas cosas, deja esto en false y usa el botón de actualización dentro del juego
  • La pasada automática de contenido busca actualizaciones de paquetes instalados y aplaza su recarga. No equivale a instalar todos los paquetes accesibles con /fmm downloadall. Actívala desde /fmm setup o a mano

nightbreak.applyPluginUpdatesWithoutRestart​

  • Predeterminado: never
  • Ajuste compartido de MagmaCore (vive bajo la sección nightbreak: de config.yml). Decide cuándo se aplica sin reinicio una actualización del plugin descargada
  • never: la actualización espera al siguiente reinicio. Aun así, puedes aplicarla a mano con /fmm applypluginupdate
  • when-empty: la actualización se aplica la próxima vez que no haya jugadores conectados. FMM lo comprueba cada 30 segundos
  • immediately: la actualización se aplica en cuanto termina de descargarse
  • Cualquier otro valor cuenta como never
  • Aplicar una actualización deshabilita FreeMinecraftModels y todos los plugins de MagmaGuy que dependen de él, sustituye el jar y después los vuelve a cargar y habilitar. Los jefes, arenas e instancias de mazmorra en curso terminan cuando esos plugins se recargan
  • Un plugin de otro autor que dependa de FreeMinecraftModels bloquea el cambio; en ese caso la actualización espera a un reinicio. Si el nuevo jar no logra habilitarse, se vuelve a cargar el jar anterior y la actualización queda preparada para el siguiente reinicio. Consulta Comandos

useDisplayEntitiesWhenPossible​

  • Predeterminado: true
  • Indica a FreeMinecraftModels que prefiera el renderizado mediante display-entity cuando el servidor y la ruta del cliente lo soporten
  • Con false, los clientes Java usan huesos renderizados mediante soportes para armaduras. La ruta antigua anterior a 1.19.4 no implica compatibilidad con servidores antiguos
  • Con los modelos Bedrock habilitados y un puente nativo de entidades personalizadas disponible, los espectadores Bedrock usan esa presentación. En caso contrario, la ruta de huesos usa soportes para armaduras en Bedrock. Este ajuste no fuerza el mismo backend para todos

maxModelViewDistance​

  • Predeterminado: 60
  • Establece el límite normal de distancia para espectadores. En mundos poco poblados, la excepción de proximidad a menos de 10 bloques omite tanto este límite como la oclusión; los valores inferiores a 10 no imponen allí un corte estricto
  • Valores más bajos reducen la carga de paquetes y renderizado del cliente en zonas densas con muchos modelos
  • Entidades individuales pueden sobrescribir este valor en runtime mediante ModeledEntity.setViewDistanceOverride(int) — consulta la guía de la API

maxInteractionAndAttackDistance​

  • Predeterminado: 3
  • Se aplica a entidades modeladas estáticas y dinámicas
  • Lo usan las comprobaciones de interacción y detección de impactos del runtime

maxInteractionAndAttackDistanceForProps​

  • Predeterminado: 6
  • Se aplica a entidades prop
  • Es independiente de la distancia de interacción para entidades estáticas/dinámicas

sendCustomModelsToBedrockClientsV2​

  • Predeterminado: true
  • Controla si FreeMinecraftModels intenta enviar modelos personalizados a clientes Bedrock
  • Esta clave reemplaza a la antigua sendCustomModelsToBedrockClients (que tenía como predeterminado false). El cambio de nombre a V2 invierte el predeterminado para que los jugadores Bedrock vean modelos por defecto; si anteriormente establecías la clave antigua de forma explícita, puedes eliminarla y la nueva clave V2 toma el control
  • Si está deshabilitado, los jugadores Bedrock vuelven a la entidad vanilla subyacente cuando exista (y los disfraces no se renderizarán para ellos)
  • Si lo habilitas, asegúrate de que tu ruta de resource pack de Bedrock/Geyser/Floodgate esté realmente lista para esos clientes
  • El registro de diagnóstico Bedrock no es una clave de configuración. Actívalo con /fmm debug bedrock on|off y desactívalo expresamente tras recoger las pruebas. /fmm reload no restablece esta opción; un nuevo arranque del servidor sí. Consulta Comandos

skipUnchangedBoneUpdates​

  • Predeterminado: true
  • Con true, se omiten las actualizaciones de movimiento y metadatos si las transformaciones registradas no han cambiado más allá de la tolerancia de comparación. Los huesos de entidades de visualización registran posición, rotación y escala; los de soportes para armaduras, posición y rotación
  • Los huesos quietos suelen omitir esas actualizaciones, pero cambios explícitos como el tinte fuerzan un reenvío
  • La resincronización completa periódica sigue corrigiendo desviaciones del cliente; esta opción no suprime todos los tipos de paquetes de modelos
  • Ponlo en false solo para restaurar el antiguo comportamiento de "reenviar siempre cada hueso en cada tick" con fines de depuración

useDeltaMetadataPackets​

  • Predeterminado: true
  • Cuando es true, el paquete de metadatos por tick para los huesos de modelo con display-entity envía solo los valores que cambiaron (la transformación del hueso) en lugar de reserializar todo el blob de item-display (item model + custom model data) en cada tick
  • El estado completo se sigue enviando cuando un jugador ve un modelo por primera vez y en la resincronización periódica
  • Ponlo en false para restaurar el antiguo comportamiento de instantánea completa en cada tick, con fines de depuración o comparación

displayBonesRideTheirEntity​

  • Predeterminado: true
  • Con true, los huesos de visualización de un modelo dinámico van montados en su entidad como pasajeros en los clientes de Java. El cliente coloca cada hueso desde la misma posición suavizada que usa para la entidad y sus jinetes, de modo que las monturas, los jinetes y los modelos en movimiento se mantienen juntos en lugar de quedarse rezagados, y los huesos no envían paquetes de posición
  • Esto se aplica a monturas como /fmm mount y a modelos cuya entidad oculta se rastrea mediante modelViewersTrackHiddenBodies. Los huesos solo van montados mientras el cliente de todos los espectadores de Java rastree la entidad. Un espectador puede ver un modelo más lejos de lo que el servidor rastrea su entidad (los modelos se muestran hasta maxModelViewDistance, 60 bloques por defecto, mientras que Spigot rastrea a los monstruos hasta 48 bloques por defecto), y los plugins pueden ocultar la entidad a un espectador. En esos casos, y mientras el modelo muere, los huesos vuelven a los teletransportes por hueso
  • Los jugadores de Bedrock no se ven afectados
  • Ponlo en false para mantener todos los modelos con teletransportes por hueso, como antes

riddenBoneInterpolationTicks​

  • Predeterminado: 1
  • Cuántos ticks tarda un cliente de Java en deslizar un hueso montado hasta su siguiente pose de animación. 0 salta de golpe en cada tick. 1 se desliza durante un tick, lo que también suaviza las rotaciones
  • Solo lo usan los huesos que van montados en su entidad; consulta displayBonesRideTheirEntity
  • /fmm boneglide <ticks> lo cambia hasta que FMM se recargue, sin editar este archivo. Consulta Comandos

modelViewersTrackHiddenBodies​

  • Predeterminado: true
  • Con true, cada jugador de Java que puede ver un modelo dinámico cuya entidad está oculta recibe además esa entidad como un cuerpo invisible sin su equipamiento. Los huesos del modelo pueden entonces montarse en ella, como se describe en displayBonesRideTheirEntity
  • Los demás jugadores y los de Bedrock siguen teniendo la entidad oculta como antes
  • Ponlo en false para mantener las entidades ocultas sin rastrear y sus huesos con teletransportes por hueso

idleWalkBlendTicks​

  • Predeterminado: 5
  • Experimental. Cuántos ticks tarda un modelo en pasar con una fusión progresiva entre sus animaciones idle y walk. Ambas animaciones siguen reproduciéndose durante el fundido
  • 0 cambia al instante, como hacían las versiones anteriores
  • Los jugadores de Bedrock reciben el mismo tiempo de fundido. Se escribe en los controladores de animación de Bedrock generados, así que ven el cambio cuando el resource pack se regenera
  • Consulta Fusión de animaciones

deathBlendTicks​

  • Predeterminado: 4
  • Experimental. Cuántos ticks tarda un modelo en fundirse desde la pose que mantiene hasta su animación death. 0 cambia al instante, como hacían las versiones anteriores
  • Los jugadores de Bedrock reciben el mismo tiempo de fundido cuando el resource pack se regenera

weightedTurning​

  • Predeterminado: true
  • Experimental. Con true, un modelo dinámico gira hacia la orientación de su mob con inercia: acelera, gira a una velocidad limitada y después frena hasta la nueva orientación sin pasarse. Los modelos más grandes giran más despacio
  • Solo el modelo gira así. El propio mob sigue girando y caminando exactamente como antes
  • Un modelo gira al instante mientras un jugador monta directamente su mob o se sienta en uno de sus asientos m_
  • Ponlo en false para que los modelos giren al instante con su mob, como hacían las versiones anteriores
  • Consulta Inercia de giro para ver cómo cambia el tamaño los límites

turnSpeedCap​

  • Predeterminado: 30
  • Experimental. Velocidad máxima de giro, en grados por tick, de un modelo de un bloque de tamaño
  • El límite se divide entre la raíz cuadrada del tamaño del modelo y nunca supera los 90 grados por tick

turnAcceleration​

  • Predeterminado: 6
  • Experimental. Cuántos grados por tick gana o pierde en velocidad de giro, en cada tick, un modelo de un bloque de tamaño
  • Se divide entre el tamaño del modelo, así que los modelos más grandes aceleran y frenan más despacio
  • Un valor de 0 o menos, igual que un turnSpeedCap de 0 o menos, hace que los modelos giren al instante

maxModelsForProximityOverride​

  • Predeterminado: 25
  • Pseudo balanceador de carga para la sobrescritura de visibilidad de corto alcance
  • Normalmente un modelo a menos de 10 bloques omite las comprobaciones de distancia y oclusión que seleccionan espectadores; las demás reglas de visibilidad siguen aplicándose
  • En una zona densa (por ejemplo un hub de NPC de varias plantas) esa sobrescritura convierte decenas de modelos que el jugador en realidad no puede ver — en otras plantas, detrás de paredes — en espectadores que envían paquetes en cada tick
  • Cuando un mundo contiene al menos esta cantidad de modelos cargados, la excepción de proximidad se desactiva allí. Los espectadores deben superar las comprobaciones de distancia y visibilidad incluso de cerca. La comprobación de visibilidad muestrea el centro y las esquinas de la hitbox; si no hay hitbox, la supera. Los mundos poco poblados conservan la excepción
  • La decisión es por mundo, no global, así que un mundo hub abarrotado no penaliza a los tranquilos
  • Súbelo muchísimo para restaurar en la práctica el comportamiento de sobrescritura siempre activa; ponlo a 0 para exigir siempre línea de visión
  • /fmm packetdebug es la herramienta prevista para medir el efecto — consulta Comandos

filmicMode​

aviso

No se recomienda fuera de las grabaciones. El modo fílmico envía muchísimos más paquetes a cada jugador y hace que el servidor anime todos los modelos cargados. Espera lag en servidores concurridos.

  • Predeterminado: false
  • Para grabar tráileres y vídeos con ReplayMod o un mod de grabación similar
  • Normalmente un jugador solo recibe un modelo mientras está dentro de maxModelViewDistance y supera la comprobación de línea de visión. Los modelos ocultos se eliminan de ese cliente y dejan de animarse. Una repetición solo contiene lo que recibió el cliente que grababa, así que esos modelos faltan o aparecen congelados cuando la cámara de la repetición los enfoca
  • Con true, cada jugador recibe todos los modelos cargados en los chunks que tiene cargados, y esos modelos siguen animándose, incluso detrás de paredes o más allá de maxModelViewDistance. La zona de chunks cargados es la distancia de visión del mundo, limitada por la distancia de renderizado del cliente, más un chunk. Los modelos en chunks no cargados siguen sin mostrarse
  • Para activarlo solo durante una sesión de grabación, usa /fmm filmic on|off en lugar de editar este archivo. Consulta Comandos

particleEffectsEnabled​

  • Predeterminado: true
  • Con false, no se reproduce ningún efecto de partículas de Blockbench en modelos, props ni objetos sostenidos. Los modelos se cargan y animan como siempre
  • El cambio se aplica tras /fmm reload o un reinicio. Los jugadores Java lo ven en cuanto FMM se recarga. Los jugadores Bedrock lo ven en cuanto reciben el resource pack regenerado, porque sus efectos van dentro del pack
  • Consulta Partículas

maxParticlesPerEmitter​

  • Predeterminado: 100
  • Límite superior de partículas activas para un efecto de partículas en un modelo. Se aplica el max_particles del propio archivo de partículas cuando es menor
  • Cada partícula que ve un jugador Java es una entidad de paquetes, así que los valores altos consumen ancho de banda

maxParticlesPerViewer​

  • Predeterminado: 400
  • Límite superior de partículas activas que se muestran a un jugador Java sumando todos los modelos
  • Por encima de él, se omiten las partículas nuevas para ese jugador hasta que caduquen las más antiguas. Los jugadores Bedrock dibujan las partículas en su propio cliente y no se cuentan

preventPropPlacementInProtectedRegions​

  • Predeterminado: true
  • Cuando es true, FreeMinecraftModels pregunta a los proveedores de protección registrados de MagmaCore si este jugador concreto puede construir en la celda que ocuparía el prop, y rechaza la colocación si la respuesta es no
  • Los jugadores con el permiso freeminecraftmodels.bypassregionprotection (predeterminado: op) omiten esta comprobación de FMM. Las comprobaciones de espacio y las restricciones de otros plugins siguen aplicándose
  • Los proveedores integrados reconocen al jugador en WorldGuard y GriefPrevention. Otros plugins pueden registrar proveedores. Una denegación o error del proveedor rechaza la colocación; MagmaCore también rechaza ubicaciones cubiertas por un propietario de ubicación protegido. Sin un proveedor que deniegue ni propiedad protegida, no añade restricciones
  • El mensaje de rechazo es You don't have permission to place a model here!

La consulta al proveedor pregunta si este jugador puede construir, por lo que pertenecer a una reclamación puede permitir la colocación. La propiedad protegida de una ubicación se comprueba por separado y no ofrece una excepción por jugador. Es una consulta a integraciones registradas, no un evento simulado de colocación de bloques vanilla; no reproduce las reglas de todos los plugins.

Toda colocación recibe una comprobación de una sola celda; los props voxelizados reciben además una segunda comprobación de todo el volumen:

Tipo de propCeldas comprobadas
Prop normal (de forma libre)La única celda adyacente a la cara del bloque clicado — la celda que ocupará el prop
Prop con voxelize: trueEsa misma celda adyacente primero, y después cada celda de la huella rotada del prop (ancho x alto x profundo) alrededor del punto de colocación alineado a la cuadrícula. Si cualquier celda de ese volumen está fuera de límites, se rechaza toda la colocación

La comprobación de volumen existe porque un prop voxelizado puede tener varios bloques de ancho, así que probar solo la celda clicada permitiría a un jugador ponerse a caballo sobre el límite de una reclamación y soltar un prop grande en la construcción de otra persona. Se ejecuta después de la comprobación de espacio libre, así que Not enough space to place this model! sigue teniendo prioridad cuando la huella está físicamente obstruida.

La huella comprobada redondea cada dimensión de la hitbox con Math.round, con un mínimo de un bloque. El volumen de barreras enviadas por paquetes usa ceil(size - 0.4) y puede ser distinto. La comprobación de colocación no garantiza una cobertura idéntica de cada celda de colisión del cliente.

nota

El permiso se comprueba antes de consultar al proveedor. Concede freeminecraftmodels.bypassregionprotection para eximir al personal de las comprobaciones de protección de FMM y mantenerlas activas para otros jugadores. No omite las comprobaciones de espacio ni la cancelación de eventos por otro plugin.

registerCraftingRecipes​

  • Predeterminado: true
  • Ponlo en false y reinicia para una economía de solo compras. Las entradas válidas y habilitadas permanecen en el catálogo de la tienda, pero se eliminan sus recetas de Bukkit
  • El menú de objetos fabricables /fmm y los detalles de receta requieren una receta realmente registrada, por lo que las entradas con fabricación desactivada no aparecen allí
  • isEnabled: false en una receta la elimina del catálogo cargado, incluida la tienda. shopEnabled: false solo la oculta de las compras

shop_config.yml​

La tienda de muebles opcional respaldada por Vault vive en su propia configuración para que pueda habilitarse o ajustarse independientemente del comportamiento principal del plugin. La tienda se niega a registrarse si Vault o un proveedor de economía faltan.

Claves de nivel superior​

ClavePredeterminadoDescripción
enabledfalseInterruptor maestro para /fmm shop. El comando solo se registra cuando esto es true y Vault + un proveedor de economía están ambos presentes
defaultPrice100.0Valor para recetas sin shopPrice; si no es positivo, se usa 100.0. Cambiar este predeterminado no cambia los precios por receta ya guardados
menuTitle&8FMM - Furniture ShopTítulo mostrado en la parte superior del inventario de la tienda (soporta códigos de color &)
priceLoreFormat&7Price: &e{price}Línea de lore añadida a cada objeto de la tienda que muestra su precio. Marcador de posición: {price}
clickToBuyLoreFormat&aClick to purchaseLínea de lore añadida a cada objeto de la tienda que invita a la compra

Claves de mensaje (messages.*)​

Todos los strings de mensaje soportan códigos de color &.

ClavePredeterminadoMarcadores de posición
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.ninguno
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}

Campos de tienda por receta​

Cada archivo de receta en plugins/FreeMinecraftModels/recipes/<model_id>.yml obtiene dos campos adicionales:

CampoPredeterminadoDescripción
shopEnabledtrueSi la receta aparece en /fmm shop. Ponerlo en false no desactiva por sí solo la fabricación; siguen aplicándose la habilitación de la receta y registerCraftingRecipes
shopPricedefaultPrice de shop_config.ymlCoste en moneda Vault para este objeto específico

El constructor de recetas (/fmm craftify) escribe ambos campos al guardar, de modo que ajustar el precio es solo cuestión de editar texto.

Permisos​

Registrados en plugin.yml​

PermisoPredeterminadoDescripción
freeminecraftmodels.*opComodín que otorga los permisos de administración, eliminación total, disfraz propio y de otros, omisión de protección de regiones y administración de mascotas
freeminecraftmodels.adminopAcceso a /fmm admin (el explorador de contenido de administrador) y /fmm giveitem. Otros comandos de administración y depuración (/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) comprueban el comodín freeminecraftmodels.*
freeminecraftmodels.deleteallopHijo del comodín; acceso a /fmm deleteall
freeminecraftmodels.disguise.selfopPermite /fmm disguise / /fmm undisguise sobre el emisor
freeminecraftmodels.disguise.othersopPermite disguise/undisguise dirigidos más /fmm disguiselist
freeminecraftmodels.bypassregionprotectionopOmite las comprobaciones de protección de colocación e interacción de FMM, incluso con preventPropPlacementInProtectedRegions activo; no anula cancelaciones de otros plugins ni los requisitos de espacio
freeminecraftmodels.menutrueAcceso al menú de objetos fabricables /fmm
freeminecraftmodels.shoptrueAcceso a /fmm shop
freeminecraftmodels.petstrueAcceso a /fmm pets
freeminecraftmodels.pets.adminopHijo del comodín; acceso a /fmm petadmin y /fmm petmigrate
nightbreak.loginopRegistrado por MagmaCore, no por plugin.yml. Necesario para los comandos compartidos /nightbreaklogin y /nightbreaklogout
nightbreak.pluginsopRegistrado por MagmaCore, no por plugin.yml. Necesario para el comando compartido /nightbreak plugins

Los comandos de mascotas se describen en Mascotas.

Configuración YML del modelo​

El archivo .yml de un modelo tiene el mismo nombre base y directorio que su .bbmodel. Los elementos decorativos y los objetos que se sostienen usan partes distintas de esta configuración.

Elementos decorativos​

isEnabled: true
name: "&6Oak Table"
lore:
- "&7Seats four"
voxelize: true
solidify: true
scripts:
- my_prop.lua
CampoDescripción
isEnabledSi la definición está habilitada; el valor predeterminado es true
nameNombre visible del objeto de colocación del elemento decorativo. Admite códigos de color. Sin él, el objeto toma el nombre del modelo, como en ✦ Oak Table ✦
loreDescripción del objeto de colocación. Admite códigos de color. Cualquier clave lore sustituye la descripción predeterminada (las indicaciones de colocar y recoger más el ID del modelo), y una lista vacía (lore: []) la elimina
scriptsScripts Lua independientes de plugins/FreeMinecraftModels/scripts/
voxelizeAjusta la colocación a la cuadrícula de bloques y a incrementos de rotación de 90 grados; comprueba que haya espacio libre en todo el volumen rotado
solidifyJunto con la voxelización, envía bloques barrera solo mediante paquetes para la colisión del cliente; no son bloques del mundo y se eliminan con el elemento

El name y el lore del objeto de colocación se aplican dondequiera que FMM cree el objeto: /fmm itemify, el resultado de recetas fabricadas, las compras en la tienda y los objetos tomados de los menús de administrador. Las entradas de menú, como los listados de la tienda y sus mensajes de compra, siguen mostrando el nombre formado a partir del ID del modelo. Los objetos que ya están en los inventarios conservan su nombre y descripción anteriores.

Objetos que se sostienen​

isEnabled: true
material: DIAMOND_SWORD
name: "&bFrost Blade"
lore:
- "&7A sword forged in ice"
enchantments:
- "minecraft:sharpness,3"
- "minecraft:unbreaking,2"

material selecciona un material de objeto de Bukkit y registra un objeto que se puede sostener en lugar de un elemento decorativo. name y lore admiten códigos de color. Los encantamientos usan ID en minúsculas con espacio de nombres y niveles enteros positivos. Cuando un encantamiento es un conjunto de objetos, la descripción del objeto muestra las piezas del conjunto en la línea de descripción que contiene $itemSet, o después de la descripción cuando ninguna línea lo contiene. Obtén los objetos registrados mediante /fmm giveitem <id> o el menú de administrador. La ruta de recetas y tienda de elementos decorativos crea objetos de colocación de papel, no estos objetos personalizados para sostener.

Para teñir armaduras de cuero, añade un color RGB hexadecimal después del material, sin #, como en el equipamiento de EliteMobs: material: LEATHER_CHESTPLATE:ff8800. El sufijo solo funciona con materiales cuyo nombre empieza por LEATHER_, como las piezas de armadura de cuero y la armadura de cuero para caballos. Un sufijo en cualquier otro material, o un valor que no tenga entre uno y seis dígitos hexadecimales, rechaza el catálogo de objetos: /fmm reload conserva el catálogo actual y la consola nombra el archivo. Los objetos que ya están en los inventarios conservan su color anterior.

Compatibilidad al actualizar

Los scripts Lua de objetos equipados se han retirado. Las definiciones con una lista scripts: no vacía, encantamientos antiguos sin espacio de nombres como SHARPNESS,3 o un material no disponible en este servidor se omiten con un diagnóstico. FMM deja el archivo original intacto. Elimina la vinculación del script retirado y crea los efectos mediante definiciones de encantamientos; los scripts de elementos decorativos siguen admitidos.

Para varitas y bastones, añade una definición de arma mágica. No coloques el comportamiento del arma en un script de elemento decorativo ni en los eventos retirados de objetos.

Notas operativas​

  • /fmm reload primero importa y valida los objetos, encantamientos y recetas de props definidos mientras mantiene activo el catálogo actual. Un fallo de validación rechaza la recarga; una validación correcta permite la reinicialización completa, incluidos config.yml, shop_config.yml, pets.yml, recetas, modelos, especies de mascotas, módulos de comportamiento de mascotas y salida del pack. Se rechazan solicitudes simultáneas de inicialización o recarga
  • Una inicialización completa correcta programa FmmReloadedEvent 40 ticks después para que los consumidores vuelvan a asociar modelos. La recarga de contenido más limitada que activa el importador lo emite al completarse. Reconstruye modelos, objetos, encantamientos, scripts de props y recetas, pero no vuelve a leer config.yml ni shop_config.yml. Un fallo después de que esa ruta borre los registros activos deshabilita FMM. Un fallo en las recetas de props es la excepción: FMM registra Prop recipe catalog rejected y mantiene activas las recetas anteriores. Una validación rechazada no es una recarga completada
  • Al descargar un mundo, FMM elimina los modelos activos de elementos decorativos y conserva sus soportes persistentes. Cuando esas entidades vuelven a cargarse, elimina duplicados y restaura los elementos. Este proceso es distinto de recoger o destruir permanentemente un elemento decorativo.
  • Las marcas de tiempo fijas del ZIP y los mapas de modelos ordenados reducen cambios innecesarios, pero el orden de recorrido del sistema de archivos puede cambiar los bytes y el SHA1 incluso sin modificar los modelos. No se garantiza una salida idéntica. Consulta Salida del Resource Pack.
  • FreeMinecraftModels solo genera el resource pack; no lo aloja por sí mismo.
  • ResourcePackManager sigue siendo la ruta de entrega recomendada para clientes Java y la ruta documentada más segura para configuraciones mixtas.
  • WorldGuard, WorldEdit, GriefPrevention, Vault, floodgate y Geyser-Spigot se declaran como softdepend en plugin.yml. WorldGuard y GriefPrevention aportan consultas integradas de protección; WorldEdit no es un proveedor independiente. Vault junto con un proveedor de economía habilita la tienda. Para la presentación Bedrock correspondiente deben estar disponibles la detección del cliente, el puente de renderizado y la entrega del pack

Cuándo cambiar estos valores​

Usa esta configuración para ajustar el comportamiento en runtime, no para gestionar paquetes de contenido.

  • Usa /fmm setup, /fmm downloadall y /fmm updatecontent para el ciclo de vida de paquetes oficiales
  • Usa la carpeta imports para trabajo de importación manual de .bbmodel u otro contenido local
  • Usa config.yml cuando necesites ajustar el modo de render, la distancia de visibilidad, la distancia de interacción, el comportamiento Bedrock, la aplicación de la protección de regiones o las descargas automáticas de actualizaciones
  • Usa skipUnchangedBoneUpdates, useDeltaMetadataPackets y maxModelsForProximityOverride para ajustar paquetes/ancho de banda en mundos densos en modelos. Los tres tienen por defecto el comportamiento optimizado; los ajustes false / muy altos existen para depuración y comparación A/B, no como valores recomendados en producción
  • Usa filmicMode (o /fmm filmic on) solo mientras grabas vídeos, y después vuelve a desactivarlo
  • Usa idleWalkBlendTicks, deathBlendTicks, weightedTurning, turnSpeedCap y turnAcceleration para ajustar cómo se animan y giran los modelos. Pon los tiempos de fundido en 0 y weightedTurning en false para recuperar los cambios y giros instantáneos de las versiones anteriores
  • displayBonesRideTheirEntity y modelViewersTrackHiddenBodies están activados por defecto. Ponerlos en false restaura los antiguos teletransportes por hueso, con los que los modelos en movimiento y las monturas pueden quedarse rezagados respecto a su entidad
  • Reduce maxParticlesPerEmitter y maxParticlesPerViewer, o pon particleEffectsEnabled: false, si los modelos con muchas partículas consumen demasiado ancho de banda
  • Usa shop_config.yml (y los campos shopEnabled/shopPrice por receta) para ajustar la tienda de muebles sin tocar código

Limitaciones conocidas​

  • El comportamiento Bedrock depende tanto de sendCustomModelsToBedrockClientsV2 como de tu configuración más amplia de Floodgate/Geyser/resource-pack, así que mantén tus afirmaciones conservadoras a menos que hayas probado tu stack exacto.
  • Si la tienda está habilitada pero falta Vault o un proveedor de economía, permanece inaccesible y registra una advertencia concreta al iniciar. /fmm version solo muestra la versión del plugin; revisa esas advertencias si falta /fmm shop.