Add-on

"For the uninitiated, an Add-On is basically a pack of files that lets you change how Minecraft's world works. Want 50ft chickens? You can have them! Want to create a pigman army to do your bidding and dress them all in frilly tutus? You can do that too, you weirdo! If you want more examples of what you can do with them, check out our dedicated Add-Ons page. They're pretty powerful things!"

- Michael Ott

Add-ons are the first step towards bringing customization to all editions of Minecraft and are officially supported by Mojang/Minecraft. Currently, add-ons are only supported on Bedrock Edition platforms, which includes also the Windows 10, Gear VR and Fire TV Editions. They currently allow players to transform the look of their worlds and change the behavior of mobs. They are accomplished by behavior packs. The documentation provided on these pages is officially supported and endorsed. It was provided by the Minecraft development team in order to assist the community.

To provide feedback on Add-Ons, please visit the official feedback site.

Reference guides
Current Release (1.9.0.15):
 * Bedrock Edition creator guidelines
 * Bedrock Edition entity components
 * Bedrock Edition animation documentation
 * Bedrock Edition particles documentation

Beta (1.10.0.3):
 * Bedrock beta add-on documentation
 * Bedrock beta animation documentation
 * Particles Reference Guide
 * Schemas Reference Guide
 * Minecraft Script Engine Reference Guide
 * MoLang Reference Guide
 * UI Reference Guide

Tutorials

 * Creating resource packs
 * Creating behavior packs
 * Changing Minecraft entity models

Templates
Current Release:
 * Vanilla Resource Pack files (1.9.0.15)
 * Vanilla Behavior Pack files (1.9.0.15)

Beta (1.11.0.3):
 * Beta Resource Pack files (1.11.0.3)
 * Beta Behavior Pack files (1.11.0.3)
 * MINECON 2018 New Entity Sample Resources
 * MINECON 2018 New Entity Sample Behaviors

Script Engine Example Packs:
 * Minecraft Scripting Mob Arena Demo
 * Minecraft Scripting Turn-Based Demo

Other resources

 * Add-ons information on minecraft.net
 * Add-ons on CurseForge
 * Minecraft.net blog post on different pack types
 * Visual Studio Code (Free text/code editor)
 * Paint.net (Free image editor)
 * Notepad++ (Free text editor)
 * Blockbench (Free 3D model editor)

History
Since the early development of the original Java edition of Minecraft, there have been plans to implement an official way for developers to add and change content in the game. Plans for official game customization date back to July 5, 2010, with the Modding API planned after the release of. It was then stated to be released in Beta 1.8. The Modding API was then rebranded as the Plugin API, with the release originally stated to be planned for 1.3, then for 1.4, and then it was accidentally stated by Curse that it would be implemented in 1.5.

At MINECON 2012, Mojang shared their vision for the future of the Plugin API. The API was to be developed by the Bukkit team and intended to simplify the modding  and downloading process,   although containing a slightly limited feature set. After initially publishing a developer website (http://dev.minecraft.net) and GitHub page, these were both taken down within a year.

Developers on numerous occasions have mentioned that many changes made in the game's code were in preparation for the Plugin API, including Dinnerbone on July 29th 2014, Grum at the "The Minecraft Team - Behind the Scenes" panel on July 5th, 2015 and Dinnerbone again on October 19th 2015 while working on the loot tables for 1.9. A user replied "I think an official "we're working on it" would really help a lot" to which Dinnerbone replied "We're working on it."

On August 12, 2016, Searge tweeted: "There will be news about the API at Minecon. I'll talk about the things I'm working on and what our plans are. But no more details for now." The next day it was confirmed by Grum to be for Pocket Edition and at MINECON the plan and roadmap for the development of Add-Ons were outlined.