Level data is stored as a byte array, zlib-compressed, and encoded in base64.
| Offset
|
Variable
|
Description
|
| 0x000
|
version
|
No functionality. Always set to 1 in vanilla levels.
|
| 0x001
|
dartCount
|
The number of starting darts.
|
| 0x002
|
targetCount
|
The target pop count.
|
| 0x003
|
backgroundIndex
|
In Bloons 2 Level Builder, this determines the background to use. Goes unused in all other versions, which hardcode the backgrounds used instead.
|
| 0x004+
|
entities
|
A list of entities in the level. Each value is an entity ID that is moduloed by 50 and subtracted by 1 to get the actual ID, and the ordering determines where the objects are placed in the level.
|
| ID
|
Entity
|
| 0
|
(Empty tile)
|
| 1
|
Monkey
|
| 2
|
BasicBloon
|
| 3
|
BloomingBloon
|
| 4
|
IceBloon
|
| 5
|
BirdBloon
|
| 6
|
TackBloon
|
| 7
|
BombBloon
|
| 8
|
BallBloon
|
| 9
|
GravityBloon
|
| 10
|
CamoBloon
|
| 11
|
MonkeyAceBloon
|
| 12
|
TwoSkinnedBloon
|
| 13
|
ThreeSkinnedBloon
|
| 14
|
BonusDartBloon
|
| 15
|
TripleDartBloon
|
| 16
|
BoomerangBloon
|
| 17
|
SolidBlock
|
| 18
|
AngledBlockNE
|
| 19
|
AngledBlockSE
|
| 20
|
AngledBlockSW
|
| 21
|
AngledBlockNW
|
| 22
|
DestructableBlock
|
| 23
|
AngledDestructableBlockNE
|
| 24
|
AngledDestructableBlockSE
|
| 25
|
AngledDestructableBlockSW
|
| 26
|
AngledDestructableBlockNW
|
| 27
|
ReinforcedDestructableBlock
|
| 28
|
AngledReinforcedDestructableBlockNE
|
| 29
|
AngledReinforcedDestructableBlockSE
|
| 30
|
AngledReinforcedDestructableBlockSW
|
| 31
|
AngledReinforcedDestructableBlockNW
|
| 32
|
RubberBlock
|
| 33
|
AngledRubberBlockNE
|
| 34
|
AngledRubberBlockSE
|
| 35
|
AngledRubberBlockSW
|
| 36
|
AngledRubberBlockNW
|
| 37
|
PerishedRubberBlock
|
| 38
|
AngledPerishedRubberBlockNE
|
| 39
|
AngledPerishedRubberBlockSE
|
| 40
|
AngledPerishedRubberBlockSW
|
| 41
|
AngledPerishedRubberBlockNW
|
| 42
|
UpFan
|
| 43
|
DownFan
|
| 44
|
LeftFan
|
| 45
|
RightFan
|