.map

The .map file is a file found in LevelDefinitions that outlines general properties of a track, such as entry markers, path order, and music. While non-essential, it is a key part in making a complete track.

## "Effects"

The **"Effects"** property determines special graphical properties of a map. It is used as follows:

```
"Effects" : [
	"Snowfall",
	"AnimatesBetweenRounds"
]

```

In this example, taken from Bloons TD5's North Pole, there is a snow overlay, and animated props only animate between rounds. This property has three values: **"Snowfall"**, **"Fireworks"**, and **"AnimatesBetweenRounds"**.

**"Snowfall"** works in both Bloons TD5 and Bloons TD Battles, and it is only used on outdoor winter tracks. It causes the "snowflake" prop, defined in the track's .xml file, to appear in various sizes on top of the track and fall slowly downward at a slight rightward angle.

**"Fireworks"** only works in Bloons TD5, and is seen on the Fireworks track. It causes fireworks to shoot up from the bottom of the screen and explode when you beat the track.

**"AnimatesBetweenRounds"** only works in Bloons TD5, and is seen on North Pole. It causes any animated props to remain static while a round is playing, only letting them animate when the game is between rounds.

When the **"Effects"** property is absent, none of the special effects are present.

## "entryMarkers" and "reverseEntryMarkers"

The **"entryMarkers"** and **"reverseEntryMarkers"** properties are exclusive to Bloons TD5 and are used to indicate where bloons spawn. They place arrows in certain spots that disappear after a few seconds or when starting the first round. Which markers are used is determined by whether or not you're in reverse mode. This property is used as follows:

```
"entryMarkers" : [
	[ [ 455, 0 ], 135 ],
	[ [ 154, 0 ], 60 ]
],
"reverseEntryMarkers" : [
	[ [ 0, 303 ], -15 ]
]

```

In this example, taken from Snake River, two entry markers are used normally, one close to the top right facing down and to the left, and one on top, a bit over a fourth of the way across the screen, facing down and to the right. In reverse mode, there is only one entry marker on the very left of the screen, close to the bottom, pointing right and slightly up.

There are three values per entry marker. The first one is the X coordinate. 0 is the far left of the screen and 480 is the far right. The second value is the Y coordinate, where 0 is the top of the screen and 320 is the bottom. The third value, outside the set of brackets that contains the coordinates, is the angle. 0 faces right, positive values rotate it clockwise, and negative values rotate it counterclockwise. This means that 90 faces down and -90 faces up.

Some tracks have extra unique entry markers. Country Road and The Eye have the **"FTentryMarkers"** and **"FTreverseEntryMarkers"** properties, used when playing on Fast Track. Crop Circles, Dock Side, Stream, Workshop, and Z Factor all have the **"ipadEntryMarkers"** property, used when playing on an iPad. The **"ipadReverseEntryMarkers"** property exists but is unused.

When **"entryMarkers"** and **"reverseEntryMarkers"** are absent, entry markers for normal and Reverse mode respectively are absent. When the iPad or Fast Track exclusive entry marker properties are absent, the default entry markers are used instead, if any exist.

## "HasWater"

The **"HasWater"** property is a property exclusive to Bloons TD Battles, and it determines whether or not Monkey Buccaneers and Monkey Subs can be used. It only appears in left .map files and does not function in right .map files. It is a true or false value, as seen here:

```
"HasWater" : true

```

When the **"HasWater"** property is absent, Monkey Buccaneers and Monkey Subs are locked, as if the value were set to **false**.

## "Modifiers"

The **"Modifiers"** property defines the order in which bloons spawn on paths. Said paths are defined in the .path file. The path index starts at 0, starting with the first entrance in the .path file. In Bloons TD Battles, this property only has one *"'***type"** value, **"pattern"**, while Bloons TD5 has a second value, **"random"**, introduced in update 3.9 with Bloonvasion. The most common use of a pattern is a static order of paths. This is done as follows:

```
"Modifiers" : [
	{
		"type" : "pattern",
		"pattern" : [
			[ 0, 1, 2, 3 ]
		]
	}
]

```

In this example, one bloon will spawn on path 0, the next will spawn on path 1, the next on path 2, and finally one on path 3. This pattern loops the entire time you play on a track. It's also possible to have bloons travel on a different group of paths every round. Here's an example of this, taken from Switch from Bloons TD5:

```
"Modifiers" : [
	{
		"type" : "pattern",
		"pattern" : [
			0,
			1,
			1,
			[ 0, 1 ],
			0
		]

	}
]

```

The bloons spawn on the second path or group of paths on round 1, and cycle through them in order, looping the pattern. This means on Switch, the bloons travel on path 1 for two rounds, then alternate between paths 0 and 1 for one round, then travel on path 0 for two rounds.

**"random"** only has one possible use, allowing the bloons to pick a random path to spawn on from a group of paths. This group is the same across all rounds. This modifier type is used as follows:

```
"Modifiers" : [
	{
		"type" : "random",
		"pattern" : [
		0, 1, 2, 3, 4, 5
		]
	}
]

```

In this example, taken from Bloonvasion, the bloons randomly pick one of six paths to spawn on.

When the **"Modifiers"** property is absent, all bloons spawn on path 0.

## "BloonSendPath"

The **"BloonSendPath"** property is a property exclusive to Battles, used to determine which path sent bloons spawn on. This property must be set in the left and right .map files individually. It is used as follows:

```
"BloonSendPath" : 1

```

In this example, sent bloons spawn on path 1. This property can only have a single numerical value, meaning there can only ever be 1 bloon send path.

When the **"BloonSendPath"** property is absent, sent bloons spawn on path 0.

## "Music"

The ​**"Music"** property defines what music track plays when playing the level. On Windows, this property refers to a music track in WaveBank.xwb, found in the Audio root folder. On other operating systems, however, it refers to a .mp3 file, found in the aforementioned folder. This property is formatted as follows:

```
"Music" : "main.mp3"

```

It *must* refer to a music track by its name followed by **.mp3**, otherwise the track will not play.

When the **"Music"** property is absent, "main" will play.

## "OnNewGame"

The **"OnNewGame"** property is an unused property found in Bloons TD5's Monkey Town which was later used in Bloons Monkey City. It spawns towers automatically when the track is loaded, identical to the **"Towers"** property in the .mode file, aside from the fact that setting upgrades to anything other than **[ 0, 0 ]** crashes the game upon loading the map. It has the additional feature of setting the rotation of spawned towers, however this feature is absent from BTD5. Here is the property as it appears in BTD5's monkey\_town.map:

```
"OnNewGame":
{

}

```

And here is a functional **"OnNewGame"** property as it appears in BMC's level\_StickySapDef.map:

```
"OnNewGame" : {
    "Towers" : [
        {
            "Type" : "StickySapPlant",
            "Position" : [ 192, 153 ],
            "Rotation" : 165,
            "Upgrades" : [ 0, 0 ]
        },
        {
            "Type" : "StickySapPlant",
            "Position" : [ 285, 163 ],
            "Upgrades" : [ 0, 0 ],
            "Rotation" : 15
        }

    ]
}

```