Main Map Element
Every map XML file must contain the base <map>
module.
It contains modules that specify the map name, version, objective, authors, contributors, and all other map settings.
The objective is the text that players see when they join the match, and so this needs to be very clear, concise, and informative.
The proto=""
attribute specifies what PGM version the XML file was created for.
Mapmakers should always use the latest supported proto version, which is documented in depth at Protocol Versions.
The map's version should follow the versioning schema major.minor.patch
.
Map Element | Description | Value/Children |
---|---|---|
<map> </map> | The main map node containing all the modules used in this match. | XML Modules |
Map Attributes
Map Attributes | Description | Value | Default |
---|---|---|---|
proto | RequiredThe map's XML protocol version. | Proto Version | |
min-server-version | The minimum server version this map can run on. | ||
max-server-version | The maximum server version this map can run on. | ||
internal | Prevent compass teleports above Y=255. | true/false | false |
Map Sub-elements
Element | Description | Value/Children | Default |
---|---|---|---|
<name> | RequiredThe name of the map. | String | |
<slug> | The map's internal identifier, usually auto generated from the map's name. This should only be used when a map is renamed to retain its information, etc. Valid slugs are lowercase and only contain the characters: a-z 0-9 _ | String | Auto Generated |
<version> | RequiredThe map's semantic version. | 1.0.0 | |
<objective> | RequiredThe map's objective, shown at the start of the match. | String | |
<authors> | RequiredThe authors of the map. At least one author is required. | <author> | |
<contributors> | Contributors to the map. | <contributor> | |
<created> | The date on which this map was initially released. | YYYY-MM-DD | |
<phase> | The stage of development the map is in. Note: By default, it will not appear in the list when a user runs /maps . In legacy PGM, only maps in production phase show up on a website configured with an API. | development staging production | production |
<edition> | The type of gameplay environment this map is intended for. Note: In legacy PGM, only standard edition maps show up on a website configured with an API. | standard ranked tournament | standard |
<game> | A custom title for this match's gamemode. Note: A map can have multiple gamemode titles. PGM will select the last as the map's primary title. | String | |
<gamemode> | The gamemode(s) of this map. If this is not specified the map will set the gamemode(s) to whatever modules are used. | Gamemode ID |
<map proto="1.5.0">
<name>Map Name</name>
<version>1.0.0</version>
<objective>Short description about the map's objective.</objective>
<!-- Map authors & contributors. -->
<!-- Map modules, i.e. objectives, regions, spawns. -->
</map>
Authors & Contributors
The authors and contributors elements provide information about who created and helped create the map. There can be multiple authors and contributors to a map. The contribution attribute should be used to specify what their contribution to the map was.
A player's name should not be used to credit them, instead their UUID should be used. A UUID is a universally unique identifier that is used to keep track of players even if they change their names. You can check player UUIDs at mcuuid.net. If an author or contributor is defined without a UUID, that player will not get any mapmaker perks on the map.
Author or Contributor Sub-elements
Element | Description | Value/Children |
---|---|---|
<author> | A major author of the map, used in <authors> . | String |
<contributor> | A contributor to the map, used in <contributors> . | String |
Author & Contributor Attributes
Attribute | Description | Value |
---|---|---|
uuid | The UUID used to identify a Minecraft player. | String |
contribution | A description of the contribution this author or contributor made to the map. | String |
<!-- Major map authors -->
<authors>
<author>aPerson</author> <!-- Credit a person that doesn't have a Minecraft account -->
<author uuid="ef4ea031-998f-4ec9-b7b6-1bdd428bcef8" contribution="Clarification of element usage, etc."/> <!-- Plastix -->
<author uuid="260004f0-996b-4539-ba21-df4ee6336b63"/> <!-- Elliott_ -->
</authors>
<!-- People that contributed in some way to the map -->
<contributors>
<!-- Credit a person that doesn't have a Minecraft account -->
<contributor contribution="A contribution">aHelper</contributor>
<contributor uuid="3fbec7dd-0a5f-40bf-9d11-885a54507112" contribution="Some help"/> <!-- Cubist -->
</contributors>
Map Gamemode
The gamemode element is used to specify the gamemode(s) of the map.
This mainly affects how the map is displayed.
If no <gamemode>
tags are specified, the map will set the gamemode(s) to whatever modules are used.
This means that a map that uses destroyables and flags would be displayed as "DTM and CTF" unless specified otherwise.
Element | Description | Value/Children |
---|---|---|
<gamemode> </gamemode> | The gamemode(s) of this map. | Gamemode ID |
Gamemode IDs
ID | Description |
---|---|
arcade | Arcade |
ad | Attack/Defend |
bedwars | Bed Wars |
blitz | Blitz |
br | Blitz: Rage |
bridge | Bridge |
ctf | Capture the Flag |
ctw | Capture the Wool |
cp | Control the Point |
tdm | Deathmatch |
dtc | Destroy the Core |
dtm | Destroy the Monument |
5cp | 5 Control Points |
ffb | Flag Football |
ffa | Free for All |
infection | Infection |
kotf | King of the Flag |
koth | King of the Hill |
mixed | Mixed |
payload | Payload |
rfw | Race for Wool |
rage | Rage |
scorebox | Scorebox |
skywars | Skywars |
sg | Survival Games |
Example
<!-- A FFA map with scoreboxes -->
<gamemode>ffa</gamemode>
<gamemode>scorebox</gamemode>