Pular para o conteúdo principal

Configuração do FreeMinecraftModels

Esta página cobre as configurações atuais de config.yml e shop_config.yml que afetam materialmente setup, renderização, interação com jogadores e a loja de mobília opcional.

Localização dos Arquivos

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

shop_config.yml é gerado na primeira execução; a loja em si permanece desabilitada até você optar por ativá-la.

Configurações de config.yml

setupDone

  • Padrão: false
  • Controla se a orientação de configuração inicial é considerada completa
  • Jogadores com permissões amplas do FreeMinecraftModels são lembrados a rodar /fmm setup enquanto isto permanecer false
  • O fluxo de configuração alterna esse valor automaticamente; você não precisa editá-lo manualmente durante o onboarding normal

nightbreak.autoDownloadPluginUpdates

  • Padrão: false
  • Configuração compartilhada do MagmaCore (fica na seção nightbreak: do config.yml)
  • Quando true, o FreeMinecraftModels baixa automaticamente as atualizações disponíveis do jar do plugin e os arquivos de atualização de conteúdo na inicialização
  • Atualizações de plugin e de conteúdo baixadas só são aplicadas depois que o servidor reinicia
  • Esta é a chave de config equivalente a rodar /fmm downloadpluginupdate / /fmm downloadall a cada boot; alterne-a pelo menu /fmm setup ou manualmente

useDisplayEntitiesWhenPossible

  • Padrão: true
  • Diz ao FreeMinecraftModels para preferir renderização com display-entity quando o servidor e o caminho do cliente suportarem
  • O plugin ainda recorre a displays de armor-stand quando display entities não estão disponíveis (anterior ao 1.19.4 ou Bedrock)
  • Clientes Bedrock são um caso especial, então não assuma que isso força o mesmo caminho de renderização para todos os jogadores

maxModelViewDistance

  • Padrão: 60
  • Limita o quão longe entidades modeladas são enviadas aos espectadores
  • Valores menores reduzem a carga de pacotes e renderização no cliente em áreas densas com muitos modelos
  • Entidades individuais podem sobrescrever isto em runtime via ModeledEntity.setViewDistanceOverride(int) — veja o guia da API

maxInteractionAndAttackDistance

  • Padrão: 3
  • Aplica-se a entidades modeladas estáticas e dinâmicas
  • Usado pelas verificações de interação e detecção de acerto em runtime

maxInteractionAndAttackDistanceForProps

  • Padrão: 6
  • Aplica-se a entidades prop
  • Isto é separado da distância de interação de entidades estáticas/dinâmicas

sendCustomModelsToBedrockClientsV2

  • Padrão: true
  • Controla se o FreeMinecraftModels tenta enviar modelos customizados para clientes Bedrock
  • Esta chave substitui a antiga sendCustomModelsToBedrockClients (cujo padrão era false). A renomeação para V2 inverte o padrão para que jogadores Bedrock vejam modelos por padrão; se você havia definido a chave antiga explicitamente, pode deletá-la e a nova chave V2 assume
  • Se desabilitada, jogadores Bedrock recorrem à entidade vanilla subjacente onde ela existe (e disfarces não serão renderizados para eles)
  • Se você ativá-la, certifique-se de que seu caminho de resource pack Bedrock/Geyser/Floodgate esteja realmente pronto para esses clientes
  • O log de diagnóstico em runtime para o pipeline de exibição Bedrock não é uma chave de config — ele é alternado em runtime via /fmm debug bedrock on|off para que nunca fique acidentalmente ligado em produção. Veja Comandos

preventPropPlacementInProtectedRegions

  • Padrão: true
  • Quando true, um jogador que clica com botão direito para colocar um prop (item de modelo customizado) dentro de uma região do WorldGuard ou claim do GriefPrevention é bloqueado
  • Jogadores com a permissão freeminecraftmodels.bypassregionprotection (padrão: op) nunca são bloqueados
  • Isso depende de o WorldGuard (mais WorldEdit) ou o GriefPrevention estar instalado; sem nenhum plugin de proteção presente, não tem efeito

shop_config.yml

A loja de mobília opcional baseada em Vault fica em sua própria config para que possa ser habilitada ou ajustada independentemente do comportamento principal do plugin. A loja se recusa a registrar se o Vault ou um provedor de economia estiver faltando.

Chaves de nível superior

ChavePadrãoDescrição
enabledfalseToggle mestre para /fmm shop. O comando só registra quando isto é true e o Vault + um provedor de economia estão ambos presentes
defaultPrice100.0Preço escrito nos arquivos de receita que não definem seu próprio shopPrice no próximo carregamento
menuTitle&8FMM - Furniture ShopTítulo mostrado no topo do inventário da loja (suporta códigos de cor &)
priceLoreFormat&7Price: &e{price}Linha de lore adicionada a cada item da loja mostrando seu preço. Placeholder: {price}
clickToBuyLoreFormat&aClick to purchaseLinha de lore adicionada a cada item da loja incentivando a compra

Chaves de mensagem (messages.*)

Todas as strings de mensagem suportam códigos de cor &.

ChavePadrãoPlaceholders
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.nenhum
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 loja por receita

Cada arquivo de receita em plugins/FreeMinecraftModels/recipes/<model_id>.yml ganha dois campos adicionais:

CampoPadrãoDescrição
shopEnabledtrueSe esta receita é visível em /fmm shop. Receitas com shopEnabled: false ainda são craftáveis mas nunca listadas para compra
shopPricedefaultPrice de shop_config.ymlCusto em moeda do Vault para este item específico

O construtor de receitas (/fmm craftify) escreve ambos os campos ao salvar, então ajustar preço fica a uma edição de texto de distância.

Permissões

Registradas em plugin.yml

PermissãoPadrãoDescrição
freeminecraftmodels.*opWildcard que concede admin, deleteall e permissões de disfarce próprio/de outros
freeminecraftmodels.adminopAcesso a /fmm admin (o navegador de conteúdo para admins) e /fmm giveitem. Outros comandos de admin/debug (/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) verificam o wildcard freeminecraftmodels.* em vez disso
freeminecraftmodels.deleteallopFilho do wildcard; acesso a /fmm deleteall
freeminecraftmodels.disguise.selfopPermite /fmm disguise / /fmm undisguise no remetente
freeminecraftmodels.disguise.othersopPermite disfarce/retirada de disfarce com alvo, mais /fmm disguiselist
freeminecraftmodels.bypassregionprotectionopColocar/interagir com props dentro de regiões do WorldGuard ou claims do GriefPrevention mesmo quando preventPropPlacementInProtectedRegions está ligado
freeminecraftmodels.menutrueAcesso ao menu de itens craftáveis /fmm
freeminecraftmodels.shoptrueAcesso a /fmm shop

Configuração YML do Modelo

Cada arquivo .bbmodel pode ter um arquivo .yml companheiro (mesmo nome, mesmo diretório) que controla configurações específicas do modelo. O formato YML unificado suporta os seguintes 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
CampoTipoDescrição
isEnabledbooleanSe o modelo é carregado (padrão: true)
scriptslista de stringsNomes de arquivos de script Lua a anexar de plugins/FreeMinecraftModels/scripts/. Inclua .lua para clareza; entradas de config sem .lua são aceitas e resolvidas para arquivos .lua.
voxelizebooleanQuando true, o prop se ajusta a incrementos de rotação de 90 graus e se alinha à grade de blocos ao ser colocado. A área ocupada é calculada a partir das dimensões da hitbox do modelo (arredondadas para blocos inteiros). A colocação verifica que todos os blocos da área ocupada são não sólidos.
solidifybooleanQuando true (requer voxelize: true), blocos de barreira apenas em pacotes são colocados em cada bloco da área ocupada do prop, dando a ele colisão no lado do cliente. Essas barreiras são invisíveis e existem apenas em pacotes — não são colocadas no mundo. As barreiras são removidas automaticamente quando o prop é recolhido ou destruído.
materialstringUm nome de material do Bukkit (ex.: DIAMOND_SWORD, PAPER). Quando definido, o modelo se torna um item customizado que jogadores podem segurar e equipar
namestringNome de exibição do item customizado (suporta códigos de cor &)
lorelista de stringsLinhas de lore do item customizado (suporta códigos de cor &)
enchantmentslista de stringsEncantamentos no formato ENCHANTMENT_NAME,LEVEL (ex.: SHARPNESS,3)

Quando material é definido, o modelo é registrado como um item customizado. Jogadores podem recebê-lo via /fmm giveitem, craftá-lo se uma receita estiver configurada, e ele ganha acesso a todos os 22 hooks Lua de item.

Props executam cada script listado em scripts: como instâncias independentes. Itens customizados atualmente usam apenas o primeiro script válido da lista; entradas adicionais após a primeira são ignoradas para o binding de runtime do item.

Notas Operacionais

  • /fmm reload reimporta conteúdo e regenera o pack de saída, então mudanças de configuração que afetam o comportamento de renderização são mais fáceis de validar após um reload. Um FmmReloadedEvent é disparado a cada reload para que plugins dependentes possam re-vincular seus anexos de modelo.
  • O FreeMinecraftModels apenas gera o resource pack; ele não o hospeda sozinho.
  • O ResourcePackManager continua sendo o caminho de entrega recomendado para clientes Java e o caminho documentado mais seguro para configurações mistas.
  • WorldGuard, WorldEdit, GriefPrevention e Vault são declarados como softdepend em plugin.yml — nenhum deles é necessário para iniciar o plugin, mas eles desbloqueiam recursos específicos quando presentes (predicados Lua cientes de proteção e a loja de mobília).

Quando Alterar Esses Valores

Use esta config para ajuste de comportamento em runtime, não para gerenciamento de pacotes de conteúdo.

  • Use /fmm setup, /fmm downloadall e /fmm updatecontent para o trabalho de ciclo de vida de pacotes oficiais
  • Use a pasta imports para trabalho de importação manual de .bbmodel ou outro conteúdo local
  • Use config.yml quando precisar ajustar o modo de renderização, distância de visibilidade, distância de interação, comportamento Bedrock, aplicação da proteção de região ou downloads automáticos de atualização
  • Use shop_config.yml (e os campos por receita shopEnabled/shopPrice) para ajustar a loja de mobília sem tocar em código

Ressalvas Conhecidas

  • O comportamento Bedrock depende tanto de sendCustomModelsToBedrockClientsV2 quanto da sua configuração mais ampla de Floodgate/Geyser/resource pack, então mantenha afirmações conservadoras a menos que tenha testado sua stack exata.
  • A loja se desabilita silenciosamente se o Vault ou um provedor de economia estiver faltando. Use /fmm version e verifique o console na inicialização se /fmm shop estiver inesperadamente ausente.