Skip to content

Instantly share code, notes, and snippets.

@calcastor
Created March 27, 2022 19:06
Show Gist options
  • Select an option

  • Save calcastor/a45abf8357db639b0410257dc78785ea to your computer and use it in GitHub Desktop.

Select an option

Save calcastor/a45abf8357db639b0410257dc78785ea to your computer and use it in GitHub Desktop.
XML templates for 5v5 ranked maps
<map proto="1.4.2">
<name>5v5 2 Post KotF Example</name>
<version>1.0</version>
<objective>Control the flag for 200 seconds to win!</objective>
<gamemode>kotf</gamemode>
<authors> <!-- replace with your UUID (can find on NameMC) and replace the comment with your username -->
<author uuid="74948888-fdb8-4446-9340-f7688c2435cc"/> <!-- Zero_Frosty -->
</authors>
<contributors>
<contributor uuid="430ec559-364a-4363-ac7a-2529050440ac" contribution="XML template"/> <!-- mameBT -->
</contributors>
<teams>
<team id="blue" color="blue" max="5" max-overfill="5">Blue</team>
<team id="red" color="dark red" max="5" max-overfill="5">Red</team>
</teams>
<kits>
<kit id="spawn-kit">
<clear/>
<item slot="0" unbreakable="true" material="stone sword"/>
<item slot="1" unbreakable="true" material="bow"/>
<item slot="2" material="golden apple"/>
<item slot="8" amount="12" material="arrow"/>
<helmet unbreakable="true" team-color="true" material="leather helmet"/>
<chestplate unbreakable="true" team-color="true" material="leather chestplate"/>
<leggings unbreakable="true" material="chainmail leggings">
<enchantment level="3">projectile_protection</enchantment>
</leggings>
<boots unbreakable="true" material="iron boots"/>
<effect duration="6" amplifier="255">resistance</effect> <!-- You may need to reduce resistance duration depending on the map -->
</kit>
<kit id="flag-kit" force="true">
<effect amplifier="-3">health boost</effect>
<effect duration="3" amplifier="2">absorption</effect>
</kit>
<kit id="reset-health" force="true">
<effect duration="0" amplifier="0">health boost</effect>
<effect duration="1" amplifier="10">regeneration</effect>
</kit>
</kits>
<spawns> <!-- You may want to change the yaw values to face a specific direction on spawn -->
<default>
<region yaw="-45">
<block>x,y,z</block>
</region>
</default>
<spawn team="blue" kit="spawn-kit" filter="has-flag">
<region yaw="-135">
<block>x,y,z</block>
</region>
</spawn>
<spawn team="red" kit="spawn-kit" filter="has-flag">
<region yaw="45">
<block>x,y,z</block>
</region>
</spawn>
</spawns>
<filters>
<any id="has-flag">
<carrying-flag id="flag-carrier">flag</carrying-flag>
<not>
<same-team>
<filter id="flag-carrier"/>
</same-team>
</not>
</any>
</filters>
<regions>
<apply block="never" use="never"/>
</regions>
<flags>
<flag id="flag"
name="Flag"
color="purple"
shared="true"
post="post-a"
points-rate="1"
pickup-kit="flag-kit"
drop-kit="reset-health"
flag-proximity-metric="none"
show-respawn-on-pickup="true"
sequential="false">
<post id="post-a" name="Post A" return-time="0s" respawn-time="20s">x,y,z</post>
<post id="post-b" name="Post B" return-time="0s" respawn-time="20s">x,y,z</post>
</flag>
</flags>
<score>
<limit>200</limit>
</score>
<toolrepair>
<tool>stone sword</tool>
<tool>bow</tool>
</toolrepair>
<itemremove>
<item>leather helmet</item>
<item>leather chestplate</item>
<item>chainmail leggings</item>
<item>iron boots</item>
<item>banner</item>
</itemremove>
<itemkeep>
<item>golden apple</item>
<item>arrow</item>
</itemkeep>
<kill-reward>
<item material="golden apple"/>
<item amount="5" material="arrow"/>
</kill-reward>
<respawn delay="6s" auto="true" spectate="true"> <!-- You may want to edit the respawn delay depending on your map -->
<message>
{"translate":"death.respawn.confirmed.waiting.flagDropped"}
</message>
</respawn>
<hunger>
<depletion>off</depletion>
</hunger>
</map>
<map proto="1.4.2">
<name>5v5 3 Post KotF Example</name>
<version>1.0</version>
<objective>Control the flag for 200 seconds to win!</objective>
<gamemode>kotf</gamemode>
<authors> <!-- replace with your UUID (can find on NameMC) and replace the comment with your username -->
<author uuid="621b2aa8-4e5f-4ed8-bd36-0ae2f8952a06"/> <!-- Strangey -->
</authors>
<contributors>
<contributor uuid="430ec559-364a-4363-ac7a-2529050440ac" contribution="XML template"/> <!-- mameBT -->
</contributors>
<teams>
<team id="blue" color="blue" max="5" max-overfill="5">Blue</team>
<team id="red" color="dark red" max="5" max-overfill="5">Red</team>
</teams>
<kits>
<kit id="spawn-kit">
<clear/>
<item slot="0" unbreakable="true" material="stone sword"/>
<item slot="1" unbreakable="true" material="bow"/>
<item slot="2" material="golden apple"/>
<item slot="8" amount="12" material="arrow"/>
<helmet unbreakable="true" team-color="true" material="leather helmet"/>
<chestplate unbreakable="true" team-color="true" material="leather chestplate"/>
<leggings unbreakable="true" material="chainmail leggings">
<enchantment level="3">projectile_protection</enchantment>
</leggings>
<boots unbreakable="true" material="iron boots"/>
<effect duration="6" amplifier="255">resistance</effect> <!-- You may need to reduce resistance duration depending on the map -->
</kit>
<kit id="flag-kit" force="true">
<effect amplifier="-3">health boost</effect>
<effect duration="3" amplifier="2">absorption</effect>
</kit>
<kit id="reset-health" force="true">
<effect duration="0" amplifier="0">health boost</effect>
<effect duration="1" amplifier="10">regeneration</effect>
</kit>
</kits>
<spawns> <!-- You may want to change the yaw values to face a specific direction on spawn -->
<default>
<region yaw="-45">
<block>x,y,z</block>
</region>
</default>
<spawn team="blue" kit="spawn-kit" filter="has-flag">
<region yaw="-135">
<block>x,y,z</block>
</region>
</spawn>
<spawn team="red" kit="spawn-kit" filter="has-flag">
<region yaw="45">
<block>x,y,z</block>
</region>
</spawn>
</spawns>
<filters>
<any id="has-flag">
<carrying-flag>flag</carrying-flag>
<not>
<same-team>
<carrying-flag>flag</carrying-flag>
</same-team>
</not>
</any>
</filters>
<regions>
<apply block="never" use="never"/>
</regions>
<flags>
<flag id="flag"
name="Flag"
color="purple"
shared="true"
post="mid-post"
points-rate="1"
pickup-kit="flag-kit"
drop-kit="reset-health"
flag-proximity-metric="none"
show-respawn-on-pickup="true"
sequential="false">
<post id="mid-post" name="Mid Post" return-time="0s" respawn-time="20s">x,y,z</post>
<post id="post-a" name="Post A" return-time="0s" respawn-time="20s">x,y,z</post>
<post id="post-b" name="Post B" return-time="0s" respawn-time="20s">x,y,z</post>
</flag>
</flags>
<score>
<limit>200</limit>
</score>
<toolrepair>
<tool>stone sword</tool>
<tool>bow</tool>
</toolrepair>
<itemremove>
<item>leather helmet</item>
<item>leather chestplate</item>
<item>chainmail leggings</item>
<item>iron boots</item>
<item>banner</item>
</itemremove>
<itemkeep>
<item>golden apple</item>
<item>arrow</item>
</itemkeep>
<kill-reward>
<item material="golden apple"/>
<item amount="5" material="arrow"/>
</kill-reward>
<respawn delay="6s" auto="true" spectate="true"> <!-- You may want to edit the respawn delay depending on your map -->
<message>
{"translate":"death.respawn.confirmed.waiting.flagDropped"}
</message>
</respawn>
<hunger>
<depletion>off</depletion>
</hunger>
</map>
<map proto="1.4.2">
<name>5v5 5CP Example</name>
<version>1.0</version>
<objective>Capture all five control points.</objective>
<authors> <!-- replace with your UUID (can find on NameMC) and replace the comment with your username -->
<author uuid="0c44ca5a-6a42-49b7-81f2-58dc6d2ae3e9"/> <!-- Xerocoles -->
</authors>
<contributors>
<contributor uuid="430ec559-364a-4363-ac7a-2529050440ac" contribution="XML template"/> <!-- mameBT -->
</contributors>
<teams>
<team id="blue" color="blue" max="5" max-overfill="5">Blue</team>
<team id="red" color="dark red" max="5" max-overfill="5">Red</team>
</teams>
<kits>
<kit id="spawn-kit">
<clear/>
<item slot="0" unbreakable="true" material="stone sword"/>
<item slot="1" unbreakable="true" material="bow"/>
<item slot="2" material="golden apple"/>
<item slot="8" amount="12" material="arrow"/>
<helmet unbreakable="true" team-color="true" material="leather helmet"/>
<chestplate unbreakable="true" team-color="true" material="leather chestplate"/>
<leggings unbreakable="true" material="chainmail leggings">
<enchantment level="3">projectile_protection</enchantment>
</leggings>
<boots unbreakable="true" material="iron boots"/>
<game-mode>adventure</game-mode>
</kit>
</kits>
<spawns> <!-- You may want to change the yaw values to face a specific direction on spawn -->
<default>
<region yaw="0">
<block>x,y,z</block>
</region>
</default>
<spawn team="blue" kit="blue-kit">
<region yaw="0">
<block>x,y,z</block>
</region>
</spawn>
<spawn team="red" kit="red-kit">
<region yaw="180">
<block>x,y,z</block>
</region>
</spawn>
</spawns>
<filters>
<!-- Capture rules for visual control points, which must be captured sequentially -->
<any id="filter-blue-last">
<team id="only-blue">blue</team>
<objective id="capped-blue-2nd">blue-2nd</objective>
</any>
<any id="filter-blue-2nd">
<objective id="capped-mid">mid</objective>
<objective id="capped-blue-last">blue-last</objective>
</any>
<any id="filter-red-2nd">
<filter id="capped-mid"/>
<objective id="capped-red-last">red-last</objective>
</any>
<any id="filter-red-last">
<team id="only-red">red</team>
<objective id="capped-red-2nd">red-2nd</objective>
</any>
<!-- To capture mid, a team must control their second point -->
<any id="filter-mid">
<filter id="capped-blue-2nd"/>
<filter id="capped-red-2nd"/>
</any>
<!-- Filters for the point-giving control points -->
<!--
A team can capture a point-giving control point when they capture the enemy's associated
visual point. However, if the enemy uncaptures the point, they will return the point-giving
point to a neutral state and points will no longer be scored from it by the team who lost
control.
-->
<any id="filter-last-point-blue">
<filter id="capped-red-last"/>
<all>
<filter id="only-red"/>
<not>
<any>
<objective team="blue">red-last</objective>
<objective team="red">red-last</objective>
</any>
</not>
</all>
</any>
<any id="filter-2nd-point-blue">
<filter id="capped-red-2nd"/>
<all>
<filter id="only-red"/>
<not>
<any>
<objective team="blue">red-2nd</objective>
<objective team="red">red-2nd</objective>
</any>
</not>
</all>
</any>
<any id="filter-2nd-point-red">
<filter id="capped-blue-2nd"/>
<all>
<filter id="only-blue"/>
<not>
<any>
<objective team="blue">blue-2nd</objective>
<objective team="red">blue-2nd</objective>
</any>
</not>
</all>
</any>
<any id="filter-last-point-red">
<filter id="capped-blue-last"/>
<all>
<filter id="only-blue"/>
<not>
<any>
<objective team="blue">blue-last</objective>
<objective team="red">blue-last</objective>
</any>
</not>
</all>
</any>
</filters>
<!-- The only change you will need to make for a 5CP is changing the coordinates of the capture points below. -->
<regions>
<cuboid id="cp-blue-last" min="x,y,z" max="x,y,z"/>
<cuboid id="cp-blue-2nd" min="x,y,z" max="x,y,z"/>
<cuboid id="cp-mid" min="x,y,z" max="x,y,z"/>
<cuboid id="cp-red-2nd" min="x,y,z" max="x,y,z"/>
<cuboid id="cp-red-last" min="x,y,z" max="x,y,z"/>
<apply block="never" use="never"/>
</regions>
<control-points neutral-state="true" show-progress="true">
<!-- Blue visual control points -->
<control-point initial-owner="blue" id="blue-last" required="false" name="Blue Last" capture-time="8s" points="0" incremental="true" capture="cp-blue-last" progress="cp-blue-last" player-filter="filter-blue-last"/>
<control-point initial-owner="blue" id="blue-2nd" required="false" name="Blue 2nd" capture-time="6s" points="0" incremental="true" capture="cp-blue-2nd" progress="cp-blue-2nd" player-filter="filter-blue-2nd"/>
<!-- Mid -->
<control-point id="mid" required="false" name="Mid" capture-time="6s" points="2" incremental="true" capture="cp-mid" progress="cp-mid" player-filter="filter-mid"/>
<!-- Red visual control points -->
<control-point initial-owner="red" id="red-2nd" required="false" name="Red 2nd" capture-time="6s" points="0" incremental="true" capture="cp-red-2nd" progress="cp-red-2nd" player-filter="filter-red-2nd"/>
<control-point initial-owner="red" id="red-last" required="false" name="Red Last" capture-time="8s" points="0" incremental="true" capture="cp-red-last" progress="cp-red-last" player-filter="filter-red-last"/>
<!-- Point-giving control points -->
<control-point id="red-last-point" required="false" show="false" points="1" name="RL Point" capture-time="0s" capture="everywhere" player-filter="filter-last-point-blue" capture-filter="only-blue"/>
<control-point id="red-2nd-point" required="false" show="false" points="1" name="R2 Point" capture-time="0s" capture="everywhere" player-filter="filter-2nd-point-blue" capture-filter="only-blue"/>
<control-point id="blue-2nd-point" required="false" show="false" points="1" name="B2 Point" capture-time="0s" capture="everywhere" player-filter="filter-2nd-point-red" capture-filter="only-red"/>
<control-point id="blue-last-point" required="false" show="false" points="1" name="BL Point" capture-time="0s" capture="everywhere" player-filter="filter-last-point-red" capture-filter="only-red"/>
</control-points>
<score>
<limit>800</limit>
</score>
<toolrepair>
<tool>stone sword</tool>
<tool>bow</tool>
</toolrepair>
<itemremove>
<item>leather helmet</item>
<item>leather chestplate</item>
<item>chainmail leggings</item>
<item>iron boots</item>
</itemremove>
<itemkeep>
<item>golden apple</item>
<item>arrow</item>
</itemkeep>
<kill-reward>
<item material="golden apple"/>
<item amount="5" material="arrow"/>
</kill-reward>
<hunger>
<depletion>off</depletion>
</hunger>
<respawn delay="7s" auto="true" blackout="true"/> <!-- May need to change respawn delay depending on your map, 5v5 5CP is typically 7s -->
</map>
<map proto="1.4.2">
<name>5v5 CTF Example</name>
<version>1.0</version>
<objective>Capture the enemy flag as many times as possible before time runs out!</objective>
<time result="score" overtime="2m" max-overtime="6m">12m</time>
<authors> <!-- replace with your UUID (can find on NameMC) and replace the comment with your username -->
<author uuid="0c44ca5a-6a42-49b7-81f2-58dc6d2ae3e9"/> <!-- Xerocoles -->
</authors>
<contributors>
<contributor uuid="430ec559-364a-4363-ac7a-2529050440ac" contribution="XML template"/> <!-- mameBT -->
</contributors>
<teams>
<team id="blue" color="blue" max="5" max-overfill="5">Blue</team>
<team id="red" color="dark red" max="5" max-overfill="5">Red</team>
</teams>
<kits>
<kit id="spawn-kit">
<clear/>
<item slot="0" unbreakable="true" material="stone sword"/>
<item slot="1" unbreakable="true" material="bow"/>
<item slot="2" material="golden apple"/>
<item slot="8" amount="12" material="arrow"/>
<helmet unbreakable="true" team-color="true" material="leather helmet"/>
<chestplate unbreakable="true" team-color="true" material="leather chestplate"/>
<leggings unbreakable="true" material="chainmail leggings">
<enchantment level="3">projectile_protection</enchantment>
</leggings>
<boots unbreakable="true" material="iron boots"/>
<effect duration="6" amplifier="255">resistance</effect> <!-- You may need to reduce resistance duration depending on the map -->
<game-mode>adventure</game-mode>
</kit>
<kit id="flag-pickup" force="true">
<effect>slowness</effect>
</kit>
<kit id="flag-reset" force="true">
<effect duration="0" amplifier="0">slowness</effect>
</kit>
</kits>
<spawns> <!-- You may want to change the yaw values to face a specific direction on spawn -->
<default>
<region yaw="180">
<block>x,y,z</block>
</region>
</default>
<spawn team="blue" kit="spawn-kit">
<region yaw="90">
<block>x,y,z</block>
</region>
</spawn>
<spawn team="red" kit="spawn-kit">
<region yaw="-90">
<block>x,y,z</block>
</region>
</spawn>
</spawns>
<filters>
<team id="only-blue">blue</team>
<team id="only-red">red</team>
<time id="flag-respawns">0</time>
</filters>
<regions> <!-- Usually a team captures the enemy flag at its own flag. Example: Blue team's flag post is at 10,10,10, and Blue team's net will also be at 10,10,10. -->
<cylinder id="blue-net" base="x,y,z" radius="1.5" height="3"/>
<cylinder id="red-net" base="x,y,z" radius="1.5" height="3"/>
<apply block="never" use="never"/>
</regions>
<flags flag-proximity-metric="none" net-proximity-metric="none" required="false">
<flag id="blue-flag"
name="Blue Flag"
owner="blue"
color="blue"
pickup-kit="flag-pickup"
drop-kit="flag-reset">
<post pickup-filter="only-red" recover-time="12s" respawn-time="10s">x,y,z</post>
</flag>
<flag id="red-flag"
name="Red Flag"
owner="red"
color="red"
pickup-kit="flag-pickup"
drop-kit="flag-reset">
<post pickup-filter="only-blue" recover-time="12s" respawn-time="10s">x,y,z</post>
</flag>
<flags points="1">
<net region="blue-net" flag="red-flag" respawn-filter="flag-respawns"/>
<net region="red-net" flag="blue-flag" respawn-filter="flag-respawns"/>
</flags>
</flags>
<score/>
<toolrepair>
<tool>stone sword</tool>
<tool>bow</tool>
</toolrepair>
<itemremove>
<item>leather helmet</item>
<item>leather chestplate</item>
<item>chainmail leggings</item>
<item>iron boots</item>
<item>banner</item>
</itemremove>
<itemkeep>
<item>golden apple</item>
<item>arrow</item>
</itemkeep>
<kill-reward>
<item material="golden apple"/>
<item amount="5" material="arrow"/>
</kill-reward>
<respawn delay="4.5s" auto="true" blackout="true"/> <!-- You may want to edit the respawn delay depending on your map -->
<hunger>
<depletion>off</depletion>
</hunger>
</map>
<map proto="1.4.2">
<name>5v5 KotH Example</name>
<version>1.0</version>
<objective>Be the first team to reach 750 points!</objective>
<authors> <!-- replace with your UUID (can find on NameMC) and replace the comment with your username -->
<author uuid="b8add1ba-8e13-4673-bc73-4e3ed524d40e"/> <!-- Blazy -->
</authors>
<contributors>
<contributor uuid="430ec559-364a-4363-ac7a-2529050440ac" contribution="XML template"/> <!-- mameBT -->
</contributors>
<teams>
<team id="blue" color="blue" max="5" max-overfill="5">Blue</team>
<team id="red" color="dark red" max="5" max-overfill="5">Red</team>
</teams>
<kits>
<kit id="spawn-kit">
<clear/>
<item slot="0" unbreakable="true" material="stone sword"/>
<item slot="1" unbreakable="true" material="bow"/>
<item slot="2" material="golden apple"/>
<item slot="8" amount="12" material="arrow"/>
<helmet unbreakable="true" team-color="true" material="leather helmet"/>
<chestplate unbreakable="true" team-color="true" material="leather chestplate"/>
<leggings unbreakable="true" material="chainmail leggings">
<enchantment level="3">projectile_protection</enchantment>
</leggings>
<boots unbreakable="true" material="iron boots"/>
<effect duration="4" amplifier="255">resistance</effect> <!-- You may need to reduce resistance duration depending on the map -->
<game-mode>adventure</game-mode>
</kit>
</kits>
<spawns> <!-- You may want to change the yaw values to face a specific direction on spawn -->
<default>
<region yaw="135">
<block>x,y,z</block>
</region>
</default>
<spawn team="blue" kit="spawn-kit">
<region yaw="-90">
<block>x,y,z</block>
</region>
</spawn>
<spawn team="red" kit="spawn-kit">
<region yaw="0">
<block>x,y,z</block>
</region>
</spawn>
</spawns>
<!-- Change the regions below for each hill. You can also change the name of the hills. -->
<regions>
<apply block="never" use="never"/>
<cuboid id="hill-a-capture" min="x,y,z" max="x,y,z"/>
<cuboid id="hill-b-capture" min="x,y,z" max="x,y,z"/>
<cuboid id="hill-c-capture" min="x,y,z" max="x,y,z"/>
</regions>
<king>
<hills required="false" capture-time="5s" points="1" time-multiplier="0" show-progress="true" neutral-state="true" incremental="true" permanent="false">
<hill name="Hill A" capture="hill-a-capture" progress="hill-a-capture"/>
<hill name="Hill B" capture="hill-b-capture" progress="hill-b-capture"/>
<hill name="Hill C" capture="hill-c-capture" progress="hill-c-capture"/>
</hills>
</king>
<score>
<limit>750</limit>
</score>
<toolrepair>
<tool>stone sword</tool>
<tool>bow</tool>
</toolrepair>
<itemremove>
<item>leather helmet</item>
<item>leather chestplate</item>
<item>chainmail leggings</item>
<item>iron boots</item>
</itemremove>
<itemkeep>
<item>golden apple</item>
<item>arrow</item>
</itemkeep>
<kill-reward>
<item material="golden apple"/>
<item amount="5" material="arrow"/>
</kill-reward>
<hunger>
<depletion>off</depletion>
</hunger>
<respawn delay="3s" auto="true" blackout="true"/> <!-- You may want to edit the respawn delay depending on your map -->
</map>
<spawners>
<!-- Golden apple spawner. -->
<spawners>
<!-- Max entities refers to any dropped item in the spawn region. You may want to set a limit on this for some maps. Others, you may not. -->
<!-- When a player first gets to a spawner, the item will spawn and then will spawn every 8 seconds after. You can change the delay to change the time. -->
<spawner delay="8s" max-entities="9999">
<spawn-region>
<!-- This is the location you want the golden apples to spawn -->
<block>x,y,z</block>
</spawn-region>
<player-region>
<!-- Players in this location trigger the spawner to actually spawn the golden apples -->
<!-- You typically want the centre of this to be the point where the golden apples spawn -->
<cylinder base="x,y,z" height="4" radius="4"/>
</player-region>
<item material="golden apple"/>
</spawner>
</spawners>
<!-- Arrow spawner. -->
<spawners>
<!-- No max entities means that there is no limit to the amount of items that can be dropped or spawned at the spawner. -->
<!-- When a player first gets to a spawner, the item will spawn and then will spawn every 2 seconds after. You can change the delay to change the time. -->
<spawner delay="2s">
<spawn-region>
<!-- This is the location you want the arrows to spawn -->
<block>x,y,z</block>
</spawn-region>
<player-region>
<!-- Players in this location trigger the spawner to actually spawn the arrows -->
<!-- You typically want the centre of this to be the point where the arrows spawn -->
<cylinder base="x,y,z" height="4" radius="4"/>
</player-region>
<item material="arrow"/>
</spawner>
</spawners>
</spawners>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment