Add intllib support (except for Mining)
[minetest_doc_basics.git] / init.lua
blobd4a6640bd1ede781abab1880845bae4e0c5f1fc9
1 --[[
2 - TODO: Allow to disable images to save bandwidth
3 - TODO: Add API for subgame-specific changes so the entries are not too awfully generic
4 - Support for landing page
5 - Support to modify some parts of existing entries
6 - TODO: Add introduction to online play (if possible)
7 - TODO: Ideas for advanced entries:
8 - Sneak Glitch?
9 - Rendering (far view, etc.)
10 -- TODO: Better (official) support for customizable creative page
13 -- Boilerplate to support localized strings if intllib mod is installed.
14 local S
15 if minetest.get_modpath("intllib") then
16 S = intllib.Getter()
17 else
18 S = function(s) return s end
19 end
21 doc.new_category("basics",
23 name = S("Basics"),
24 description = S("Everything you need to know about Minetest to get started with playing"),
25 sorting = "custom",
26 sorting_data = {"quick_start", "minetest", "controls", "point", "items", "inventory", "hotbar", "tools", "weapons", "nodes", "mine", "build", "craft", "cook", "minimap", "cam", "sneak", "players", "liquids", "light", "groups", "glossary"},
27 build_formspec = doc.entry_builders.text_and_gallery,
30 doc.new_category("advanced",
32 name = S("Advanced usage"),
33 description = S("Advanced information about Minetest which may be nice to know, but is not crucial to gameplay"),
34 sorting = "custom",
35 sorting_data = {"console", "commands", "privs", "movement_modes", "coordinates", "settings", "online"},
36 build_formspec = doc.entry_builders.text_and_gallery,
39 doc.new_entry("basics", "quick_start", {
40 name = S("Quick start"),
41 data = { text =
42 S("This is a very brief introduction to the basic gameplay:").."\n\n"..
44 S("• Move mouse to look").."\n"..
45 S("• [W], [A], [S] and [D] to move").."\n"..
46 S("• [Space] to jump or move upwards").."\n"..
47 S("• [Shift] to sneak or move downwards").."\n"..
48 S("• Mouse wheel or [0]-[9] to select item").."\n"..
49 S("• Left-click to mine blocks or attack").."\n"..
50 S("• Recover from swings to deal full damage").."\n"..
51 S("• Right-click to build blocks and use things").."\n"..
52 S("• [I] for the inventory").."\n"..
53 S("• First items in inventory appear in hotbar below").."\n"..
54 S("• [F9] for the minimap").."\n"..
55 S("• Put items into crafting grid (usually 3×3 grid) to craft").."\n"..
56 S("• Use a crafting guide mod to learn crafting recipes or visit <http://wiki.minetest.net/wiki/Crafting>").."\n"..
57 S("• Read entries in this help to learn the rest").."\n"..
58 S("• [Esc] to close this window")
59 }})
61 doc.new_entry("basics", "minetest", {
62 name = S("Minetest"),
63 data = {
64 text =
65 S("Minetest is a free software game engine for games based on voxel gameplay, inspired by InfiniMiner, Minecraft, and the like. Minetest was originally created by Perttu Ahola (alias “celeron55”).").."\n\n"..
67 S("The player is thrown into a huge world made out of cubes or blocks. These cubes usually make the landscape they blocks can be removed and placed almost entirely freely. Using the collected items, new tools and other items can be crafted. Games in Minetest (also called “subgames”) can, however, be much more complex than this.").."\n\n"..
69 S("A core feature of Minetest is the built-in modding capability. Mods modify existing gameplay. They can be as simple as adding a few decorational blocks or be very complex by e.g. introducing completely new gameplay concepts, generating a completely different kind of world, and many other things.").."\n\n"..
71 S("Minetest can be played alone or online together with multiple players. Online play will work out of the box with any mods, with no need for additional software as they are entirely provided by the server.").."\n\n"..
73 S("Minetest is usually bundled with a simple default game, named “Minetest Game” (shown in images 1 and 2). You probably already have it. Other games for Minetest can be downloaded from the official Minetest forums <https://forum.minetest.net/viewforum.php?f=48>.").."\n\n"..
75 S("Minetest as well as Minetest Game are both unfinished at the moment, so please forgive us when not everything works out perfectly."),
76 images = {{image="doc_basics_gameplay_mtg_1.png"}, {image="doc_basics_gameplay_mtg_2.png"}, {image="doc_basics_gameplay_carbone_ng.png"}, {image="doc_basics_gameplay_lott.png"}, {image="doc_basics_gameplay_pixture.png"}, {image="doc_basics_gameplay_outback.png"}, {image="doc_basics_gameplay_moontest.png"},
77 {image="doc_basics_gameplay_hades.png"}, {image="doc_basics_gameplay_xtraores_xtension.png"},}
78 }})
80 doc.new_entry("basics", "sneak", {
81 name = S("Sneaking"),
82 data = { text =
83 S("Sneaking makes you walk slower and prevents you from falling off the edge of a block.").."\n"..
84 S("To sneak, hold down the sneak key (default: [Shift]). When you release it, you stop sneaking. Careful: When you release the sneak key at a ledge, you might fall!").."\n\n"..
86 S("• Sneak: [Shift]").."\n\n"..
88 S("Sneaking only works when you stand on solid ground, are not in a liquid and don't climb.").."\n\n"..
90 S("If you jump while holding the sneak key, you also jump slightly higher than usual.").."\n\n"..
92 S("Sneaking might be disabled by mods. In this case, you still walk slower by sneaking, but you will no longer be stopped at ledges."),
93 images = { { image = "doc_basics_sneak.png" } },
94 }})
96 doc.new_entry("basics", "controls", {
97 name = S("Controls"),
98 data = { text =
99 S("These are the default controls:").."\n\n"..
101 S("Basic movement:").."\n"..
102 S("• Moving the mouse around: Look around").."\n"..
103 S("• W: Move forwards").."\n"..
104 S("• A: Move to the left").."\n"..
105 S("• D: Move to the right").."\n"..
106 S("• S: Move backwards").."\n\n"..
108 S("While standing on solid ground:").."\n"..
109 S("• Space: Jump").."\n"..
110 S("• Shift: Sneak").."\n\n"..
112 S("While on a ladder, swimming in a liquid or fly mode is active").."\n"..
113 S("• Space: Move up").."\n"..
114 S("• Shift: Move down").."\n\n"..
116 S("Extended movement (requires privileges):").."\n"..
117 S("• J: Toggle fast mode, makes you run or fly fast (requires “fast” privilege)").."\n"..
118 S("• K: Toggle fly mode, makes you move freely in all directions (requires “fly” privilege)").."\n"..
119 S("• H: Toggle noclip mode, makes you go through walls in fly mode (requires “noclip” privilege)").."\n"..
120 S("• E: Walk fast in fast mode").."\n\n"..
122 S("World interaction:").."\n"..
123 S("• Left mouse button: Punch / mine blocks / take items").."\n"..
124 S("• Right mouse button: Build or use pointed block").."\n"..
125 S("• Shift+Right mouse button: Build").."\n"..
126 S("• Roll mouse wheel: Select next/previous item in hotbar").."\n"..
127 S("• 0-9: Select item in hotbar directly").."\n"..
128 S("• Q: Drop item stack").."\n"..
129 S("• Shift+Q: Drop 1 item").."\n"..
130 S("• I: Show/hide inventory menu").."\n\n"..
132 S("Inventory interaction:").."\n"..
133 S("See the entry “Basics > Inventory”.").."\n\n"..
135 S("Interface:").."\n"..
136 S("• Esc: Open menu window (pauses in single-player mode) or close window").."\n"..
137 S("• F1: Show/hide HUD").."\n"..
138 S("• F2: Show/hide chat").."\n"..
139 S("• F7: Toggle camera mode").."\n"..
140 S("• F8: Toggle cinematic mode").."\n"..
141 S("• F9: Toggle minimap, minimap mode and zoom").."\n"..
142 S("• Shift+F9: Toggle minimap rotation mode").."\n"..
143 S("• F10: Open/close console/chat log").."\n"..
144 S("• F12: Take a screenshot").."\n\n"..
146 S("Server interaction:").."\n"..
147 S("• T: Open chat window (chat requires the “shout” privilege)").."\n"..
148 S("• /: Start issuing a server command)").."\n\n"..
150 S("Technical:").."\n"..
151 S("• R: Toggle far view (disables all fog and allows viewing far away, can make game very slow)").."\n"..
152 S("• +: Increase minimal viewing distance").."\n"..
153 S("• -: Decrease minimal viewing distance").."\n"..
154 S("• F3: Enable/disable fog").."\n"..
155 S("• F5: Enable/disable debug screen which also shows your coordinates").."\n"..
156 S("• F6: Only useful for developers. Enables/disables profiler").."\n"..
157 S("• P: Only useful for developers. Writes current stack traces")
160 doc.new_entry("basics", "players", {
161 name = S("Players"),
162 data = {
163 text =
164 S("Players (actually: “player characters”) are the characters which users control.").."\n\n"..
166 S("Players are living beings which occupy a space of about 1×2×1 cubes. They start with 20 health points (HP) and 10 breath points (BP).").."\n"..
167 S("Players are capable of walking, sneaking, jumping, climbing, swimming, diving, mining, building, fighting and using tools and blocks.").."\n"..
169 S("Players can take damage for a variety of reasons, here are some:\
170 • Taking fall damage\
171 • Touching a block which causes direct damage\
172 • Drowning\
173 • Being attacked by another player\
174 • Being attacked by a computer enemy").."\n\n"..
176 S("At a health of 0, the player dies. The player can just respawn in the world.").."\n"..
177 S("Other consequences of death depend on the subgame. The player could lose all items, or lose the round in a competitive game.").."\n\n"..
179 S("Some blocks reduce breath. While being with the head in a block which causes drowning, the breath points are reduced by 1 for every 2 seconds. When all breath is gone, the player starts to suffer drowning damage. Breath is quickly restored in any other block.").."\n\n"..
181 S("Damage can be disabled on any world. Without damage, players are immortal and health and breath are unimportant.").."\n\n"..
183 S("In multi-player mode, the name of other players is written above their head."),
184 images = {{image="doc_basics_players_sam.png"}, {image="doc_basics_players_lott.png"}, {image="doc_basics_players_flat.png"}},
187 doc.new_entry("basics", "items", {
188 name = S("Items"),
189 data = {
190 text =
191 S("Items are things you can carry along and store in inventories. They can be used for crafting, smelting, building, mining, and more. Types of items include blocks, tools, weapons and items only used for crafting.").."\n\n"..
193 S("An item stack is a collection of items of the same type which fits into a single item slot. Item stacks can be dropped on the ground. Items which drop into the same coordinates will form an item stack.").."\n\n"..
195 S("Items have several properties, including the following:\
197 • Maximum stack size: Number of items which fit on 1 item stack\
198 • Pointing range: How close things must be to be pointed while wielding this item\
199 • Group memberships: See “Basics > Groups”\
200 • May be used for crafting or cooking").."\n\n"..
202 S("A dropped item stack can be collected by punching it."),
203 images = {{image="doc_basics_inventory_detail.png"}, {image="doc_basics_items_dropped.png"}},
206 doc.new_entry("basics", "tools", {
207 name = S("Tools"),
208 data = { text =
209 S("Some items may serve as a tool when wielded. Any item which has some special use which can be directly used by its wielder is considered a tool.").."\n\n"..
211 S("A common tool in Minetest are, of course, mining tools. These are important to break all kinds of blocks. Weapons are a kind of tool in Minetest. There are of course many other possible tools. Special actions of tools are usually done by left-click or right-click.").."\n\n"..
213 S("When nothing is wielded, players use their hand which may act as tool and weapon. The hand is capable of collecting dropped items by punching.").."\n\n"..
215 S("Many tools will wear off when using them and may eventually get destroyed. The damage is displayed in a damage bar below the tool icon. If no damage bar is shown, the tool is in mint condition. Tools may be repairable by crafting, see “Basics > Crafting”."),
216 images = {{image="doc_basics_tools.png"}, {image="doc_basics_tools_mining.png"}},
219 doc.new_entry("basics", "weapons", {
220 name = S("Weapons"),
221 data = { text =
222 S("Some items are usable as a melee weapon when wielded. Weapons share most of the properties of tools.").."\n\n"..
224 S("Melee weapons deal damage by punching players and other animate objects. There are two ways to attack:").."\n"..
225 S("• Single punch: Left-click once to deal a single punch").."\n"..
226 S("• Quick punching: Hold down the left mouse button to deal quick repeated punches").."\n\n"..
228 S("There are two core attributes of melee weapons:").."\n"..
229 S("• Maximum damage: Damage which is dealt after a hit when the weapon was fully recovered)").."\n"..
230 S("• Full punch interval: Time it takes for fully recovering from a punch").."\n\n"..
232 S("A weapon only deals full damage when it has fully recovered from a previous punch. Otherwise, the weapon will deal only reduced damage. This means, quick punching is very fast, but also deals rather low damage. Note the full punch interval does not limit how fast you can attack.").."\n\n"..
234 S("There is a rule which sometimes makes attacks impossible: Players, animate objects and weapons belong to damage groups. A weapon only deals damage to those who share at least one damage group with it. So if you're using the wrong weapon, you might not deal any damage at all.")
238 doc.new_entry("basics", "point", {
239 name = S("Pointing"),
240 data = {
241 text =
242 S("“Pointing” means looking at something in range with the crosshair. Pointing is needed for interaction, like mining, punching, using, etc. Pointable things include blocks, dropped items, players, computer enemies and objects.").."\n\n"..
244 S("To point something, it must be in the pointing range (also just called “range”) of your wielded item. There's a default range when you are not wielding anything. A pointed thing will be outlined or highlighted (depending on your settings). Pointing is not possible with the 3rd person front camera.").."\n\n"..
246 S("A few things can not be pointed. Most blocks are pointable. A few blocks, like air, can never be pointed. Other blocks, like liquids can only be pointed by special items."),
247 images = {{ image = "doc_basics_pointing.png" }},
250 doc.new_entry("basics", "cam", {
251 name = S("Camera"),
252 data = {
253 text =
254 S("Minetest has 3 different views which determine the way you see the world. The modes are:\
256 • 1: First-person view (default)\
257 • 2: Third-person view from behind\
258 • 3: Third-person view from the front").."\n\n"..
260 S("You can change the camera mode by pressing [F7].").."\n"..
262 S("There is also Cinematic Mode which can be toggled with [F8]. With Cinematic Mode enabled, the camera movements become more smooth. Some players don't like it, it is a matter of taste.").."\n\n"..
264 S("• Switch camera mode: [F7]").."\n"..
265 S("• Toggle Cinematic Mode: [F8]"),
266 images = {{image="doc_basics_camera_ego.png"}, {image="doc_basics_camera_behind.png"}, {image="doc_basics_camera_front.png"}}
269 doc.new_entry("basics", "nodes", {
270 name = S("Blocks"),
271 data = {
272 text =
273 S("The world of Minetest is made entirely out of blocks (voxels, to be precise). Blocks can be added or removed with the correct tools.").."\n\n"..
275 S("Blocks can have a wide range of different properties which determine mining times, behavior, looks, shape, and much more. Their properties include:").."\n\n"..
277 S("• Collidable: Collidable blocks can not be passed through; players can walk on them. Non-collidable blocks can be passed through freely").."\n"..
278 S("• Pointable: Pointable blocks show a wireframe or a halo box when pointed. But you will just point through non-pointable blocks. Liquids are usually non-pointable but they can be pointed at by some special tools").."\n"..
279 S("• Mining properties: By which tools it can be mined, how fast and how much it wears off tools").."\n"..
280 S("• Climbable: While you are at a climbable block, you won't fall and you can move up and down with the jump and sneak keys").."\n"..
281 S("• Drowning damage: See the entry “Basics > Player”").."\n"..
282 S("• Liquids: See the entry “Basics > Liquids”").."\n"..
283 S("• Group memberships: Group memberships are used to determine mining properties, crafting, interactions between blocks and more"),
284 images = {{image="doc_basics_nodes.png"}}
287 -- TODO: Oh jeez, this explanation is WAY too difficult. Maybe we need to find some way to make it easier to understand.
288 doc.new_entry("basics", "mine", {
289 name = S("Mining"),
290 data = {
291 text =
292 [=[Mining (or digging) is the process of breaking blocks to remove them. To mine a block, point it and hold down the left mouse button until it breaks.
294 Blocks require a mining tool to be mined. Some blocks can not be mined. When in doubt, just try out different mining tools on a block and see what happens.
296 Mineable blocks have mining properties (based on groups) and a toughness level. Mining tools have the same properties. Each mining property of a block also has a rating, while tools can be able to break blocks within a range of mining ratings.
298 In order to mine a block, these conditions need to be met:
299 • The block and tool share at least one mining property for which they have a matching mining rating
300 • The tool's toughness level is equal or less than the block's toughness level
302 Example: A block with the mining property “cracky”, rating 3 and level 0 can only be broken by a tool which is able to break “cracky” blocks at rating 3 and it must have a toughness level of 0 or larger.
304 The time it takes to mine a block depends on the mining ratings and the toguhness levels of both tool and block.
305 • The mining time is the same for each tool/block combination
306 • The base mining time depends on the mining ratings of the block and the mining speed of the tool
307 • The mining speed of the tool differs for each mining property and its rating
308 • The toguhness level further modifies the mining speed for this mining proeprty
309 • The higher the block level, the higher the mining time
310 • The higher the tool level, the lower the mining time
312 The item help shows the mining times of a tool listed by its mining properties and its ratings. The mining times are often expressed as a range. The low number stands for the mining time at block level 0 and the high number for the highest level the tool can mine.
314 Mining usually wears off tools. Each time you mine a block, your tool takes some damage until it is destroyed eventually. The wear per mined block determined by the difference between the tool's toughness level and the block's toughness level. The higher the difference, the lower the wear. This means:
315 • High-level blocks wear off your tools faster
316 • You can use high-level tools to compensate this
317 • The highest wear is caused when the level of both tool and block are equal
319 After mining, a block will leave a “drop” behind. This is a number of items you get after mining. The following drop types are possible:
320 • Always drops itself (most common)
321 • Always drops the same items
322 • Drops items based on probability
323 • Drops nothing]=],
324 images = {{image="doc_basics_tools_mining.png"}},
327 doc.new_entry("basics", "build", {
328 name = S("Building"),
329 data = {
330 text =
331 S("Almost all blocks can be built (or placed). Building is very simple and has no delay.").."\n\n"..
333 S("To build your wielded block, point at a block in the world and right-click. If this is not possible because the pointed block has a special right-click action, hold down the sneak key before right-clicking.").."\n\n"..
335 S("Blocks can almost always be built at pointable blocks. One exception are blocks attached to the floor; these can only be built on the floor.").."\n\n"..
337 S("Normally, blocks are built in front of the pointed side of the pointed block. A few blocks are different: When you try to build at them, they are replaced."),
338 images = {{image="doc_basics_build.png"}},
343 doc.new_entry("basics", "liquids", {
344 name = S("Liquids"),
345 data = {
346 text =
347 S("Liquids are special dynamic blocks. Liquids like to spread and flow to their surrounding blocks. Players can swim and drown in them.").."\n\n"..
349 S("Liquids usually come in two forms: In source form (S) and in flowing form (F).").."\n"..
350 S("Liquid sources have the shape of a full cube. A liquid source will generate flowing liquids around it from time to time, and, if the liquid is renewable, it also generates liquid sources. A liquid source can sustain itself. A long it is left alone, a liquid source will normally keep its place and does not drain out.").."\n"..
351 S("Flowing liquids take a sloped form. Flowing liquids spread around the world until they drain. A flowing liquid can not sustain itself and always comes from a liquid source, either directly or indirectly. Without a liquid source, a flowing liquid will eventually drain out and disappear.").."\n"..
353 S("All liquids share the following properties:").."\n"..
354 S("• All properties of blocks (including drowning damage").."\n"..
355 S("• Renewability: Renewable liquids can create new sources").."\n"..
356 S("• Flowing range: How many flowing liquids are created at maximum per liquid source, it determines how far the liquid will spread. Possible are ranges from 0 to 8. At 0, no flowing liquids will be created. Image 5 shows a liquid of flowing range 2").."\n"..
357 S("• Viscosity: How slow players move through it and how slow the liquid spreads").."\n\n"..
359 S("Renewable liquids create new liquid sources at open spaces (image 2). A new liquid source is created when:\
360 • Two renewable liquid blocks of the same type touch each other diagonally\
361 • These blocks are also on the same height\
362 • One of the two “corners” is open space which allows liquids to flow in").."\n\n"..
364 S("When those criteria are met, the open space is filled with a new liquid source of the same type (image 3).").."\n\n"..
366 S("Swimming in a liquid is fairly straightforward: The usual direction keys for basic movement, the jump key for rising and the sneak key for sinking.").."\n\n"..
368 S("The physics for swimming and diving in a liquid are:").."\n"..
369 S("• The higher the viscosity, the slower you move").."\n"..
370 S("• If you rest, you'll slowly sink").."\n"..
371 S("• There is no fall damage for falling into a liquid as such").."\n"..
372 S("• If you fall into a liquid, you will be slowed down on impact (but don't stop instantly). Your impact depth is determined by your speed and the liquid viscosity. For a safe high drop into a liquid, make sure there is enough liquid above the ground, otherwise you might hit the ground and take fall damage").."\n\n"..
374 S("Liquids are often not pointable. But some special items are able to point all liquids."),
375 images = {
376 { image="doc_basics_liquids_types.png",
377 caption="A source liquid and its flowing liquids" },
378 { image="doc_basics_liquids_renewable_1.png",
379 caption="Renewable liquids need to be arranged like this to create a new source block" },
380 { image="doc_basics_liquids_renewable_2.png",
381 caption="A new liquid source is born" },
382 { image="doc_basics_liquids_nonrenewable.png",
383 caption="Non-renewable liquids creates a flowing liquid (F) instead" },
384 { image="doc_basics_liquids_range.png",
385 caption="Liquid with a flowing range of 2" },
390 doc.new_entry("basics", "craft", {
391 name = S("Crafting"),
392 data = {
393 text =
394 S("Crafting is the task of combining several items to form a new item.").."\n\n"..
396 S("To craft something, you need one or more items, a crafting grid (C) and a crafting recipe. A crafting grid is like a normal inventory which can also be used for crafting. Items need to be put in a certain pattern into the crafting grid. Next to the crafting grid is an output slot (O). Here the result will appear when you placed items correctly. This is just a preview, not the actual item. Crafting grids can come in different sizes which limits the possible recipes you can craft.").."\n\n"..
398 S("To complete the craft, take the result item from the output slot, which will consume items from the crafting grid and creates a new item. It is not possible to place items into the output slot.").."\n\n"..
400 S("A description on how to craft an item is called a “crafting recipe”. You need this knowledge to craft. There are multiple ways to learn crafting recipes. One way is by using a crafting guide, which contains a list of available crafting recipes. Some subgames provide crafting guides. There are also some mods which you can download online for installing a crafting guide. Another way is by reading the online manual of the subgame (if one is available).").."\n\n"..
402 S("Crafting recipes consist of at least one input item and exactly one stack of output items. When performing a single craft, it will consume exactly one item from each stack of the crafting grid, unless the crafting recipe defines replacements.").."\n\n"..
404 S("There are multiple types of crafting recipes:\
406 • Shaped (image 2): Items need to be placed in a particular shape\
407 • Shapeless (images 3 and 4): Items need to be placed somewhere in input (both images show the same recipe)\
408 • Cooking: Explained in “Basics > Cooking”\
409 • Repairing (image 5): Place two damaged tools into the crafting grid anywhere to get a tool which is repaired by a certain percentage. This recipe may not be available in all subgames").."\n\n"..
411 S("In some crafting recipes, some input items do not need to be a concrete item, instead they need to be a member of a group (see “Basics > Groups”). These recipes offer a bit more freedom in the input items. Images 6-8 show the same group-based recipe. Here, 8 items of the “stone” group are required, which is true for all of the shown items.").."\n\n"..
413 S("Rarely, crafting recipes have replacements. This means, whenever you perform a craft, some items in the crafting grid will not be consumed, but instead will be replaced by another item."),
414 images = {
415 {image="doc_basics_craft_grid.png"}, {image="doc_basics_craft_shaped.png"},
416 {image="doc_basics_craft_shapeless_1.png"}, {image="doc_basics_craft_shapeless_2.png"}, {image="doc_basics_craft_repair.png"},
417 {image="doc_basics_craft_groups_1.png"}, {image="doc_basics_craft_groups_2.png"}, {image="doc_basics_craft_groups_3.png"},
421 doc.new_entry("basics", "cook", {
422 name = S("Cooking"),
423 data = {
424 text =
425 S("Cooking (or smelting) is a form of crafting which does not involve a crafting grid. Cooking is done with a special block (like a furnace), an cookable item, a fuel item and time in order to yield a new item.").."\n\n"..
427 S("Each fuel item has a burning time. This is the time a single item of the fuel keeps a furnace burning.").."\n\n"..
429 S("Each cookable item requires time to be cooked. This time is specific to the item type and the item must be “on fire” for the whole cooking time to actually yield the result.")
432 doc.new_entry("basics", "hotbar", {
433 name = S("Hotbar"),
434 data = {
435 text =
436 S("At the bottom of the screen you see some squares. This is called the “hotbar”. The hotbar allows you to quickly access the first items from your player inventory.").."\n"..
437 S("You can change the selected item with the mouse wheel or the number keys.").."\n\n"..
439 S("• Select previous item in hotbar: [Mouse wheel up]").."\n"..
440 S("• Select next item in hotbar: [Mouse wheel down]").."\n"..
441 S("• Select item in hotbar directly: [0]-[9]").."\n\n"..
443 S("The selected item is also your wielded item."),
444 images = {{image="doc_basics_hotbar.png"}, {image="doc_basics_hotbar_relations.png"}},
447 doc.new_entry("basics", "minimap", {
448 name = S("Minimap"),
449 data = {
450 text =
451 S("Press [F9] to make a minimap appear on the top right. The minimap helps you to find your way around the world. Press it again to select different minimap modes and zoom levels. The minimap also shows the positions of other players.").."\n\n"..
453 S("There are 2 minimap modes and 3 zoom levels.").."\n\n"..
455 S("Surface mode (image 1) is a top-down view of the world, roughly resembling the colors of the blocks this world is made of. It only shows the topmost blocks, everything below is hidden, like a satellite photo. Surface mode is useful if you got lost.").."\n\n"..
457 S("Radar mode (image 2) is more complicated. It displays the “denseness” of the area around you and changes with your height. Roughly, the more green an area is, the less “dense” it is. Black areas have many blocks. Use the radar to find caverns, hidden areas, walls and more. The rectangular shapes in image 2 clearly expose the position of a dungeon.").."\n\n"..
459 S("There are also two different rotation modes. In “square mode”, the rotation of the minimap is fixed. If you press [Shift]+[F9] to switch to “circle mode”, the minimap will instead rotate with your looking direction, so “up” is always your looking direction.").."\n\n"..
461 S("In some subgames, the minimap may be disabled.").."\n\n"..
463 S("• Toggle minimap mode: [F9]").."\n"..
464 S("• Toggle minimap rotation mode: [Shift]+[F9]"),
465 images = {{image="doc_basics_minimap_map.png"}, {image="doc_basics_minimap_radar.png"}, {image="doc_basics_minimap_round.png"}},
468 doc.new_entry("basics", "inventory", {
469 name="Inventory",
470 data = {
471 text =
472 S("Inventories are used to store item stacks. There are other uses, such as crafting. An inventory consists of a rectangular grid of item slots. Each item slot can either be empty or hold one item stack. Item stacks can be moved freely between most slots.").."\n"..
473 S("You have your own inventory which is called your “player inventory”, you can open it with the inventory key (default: [I]). The first inventory slots are also used as slots in your hotbar.").."\n"..
474 S("Blocks can also have their own inventory, e.g. chests and furnaces.").."\n\n"..
476 S("Inventory controls:").."\n\n"..
478 S("Taking: You can take items from an occupied slot if the cursor holds nothing.").."\n"..
479 S("• Left click: take entire item stack").."\n"..
480 S("• Right click: take half from the item stack (rounded up)").."\n"..
481 S("• Middle click: take 10 items from the item stack").."\n\n"..
483 S("Putting: You can put items onto a slot if the cursor holds 1 or more items and the slot is either empty or contains an item stack of the same item type.").."\n"..
484 S("• Left click: put entire item stack").."\n"..
485 S("• Right click: put 1 item of the item stack").."\n"..
486 S("• Middle click: put 10 items of the item stack").."\n\n"..
488 S("Exchanging: You can exchange items if the cursor holds 1 or more items and the destination slot is occupied by a different item type.").."\n"..
489 S("• Click: exchange item stacks").."\n\n"..
491 S("Throwing away: If you hold an item stack and click with it somewhere outside the menu, the item stack gets thrown away into the environment.").."\n\n"..
493 S("Quick transfer: You can quickly transfer an item stack to/from the player inventory to/from another item's inventory slot like a furnace, chest, or any other item with an inventory slot when that item's inventory is accessed. The target inventory is generally the most relevant inventory in this context.").."\n"..
494 S("• Sneak+Left click: Automatically transfer item stack"),
495 images = {{image="doc_basics_inventory.png"}}
498 doc.new_entry("advanced", "online", {
499 name = S("Online help"),
500 data = { text=
501 S("You may want to check out these online resources related to Minetest:").."\n\n"..
503 S("Official homepage of Minetest: <http://minetest.net/>").."\n"..
504 S("The main place to find the most recent version of Minetest.").."\n\n"..
506 S("Community wiki: <http://wiki.minetest.net/>").."\n"..
507 S("A community-based documentation website for Minetest. Anyone with an account can edit it! It also features a documentation of Minetest Game.").."\n\n"..
509 S("Web forums: <http://forums.minetest.net/>").."\n"..
510 S("A web-based discussion platform where you can discuss everything related to Minetest. This is also a place where player-made mods and subgames are published and discussed. The discussions are mainly in English, but there is also space for discussion in other languages.").."\n\n"..
512 S("Chat: <irc://irc.freenode.net#minetest>").."\n"..
513 S("A generic Internet Relay Chat channel for everything related to Minetest where people can meet to discuss in real-time. If you do not understand IRC, see the Community Wiki for help.")
516 doc.new_entry("basics", "groups", {
517 name = S("Groups"),
518 data = {
519 text =
520 S("Items, players and objects (animate and inanimate) can be members of any number of groups. Groups serve multiple purposes:").."\n\n"..
522 S("• Crafting recipes: Slots in a crafting recipe may not require a specific item, but instead an item which is a member of a particular group, or multiple groups").."\n"..
523 S("• Digging times: Diggable blocks belong to groups which are used to determine digging times. Mining tools are capable of digging blocks belonging to certain groups").."\n"..
524 S("• Block behavior: Blocks may show a special behaviour and interact with other blocks when they belong to a particular group").."\n"..
525 S("• Damage and armor: Objects and players have armor groups, weapons have damage groups. These groups determine damage. See also: “Basics > Weapons”").."\n"..
526 S("• Other uses").."\n\n"..
528 S("In the item help, many important groups are usually mentioned and explained.")
531 doc.new_entry("basics", "glossary", {
532 name = S("Glossary"),
533 data = {
534 text =
535 S("This is a list of commonly used terms in Minetest:").."\n\n"..
537 S("Controls:").."\n"..
538 S("• Wielding: Holding an item in hand").."\n"..
539 S("• Pointing: Looking with the crosshair at something in range").."\n"..
540 S("• Dropping: Throwing an item or item stack to the ground").."\n"..
541 S("• Punching: Attacking with left-click, is also used on blocks").."\n"..
542 S("• Sneaking: Walking slowly while (usually) avoiding to fall over edges").."\n"..
543 S("• Climbing: Moving up or down a climbable block").."\n\n"..
545 S("Blocks:").."\n"..
546 S("• Block: Cubes that the worlds are made of").."\n"..
547 S("• Mining/digging: Using a mining tool to break a block").."\n"..
548 S("• Building/placing: Putting a block somewhere").."\n"..
549 S("• Drop: Items you get after mining a block").."\n"..
550 S("• Using a block: Right-clicking a block to access its special function").."\n\n"..
552 S("Items:").."\n"..
553 S("• Item: A single thing that players can possess").."\n"..
554 S("• Item stack: A collection of items of the same kind").."\n"..
555 S("• Maximum stack size: Maximum amount of items in an item stack").."\n"..
556 S("• Slot / inventory slot: Can hold one item stack").."\n"..
557 S("• Inventory: Provides several inventory slots for storage").."\n"..
558 S("• Player inventory: The main inventory of a player").."\n"..
559 S("• Tool: An item which you can use to do special things with when wielding").."\n"..
560 S("• Range: How far away things can be to be pointed by an item").."\n"..
561 S("• Mining tool: A tool which allows to break blocks").."\n"..
562 S("• Craftitem: An item which is (primarily or only) used for crafting").."\n\n"..
564 S("Gameplay:").."\n"..
565 S("• “heart”: A single health symbol, indicates 2 HP").."\n"..
566 S("• “bubble”: A single breath symbol, indicates 1 BP").."\n"..
567 S("• HP: Hit point (equals half 1 “heart”)").."\n"..
568 S("• BP: Breath point, indicates breath when diving").."\n"..
569 S("• Mob: Computer-controlled enemy").."\n"..
570 S("• Crafting: Combining multiple items to create new ones").."\n"..
571 S("• Crafting guide: A helper which shows available crafting recipes").."\n"..
572 S("• Spawning: Appearing in the world").."\n"..
573 S("• Respawning: Appearing again in the world after death").."\n"..
574 S("• Group: Puts similar things together, often affects gameplay").."\n"..
575 S("• noclip: Allows to fly through walls").."\n\n"..
577 S("Interface").."\n"..
578 S("• Hotbar: Inventory slots at the bottom").."\n"..
579 S("• Statbar: Indicator made out of half-symbols, used for health and breath").."\n"..
580 S("• Minimap: The map or radar at the top right").."\n"..
581 S("• Crosshair: Seen in the middle, used to point at things").."\n\n"..
583 S("Online multiplayer:").."\n"..
584 S("• PvP: Player vs Player. If active, players can deal damage to each other").."\n"..
585 S("• Griefing: Destroying the buildings of other players against their will").."\n"..
586 S("• Protection: Mechanism to own areas of the world, which only allows the owners to modify blocks inside").."\n\n"..
588 S("Technical terms:").."\n"..
589 S("• Minetest: This game engine").."\n"..
590 S("• Minetest Game: A subgame for Minetest by the Minetest developers").."\n"..
591 S("• Subgame: A complete playing experience to be used in Minetest; such as a game or sandbox or similar").."\n"..
592 S("• Mod: A single subsystem which adds or modifies functionality; is the basic building block of subgames and can be used to further enhance or modify them").."\n"..
593 S("• Privilege: Allows a player to do something").."\n"..
594 S("• Node: Other word for “block”")
597 doc.new_entry("advanced", "settings", {
598 name = S("Settings"),
599 data = {
600 text =
601 S("There is a large variety of settings to configure Minetest. Pretty much every aspect can be changed that way.").."\n\n"..
603 S("These are a few of the most important gameplay settings:").."\n\n"..
605 S("• Damage enabled (enable_damage): Enables the health and breath attributes for all players. If disabled, players are immortal").."\n"..
606 S("• Creative Mode (creative_mode): Enables sandbox-style gameplay focusing on creativity rather than a challenging gameplay. The meaning depends on the subgame; usual changes are: Reduced dig times, easy access to almost all items, tools never wear off, etc.").."\n"..
607 S("• PvP (enable_pvp): Short for “Player vs Player”. If enabled, players can deal damage to each other").."\n\n"..
609 S("For a full list of all available settings, use the “Advanced settings” dialog in the main menu.")
612 doc.new_entry("advanced", "movement_modes", {
613 name = S("Movement modes"),
614 data = { text =
615 S("If you have the required privileges, you can use up to three special movement modes. Using these may be considered cheating.").."\n\n"..
617 S("Fast mode:").."\n"..
618 S("• Description: Allows you to move much faster. Hold down the the “Use” key [E] to move faster. In the client configuration, you can further customize fast mode.").."\n"..
619 S("• Default key: [J]").."\n"..
620 S("• Required privilege: fast").."\n\n"..
622 S("Fly mode:").."\n"..
623 S("• Description: Gravity doesn't affect you and you can move freely in all directions. Use the jump key to rise and the sneak key to sink.").."\n"..
624 S("• Default key: [K]").."\n"..
625 S("• Required privilege: fly").."\n\n"..
627 S("Noclip mode:").."\n"..
628 S("• Description: Allows you to move through walls. Only works when fly mode is enabled, too.").."\n"..
629 S("• Default key: [H]").."\n"..
630 S("• Required privilege: noclip")
633 doc.new_entry("advanced", "console", {
634 name = S("Console"),
635 data = { text =
636 S("With [F10] you can open and close the console. The main use of the console is to show the chat log and enter chat messages or server commands.").."\n"..
637 S("Using the chat or server command key also opens the console, but it is smaller and will be closed after you sent a message.").."\n\n"..
639 S("Use the chat to communicate with other players. This requires you to have the “shout” privilege.").."\n"..
640 S("Just type in the message and hit [Enter]. Public chat messages can not begin with “/”.").."\n\n"..
642 S("You can send private messages: Say “/msg <player> <message>” in chat to send “<message>” which can only be seen by <player>.").."\n\n"..
644 S("There are some special controls for the console:").."\n\n"..
646 S("• [F10] Open/close console").."\n"..
647 S("• [Enter]: Send message or command").."\n"..
648 S("• [Tab]: Try to auto-complete a partially-entered player name").."\n"..
649 S("• [Ctrl]+[Left]: Move cursor to the beginning of the previous word").."\n"..
650 S("• [Ctrl]+[Right]: Move cursor to the beginning of the next word").."\n"..
651 S("• [Ctrl]+[Backspace]: Delete previous word").."\n"..
652 S("• [Ctrl]+[Delete]: Delete next word").."\n"..
653 S("• [Ctrl]+[U]: Delete all text before the cursor").."\n"..
654 S("• [Ctrl]+[K]: Delete all text after the cursor").."\n"..
655 S("• [Page up]: Scroll up").."\n"..
656 S("• [Page down]: Scroll down").."\n"..
658 S("There is also an input history. Minetest saves your previous console inputs which you can quickly access later:").."\n\n"..
660 S("• [Up]: Go to previous entry in history").."\n"..
661 S("• [Down]: Go to next entry in history")
664 doc.new_entry("advanced", "commands", {
665 name = S("Server commands"),
666 data = { text =
667 S("Server commands (also called “chat commands”) are little helpers for advanced users. You don't need to use these commands when playing. But they might come in handy to perform some more technical tasks. Server commands work both in multi-player and single-player mode.").."\n\n"..
669 S("Server commands can be entered by players using the chat to perform a special server action. There are a few commands which can be issued by everyone, but some commands only work if you have certain privileges granted on the server. There is a small set of basic commands which are always available, other commands can be added by mods.").."\n\n"..
671 S("To issue a command, simply type it like a chat message or press Minetest's command key (default: [/]). All commands have to begin with “/”, for example “/mods”. The Minetest command key does the same as the chat key, except that the slash is already entered.").."\n"..
672 S("Commands may or may not give a response in the chat log, but errors will generally be shown in the chat. Try it for yourselves: Close this window and type in the “/mods” command. This will give you the list of available mods on this server.").."\n\n"..
674 S("“/help all” is a very important command: You get a list of all available commands on the server, a short explanation and the allowed parameters. This command is also important because the available commands often differ per server.").."\n\n"..
676 S("Commands are followed by zero or more parameters.").."\n\n"..
678 S("In the command reference, you see some placeholders which you need to replace with an actual value. Here's an explanation:").."\n\n"..
680 S("• Text in greater-than and lower-than signs (e.g. “<param>”): Placeholder for a parameter").."\n"..
681 S("• Anything in square brackets (e.g. “[text]”) is optional and can be omitted").."\n"..
682 S("• Pipe or slash (e.g. “text1 | text2 | text3”): Alternation. One of multiple texts must be used (e.g. “text2”)").."\n"..
683 S("• Parenthesis: (e.g. “(word1 word2) | word3”): Groups multiple words together, used for alternations").."\n"..
684 S("• Everything else is to be read as literal text").."\n\n"..
686 S("Here are some examples to illustrate the command syntax:").."\n\n"..
688 S("• /mods: No parameters. Just enter “/mods”").."\n"..
689 S("• /me <action>: 1 parameter. You have to enter “/me ” followed by any text, e.g. “/me orders pizza”").."\n"..
690 S("• /give <name> <ItemString>: Two parameters. Example: “/give Player default:apple”").."\n"..
691 S("• /help [all|privs|<cmd>]: Valid inputs are “/help”, “/help all”, “/help privs”, or “/help ” followed by a command name, like “/help time”").."\n"..
692 S("• /spawnentity <EntityName> [<X>,<Y>,<Z>]: Valid inputs include “/spawnentity boats:boat” and “/spawnentity boats:boat 0,0,0”").."\n\n\n"..
696 S("Some final remarks:").."\n\n"..
698 S("• For /give and /giveme, you need an itemstring. This is an internally used unique item identifier which you may find in the item help if you have the “give” or “debug” privilege").."\n"..
699 S("• For /spawnentity you need an entity name, which is another identifier")
702 doc.new_entry("advanced", "privs", {
703 name = S("Privileges"),
704 data = { text =
705 S("Each player has a set of privileges, which differs from server to server. Your privileges determine what you can and can't do. Privileges can be granted and revoked from other players by any player who has the privilege called “privs”.").."\n\n"..
707 S("On a multiplayer server with the default configuration, new players start with the privileges called “interact” and “shout”. The “interact” privilege is required for the most basic gameplay actions such as building, mining, using, etc. The “shout” privilege allows to chat.").."\n\n"..
709 S("There is a small set of core privileges which you'll find on every server, other privileges might be added by mods.").."\n\n"..
711 S("To view your own privileges, issue the server command “/privs”.").."\n\n"..
713 S("Here are a few basic privilege-related commands:").."\n\n"..
715 S("• /privs: Lists your privileges").."\n"..
716 S("• /privs <player>: Lists the privileges of <player>").."\n"..
717 S("• /help privs: Shows a list and description about all privileges").."\n\n"..
719 S("Players with the “privs” privilege can modify privileges at will:").."\n\n"..
721 S("• /grant <player> <privilege>: Grant <privilege> to <player>").."\n"..
722 S("• /revoke <player> <privilege>: Revoke <privilege> from <player>").."\n\n"..
724 S("In single-player mode, you can use “/grant singleplayer all” to unlock all abilities (which is often considered cheating).")
727 doc.new_entry("basics", "light", {
728 name = S("Light"),
729 data = { text =
730 S("As the world is entirely block-based, so is the light in the world. Each block has its own brightness. The brightness of a block is expressed in a “light level” which ranges from 0 (total darkness) to 15 (as bright as the sun).").."\n\n"..
732 S("There are two types of light: Sunlight and artificial light.").."\n\n"..
734 S("Artificial light is emitted by luminous blocks. Artificial light has a light level from 1-14.").."\n"..
735 S("Sunlight is the brightest light and always goes perfectly straight down from the sky at each time of the day. blocks. At night, the sunlight will become moonlight instead, which still provides a small amount of light. The light level of sunlight is 15.").."\n\n"..
737 S("Blocks have 3 levels of transparency:").."\n\n"..
739 S("• Transparent: Sunlight goes through limitless, artificial light goes through with losses").."\n"..
740 S("• Semi-transparent: Sunlight and artificial light go through with losses").."\n"..
741 S("• Opaque: No light passes through").."\n\n"..
743 S("Artificial light will lose one level of brightness for each transparent or semi-transparent block it passes through, until only darkness remains (image 1).").."\n"..
744 S("Sunlight will preserve its brightness as long it only passes fully transparent blocks. When it passes through a semi-transparent block, it turns to artificial light. Image 2 shows the difference.").."\n\n"..
746 S("Note that “transparency” here only means that the block is able to carry brightness from its neighboring blocks. It is possible for a block to be transparent to light but you can't see trough the other side."),
747 images = {{image="doc_basics_light_torch.png"}, {image="doc_basics_light_test.png"}}
750 doc.new_entry("advanced", "coordinates", {
751 name = S("Coordinates"),
752 data = { text =
753 S("The Minetest world is a large cube. And because of this, a position in the world can be easily expressed with Cartesian coordinates. That is, for each position in the world, there are 3 values X, Y and Z.").."\n\n"..
755 S("Like this: (5, 45, -12)").."\n\n"..
757 S("This refers to the position where X=5, Y=45 and Z=-12. The 3 letters are called “axes”: Y is for the height. X and Z are for the horizontal position.").."\n\n"..
759 S("The values for X, Y and Z work like this:").."\n\n"..
761 S("• If you go up, Y increases").."\n"..
762 S("• If you go down, Y decreases").."\n"..
763 S("• If you follow the sun, X increases").."\n"..
764 S("• If you go to the reverse direction, X decreases").."\n"..
765 S("• Follow the sun, then go right: Z increases").."\n"..
766 S("• Follow the sun, then go left: Z decreases").."\n"..
767 S("• The side length of a full cube is 1").."\n\n"..
769 S("You can view your current position in the debug screen (open with [F5]). This is considered cheating in some games.")