Skip to main content

Mods: Contenido, desarrollo e instalación Guide

Los mods añaden o cambian contenido y comportamiento en Mindustry — nuevos bloques, objetos, líquidos, unidades, sectores, planetas y puntos de extensión de scripting — permitiendo jugabilidad, visuales y mapas creados por la comunidad. Esta página resume cómo se estructuran los mods, qué suelen incluir, cómo acceder a ellos o desarrollarlos, y consejos prácticos para usarlos.

Qué puede contener un mod

  • Nuevos bloques (muros, torretas, fábricas, bloques de energía, transportadores, bloques de propósito especial). Tipos de ejemplo mostrados en ejemplos comunitarios: muros personalizados, baldosas de muro y bloques de defensa.
  • Nuevos items y liquids (recursos, combustibles, fluidos como líquidos personalizados).
  • Nuevos tipos de balas/munición y asignaciones de munición de torretas (puedes añadir o copiar balas y asignarlas a torretas).
  • Nuevas unidades y fábricas de unidades.
  • Nuevos planetas, sectores y generadores de sectores (incluyendo sectores "ocultos" creados por la comunidad que reemplazan o aumentan sectores procedurales).
  • Activos visuales y capas de dibujo para bloques (regiones, sombras, capas de dibujo extra).
  • Scripting, manejadores y procesadores para comportamientos personalizados, incluyendo parsing de contenido Java/JavaScript.
  • Sobrescrituras en el lado del mod y comportamientos de bloques enlazados que reenvían manejo de items, liquids y energía a otras losas.

Patrones técnicos comunes y APIs

  • Extensión de contenido: Los mods comúnmente extienden clases base para crear nuevo contenido (por ejemplo, extender Wall para hacer un muro personalizado, o GenericCrafter para fábricas). Al crear contenido el constructor establece nombre, descripciones y banderas como solid.
  • Copiar y modificar contenido existente: Puedes copiar balas, tipos de munición o bloques, modificar campos (damage, visuals, requirements) y registrarlos, evitando cambios en los originales.
  • Aceptación y manejo de items/liquids: Los bloques pueden sobrescribir acceptItem/handleItem y acceptLiquid/handleLiquid para delegar a losas enlazadas o implementar lógica de enrutamiento personalizada. Los hooks de energía pueden delegar llamadas addPower de forma similar a losas enlazadas.
  • Dibujo y capas: Los bloques definen regiones y pueden especificar capas de dibujo extra (layer2) o regiones de sombra personalizadas para visuales.
  • Visibilidad de construcción y requisitos: Los bloques incluyen buildVisibility, requirements, buildTime y campos de size para controlar cuándo/cómo aparecen y cómo se construyen.

Sectores, planetas y contenido de mapas

  • Los mods pueden añadir sectores y planetas completos. Los mapas de ataque "ocultos" creados por la comunidad son usados por algunas campañas modificadas y reemplazan sectores generados proceduralmente en seeds; los autores a menudo añaden notas sobre recursos y defensas (por ejemplo, mapas con abundantes Shock Mines, o defensas de fin de juego con Plastanium/Muro de fase).
  • Los planetas pueden hacerse accesibles o visibles mediante flags de consola al probar (por ejemplo, Planets..accessible = Planets..alwaysUnlocked = true).

Desarrollo de mods: lenguajes y herramientas

  • Java y JavaScript son compatibles para crear mods. El flujo de trabajo del modder puede usar Java para cambios de núcleo o scripts al estilo ContentParser para creación de contenido tipo JSON.
  • Activos esenciales de un mod: definiciones para items, liquids, blocks, units, bullets, planets/sectors y paquetes localizados (name/description) son típicos.
  • Los principiantes deberían empezar copiando y editando contenido de ejemplo (muros, torretas, balas) en vez de reinventar desde cero.
  • Áreas útiles a aprender para modding: items & liquids, fábricas (GenericCrafter), bloques de producción/eléctricos, partes de dibujo de torretas, efectos/sonidos/statuses, unidades/armas/habilidades, planetas/sectores/generación, y localizar clases/campos en el código del juego.
  • Herramientas y flujos: Muchos modders alternan entre Java y JavaScript (JavaJS) y usan herramientas comunitarias (ACD, ContentParser) cuando es apropiado.

Instalación y acceso a mods

  • En Android, las versiones oficiales y beta están disponibles vía Google Play (hazte beta tester para obtener las versiones más recientes). En iOS las builds de prueba se distribuyen vía TestFlight.
  • Parte del contenido de mods o items/planetas ocultos pueden desbloquearse o hacerse visibles mediante la consola de desarrollador (presiona F8) estableciendo las flags de visibilidad del planeta u objeto a true.
  • Contenido de mods oficiales: algunos mods son creados por el/los desarrollador(es) y distribuidos como "mods oficiales" dentro de la comunidad; estos aparecen en listas de mods pero se comportan como mods comunitarios.

Fragmentos de ejemplo y patrones

  • Asignar una bala personalizada a la tabla de munición de una torreta existente (estilo JavaScript):
    • Ejemplo: Blocks.duo.ammoTypes.put(Items.pyratite, Blocks.hail.ammoTypes.get(Items.pyratite))
  • Copiar una bala y cambiar una propiedad:
    • Patrón de ejemplo: bullet = Blocks.hail.ammoTypes.get(Items.graphite).copy(); bullet.damage = 200; Blocks.hail.ammoTypes.put(Items.titanium, bullet)
  • Una definición mínima de muro personalizado (estilo JavaScript):
    • El patrón de ejemplo muestra establecer region, health, category, size, requirements, buildTime, icons y description al extender Wall.

Buenas prácticas y normas de la comunidad

  • Reutiliza y copia contenido existente cuando sea posible para mantener compatibilidad con el balance y los visuales del juego.
  • Mantén las claves de localización en Bundles (block.[name].name y block.[name].description) para soportar traducciones.
  • Prueba nuevos sectores y planetas con flags de visibilidad de la consola antes de lanzar.
  • Contribuye mediante reportes de issues o pull requests para bugs si sabes programar en Java; únete a canales comunitarios para traducciones, discusión y retroalimentación.
  • Cuando crees bloques enlazados complejos, asegúrate de que los métodos sobrescritos deleguen correctamente las funciones accept/handle y el enrutamiento de energía a las losas enlazadas para evitar cadenas de suministro rotas.

Dónde se usan los mods

  • Los mods alimentan mapas de supervivencia personalizados, sectores de ataque creados por la comunidad, nuevo contenido de campaña y herramientas de calidad de vida para creadores.
  • Algunos mods oficiales y comunitarios se empaquetan como add-ons y se distribuyen a través del explorador de mods o alojamiento externo.

Esta guía cubre las estructuras y flujos de trabajo comunes que encontrarás al usar o crear mods para Mindustry: extensión de contenido, sobrescrituras de activos y comportamiento, adiciones de sectores/planetas, y pasos prácticos para probar y distribuir.