Templates

First thing first, I will highly recommend to forget about data pack templates as a pack that you download/copy every time you want to create a new one.

No, mcfunction isn't C#, you don't have to have a billion of declarations and instructions, all it takes to have a valid pack is to have a pack.mcmeta file!

If you want to be a good programmer, than you should understand what are you writing and why. This is one of the main points of this documentation.

So, how do you start developing then? Lets break it down.

pack.mcmeta

This file tells minecraft that this file is a data/resource pack. It must contain a pack version and at least empty description:

{
    "pack": {
        "pack_format": 8,
        "description": ""
    }
}

Description uses JSON Text Format.
Pack Format defines the version, your data pack works on.

Function Tags

Function tags are sets of functions. You can create your own, but there are 2 build-in ones: load & tick.

You can extend/override them by creating a file data / minecraft / tags / functions / load.json. Inside you can add your own functions in the list like this:

{
    "values": [
        "namespace:path/to/your/function"
    ]
}

The other is tick.json. You can add "replace": true, before "values": [ line to override it! What you shouldn't do with minecraft function tags though.