Configuración de FreeMinecraftModels
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.
Ubicaciones de Archivos
plugins/FreeMinecraftModels/config.yml
plugins/FreeMinecraftModels/shop_config.yml
shop_config.yml se genera en la primera ejecución; la tienda en sí permanece deshabilitada hasta que la habilites explícitamente.
Ajustes de config.yml
setupDone
- Predeterminado:
false - Controla si la guía de configuración inicial se considera completada
- Los jugadores con permisos amplios de FreeMinecraftModels reciben el recordatorio de ejecutar
/fmm setupmientras este valor permanezca enfalse - El flujo de configuración cambia este valor por ti; no necesitas editarlo a mano durante la incorporación normal
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 solo se aplican después de que el servidor se reinicie
- Esto equivale, a nivel de clave de configuración, a ejecutar
/fmm downloadpluginupdate//fmm downloadallen cada arranque; actívalo desde el menú/fmm setupo a mano
useDisplayEntitiesWhenPossible
- Predeterminado:
true - Indica a FreeMinecraftModels que prefiera el renderizado mediante display-entity cuando el servidor y la ruta del cliente lo soporten
- El plugin sigue recurriendo a los displays de armor-stand cuando las display entities no están disponibles (versiones anteriores a 1.19.4 o Bedrock)
- Los clientes Bedrock son un caso especial, así que no asumas que esto fuerza la misma ruta de renderizado para todos los jugadores
maxModelViewDistance
- Predeterminado:
60 - Limita la distancia a la que se envían entidades modeladas a los espectadores
- 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 logging de diagnóstico en runtime para el pipeline de visualización de Bedrock no es una clave de configuración — se activa en runtime mediante
/fmm debug bedrock on|offpara que nunca quede activado accidentalmente en producción. Consulta Comandos
preventPropPlacementInProtectedRegions
- Predeterminado:
true - Cuando es
true, se bloquea a un jugador que hace clic derecho para colocar un prop (objeto de modelo personalizado) dentro de una región de WorldGuard o una reclamación de GriefPrevention - Los jugadores con el permiso
freeminecraftmodels.bypassregionprotection(predeterminado:op) nunca son bloqueados - Esto depende de que WorldGuard (más WorldEdit) o GriefPrevention estén instalados; sin ningún plugin de protección presente no tiene efecto
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 | Precio escrito en archivos de receta que no establezcan su propio shopPrice en la siguiente carga |
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 esta receta es visible en /fmm shop. Recetas con shopEnabled: false siguen siendo fabricables pero nunca se listan para compra |
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 admin, deleteall y disfraz propio/de otros |
freeminecraftmodels.admin | op | Acceso a /fmm admin (el explorador de contenido de administrador) y /fmm giveitem. Otros comandos de administrador/depuración (/fmm location, /fmm spawn, /fmm mount, /fmm itemify, /fmm craftify, /fmm reload, /fmm stats, /fmm hitbox visualize, /fmm debug bedrock, /fmm setup, /fmm recommendedplugins, /fmm downloadall, /fmm downloadallcontent, /fmm updatecontent, /fmm downloadpluginupdate) comprueban el comodín freeminecraftmodels.* en su lugar |
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 | Colocar/interactuar con props dentro de regiones de WorldGuard o reclamaciones de GriefPrevention incluso cuando preventPropPlacementInProtectedRegions está activado |
freeminecraftmodels.menu | true | Acceso al menú de objetos fabricables /fmm |
freeminecraftmodels.shop | true | Acceso a /fmm shop |
Configuración YML de Modelo
Cada archivo .bbmodel puede tener un archivo .yml compañero (mismo nombre, mismo directorio) que controla ajustes específicos del modelo. El formato YML unificado soporta los siguientes campos:
isEnabled: true
voxelize: true
solidify: true
scripts:
- my_script.lua
material: DIAMOND_SWORD
name: "&bFrost Blade"
lore:
- "&7A sword forged in ice"
- "&7Deals frost damage"
enchantments:
- SHARPNESS,3
- UNBREAKING,2
| Campo | Tipo | Descripción |
|---|---|---|
isEnabled | booleano | Si el modelo se carga (predeterminado: true) |
scripts | lista de strings | Nombres de archivos de script Lua a adjuntar desde plugins/FreeMinecraftModels/scripts/. Incluye .lua por claridad; se aceptan entradas de configuración sin .lua y se resuelven a archivos .lua. |
voxelize | booleano | Cuando es true, el prop se ajusta a incrementos de rotación de 90 grados y se alinea a la cuadrícula de bloques al colocarse. La huella se calcula desde las dimensiones de la hitbox del modelo (redondeadas a bloques enteros). La colocación verifica que todos los bloques en la huella no son sólidos. |
solidify | booleano | Cuando es true (requiere voxelize: true), se colocan bloques de barrera solo a nivel de paquete en cada bloque de la huella del prop, dándole colisión del lado del cliente. Estas barreras son invisibles y existen solo en paquetes — no se colocan en el mundo. Las barreras se eliminan automáticamente cuando el prop se recoge o se destruye. |
material | string | Un nombre de material Bukkit (p. ej. DIAMOND_SWORD, PAPER). Cuando se establece, el modelo se convierte en un objeto personalizado que los jugadores pueden sostener y equipar |
name | string | Nombre de visualización para el objeto personalizado (soporta códigos de color &) |
lore | lista de strings | Líneas de lore para el objeto personalizado (soporta códigos de color &) |
enchantments | lista de strings | Encantamientos en formato ENCHANTMENT_NAME,LEVEL (p. ej. SHARPNESS,3) |
Cuando se establece material, el modelo se registra como un objeto personalizado. Los jugadores pueden recibirlo mediante /fmm giveitem, fabricarlo si se ha configurado una receta, y obtiene acceso a los 22 hooks Lua de objeto.
Los props ejecutan cada script listado bajo scripts: como instancias independientes. Los objetos personalizados actualmente solo usan el primer script válido de la lista; las entradas adicionales después de la primera se ignoran para la vinculación en runtime del objeto.
Notas Operativas
/fmm reloadreimporta el contenido y regenera el pack de salida, por lo que los cambios de configuración que afectan al comportamiento de renderizado son más fáciles de validar tras una recarga. Se despacha unFmmReloadedEventen cada recarga para que los plugins dependientes puedan revincular sus adjuntos de modelo.- 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 y Vault están declarados como
softdependenplugin.yml— ninguno es necesario para iniciar el plugin, pero desbloquean funciones específicas cuando están presentes (predicados Lua conscientes de protección y la tienda de muebles).
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
shop_config.yml(y los camposshopEnabled/shopPricepor receta) para ajustar la tienda de muebles sin tocar código
Advertencias 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. - La tienda se deshabilita silenciosamente si falta Vault o un proveedor de economía. Usa
/fmm versiony revisa la consola al iniciar si/fmm shopfalta inesperadamente.