|  |  | @ -229,13 +229,20 @@ modpacks) each time you connect to a server, so you don't have to | 
			
		
	
		
			
				
					|  |  |  | install anything yourself. Automatic "game" downloading also means that | 
			
		
	
		
			
				
					|  |  |  | each server can be very different, but load quickly, offering you many | 
			
		
	
		
			
				
					|  |  |  | experiences to try easily.</p> | 
			
		
	
		
			
				
					|  |  |  | <p>Anyone can make a "game" using Minetest by | 
			
		
	
		
			
				
					|  |  |  | writing mods or combining existing mods. Most "games" are based on | 
			
		
	
		
			
				
					|  |  |  | games that are included in the Minetest/games directory--however, some | 
			
		
	
		
			
				
					|  |  |  | games that differ drastically in gameplay can be made if one heavily | 
			
		
	
		
			
				
					|  |  |  | edits or replaces mods that provide core functionality. Must of | 
			
		
	
		
			
				
					|  |  |  | Minetest's core functionality is written in Lua. | 
			
		
	
		
			
				
					|  |  |  | </p> | 
			
		
	
		
			
				
					|  |  |  | <p>Examples are the best way to get started. Since mods are scripted in | 
			
		
	
		
			
				
					|  |  |  | Lua, every mod is open source. Almost every one is released under | 
			
		
	
		
			
				
					|  |  |  | some sort of public license as well, which usually allows you to modify, | 
			
		
	
		
			
				
					|  |  |  | reuse, and redistribute the code (usually under the condition that you | 
			
		
	
		
			
				
					|  |  |  | credit the original author). The license file sometimes has no file | 
			
		
	
		
			
				
					|  |  |  | extension, so you may have to pick a program to open it in Windows. | 
			
		
	
		
			
				
					|  |  |  | You can open it (or any other text file) in Notepad. However, Notepad++ | 
			
		
	
		
			
				
					|  |  |  | You can open it (or any other text file) in Notepad. However, Geany | 
			
		
	
		
			
				
					|  |  |  | is recommended since there is more than one undo step. For Lua | 
			
		
	
		
			
				
					|  |  |  | programming, you can install ZeroBrane Studio (which is free) then | 
			
		
	
		
			
				
					|  |  |  | install | 
			
		
	
	
		
			
				
					|  |  | @ -243,6 +250,25 @@ install | 
			
		
	
		
			
				
					|  |  |  | which patches ZeroBrane Studio to provide code completion | 
			
		
	
		
			
				
					|  |  |  | (a form of autocomplete with API usage tips for coding). | 
			
		
	
		
			
				
					|  |  |  | </p> | 
			
		
	
		
			
				
					|  |  |  | <p>Every mod, at minimum, must have a file called init.lua. You | 
			
		
	
		
			
				
					|  |  |  | should also add a description.txt describing it, a README.md or other | 
			
		
	
		
			
				
					|  |  |  | readme file explaining more, and a LICENSE.md or other license file | 
			
		
	
		
			
				
					|  |  |  | MIT License is used for Minetest itself, that is recommended. Some | 
			
		
	
		
			
				
					|  |  |  | people consider using GPL v3 to prevent the program from being used | 
			
		
	
		
			
				
					|  |  |  | on popular mobile devices, since the GPL v3 specifies that a user must | 
			
		
	
		
			
				
					|  |  |  | be able to not only reprogram but also replace the program with their | 
			
		
	
		
			
				
					|  |  |  | recompiled version--this may not be possible if your version shares a | 
			
		
	
		
			
				
					|  |  |  | namespace and key with the application you are changing, and you may not | 
			
		
	
		
			
				
					|  |  |  | have the same connectivity or functionality without using the same key. | 
			
		
	
		
			
				
					|  |  |  | Therefore, components or mods using GPL v3 may prevent their inclusion | 
			
		
	
		
			
				
					|  |  |  | into future version of Minetest "games", as several versions of | 
			
		
	
		
			
				
					|  |  |  | Minetest (often by other names) are on Google Play and the iOS App | 
			
		
	
		
			
				
					|  |  |  | Store. | 
			
		
	
		
			
				
					|  |  |  | You can find the MIT License online and paste it into Notepad or Geany. | 
			
		
	
		
			
				
					|  |  |  | Be sure to fill | 
			
		
	
		
			
				
					|  |  |  | in your name and the year you created the mod. Having a license will | 
			
		
	
		
			
				
					|  |  |  | make sure others feel safe using your mod and redistributing it if | 
			
		
	
		
			
				
					|  |  |  | that's what you want. </p> | 
			
		
	
		
			
				
					|  |  |  | <p> | 
			
		
	
		
			
				
					|  |  |  | API means application programming interface. It is just the set of | 
			
		
	
		
			
				
					|  |  |  | classes and/or functions you use to change the behavior of an existing | 
			
		
	
	
		
			
				
					|  |  | @ -253,7 +279,8 @@ conventions and placed public features there. In addition, many mods | 
			
		
	
		
			
				
					|  |  |  | have a api.txt or similarly named files. You can start by opening up | 
			
		
	
		
			
				
					|  |  |  | your minetest directory on your computer (after installing or otherwise | 
			
		
	
		
			
				
					|  |  |  | installing Minetest) and doing a search for api, or just open the | 
			
		
	
		
			
				
					|  |  |  | following files depending on what you want to do:<br/> | 
			
		
	
		
			
				
					|  |  |  | following files depending on what you want to do: | 
			
		
	
		
			
				
					|  |  |  | </p> | 
			
		
	
		
			
				
					|  |  |  | <ul> | 
			
		
	
		
			
				
					|  |  |  | <li>minetest/doc/menu_lua_api.txt</li> | 
			
		
	
		
			
				
					|  |  |  | <li>minetest/doc/fst_api.txt</li> | 
			
		
	
	
		
			
				
					|  |  | @ -271,6 +298,7 @@ following files depending on what you want to do:<br/> | 
			
		
	
		
			
				
					|  |  |  | <li>minetest/games/Bucket_Game/mods/coderbuild/flowerpot/api.md</li> | 
			
		
	
		
			
				
					|  |  |  | <li>minetest/games/Bucket_Game/mods/coderfood/farming/api.txt</li> | 
			
		
	
		
			
				
					|  |  |  | </ul> | 
			
		
	
		
			
				
					|  |  |  | <p> | 
			
		
	
		
			
				
					|  |  |  | Remember, you can always look at examples as well. You can find a mod | 
			
		
	
		
			
				
					|  |  |  | that does something similar to what you want, looking at all of the .lua | 
			
		
	
		
			
				
					|  |  |  | files in a mod like that may help. | 
			
		
	
	
		
			
				
					|  |  | @ -300,7 +328,44 @@ putting the mod in depends.txt, clearing crafting recipes, and other | 
			
		
	
		
			
				
					|  |  |  | similar steps--see <a href="https://github.com/poikilos/homedecor_ua"> | 
			
		
	
		
			
				
					|  |  |  | github.com/poikilos/homedecor_ua</a> for an example. | 
			
		
	
		
			
				
					|  |  |  | </p> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | <h4>Craftitems and Nodes</h4> | 
			
		
	
		
			
				
					|  |  |  | A node is drawn as a block, 3d mesh, or other drawtype and | 
			
		
	
		
			
				
					|  |  |  | is placeable. A craftitem can't be placed, so the only way to get rid | 
			
		
	
		
			
				
					|  |  |  | of it is to drop it, and like other things dropped it will become a | 
			
		
	
		
			
				
					|  |  |  | floating sprite waiting to be picked up by clicking. There are also | 
			
		
	
		
			
				
					|  |  |  | other types of entities in Minetest such as mobs and particles. | 
			
		
	
		
			
				
					|  |  |  | All items that aren't nodes are called craftitems even if they aren't | 
			
		
	
		
			
				
					|  |  |  | used in recipes. You can use the name of a node or craftitem when | 
			
		
	
		
			
				
					|  |  |  | defining a crafting recipe. However, you must depend on the mod being | 
			
		
	
		
			
				
					|  |  |  | used to ensure that it is loaded before your mod, if the item comes | 
			
		
	
		
			
				
					|  |  |  | from a different mod. You can depend on another mod by adding its name | 
			
		
	
		
			
				
					|  |  |  | to the depends.txt file in your mod. | 
			
		
	
		
			
				
					|  |  |  | <h4>Mobs</h4> | 
			
		
	
		
			
				
					|  |  |  | Creating passive or hostile Non-Player Characters or Enemy Characters | 
			
		
	
		
			
				
					|  |  |  | requires a mob api such as Simple Mobs, Mobs Redo, or codermobs | 
			
		
	
		
			
				
					|  |  |  | which share anestry in that order. Codermobs is included in Bucket_Game | 
			
		
	
		
			
				
					|  |  |  | and hence new versions of ENLIVEN. Some other mob frameworks include: | 
			
		
	
		
			
				
					|  |  |  | mobf, Jordan4Ibanez' OpenAI, and others. | 
			
		
	
		
			
				
					|  |  |  | <h4>Creating New Ores</h4> | 
			
		
	
		
			
				
					|  |  |  | Creating new ores or other blocks may be confusing after you learn the | 
			
		
	
		
			
				
					|  |  |  | API. If you want about 48 blocks before you find another cluster of | 
			
		
	
		
			
				
					|  |  |  | your ore, then the clust_scarcity should be 48*48*48 since the game is | 
			
		
	
		
			
				
					|  |  |  | 3D. The chance of finding a cluster is 1 out of the clust_scarcity | 
			
		
	
		
			
				
					|  |  |  | number. The cluster size (clust_size) only affects the size of the | 
			
		
	
		
			
				
					|  |  |  | "vein" (though technically there are multiple shapes of clusters allowed | 
			
		
	
		
			
				
					|  |  |  | and vein is not recommended since it is hundreds of times slower). | 
			
		
	
		
			
				
					|  |  |  | Minetest uses the generic term cluster to refer to all patterns of ore | 
			
		
	
		
			
				
					|  |  |  | deposits. The number of ores in the cluster is determined by | 
			
		
	
		
			
				
					|  |  |  | clust_num_ores. If your clust_size is 3, then that would be a 3*3*3 | 
			
		
	
		
			
				
					|  |  |  | cube (but you just specify 3, not 27 there) and the maximum number of | 
			
		
	
		
			
				
					|  |  |  | ores you could set for clust_num_ores is 27, though that is not | 
			
		
	
		
			
				
					|  |  |  | recommended because then the person would find a 3*3*3 area that is | 
			
		
	
		
			
				
					|  |  |  | completely ore (that would give the person 27 ore each time they found | 
			
		
	
		
			
				
					|  |  |  | a cluster). Generally, the ore is a node (drawn as a block) and the gem | 
			
		
	
		
			
				
					|  |  |  | or metal is a craftitem (drawn as a sprite). You normally should set the | 
			
		
	
		
			
				
					|  |  |  | drop of the ore to a separate craftitem (however, if it is something | 
			
		
	
		
			
				
					|  |  |  | you have to smelt such as a metal, you could drop the ore node, then | 
			
		
	
		
			
				
					|  |  |  | provide a "cooking" crafting recipe to get the metal). | 
			
		
	
		
			
				
					|  |  |  | </main> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | <footer> | 
			
		
	
	
		
			
				
					|  |  | 
 |