Installing Mods

From Minetest Wiki
Revision as of 16:25, 4 December 2022 by ROllerozxa (talk | contribs)
Jump to navigation Jump to search
Languages Language: English • Deutsch • français • italiano • Bahasa Melayu

Security considerations

Mods are by default run in a secure environment that restricts access to the filesystem and execution of external programs, however not all sandboxes are 100% secure. Additionally do not mark mods as trusted or disable mod security altogether if you are not aware of what you are doing, as they will run unsandboxed at the same privileges as Minetest. This applies not only to malicious mods but benign ones with security vulnerabilities. Excercise caution when downloading mods outside of official channels such as ContentDB where mods are vetted by the community for safety and security.

Installing a mod

Mods can be installed from ContentDB in the "Browse online content" button in Minetest 5.0+. Mods downloaded this way are automatically installed and get checked for updates.

For mods downloaded manually, you would clone the source repository or extract the Zip archive into your mods folder.

Installation directory

The common place to install them is $path_user/mods/. That is minetest-install-directory/mods/ in the official Windows releases and on GNU/Linux with RUN_IN_PLACE enabled and ~/.minetest/mods/ in globally installed Minetest versions.

  • Location of the mods folder within the folder structure of a run-in-place installation of Minetest, including some of the folders Minetest adds after some usage as client and server, as well as the positions (…) that custom-made content goes. Unrelevant folders are not expanded.
minetest/
├── bin/
├── builtin/
├── cache/
├── client/
├── doc/
├── fonts/
├── games/
│   ├── minetest_game/
│   ├── minimal/
│   └── … (installed extra games)
├── locale/
├── mods/
│   └── … (installed extra mods and modpacks)
├── textures/
│   ├── base/
│   │   └── pack/
│   └── … (installed extra texturepacks)
└── worlds/
    └── … (saved worlds. Some with exclusive world mods)

After extracting the mod there you need to enable it for your world. This can either be done in the GUI by clicking on “Configure” in the world selection, or by adding load_mod_<modname> = true in the world.mt file in the world directory.

Note that newly installed mods are disabled for all worlds by default, so you explicitly need to enable them.

Additional install directories (all Minetest versions)

Other places to install mods are world-directory/worldmods/, $path_share/mods/ and $<path_user, path_share>/games/<gameid>/mods/. $path_share and $path_user are only relevant to system-wide installs of Minetest (currently, possible only on Linux). As mentioned above, Minetest on Windows and portable builds operate within their install directory itself, which corresponds to both $path_share and $path_user.

Note that users should generally install mods in the normal install directory and not in the additional ones. Note that having copies of the same mod in different places may easily generate mod conflicts.


Differences between the three kinds of places mods can be loaded from:

  • In the /mods folder technically parallel to the /bin folder the executable is in.

On different installations this may very well also be in some other Minetest location such as a shared, system/game, user or hidden folder. Only mods in this place are togglable. Mods in this folder can be run with any world created by any game. This is therefore an easy place to create mod conflicts that might even crash Minetest.

  • In a /games/<some_game>/mods folder.

In case of "Minetest Game", this could be a sub-folder of <someplace>/minetest/games/minetest_game/mods or <some_other_place>/minetest(or ~/.minetest)/games/minetest_game/mods.

Mods loaded from such locations are considered to be an essential part of said game and are not togglable. These mods apply to all worlds created with this game but not to any world created by another game (although many games may include the same mods)

  • In a /worlds/<name_of_some_world>/worldmods folder inside the sub-folder of a specific world.

Mods in a worldmods folder are not togglable and will run on and only on that specific world, and cannot be accessed from any other world.

Example structure

In this example the mods “digtron” and “tnt”, and the modpack “mesecons” are installed:

    mods/
    ├── digtron/
    │   ├── init.lua
    │   ├── mod.conf
    │   ├── awards.lua
    │   ├── README.md
    │   ├── sounds/
    │   │   ├── buzzer.ogg
    │   │   └── …
    │   └── textures/
    │       ├── digtron_axel_side.png
    │       └── …
    ├── tnt/
    │   ├── init.lua
    │   ├── mod.conf
    │   ├── README.txt
    │   ├── textures/
    │   │   ├── tnt_side.png
    │   │   └── …
    │   └── sounds/
    │       ├── tnt_explode.ogg
    │       └── …
    └── mesecons/
        ├── modpack.txt
        ├── mesecons/
        │   ├── init.lua
        │   └── …
        ├── mesecons_alias/
        │   ├── init.lua
        │   └── …
        ├── mesecons_blinkyplant/
        │   ├── init.lua
        │   └── …
        ├── mesecons_button/
        │   ├── init.lua
        │   └── …
        ├── …