Eine Funktion ausführen
/function mypack:startFührt alle Befehle aus data/mypack/function/start.mcfunction einmal der Reihe nach aus.

/function führt alle Befehle einer .mcfunction-Datei aus einem Datenpaket der Reihe nach aus, mit demselben Ausführenden und derselben Position wie der Aufrufer. So werden aus langen Befehlsketten lesbare Dateien, und Makro-Funktionen bekommen Argumente. Ein Funktions-Tag startet mehrere Funktionen auf einmal.
/function <name> [<arguments>|with]| Argument | Erwartet | Was es macht |
|---|---|---|
| name | Funktion | ID der Funktion oder des Funktions-Tags, zum Beispiel mypack:start oder #minecraft:load. |
| argumentsoptional | NBT-Verbund | Compound mit den Makrowerten, zum Beispiel {name:"Alex",count:3}. |
| sourceoptional | Blockkoordinaten (x y z) | Woher die Makrowerte kommen: Blockkoordinaten, ein Objekt oder eine Speicher-ID, je nach Schlüsselwort. |
| pathoptional | NBT-Pfad | Optionaler NBT-Pfad in der Quelle; das Compound dort wird zu den Makro-Argumenten. |
/function mypack:startFührt alle Befehle aus data/mypack/function/start.mcfunction einmal der Reihe nach aus.
/function mypack:greet {name:"Alex"}In greet.mcfunction wird aus der Makrozeile $say Hallo $(name) der Befehl say Hallo Alex.
/function mypack:greet with storage mypack:data playerNimmt die Makrowerte aus dem Compound player des Datenspeichers mypack:data.
/function #minecraft:loadFührt alle Funktionen des Tags minecraft:load aus, die sonst nach dem Laden laufen.
/execute as @a at @s run function mypack:checkDie Funktion läuft einmal pro Spieler, @s und ~ ~ ~ beziehen sich auf diesen Spieler.
Felder ausfüllen, dann den Befehl kopieren.
BefehlsgeneratorEine Funktion ist eine Textdatei unter data/<namespace>/function/<name>.mcfunction in einem Datenpaket und wird als namespace:name aufgerufen. Schreib einen Befehl pro Zeile, ohne Schrägstrich am Anfang; Zeilen mit # sind Kommentare. Die Funktions-Tags #minecraft:load und #minecraft:tick starten ihre Funktionen nach dem Laden und in jedem Spieltick. Nach dem Bearbeiten einer Datei nutzt du /reload, und mit /datapack prüfst du, ob das Paket aktiv ist.
Eine Zeile, die mit $ beginnt, ist eine Makrozeile: Jedes $(schlüssel) wird vor dem Ausführen ersetzt. Die Werte übergibst du als Compound wie {name:"Alex"} oder liest sie mit with entity, with block oder with storage aus NBT-Daten. Fehlt ein Schlüssel, bricht der Aufruf mit „Fehlendes Argument“ ab. Makro-Funktionen lassen sich nicht mit /schedule verzögern.
execute as @a at @s run function mypack:check führt die Datei einmal pro Spieler aus.function-permission-level in server.properties.✓ Geprüft in der Java Edition 26.3 · aktualisiert am 2. November 2026
Nein, schreib jeden Befehl ohne Schrägstrich. Zeilen mit # am Anfang sind Kommentare, Zeilen mit $ sind Makrozeilen.
Trag sie in den Funktions-Tag minecraft:tick ein, in der Datei data/minecraft/tags/function/tick.json deines Pakets. Halte sie schlank, denn sie läuft 20-mal pro Sekunde.
Gib ihn mit aktivierten Cheats im Chat ein: /function <name> [<arguments>|with].
Cheats an oder Operator Stufe 2.