(project-structure)=
# Project Structure

Recipe image generator projects have a structure similar to the {ref}`data repository<data-repository>`. Both contain folders that provide resources, such as **block-images,** **fonts,** **images,** and **templates.** These resources are used by the templates to generate the images. If a resource of the same name exists in both the working directory and the data repository, the resource in the working directory takes precedence.

The following list describes the structure of the working directory:

📁 block-images\
📁 fonts\
📁 generated-images\
📁 images\
📁 templates\
🗒️ data_map.json\
🗒️ recipe_properties.json\
🗒️ recipe_properties.md

## 📁 block-images

This path is used to provide renders of the blocks for generating the recipe images. This path should be only used for custom blocks for the blocks that use a custom texture on the map.

This is the path that opens when you run the app in the interactive mode and you press the "Project block image" button (see the 
{ref}`Usage<usage>` article for more details about the interactive mode).

## 📁 fonts
This path is used to provide custom fonts for the templates of the project (the *.ttf* files).

## 📁 generated-images
This is the path where the images are generated when you press the "Generate" button.

## 📁 images
This path can be used to provide custom images for the templates.

For example you can use it to put images of entities of the map in there. After doing that you can use the variable patterns to reference the images in the templates while generating recipes for the spawn eggs of the entities. You can learn more about the variables in the {ref}`Templates<templates>` article.

## 📁 templates
This directory can be used to define custom templates. See the {ref}`Templates<templates>` article to learn how to create templates and learn about their syntax.

##  🗒️ data_map.json
This is the file that the Recipe Image Generator uses to store the inforation about texture mapping of the custom blocks and images. It's generated by the tool and direct access to this file is not necessary unless you know what you're doing and you're trying to fix some issues.

## 🗒️recipe_properties.json

This file is used to provide additional information to the templates regarding the recipes. The most popular use case is to provide the description of the recipes. You can find more details about the structure of this files in the {ref}`Recipe Properties<recipe-properties>` article.

## 🗒️recipe_properties.md

It's a summary that you can generate based on the `recipe_properties.json` file using the "Export Text" button. It contains the same data but in a different format. **The recipe_properties.md file is only for reading and should not be edited manually.**
