Saltar para o conteúdo principal

Configuração do FreeMinecraftModels

As definições YAML dos modelos são preparadas em conjunto ao recarregar o conteúdo. Depois de editar o YAML de um prop, conclua a recarga antes de criar outro. Dê a cada YAML de modelo um nome de ficheiro único em todas as pastas de modelos. Quando dois ficheiros têm o mesmo nome (sem distinguir maiúsculas de minúsculas), mesmo em subpastas diferentes, o FMM carrega aquele cujo caminho absoluto surge primeiro na ordenação e ignora os restantes com um aviso Duplicate content filename. Uma cópia ignorada cujos valores coincidam todos com os do ficheiro carregado é ignorada sem aviso.

Esta página descreve as opções atuais de config.yml e shop_config.yml que afetam a instalação, apresentação de modelos, interação dos jogadores e loja opcional de mobília. As definições das mascotes em pets.yml estão descritas em Mascotes.

Localização dos ficheiros​

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

shop_config.yml é gerado na primeira execução. A loja permanece desativada até a ativar explicitamente. pets.yml é gerado na primeira execução no modo COSMETIC, em que as mascotes selvagens só aparecem nas migrações noturnas. Os módulos Lua que as mascotes executam ficam em plugins/FreeMinecraftModels/pet_behaviors/; consulte Módulos de comportamento de mascotes.

Versão mínima do servidor

plugin.yml declara api-version: 1.21.4, pelo que Minecraft 1.21.4 é a versão mínima suportada do servidor. As versões anteriores deixaram de ser suportadas. O código ainda contém ramos antigos de apresentação e geração de recursos, mas nenhum servidor capaz de carregar o plugin os executa.

Opções de config.yml​

setupDone​

  • Predefinição: false.
  • Indica se a orientação de instalação inicial foi concluída.
  • Enquanto estiver em false, os jogadores com freeminecraftmodels.* recebem um lembrete cerca de 10 segundos após cada entrada, se continuarem ligados.
  • Abrir /fmm setup guarda true para o servidor e elimina os lembretes seguintes. Escolher uma opção de conclusão em /fmm initialize também guarda esse valor; esta opção não comprova que um pacote foi instalado ou recebido pelos clientes.

nightbreak.autoDownloadPluginUpdates​

  • Predefinição: false.
  • Opção partilhada do MagmaCore, dentro da secção nightbreak: de config.yml.
  • Com true, o FMM descarrega automaticamente, no arranque, as atualizações disponíveis do JAR e os ficheiros de atualização de conteúdo.
  • As atualizações descarregadas do plugin e do conteúdo são aplicadas após reiniciar o servidor, a menos que nightbreak.applyPluginUpdatesWithoutRestart aplique antes a atualização do plugin.
  • Os descarregamentos automáticos do plugin exigem um token Nightbreak válido e uma subscrição de apoiante Patreon ativa. Sem ambos, mantenha false e use o botão de atualização no jogo.
  • A atualização automática de conteúdo procura atualizações dos pacotes instalados e adia o recarregamento. Não equivale a instalar todos os pacotes acessíveis com /fmm downloadall. Pode alterá-la em /fmm setup ou no ficheiro.

nightbreak.applyPluginUpdatesWithoutRestart​

  • Predefinição: never.
  • Opção partilhada do MagmaCore, dentro da secção nightbreak: de config.yml. Decide quando uma atualização do plugin descarregada é aplicada sem reiniciar.
  • never: a atualização aguarda o próximo reinício. Pode aplicá-la manualmente com /fmm applypluginupdate.
  • when-empty: a atualização é aplicada na próxima vez que não houver jogadores online. O FMM verifica a cada 30 segundos.
  • immediately: a atualização é aplicada assim que termina de ser descarregada.
  • Qualquer outro valor conta como never.
  • Aplicar uma atualização desativa o FreeMinecraftModels e todos os plugins do MagmaGuy que dependem dele, substitui o JAR e depois volta a carregá-los e ativá-los. Os bosses, arenas e instâncias de dungeons em curso terminam quando esses plugins são recarregados.
  • Um plugin de outro autor que dependa do FreeMinecraftModels impede a substituição; nesse caso, a atualização aguarda um reinício. Se o novo JAR não ativar, o JAR anterior é carregado novamente e a atualização fica preparada para o próximo reinício. Consulte Comandos.

useDisplayEntitiesWhenPossible​

  • Predefinição: true.
  • Prefere entidades de apresentação quando o servidor e a ligação do cliente as suportam.
  • Com false, os ossos dos modelos usam suportes de armadura nos clientes Java. O ramo antigo anterior a 1.19.4 não torna essas versões de servidor compatíveis.
  • Com modelos Bedrock ativados e a integração nativa de entidades personalizadas disponível, os jogadores Bedrock recebem essa apresentação. Caso contrário, os ossos são apresentados com suportes de armadura. Esta opção não impõe o mesmo método a todos os jogadores.

maxModelViewDistance​

  • Predefinição: 60.
  • Define o limite normal de distância dos observadores. Em mundos com poucos modelos, a exceção de proximidade abaixo de 10 blocos dispensa tanto este limite como a verificação de oclusão; valores inferiores a 10 não impõem aí um corte estrito.
  • Valores menores reduzem o tráfego e o trabalho de apresentação no cliente em zonas com muitos modelos.
  • Cada entidade pode substituir este valor durante a execução com ModeledEntity.setViewDistanceOverride(int). Consulte o guia da API.

maxInteractionAndAttackDistance​

  • Predefinição: 3.
  • Aplica-se às entidades com modelos estáticos e dinâmicos.
  • Usada nas verificações de interação e deteção de acertos.

maxInteractionAndAttackDistanceForProps​

  • Predefinição: 6.
  • Aplica-se a elementos decorativos.
  • É independente da distância de interação de entidades estáticas e dinâmicas.

sendCustomModelsToBedrockClientsV2​

  • Predefinição: true.
  • Define se o FMM tenta enviar modelos personalizados para clientes Bedrock.
  • Substitui sendCustomModelsToBedrockClients, cuja predefinição era false. A chave V2 ativa a apresentação de modelos por predefinição. Se definiu a chave antiga, pode removê-la; passa a ser usada V2.
  • Quando desativada, os jogadores Bedrock veem a entidade Minecraft subjacente, quando existe. Os disfarces não são apresentados.
  • Ao ativar, confirme que a distribuição de recursos Bedrock/Geyser/Floodgate está preparada para esses clientes.
  • Os registos de diagnóstico Bedrock não são uma chave de configuração. Use /fmm debug bedrock on|off e desative-os explicitamente após recolher as provas. /fmm reload não repõe esta opção; um novo arranque do servidor repõe-na. Consulte Comandos.

skipUnchangedBoneUpdates​

  • Predefinição: true.
  • Com true, as atualizações de movimento e metadados são omitidas quando as transformações acompanhadas não mudaram além da tolerância de comparação. Os ossos de apresentação acompanham posição, rotação e escala; os de suportes de armadura acompanham posição e rotação.
  • Os ossos imóveis normalmente dispensam essas atualizações, mas alterações explicitamente assinaladas, como a tonalidade, forçam um novo envio.
  • A sincronização completa periódica continua a corrigir divergências no cliente; esta opção não suprime todos os tipos de pacotes dos modelos.
  • Use false apenas para diagnóstico, restaurando o envio de todos os ossos em cada tick.

useDeltaMetadataPackets​

  • Predefinição: true.
  • O pacote de metadados por tick dos ossos com entidades de apresentação envia apenas os valores alterados, isto é, a transformação do osso. Evita voltar a serializar todo o conteúdo de apresentação do item, incluindo modelo e dados personalizados, a cada tick.
  • O estado completo continua a ser enviado quando um jogador vê o modelo pela primeira vez e na sincronização periódica.
  • Use false para restaurar o envio do estado completo em cada tick, para diagnóstico ou comparação.

displayBonesRideTheirEntity​

  • Predefinição: true.
  • Com true, os ossos de apresentação de um modelo dinâmico vão na sua entidade como passageiros nos clientes Java. O cliente coloca cada osso a partir da mesma posição suavizada que usa para a entidade e para os seus passageiros, pelo que montadas, passageiros e modelos em movimento ficam juntos em vez de ficarem para trás, e os ossos não enviam pacotes de posição.
  • Aplica-se a montadas como /fmm mount e a modelos cuja entidade oculta é acompanhada através de modelViewersTrackHiddenBodies. Os ossos só vão montados na entidade enquanto o cliente de todos os observadores Java a acompanha. Um observador pode ver um modelo mais longe do que o servidor acompanha a sua entidade (os modelos aparecem até maxModelViewDistance, 60 blocos por predefinição, enquanto o Spigot acompanha os monstros até 48 blocos por predefinição), e os plugins podem esconder a entidade a um observador. Nesses casos, e enquanto o modelo morre, os ossos voltam aos teletransportes osso a osso.
  • Os jogadores Bedrock não são afetados.
  • Use false para manter todos os modelos nos teletransportes osso a osso, como antes.

riddenBoneInterpolationTicks​

  • Predefinição: 1.
  • Quantos ticks um cliente Java demora a deslizar um osso que vai montado até à sua pose de animação seguinte. 0 passa diretamente para a pose a cada tick. 1 desliza ao longo de um tick, o que também suaviza as rotações.
  • Só é usada pelos ossos que vão montados na sua entidade; consulte displayBonesRideTheirEntity.
  • /fmm boneglide <ticks> altera-a até o FMM recarregar, sem editar este ficheiro. Consulte Comandos.

modelViewersTrackHiddenBodies​

  • Predefinição: true.
  • Com true, cada jogador Java que veja um modelo dinâmico cuja entidade está oculta recebe também essa entidade como um corpo invisível, sem equipamento. Os ossos do modelo podem então ir montados nela, como descrito em displayBonesRideTheirEntity.
  • Os outros jogadores e os jogadores Bedrock continuam a ter a entidade oculta, como antes.
  • Use false para manter as entidades ocultas sem acompanhamento e os seus ossos nos teletransportes osso a osso.

idleWalkBlendTicks​

  • Predefinição: 5.
  • Experimental. Quantos ticks um modelo demora a fazer a transição cruzada entre as animações idle e walk. As duas animações continuam a ser reproduzidas durante a transição.
  • 0 muda instantaneamente, como nas versões anteriores.
  • Os jogadores Bedrock recebem o mesmo tempo de transição. É escrito nos controladores de animação Bedrock gerados, por isso só veem uma alteração depois de o pacote de recursos ser gerado de novo.
  • Consulte Combinação de animações.

deathBlendTicks​

  • Predefinição: 4.
  • Experimental. Quantos ticks um modelo demora a passar, gradualmente, da pose em que está para a animação death. 0 muda instantaneamente, como nas versões anteriores.
  • Os jogadores Bedrock recebem o mesmo tempo de transição quando o pacote de recursos é gerado de novo.

weightedTurning​

  • Predefinição: true.
  • Experimental. Com true, um modelo dinâmico roda em direção à orientação do seu mob com inércia: acelera, roda a uma velocidade limitada e depois abranda até à nova orientação sem a ultrapassar. Os modelos maiores rodam mais devagar.
  • Só o modelo roda assim. O próprio mob continua a rodar e a andar exatamente como antes.
  • Um modelo roda instantaneamente enquanto um jogador monta diretamente o seu mob ou se senta num dos seus assentos m_.
  • Use false para fazer os modelos rodarem instantaneamente com o seu mob, como nas versões anteriores.
  • Consulte Inércia de rotação para ver como o tamanho altera os limites.

turnSpeedCap​

  • Predefinição: 30.
  • Experimental. Velocidade máxima de rotação, em graus por tick, de um modelo com um bloco de tamanho.
  • O limite é dividido pela raiz quadrada do tamanho do modelo e nunca excede 90 graus por tick.

turnAcceleration​

  • Predefinição: 6.
  • Experimental. Quantos graus por tick um modelo com um bloco de tamanho ganha ou perde na velocidade de rotação a cada tick.
  • É dividida pelo tamanho do modelo, por isso os modelos maiores aceleram e abrandam mais devagar.
  • Um valor de 0 ou inferior, tal como um turnSpeedCap de 0 ou inferior, faz os modelos rodarem instantaneamente.

maxModelsForProximityOverride​

  • Predefinição: 25.
  • Regula a exceção de visibilidade a curta distância consoante a carga.
  • Normalmente, um modelo a menos de 10 blocos dispensa as verificações de distância e oclusão que selecionam os observadores; as restantes regras de visibilidade continuam a aplicar-se.
  • Numa zona densa, como um edifício com NPC em vários pisos, essa exceção faz enviar atualizações de dezenas de modelos que o jogador não vê, por estarem atrás de paredes ou noutros pisos.
  • Quando um mundo tem pelo menos este número de modelos carregados, a exceção de proximidade é desativada nesse mundo. Os observadores precisam de passar as verificações configuradas de distância e visibilidade, mesmo ao perto. A verificação de visibilidade usa o centro do modelo e os cantos da hitbox; a ausência de hitbox passa essa verificação. Os mundos com poucos modelos mantêm a exceção.
  • A decisão é por mundo, pelo que um mundo central cheio não penaliza os restantes.
  • Um valor muito elevado restaura, na prática, a exceção permanente. 0 exige sempre linha de visão.
  • Use /fmm packetdebug para medir o efeito. Consulte Comandos.

filmicMode​

atenção

Não é recomendado fora de gravações. O modo fílmico envia muitos mais pacotes a todos os jogadores e obriga o servidor a animar todos os modelos carregados. Conte com lag em servidores movimentados.

  • Predefinição: false.
  • Destina-se a gravar trailers e vídeos com o ReplayMod ou um mod de gravação semelhante.
  • Normalmente, um jogador só recebe um modelo enquanto este estiver dentro de maxModelViewDistance e passar a verificação de linha de visão. Os modelos ocultos são removidos desse cliente e deixam de ser animados. Uma repetição só contém o que o cliente de gravação recebeu, pelo que esses modelos faltam ou ficam congelados quando a câmara da repetição olha para eles.
  • Com true, cada jogador recebe todos os modelos carregados nos chunks que esse jogador tem carregados, e esses modelos continuam animados, mesmo atrás de paredes ou para lá de maxModelViewDistance. A área de chunks carregados é a distância de visão do mundo, limitada pela distância de renderização do cliente, mais um chunk. Os modelos em chunks descarregados continuam a não aparecer.
  • Para o ativar apenas durante uma sessão de gravação, use /fmm filmic on|off em vez de editar este ficheiro. Consulte Comandos.

particleEffectsEnabled​

  • Predefinição: true.
  • Com false, nenhum efeito de partículas do Blockbench é reproduzido em modelos, elementos decorativos ou itens de mão. Os modelos carregam e animam normalmente.
  • A alteração aplica-se após /fmm reload ou um reinício. Os jogadores Java veem-na assim que o FMM recarrega. Os jogadores Bedrock veem-na quando recebem o pacote de recursos regenerado, porque os seus efeitos são incluídos no pacote.
  • Consulte Partículas.

maxParticlesPerEmitter​

  • Predefinição: 100.
  • Limite máximo de partículas ativas para um efeito de partículas num modelo. Aplica-se o max_particles do próprio ficheiro de partículas quando for inferior.
  • Cada partícula que um jogador Java vê é uma entidade por pacotes, pelo que valores elevados consomem largura de banda.

maxParticlesPerViewer​

  • Predefinição: 400.
  • Limite máximo de partículas ativas apresentadas a um jogador Java, somando todos os modelos.
  • Acima dele, as novas partículas desse jogador são ignoradas até as mais antigas expirarem. Os jogadores Bedrock desenham as partículas no seu próprio cliente e não são contabilizados.

preventPropPlacementInProtectedRegions​

  • Predefinição: true.
  • O FMM consulta os fornecedores de proteção registados no MagmaCore para saber se o jogador específico pode construir na célula ocupada pelo elemento decorativo. Caso não possa, recusa a colocação.
  • A permissão freeminecraftmodels.bypassregionprotection, com predefinição op, dispensa esta verificação do FMM. As verificações de espaço e restrições de outros plugins continuam a aplicar-se.
  • Os fornecedores integrados que consideram o jogador abrangem WorldGuard e GriefPrevention. Outros plugins podem registar fornecedores. Uma recusa ou erro de um fornecedor impede a colocação; o MagmaCore também recusa locais abrangidos por um proprietário de localização protegida. Sem fornecedor que recuse nem propriedade protegida, a verificação não acrescenta restrições.
  • A mensagem de recusa é You don't have permission to place a model here!.

A consulta ao fornecedor verifica se este jogador pode construir; ser membro de um terreno pode permitir a colocação. A propriedade de localização protegida é uma verificação separada sem exceção por jogador. Esta consulta usa as integrações registadas e não simula um evento de colocação de bloco normal, pelo que não reproduz as regras de todos os plugins.

Todas as colocações verificam uma célula; os elementos voxelizados verificam também todo o volume:

Tipo de elemento decorativoCélulas verificadas
Normal, com posição livreA célula adjacente à face clicada do bloco, onde ficará o elemento
Com voxelize: truePrimeiro a mesma célula adjacente; depois todas as células do volume rodado, largura x altura x profundidade, em torno da posição alinhada à grelha. Se alguma estiver protegida contra esse jogador, toda a colocação é recusada

A verificação do volume impede que um elemento com vários blocos de largura atravesse a fronteira de um terreno protegido. É feita após a verificação de espaço livre, pelo que Not enough space to place this model! tem prioridade se o volume estiver fisicamente obstruído.

O volume verificado arredonda cada dimensão da hitbox com Math.round, com um mínimo de um bloco. O volume das barreiras enviadas por pacotes usa ceil(size - 0.4) e pode diferir; a verificação de colocação não garante uma cobertura idêntica de todas as células de colisão no cliente.

nota

A permissão é verificada antes de consultar o fornecedor. Atribua freeminecraftmodels.bypassregionprotection para dispensar a equipa das verificações de proteção do FMM, mantendo-as ativas para os restantes jogadores. Não dispensa as verificações de espaço nem o cancelamento de eventos por outro plugin.

registerCraftingRecipes​

  • Predefinição: true.
  • Para uma economia baseada apenas em compras, defina false e reinicie. As receitas válidas e ativadas continuam no catálogo da loja, mas as receitas de fabrico Bukkit são removidas.
  • O menu de itens fabricáveis /fmm dos jogadores e os detalhes das receitas exigem uma receita efetivamente registada; as entradas com fabrico desativado ficam ausentes desses menus.
  • isEnabled: false numa receita remove-a do catálogo carregado, incluindo a loja. shopEnabled: false oculta-a apenas nas compras.

shop_config.yml​

A loja opcional integrada com o Vault tem configuração própria, permitindo ativá-la e ajustá-la independentemente do resto do plugin. Não é registada se faltar o Vault ou um fornecedor de economia.

Chaves principais​

ChavePredefiniçãoDescrição
enabledfalseAtiva /fmm shop. O comando só é registado com true, Vault e um fornecedor de economia presentes
defaultPrice100.0Preço usado nas receitas sem shopPrice; uma predefinição nula ou negativa passa a 100.0. Alterar este valor não muda os preços já guardados nas receitas
menuTitle&8FMM - Furniture ShopTítulo do inventário da loja; aceita códigos de cor &
priceLoreFormat&7Price: &e{price}Linha de descrição com o preço, acrescentada a cada item. Marcador: {price}
clickToBuyLoreFormat&aClick to purchaseLinha de descrição que convida a comprar

Chaves de mensagens (messages.*)​

Todas as mensagens aceitam códigos de cor &.

ChavePredefiniçãoMarcadores
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 da loja em cada receita​

Cada ficheiro plugins/FreeMinecraftModels/recipes/<model_id>.yml recebe dois campos adicionais:

CampoPredefiniçãoDescrição
shopEnabledtrueDefine se a receita aparece em /fmm shop. false não desativa por si só o fabrico; a ativação da receita e registerCraftingRecipes continuam a aplicar-se
shopPricedefaultPrice de shop_config.ymlPreço em moeda do Vault para este item

O editor /fmm craftify escreve ambos os campos ao guardar. Pode depois ajustar o preço diretamente no ficheiro.

Permissões​

Registadas em plugin.yml​

PermissãoPredefiniçãoDescrição
freeminecraftmodels.*opPermissão global que concede administração, remoção geral, disfarces próprios/de outros, exceção às proteções de regiões e administração de mascotes
freeminecraftmodels.adminopAcesso a /fmm admin e /fmm giveitem. Os restantes comandos de administração e diagnóstico — /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 e /fmm forcereinstallcontent — exigem freeminecraftmodels.*
freeminecraftmodels.deleteallopIncluída na permissão global; permite /fmm deleteall
freeminecraftmodels.disguise.selfopPermite /fmm disguise e /fmm undisguise no próprio jogador
freeminecraftmodels.disguise.othersopPermite disfarçar e remover o disfarce de um alvo, além de /fmm disguiselist
freeminecraftmodels.bypassregionprotectionopDispensa as verificações de proteção da colocação e interação do FMM, mesmo com preventPropPlacementInProtectedRegions ativo; não anula cancelamentos de outros plugins nem requisitos de espaço
freeminecraftmodels.menutrueAcesso ao menu de itens fabricáveis /fmm
freeminecraftmodels.shoptrueAcesso a /fmm shop
freeminecraftmodels.petstrueAcesso a /fmm pets
freeminecraftmodels.pets.adminopIncluída na permissão global; acesso a /fmm petadmin e /fmm petmigrate
nightbreak.loginopRegistada pelo MagmaCore, fora de plugin.yml. Exigida por /nightbreaklogin e /nightbreaklogout
nightbreak.pluginsopRegistada pelo MagmaCore, fora de plugin.yml. Exigida pelo comando partilhado /nightbreak plugins

Os comandos de mascotes estão descritos em Mascotes.

Configuração YML do modelo​

O ficheiro .yml de um modelo tem o mesmo nome base e diretório que o .bbmodel. Os elementos decorativos e os itens para segurar usam partes diferentes da configuração.

Elementos decorativos​

isEnabled: true
name: "&6Oak Table"
lore:
- "&7Seats four"
voxelize: true
solidify: true
scripts:
- my_prop.lua
CampoDescrição
isEnabledAtiva a definição; predefinição true
nameNome apresentado do item de colocação do elemento decorativo. Aceita códigos de cor. Sem ele, o item recebe o nome do modelo, como em ✦ Oak Table ✦
loreLore do item de colocação. Aceita códigos de cor. Qualquer chave lore substitui a lore predefinida (indicações de colocar e apanhar mais o ID do modelo), e uma lista vazia (lore: []) remove-a
scriptsScripts Lua independentes de elementos decorativos, em plugins/FreeMinecraftModels/scripts/
voxelizeAlinha a colocação à grelha de blocos e a rotação a incrementos de 90 graus; verifica o espaço livre em todo o volume rodado
solidifyCom voxelização, envia barreiras apenas em pacotes de rede para colisão no cliente. Não são blocos reais do mundo e são removidas com o elemento

O name e a lore do item de colocação aplicam-se em todos os sítios onde o FMM cria o item: /fmm itemify, o resultado das receitas fabricadas, as compras na loja e os itens retirados dos menus de administração. As entradas de menu, como as listagens da loja e as suas mensagens de compra, continuam a mostrar o nome formado a partir do ID do modelo. Os itens que já estão em inventários mantêm o nome e a lore antigos.

Itens para segurar na mão​

isEnabled: true
material: DIAMOND_SWORD
name: "&bFrost Blade"
lore:
- "&7A sword forged in ice"
enchantments:
- "minecraft:sharpness,3"
- "minecraft:unbreaking,2"

material escolhe um material Bukkit e regista um item para segurar na mão, em vez de um elemento decorativo. name e lore aceitam códigos de cor. Os encantamentos usam IDs em minúsculas com espaço de nomes e níveis inteiros positivos. Quando um encantamento é um conjunto de itens, a lore do item mostra as peças do conjunto na linha de lore que contém $itemSet, ou depois da lore quando nenhuma linha o contém. Obtenha os itens registados com /fmm giveitem <id> ou no menu de administração. As receitas e a loja de elementos decorativos criam itens de colocação em papel, não estes itens de mão definidos pelo autor.

Para tingir armaduras de couro, acrescente uma cor RGB hexadecimal após o material, sem #, tal como no equipamento do EliteMobs: material: LEATHER_CHESTPLATE:ff8800. O sufixo só funciona em materiais cujo nome comece por LEATHER_, como as peças de armadura de couro e a armadura de couro para cavalo. Um sufixo noutro material, ou um valor que não tenha entre um e seis dígitos hexadecimais, faz rejeitar o catálogo de itens: /fmm reload mantém o catálogo atual e a consola indica o ficheiro. Os itens que já estão nos inventários mantêm a cor antiga.

Compatibilidade ao atualizar

Os scripts Lua de itens equipados foram removidos. Uma definição de item com uma lista scripts: não vazia, encantamentos antigos sem espaço de nomes, como SHARPNESS,3, ou um material indisponível no servidor é ignorada com um diagnóstico. O ficheiro original é preservado. Remova a associação antiga ao script e crie os efeitos através de definições de encantamentos. Os scripts de elementos decorativos continuam a ser suportados.

Para varinhas e cajados, adicione uma definição de arma mágica. Não coloque o comportamento da arma num script de elemento decorativo nem nos antigos eventos de itens.

Notas de funcionamento​

  • /fmm reload começa por importar e validar os itens, os encantamentos e as receitas de elementos decorativos definidos pelos autores, mantendo o catálogo atual ativo. Uma falha de validação recusa o recarregamento; uma validação bem-sucedida prossegue para a reinicialização completa, incluindo config.yml, shop_config.yml, pets.yml, receitas, modelos, espécies de mascotes, módulos de comportamento de mascotes e pacote gerado. Os pedidos simultâneos de inicialização ou recarregamento são recusados.
  • A inicialização completa bem-sucedida agenda FmmReloadedEvent para 40 ticks depois, permitindo restabelecer as ligações dos plugins dependentes. O recarregamento de conteúdo mais limitado iniciado pelo importador emite o evento em caso de sucesso. Reconstrói modelos, itens, encantamentos, scripts de elementos decorativos e receitas, mas não volta a ler config.yml nem shop_config.yml. Uma falha após esse caminho limpar os registos ativos desativa o FMM. Uma falha nas receitas de elementos decorativos é a exceção: o FMM regista Prop recipe catalog rejected e mantém ativas as receitas anteriores. Uma validação recusada não é um recarregamento concluído.
  • Ao descarregar um mundo, o FMM remove os modelos em execução dos elementos decorativos, preservando os suportes persistentes. Quando essas entidades voltam a carregar, elimina duplicados e restaura os elementos. Isto é distinto de recolher ou destruir permanentemente um elemento.
  • As datas fixas do ZIP e os mapas de modelos ordenados reduzem alterações desnecessárias, mas a ordem de leitura do sistema de ficheiros pode mudar os bytes do ZIP e o SHA1 mesmo sem alterar os modelos. Uma saída idêntica não é garantida. Consulte Pacote de recursos gerado.
  • O FreeMinecraftModels gera o pacote de recursos, mas não o aloja.
  • O ResourcePackManager é a forma recomendada de distribuição para clientes Java e a opção documentada mais segura para instalações mistas.
  • WorldGuard, WorldEdit, GriefPrevention, Vault, floodgate e Geyser-Spigot constam como softdepend em plugin.yml. WorldGuard e GriefPrevention fornecem as consultas de proteção integradas; WorldEdit não é um fornecedor de proteção separado. Vault com um fornecedor de economia permite a loja. A deteção de clientes Bedrock, a sua integração de apresentação e a distribuição do pacote precisam de estar disponíveis para a apresentação Bedrock correspondente.

Quando alterar estes valores​

Use esta configuração para ajustar o comportamento durante a execução.

  • Use /fmm setup, /fmm downloadall e /fmm updatecontent para gerir pacotes oficiais.
  • Use imports para importar manualmente .bbmodel ou outro conteúdo local.
  • Use config.yml para ajustar o modo de apresentação, distâncias de visibilidade e interação, comportamento Bedrock, proteções e descarregamentos automáticos.
  • Use skipUnchangedBoneUpdates, useDeltaMetadataPackets e maxModelsForProximityOverride para ajustar o tráfego em mundos com muitos modelos. As três opções já usam o comportamento otimizado por predefinição. Os valores false ou muito elevados destinam-se a diagnóstico e comparação A/B.
  • Use filmicMode (ou /fmm filmic on) apenas durante a gravação de vídeos e volte a desativá-lo depois.
  • Use idleWalkBlendTicks, deathBlendTicks, weightedTurning, turnSpeedCap e turnAcceleration para ajustar a forma como os modelos se animam e rodam. Defina os tempos de transição como 0 e weightedTurning como false para obter a mudança e a rotação instantâneas das versões anteriores.
  • displayBonesRideTheirEntity e modelViewersTrackHiddenBodies estão ativas por predefinição. Defini-las como false restaura os teletransportes osso a osso anteriores, em que os modelos em movimento e as montadas podem ficar para trás da sua entidade.
  • Reduza maxParticlesPerEmitter e maxParticlesPerViewer, ou defina particleEffectsEnabled: false, se os modelos com muitas partículas consumirem demasiada largura de banda.
  • Use shop_config.yml e os campos shopEnabled/shopPrice de cada receita para ajustar a loja sem alterar código.

Limitações conhecidas​

  • O comportamento Bedrock depende de sendCustomModelsToBedrockClientsV2 e de toda a instalação Floodgate/Geyser/pacote de recursos. Confirme-o na combinação exata que pretende usar.
  • Se a loja estiver ativada mas faltar Vault ou um fornecedor de economia, permanece indisponível e regista um aviso específico no arranque. /fmm version apenas indica a versão do plugin; consulte esses avisos se /fmm shop não aparecer.