FreeMinecraftModels
FreeMinecraftModels é ao mesmo tempo um runtime de modelos customizados e uma API voltada para desenvolvedores.
O plugin atual não é mais apenas um fluxo de trabalho de "pasta imports mais /fmm reload". A base de código atual adiciona:
- um fluxo de configuração inicial e lembrete ao entrar até que a configuração seja marcada como concluída
- um menu de configuração gerenciado pelo Nightbreak para instalação e atualização de pacotes oficiais de modelos
- uma pasta de resource pack gerado em
plugins/FreeMinecraftModels/output/FreeMinecraftModels - um artefato de pack compactado em
plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip - uma superfície de comandos mais ampla para configuração, atualizações de conteúdo, spawn, disfarces, props e depuração
- bones de ponto de montaria — bones cujo nome começa com
m_criam pontos de assento montáveis em um modelo, permitindo que jogadores montem entidades customizadas - JSON de modelo de exibição customizado — coloque um arquivo
.jsonirmão (exportação de display-item do Blockbench) ao lado de um.bbmodelpara substituir a aparência do item no jogo (requer 1.21.4+) - itens customizados programáveis — modelos cuja configuração YML define
material:tornam-se itens seguráveis customizados com suporte completo a scripting Lua e 22 hooks de item - navegador de conteúdo para admins (
/fmm admin) — um menu de inventário para admins navegarem pacotes instalados, pastas, modelos e itens customizados - menu de itens craftáveis para jogadores (
/fmm) — um menu de inventário mostrando todos os itens craftáveis com suas receitas; clicar em um item mostra a grade espacial 3x3 com seta e resultado - sistema de disfarce de jogadores —
/fmm disguise <model> [player],/fmm undisguise [player],/fmm disguiselist, com umaDisguiseAPIpública para plugins de terceiros - loja de mobília —
/fmm shopopcional baseado em Vault para vender props craftáveis, configurada por receita viashopEnabled/shopPrice - API de UI de jogador — scripts Lua podem exibir boss bars, action bars e títulos para jogadores
- LocationAPI — plugins de terceiros podem registrar detectores de dungeon e provedores de proteção que alimentam os predicados Lua
em.location.is_in_dungeoneem.location.is_protecteddo FMM
Comece Aqui
Scripting Lua
O FreeMinecraftModels inclui suporte a scripting Lua tanto para props quanto para itens customizados, alimentado pelo motor de scripting MagmaCore 2.0. Os scripts ficam em plugins/FreeMinecraftModels/scripts/.
Hooks de Prop (8)
Scripts de prop podem responder aos seguintes hooks:
| Hook | Gatilho |
|---|---|
on_spawn | O prop é spawnado no mundo |
on_game_tick | A cada tick de jogo enquanto o prop estiver vivo |
on_zone_enter | Um jogador entra na zona de interação do prop |
on_zone_leave | Um jogador sai da zona de interação do prop |
on_destroy | O prop é removido do mundo |
on_left_click | Um jogador clica com o botão esquerdo no prop |
on_right_click | Um jogador clica com o botão direito no prop |
on_projectile_hit | Um projétil atinge o prop |
Scripts de prop recebem uma tabela context.prop com campos como model_id e current_location, e métodos como play_animation(name) e stop_animation().
Hooks de Item (22)
Scripts de itens customizados (para modelos com material: definido em seu YML) podem responder aos seguintes hooks:
| Hook | Gatilho |
|---|---|
on_equip | O item é equipado (entra em um slot ativo) |
on_unequip | O item é desequipado (sai de um slot ativo) |
on_attack_entity | O jogador ataca uma entidade segurando o item |
on_kill_entity | O jogador mata uma entidade segurando o item |
on_take_damage | O jogador sofre dano enquanto o item está equipado |
on_shield_block | O jogador bloqueia dano com um escudo |
on_shoot_bow | O jogador atira com um arco |
on_projectile_hit | Um projétil disparado pelo jogador atinge algo |
on_projectile_launch | O jogador lança um projétil |
on_right_click | O jogador clica com o botão direito segurando o item |
on_left_click | O jogador clica com o botão esquerdo segurando o item |
on_shift_right_click | Shift + clique direito segurando |
on_shift_left_click | Shift + clique esquerdo segurando |
on_interact_entity | O jogador clica com botão direito em uma entidade segurando |
on_swap_hands | O item é trocado entre as mãos |
on_drop | O jogador derruba o item |
on_break_block | O jogador quebra um bloco segurando o item |
on_consume | O item é consumido (comida/poção) |
on_item_damage | O item sofre dano de durabilidade |
on_fish | O jogador usa uma vara de pesca |
on_death | O jogador morre com o item equipado |
on_game_tick | A cada tick do servidor enquanto o item estiver equipado |
Scripts de item recebem uma tabela context.item com campos e métodos relevantes ao item segurado e ao jogador que o segura. Scripts Lua também podem usar a API de UI do jogador para exibir boss bars, action bars e títulos.
Notas Atuais
- Packs oficiais gerenciados pelo Nightbreak embutidos no plugin:
Basic Furniture Pack,BetterStructures Prop Pack,EliteMobs Prop Pack,Craftenmine's Weapons Item PackeCraftenmine Tools Item Pack. - O FreeMinecraftModels reconstrói sua saída de resource pack na inicialização e em
/fmm reload, e dispara umFmmReloadedEventpara que plugins dependentes possam reanexar suas referências de modelo. - O ResourcePackManager continua sendo a forma recomendada de distribuir automaticamente o pack gerado aos clientes.