Saltar al contenido principal

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 setup mientras este valor permanezca en false
  • 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: 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 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 downloadall en cada arranque; actívalo desde el menú /fmm setup o 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 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 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|off para 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

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.0Precio escrito en archivos de receta que no establezcan su propio shopPrice en la siguiente carga
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 esta receta es visible en /fmm shop. Recetas con shopEnabled: false siguen siendo fabricables pero nunca se listan para compra
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 admin, deleteall y disfraz propio/de otros
freeminecraftmodels.adminopAcceso 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.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.bypassregionprotectionopColocar/interactuar con props dentro de regiones de WorldGuard o reclamaciones de GriefPrevention incluso cuando preventPropPlacementInProtectedRegions está activado
freeminecraftmodels.menutrueAcceso al menú de objetos fabricables /fmm
freeminecraftmodels.shoptrueAcceso 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
CampoTipoDescripción
isEnabledbooleanoSi el modelo se carga (predeterminado: true)
scriptslista de stringsNombres 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.
voxelizebooleanoCuando 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.
solidifybooleanoCuando 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.
materialstringUn 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
namestringNombre de visualización para el objeto personalizado (soporta códigos de color &)
lorelista de stringsLíneas de lore para el objeto personalizado (soporta códigos de color &)
enchantmentslista de stringsEncantamientos 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 reload reimporta 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 un FmmReloadedEvent en 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 softdepend en plugin.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 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 shop_config.yml (y los campos shopEnabled/shopPrice por receta) para ajustar la tienda de muebles sin tocar código

Advertencias 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.
  • La tienda se deshabilita silenciosamente si falta Vault o un proveedor de economía. Usa /fmm version y revisa la consola al iniciar si /fmm shop falta inesperadamente.