Skip to main content

Mods: Installation, Struktur & Entwicklung Guide

Mods fügen Mindustry Inhalt und Verhalten hinzu oder verändern sie — neue Blöcke, Items, Liquids, Einheiten, Sektoren, Planeten und Scripting-Hooks — und ermöglichen community-erstelltes Gameplay, visuelle Inhalte und Karten. Diese Seite fasst zusammen, wie Mods strukturiert sind, was sie üblicherweise enthalten, wie man auf sie zugreift oder sie entwickelt und praktische Hinweise zur Nutzung.

Was ein Mod enthalten kann

  • Neue Blöcke (Wände, Türme, Fabriken, Energieblöcke, Förderbänder, zweckgebundene Blöcke). Beispieltypen, die in Community-Beispielen gezeigt werden: benutzerdefinierte Wände, Wandkacheln und Verteidigungsblöcke.
  • Neue Items und Liquids (Ressourcen, Brennstoffe, Flüssigkeiten wie benutzerdefinierte Liquids).
  • Neue Projektile/Munitionstypen und Turret-Munitionszuordnungen (du kannst Projektile hinzufügen oder kopieren und sie Turrets zuweisen).
  • Neue Einheiten und Unit-Fabriken.
  • Neue Planeten, Sektoren und Sektor-Generatoren (einschließlich versteckter oder community-erstellter Sektoren, die prozedural erzeugte Sektoren ersetzen oder erweitern).
  • Visuelle Assets und Zeichenebenen für Blöcke (Regionen, Schatten, zusätzliche Draw-Layers).
  • Scripting, Handler und Prozessoren für benutzerdefinierte Verhaltensweisen, einschließlich Java/JavaScript-Inhaltspaarung.
  • Mod-seitige Overrides und verknüpfte Block-Verhalten, die Item-, Liquid- und Energie-Verwaltung an andere Kacheln weiterleiten.

Übliche technische Muster und APIs

  • Inhaltserweiterung: Mods erweitern häufig Basisklassen, um neuen Inhalt zu erstellen (z. B. Wall erweitern, um eine benutzerdefinierte Wand zu machen, oder GenericCrafter für Fabriken). Beim Erstellen von Inhalt setzt der Konstruktor Name, Beschreibungen und Flags wie solid.
  • Kopieren und Modifizieren vorhandener Inhalte: Du kannst Projektile, Munitionsarten oder Blöcke kopieren, Felder (damage, visuals, requirements) ändern und sie registrieren, um Änderungen an den Originalen zu vermeiden.
  • Item-/Liquid-Akzeptanz und -Verarbeitung: Blöcke können acceptItem/handleItem und acceptLiquid/handleLiquid überschreiben, um an verknüpfte Kacheln zu delegieren oder benutzerdefinierte Routing-Logik zu implementieren. Power-Hooks können ähnlich addPower-Aufrufe an verknüpfte Kacheln delegieren.
  • Zeichnen und Ebenen: Blöcke definieren Regionen und können zusätzliche Zeichenebenen (layer2) oder benutzerdefinierte Schattenregionen für die Darstellung angeben.
  • Sichtbarkeit beim Bauen und Anforderungen: Blöcke beinhalten buildVisibility, requirements, buildTime und size-Felder, um zu steuern, wann/wie sie erscheinen und wie sie gebaut werden.

Sektoren, Planeten und Karteninhalt

  • Mods können komplette Sektoren und Planeten hinzufügen. Community-erstellte „versteckte“ Angriffskarten werden von einigen modifizierten Kampagnen verwendet und ersetzen prozedural generierte Sektoren in Seeds; Autoren versehen sie oft mit Hinweisen zu Ressourcen und Verteidigungen (zum Beispiel Karten mit reichlich Shock Mines oder Endgame-Verteidigungen mit Plastanium/Phasenmauer).
  • Planeten können beim Testen über Konsolen-Flags zugänglich oder sichtbar gemacht werden (z. B. Planets..accessible = Planets..alwaysUnlocked = true).

Mods entwickeln: Sprachen und Werkzeuge

  • Java und JavaScript werden zum Erstellen von Mods unterstützt. Der Modder-Workflow kann Java für Kernänderungen oder ContentParser-ähnliche Skripte für eine JSON-ähnliche Inhaltserstellung verwenden.
  • Wesentliche Mod-Assets: Definitionen für Items, Liquids, Blöcke, Einheiten, Projektile, Planeten/Sektoren und lokalisierte Bundles (Name/Beschreibung) sind typisch.
  • Anfänger sollten damit beginnen, Beispielinhalte (Wände, Türme, Projektile) zu kopieren und zu bearbeiten, statt alles von Grund auf neu zu erstellen.
  • Nützliche Modding-Bereiche zum Lernen: Items & Liquids, Fabriken (GenericCrafter), Produktions-/Energieblöcke, Turret-Zeichenkomponenten, Effekte/Sounds/Status, Einheiten/Waffen/Fähigkeiten, Planeten/Sektoren/Generierung und das Auffinden von Klassen/Feldern im Spielcode.
  • Werkzeuge und Abläufe: Viele Modder wechseln zwischen Java und JavaScript (JavaJS) und nutzen Community-Tools (ACD, ContentParser), wenn angebracht.

Mods installieren und zugreifen

  • Auf Android sind die offiziellen Release- und Beta-Builds über Google Play verfügbar (werde Beta-Tester, um neueste Builds zu erhalten). iOS-Test-Builds werden über TestFlight verteilt.
  • Manche Mod-Inhalte oder versteckte Items/Planeten können über die Entwicklerkonsole (F8 drücken) freigeschaltet oder sichtbar gemacht werden, indem die Sichtbarkeits-Flags des Planeten oder Objekts auf true gesetzt werden.
  • Offizieller-Mod-Inhalt: Einige Mods werden von den Entwickler(n) erstellt und als „offizielle Mods“ innerhalb der Community verteilt; diese erscheinen in Mod-Listen, verhalten sich aber wie Community-Mods.

Beispiel-Snippets und Muster

  • Zuordnung eines benutzerdefinierten Projektils zu einer vorhandenen Turret-Munitionsliste (JavaScript-Stil):
    • Beispiel: Blocks.duo.ammoTypes.put(Items.pyratite, Blocks.hail.ammoTypes.get(Items.pyratite))
  • Ein Projektil kopieren und eine Eigenschaft ändern:
    • Beispielmuster: bullet = Blocks.hail.ammoTypes.get(Items.graphite).copy(); bullet.damage = 200; Blocks.hail.ammoTypes.put(Items.titanium, bullet)
  • Eine minimale benutzerdefinierte Wand-Definition (JavaScript-ähnlich):
    • Beispielmuster zeigt das Setzen von region, health, category, size, requirements, buildTime, icons und description beim Erweitern von Wall.

Best Practices und Community-Normen

  • Wiederverwenden und Kopieren vorhandener Inhalte, wo möglich, um mit Spielbalance und visuellen Stilen kompatibel zu bleiben.
  • Lokalisierungsschlüssel in Bundles (block.[name].name und block.[name].description) belassen, um Übersetzungen zu unterstützen.
  • Neue Sektoren und Planeten vor der Veröffentlichung mit Konsolen-Sichtbarkeits-Flags testen.
  • Über Issue-Reports oder Pull Requests zu Fehlern beitragen, wenn du in Java programmieren kannst; tritt Community-Kanälen für Übersetzungen, Diskussion und Feedback bei.
  • Beim Erstellen komplexer verknüpfter Blöcke sicherstellen, dass überschreibende Methoden accept/handle-Funktionen und Energie-Routing korrekt an verknüpfte Kacheln delegieren, um unterbrochene Lieferketten zu vermeiden.

Wo Mods verwendet werden

  • Mods treiben benutzerdefinierte Survival-Karten, community-erstellte Angriffssktoren, neuen Kampagneninhalt und Quality-of-Life-Tools für Ersteller an.
  • Einige offizielle und Community-Mods werden als Add-ons verpackt und über den Mod-Browser oder externes Hosting verteilt.

Dieser Leitfaden deckt die gängigen Strukturen und Workflows ab, denen du beim Nutzen oder Erstellen von Mindustry-Mods begegnest: Inhaltserweiterung, Asset- und Verhaltens-Overrides, Sektor/Planet-Ergänzungen sowie praktische Schritte zum Testen und Verteilen.

Pages featured in this guide