Okay, so I pretty much get how to create the JSON files for advancements. I'm just wondering what else needs to be done with them to actually add the advancements to the game?
Do you add them to a .jar and put them in the mods folder? I assume they need to be in an "advancements" folder within the .jar, but does that in turn need to be in an "assets" folder or something?
Can a custom advancement have an existing Minecraft advancement as a parent? Oh, and when creating children of a custom advancement, how do you identify the parent? I assume they don't use a prefix of "minecraft:" any more, do you use the name of the folder they're in or something?
You place advancements in .minecraft/saves/XXXX/data/advancements/YOURPACKHERE
YOURPACKHERE could be the name of your adventure map, or whatever you're making with the advancements, but it can also be a preexisting one, like "story".
You can't add recipes yet, by the way.
Regarding existing Minecraft advancements as parents, yes, it is possible. Your custom advancement with a Minecraft parent does not even have to be under story, it can be whatever you want.
Creating children of a custom advancement, it actually is using a prefix of "minecraft:" except they have the pack name after it. For example, if I made a pack called "CoolAdvancements", and I made a root for that pack, the parent of the advancements would be "minecraft:CoolAdvancements/root"
You need a root for advancements to work, otherwise it won't work.
Your tab for the pack will have the name of the root advancement that you created.
I hope this helps, and if you have more questions, I'm happy to help!
* I mention packs in this a lot, however there is no real official name to them, and don't confuse them with resource packs. They don't work in resource packs.
I've also probably made a few mistakes in this guide, made it pretty quick
Thank you very much! I've also learned that Dinnerbone plans to introduce a server-side version of resource packs for this kind of thing.
What if you want to alter an existing vanilla advancement? Is that possible?
If a modder wants to add an advancement, in addition to doing other things, does that mean he needs to distribute multiple files? One for the new advancements, and one for the mods folder?
EDIT: I've also been told that the necessity of using the 'minecraft:' prefix is actually a bug.
Thank you very much! I've also learned that Dinnerbone plans to introduce a server-side version of resource packs for this kind of thing.
What if you want to alter an existing vanilla advancement? Is that possible?
If a modder wants to add an advancement, in addition to doing other things, does that mean he needs to distribute multiple files? One for the new advancements, and one for the mods folder?
EDIT: I've also been told that the necessity of using the 'minecraft:' prefix is actually a bug.
Yes, you can very easily alter existing vanilla advancements just by having it in the same pack, like "story", etc, or whatever vanilla uses, which you can find in the assets folder
For modding, I'm not sure. There probably is a function in Forge, or built in to Minecraft to add an advancement without having to edit the worlds advancements files. I have to look into that, I'm sure you wouldn't need to add to the world though.
Okay, so I pretty much get how to create the JSON files for advancements. I'm just wondering what else needs to be done with them to actually add the advancements to the game?
Do you add them to a .jar and put them in the mods folder? I assume they need to be in an "advancements" folder within the .jar, but does that in turn need to be in an "assets" folder or something?
Can a custom advancement have an existing Minecraft advancement as a parent? Oh, and when creating children of a custom advancement, how do you identify the parent? I assume they don't use a prefix of "minecraft:" any more, do you use the name of the folder they're in or something?
Alright, here's the basics:
You place advancements in .minecraft/saves/XXXX/data/advancements/YOURPACKHERE
YOURPACKHERE could be the name of your adventure map, or whatever you're making with the advancements, but it can also be a preexisting one, like "story".
You can't add recipes yet, by the way.
Regarding existing Minecraft advancements as parents, yes, it is possible. Your custom advancement with a Minecraft parent does not even have to be under story, it can be whatever you want.
Creating children of a custom advancement, it actually is using a prefix of "minecraft:" except they have the pack name after it. For example, if I made a pack called "CoolAdvancements", and I made a root for that pack, the parent of the advancements would be "minecraft:CoolAdvancements/root"
You need a root for advancements to work, otherwise it won't work.
Your tab for the pack will have the name of the root advancement that you created.
I hope this helps, and if you have more questions, I'm happy to help!
* I mention packs in this a lot, however there is no real official name to them, and don't confuse them with resource packs. They don't work in resource packs.
I've also probably made a few mistakes in this guide, made it pretty quick
Thank you very much! I've also learned that Dinnerbone plans to introduce a server-side version of resource packs for this kind of thing.
What if you want to alter an existing vanilla advancement? Is that possible?
If a modder wants to add an advancement, in addition to doing other things, does that mean he needs to distribute multiple files? One for the new advancements, and one for the mods folder?
EDIT: I've also been told that the necessity of using the 'minecraft:' prefix is actually a bug.
Yes, you can very easily alter existing vanilla advancements just by having it in the same pack, like "story", etc, or whatever vanilla uses, which you can find in the assets folder
For modding, I'm not sure. There probably is a function in Forge, or built in to Minecraft to add an advancement without having to edit the worlds advancements files. I have to look into that, I'm sure you wouldn't need to add to the world though.
Hope this new info helps!