The Bedrock Wiki is a knowledge-sharing website for Technical Bedrock, containing documentation, tutorials, and general how-to information.
Here, you can contribute to this amazing, open-source resource!
Visit the website! Join the discord!
Please join the discord, which is where all wiki-communication takes place. While small changes and new articles do not need permission, large-scale changes should go through community review.
It is beyond the scope of this readme to teach the proper use of Git and GitHub, but you can always reach out personally for help. Some steps to get you started though (google steps if unsure):
make github account
fork the repository
make changes, commit changes, push changes
create pull requests
Please provide proper commit messages when contributing, this will make it much easier to approve pull requests. Don't change anything in the config unless you really need to.
Want to submit an article, but can't be bothered to learn Git, or GitHub? You can send me markdown articles directly, and I will add them manually.
You can locally test the website by installing Jekyll and then running bundle install
and bundle exec jekyll serve
.
Assuming the Ruby dependencies installed correctly, the local server will run and you should see http://127.0.0.1:4000
printed out.
You can now make changes to any of the markdown files and you'll see the changes reflected at that URL in your browser! Note the site can take several seconds to rebuild, so have an eye on your terminal window
Various formatting options (such as buttons and labels) come from out up-line theme: just the docs. Go there to learn about these tools.
You can annotate your code-blocks with filepath information, using the following format:
{% include filepath.html path="RP/textures/item_texture.json" %}
```jsonc
{
"resource_pack_name": "tut",
"texture_name": "atlas.items",
"texture_data": {
"meal": {
"textures": "textures/items/meal"
},
"gem": {
"textures": "textures/items/gem"
}
}
}
\```
You can also add a local path:
{% include filepath.html path="example.json" local_path="minecraft:entity/description%}
There is a number of CSS classes, which help build the directory structure.
Example:
<div markdown="0" class="folder-structure">
<ul>
<li><span class="folder">BP</span>
<ul>
<li><span class="folder">items</span>
<ul>
<li><span class="file">gem.item.json</span></li>
<li><span class="file">meal.item.json</span></li>
</ul>
</li>
</ul>
</li>
<li><span class="folder">RP</span>
<ul>
<li><span class="folder">items</span>
<ul>
<li><span class="file">gem.item.json</span></li>
<li><span class="file">meal.item.json</span></li>
</ul>
</li>
<li><span class="folder">texts</span>
<ul>
<li><span class="file">en_US.lang</span></li>
</ul>
</li>
<li><span class="folder">textures</span>
<ul>
<li><span class="file">item_texture.json</span></li>
<li><span class="folder">items</span>
<ul>
<li><span class="image">gem.png</span></li>
<li><span class="image">meal.png</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
Result:
- BP
- items
- gem.item.json
- meal.item.json
- items
- RP
- items
- gem.item.json
- meal.item.json
- texts
- en_US.lang
- textures
- item_texture.json
- items
- gem.png
- meal.png
- items
Changes unordered list style, so it resembles directory tree.
Adds folder emoji before element.
Adds text file emoji before element.
Adds image emoji before element.
There is also automatic structure generator at https://stirante.com/dir-converter/converter.html.
The text area on the left accepts a list of paths delimited by new line. After clicking the convert button, the HTML should be generated in text area on the right side.
To generate the output in the first example, use this input:
RP/texts/en_US.lang
RP/textures/item_texture.json
RP/items/meal.item.json
BP/items/meal.item.json
BP/items/gem.item.json
RP/items/gem.item.json
RP/textures/items/gem.png
RP/textures/items/meal.png
To link file inside directory structure to an element, add #<id>
after file path like this:
RP/texts/en_US.lang
RP/textures/item_texture.json
RP/items/meal.item.json#rp_meal_item
BP/items/meal.item.json#bp_meal_item
BP/items/gem.item.json#bp_gem_item
RP/items/gem.item.json#rp_gem_item
RP/textures/items/gem.png
RP/textures/items/meal.png
This will result in this output:
<div markdown="0" class="folder-structure">
<ul>
<li><span class="folder">BP</span>
<ul>
<li><span class="folder">items</span>
<ul>
<li><a href="#bp_gem_item" class="file">gem.item.json</>
</li>
<li><a href="#bp_meal_item" class="file">meal.item.json</>
</li>
</ul>
</li>
</ul>
</li>
<li><span class="folder">RP</span>
<ul>
<li><span class="folder">items</span>
<ul>
<li><a href="#rp_gem_item" class="file">gem.item.json</>
</li>
<li><a href="#rp_meal_item" class="file">meal.item.json</>
</li>
</ul>
</li>
<li><span class="folder">texts</span>
<ul>
<li><span class="file">en_US.lang</>
</li>
</ul>
</li>
<li><span class="folder">textures</span>
<ul>
<li><span class="file">item_texture.json</>
</li>
<li><span class="folder">items</span>
<ul>
<li><span class="image">gem.png</>
</li>
<li><span class="image">meal.png</>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
There are three kinds: Info, Warning, and Error
Use like this:
{% include warning.html
contents='Animation Controllers "reset" when an entity reloads (player join/leave, chunk reload, etc). This means that it will "jump" back to the default state. You should always have logic in your default state that can handle restarting any critical animations.'
%}
Or like this:
Remember! Render controllers work based on short-names. If you want to use the cow render controller, you need to provide the short-names it is using. In this case, you will need to provide:
- `default` geometry
- `default` texture
- `default` material