424 lines
14 KiB
Markdown
424 lines
14 KiB
Markdown
---
|
|
title: Releasing a Mod
|
|
layout: default
|
|
root: ../..
|
|
idx: 7.5
|
|
redirect_from: /en/chapters/releasing.html
|
|
---
|
|
|
|
## Introduction
|
|
|
|
Releasing, or publishing, a mod allows other people to make use of it. Once a mod has been
|
|
released it might be used in singleplayer games or on servers, including public servers.
|
|
|
|
* License Choices
|
|
* Packaging
|
|
* Uploading
|
|
* Forum Topic
|
|
|
|
### Before you release your mod, there are some things to think about:
|
|
|
|
* Is there another mod that does the same thing? If so, how does yours differ or improve on it?
|
|
* Is your mod useful?
|
|
|
|
## License Choices
|
|
|
|
You need to specify a license for your mod.
|
|
**Public domain is not a valid licence**, as the definition varies in different countries.
|
|
|
|
Your code and your art need different things from the licenses they use. For example,
|
|
Creative Commons licenses shouldn't be used with source code,
|
|
but can be suitable choices for artistic works such as images, text and meshes.
|
|
|
|
You are allowed any license; however, mods which disallow derivatives are banned from the
|
|
official Minetest forum. (Other developers must be able to take your mod, modify it,
|
|
and release it again.)
|
|
|
|
### LGPL and CC-BY-SA
|
|
|
|
This is a common license combination in the Minetest community, and is what
|
|
Minetest and minetest_game use.
|
|
You license your code under LGPL 2.1 and your art under CC-BY-SA. This means:
|
|
|
|
* Anyone can modify, redistribute and sell modified or unmodified versions.
|
|
* If someone modifies your mod, they must give their version the same license.
|
|
* Your copyright notice must be kept.
|
|
|
|
Add this copyright notice to your README.txt, or as a new file called LICENSE.txt:
|
|
|
|
License for Code
|
|
----------------
|
|
|
|
Copyright (C) 2010-2013 Your Name <emailaddress>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU Lesser General Public License as published by
|
|
the Free Software Foundation; either version 2.1 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License along
|
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
License for Textures, Models and Sounds
|
|
---------------------------------------
|
|
|
|
CC-BY-SA 3.0 UNPORTED. Created by Your Name
|
|
|
|
### WTFPL or CC0
|
|
|
|
These licenses allows anyone to do what they want with your mod.
|
|
This means they can modify, redistribute, sell, or leave out attribution.
|
|
These licenses can be used for both code and art.
|
|
|
|
It is important to note that WTFPL is strongly discouraged and people may
|
|
choose not to use your mod if it has this license.
|
|
|
|
### MIT
|
|
|
|
This is a common license for mod code. The only restriction it places on users
|
|
of your mod is that they must include the same copyright notice and license
|
|
in any copies of the mod or of substantial parts of the mod.
|
|
|
|
To use this license, include the following in your readme or license file:
|
|
|
|
Copyright (c) <year> <your name> <emailaddress>
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
THE SOFTWARE.
|
|
|
|
|
|
## Packaging
|
|
|
|
There are some files that we recommend you include in your mod
|
|
when you release it.
|
|
|
|
### README.txt
|
|
|
|
You should provide a readme file. This should state:
|
|
|
|
* What the mod does.
|
|
* What the license is.
|
|
* Current version of mod.
|
|
* How to install the mod.
|
|
* What dependencies there are / what the user needs to install.
|
|
* Where to report problems/bugs or get help.
|
|
|
|
See appendix for an example and a generator.
|
|
|
|
### description.txt
|
|
|
|
This should explain what your mod does. Be concise without being vague.
|
|
It should be short because it will be displayed in the content installer.
|
|
|
|
Good example:
|
|
|
|
Adds soup, cakes, bakes and juices. The food mod which supports the most ingredients.
|
|
|
|
Don't do this:
|
|
|
|
(BAD) The food mod for Minetest.
|
|
|
|
### screenshot.png
|
|
|
|
Screenshots should be 3:2 (3 pixels of width for every 2 pixels of height)
|
|
and a [minimum size of 300 x 200px](https://github.com/minetest/minetest/issues/2874).
|
|
This is displayed in the mod store.
|
|
|
|
|
|
|
|
Uploading
|
|
---------
|
|
|
|
So that a potential user can download your mod, you need to upload it to somewhere
|
|
publicly accessible.\\
|
|
There are several methods you can use, but you should use the one that works
|
|
best for you, as long as it meets these requirements:\\
|
|
(and any other requirements which may be added by forum moderators)
|
|
|
|
* **Stable** - The hosting website should be unlikely to shut down without warning.
|
|
* **Direct link** - You should be able to click a link on the forum and download the file
|
|
without having to view another page.
|
|
* **Virus Free** - Mods with malicious content are not wanted.
|
|
|
|
### Github, or another VCS
|
|
|
|
It is recommended that you use a Version Control System because this:
|
|
|
|
* Allows other developers to easily submit changes.
|
|
* Allows the code to be previewed before downloading.
|
|
* Allows users to submit bug reports.
|
|
|
|
However, such systems may be hard to understand when you first use them.
|
|
|
|
The majority of Minetest developers use GitHub as a website to host their code,
|
|
but other alternatives are possible. For information on how to use GitHub,
|
|
please see:
|
|
|
|
* [Using Git](http://git-scm.com/book/en/v1/Getting-Started) - Basic concepts. Using the command line.
|
|
* [GitHub for Windows](https://help.github.com/articles/getting-started-with-github-for-windows/) -
|
|
Using a graphical interface on Windows to upload your code.
|
|
|
|
### Forum Attachments
|
|
|
|
You can use forum attachments instead.
|
|
This is done when creating a mod's forum topic (covered below).
|
|
|
|
First, you need to zip the files into a single file. How to do this varies from
|
|
operating system to operating system.
|
|
|
|
On Windows, go to the mod's folder. Select all the files.
|
|
Right click, Send To > Compressed (zipped) folder.
|
|
Rename the resulting zip file to the name of your mod's folder.
|
|
|
|
On the "Create a Topic" page (see below), go to the "Upload Attachment" tab at the bottom.
|
|
Click browse and select the zipped file. It is recommended that you
|
|
enter the version of your mod in the comment field.
|
|
|
|
<figure>
|
|
<img src="{{ page.root }}//static/releasing_attachments.png" alt="Upload Attachment">
|
|
<figcaption>
|
|
Upload Attachment tab.
|
|
</figcaption>
|
|
</figure>
|
|
|
|
## Forum Topic
|
|
|
|
You can now create a forum topic. You should create it in
|
|
the ["WIP Mods"](https://forum.minetest.net/viewforum.php?f=9) (Work In Progress)
|
|
forum.\\
|
|
When you consider your mod no longer a work in progress, you can
|
|
[request that it be moved](https://forum.minetest.net/viewtopic.php?f=11&t=10418)
|
|
to "Mod Releases."
|
|
|
|
### Content
|
|
|
|
The requirements of a forum topic are mostly the same as the recommendations for
|
|
a README.txt file:
|
|
|
|
* What the mod does.
|
|
* What the license is.
|
|
* Current version of mod.
|
|
* How to install the mod.
|
|
* What dependencies there are.
|
|
* Where to report problems/bugs or get help.
|
|
* Link to download, or an attachment.
|
|
|
|
You should also include screenshots of your mod in action, if relevant.
|
|
|
|
Here is an example. The Minetest forum uses bbcode for formating.
|
|
|
|
|
|
Adds magic, rainbows and other special things.
|
|
|
|
See download attached.
|
|
|
|
[b]Version:[/b] 1.1
|
|
[b]License:[/b] LGPL 2.1 or later
|
|
|
|
Dependencies: default mod (found in minetest_game)
|
|
|
|
Report bugs or request help on the forum topic.
|
|
|
|
[h]Installation[/h]
|
|
|
|
Unzip the archive, rename the folder to to modfoldername and
|
|
place it in minetest/mods/minetest/
|
|
|
|
( GNU/Linux: If you use a system-wide installation place
|
|
it in ~/.minetest/mods/minetest/. )
|
|
|
|
( If you only want this to be used in a single world, place
|
|
the folder in worldmods/ in your worlddirectory. )
|
|
|
|
For further information or help see:
|
|
[url]http://wiki.minetest.com/wiki/Installing_Mods[/url]
|
|
|
|
If you modify the above example for your mod topic, remember to
|
|
change "modfoldername" to the name of the folder your mod should be
|
|
in.
|
|
|
|
### Title
|
|
|
|
The subject of topic must be in one of these formats:
|
|
|
|
* [Mod] Mod Title [modname]
|
|
* [Mod] Mod Title [version number] [modname]
|
|
* eg: [Mod] More Blox [0.1] [moreblox]
|
|
|
|
### Profit
|
|
|
|
<figure>
|
|
<img src="{{ page.root }}//static/releasing_profit.png" alt="Profit">
|
|
<figcaption style="display:none;">
|
|
Profit
|
|
</figcaption>
|
|
</figure>
|
|
|
|
## Appendix: Readme and Forum Generator
|
|
|
|
<noscript>
|
|
<p>Javascript is required for this section!</p>
|
|
</noscript>
|
|
|
|
Title: <input id="t_title" value="My Super Special Mod"><br />
|
|
Modname: <input id="t_name" value="mysuperspecial"><br />
|
|
Description: <input id="t_desc" value="Adds magic, rainbows and other special things."><br />
|
|
Version: <input id="t_version" value="1.1"><br />
|
|
License: <input id="t_license" value="LGPL 2.1 or later"><br />
|
|
Dependencies: <input id="t_dep" value="default mod (found in minetest_game)"><br />
|
|
Download: <input id="t_download" value="http://example.com/download.zip"><br />
|
|
Additional:<br />
|
|
<textarea id="t_add">Report bugs or request help on the forum topic.</textarea><br />
|
|
|
|
<pre><code id="readme">My Super Special Mod
|
|
====================
|
|
|
|
Adds magic, rainbows and other special things.
|
|
|
|
Version: 1.1
|
|
License: LGPL 2.1 or later
|
|
Dependencies: default mod (found in minetest_game)
|
|
|
|
Report bugs or request help on the forum topic.
|
|
|
|
Installation
|
|
------------
|
|
|
|
Unzip the archive, rename the folder to mysuperspecial and
|
|
place it in minetest/mods/
|
|
|
|
( GNU/Linux: If you use a system-wide installation place
|
|
it in ~/.minetest/mods/. )
|
|
|
|
( If you only want this to be used in a single world, place
|
|
the folder in worldmods/ in your worlddirectory. )
|
|
|
|
For further information or help see:
|
|
http://wiki.minetest.com/wiki/Installing_Mods</code></pre>
|
|
|
|
<pre><code id="forum">Adds magic, rainbows and other special things.
|
|
|
|
[b]Version:[/b] 1.1
|
|
[b]License:[/b] LGPL 2.1 or later
|
|
[b]Dependencies:[/b] default mod (found in minetest_game)
|
|
[b]Download:[/b] http://example.com/download.zip
|
|
|
|
Report bugs or request help on the forum topic.
|
|
|
|
[h]Installation[/h]
|
|
|
|
Unzip the archive, rename the folder to mysuperspecial and
|
|
place it in minetest/mods/
|
|
|
|
( GNU/Linux: If you use a system-wide installation place
|
|
it in ~/.minetest/mods/. )
|
|
|
|
( If you only want this to be used in a single world, place
|
|
the folder in worldmods/ in your worlddirectory. )
|
|
|
|
For further information or help see:
|
|
http://wiki.minetest.com/wiki/Installing_Mods</code></pre>
|
|
|
|
<script src="http://blog.rubenwardy.com/static/jquery.min.js"></script>
|
|
<script>function regen() {
|
|
var title = $("#t_title").val();
|
|
var name = $("#t_name").val();
|
|
var desc = $("#t_desc").val();
|
|
var version = $("#t_version").val();
|
|
var license = $("#t_license").val();
|
|
var dep = $("#t_dep").val();
|
|
var add = $("#t_add").val();
|
|
|
|
var download = $("#t_download").val();
|
|
|
|
{
|
|
var res = ((title.length > 0) ? title : name) + "\n";
|
|
var header_count = res.length - 1;
|
|
for (var i = 0; i < header_count; i++) {
|
|
res += "=";
|
|
}
|
|
res += "\n\n";
|
|
|
|
res += desc + "\n\n";
|
|
|
|
if (version != "") {
|
|
res += "Version: " + version + "\n";
|
|
}
|
|
|
|
res += "License: " + license + "\n";
|
|
res += "Dependencies: " + dep + "\n\n";
|
|
|
|
if (add != "") {
|
|
res += add + "\n\n";
|
|
}
|
|
|
|
res += "Installation\n------------\n\nUnzip the archive, rename the folder to ";
|
|
res += name + " and\nplace it in minetest/mods/\n\n";
|
|
|
|
res += "( GNU/Linux: If you use a system-wide installation place\n" +
|
|
"\tit in ~/.minetest/mods/. )\n\n" +
|
|
"( If you only want this to be used in a single world, place\n" +
|
|
"\tthe folder in worldmods/ in your worlddirectory. )\n\n" +
|
|
"For further information or help see:\n" +
|
|
"http://wiki.minetest.com/wiki/Installing_Mods\n";
|
|
|
|
$("#readme").text(res);
|
|
}
|
|
|
|
{
|
|
var res = desc + "\n\n";
|
|
|
|
if (version != "") {
|
|
res += "[b]Version:[/b] " + version + "\n";
|
|
}
|
|
|
|
res += "[b]License:[/b] " + license + "\n";
|
|
res += "[b]Dependencies:[/b] " + dep + "\n";
|
|
|
|
res += "[b]Download:[/b] " + download + "\n\n";
|
|
|
|
if (add != "") {
|
|
res += add + "\n\n";
|
|
}
|
|
|
|
res += "[h]Installation[/h]\n\nUnzip the archive, rename the folder to ";
|
|
res += name + " and\nplace it in minetest/mods/\n\n";
|
|
|
|
res += "( GNU/Linux: If you use a system-wide installation place\n" +
|
|
"\tit in ~/.minetest/mods/. )\n\n" +
|
|
"( If you only want this to be used in a single world, place\n" +
|
|
"\tthe folder in worldmods/ in your worlddirectory. )\n\n" +
|
|
"For further information or help see:\n" +
|
|
"http://wiki.minetest.com/wiki/Installing_Mods\n";
|
|
|
|
$("#forum").text(res);
|
|
}
|
|
}
|
|
|
|
$(function() {
|
|
jQuery('input').on('input propertychange paste', regen);
|
|
jQuery('textarea').on('input propertychange paste', regen);
|
|
});
|
|
</script>
|