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.
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 seafalse, si siguen conectados - Abrir
/fmm setupguardatruepara el servidor y descarta los recordatorios futuros. Completar una opción en/fmm initializetambié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:deconfig.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.applyPluginUpdatesWithoutRestartaplique 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
falsey 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 setupo a mano
nightbreak.applyPluginUpdatesWithoutRestart
- Predeterminado:
never - Ajuste compartido de MagmaCore (vive bajo la sección
nightbreak:deconfig.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 applypluginupdatewhen-empty: la actualización se aplica la próxima vez que no haya jugadores conectados. FMM lo comprueba cada 30 segundosimmediately: 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 predeterminadofalse). El cambio de nombre aV2invierte 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|offy desactívalo expresamente tras recoger las pruebas./fmm reloadno 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
falsesolo 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
falsepara 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 mounty a modelos cuya entidad oculta se rastrea mediantemodelViewersTrackHiddenBodies. 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 hastamaxModelViewDistance, 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
falsepara 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.
0salta de golpe en cada tick.1se 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 endisplayBonesRideTheirEntity - Los demás jugadores y los de Bedrock siguen teniendo la entidad oculta como antes
- Ponlo en
falsepara 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
idleywalk. Ambas animaciones siguen reproduciéndose durante el fundido 0cambia 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.0cambia 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
falsepara 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
0o menos, igual que unturnSpeedCapde0o 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
0para exigir siempre línea de visión /fmm packetdebuges la herramienta prevista para medir el efecto — consulta Comandos
filmicMode
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
maxModelViewDistancey 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á demaxModelViewDistance. 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|offen 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 reloado 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_particlesdel 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 prop | Celdas 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: true | Esa 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.
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
falsey 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
/fmmy los detalles de receta requieren una receta realmente registrada, por lo que las entradas con fabricación desactivada no aparecen allí isEnabled: falseen una receta la elimina del catálogo cargado, incluida la tienda.shopEnabled: falsesolo 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
| Clave | Predeterminado | Descripción |
|---|---|---|
enabled | false | Interruptor maestro para /fmm shop. El comando solo se registra cuando esto es true y Vault + un proveedor de economía están ambos presentes |
defaultPrice | 100.0 | Valor 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 Shop | Tí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 purchase | Lí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 &.
| Clave | Predeterminado | Marcadores 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:
| Campo | Predeterminado | Descripción |
|---|---|---|
shopEnabled | true | Si 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 |
shopPrice | defaultPrice de shop_config.yml | Coste 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
| Permiso | Predeterminado | Descripción |
|---|---|---|
freeminecraftmodels.* | op | Comodí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.admin | op | Acceso 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.deleteall | op | Hijo del comodín; acceso a /fmm deleteall |
freeminecraftmodels.disguise.self | op | Permite /fmm disguise / /fmm undisguise sobre el emisor |
freeminecraftmodels.disguise.others | op | Permite disguise/undisguise dirigidos más /fmm disguiselist |
freeminecraftmodels.bypassregionprotection | op | Omite 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.menu | true | Acceso al menú de objetos fabricables /fmm |
freeminecraftmodels.shop | true | Acceso a /fmm shop |
freeminecraftmodels.pets | true | Acceso a /fmm pets |
freeminecraftmodels.pets.admin | op | Hijo del comodín; acceso a /fmm petadmin y /fmm petmigrate |
nightbreak.login | op | Registrado por MagmaCore, no por plugin.yml. Necesario para los comandos compartidos /nightbreaklogin y /nightbreaklogout |
nightbreak.plugins | op | Registrado 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
| Campo | Descripción |
|---|---|
isEnabled | Si la definición está habilitada; el valor predeterminado es true |
name | Nombre 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 ✦ |
lore | Descripció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 |
scripts | Scripts Lua independientes de plugins/FreeMinecraftModels/scripts/ |
voxelize | Ajusta 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 |
solidify | Junto 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.
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 reloadprimero 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, incluidosconfig.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
FmmReloadedEvent40 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 leerconfig.ymlnishop_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 registraProp recipe catalog rejectedy 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
softdependenplugin.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 downloadally/fmm updatecontentpara el ciclo de vida de paquetes oficiales - Usa la carpeta
importspara trabajo de importación manual de.bbmodelu otro contenido local - Usa
config.ymlcuando 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,useDeltaMetadataPacketsymaxModelsForProximityOverridepara ajustar paquetes/ancho de banda en mundos densos en modelos. Los tres tienen por defecto el comportamiento optimizado; los ajustesfalse/ 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,turnSpeedCapyturnAccelerationpara ajustar cómo se animan y giran los modelos. Pon los tiempos de fundido en0yweightedTurningenfalsepara recuperar los cambios y giros instantáneos de las versiones anteriores displayBonesRideTheirEntityymodelViewersTrackHiddenBodiesestán activados por defecto. Ponerlos enfalserestaura los antiguos teletransportes por hueso, con los que los modelos en movimiento y las monturas pueden quedarse rezagados respecto a su entidad- Reduce
maxParticlesPerEmitterymaxParticlesPerViewer, o ponparticleEffectsEnabled: false, si los modelos con muchas partículas consumen demasiado ancho de banda - Usa
shop_config.yml(y los camposshopEnabled/shopPricepor receta) para ajustar la tienda de muebles sin tocar código
Limitaciones conocidas
- El comportamiento Bedrock depende tanto de
sendCustomModelsToBedrockClientsV2como 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 versionsolo muestra la versión del plugin; revisa esas advertencias si falta/fmm shop.