]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - Docs/mapping.txt
Fix macOS SDL2 framework permissions
[xonotic/xonotic.git] / Docs / mapping.txt
index 027452551db7a18262cd7e46afe7909ea2f377a8..5ab3e356c2a97148bf875803a0aba3c7bb16772a 100644 (file)
@@ -8,10 +8,8 @@ there's much more available.
 \r
 Table of Contents\r
 -----------------\r
-I        Map Lists & Scripts\r
+I        Map Settings\r
          (get your map listed and working)\r
-  i.     mapinfo\r
-  ii.    mapname.cfg\r
 \r
 II       Map Image\r
 \r
@@ -19,11 +17,9 @@ III      Domination
 \r
 IV       CTF\r
 \r
-V        Rune Match\r
+V        Race/CTS\r
 \r
-VI       Race/CTS\r
-\r
-VII      Nexball\r
+VI       Nexball\r
 \r
 Appendix A - Advanced mapinfo\r
 \r
@@ -33,24 +29,14 @@ Appendix B - Helpful extras
 \r
 Appendix C - Advanced Darkplaces shaders\r
 \r
-========================\r
-=I. Map Lists & Scripts=\r
-========================\r
+=================\r
+=I. Map Settings=\r
+=================\r
 \r
-There now is just a single script/cfg file available to you, containing all map\r
-specific settings:\r
+All map specific settings goes in a single file:\r
 \r
 mapname.mapinfo\r
 \r
-The mapinfo is actually required - however, the game is so nice that it\r
-automatically generates a draft of it for you.\r
-\r
-------------------\r
--The mapinfo file-\r
-------------------\r
-\r
-*cue even more scary music*\r
-\r
 The mapinfo file is basically what gets your map listed in the menu, and sets\r
 up the options needed to change to it. If no mapinfo file exists, the menu\r
 will automatically generate a rough draft for you on game startup. It will get\r
@@ -60,7 +46,7 @@ As an example, let's say I make a map called "wazat1.bsp". As long as I'm
 fantasizing, I might as well say this map is so well done I'm actually willing\r
 to release it for friends, neighbors, fellow forum visitors and other people\r
 who like me to judge me by. Let's also assume that I want domination,\r
-deathmatch/team deathmatch and runematch to all be playable on my map.\r
+deathmatch/team deathmatch to all be playable on my map.\r
 \r
 This is very easy. First, I start the game and exit it again so the game writes\r
 data/data/wazat1.mapinfo for me. The file may look like:\r
@@ -71,22 +57,19 @@ data/data/wazat1.mapinfo for me. The file may look like:
     _diameter 1966.839355\r
     _spawnpoints 5\r
     has weapons\r
-       cdtrack 5\r
-    type dm 30 20\r
-    type dom 200 20\r
-    type rune 200 20\r
-    type lms 9 20\r
-    type arena 10 20\r
+    cdtrack 5\r
+    gametype dm // defaults: timelimit=20 pointlimit=30 leadlimit=0\r
+    gametype dom // defaults: timelimit=20 pointlimit=200 teams=2 leadlimit=0\r
+    gametype lms // defaults: timelimit=20 lives=9 leadlimit=0\r
 \r
 As I see, the menu autodetected that my map may be suitable for deathmatch,\r
-domination, runematch, last man standing and arena. But I want the map to be\r
-played in domination, deathmatch, team deathmatch, runematch only, and I also\r
-want different timelimits/fraglimits, so I will change the "type" lines to:\r
+domination, last man standing and keepaway. But I want the map to be played in\r
+domination, deathmatch, team deathmatch only, and I also want different\r
+timelimits/fraglimits, so I will change the "gametype" lines to:\r
 \r
-    type dom 100 15\r
-    type rune 1000 25\r
-    type dm 40 15\r
-    type tdm 50 0 2\r
+    gametype dom pointlimit=100 timelimit=15\r
+    gametype dm pointlimit=40 timelimit=15\r
+    gametype tdm pointlimit=50 timelimit=0 teams=2\r
 \r
 Also, while I am at it, I should fix the placeholders in the map description lines:\r
 \r
@@ -101,26 +84,28 @@ the right game modes and with the right description in the menu.
 \r
 Also, note the "has weapons" line. If this line is not there (which happens if\r
 the map contains no weapon entities other than the Nex), the map will run in\r
-MinstaGib only and not be shown in the menu normally. So if you look for your\r
+InstaGib only and not be shown in the menu normally. So if you look for your\r
 map and don't find it, add "has weapons" to the mapinfo file, and make sure you\r
 have weapon entities placed.\r
 \r
 There's much more power in a mapinfo file. See Appendix A for more details.\r
 \r
-Gametype        | Syntax                                                                              | Notes\r
-----------------+-------------------------------------------------------------------------------------+-------------------------------------------------------\r
-Deathmatch      | type dm    <fraglimit>  <timelimit>                                                 |\r
-Team Deathmatch | type tdm   <fraglimit>  <timelimit> <teams>                                         | 2, 3, or 4 teams\r
-Domination      | type dom   <pointlimit> <timelimit>                                                 | teams are set by the map's entities\r
-CTF             | type ctf   <pointlimit> <timelimit> <caplimit>                                      | pointlimit if g_ctf_win_mode is 2, otherwise caplimit\r
-Runematch       | type rune  <pointlimit> <timelimit>                                                 |\r
-LMS             | type lms   <lives>      <timelimit>                                                 |\r
-Arena           | type arena <fraglimit>  <timelimit>                                                 |\r
-Key Hunt        | type kh    <pointlimit> <timelimit> <teams>                                         | 2, 3, or 4 teams\r
-Assault         | type as                 <timelimit>                                                 | never uses points\r
-Onslaught       | type ons                <timelimit>                                                 | never uses points\r
-Race            | type rc                 <timelimit> <qualifyingtimelimit> <laplimit> <teamlaplimit> | g_race_teams: teamlaplimit is used instead of laplimit\r
-CTS             | type cts                <timelimit> <skill>                                         | never uses points\r
+Gametype        | Syntax                                                                                                   | Notes\r
+----------------+----------------------------------------------------------------------------------------------------------+-------------------------------------------------------\r
+Deathmatch      | gametype dm [timelimit=...] [pointlimit=...] [leadlimit=...]                                             |\r
+Team Deathmatch | gametype tdm [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                | 2, 3, or 4 teams\r
+Domination      | gametype dom [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                | 2, 3, or 4 teams, only if map has no dom_team ents\r
+CTF             | gametype ctf [timelimit=...] [caplimit=...] [leadlimit=...]                                              |\r
+LMS             | gametype lms [timelimit=...] [lives=...] [leadlimit=...]                                                 |\r
+Key Hunt        | gametype kh [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                 | 2, 3, or 4 teams\r
+Assault         | gametype as [timelimit=...]                                                                              | never uses points\r
+Onslaught       | gametype ons [timelimit=...]                                                                             | never uses points\r
+Race            | gametype rc [timelimit=...] [qualifying_timelimit=...] [laplimit=...] [teamlaplimit=...] [leadlimit=...] | g_race_teams: teamlaplimit is used instead of laplimit\r
+CTS             | gametype cts [timelimit=...] [skill=...]                                                                 | never uses points\r
+CA              | gametype ca [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                 | 2, 3, or 4 teams\r
+Nexball         | gametype nb [timelimit=...] [pointlimit=...] [leadlimit=...]                                             |\r
+Freeze Tag      | gametype ft [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                 | 2, 3, or 4 teams\r
+Keepaway        | gametype ka [timelimit=...] [pointlimit=...]                                                             |\r
 \r
 \r
 ===============\r
@@ -200,6 +185,7 @@ Here is an example entry in a .ent file that includes colored text and 3 teams:
 "model" "models/domination/dom_red.md3"\r
 }\r
 {\r
+"classname" "dom_team"\r
 "netname" "^3Yellow Team"\r
 "cnt" "12"\r
 "noise" ""\r
@@ -207,6 +193,7 @@ Here is an example entry in a .ent file that includes colored text and 3 teams:
 "model" "models/domination/dom_yellow.md3"\r
 }\r
 {\r
+"classname" "dom_team"\r
 "netname" "^6Pink Team"\r
 "cnt" "9"\r
 "noise" ""\r
@@ -259,7 +246,7 @@ instead of just one, making it more valuable.
 If your map contains the required entities for Domination, the menu will\r
 automatically detect it for supporting Domination. To force the map to get\r
 re-detected after you add such entities, delete the data/data/mapname.mapinfo\r
-file - or simply edit it to add the "type dom" line.\r
+file - or simply edit it to add the "gametype dom" line.\r
 \r
 \r
 =========\r
@@ -290,29 +277,11 @@ If you don't make team spawnpoints, info_player_deathmatch is used instead.
 If your map contains the required entities for CTF, the menu will automatically\r
 detect it for supporting CTF. To force the map to get re-detected after you add\r
 such entities, delete the data/data/mapname.mapinfo file - or simply edit it to\r
-add the "type ctf" line.\r
-\r
-==============\r
-=V. Runematch=\r
-==============\r
-\r
-Runematch needs only one type of entity to work: rune spawn points. You will\r
-need at least one for each rune (5 minimum at the time of this writing), though\r
-you should probably have more than that in the map. Just give the points a\r
-classname and origin.\r
-\r
-Rune Spawnpoints\r
-----------------\r
-classname  runematch_spawn_point\r
-\r
-If your map contains the required entities for Runematch, the menu will automatically\r
-detect it for supporting Runematch. To force the map to get re-detected after you add\r
-such entities, delete the data/data/mapname.mapinfo file - or simply edit it to\r
-add the "type rune" line.\r
+add the "gametype ctf" line.\r
 \r
-==============\r
-=VI. Race/CTS=\r
-==============\r
+=============\r
+=V. Race/CTS=\r
+=============\r
 \r
 Making a race map is not hard: you need some special spawnpoints, and some checkpoints.\r
 \r
@@ -361,7 +330,7 @@ $$$:  classname = trigger_race_checkpoint, cnt = 1, targetname = cp1
 If your map contains the required entities for Race, the menu will automatically\r
 detect it for supporting Race. To force the map to get re-detected after you add\r
 such entities, delete the data/data/mapname.mapinfo file - or simply edit it to\r
-add the "type rc" line.\r
+add the "gametype rc" line.\r
 \r
 CTS maps do not use checkpoints with race_place set, so you can leave them out\r
 for CTS maps.\r
@@ -409,9 +378,9 @@ mapinfo file.
 \r
 To do this, I can add the following lines to my mapinfo file:\r
 \r
-    settemp_for_type ctf g_balance_laser_primary_force 200\r
-    settemp_for_type all g_start_weapon_shotgun 0\r
-    settemp_for_type all g_start_weapon_uzi 1\r
+    settemp_for_type ctf g_balance_blaster_primary_force 200\r
+    settemp_for_type all g_balance_shotgun_weaponstart 0\r
+    settemp_for_type all g_balance_machinegun_weaponstart 1\r
     settemp_for_type all sv_cullentities_trace 0\r
 \r
 These "settemp" settings are automatically removed when the map is left and\r