> For the complete documentation index, see [llms.txt](https://modthegungeon.gitbook.io/semi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://modthegungeon.gitbook.io/semi/writing-mods/file-hierarchy.md).

# File Hierarchy

Mods have certain enforced rules when it comes to the location of files and directories within the distributable.

Currently, the bare minimum mod contains only one file, `mod.yml`. This file specifies certain details about the mod, most of which are to be seen by the end user. See: [Metadata](/semi/writing-mods/metadata.md).

Apart from the metadata file, there are also certain files that are optional but extend the functionality of the Semi API:

* `resources` - This folder contains files and directories that can be accessed through various API methods from code.
* `mod.dll` - This file is the compiled .NET assembly containing executable code of the mod. The name of this file is set through the mod metadata (`mod.yml` file).
