-
Notifications
You must be signed in to change notification settings - Fork 2
/
making-a-map-for-capture-the-flag.html
66 lines (66 loc) · 53.8 KB
/
making-a-map-for-capture-the-flag.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="en-US" data-preset="contrast" data-primary-color="#9F42BC"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="robots" content="noindex"><meta name="built-on" content="2024-07-29T21:54:06.666082597"><title>Making a Map for Capture the Flag | CTF Handbooks</title><script type="application/json" id="virtual-toc-data">[{"id":"1-required-tools","level":0,"title":"1. Required tools","anchor":"#1-required-tools"},{"id":"2-planning-the-map","level":0,"title":"2. Planning the map","anchor":"#2-planning-the-map"},{"id":"3-creating-the-world","level":0,"title":"3. Creating the world","anchor":"#3-creating-the-world"},{"id":"4-setting-up","level":0,"title":"4. Setting up","anchor":"#4-setting-up"},{"id":"5-worldedit-basics","level":0,"title":"5. WorldEdit basics","anchor":"#5-worldedit-basics"},{"id":"6-removing-the-surrounding-terrain","level":0,"title":"6. Removing the surrounding terrain","anchor":"#6-removing-the-surrounding-terrain"},{"id":"7-placing-the-barriers","level":0,"title":"7. Placing the barriers","anchor":"#7-placing-the-barriers"},{"id":"8-building-the-map","level":0,"title":"8. Building the map","anchor":"#8-building-the-map"},{"id":"9-building-the-build-time-barrier","level":0,"title":"9. Building the build-time barrier","anchor":"#9-building-the-build-time-barrier"},{"id":"10-selecting-the-map-area","level":0,"title":"10. Selecting the map area","anchor":"#10-selecting-the-map-area"},{"id":"11-exporting-the-map","level":0,"title":"11. Exporting the map","anchor":"#11-exporting-the-map"},{"id":"12-testing-the-map","level":0,"title":"12. Testing the map","anchor":"#12-testing-the-map"},{"id":"13-screenshot","level":0,"title":"13. Screenshot","anchor":"#13-screenshot"},{"id":"14-submission","level":0,"title":"14. Submission","anchor":"#14-submission"}]</script><script type="application/json" id="topic-shortcuts"></script><link href="https://resources.jetbrains.com/writerside/apidoc/6.10.0-b408/app.css" rel="stylesheet"><meta name="msapplication-TileColor" content="#000000"><link rel="apple-touch-icon" sizes="180x180" href="https://jetbrains.com/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="https://jetbrains.com/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="https://jetbrains.com/favicon-16x16.png"><meta name="msapplication-TileImage" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-144x144.png"><meta name="msapplication-square70x70logo" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-70x70.png"><meta name="msapplication-square150x150logo" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-150x150.png"><meta name="msapplication-wide310x150logo" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-310x150.png"><meta name="msapplication-square310x310logo" content="https://resources.jetbrains.com/storage/ui/favicons/mstile-310x310.png"><meta name="image" content=""><!-- Open Graph --><meta property="og:title" content="Making a Map for Capture the Flag | CTF Handbooks"><meta property="og:description" content=""><meta property="og:image" content=""><meta property="og:site_name" content="CTF Handbooks Help"><meta property="og:type" content="website"><meta property="og:locale" content="en_US"><meta property="og:url" content="writerside-documentation/ch/1.0/making-a-map-for-capture-the-flag.html"><!-- End Open Graph --><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content=""><meta name="twitter:title" content="Making a Map for Capture the Flag | CTF Handbooks"><meta name="twitter:description" content=""><meta name="twitter:creator" content=""><meta name="twitter:image:src" content=""><!-- End Twitter Card --><!-- Schema.org WebPage --><script type="application/ld+json">{
"@context": "http://schema.org",
"@type": "WebPage",
"@id": "writerside-documentation/ch/1.0/making-a-map-for-capture-the-flag.html#webpage",
"url": "writerside-documentation/ch/1.0/making-a-map-for-capture-the-flag.html",
"name": "Making a Map for Capture the Flag | CTF Handbooks",
"description": "",
"image": "",
"inLanguage":"en-US"
}</script><!-- End Schema.org --><!-- Schema.org WebSite --><script type="application/ld+json">{
"@type": "WebSite",
"@id": "writerside-documentation/ch/#website",
"url": "writerside-documentation/ch/",
"name": "CTF Handbooks Help"
}</script><!-- End Schema.org --></head><body data-id="Making-a-Map-for-Capture-the-Flag" data-main-title="Making a Map for Capture the Flag" data-article-props="{"seeAlsoStyle":"links"}" data-template="article" data-breadcrumbs="The-Map-Maker-s-Handbook.md|The Map Maker's Handbook"><div class="wrapper"><main class="panel _main"><header class="panel__header"><div class="container"><h3>CTF Handbooks 1.0 Help</h3><div class="panel-trigger"></div></div></header><section class="panel__content"><div class="container"><article class="article" data-shortcut-switcher="inactive"><h1 data-toc="Making-a-Map-for-Capture-the-Flag" id="Making-a-Map-for-Capture-the-Flag.md">Making a Map for Capture the Flag</h1><section class="chapter"><h2 id="1-required-tools" data-toc="1-required-tools">1. Required tools</h2><aside class="prompt" data-type="warning" data-title="" id="-kg4h37_111"><p id="-kg4h37_113">It is not recommended to make maps on a mobile device - Android or iOS/iPadOS.</p></aside><ul class="list _bullet" id="-kg4h37_112"><li class="list__item" id="-kg4h37_114"><p id="-kg4h37_118">Minetest version 5.7 or above. The latest stable version is always recommended.</p><aside class="prompt" data-type="note" data-title="" id="-kg4h37_119"><p id="-kg4h37_121">If you don't have Minetest installed, you can download it from the <a href="https://www.minetest.net/" id="-kg4h37_122" data-external="true" rel="noopener noreferrer">official Minetest website</a>.</p></aside></li><li class="list__item" id="-kg4h37_115"><p id="-kg4h37_123">Capture the Flag game for Minetest.</p><aside class="prompt" data-type="note" data-title="" id="-kg4h37_124"><p id="-kg4h37_125">You can install the game from either the ContentDB within your Minetest client or from the <a href="https://content.minetest.net/packages/rubenwardy/capturetheflag/" id="-kg4h37_129" data-external="true" rel="noopener noreferrer">ContentDB website</a>.</p><p id="-kg4h37_127">Once you have downloaded the .zip file from the ContentDB website, extract the .zip file and move the folder inside it to <code class="code" id="-kg4h37_135">[Minetest folder]/games</code>.</p></aside></li><li class="list__item" id="-kg4h37_117"><p id="-kg4h37_138">WorldEdit mod for Minetest. <sup class="superscript" id="-kg4h37_140">(<span class="emphasis" id="-kg4h37_141">optional</span>)</sup></p><aside class="prompt" data-type="note" data-title="" id="-kg4h37_139"><p id="-kg4h37_142">Although this is optional, it is recommended that you install WorldEdit. This tool is helpful when building desired map structures, and it can also speed up the process of creating large builds.</p><p id="-kg4h37_144">You can install WorldEdit from either the Minetest in-game ContentDB or from the <a href="https://content.minetest.net/packages/sfan5/worldedit/" id="-kg4h37_149" data-external="true" rel="noopener noreferrer">ContentDB website</a>.</p><p id="-kg4h37_145">Once you have download the .zip file from the ContentDB website, extract the .zip file and move the folder inside it to <code class="code" id="-kg4h37_151">[Minetest folder]/mods</code>.</p></aside></li></ul></section><section class="chapter"><h2 id="2-planning-the-map" data-toc="2-planning-the-map">2. Planning the map</h2><ul class="list _bullet" id="-kg4h37_104"><li class="list__item" id="-kg4h37_105"><p id="-kg4h37_152">A map shouldn't be too big or too small. The size of a map can vary depending on the terrain and structures that the map will have. With a typical map size, players should be able to reach the middle of the map with a full sprint bar before running out of sprint. A maximum of <code class="code" id="-kg4h37_154">230 x 230</code> blocks in surface area is recommended.</p></li><li class="list__item" id="-kg4h37_106"><p id="-kg4h37_109">If you are making a map for the official CTF server, it is important to note that your map should be unique and not similar to the maps that already exist in the game.</p><aside class="prompt" data-type="tip" data-title="" id="-kg4h37_110"><p id="-kg4h37_160">"The design of a map should encourage differing gameplay and tactics."</p><p id="-kg4h37_161">— -sniper-</p></aside></li><li class="list__item" id="-kg4h37_107"><p id="-kg4h37_116">The map design shouldn't give any team advantages (such as having a better position or more resources). All teams should have an equal chance of winning.</p></li><li class="list__item" id="-kg4h37_108"><p id="-kg4h37_120">Using certain mods on the world the map-making takes place might cause unpredicted problems to the finished map. Switching Minetest or CTF game versions in the midst of the map-making process might also cause problems.</p></li></ul></section><section class="chapter"><h2 id="3-creating-the-world" data-toc="3-creating-the-world">3. Creating the world</h2><ul class="list _bullet" id="-kg4h37_126"><li class="list__item" id="-kg4h37_128"><p id="-kg4h37_136">After opening Minetest, go to settings and under Capture the Flag, enable <code class="code" id="-kg4h37_164">Low RAM mode</code>. Enable this setting to prevent the game from crashing due to <a href="troubleshooting.html#low-ram-mode" id="-kg4h37_166" data-tooltip="CTF can sometimes reduce CPU usage by calculating things once and putting them in the RAM. Turn on low ram mode if you're getting crashes related to RAM/Memory usage.">memory related crashes</a>.</p><figure id="-kg4h37_137"><img alt="enable-low-ram-mode.png" src="images/enable_low_ram_mode.png" title="enable-low-ram-mode.png" width="767" height="645"></figure></li><li class="list__item" id="-kg4h37_130"><p id="-kg4h37_264">Return back and make sure you are in the <code class="code" id="-kg4h37_266">Start Game</code> tab. Then, select the <code class="code" id="-kg4h37_267">Capture the Flag</code> game.</p><figure id="-kg4h37_265"><img alt="Game Icon" src="images/game_icon.png" title="Game Icon" width="106" height="92"></figure></li><li class="list__item" id="-kg4h37_131"><p id="-kg4h37_143">Create a new world. You can use any mapgen. If you would like to use generated terrain, you can choose the <code class="code" id="-kg4h37_147">v7</code> or <code class="code" id="-kg4h37_148">flat</code> mapgen. If you plan on building the terrain/structures yourself, you can choose the <code class="code" id="-kg4h37_150">singlenode</code> mapgen.</p><figure id="-kg4h37_146"><img alt="Mapgens" src="images/mapgens.png" title="Mapgens" width="412" height="204"></figure></li><li class="list__item" id="-kg4h37_132"><p id="-kg4h37_153">After you click <code class="code" id="-kg4h37_156">Create</code>, uncheck <code class="code" id="-kg4h37_157">Enable Damage</code> and check <code class="code" id="-kg4h37_158">Creative Mode</code>. Creative mode will enable <code class="code" id="-kg4h37_159">mapedit</code> mode.</p><figure id="-kg4h37_155"><img alt="World Options" src="images/world_options.png" title="World Options" width="148" height="62"></figure></li><li class="list__item" id="-kg4h37_133"><p id="-kg4h37_162">If you would like to use WorldEdit, click <code class="code" id="-kg4h37_165">Select Mods</code>, select <code class="code" id="-kg4h37_167">WorldEdit</code>, and click <code class="code" id="-kg4h37_168">Enable modpack</code>.</p><figure id="-kg4h37_163"><img alt="Mod Setup" src="images/mod_setup.png" title="Mod Setup" width="389" height="110"></figure></li><li class="list__item" id="-kg4h37_134"><p id="-kg4h37_169">Click <code class="code" id="-kg4h37_170">Save</code> and play the world.</p></li></ul></section><section class="chapter"><h2 id="4-setting-up" data-toc="4-setting-up">4. Setting up</h2><ul class="list _bullet" id="-kg4h37_171"><li class="list__item" id="-kg4h37_172"><p id="-kg4h37_175">Grant yourself the "ctf_map_editor" priv by running <code class="code" id="-kg4h37_176">/grantme ctf_map_editor</code>. You can also use <code class="code" id="-kg4h37_177">/grantme all</code> to grant yourself "ctf_map_editor" and all the other privs that will be useful while making a map, such as fly, noclip, fast, etc.</p></li><li class="list__item" id="-kg4h37_173"><p id="-kg4h37_277">You can hit <kbd class="keystroke" id="-kg4h37_284" data-bypass="true"><span class="keystroke__value">Esc</span></kbd> on your keyboard and click <code class="code" id="-kg4h37_286">Change Keys</code> to see your controls (such as how to fly, noclip, etc.).</p><figure id="-kg4h37_279"><img alt="Keybinds" src="images/keybinds.png" title="Keybinds" width="256" height="99"></figure></li><li class="list__item" id="-kg4h37_174"><p id="-kg4h37_178"><span class="emphasis" id="-kg4h37_179">Tip:</span> Run <code class="code" id="-kg4h37_180">/time 12000</code> and <code class="code" id="-kg4h37_181">/set -n time_speed 0</code> if you want to disable nighttime while building the map.</p></li></ul></section><section class="chapter"><h2 id="5-worldedit-basics" data-toc="5-worldedit-basics">5. WorldEdit basics</h2><ul class="list _bullet" id="-kg4h37_182"><li class="list__item" id="-kg4h37_183"><p id="-kg4h37_296">To use WorldEdit, first, you must select an area where your actions occur.</p></li><li class="list__item" id="-kg4h37_184"><p id="-kg4h37_193">You can use the <code class="code" id="-kg4h37_195">WorldEdit Wand tool</code> to select your area. To select your area, you select the two opposite corners of the area. Left-click a node with the tool to make the node the first corner, and right-click to set the second.</p><figure id="-kg4h37_194"><img alt="WorldEdit Wand Tool" src="images/worldedit_wand_tool.png" title="WorldEdit Wand Tool" width="412" height="102"></figure></li><li class="list__item" id="-kg4h37_185"><p id="-kg4h37_303">An alternative method is to stand at the point you would like to select and run <code class="code" id="-kg4h37_304">//1</code> in chat to set the first corner and <code class="code" id="-kg4h37_305">//2</code> to set the second.</p></li><li class="list__item" id="-kg4h37_186"><p id="-kg4h37_306">The area within will be selected.</p><figure id="-kg4h37_307"><img alt="Visual Representation of Regions" src="images/visual_represention_of_regions.png" title="Visual Representation of Regions" width="411" height="298"></figure><aside class="prompt" data-type="warning" data-title="" id="-kg4h37_309"><p id="-kg4h37_313"><span class="control" id="-kg4h37_314">Remember to backup your world before risky operations!</span></p></aside></li><li class="list__item" id="-kg4h37_187"><p id="-kg4h37_196">Open your inventory. Under the <code class="code" id="-kg4h37_198">Crafting</code> tab, an earth icon is hidden behind the crafting options. Click it to open the WorldEdit GUI.</p><figure id="-kg4h37_197"><img alt="Peekaboo with Earth" src="images/peekaboo_with_earth.png" title="Peekaboo with Earth" width="101" height="122"></figure></li><li class="list__item" id="-kg4h37_188"><p id="-kg4h37_315">These are the tools that you can use to alter the nodes within your selected area. You can experiment with the options.</p><figure id="-kg4h37_316"><img alt="WorldEdit GUI" src="images/WEGUI.png" title="WorldEdit GUI" width="711" height="241"></figure></li><li class="list__item" id="-kg4h37_189"><p id="-kg4h37_317">To set the area you've selected earlier with a certain type of node, click <code class="code" id="-kg4h37_321">Set Nodes</code>, type in the name of the node you would like to set in the field, click <code class="code" id="-kg4h37_322">Search</code> or press enter, and click <code class="code" id="-kg4h37_323">Set Nodes</code>.</p><figure id="-kg4h37_318"><img alt="Set Nodes" src="images/set_nodes.png" title="Set Nodes" width="329" height="168"></figure></li><li class="list__item" id="-kg4h37_190"><p id="-kg4h37_324">If you've selected a large area, WorldEdit might warn you in chat. Type <code class="code" id="-kg4h37_326">//y</code> in chat to continue.</p><p> <img alt="Large Area Warning" src="images/large_area_warning.png" class="inline-icon-" title="Large Area Warning" id="-kg4h37_325" width="1077" height="26"></p></li><li class="list__item" id="-kg4h37_191"><p id="-kg4h37_327">To replace a certain node type with another one in your selected area, select <code class="code" id="-kg4h37_328">Replace Nodes</code>. In the first field, type in the node you would like to replace; in the second field, type in the node you would like to replace with.</p></li><li class="list__item" id="-kg4h37_192"><p id="-kg4h37_199">To only place nodes where there are no nodes, you can replace <code class="code" id="-kg4h37_201">air</code> with the node you want to use.</p><figure id="-kg4h37_200"><img alt="Air" src="images/air.png" title="Air" width="381" height="245"></figure></li></ul></section><section class="chapter"><h2 id="6-removing-the-surrounding-terrain" data-toc="6-removing-the-surrounding-terrain">6. Removing the surrounding terrain</h2><aside class="prompt" data-type="note" data-title="" id="-kg4h37_202"><p id="-kg4h37_329">It is your choice to build the barriers first or the map first. For this example, we are going to build the barriers first.</p></aside><ul class="list _bullet" id="-kg4h37_203"><li class="list__item" id="-kg4h37_204"><p id="-kg4h37_211">This is optional and only applies if you're using generated terrain. If you're using the <code class="code" id="-kg4h37_212">singlenode</code> mapgen, you can ignore this and continue reading from <a href="#7-placing-the-barriers" id="-kg4h37_213" data-tooltip="An easy way to place the outer barriers is to run the following command and select your whole map by supplying the two coordinates as instructed in chat:">here</a>.</p></li><li class="list__item" id="-kg4h37_205"><p id="-kg4h37_338">It might be hard to place the outer barriers when the terrain outside your map area blocks your view.</p></li><li class="list__item" id="-kg4h37_206"><p id="-kg4h37_214">To get rid of the extra terrain, first, select the area your map will be in with WorldEdit.</p><figure id="-kg4h37_215"><img alt="Selected Area" src="images/selected_area.png" title="Selected Area" width="352" height="248"></figure></li><li class="list__item" id="-kg4h37_207"><p id="-kg4h37_340">Once you select the area, run <code class="code" id="-kg4h37_343">//mtschemcreate <any name></code>. For example:</p><div class="code-block" data-lang="none">
//mtschemcreate map_terrain
</div></li><li class="list__item" id="-kg4h37_208"><p id="-kg4h37_346">You can copy the exported schems to a singlenode world and place the terrain there. But to keep it simple, you can just fly up in the air and place the terrain in the sky.</p></li><li class="list__item" id="-kg4h37_209"><p id="-kg4h37_348">Enable fly, fly up, and find a suitable place. Place a corner with WorldEdit by running <code class="code" id="-kg4h37_352">//1</code> in chat. Then, run <code class="code" id="-kg4h37_354">//mtschemplace <your schem name></code>. For example:</p><div class="code-block" data-lang="none">
//mtschemplace map_terrain
</div></li><li class="list__item" id="-kg4h37_210"><p id="-kg4h37_355">With that, your terrain should be placed there successfully. If you're unhappy with the result, you can go back down, pick another terrain, and do it again.</p><figure id="-kg4h37_357"><img alt="Map Area" src="images/map_area.png" title="Map Area" width="414" height="308"></figure></li></ul></section><section class="chapter"><h2 id="7-placing-the-barriers" data-toc="7-placing-the-barriers">7. Placing the barriers</h2><ul class="list _bullet" id="-kg4h37_49"><li class="list__item" id="-kg4h37_54"><p id="-kg4h37_359">An easy way to place the outer barriers is to run the following command and select your whole map by supplying the two coordinates as instructed in chat:</p><div class="code-block" data-lang="none">
/ctf_barrier place_outer
</div><aside class="prompt" data-type="warning" data-title="" id="-kg4h37_364"><p id="-kg4h37_366">Doing this will surround the selected area with an indestructible glass/stone barrier, replacing all the nodes in the outermost layer of the selected area. <span class="control" id="-kg4h37_367">This action is not revertible.</span></p></aside></li><li class="list__item" id="-kg4h37_56"><p id="-kg4h37_59">If you would like more customization with the outer barriers, you can use WorldEdit to place them instead:</p><ul class="list _bullet" id="-kg4h37_61"><li class="list__item" id="-kg4h37_68"><p id="-kg4h37_87">To make the bottom of the map indestructible so that players can't escape, select the bottom layer of your map and replace it with any indestructible node through the WorldEdit GUI, or the command <code class="code" id="-kg4h37_370">//s <node itemstring></code>. For example:</p><div class="code-block" data-lang="none">
//s ctf_map:ind_stone
</div><aside class="prompt" data-type="note" data-title="" id="-kg4h37_93"><p id="-kg4h37_96">To see the itemstring of a node when hovering over it inside your inventory, you can go to settings, search for "append", and enable <code class="code" id="-kg4h37_102">Append item name</code>.</p><p id="-kg4h37_99">You can find a list of commonly used itemstrings during map making and tips for using them <a href="commonly-used-itemstrings-list.html" id="-kg4h37_371" data-tooltip="In CTF, there are indestructible variants of almost all Minetest game nodes. Commonly used indestructible barriers/nodes:">here</a>.</p></aside></li><li class="list__item" id="-kg4h37_70"><p id="-kg4h37_373">Your outer barriers can be placed outside your map area, override the outer slice of your map, or leave parts of the map terrain/structures outside the barrier.</p><figure id="-kg4h37_376"><img alt="Border 1" src="images/border1.png" title="Border 1" width="205" height="203"></figure><figure id="-kg4h37_378"><img alt="Border 2" src="images/border2.png" title="Border 2" width="206" height="202"></figure><figure id="-kg4h37_380"><img alt="Border 3" src="images/border3.png" title="Border 3" width="207" height="201"></figure></li><li class="list__item" id="-kg4h37_72"><p id="-kg4h37_381">To place the outer barrier, select the area where the barrier will be with WorldEdit (this area should only be one node thick) and set it to <code class="code" id="-kg4h37_390">Indestructible Barrier Glass</code> (<code class="code" id="-kg4h37_391">ctf_map:ind_glass</code>) or any type of indestructible node. Many nodes have indestructible variants, which you can use. You can place it using the WorldEdit GUI, or through the command <code class="code" id="-kg4h37_393">//s <node itemstring></code>. For example:</p><div class="code-block" data-lang="none">
//s ctf_map:ind_glass
</div><p id="-kg4h37_385">This method will penetrate the terrain/structures if you have some within your selected area.</p><figure id="-kg4h37_388"><img alt="Borders Destroy" src="images/borders_destroy.png" title="Borders Destroy" width="345" height="225"></figure></li><li class="list__item" id="-kg4h37_75"><p id="-kg4h37_395">To replace the terrain with a type of indestructible node and everything that is not terrain with the barrier glass like the image below, you can replace-inverse air with your indestructible node and then replace air with <code class="code" id="-kg4h37_400">Indestructible Barrier Glass</code>.</p><figure id="-kg4h37_398"><img alt="Mixed Barrier" src="images/mixed_barrier.png" title="Mixed Barrier" width="368" height="253"></figure></li><li class="list__item" id="-kg4h37_77"><p id="-kg4h37_402">To do that, select the area where the barrier will be with WorldEdit and replace-inverse air with your indestructible node through the WorldEdit GUI or using <code class="code" id="-kg4h37_406">//ri air <node itemstring></code>. For example:</p><div class="code-block" data-lang="none">
//ri air ctf_map:ind_stone
</div></li><li class="list__item" id="-kg4h37_79"><p id="-kg4h37_407">Then, without selecting a new area, replace <code class="code" id="-kg4h37_411">air</code> with <code class="code" id="-kg4h37_413">Indestructible Barrier Glass</code> using the WorldEdit GUI, or through the command:</p><div class="code-block" data-lang="none">
//r air ctf_map:ind_glass
</div></li><li class="list__item" id="-kg4h37_82"><p id="-kg4h37_416">After finishing your first barrier wall, proceed to build the other 3 sides of the barrier.</p></li><li class="list__item" id="-kg4h37_85"><p id="-kg4h37_418">You can also make a roof using any type of indestructible node such as <code class="code" id="-kg4h37_420">Indestructible Barrier Glass</code>, but if you set your map area correctly later on, players shouldn't be able to escape through the roof. So, you do not necessarily need to add a roof.</p></li></ul></li></ul></section><section class="chapter"><h2 id="8-building-the-map" data-toc="8-building-the-map">8. Building the map</h2><ul class="list _bullet" id="-kg4h37_216"><li class="list__item" id="-kg4h37_217"><p id="-kg4h37_221">If you are using the <code class="code" id="-kg4h37_222">singlenode</code> mapgen, because of the world being filled with "Artificial Ignore" (<code class="code" id="-kg4h37_223">ctf_map:ignore</code>), players will not be able to move around without noclip.</p></li><li class="list__item" id="-kg4h37_218"><p id="-kg4h37_224">"Artificial Ignore" is a type of invisible, un-diggable, and un-pointable (you cannot select it) block. You have to set the area you want players to move in with <code class="code" id="-kg4h37_226">air</code> using WorldEdit. So, to make a map in the <code class="code" id="-kg4h37_227">singlenode</code> mapgen, you will need to enable noclip, and set the area you require for map making to air, and run:</p><div class="code-block" data-lang="none">
//s air
</div></li><li class="list__item" id="-kg4h37_219"><p id="-kg4h37_228">When building your map, you can add any structure you want. Many blocks have indestructible variants, which you can use for builds you don't want players to destroy (use the admin pickaxe to break indestructible blocks).</p><figure id="-kg4h37_229"><img alt="Indestructible Variants" src="images/indestructible_variants.png" title="Indestructible Variants" width="172" height="65"></figure><aside class="prompt" data-type="tip" data-title="" id="-kg4h37_230"><p id="-kg4h37_231">Another special node that CTF provides is the "Kill Node" (<code class="code" id="-kg4h37_232">ctf_map:killnode</code>). It is a glass-like, un-walkable node that does a damage of 20 HP per second when in contact. It is pointable, in other words, selectable, only in <code class="code" id="-kg4h37_233">mapedit</code> mode.</p></aside></li><li class="list__item" id="-kg4h37_220"><p id="-kg4h37_234">You should also add the following:</p><ul class="list _bullet" id="-kg4h37_235"><li class="list__item" id="-kg4h37_236"><p id="-kg4h37_422">Indestructible blocks under the position of the flag (the flag will be added later). The minimum surface area for this indestructible platform is <code class="code" id="-kg4h37_423">5x5</code> blocks (the flag should be in the middle).</p></li><li class="list__item" id="-kg4h37_237"><p id="-kg4h37_425">Team chests for each team. You can find them as a node in the inventory.</p><figure id="-kg4h37_428"><img alt="Team Chest" src="images/team_chest.png" title="Team Chest" width="361" height="245"></figure></li><li class="list__item" id="-kg4h37_238"><p id="-kg4h37_240"><span class="emphasis" id="-kg4h37_241">Optional:</span> ores (such as iron, diamond, or mese ores). The number of ores for each team should be about the same to ensure that no team has an advantage (please note that mapgens such as v7 and flat come with ores).</p></li><li class="list__item" id="-kg4h37_239"><p id="-kg4h37_242"><span class="control" id="-kg4h37_243">Note:</span> if you want to enable your map for the classic mode, ores are required.</p></li></ul></li></ul></section><section class="chapter"><h2 id="9-building-the-build-time-barrier" data-toc="9-building-the-build-time-barrier">9. Building the build-time barrier</h2><ul class="list _bullet" id="-kg4h37_244"><li class="list__item" id="-kg4h37_245"><p id="-kg4h37_429">Your build-time barrier should be in the middle of the map. It is fine if it can't be precisely in the middle.</p><aside class="prompt" data-type="note" data-title="" id="-kg4h37_432"><p id="-kg4h37_434">You can press <kbd class="keystroke" id="-kg4h37_436" data-bypass="true"><span class="keystroke__value">F5</span></kbd> to show your current coordinates.</p></aside></li><li class="list__item" id="-kg4h37_246"><p id="-kg4h37_250">To place the build-time barriers, run the following command in chat and select the area where your build-time barrier wall will be by supplying the two coordinates as instructed in chat (you can include terrain/structures in the selection too; don't worry they won't be replaced):</p><div class="code-block" data-lang="none">
/ctf_barrier place_buildtime
</div></li><li class="list__item" id="-kg4h37_247"><p id="-kg4h37_438">The above will replace certain nodes with the corresponding build-time barrier, creating a build-time wall. To remove a build-time wall or any part of it, run the following command in chat and supply the coordinates:</p><div class="code-block" data-lang="none">
/ctf_barrier remove_buildtime
</div></li><li class="list__item" id="-kg4h37_248"><p id="-kg4h37_252">To place the build-time barrier wall with WorldEdit, you can do the following:</p><ul class="list _bullet" id="-kg4h37_253"><li class="list__item" id="-kg4h37_254"><p id="-kg4h37_258">The <code class="code" id="-kg4h37_260">Indestructible Red Barrier Glass</code> will disappear once build-time is over, so your build-time wall should not replace any part of the map terrain/structures. To do this, select the area where the build-time barrier wall will be with WorldEdit (you can include terrain/structures in the selection too; don't worry they won't be replaced), and run:</p><div class="code-block" data-lang="none">
//r air ctf_map:ind_glass_red
</div></li><li class="list__item" id="-kg4h37_255"><p id="-kg4h37_261">If there are stone nodes within the barrier wall, you can replace them with <code class="code" id="-kg4h37_263">Indestructible Red Barrier Stone</code>, which will turn into normal stone once the match starts. To do this, maintain the same selected area as before and run:</p><div class="code-block" data-lang="none">
//r default:stone ctf_map:ind_stone_red
</div></li><li class="list__item" id="-kg4h37_256"><p id="-kg4h37_442">If there is water within the barrier wall, you can replace it with <code class="code" id="-kg4h37_446">Indestructible Water Barrier Glass</code>, which will turn into water once the match starts. To do this, maintain the same selected area as before and run:</p><div class="code-block" data-lang="none">
//r default:water_source ctf_map:ind_water
</div></li><li class="list__item" id="-kg4h37_257"><p id="-kg4h37_268">If there is lava within the barrier wall, you can replace it with <code class="code" id="-kg4h37_270">Indestructible Lava Barrier Stone</code>, which will turn into lava once the match starts. To do this, maintain the same selected area as before and run:</p><div class="code-block" data-lang="none">
//r default:lava_source ctf_map:ind_lava
</div></li></ul></li><li class="list__item" id="-kg4h37_249"><p id="-kg4h37_448">If there are still breakable nodes within the barrier wall, you can leave them there, because if you set your team-zones correctly later on, players should be teleported back to base if they cross the barrier wall.</p></li></ul></section><section class="chapter"><h2 id="10-selecting-the-map-area" data-toc="10-selecting-the-map-area">10. Selecting the map area</h2><ul class="list _bullet" id="-kg4h37_449"><li class="list__item" id="-kg4h37_451"><p id="-kg4h37_457">After you finished building your map, run the following command in chat:</p><div class="code-block" data-lang="none">
/ctf_map editor
</div></li><li class="list__item" id="-kg4h37_453"><p id="-kg4h37_461">Click <code class="code" id="-kg4h37_465">Create New Map</code>.</p><figure id="-kg4h37_464"><img alt="Map Editor" src="images/editor.png" title="Map Editor" width="540" height="176"></figure></li><li class="list__item" id="-kg4h37_455"><p id="-kg4h37_468">Follow the instructions given to you in chat and select the area your map is in, just like how you would select the area with WorldEdit. You can either punch a node to select or stand where you want to select and run the following command:</p><div class="code-block" data-lang="none">
/ctf_map here
</div><figure id="-kg4h37_471"><img alt="/ctf_map here" src="images/ctf_map_here.png" title="/ctf_map here" width="936" height="38"></figure><p id="-kg4h37_473">Make sure you selected your entire map and that you did not select any extra space. If you have decided to leave some terrain/structures outside your outer glass barrier, include them too.</p></li></ul></section><section class="chapter"><h2 id="11-exporting-the-map" data-toc="11-exporting-the-map">11. Exporting the map</h2><ul class="list _bullet" id="-kg4h37_271"><li class="list__item" id="-kg4h37_272"><p id="-kg4h37_476">After selecting your map area, run <code class="code" id="-kg4h37_478">/ctf_map editor</code> in chat again. This will open the Map Editor.</p></li><li class="list__item" id="-kg4h37_273"><p id="-kg4h37_292">Check <code class="code" id="-kg4h37_294">Map Enabled</code> unless you don't want to make the map available for play. If you are making the map for the official server, you will check this.</p><figure id="-kg4h37_293"><img alt="Map Enabled" src="images/map_enabled.png" title="Map Enabled" width="153" height="62"></figure></li><li class="list__item" id="-kg4h37_274"><p id="-kg4h37_295">In the license field, add the license of your map. Every map must have a license. The official CTF server will only accept free culture licenses like <code class="code" id="-kg4h37_300">CC BY-SA 4.0</code>. Please note that some CC licenses, such as <code class="code" id="-kg4h37_301">CC BY-ND</code> are not free. You can find a list of CC licenses <a href="https://creativecommons.org/share-your-work/cclicenses/" id="-kg4h37_302" data-external="true" rel="noopener noreferrer">here</a>.</p><figure id="-kg4h37_297"><img alt="License" src="images/license.png" title="License" width="285" height="65"></figure><p id="-kg4h37_298">From the ctf_map README:</p><aside class="prompt" data-type="tip" data-title="" id="-kg4h37_299"><p id="-kg4h37_308">You can append any attribution you need to give to the <code class="code" id="-kg4h37_311">license</code> field (For example: If you modified someone's map or used one of their builds you'd list their name and what map/build of theirs that you modified/used). If you want to give more information, you can use the <code class="code" id="-kg4h37_312">Other Info</code> field.</p><p id="-kg4h37_310">Please make sure you know what you are doing when choosing a license.</p></aside></li><li class="list__item" id="-kg4h37_275"><p id="-kg4h37_319">In the <code class="code" id="-kg4h37_480">Folder Name</code> field, type in the name you want the map folder to be. For example, if your map name is "My Map", it is recommended for you to name the folder <code class="code" id="-kg4h37_482">my_map</code>.</p><figure id="-kg4h37_320"><img alt="Folder Name" src="images/folder_name.png" title="Folder Name" width="284" height="70"></figure></li><li class="list__item" id="-kg4h37_276"><p id="-kg4h37_484">Give players a hint about your map in the <code class="code" id="-kg4h37_487">Map Hint</code> field, such as where the treasures/ores are.</p><figure id="-kg4h37_486"><img alt="Map Hint" src="images/hint.png" title="Map Hint" width="285" height="66"></figure></li><li class="list__item" id="-kg4h37_278"><p id="-kg4h37_490">Use <code class="code" id="-kg4h37_494">Other Info</code> for additional information about the map. You can leave this empty.</p><figure id="-kg4h37_492"><img alt="Other Info" src="images/other_info.png" title="Other Info" width="287" height="63"></figure></li><li class="list__item" id="-kg4h37_280"><p id="-kg4h37_495">In the <code class="code" id="-kg4h37_500">Map Name</code> field, type in the name of your map. For example, "My Map".</p><figure id="-kg4h37_498"><img alt="Map Name" src="images/map_name.png" title="Map Name" width="282" height="61"></figure></li><li class="list__item" id="-kg4h37_281"><p id="-kg4h37_502">In the <code class="code" id="-kg4h37_505">Map Author(s)</code> field, type in the name(s) of the author(s) of your map.</p><figure id="-kg4h37_504"><img alt="Author(s)" src="images/author.png" title="Author(s)" width="283" height="63"></figure></li><li class="list__item" id="-kg4h37_282"><p id="-kg4h37_330">From the ctf_map README:</p><aside class="prompt" data-type="tip" data-title="" id="-kg4h37_331"><p id="-kg4h37_334"><code class="code" id="-kg4h37_507">initial_stuff</code> are the items given to players at their (re)spawn. The <code class="code" id="-kg4h37_510">initial_stuff</code> field is located in the <code class="code" id="-kg4h37_512">map.conf</code> file. At least a pickaxe and some torches should be given in the map's <code class="code" id="-kg4h37_513">initial_stuff</code>.</p><p id="-kg4h37_335">An example of <code class="code" id="-kg4h37_336">initial_stuff</code> value that registers a stone pickaxe, 30 cobblestones, 5 torches and a pistol is given below.</p></aside><div class="code-block" data-lang="none">
default:pick_stone,default:cobble 30,default:torch 5,ctf_ranged:pistol_loaded
</div><figure id="-kg4h37_333"><img alt="Initial stuff" src="images/initial_stuff.png" title="Initial stuff" width="279" height="60"></figure></li><li class="list__item" id="-kg4h37_283"><p id="-kg4h37_515"><code class="code" id="-kg4h37_519">Map Treasures</code> is <span class="emphasis" id="-kg4h37_521">optional</span>. You can leave this field untouched. From the ctf_map README:</p><aside class="prompt" data-type="tip" data-title="" id="-kg4h37_517"><p id="-kg4h37_524">(<code class="code" id="-kg4h37_537">Map Treasures</code> is) a list of treasures that can be added specifically for your map that don't end up in chests by default.</p><p id="-kg4h37_525">Format:</p><div class="code-block" data-lang="none">
[name];[min_count];[max_count];[max_stacks];[rarity];[TREASURE_VERSION];
</div><p id="-kg4h37_529"><code class="code" id="-kg4h37_539">rarity</code> is a value between 0 and 1 specifying the probability it will be added to a chest. <code class="code" id="-kg4h37_541">TREASURE_VERSION</code> should currently be set to one.</p><p id="-kg4h37_532">Example:</p><div class="code-block" data-lang="none">
default:lava_source;1;10;1;0.2;1;default:water_source;1;10;1;0.2;1;
</div><figure id="-kg4h37_536"><img alt="Map Treasures" src="images/map_treasures.png" title="Map Treasures" width="664" height="130"></figure></aside></li><li class="list__item" id="-kg4h37_285"><p id="-kg4h37_544">The <code class="code" id="-kg4h37_548">Skybox</code> is an image of a sky that will replace the default Minetest sky when players play your map. You can leave this as <code class="code" id="-kg4h37_550">none</code> to use the default Minetest sky or select one of the skyboxes. You can also add custom skyboxes. (<a href="https://github.com/CTF-handbooks/ctf-handbooks.github.io/issues/9" id="-kg4h37_552" data-external="true" rel="noopener noreferrer"><span class="emphasis" id="-kg4h37_554"><span class="control" id="-kg4h37_556">WIP</span></span></a>)</p><figure id="-kg4h37_546"><img alt="Skyboxes" src="images/skyboxes.png" title="Skyboxes" width="443" height="177"></figure></li><li class="list__item" id="-kg4h37_287"><p id="-kg4h37_558">In <code class="code" id="-kg4h37_562">Map Modes</code>, you can select the modes that will be enabled for your map. By default, all modes are enabled. To disable/enable a mode, double click it. Disabled modes are in the <code class="code" id="-kg4h37_564">Available Modes</code> box.</p><figure id="-kg4h37_559"><img alt="Map Modes" src="images/map_modes.png" title="Map Modes" width="1063" height="169"></figure></li><li class="list__item" id="-kg4h37_288"><p id="-kg4h37_566">Map Constants (from the ctf_map README):</p><aside class="prompt" data-type="tip" data-title="" id="-kg4h37_568"><ol class="list _decimal" id="-kg4h37_570" type="1"><li class="list__item" id="-kg4h37_572"><p><code class="code" id="-kg4h37_582">Map Shadow Intensity</code>: Sets the intensity of the shadows.</p></li><li class="list__item" id="-kg4h37_573"><p><code class="code" id="-kg4h37_584">Map Gravity</code>: Gravitational constant of the map. (default = 1)</p></li><li class="list__item" id="-kg4h37_576"><p><code class="code" id="-kg4h37_586">Map Movement Speed</code>: Regulates the speed at which players move. (default = 1)</p></li><li class="list__item" id="-kg4h37_578"><p><code class="code" id="-kg4h37_588">Map Jump Height</code>: Regulates the height of jumps. (default = 1)</p></li><li class="list__item" id="-kg4h37_580"><p><code class="code" id="-kg4h37_590">Map start_time</code>: Sets time of the day the match begins at. Changing this field will instantly update the time of day in the world you are editing. </p><ul class="list _bullet" id="-kg4h37_592"><li class="list__item" id="-kg4h37_594"><p><code class="code" id="-kg4h37_602">0</code> is for midnight</p></li><li class="list__item" id="-kg4h37_596"><p><code class="code" id="-kg4h37_604">1000</code> is for 1 AM</p></li><li class="list__item" id="-kg4h37_598"><p><code class="code" id="-kg4h37_606">2000</code> is for 2 AM</p></li><li class="list__item" id="-kg4h37_599"><p>etc.</p></li></ul></li></ol></aside></li><li class="list__item" id="-kg4h37_289"><p id="-kg4h37_608">Below the map constants, you will see a list of the different teams with a checkbox next to them. Use the checkbox to enable the teams that exist in your map.</p><figure id="-kg4h37_610"><img alt="Teams" src="images/teams.png" title="Teams" width="348" height="443"></figure><p id="-kg4h37_612">Next, click the <code class="code" id="-kg4h37_622">Set Flag Pos</code> button below your first enabled team and punch the node where that team's flag will be on. This will place the flag on top of that node.</p><p id="-kg4h37_614">Then, click the <code class="code" id="-kg4h37_624">Zone Bounds</code> button below the <code class="code" id="-kg4h37_626">Set Flag Pos</code> button and select the team's team-zone. A team-zone is the area where the team's players interact within during build-time before the build-time barriers drop. During build-time, players who leave the team-zone will be teleported back to base. Even standing on the edge of the team-zone will teleport the player back to base, <span class="control" id="-kg4h37_628">so make sure to include the barriers within your team-zone too, or players will get teleported back to base if they touch the barriers during build-time!</span></p><p id="-kg4h37_616"><img alt="image" src="https://github.com/CTF-handbooks/map-maker-handbook/assets/88883098/7186f5fd-1e8d-416b-a7a6-a6eb9b2796bd" class="inline-icon-" title="image" id="-kg4h37_630"> <img alt="image" src="https://github.com/CTF-handbooks/map-maker-handbook/assets/88883098/843e65d0-6dba-4de7-b8d6-d4b9fee34b2a" class="inline-icon-" title="image" id="-kg4h37_632"></p><p id="-kg4h37_618">The <code class="code" id="-kg4h37_634">Look position</code> is the direction the players will look when they spawn at base. You can leave this by default (default is: auto).</p><p id="-kg4h37_620">Repeat the same process for every enabled team.</p></li><li class="list__item" id="-kg4h37_290"><p id="-kg4h37_636">To add treasure chests to your map, click the <code class="code" id="-kg4h37_641">Add Chest Zone</code> button to add a chest-zone. A chest-zone is an area where the treasure chests will spawn randomly. You can add multiple chest zones. Click on the <code class="code" id="-kg4h37_644">Chest Zone - (0,0,0) - (0,0,0)</code> button for each chest zone to select each chest zone's area. You can only add one chest zone and have it cover the whole map, or you can add several different chest zones. You can edit the number of chests that will spawn randomly in each chest-zone.</p><figure id="-kg4h37_638"><img alt="Chest-zone" src="images/chestzone.png" title="Chest-zone" width="566" height="218"></figure><p id="-kg4h37_640">You can click the <code class="code" id="-kg4h37_646">X</code> button to remove a chest zone. Make sure each team gets around the same number of chests on their side!</p></li><li class="list__item" id="-kg4h37_291"><p id="-kg4h37_648">Once you finish configuring the map, click the <code class="code" id="-kg4h37_652">Finish Editing</code> button at the very bottom to finish.</p><figure id="-kg4h37_650"><img alt="Finish Editing" src="images/finish.png" title="Finish Editing" width="210" height="70"></figure></li></ul></section><section class="chapter"><h2 id="12-testing-the-map" data-toc="12-testing-the-map">12. Testing the map</h2><ul class="list _bullet" id="-kg4h37_654"><li class="list__item" id="-kg4h37_656"><p id="-kg4h37_671">You can find your exported map folder within <code class="code" id="-kg4h37_673">[Minetest folder]/worlds/[Map World]/schems/</code>.</p></li><li class="list__item" id="-kg4h37_658"><p id="-kg4h37_675">To test your map, copy that folder into <code class="code" id="-kg4h37_682">[Minetest folder]/games/capturetheflag/mods/ctf/ctf_map/maps</code>. You can go to your Minetest folder and paste the following into your file manager's search/directory to navigate there quickly:</p><div class="code-block" data-lang="none">
/games/capturetheflag/mods/ctf/ctf_map/maps
</div><aside class="prompt" data-type="warning" data-title="" id="-kg4h37_679"><p id="-kg4h37_684">If you experience a problem with the above path on certain file managers, copy it without the <code class="code" id="-kg4h37_686">/</code> at the start.</p></aside></li><li class="list__item" id="-kg4h37_659"><p id="-kg4h37_688">Create a new world in the Capture the Flag game with the <code class="code" id="-kg4h37_691">singlenode</code> mapgen.</p><figure id="-kg4h37_689"><img alt="World Generation" src="images/worldgen.png" title="World Generation" width="424" height="233"></figure></li><li class="list__item" id="-kg4h37_662"><p id="-kg4h37_693">Disable <code class="code" id="-kg4h37_697">Creative Mode</code>, and play the game.</p><figure id="-kg4h37_695"><img alt="World Options" src="images/world_options.png" title="World Options" width="148" height="62"></figure></li><li class="list__item" id="-kg4h37_663"><p id="-kg4h37_700">Grant yourself the <code class="code" id="-kg4h37_704">ctf_admin</code> priv (required to run upcoming commands) by running the following command:</p><div class="code-block" data-lang="none">
/grantme ctf_admin
</div></li><li class="list__item" id="-kg4h37_665"><p id="-kg4h37_706">To skip to your map, you can run the command <code class="code" id="-kg4h37_710">/ctf_next -f <map_name></code> or run the command <code class="code" id="-kg4h37_711">/maps</code>. Once you run the <code class="code" id="-kg4h37_713">/maps</code> command, you will be in the "Map catalog" menu. Find your map in the list, select it, and press the <code class="code" id="-kg4h37_716">Skip to map</code> button.</p><figure id="-kg4h37_708"><img alt="Map catalog" src="images/map_catalog.png" title="Map catalog" width="391" height="673"></figure></li><li class="list__item" id="-kg4h37_667"><p id="-kg4h37_718">To skip build-time, you can run the following command:</p><div class="code-block" data-lang="none">
/ctf_start
</div></li><li class="list__item" id="-kg4h37_669"><p id="-kg4h37_722">To set yourself to the other team, run:</p><div class="code-block" data-lang="none">
/grantme ctf_team_admin
</div><p id="-kg4h37_726">Then:</p><div class="code-block" data-lang="none">
/ctf_teams set singleplayer <team color>
</div><p id="-kg4h37_730">For example:</p><div class="code-block" data-lang="none">
/ctf_teams set singleplayer blue
</div></li></ul></section><section class="chapter"><h2 id="13-screenshot" data-toc="13-screenshot">13. Screenshot</h2><ul class="list _bullet" id="-kg4h37_733"><li class="list__item" id="-kg4h37_739"><p>If you choose to submit your map, include a screenshot of it in the exported map's folder. It should be taken without any texture packs enabled and must have an aspect ratio of 3:2 (screenshot <code class="code" id="-kg4h37_744">600px</code>x<code class="code" id="-kg4h37_746">400px</code> is suggested).</p></li><li class="list__item" id="-kg4h37_741"><p>To set the correct aspect ratio, you can: </p><ol class="list _decimal" id="-kg4h37_748" type="1"><li class="list__item" id="-kg4h37_749"><p><a href="#using-minetest-to-adjust-screenshot-aspect-ratio" id="-kg4h37_754" data-tooltip="Go to your Minetest client's settings and under Graphics, temporarily set the Screen Width and Screen Height to 600 and 400 respectively as shown below: After making sure that the values are properly set, close and re-open your Minetest client. Your Minetest window's height and…">Change the height and width of your Minetest window</a> and take a screenshot <span class="emphasis" id="-kg4h37_755">or</span></p></li><li class="list__item" id="-kg4h37_751"><p>Use a tool of your choice after taking the screenshot. For example, you can use <a href="https://imagy.app/image-aspect-ratio-changer/" id="-kg4h37_757" data-external="true" rel="noopener noreferrer">this</a> website.</p></li></ol></li></ul><section class="chapter"><h3 id="using-minetest-to-adjust-screenshot-aspect-ratio" data-toc="using-minetest-to-adjust-screenshot-aspect-ratio">Using Minetest to adjust screenshot aspect ratio</h3><ol class="list _decimal" id="-kg4h37_760" type="1"><li class="list__item" id="-kg4h37_762"><p>Go to your Minetest client's settings and under <code class="code" id="-kg4h37_767">Graphics</code>, temporarily set the <code class="code" id="-kg4h37_769">Screen Width</code> and <code class="code" id="-kg4h37_771">Screen Height</code> to <code class="code" id="-kg4h37_773">600</code> and <code class="code" id="-kg4h37_776">400</code> respectively as shown below: </p><figure id="-kg4h37_777"><img alt="Graphics Settings Menu" src="images/graphics_height_width_settings.png" title="Graphics Settings Menu" width="945" height="408"></figure></li><li class="list__item" id="-kg4h37_763"><p>After making sure that the values are properly set, close and re-open your Minetest client. Your Minetest window's height and width should have changed now.</p></li><li class="list__item" id="-kg4h37_766"><p>Keep the window size as it is and follow the screenshot steps mentioned in the next section</p></li></ol></section><section class="chapter"><h3 id="taking-the-screenshot-in-minetest" data-toc="taking-the-screenshot-in-minetest">Taking the screenshot in Minetest</h3><p id="-kg4h37_779">You can take a screenshot easily by doing the following:</p><ol class="list _decimal" id="-kg4h37_782" type="1"><li class="list__item" id="-kg4h37_785"><p>Hide the HUD. By default <kbd class="keystroke" id="-kg4h37_799" data-bypass="true"><span class="keystroke__value">F1</span></kbd> does that.</p></li><li class="list__item" id="-kg4h37_787"><p>Hide the chat log. By default <kbd class="keystroke" id="-kg4h37_802" data-bypass="true"><span class="keystroke__value">F2</span></kbd> does that.</p></li><li class="list__item" id="-kg4h37_789"><p>See if your screenshot looks better with/without fog enabled. You can toggle it with <kbd class="keystroke" id="-kg4h37_803" data-bypass="true"><span class="keystroke__value">F3</span></kbd> by default</p></li><li class="list__item" id="-kg4h37_791"><p>Try to find a good view that shows most of the map.</p></li><li class="list__item" id="-kg4h37_793"><p><span class="emphasis" id="-kg4h37_805">(Optional)</span> Increase your view range if important parts of the map cannot be seen. By default the <kbd class="keystroke" id="-kg4h37_807" data-bypass="true"><span class="keystroke__value">=</span></kbd> (or <kbd class="keystroke" id="-kg4h37_809" data-bypass="true"><span class="keystroke__value">+</span></kbd>) and <kbd class="keystroke" id="-kg4h37_811" data-bypass="true"><span class="keystroke__value">-</span></kbd> keys do that.</p></li><li class="list__item" id="-kg4h37_795"><p>Take a screenshot <span class="control" id="-kg4h37_813">from Minetest</span>. By default <kbd class="keystroke" id="-kg4h37_815" data-bypass="true"><span class="keystroke__value">F12</span></kbd> does that.</p></li><li class="list__item" id="-kg4h37_797"><p>You can find the screenshot in <code class="code" id="-kg4h37_818">[Minetest folder]/screenshots</code> unless you have changed the path in the settings.</p></li></ol><p id="-kg4h37_783">If you did not <a href="#using-minetest-to-adjust-screenshot-aspect-ratio" id="-kg4h37_819" data-tooltip="Go to your Minetest client's settings and under Graphics, temporarily set the Screen Width and Screen Height to 600 and 400 respectively as shown below: After making sure that the values are properly set, close and re-open your Minetest client. Your Minetest window's height and…">use Minetest to adjust the screenshot aspect ratio</a>, then crop the screenshot into the correct aspect ratio using a tool of your choice. Put the screenshot inside your exported map's folder. It should be named <code class="code" id="-kg4h37_821">screenshot.png</code>.</p></section></section><section class="chapter"><h2 id="14-submission" data-toc="14-submission">14. Submission</h2><ul class="list _bullet" id="-kg4h37_823"><li class="list__item" id="-kg4h37_826"><p>Now that you have finished making your map, you can submit it to the official CTF server. You can learn more about submission <a href="https://github.com/MT-CTF/capturetheflag/blob/master/mods/ctf/ctf_map/README.md#9-submission" id="-kg4h37_828" data-external="true" rel="noopener noreferrer">here</a>.</p></li></ul></section><div class="last-modified">Last modified: 29 July 2024</div><div data-feedback-placeholder="true"></div><div class="navigation-links _bottom"><a href="the-map-maker-s-handbook.html" class="navigation-links__prev">The Map Maker's Handbook</a><a href="commonly-used-itemstrings-list.html" class="navigation-links__next">Commonly Used Itemstrings List</a></div></article><div id="disqus_thread"></div></div></section></main></div><script src="https://resources.jetbrains.com/writerside/apidoc/6.10.0-b408/app.js"></script></body></html>