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 initialize 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

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

sendCustomModelsToBedrockClients

  • Predeterminado: false
  • Controla si FreeMinecraftModels intenta enviar modelos personalizados a clientes Bedrock
  • 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 cadena de Bedrock/Geyser/Floodgate y el resource pack estén realmente listos para esos clientes

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 permisos de admin + disfraz propio/de otros
freeminecraftmodels.adminopAcceso a comandos de administrador como /fmm admin, /fmm giveitem y /fmm location
freeminecraftmodels.disguise.selfopPermite /fmm disguise / /fmm undisguise sobre el emisor
freeminecraftmodels.disguise.othersopPermite disguise/undisguise dirigidos más /fmm disguiselist
freeminecraftmodels.menutrueAcceso al menú de objetos fabricables /fmm
freeminecraftmodels.shoptrueAcceso a /fmm shop

Aplicados por los comandos (no registrados en plugin.yml)

PermisoPredeterminadoDescripción
freeminecraftmodels.deleteallopAcceso a /fmm deleteall (comprobado por el manejador del comando en runtime)

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 (de plugins/FreeMinecraftModels/scripts/)
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.

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 initialize, /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 o el comportamiento Bedrock
  • 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 sendCustomModelsToBedrockClients 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.