2014-12-11 11:56:37 +03:00
|
|
|
|
---
|
2014-12-11 23:04:07 +03:00
|
|
|
|
title: Folder Structure
|
2014-12-11 11:56:37 +03:00
|
|
|
|
layout: default
|
2014-12-12 12:13:30 +03:00
|
|
|
|
root: ../
|
2014-12-11 11:56:37 +03:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
Introduction
|
|
|
|
|
------------
|
|
|
|
|
|
2015-02-19 17:55:37 +03:00
|
|
|
|
In this chapter we will learn the basic structure of a mod's folder.
|
|
|
|
|
This is an essential skill when creating mods.
|
2014-12-11 11:56:37 +03:00
|
|
|
|
|
|
|
|
|
* Mod Folders
|
2014-12-12 23:04:24 +03:00
|
|
|
|
* Dependencies
|
2014-12-11 11:56:37 +03:00
|
|
|
|
* Mod Packs
|
|
|
|
|
|
|
|
|
|
Mod Folders
|
|
|
|
|
-----------
|
|
|
|
|
|
2015-02-19 17:55:37 +03:00
|
|
|
|
![Find the mod's folder]({{ page.root }}/static/folder_modfolder.jpg)
|
2014-12-18 21:57:13 +03:00
|
|
|
|
|
2015-02-19 17:55:37 +03:00
|
|
|
|
Each mod has its own folder, where all its Lua code, textures, models and sounds
|
|
|
|
|
are placed. These folders need to be placed in a mod location, such as
|
|
|
|
|
minetest/mods. Mods can be grouped into mod packs, which are explained below.
|
2014-12-11 11:56:37 +03:00
|
|
|
|
|
2015-02-19 17:55:37 +03:00
|
|
|
|
A "mod name" is used to refer to a mod. Each mod should have a unique mod name,
|
|
|
|
|
which you can choose - a good mod name can describes what the mod does.
|
|
|
|
|
Mod names can be make up of letters, numbers or underscores. The folder a mod is
|
|
|
|
|
in needs to be called the same as the mod name.
|
2014-12-18 21:57:13 +03:00
|
|
|
|
|
2014-12-11 11:56:37 +03:00
|
|
|
|
### Mod Folder Structure
|
2015-02-19 17:55:37 +03:00
|
|
|
|
Mod name (eg: "mymod")
|
2014-12-11 11:56:37 +03:00
|
|
|
|
- init.lua - the main scripting code file, which is run when the game loads.
|
|
|
|
|
- (optional) depends.txt - a list of mod names that needs to be loaded before this mod.
|
|
|
|
|
- (optional) textures/ - place images here, commonly in the format modname_itemname.png
|
|
|
|
|
- (optional) sounds/ - place sounds in here
|
|
|
|
|
- (optional) models/ - place 3d models in here
|
|
|
|
|
...and any other lua files to be included by init.lua
|
|
|
|
|
|
2015-02-19 17:55:37 +03:00
|
|
|
|
Only the init.lua file is required in a mod for it to run on game load, however
|
|
|
|
|
the other items are needed by some mods to perform their functionality.
|
2014-12-11 11:56:37 +03:00
|
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
The depends text file allows you to specify what mods this mod requires to run, and what
|
|
|
|
|
needs to be loaded before this mod.
|
|
|
|
|
|
2014-12-31 19:51:24 +03:00
|
|
|
|
**depends.txt**
|
|
|
|
|
|
2014-12-11 11:56:37 +03:00
|
|
|
|
modone
|
|
|
|
|
modtwo
|
|
|
|
|
modthree?
|
|
|
|
|
|
2015-02-19 17:55:37 +03:00
|
|
|
|
As you can see, each modname is on its own line.
|
2014-12-12 19:52:20 +03:00
|
|
|
|
|
|
|
|
|
Mod names with a question mark following them are optional dependencies.
|
|
|
|
|
If an optional mod is installed, it is loaded before the current mod.
|
|
|
|
|
However, if the mod is not installed, the current one still loads.
|
|
|
|
|
This is in contrast to normal dependencies, which will cause the current
|
|
|
|
|
mod not to work if the mod is not installed.
|
2014-12-11 11:56:37 +03:00
|
|
|
|
|
|
|
|
|
Mod Packs
|
|
|
|
|
---------
|
|
|
|
|
|
2014-12-12 19:52:20 +03:00
|
|
|
|
Modpacks allow multiple mods to be packaged together, and move together.
|
2015-02-19 17:55:37 +03:00
|
|
|
|
They are useful if you want to supply multiple mods to a player but don't
|
2014-12-12 19:52:20 +03:00
|
|
|
|
want to make them download each one individually.
|
2014-12-11 11:56:37 +03:00
|
|
|
|
|
|
|
|
|
### Mod Pack Folder Structure
|
2014-12-12 19:52:20 +03:00
|
|
|
|
modpackfolder/
|
2014-12-11 11:56:37 +03:00
|
|
|
|
- modone/
|
|
|
|
|
- modtwo/
|
|
|
|
|
- modthree/
|
|
|
|
|
- modfour/
|
2014-12-12 19:52:20 +03:00
|
|
|
|
- modpack.txt – signals that this is a mod pack, content does not matter
|
2014-12-11 11:56:37 +03:00
|
|
|
|
|
|
|
|
|
Example Time
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
Are you confused? Don't worry, here is an example putting all of this together.
|
|
|
|
|
|
|
|
|
|
### Mod Folder
|
|
|
|
|
mymod/
|
|
|
|
|
- init.lua
|
|
|
|
|
- depends.txt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### depends.txt
|
|
|
|
|
default
|
|
|
|
|
|
|
|
|
|
### init.lua
|
|
|
|
|
{% highlight lua %}
|
2014-12-11 22:49:41 +03:00
|
|
|
|
print("This file will be run at load time!")
|
|
|
|
|
|
2015-02-19 17:55:37 +03:00
|
|
|
|
minetest.register_node("mymod:node", {
|
2014-12-11 22:49:41 +03:00
|
|
|
|
description = "This is a node",
|
|
|
|
|
tiles = {
|
|
|
|
|
"mymod_node.png",
|
|
|
|
|
"mymod_node.png",
|
|
|
|
|
"mymod_node.png",
|
|
|
|
|
"mymod_node.png",
|
|
|
|
|
"mymod_node.png",
|
|
|
|
|
"mymod_node.png"
|
|
|
|
|
},
|
|
|
|
|
groups = {cracky = 1}
|
|
|
|
|
})
|
2014-12-11 11:56:37 +03:00
|
|
|
|
{% endhighlight %}
|
|
|
|
|
|
|
|
|
|
Our mod has a name of "mymod". It has two files: init.lua and depends.txt.
|
|
|
|
|
The script prints a message and then registers a node – which will be explained in the next chapter.
|
|
|
|
|
The depends text file adds a dependency to the default mod, which is in minetest_game.
|