{"action":"created","comment":{"url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/comments/182491897","pull_request_review_id":113273602,"id":182491897,"diff_hunk":"@@ -0,0 +1,135 @@\n+Recipes\n+=======\n+\n+With the update to Minecraft 1.12, Mojang introduced a new data-driven recipe system based on JSON files. Since then it has been adopted by Forge as well and will be expanded with Minecraft 1.13.\n+\n+Loading Recipes\n+---------------\n+Forge will load all recipes which can be found within the `./assets/<modid>/models/recipes/` folder. You can call these files whatever you want, thought the vanilla convention is to name them after the output item. This name is also used as the registration key, but does not affect the operation of the recipe.\n+\n+The Recipe file\n+---------------\n+|     Property | Description |\n+|-------------:|------------|\n+|     type |  Let's Forge know of what type the recipe is. This can either be `minecraft:crafting_shaped` or `minecraft:crafting_shapeless`. You can also register a type for yourself or use Forge specific types.\n+|     pattern | A pattern list must be defined for a shaped recipe to define where which item has to be placed. A blank space means there is no item to placed at that position. |\n+|     key | Each key defined within the key list must define a character from the `pattern` list and what item it should hold. Undefined keys are treated as a blank space. |\n+|     data | The variant of the block or item to be used. |\n+|     `\"type\": \"forge:ore_dict\"` | Here the input items are part of the Forge [`OreDictionary`][OreDictionary]. Thus, an \"ore\" will be defined instead of an item. Leave this out if you don't want to use the [`OreDictionary`][OreDictionary]. |\n+|     result | Within the `result` keyword, the output item of the crafting recipe is defined. |\n+|     count | This is an optional keyword used to define how many items you want to get from the recipe. If this is left out, one item will be returned. |\n+\n+The basic structure of your recipe file should look like the following example file:\n+\n+!!! note\n+\n+\tThis is a basic example and does not show every possibility you may have.\n+\n+```json\n+{\n+    \"type\": \"minecraft:crafting_shaped\",\n+\t\"pattern\":\n+\t[\n+\t\t\"xxa\",\n+\t\t\"x x\",\n+\t\t\"xxx\"\n+\t],\n+\t\"key\":\n+\t{\n+\t\t\"x\":\n+\t\t{\n+\t\t\t\"type\": \"forge:ore_dict\",\n+\t\t\t\"ore\": \"diamond\"\n+\t\t},\n+\t\t\"a\":\n+\t\t{\n+\t\t    \"item\": \"mymod:myfirstitem\",\n+\t\t    \"data\": 1\n+\t\t}\n+\t},\n+\t\"result\":\n+\t{\n+\t\t\"item\": \"mymod:myitem\",\n+\t\t\"count\": 9\n+\t\t\"data\": 2\n+\t}\n+}\n+```\n+\n+Unlocking Recipes within the Recipe Book\n+----------------------------------------\n+When you first obtain an ingredient to a vanilla recipe it will automatically unlock the recipe in the\n+recipe book. To achieve the same affect, you have to use the [`Advancement`][Advancements] system and create\n+a new `Advancement` for each of your ingredients.\n+\n+!!! note\n+\n+\tThe advancement has to exist. This doesn't mean it has to be visible in the advancement tree.\n+\n+Item Objects\n+------------\n+\n+Type\n+----\n+TODO\n+\t\"type\": \"forge:oreshaped\",\n+\t\n+Groups\n+------\n+\n+Shaped and shapeless crafting\n+-----------------------------\n+Within this section we will take a closer look on the differences between defining a shaped and a shapeless crafting recipe. Please read both sections carefully as I won't explain the same keywords twice when they can be used within both recipe types!\n+\n+### Shaped crafting\n+Shaped recipes require the `pattern` and `key` keywords. A pattern defines the slot an item must appear in using placeholder characters. You can choose whatever character you want to be a placeholder for an item. Keys on the other hand define what items are to be used instead of the placeholders. A key is defined by a placeholder character and the item. \n+Additional the type `forge:ore_dict` may be added. This defines the item beeing part of the [`OreDictionary`][OreDictionary] and can for example be used when it doesn't matter which copper ore is used to produce a copper ingot. In this case the `ore` tag has to be used instead of the `item` tag to define the item.\n+The `data` tag is a optional and used to define the metadata of a block or item.\n+\n+### Shapeless crafting\n+A shapeless recipe doesn't make use of the `pattern` and `key` keywords. \n+\n+To define a shapeless recipe, you have to use the `ingredients` list. It defines which items have to be used for the crafting process and can also make use of the additional type `forge:ore_dict` and it's functionality as described above. It is even possible to define multiply instances of the same item which means multiply of these items have to be in place for the crafting recipe to take place. ","path":"docs/utilities/recipes.md","position":92,"original_position":92,"commit_id":"691de7a1b8351d90e7036e97c4708e01589706a3","original_commit_id":"691de7a1b8351d90e7036e97c4708e01589706a3","user":{"login":"TehNut","id":5789439,"avatar_url":"https://avatars3.githubusercontent.com/u/5789439?v=4","gravatar_id":"","url":"https://api.github.com/users/TehNut","html_url":"https://github.com/TehNut","followers_url":"https://api.github.com/users/TehNut/followers","following_url":"https://api.github.com/users/TehNut/following{/other_user}","gists_url":"https://api.github.com/users/TehNut/gists{/gist_id}","starred_url":"https://api.github.com/users/TehNut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TehNut/subscriptions","organizations_url":"https://api.github.com/users/TehNut/orgs","repos_url":"https://api.github.com/users/TehNut/repos","events_url":"https://api.github.com/users/TehNut/events{/privacy}","received_events_url":"https://api.github.com/users/TehNut/received_events","type":"User","site_admin":false},"body":"Same as above.","created_at":"2018-04-18T16:35:10Z","updated_at":"2018-04-18T16:39:00Z","html_url":"https://github.com/MinecraftForge/Documentation/pull/159#discussion_r182491897","pull_request_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/159","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/comments/182491897"},"html":{"href":"https://github.com/MinecraftForge/Documentation/pull/159#discussion_r182491897"},"pull_request":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/159"}}},"pull_request":{"url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/159","id":182345219,"html_url":"https://github.com/MinecraftForge/Documentation/pull/159","diff_url":"https://github.com/MinecraftForge/Documentation/pull/159.diff","patch_url":"https://github.com/MinecraftForge/Documentation/pull/159.patch","issue_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues/159","number":159,"state":"open","locked":false,"title":"Recipes","user":{"login":"MinecraftPlaye","id":9168045,"avatar_url":"https://avatars1.githubusercontent.com/u/9168045?v=4","gravatar_id":"","url":"https://api.github.com/users/MinecraftPlaye","html_url":"https://github.com/MinecraftPlaye","followers_url":"https://api.github.com/users/MinecraftPlaye/followers","following_url":"https://api.github.com/users/MinecraftPlaye/following{/other_user}","gists_url":"https://api.github.com/users/MinecraftPlaye/gists{/gist_id}","starred_url":"https://api.github.com/users/MinecraftPlaye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MinecraftPlaye/subscriptions","organizations_url":"https://api.github.com/users/MinecraftPlaye/orgs","repos_url":"https://api.github.com/users/MinecraftPlaye/repos","events_url":"https://api.github.com/users/MinecraftPlaye/events{/privacy}","received_events_url":"https://api.github.com/users/MinecraftPlaye/received_events","type":"User","site_admin":false},"body":"Adds documentation about the recipe system of Forge 1.12+.\r\n\r\nThis PR isn't complete yet as there is still a lot of research to be made, but I thought I open it now for other people provide additional information.\r\n\r\nMissing documentation:\r\n- [ ]  Item Objects\r\n- [ ]  Types\r\n- [ ]  Groups\r\n- [x] Shaped and Shapeless crafting\r\n- [ ]  Patterns\r\n- [ ]  Keys\r\n- [x]  Ingredients\r\n- [ ]  Results\r\n- [ ]  Adding conditions to your recipe\r\n- [ ]  Using the Recipe System for own blocks\r\n- [ ]  Changing vanilla recipes\r\n- [ ]  Removing vanilla recipes\r\n- [ ]  Output multiply item types\r\n- [ ]  Multiply recipes for the same item\r\n- [ ]  Smelting recipes\r\n- [ ]  Anything else?? \r\n\r\nI basically read a bit [here](https://gist.github.com/LexManos/2a11d4f7aa9d680d861dae4faf9dcfa6) and looked through some Github and BitBucket repositories while also asking friends of how this system works to get this much information together.\r\n\r\nNote: I haven't worked with the recipe system before, so there might be mistakes in there.","created_at":"2018-04-18T01:32:41Z","updated_at":"2018-04-18T16:39:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a8de666eb4d4c6331be61a847bef8ecdfa7dfa6c","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":587417035,"url":"https://api.github.com/repos/MinecraftForge/Documentation/labels/New%20Page","name":"New Page","color":"0e8a16","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/159/commits","review_comments_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/159/comments","review_comment_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues/159/comments","statuses_url":"https://api.github.com/repos/MinecraftForge/Documentation/statuses/691de7a1b8351d90e7036e97c4708e01589706a3","head":{"label":"MinecraftPlaye:recipes","ref":"recipes","sha":"691de7a1b8351d90e7036e97c4708e01589706a3","user":{"login":"MinecraftPlaye","id":9168045,"avatar_url":"https://avatars1.githubusercontent.com/u/9168045?v=4","gravatar_id":"","url":"https://api.github.com/users/MinecraftPlaye","html_url":"https://github.com/MinecraftPlaye","followers_url":"https://api.github.com/users/MinecraftPlaye/followers","following_url":"https://api.github.com/users/MinecraftPlaye/following{/other_user}","gists_url":"https://api.github.com/users/MinecraftPlaye/gists{/gist_id}","starred_url":"https://api.github.com/users/MinecraftPlaye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MinecraftPlaye/subscriptions","organizations_url":"https://api.github.com/users/MinecraftPlaye/orgs","repos_url":"https://api.github.com/users/MinecraftPlaye/repos","events_url":"https://api.github.com/users/MinecraftPlaye/events{/privacy}","received_events_url":"https://api.github.com/users/MinecraftPlaye/received_events","type":"User","site_admin":false},"repo":{"id":88981525,"name":"Documentation","full_name":"MinecraftPlaye/Documentation","owner":{"login":"MinecraftPlaye","id":9168045,"avatar_url":"https://avatars1.githubusercontent.com/u/9168045?v=4","gravatar_id":"","url":"https://api.github.com/users/MinecraftPlaye","html_url":"https://github.com/MinecraftPlaye","followers_url":"https://api.github.com/users/MinecraftPlaye/followers","following_url":"https://api.github.com/users/MinecraftPlaye/following{/other_user}","gists_url":"https://api.github.com/users/MinecraftPlaye/gists{/gist_id}","starred_url":"https://api.github.com/users/MinecraftPlaye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MinecraftPlaye/subscriptions","organizations_url":"https://api.github.com/users/MinecraftPlaye/orgs","repos_url":"https://api.github.com/users/MinecraftPlaye/repos","events_url":"https://api.github.com/users/MinecraftPlaye/events{/privacy}","received_events_url":"https://api.github.com/users/MinecraftPlaye/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MinecraftPlaye/Documentation","description":"Read the docs MinecraftForge documentation","fork":true,"url":"https://api.github.com/repos/MinecraftPlaye/Documentation","forks_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/forks","keys_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/teams","hooks_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/hooks","issue_events_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/issues/events{/number}","events_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/events","assignees_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/assignees{/user}","branches_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/branches{/branch}","tags_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/tags","blobs_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/languages","stargazers_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/stargazers","contributors_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/contributors","subscribers_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/subscribers","subscription_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/subscription","commits_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/contents/{+path}","compare_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/merges","archive_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/downloads","issues_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/issues{/number}","pulls_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/labels{/name}","releases_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/releases{/id}","deployments_url":"https://api.github.com/repos/MinecraftPlaye/Documentation/deployments","created_at":"2017-04-21T12:28:34Z","updated_at":"2018-03-27T13:50:18Z","pushed_at":"2018-04-18T13:49:02Z","git_url":"git://github.com/MinecraftPlaye/Documentation.git","ssh_url":"git@github.com:MinecraftPlaye/Documentation.git","clone_url":"https://github.com/MinecraftPlaye/Documentation.git","svn_url":"https://github.com/MinecraftPlaye/Documentation","homepage":null,"size":426,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"MinecraftForge:master","ref":"master","sha":"f4d8132081f78a2f53017ca6a57e3e44e809b6fb","user":{"login":"MinecraftForge","id":1390178,"avatar_url":"https://avatars2.githubusercontent.com/u/1390178?v=4","gravatar_id":"","url":"https://api.github.com/users/MinecraftForge","html_url":"https://github.com/MinecraftForge","followers_url":"https://api.github.com/users/MinecraftForge/followers","following_url":"https://api.github.com/users/MinecraftForge/following{/other_user}","gists_url":"https://api.github.com/users/MinecraftForge/gists{/gist_id}","starred_url":"https://api.github.com/users/MinecraftForge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MinecraftForge/subscriptions","organizations_url":"https://api.github.com/users/MinecraftForge/orgs","repos_url":"https://api.github.com/users/MinecraftForge/repos","events_url":"https://api.github.com/users/MinecraftForge/events{/privacy}","received_events_url":"https://api.github.com/users/MinecraftForge/received_events","type":"Organization","site_admin":false},"repo":{"id":34235955,"name":"Documentation","full_name":"MinecraftForge/Documentation","owner":{"login":"MinecraftForge","id":1390178,"avatar_url":"https://avatars2.githubusercontent.com/u/1390178?v=4","gravatar_id":"","url":"https://api.github.com/users/MinecraftForge","html_url":"https://github.com/MinecraftForge","followers_url":"https://api.github.com/users/MinecraftForge/followers","following_url":"https://api.github.com/users/MinecraftForge/following{/other_user}","gists_url":"https://api.github.com/users/MinecraftForge/gists{/gist_id}","starred_url":"https://api.github.com/users/MinecraftForge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MinecraftForge/subscriptions","organizations_url":"https://api.github.com/users/MinecraftForge/orgs","repos_url":"https://api.github.com/users/MinecraftForge/repos","events_url":"https://api.github.com/users/MinecraftForge/events{/privacy}","received_events_url":"https://api.github.com/users/MinecraftForge/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/MinecraftForge/Documentation","description":"Read the docs MinecraftForge documentation","fork":false,"url":"https://api.github.com/repos/MinecraftForge/Documentation","forks_url":"https://api.github.com/repos/MinecraftForge/Documentation/forks","keys_url":"https://api.github.com/repos/MinecraftForge/Documentation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MinecraftForge/Documentation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MinecraftForge/Documentation/teams","hooks_url":"https://api.github.com/repos/MinecraftForge/Documentation/hooks","issue_events_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues/events{/number}","events_url":"https://api.github.com/repos/MinecraftForge/Documentation/events","assignees_url":"https://api.github.com/repos/MinecraftForge/Documentation/assignees{/user}","branches_url":"https://api.github.com/repos/MinecraftForge/Documentation/branches{/branch}","tags_url":"https://api.github.com/repos/MinecraftForge/Documentation/tags","blobs_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/refs{/sha}","trees_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MinecraftForge/Documentation/statuses/{sha}","languages_url":"https://api.github.com/repos/MinecraftForge/Documentation/languages","stargazers_url":"https://api.github.com/repos/MinecraftForge/Documentation/stargazers","contributors_url":"https://api.github.com/repos/MinecraftForge/Documentation/contributors","subscribers_url":"https://api.github.com/repos/MinecraftForge/Documentation/subscribers","subscription_url":"https://api.github.com/repos/MinecraftForge/Documentation/subscription","commits_url":"https://api.github.com/repos/MinecraftForge/Documentation/commits{/sha}","git_commits_url":"https://api.github.com/repos/MinecraftForge/Documentation/git/commits{/sha}","comments_url":"https://api.github.com/repos/MinecraftForge/Documentation/comments{/number}","issue_comment_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues/comments{/number}","contents_url":"https://api.github.com/repos/MinecraftForge/Documentation/contents/{+path}","compare_url":"https://api.github.com/repos/MinecraftForge/Documentation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MinecraftForge/Documentation/merges","archive_url":"https://api.github.com/repos/MinecraftForge/Documentation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MinecraftForge/Documentation/downloads","issues_url":"https://api.github.com/repos/MinecraftForge/Documentation/issues{/number}","pulls_url":"https://api.github.com/repos/MinecraftForge/Documentation/pulls{/number}","milestones_url":"https://api.github.com/repos/MinecraftForge/Documentation/milestones{/number}","notifications_url":"https://api.github.com/repos/MinecraftForge/Documentation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MinecraftForge/Documentation/labels{/name}","releases_url":"https://api.github.com/repos/MinecraftForge/Documentation/releases{/id}","deployments_url":"https://api.github.com/repos/MinecraftForge/Documentation/deployments","created_at":"2015-04-20T03:34:18Z","updated_at":"2018-04-18T08:00:18Z","pushed_at":"2018-04-18T13:49:03Z","git_url":"git://github.com/MinecraftForge/Documentation.git","ssh_url":"git@github.com:MinecraftForge/Documentation.git","clone_url":"https://github.com/MinecraftForge/Documentation.git","svn_url":"https://github.com/MinecraftForge/Documentation","homepage":null,"size":416,"stargazers_count":149,"watchers_count":149,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":85,"mirror_url":null,"archived":false,"open_issues_count":30,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":85,"open_issues":30,"watchers":149,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/159"},"html":{"href":"https://github.com/MinecraftForge/Documentation/pull/159"},"issue":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/issues/159"},"comments":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/issues/159/comments"},"review_comments":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/159/comments"},"review_comment":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/pulls/159/commits"},"statuses":{"href":"https://api.github.com/repos/MinecraftForge/Documentation/statuses/691de7a1b8351d90e7036e97c4708e01589706a3"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"TehNut"}}