MC Toolkit

Anleitungen / Fehlerbehebung

Datapack lädt nicht? Die Ordnerstruktur und die drei Namen, die übereinstimmen müssen

Ein Datapack, das nicht in /datapack list auftaucht, hat ein Pfadproblem, kein Codeproblem. Hier ist der exakte Baum, die Namespace-Regel und die Ordner, die umbenannt wurden.

/datapack list zeigt nichts an oder zeigt das Pack als deaktiviert. Fast immer ist das JSON in Ordnung und die Ordner sind falsch.

Der Baum

world/datapacks/my_pack/
├── pack.mcmeta
└── data/
    ├── my_namespace/
    │   ├── function/         one .mcfunction per file
    │   ├── recipe/
    │   ├── loot_table/
    │   ├── advancement/
    │   └── predicate/
    └── minecraft/
        └── tags/
            └── function/
                └── load.json

Drei Namen müssen übereinstimmen, und einer davon ist nicht offensichtlich:

  1. pack.mcmeta im Pack-Wurzelverzeichnis — neben data/, nicht darin.
  2. data/<namespace>/ — dein Namespace, kleingeschrieben, ohne Leerzeichen. Dieser wird zum Präfix in my_namespace:my_function.
  3. Die Namen der Kategorieordner, die sich geändert haben und die übliche Fehlerquelle sind.

Die Ordner wurden in den Singular umbenannt

Das hat viele Packs und viele Tutorials zerstört:

AltAktuell
functions/function/
recipes/recipe/
loot_tables/loot_table/
advancements/advancement/
predicates/predicate/
structures/structure/

Ein Pack, das die Pluralnamen verwendet, lädt — es erscheint in /datapack list — und tut einfach nichts, was die verwirrendste Fehlerart des Ganzen ist. tags/ blieb im Plural, aber die Ordner darin gingen mit allem anderen in den Singular über — tags/functions/ heißt jetzt tags/function/. Ja, das ist inkonsistent.

Etwas automatisch ausführen

Zwei spezielle Tags:

data/minecraft/tags/function/load.json   → runs once on load/reload
data/minecraft/tags/function/tick.json   → runs every tick

Beachte data/minecraft/, nicht deinen eigenen Namespace — das Tag gehört Minecraft, die Funktionen, auf die es zeigt, gehören dir:

{ "values": ["my_namespace:setup"] }

Der Reihe nach diagnostizieren

  1. /datapack list — wenn das Pack gar nicht aufgelistet wird, fehlt pack.mcmeta, ist fehlerhaft oder eine Ebene zu tief.
  2. Aufgelistet, aber deaktiviert — /datapack enable "file/my_pack". Beachte das Präfix file/ und die Anführungszeichen.
  3. Aufgelistet und aktiviert, aber wirkungslos — Plural-Ordnernamen oder ein Load-Tag im eigenen Namespace statt minecraft.
  4. /reload und lies das Log (logs/latest.log oder die Launcher-Ausgabe). Eine Funktion mit einem Syntaxfehler wird dort mit „Failed to load function …" verworfen; im Chat steht nur, dass das Reload abgeschlossen ist.

Gezippt oder nicht

Beides funktioniert. Gezippt bedeutet pack.mcmeta im Zip-Wurzelverzeichnis, genau wie bei Resource Packs. Die Ordnerform ist während der Entwicklung einfacher, weil /reload Änderungen ohne erneutes Zippen übernimmt.

Platzierung auf dem Server

Auf einem Server lautet der Pfad <world>/datapacks/, wobei <world> der Wert von level-name in server.properties ist — nicht das Server-Wurzelverzeichnis. Das Pack in den Serverordner zu legen, ist der häufigste Fehler auf Serverseite.

Stelle mit dem Datapack Studio ein Pack mit den aktuellen Ordnernamen und einer gültigen pack.mcmeta zusammen und lade es dann fertig zum Ablegen herunter — und lege dein Load-Tag in data/minecraft/tags/function/ ab, wie oben beschrieben.

Datapack Studio →

Weitere Anleitungen

Alle ansehen →