Skip to main content

Airship Battle (DTC)

Airship Battle is the first ever map made for PGM. It features two wooden airships with building materials, tools, and weapons inside chests. The objective of the map is to leak the lava contained inside an obsidian sphere by destroying it. Whoever leaks the other team's core first wins the game.

Source: Airship Battle by Dewtroid. Players build across to the other ship, either at ground level or bridging ontop of the propellers.

The large spawn area where observers spawn at, players spawn inside the safe bedrock tunnels and run into the ship.

This is the obsidian core that you must leak the lava out of! Make the lava leak by destroying the obsidian blocks containing it and other obstacles that might get in the way.

➡️ Every map XML file starts with the XML header and then the base <map> module.

<map proto="1.4.2">
<!-- Specifies what the map is called -->
<name>Airship Battle</name>
<!-- Shows the map creation date when a user runs /map in game -->
<!-- States what version the map is -->
<!-- Tells the teams what the objective is in order to win the game -->
<objective>Leak lava from the enemy's obsidian core into the void.</objective>
<!-- States who made the map -->
<author uuid="30e27366-0b14-4076-8f55-0819ece49ce3"/> <!-- Dewtroid -->
<!-- Shows any map rules or details that are not in normal server rules which appears when running /map -->
<rule>Dispensers and chests are disabled</rule>
<rule>Players have resistance and reduced knockback in spawn!</rule>

➡️ Define the teams' colors, names, and how many people can be on each team.

<team id="blue-team" color="blue" max="24">Blue</team>
<team id="red-team" color="dark red" max="24">Red</team>

➡️ Define the kit that players will receive.

<kit id="spawn-protection">
<potion amplifier="10" duration="oo">damage resistance</potion>
<kit id="spawn">
<item slot="0" material="diamond sword"/>
<item slot="1" material="bow"/>
<item slot="28" amount="64" material="arrow"/>
<item slot="2" material="diamond pickaxe"/>
<item slot="3" material="diamond axe"/>
<item slot="4" damage="1" amount="64" material="wood"/> <!-- To get spruce planks, damage must be "1" -->
<item slot="5" amount="64" material="ladder"/>
<item slot="6" material="water bucket"/>
<item slot="8" amount="64" material="cooked fish"/>
<helmet enchantment="protection explosions:2" material="gold helmet"/>
<chestplate enchantment="protection explosions:4" material="chainmail chestplate"/>
<!-- Leggings and boots will be automatically colored based on the player's team -->
<leggings team-color="true" material="leather leggings"/>
<boots team-color="true" material="leather boots"/>

➡️ Specify where the previously defined teams will spawn, the kit they will spawn with, and what direction they face.

<spawn team="blue-team" kit="spawn" yaw="270">
<cuboid min="4.5,91,-34" max="7.5,91,-31"/>
<spawn team="red-team" kit="spawn" yaw="90">
<cuboid min="-30.5,91,-34" max="-27.5,91,-31"/>
<default yaw="180">
<cylinder base="-11.5,90,-33" radius="3" height="0"/>

➡️ Define the filters on the map and determine which events are allowed.

<!-- Query if a player is a member of either team using the previously defined team ID -->
<team id="only-blue">blue-team</team>
<team id="only-red">red-team</team>
<!-- Always deny dispenser placement, destruction, or interaction -->
<deny id="deny-dispenser">
<!-- Always deny obsidian placement or destruction -->
<deny id="deny-obsidian">

➡️ These regions reference the filters defined above and states where they will work, as well as lending a kit to players inside their respective team's spawn.

<cuboid id="red-spawn-protect" min="-42,87,3" max="-35,90,-36"/>
<cuboid id="blue-spawn-protect" min="12,87,3" max="19,90,-36"/>
<!-- applicators -->
<apply region="blue-spawn-protect" lend-kit="spawn-protection" filter="only-blue"/>
<apply region="red-spawn-protect" lend-kit="spawn-protection" filter="only-red"/>
<apply leave="never" message="Don't exit the playing field!">
<rectangle min="-102,-4" max="102,125"/> <!-- Main area -->
<rectangle min="-36,-16" max="13,-2"/> <!-- Area between spawn tunnels -->
<apply block="never" message="Don't edit blocks outside the playing field!">
<union id="map">
<rectangle min="-100,-2" max="100,123"/> <!-- Main area -->
<rectangle min="-36,-14" max="13,-2"/> <!-- Area between spawn tunnels -->
<!-- Do not let players place or destroy dispenser blocks anywhere on the map -->
<apply block="deny-dispenser" message="Dispensers are disabled on this map!"/>
<!-- Only the obsidian that makes up the core can be broken -->
<apply block-break="deny-obsidian" message="You may not break obsidian outside the core area!">
<region id="map"/>
<cuboid min="13,85,23" max="18,92,30"/>
<cuboid min="-41,85,23" max="-36,92,30"/>

➡️ This specifies what material the core is made of, who each core belongs to, and how far the lava needs to leak.

<cores material="obsidian" leak="10">
<core team="blue-team">
<cuboid min="13,85,23" max="18,92,30"/>
<core team="red-team">
<cuboid min="-41,85,23" max="-36,92,30"/>

➡️ We do not want an excessive amount of items dropped on the map, so this allows us to manage how to deal with dropped items more easily.

<!-- These items will drop, players that already have these items can pick it up and will be merged -->
<tool>diamond sword</tool>
<tool>diamond pickaxe</tool>
<tool>diamond axe</tool>
<!-- All of these items will be automatically removed when dropped -->
<item>gold helmet</item>
<item>chainmail chestplate</item>
<item>leather leggings</item>
<item>leather boots</item>
<item>cooked fish</item>
<item>gold block</item>
<item>water bucket</item>
<item>golden apple</item>

➡️ Reward players by giving various items for killing an enemy.

<item amount="16" material="arrow"/>
<item damage="1" amount="32" material="wood"/>
<item material="golden apple"/>

➡️ Stop players from being able to craft specific blocks or items.



This specifies how high players can build, however, it does not stop them from walking or breaking blocks above this limit.


➡️ Close the main <map> module.