Saltar al contenido principal

FreeMinecraftModels

FreeMinecraftModels es tanto un runtime de modelos personalizados como una API orientada a desarrolladores.

El plugin actual ya no es solo un flujo de trabajo de "carpeta imports más /fmm reload". La base de código actual añade:

  • un flujo de configuración inicial y un recordatorio al unirse hasta que la configuración se marque como completa
  • un menú de configuración respaldado por Nightbreak para instalar y actualizar paquetes de modelos oficiales
  • una carpeta de resource pack generado en plugins/FreeMinecraftModels/output/FreeMinecraftModels
  • un artefacto de pack comprimido en plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip
  • una superficie de comandos más amplia para configuración, actualizaciones de contenido, generación, disfraces, props y depuración
  • huesos de punto de montaje -- los huesos cuyo nombre comienza con mount_ crean puntos de asiento montables en un modelo, permitiendo a los jugadores montar entidades personalizadas
  • JSON de modelo de visualización personalizado -- coloca un archivo .json hermano (exportación de display-item de Blockbench) junto a un .bbmodel para sobreescribir la apariencia del objeto en el juego (requiere 1.21.4+)
  • objetos personalizados con scripts -- los modelos cuya configuración YML establece material: se convierten en objetos portables con soporte completo de scripting Lua y 22 hooks de objetos
  • explorador de contenido de administrador (/fmm admin) -- un menú de inventario para que los administradores exploren paquetes instalados, carpetas, modelos y objetos personalizados
  • menú de objetos fabricables para jugadores (/fmm) -- un menú de inventario que muestra todos los objetos fabricables con sus recetas; hacer clic en un objeto muestra la cuadrícula espacial 3x3 con flecha y resultado
  • API de UI de jugador -- los scripts Lua pueden mostrar barras de jefe, barras de acción y títulos a los jugadores

Empieza Aquí

Scripting Lua

FreeMinecraftModels incluye soporte de scripting Lua tanto para props como para objetos personalizados, impulsado por el motor de scripting MagmaCore 2.0. Los scripts se ubican en plugins/FreeMinecraftModels/scripts/.

Hooks de Prop (8)

Los scripts de props pueden responder a los siguientes hooks:

HookActivador
on_spawnEl prop aparece en el mundo
on_game_tickCada tick del juego mientras el prop está activo
on_zone_enterUn jugador entra en la zona de interacción del prop
on_zone_leaveUn jugador sale de la zona de interacción del prop
on_destroyEl prop es eliminado del mundo
on_left_clickUn jugador hace clic izquierdo en el prop
on_right_clickUn jugador hace clic derecho en el prop
on_projectile_hitUn proyectil impacta en el prop

Los scripts de props reciben una tabla context.prop con campos como model_id y current_location, y métodos como play_animation(name) y stop_animation().

Hooks de Objeto (22)

Los scripts de objetos personalizados (para modelos con material: establecido en su YML) pueden responder a los siguientes hooks:

HookActivador
on_equipEl objeto se equipa (entra en una ranura activa)
on_unequipEl objeto se desequipa (sale de una ranura activa)
on_attack_entityEl jugador ataca una entidad mientras sostiene el objeto
on_kill_entityEl jugador mata una entidad mientras sostiene el objeto
on_take_damageEl jugador recibe daño mientras el objeto está equipado
on_shield_blockEl jugador bloquea daño con un escudo
on_shoot_bowEl jugador dispara un arco
on_projectile_hitUn proyectil disparado por el jugador impacta algo
on_projectile_launchEl jugador lanza un proyectil
on_right_clickEl jugador hace clic derecho mientras sostiene el objeto
on_left_clickEl jugador hace clic izquierdo mientras sostiene el objeto
on_shift_right_clickShift + clic derecho mientras se sostiene
on_shift_left_clickShift + clic izquierdo mientras se sostiene
on_interact_entityEl jugador hace clic derecho en una entidad mientras sostiene
on_swap_handsEl objeto se cambia entre manos
on_dropEl jugador suelta el objeto
on_break_blockEl jugador rompe un bloque mientras sostiene el objeto
on_consumeEl objeto se consume (comida/poción)
on_item_damageEl objeto recibe daño de durabilidad
on_fishEl jugador usa una caña de pescar
on_deathEl jugador muere mientras el objeto está equipado
on_game_tickCada tick del servidor mientras el objeto está equipado

Los scripts de objetos reciben una tabla context.item con campos y métodos relevantes para el objeto sostenido y el jugador que lo lleva. Los scripts Lua también pueden usar la API de UI de jugador para mostrar barras de jefe, barras de acción y títulos.

Notas Actuales

  • Los paquetes oficiales actuales gestionados por Nightbreak integrados en el plugin son Basic Furniture Pack, BetterStructures Prop Pack y EliteMobs Prop Pack.
  • FreeMinecraftModels reconstruye la salida de su resource pack durante el inicio y con /fmm reload.
  • ResourcePackManager sigue siendo la forma recomendada de distribuir el pack generado automáticamente a los clientes.