User:Polavux/Technical:Bloons TD 5 (multiplatform)/Weapons: Difference between revisions

From Blooncyclopedia, the independent Bloons knowledge base
Jump to navigation Jump to search
LowoTV (talk | contribs)
/* RandomFire /*
Pymonkibot (talk | contribs)
m Text replacement - "[[Category:BMC (mobile)" to "[[Category:BMC (multiplatform)"
 
(48 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{horizontal TOC}}
==Base weapon properties==
==Base weapon properties==
{|class="wikitable sortable"
{|class="wikitable sortable"
Line 7: Line 8:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>AllowFiringOnlyOnRoundStart</code>
|<tt>AllowFiringOnlyOnRoundStart</tt>
|If <code>true</code>, then each round, this weapon's <code>RemainingAmmo</code> is refilled to its <code>TotalAmmo</code> if this weapon is using the ammo system, and its <code>CooldownTime</code> is set to the current round's length, in seconds, divided by this weapon's <code>TotalAmmo</code>, ignoring the <code>CooldownTime</code> value defined within the weapon file. In Sandbox mode, or if this weapon isn't using the ammo system, <code>CooldownTime</code> is set to <code>0</code>.
|If <tt>true</tt>, then each round, this weapon's <tt>RemainingAmmo</tt> is refilled to its <tt>TotalAmmo</tt> if this weapon is using the ammo system, and its <tt>CooldownTime</tt> is set to the current round's length, in seconds, divided by this weapon's <tt>TotalAmmo</tt>, ignoring the <tt>CooldownTime</tt> value defined within the weapon file. In Sandbox mode, or if this weapon isn't using the ammo system, <tt>CooldownTime</tt> is set to <tt>0</tt>.
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>false</code>
|Defaults to <tt>false</tt>
|-
|-
|<code>AnimatesTower</code>
|<tt>AnimatesTower</tt>
|Exclusive to ''Bloons TD Battles''.
|Exclusive to ''Bloons TD Battles''.
|
|
Line 19: Line 20:
|
|
|-
|-
|<code>CanFireWithNoTargetsAndRoundInProgress</code>
|<tt>CanFireWithNoTargetsAndRoundInProgress</tt>
|If <code>true</code>, during rounds, this weapon will fire without requiring a valid target.
|If <tt>true</tt>, during rounds, this weapon will fire without requiring a valid target.
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>false</code>
|Defaults to <tt>false</tt>
|-
|-
|<code>CanSelfTargetCamo</code>
|<tt>CanSelfTargetCamo</tt>
|If <code>true</code>, this weapon can target and hit Camo bloons, even if the tower itself lacks Camo detection.  
|If <tt>true</tt>, this weapon can target and hit Camo bloons, even if the tower itself lacks Camo detection.  
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>false</code>
|Defaults to <tt>false</tt>
|-
|-
|<code>CanSpotFromOtherTowers</code>
|<tt>CanSpotFromOtherTowers</tt>
|If <code>true</code>, this weapon can target and hit bloons within other towers' range circles, including any Camo bloons within the range circles of towers that can detect Camo, but excluding towers who have <code>CanSpotForTowers</code> set to <code>false.</code>
|If <tt>true</tt>, this weapon can target and hit bloons within other towers' range circles, including any Camo bloons within the range circles of towers that can detect Camo, but excluding towers who have <tt>CanSpotForTowers</tt> set to <tt>false.</tt>
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>false</code>
|Defaults to <tt>false</tt>
|-
|-
|<code>CanTargetUnderground</code>
|<tt>CanTargetUnderground</tt>
|If <code>true</code>, this weapon can target and hit bloons inside of path segments flagged as tunnels, as if they were not in a tunnel.
|If <tt>true</tt>, this weapon can target and hit bloons inside of path segments flagged as tunnels, as if they were not in a tunnel.
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>false</code>
|Defaults to <tt>false</tt>
|-
|-
|<code>CooldownTime</code>
|<tt>CooldownTime</tt>
|An amount of time in seconds. Determines the attack cooldown for attacks, during which the weapon will remain idle even if a target is in range. Determines the ability cooldown for [[Activated Ability|Activated Abilities]].
|An amount of time in seconds, minimum of 1 frame. Determines the attack cooldown for attacks, during which the weapon will remain idle even if a target is in range. Determines the ability cooldown for [[Activated Ability|Activated Abilities]].
|Number
|Number
|Yes
|{{y}}
|Weapon functionally stops existing  
|Weapon functionally stops existing  
|-
|-
|<code>CostToFire</code>
|<tt>CooldownTimeMultiplier</tt>
|
|
|{{n}}
|Defaults to <tt>1</tt>
|-
|<tt>CostToFire</tt>
|In ''Bloons Monkey City'', determines the cash cost of using an [[Activated Ability]]. The Premium Tower Order and Boss Ability buttons are hardcoded to treat this as a Bloonstone cost rather than a cash cost.
|In ''Bloons Monkey City'', determines the cash cost of using an [[Activated Ability]]. The Premium Tower Order and Boss Ability buttons are hardcoded to treat this as a Bloonstone cost rather than a cash cost.


Also a valid weapon property in ''Bloons TD 5'', but with no apparent functionality. Inherited from ''Bloons Monkey City'' in the Boss Bloon update, seemingly without its functionality to set a cash price to a weapon, and no special buttons were implemented to enable spending Monkey Money or Tokens on select abilities.
Also a valid weapon property in ''Bloons TD 5'', but with no apparent functionality. Inherited from ''Bloons Monkey City'' in the Boss Bloon update, seemingly without its functionality to set a cash price to a weapon, and no special buttons were implemented to enable spending Monkey Money or Tokens on select abilities.
|Number
|Number
|No
|{{n}}
|Defaults to <code>0</code>
|Defaults to <tt>0</tt>
|-
|-
|<code>DisabledOnTargetModes</code>
|<tt>DisabledOnTargetModes</tt>
|
|The weapon disables itself if the tower's targeting mode is set to any of the targeting modes in this array (i.e. Submerge and Support behavior).
|Array of strings
|Array of strings
|No
|{{n}}
|Weapon does not disable based on target mode.
|Weapon does not disable based on target mode.
|-
|-
|<code>DisableSlotWhenOutOfAmmo</code>
|<tt>DisableSlotWhenOutOfAmmo</tt>
|If <code>true</code>, this weapon disables itself when its <code>RemainingAmmo</code> is at 0. It does not reenable itself.
|If <tt>true</tt>, this weapon disables itself when its <tt>RemainingAmmo</tt> is at 0. It does not re-enable itself.
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>false</code>
|Defaults to <tt>false</tt>
|-
|-
|<code>DrawWhenOutOfAmmo</code>
|<tt>DrawWhenOutOfAmmo</tt>
|If <code>true</code>, this weapon will remain visible when its <code>RemainingAmmo</code> is at 0, otherwise it will stop being visible when <code>RemainingAmmo</code> is 0, becoming visible again when <code>RemainingAmmo</code> is not zero.  
|If <tt>true</tt>, this weapon will remain visible when its <tt>RemainingAmmo</tt> is at 0, otherwise it will stop being visible when <tt>RemainingAmmo</tt> is 0, becoming visible again when <tt>RemainingAmmo</tt> is not zero.  
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>true</code>
|Defaults to <tt>true</tt>
|-
|-
|<code>FireDelayTime</code>
|<tt>FireDelayTime</tt>
|An amount of time in seconds. Determines the delay between a weapon firing and its tasks executing, during which the weapon will continually update its target. This plus a weapon's <code>CooldownTime</code> determines its [[attack speed]], as <code>CooldownTime</code> will not count down until the <code>FireDelayTime</code> has finished out. [[Activated Ability|Activated Abilities]] will resume counting down their <code>CooldownTime</code> even if the <code>FireDelayTime</code> has not yet expired.
|An amount of time in seconds, minimum of 1 frame. Determines the delay between a weapon firing and its tasks executing, during which the weapon will continually update its target. This plus a weapon's <tt>CooldownTime</tt> determines its [[attack speed]], as <tt>CooldownTime</tt> will not count down until the <tt>FireDelayTime</tt> has run out. [[Activated Ability|Activated Abilities]] will resume counting down their <tt>CooldownTime</tt> even if the <tt>FireDelayTime</tt> has not yet expired.
|Number
|Number
|Yes
|{{y}}
|Weapon functionally stops existing  
|Weapon functionally stops existing  
|-
|-
|<code>FiresOnRoundEnd</code>
|<tt>FireDelayTimeMultiplier</tt>
|
|
|Boolean
|No
|
|
|{{n}}
|Defaults to <tt>1</tt>
|-
|-
|<code>ForceTargetWeaponOrigin</code>
|<tt>FiresOnRoundEnd</tt>
|
|
|Boolean
|{{n}}
|
|
|No
|
|-
|-
|<code>ForwardFiring</code>
|<tt>ForceTargetWeaponOrigin</tt>
|If <tt>true</tt>, then it forces the weapon to spawn from the target regardless of if <tt>TargetIsWeaponOrigin</tt> is on for the tower.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>ForwardFiring</tt>
|
|
|
|
|No
|{{n}}
|
|
|-
|-
|<code>InterestMultiplier</code>
|<tt>InterestMultiplier</tt>
|
|
|Number
|Number
|No
|{{n}}
|
|
|-
|-
|<code>ManuallyFired</code>
|<tt>ManuallyFired</tt>
|If <code>true</code>, this weapon is treated as an [[Activated Ability]].
|If <tt>true</tt>, this weapon is treated as an [[Activated Ability]].
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>false</code>
|Defaults to <tt>false</tt>
|-
|-
|<code>MaxMoney</code>
|<tt>MaxMoney</tt>
|
|
|Number
|Number
|No
|{{n}}
|
|
|-
|-
|<code>MaxShots</code>
|<tt>MaxShots</tt>
|
|
|Number
|Number
|No
|{{n}}
|
|
|-
|-
|<code>NumberOfRoundsBetweenShots</code>
|<tt>NumberOfRoundsBetweenShots</tt>
|
|
|Number
|Number
|No
|{{n}}
|
|
|-
|-
|<code>ReloadOnRoundStart</code>
|<tt>ReloadOnRoundStart</tt>
|Exclusive to ''Bloons TD Battles''.
|Exclusive to ''Bloons TD Battles''.
|
|
Line 135: Line 148:
|
|
|-
|-
|<code>RemainingAmmo</code>
|<tt>RemainingAmmo</tt>
|
|
|Number
|Number
|No
|{{n}}
|Defaults to <code>0</code>
|Defaults to <tt>0</tt>
|-
|-
|<code>RequiresTargetToFire</code>
|<tt>RequiresTargetToFire</tt>
|If <code>true</code>, this weapon can only fire if it has a valid target.
|If <tt>true</tt>, this weapon can only fire if it has a valid target.
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>true</code>
|Defaults to <tt>true</tt>
|-
|-
|<code>SelfTargetMode</code>
|<tt>SelfTargetMode</tt>
|Locks this weapon to the defined targeting priority, ignoring the targeting priority of its tower.
|Locks this weapon to the defined targeting priority, ignoring the targeting priority of its tower.
|String
|String
|No
|{{n}}
|The weapon uses its tower's targeting priority.
|The weapon uses its tower's targeting priority.
|-
|-
|<code>ShowRange</code>
|<tt>ShowRange</tt>
|If <code>false</code>, this weapon will not draw a range circle. <code>CanSpotFromOtherTowers</code>-enabled weapons possessed by other towers will not be able to target bloons using this weapon's range. Otherwise, this is just visual.
|If <tt>false</tt>, this weapon will not draw a range circle. <tt>CanSpotFromOtherTowers</tt>-enabled weapons possessed by other towers will not be able to target bloons using this weapon's range. Otherwise, this is just visual.
[[Activated Ability|Activated Abilities]] are unaffected by this property.
[[Activated Ability|Activated Abilities]] are unaffected by this property.
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>true</code>
|Defaults to <tt>true</tt>
|-
|-
|<code>SpreadCooldownOverRound</code>
|<tt>SpreadCooldownOverRound</tt>
|Exclusive to ''Bloons TD Battles''.
|Exclusive to ''Bloons TD Battles''.
|
|
Line 166: Line 179:
|
|
|-
|-
|<code>StartsOnCooldown</code>
|<tt>StartsOnCooldown</tt>
|
|
|Boolean
|Boolean
|No
|{{n}}
|
|
|-
|-
|<code>TargetingArc</code>
|<tt>TargetingArc</tt>
|
|
|
|
|No
|{{n}}
|
|
|-
|-
|<code>TargetingFilter</code>
|<tt>TargetingFilter</tt>
|
|
|
|
|No
|{{n}}
|
|
|-
|-
|<code>TargetRange</code>
|<tt>TargetRange</tt>
|
|
|Number
|Number
|No
|{{n}}
|
|
|-
|-
|<code>TargetsIndependently</code>
|<tt>TargetsIndependently</tt>
|
|
|Boolean
|Boolean
|No
|{{n}}
|
|
|-
|-
|<code>Tasks</code>
|<tt>Tasks</tt>
|A list of tasks that the weapon will execute when it fires.
|A list of tasks the weapon executes each time it fires.
|Array of objects
|Array of objects
|Yes
|{{y}}
|Weapon functionally stops existing
|Weapon functionally stops existing
|-
|-
|<code>TotalAmmo</code>
|<tt>TotalAmmo</tt>
|
|
|Number
|Number
|No
|{{n}}
|Defaults to <code>0</code>
|Defaults to <tt>0</tt>
|-
|-
|<code>Type</code>
|<tt>Type</tt>
|
|
|String
|String
|Yes
|{{y}}
|
|
|-
|-
|<code>UseBloonStore</code>
|<tt>UseBloonStore</tt>
|
|
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>false</code>
|Defaults to <tt>false</tt>
|}
|}


== Tasks ==
== Tasks ==
A <tt>Task</tt> is a process that executes when a weapon fires. An array of tasks is executed in its array order, lowest index first. Some tasks, such as <tt>Projectile</tt>, <tt>AreaOfEffect</tt>, and <tt>Effect</tt> tasks, can also have tasks, which are referred to as "sub-tasks" and execute under different conditions. The <tt>Type</tt> of a task determines what the task is and what parameters it allows.
===AddCashMult===
===AddChildSprite===
===ApplyBloonSpawnModifier===


===AreaOfEffect===
===AreaOfEffect===
{| class="wikitable sortable"
{| class="wikitable sortable"
|+
!Key
!Key
!Description
!Description
Line 232: Line 251:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>Range</code>
|<tt>CanHitLead</tt>
|The radius of the area of effect.
|Determines if an AoE can hit Lead bloons or not.
|Boolean
|{{n}}
|Defaults to <tt>true</tt>
|-
|<tt>DisabledTasks</tt>
|
|Array of numbers
|
|
|-
|<tt>Duration</tt>
|
|Number
|Number
|Yes
|
|
|
|-
|-
|<code>MaxTargets</code>
|<tt>MaxTargets</tt>
|The pierce of the area of effect. One pierce is consumed per collision.
|The pierce of the area of effect. One pierce is consumed per collision.
|Number
|Number
|Yes
|{{y}}
|
|-
|<tt>Range</tt>
|The radius of the area of effect.
|Number
|{{y}}
|
|-
|<tt>Sort</tt>
|
|
|
|
|-
|<tt>Tasks</tt>
|A list of tasks the area of effect executes on each Bloon it hits.
|Array of objects
|
|
|-
|<tt>UseRangeModifier</tt>
|If <tt>true</tt>, the range scales with range modifiers. Exclusive to ''Bloons TD Battles''.
|Boolean
|{{n}}
|
|
|}
|}
===BloonAdjustment===


===BloonSpawnedEvent===
===BloonSpawnedEvent===
Executes its tasks on all bloons spawned.
Executes its tasks on each Bloon that spawns.
{| class="wikitable"
{| class="wikitable"
|+
!Key
!Key
!Description
!Description
Line 255: Line 311:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>Duration</code>
|<tt>Duration</tt>
|How long the event lasts for.
|How long the event lasts for.
|Number
|Number
|
|
|-
|<tt>Tasks</tt>
|
|Array of objects
|
|
|
|
|}
|}
===BoostReducer===


===ChainTasks===
===ChainTasks===
{|class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>CutOffDistance</tt>
|
|
|
|
|-
|<tt>NumJumps</tt>
|How times a branch of lightning will bounce.
|Number
|
|
|-
|<tt>NumPersists</tt>
|
|Number
|
|
|-
|<tt>Tasks</tt>
|
|
|
|
|}


===ChangeSubtaskEnabled===
===ChangeSubtaskEnabled===
Line 272: Line 367:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>ToDisable</code>
|<tt>ToDisable</tt>
|
|
|Array of numbers
|Array of numbers
Line 278: Line 373:
|
|
|-
|-
|<code>ToEnable</code>
|<tt>ToEnable</tt>
|
|Array of numbers
|
|
|
|}
===ChangeTerrain===
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Area</tt>
|Defines the area as a rectangle. The first number determines the width, the second number determines the height.
|Array of numbers
|Array of numbers
|
|
|-
|<tt>Mask</tt>
|Determines the kind(s) of terrain this area is treated as. If empty, this is treated as land (i.e. Pontoon behavior).
*<tt>"Water"</tt>
*<tt>"BlockTower"</tt> (unused)
*<tt>"PathTower"</tt> (unused)
|Array of strings
|
|
|-
|<tt>Radius</tt>
|Defines the area as a circle. The value determines the radius.
|Number
|
|
|
|
Line 287: Line 412:
===Collectable===
===Collectable===
{| class="wikitable sortable"
{| class="wikitable sortable"
|+
!Key
!Key
!Description
!Description
Line 294: Line 418:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>Duration</code>
|<tt>AutoCollect</tt>
|
|
|
|
|-
|<tt>Bank</tt>
|
|Boolean
|
|
|-
|<tt>BonusMultiplierForManualCollection</tt>
|
|Number
|{{n}}
|
|-
|<tt>ClickOnly</tt>
|
|
|
|
|-
|<tt>CollectionRadius</tt>
|The radius in which the collectable can be collected from.
|Number
|
|
|-
|<tt>Duration</tt>
|How long the collectable lasts for.
|How long the collectable lasts for.
|Number
|Number
Line 300: Line 454:
|
|
|-
|-
|<code>MoneyRange</code>
|<tt>GivesCashWhenExpired</tt>
|The minimum and maximum number of cash the collectable at base gives.
|
|Array of numbers
|
|
|
|-
|<tt>GraphicName</tt>
|
|
|
|
|-
|<tt>LimitHealth</tt>
|
|
|
|
|-
|<tt>LivesMultiplier</tt>
|The multiplier for how many lives are given, the total lives given is <math>\text{Lives Range} \times \text{LivesMultiplier}</math>.
|Number
|
|
|
|
|-
|-
|<code>LivesRange</code>
|<tt>LivesRange</tt>
|The minimum and maximum number of lives the collectable at base gives.
|The minimum and maximum number of lives the collectable at base gives.
|Array of numbers
|Array of numbers
Line 312: Line 484:
|
|
|-
|-
|<code>MoneyMultiplier</code>
|<tt>LoopAnimation</tt>
|The multiplier for how much cash is given, the total cash given is <math>\text{Money Range} \times \text{Money Multiplier}</math>.
|
|
|
|
|-
|<tt>MoneyMultiplier</tt>
|The multiplier for how much cash is given, the total cash given is <math>\text{Money Range} \times \text{MoneyMultiplier}</math>.
|Number
|Number
|
|
|
|
|-
|-
|<code>MoneyMultiplier</code>
|<tt>MoneyRange</tt>
|The multiplier for how many lives are given, the total lives given is <math>\text{Lives Range} \times \text{Lives Multiplier}</math>.
|The minimum and maximum number of cash the collectable at base gives.
|Number
|Array of numbers
|
|
|-
|<tt>MoneyRangeIncreasePerRound</tt>
|
|
|
|
|-
|<tt>Movement</tt>
|The [[#Movement|movement]] of the collectable.
|Object
|
|
|-
|<tt>SpriteFile</tt>
|
|
|
|
|
|
|-
|-
|<code>CollectionRadius</code>
|<tt>Tasks</tt>
|The radius in which the collectable can be collected from
|
|Number
|
|
|
|
|
Line 340: Line 536:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>AnimateOnCollection</code>
|<tt>AnimateOnCollection</tt>
|
|
|Boolean
|Boolean
Line 346: Line 542:
|
|
|-
|-
|<code>CollectionDelay</code>
|<tt>CollectionDelay</tt>
|
|
|Number
|Number
Line 352: Line 548:
|
|
|-
|-
|<code>Range</code>
|<tt>Range</tt>
|
|
|Number
|Number
Line 358: Line 554:
|
|
|-
|-
|<code>Speed</code>
|<tt>Speed</tt>
|
|
|Number
|Number
|
|
|
|
|}
===CreateAtPathPoint===
===CreateTower===
Creates a tower.
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>TowerType</tt>
|The type of tower that is being created.
|String
|{{y}}
|Creates an invalid tower
|-
|<tt>TowerLifetime</tt>
|How long the created tower lasts.
|Number
|{{n}}
|The created tower lasts infinitely
|-
|<tt>TowerColour</tt>
|Applies a RGBA multiply colour on top of the created tower. First number controls the red channel, second controls the green channel, third controls the blue channel, the fourth is suppose to control the alpha channel but it doesn't work.
|Array of Numbers
|{{n}}
|Defaults to <tt>[ 255, 255, 255, 255 ]</tt>
|-
|<tt>HasParentTower</tt>
|Determines if the created tower also gets destroyed if its "parent" tower get sold.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>UseParentTowerUpgradeLevel</tt>
|Determines whether the created tower should copy the upgrade layout from the 'parent' tower that created it.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|}
|}


===Damage===
===Damage===
Deals damage to Bloons. For weapons, this deals damage to its target directly (i.e. Sniper Monkey behavior). For projectiles, deals damage on collision.
Deals damage to Bloons. For weapons, this deals damage to its target directly (i.e. Sniper Monkey behavior). For tasks that collide with Bloons (projectiles, areas of effect, etc), this deals damage on collision.
{| class="wikitable sortable"
{| class="wikitable sortable"
!Key
!Key
Line 374: Line 612:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>Amount</code>
|<tt>Amount</tt>
|The amount of damage dealt. (If this weapon/projectile's task list does not have a <code>MultiLayerDamage</code> task below it, the damage will not pass through layers.)
|The amount of damage dealt. (If this weapon/projectile's task list does not have a <tt>MultiLayerDamage</tt> status below it, the damage will not pass through layers.)
|Number
|Number
|
|
|
|
|-
|-
|<code>DamageType</code>
|<tt>BlimpModifier</tt>
|Bloons with a matching string in their <code>DamageImmunity</code> property will not take damage. Some damage types have hardcoded properties.
|Exclusive to ''Bloons Monkey City''.  
{| class="wikitable"
|Number
|<code>Piercing</code>
|{{n}}
|The projectile that dealt this damage plays a sound and terminates when it hits a Lead or frozen bloon.
|Defaults to <tt>1</tt>
|-
|-
|<code>Fire</code>
|<tt>BossDamageMod</tt>
|The projectile that dealt this damage plays a sound and terminates when it hits a Lead bloon.
|Excluded from ''Bloons TD Battles''.
|Number
|{{n}}
|Defaults to <tt>1</tt>
|-
|-
|<code>Explosive</code>
|<tt>CeramicModifier</tt>
|―
|Exclusive to ''Bloons Monkey City''.
|Number
|{{n}}
|Defaults to <tt>1</tt>
|-
|<tt>DamageType</tt>
|Bloons with a matching string in their <tt>DamageImmunity</tt> property will not take damage. Some damage types have hardcoded properties.
*<tt>"Piercing"</tt>: The projectile that dealt this damage plays a sound and terminates when it hits a Lead or frozen bloon.
*<tt>"Fire"</tt>: The projectile that dealt this damage plays a sound and terminates when it hits a Lead bloon.
*<tt>"Explosive"</tt>
*<tt>"Plasma"</tt>
*<tt>"Ice"</tt>
*<tt>"Juggernaut"</tt>
*<tt>"MOABMauler"</tt>
*<tt>"Foam"</tt>
*<tt>"IceViral"</tt>: Exclusive to ''Bloons TD Battles''.
|String
|
|
|-
|-
|<code>Plasma</code>
|<tt>InformDamageFromParentTask</tt>
|The <code>ShredBloon</code> status is hardcoded to use this.
|
|
|{{n}}
|
|}
 
===DamageSpread===
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|-
|<code>Ice</code>
|<tt>Amount</tt>
|―
|
|Number
|
|
|-
|-
|<code>Juggernaut</code>
|<tt>BlimpModifier</tt>
|―
|Exclusive to ''Bloons Monkey City''.
|Number
|{{n}}
|Defaults to <tt>1</tt>
|-
|-
|<code>MOABMauler</code>
|<tt>BossDamageMod</tt>
|―
|Excluded from ''Bloons TD Battles''.
|Number
|{{n}}
|Defaults to <tt>1</tt>
|-
|-
|<code>Foam</code>
|<tt>CeramicModifier</tt>
|―
|Exclusive to ''Bloons Monkey City''.
|Number
|{{n}}
|Defaults to <tt>1</tt>
|-
|-
|<code>IceViral</code>
|<tt>DamageType</tt>
|Exclusive to ''Bloons TD Battles''.
|
|}
|String
|String
|
|
|-
|<tt>MaxTargets</tt>
|
|Number
|
|
|-
|<tt>Range</tt>
|
|Number
|
|
|
|
|}
|}
===DisableUIFeature===


===Effect===
===Effect===
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>AppliedToTower</tt>
|
|
|
|
|-
|<tt>ApplyLinearDodge</tt>
|
|
|
|
|-
|<tt>ApplyToTarget</tt>
|
|
|
|
|-
|<tt>Audio</tt>
|
|
|
|
|-
|<tt>DrawLayer</tt>
|
|
|
|
|-
|<tt>Duration</tt>
|
|
|
|
|-
|<tt>FlipLeft</tt>
|
|
|
|
|-
|<tt>FlipRight</tt>
|
|
|
|
|-
|<tt>FollowTarget</tt>
|
|
|
|
|-
|<tt>IgnoreAircraft</tt>
|
|
|
|
|-
|<tt>LinkScaleWithAreaOfEffectRange</tt>
|
|
|
|
|-
|<tt>LoopCount</tt>
|
|
|
|
|-
|<tt>LoopForever</tt>
|
|
|
|
|-
|<tt>PlaySpeed</tt>
|
|
|
|
|-
|<tt>Position</tt>
|
|
|
|
|-
|<tt>PositionLeft</tt>
|
|
|
|
|-
|<tt>PositionRight</tt>
|
|
|
|
|-
|<tt>RoundDuration</tt>
|
|
|
|
|-
|<tt>Scale</tt>
|
|
|
|
|-
|<tt>SpriteFile</tt>
|
|
|
|
|-
|<tt>Tasks</tt>
|
|
|
|
|-
|<tt>TerminateWithParent</tt>
|
|
|
|
|-
|<tt>UseDirection</tt>
|
|
|
|
|-
|<tt>UseDuration</tt>
|
|
|
|
|}
===EnableWeaponSlot===
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Slot</tt>
|
|Number
|
|
|-
|<tt>Enable</tt>
|Whether to enable/disable slot
|String
|{{n}}
|Defaults to <tt>true</tt>
|}
===FireOverTime===


===FireTaskAtLocation===
===FireTaskAtLocation===
Unused. Properties are unknown, and the task existing in a weapon file causes the game to crash on the title screen as if an essential task property were missing from it, confirming that the task is valid in some form.
Unused. Properties are unknown, and the task existing in a weapon file causes the game to crash on the title screen as if an essential task property were missing from it, confirming that the task is valid in some form.
===ForceSellTower===
===GiveCashForLeaks===
===GrantCashPerPop===
Causes all Bloons to generate cash per layer popped for a limited time. This is exclusive to ''Bloons TD Battles'' and is only used by [[Rubber to Gold (Battles)|Rubber to Gold]] and [[Bounty]].
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Amount</tt>
|The amount of cash generated per pop. Has a hardcoded cap of $50,000 per activation.
|Number
|
|
|-
|<tt>Duration</tt>
|The duration, in seconds.
|Number
|
|
|}
===Harpoon===
===IncomeChange===
===IncomeOverTime===
===IncomeTax===


===LaunchAircraft===
===LaunchAircraft===
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Aircraft</tt>
|The aircraft that will be launched.
|String
|
|
|-
|<tt>MaxAircraft</tt>
|How many will be launched.
|Number
|{{n}}
|Defaults to <tt>1</tt>
|-
|<tt>Path</tt>
|
|
|
|
|-
|<tt>Path</tt>
|
|
|
|
|-
|<tt>PathIndex</tt>
|The Flight Path the aircraft will use.
* <tt>0</tt> = Figure 8
* <tt>1</tt> = Figure ∞
* <tt>2</tt> = Circle
|Number
|
|
|-
|<tt>PathOrigin</tt>
|Defines the location of the origin of the path the aircraft will fly in. The first number controls the X coordinate, the second number controls the Y coordinate.
|Array of numbers
|{{n}}
|
|-
|<tt>UseTargetPath</tt>
|
|
|
|
|}
===MoneyChange===


=== MultiFire ===
=== MultiFire ===
Used to shoot more than 1 projectile. All angles used are in degrees.
Used to shoot more than 1 projectile. All angles are in degrees.
{| class="wikitable sortable"
{| class="wikitable sortable"
|+
!Key
!Key
!Description
!Description
Line 432: Line 992:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>InitialOffset</code>
|<tt>AcquireTarget</tt>
|The angle of the "first" projectile.
|
|
|
|
|-
|<tt>AimAtTarget</tt>
|If <tt>true</tt>, then the angles of the projectiles are offset by the angle of the shot.
|Boolean
|
|
|-
|<tt>AimOffsetsAtTarget</tt>
|Unused; only appears in the unused <tt>RoboMonkey.weapon</tt> file (<tt>RoboMonkeyLeft.weapon</tt> and <tt>RoboMonkeyRight.weapon</tt> are used instead). If <tt>true</tt>, the projectiles are angled towards the target.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>AngleIncrement</tt>
|The change in angle from the first projectile for all subsequent projectiles.
|Number
|Number
|
|
|
|
|-
|-
|<code>AngleIncrement</code>
|<tt>DisabledTasks</tt>
|The change in angle for all subsequent projectiles.
|
|
|
|
|-
|<tt>FireCount</tt>
|The number of times each subtask executes when this executes. If set to <tt>0</tt>, this task does not execute any subtasks.
|Number
|Number
|
|
|
|
|-
|-
|<code>FireCount</code>
|<tt>InitialOffset</tt>
|Amount of projectiles fired.
|The angle of the "first" projectile.
|Number
|Number
|
|
|
|
|-
|-
|<code>AimAtTarget</code>
|<tt>MarkIDForProjectiles</tt>
|If on, then the angles of the projectiles are offset by the angle of the shot.
|If <tt>true</tt>, Bloons hit by the MultiFire's parent task cannot be hit by the MultiFire's subtasks. (This is used by Frag Bombs to make it so Bloons hit by the initial bomb (not the explosion) can't also be hit by the frags.)
|Boolean
|Boolean
|{{n}}
|
|-
|<tt>Offsets</tt>
|The positional offsets of each projectile.
|Array of objects
|{{n}}
|
|-
|<tt>Radius</tt>
|
|
|
|
|-
|<tt>ShotDelay</tt>
|
|
|
|
|-
|<tt>Tasks</tt>
|A list of tasks to execute when this task executes.
|Array of objects
|
|
|
|
|}
===OverclockTask===
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|-
|<code>Offsets</code>
|<tt>Tasks</tt>
|The positional offsets of each projectile.
|
|Array of objects
|Array of objects
|No
|
|
|
|}
|}
===ParticleEffect===
===PlayerDamage===


=== Projectile ===
=== Projectile ===
Line 471: Line 1,092:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>CollisionType</code>
|<tt>CollidesOnlyWithTarget</tt>
|If <tt>true</tt>, this projectile will pass through any Bloons that are not the target.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>CollisionType</tt>
|Determines how the projectile handles collision with Bloons.
|Determines how the projectile handles collision with Bloons.
{| class="wikitable"
*<tt>"Once"</tt>: can only collide with the same Bloon or its children once.
|<code>Once</code>
*<tt>"Continual"</tt>: can collide with any Bloon once per frame, even ones it has already hit.
|Can only collide with the same Bloon or its children once.
*<tt>"None"</tt>: cannot collide with Bloons.
|String
|
|
|-
|<tt>DisabledTasks</tt>
|
|Array of numbers
|{{n}}
|
|-
|<tt>DrawLayer</tt>
|
|Number
|{{n}}
|
|-
|-
|<code>Continual</code>
|<tt>ForcePersists</tt>
|Can collide with the same Bloon once per frame.
|If true, the projectile's pierce is unaffected by pierce modifiers.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|-
|<code>None</code>
|<tt>GraphicName</tt>
|Cannot collide with Bloons.
|
|}
|String
|String
|
|
|
|
|-
|-
|<code>ForcePersists</code>
|<tt>GraphicsAtPierceLevels</tt>
|If true, pierce cannot be increased.
|
|
|{{n}}
|
|-
|<tt>HasFixedAngle</tt>
|
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>HasLimitedDuration</tt>
|
|Boolean
|{{n}}
|
|-
|<tt>HasRandomOrientation</tt>
|
|Boolean
|Boolean
|No
|{{n}}
|Defaults to <code>false</code>
|
|-
|-
|<code>NumPersists</code>
|<tt>IgnoreStatusEffect</tt>
|
|
|{{n}}
|
|-
|<tt>LimitedDuration</tt>
|
|
|{{n}}
|
|-
|<tt>LoopAnimation</tt>
|
|
|{{n}}
|
|-
|<tt>LoopForever</tt>
|
|
|{{n}}
|
|-
|<tt>Movement</tt>
|The [[#Movement|movement]] of the projectile.
|Object
|
|
|-
|<tt>NumPersists</tt>
|The pierce of the projectile. One pierce is consumed per collision.
|The pierce of the projectile. One pierce is consumed per collision.
|Number
|Number
Line 499: Line 1,191:
|
|
|-
|-
|<code>Radius</code>
|<tt>OnlyCollidePastCutOff</tt>
|
|Boolean
|{{n}}
|
|-
|<tt>Radius</tt>
|
|
|Number
|Number
|{{n}}
|Uses the sprite's bounding box as a collision box
|-
|<tt>RemoveAfterRoundStart</tt>
|
|
|{{n}}
|
|-
|<tt>RemoveOnRoundEnd</tt>
|
|Boolean
|{{n}}
|
|-
|<tt>SpinRate</tt>
|
|
|
|{{n}}
|
|
|-
|-
|<code>SpriteFile</code>
|<tt>SpriteFile</tt>
|
|
|String
|String
Line 511: Line 1,227:
|
|
|-
|-
|<code>TerminateOnZeroPersists</code>
|<tt>StopAtEndOfCurves</tt>
|If true, the projectile expires when all pierce is consumed.
|
|
|{{n}}
|
|-
|<tt>Tasks</tt>
|A list of tasks. <tt>TasksToProcessOnCollision</tt> and <tt>TasksToProcessOnTerminate</tt> determine which tasks execute on collision and which tasks execute when the projectile expires.
|Array of objects
|
|
|-
|<tt>TasksToProcessOnCollision</tt>
|
|
|
|
|-
|<tt>TasksToProcessOnTerminate</tt>
|
|
|
|
|-
|<tt>TerminateOnTowerRemoved</tt>
|If <tt>true</tt>, the projectile expires when the tower that fired it is destroyed.
|Boolean
|Boolean
|
|
|-
|<tt>TerminateOnZeroPersists</tt>
|If <tt>true</tt>, the projectile expires when all pierce is consumed.
|Boolean
|
|
|-
|<tt>TerminatePastCutoff</tt>
|
|
|
|
|
|
Line 519: Line 1,271:


===RandomFire===
===RandomFire===
Targets a random point within a specified radius.
{| class="wikitable"
{| class="wikitable"
|+
!Key
!Key
!Description
!Description
Line 527: Line 1,279:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>Range</code>
|<tt>FireFullRange</tt>
|The radius of the random fire.
|If <tt>true</tt>, this can only target points at the full extent of the range. Ignored if <tt>OnlyTargetPathLocations</tt> is set to <tt>true</tt>.
|Boolean
|
|
|-
|<tt>FollowTarget</tt>
|
|Boolean
|
|
|-
|<tt>HasRandomOrientation</tt>
|
|Boolean
|{{n}}
|
|-
|<tt>MinimumRange</tt>
|The minimum targeting radius.
|Number
|{{n}}
|
|-
|<tt>OnlyTargetPathLocations</tt>
|If <tt>true</tt>, this can only target points on a path within range (i.e. Spike Factory behavior).
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>OnlyTargetPlacementLocations</tt>
|
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>PlacementTowerType</tt>
|
|String
|{{n}}
|
|-
|<tt>Range</tt>
|The maximum targeting radius.
|Number
|Number
|
|
|
|
|-
|-
|<code>OnlyTargetPathLocations</code>
|<tt>TargetIsWeaponTaskOrigin</tt>
|Whether to shoot the projectile on the path or not.
|
|Boolean
|Boolean
|
|
|
|
|-
|-
|<code>FireFullRange</code>
|<tt>Tasks</tt>
|A list of tasks to execute when this task executes.
|Array of objects
|
|
|
|
|-
|<tt>TerminateOnZeroPersists</tt>
|
|
|
|
|-
|<code>FollowTarget</code>
|
|
|
|
|-
|<tt>UseRangeModifier</tt>
|If <tt>true</tt>, the targeting range scales with range modifiers. Exclusive to ''Bloons TD Battles''.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>WaitTimeRange</tt>
|
|
|Array of numbers
|{{n}}
|
|
|}
|}
Line 561: Line 1,367:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>Tasks</code>
|<tt>Tasks</tt>
|Executes these tasks on every Bloon it touches.
|A list of tasks the ray executes on each Bloon it touches.
|Array of objects
|Array of objects
|
|
|}
===RBEProjectile===
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>CollisionType</tt>
|Determines how the projectile handles collision with Bloons.
*<tt>"Once"</tt>: can only collide with the same Bloon or its children once.
*<tt>"Continual"</tt>: can collide with any Bloon once per frame, even ones it has already hit.
*<tt>"None"</tt>: cannot collide with Bloons.
|String
|
|
|-
|<tt>GraphicName</tt>
|
|String
|
|
|-
|<tt>MaxRBE</tt>
|
|Number
|
|
|-
|<tt>SpriteFile</tt>
|
|String
|
|
|-
|<tt>HasRandomOrientation</tt>
|
|Boolean
|{{n}}
|
|-
|<tt>NumPersists</tt>
|
|Number
|
|
|-
|<tt>RemoveOnRoundEnd</tt>
|
|Boolean
|{{n}}
|
|-
|<tt>Tasks</tt>
|A list of tasks. <tt>TasksToProcessOnCollision</tt> and <tt>TasksToProcessOnTerminate</tt> determine which tasks execute on collision and which tasks execute when the projectile expires.
|Array of objects
|
|
|-
|<tt>TasksToProcessOnCollision</tt>
|
|
|
|
|-
|<tt>TasksToProcessOnTerminate</tt>
|
|
|
|
|-
|<tt>TerminateOnZeroPersists</tt>
|If <tt>true</tt>, the projectile expires when all pierce is consumed.
|Boolean
|
|
|
|
Line 569: Line 1,453:


===RemoveStatusEffect===
===RemoveStatusEffect===
{| class="wikitable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Status</tt>
|
|
|
|
|}


=== RestoreAmmo ===
=== RestoreAmmo ===
Adds ammo to the weapon.
{| class="wikitable"
{| class="wikitable"
!Key
!Key
Line 578: Line 1,476:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>Amount</code>
|<tt>Amount</tt>
|The amount of ammo to restore to the weapon.
|The amount of ammo to restore to the weapon.
|Number
|Number
Line 584: Line 1,482:
|
|
|-
|-
|<code>RoundRobin</code>
|<tt>Proxied</tt>
|If <tt>true</tt>, also restore ammo to the weapon that spawned this aircraft.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>RoundRobin</tt>
|🎠 wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee idfk but it make da glaive lord work
|🎠 wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee idfk but it make da glaive lord work
|Number
|Number
Line 590: Line 1,494:
|
|
|-
|-
|<code>Proxied</code>
|<tt>SlotIndex</tt>
|If <code>true</code>, also restore ammo to the weapon that spawned this aircraft.
|The slot index of the weapon that ammo is being restored to.
|Boolean
|Number
|No
|{{n}}
|Defaults to <code>false</code>
|
|}
 
===Sacrifice===
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>SpriteFile</tt>
|
|
|
|
|-
|<tt>Tasks</tt>
|
|
|
|
|}
 
===ScreenWipe===
Exclusive to ''Bloons TD Battles''.
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Count</tt>
|
|Number
|
|
|-
|-
|<code>SlotIndex</code>
|<tt>Duration</tt>
|The slot index of the weapon that ammo is being restored to.
|
|Number
|Number
|No
|
|
|-
|<tt>SpeedMultiplierRange</tt>
|
|Array of numbers
|
|
|-
|<tt>Tasks</tt>
|
|Array of objects
|
|
|
|}
|}
===StatusEffect===
{{main|Technical:Bloons TD 5 (mobile)/Status effects}}
Applies a modifier to the target Bloon. This task supports a lot of properties, but most are only used by certain types of statuses and are ignored by others. Some statuses cannot be inflicted by tasks, only by hardcoded game mechanics, but they can still be used for filters, and can still be removed with <tt>RemoveStatusEffect</tt>, and Bloons can be made immune to them.
This table lists properties that are common to all statuses.
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Status</tt>
|The type of status. This can also be set to an empty string, in which case it will do nothing until a <tt>TaskUpgrade</tt> changes it.
|String
|
|
|-
|<tt>TargetingFilter</tt>
|
|Object
|
|
|-
|<tt>FireMode</tt>
|A list of flags specifying something idk
*<tt>"FireNormal"</tt> (unused)
*<tt>"FireOnApply"</tt>
*<tt>"FireOnCommand"</tt> (unused)
*<tt>"FireOnLastPop"</tt> (unused)
*<tt>"FireOnPop"</tt> (unused)
*<tt>"FireOnRemove"</tt> (unused)
*<tt>"RemoveOnLastApply"</tt>
|Array of strings
|{{n}}
|
|}
===TargetAlLBloonsInRange===
Exclusive to ''Bloons TD Battles''. (No, that is not a typo, it has to be capitalized that way for it to work properly.)


===TextEffect===
===TextEffect===


===TimerFire===
===TimerFire===
 
Executes its subtasks after a delay.
=== TowerModifier ===
{| class="wikitable"
{| class="wikitable sortable"
|+
!Key
!Key
!Description
!Description
Line 616: Line 1,608:
!Behavior when absent
!Behavior when absent
|-
|-
|<code>Range</code>
|<tt>CompoundSprite</tt>
|Range of the modifier.
|
|String
|
|
|-
|<tt>InitialTime</tt>
|The initial timer to delay the first execution of a looping TimerFire.
|Number
|{{n}}
|
|-
|<tt>Loops</tt>
|Determines if a TimerFire will loop.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|-
|<tt>NumLoops</tt>
|Used in conjunction with the former, how many times will it loop. If <tt>Loops</tt> is not present or false, it won't loop.
|Number
|Number
|{{n}}
|Doesn't loop
|-
|<tt>SpriteList</tt>
|
|Array of strings
|
|
|
|
|-
|-
|<code>PriorityLevel</code>
|<tt>Tasks</tt>
|A list of tasks to execute when the time is up.
|Array of objects
|
|
|
|-
|<tt>TimeDelay</tt>
|The delay, in seconds.
|Number
|Number
|
|
|
|
|}
=== TowerModifier ===
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|-
|<code>RequiresEmptyPriorityLevel</code>
|<tt>ApplyToUserTower</tt>
|If true, the modifier's priority level must be empty for it to work, else, it can stack with other modifiers of that priority level
|
|Boolean
|
|
|
|
|
|-
|-
|<code>TerminateOnUserUpgrade</code>
|<tt>CanApplyToUserTower</tt>
|
|
|
|Boolean
|
|
|
|
|-
|-
|<code>Modifier</code>
|<tt>Duration</tt>
|How long the modifier is active for.
|Number
|{{n}}
|Defaults to <tt>-1</tt>
|-
|<tt>Modifier</tt>
|The modifier applied. Each modifier can either be additive or multiplicative.
|The modifier applied. Each modifier can either be additive or multiplicative.
{| class="wikitable"
{| class="wikitable"
|<code>Cost</code>
|<tt>Cost</tt>
|The price of the tower/upgrades.
|The price of the tower/upgrades.
|-
|-
|<code>TargetRange</code>
|<tt>TargetRange</tt>
|The range of the tower.
|The range of the tower.
|-
|-
|<code>Cooldown</code>
|<tt>Cooldown</tt>
|The cooldown time of the tower, does not affect [[Activated Ability|activated abilities]].
|The cooldown time of the tower, does not affect [[Activated Ability|activated abilities]].
|-
|-
|<code>FireDelay</code>
|<tt>FireDelay</tt>
|The fire delay time of the tower.
|The fire delay time of the tower.
|-
|-
|<code>CashPerPop</code>
|<tt>CashPerPop</tt>
|The amount of money given per pop by the tower.
|The amount of money given per pop by the tower.
|-
|-
|<code>AbilityCooldown</code>
|<tt>AbilityCooldown</tt>
|The cooldown of the [[Activated Ability|activated ability]].
|The cooldown of the [[Activated Ability|activated ability]].
|-
|-
|<code>PoppingPower</code>
|<tt>PoppingPower</tt>
|The pierce of the tower
|The pierce of the tower. Affects both <tt>Projectile</tt> and <tt>AreaOfEffect</tt> tasks.
|-
|<tt>CanPopCamo</tt>
|The ability of the tower to pop camo bloons. (Boolean)
|-
|-
|<code>CanPopCamo</code>
|<tt>CanPopAllBloons</tt>
|The ability of the tower to pop camo bloons.
|The ability of the tower's damage type to ignore bloon immunities. (Boolean)
|-
|-
|<code>CanPopAllBloons</code>
|<tt>Damage</tt>
|The ability of the tower's damage type to ignore bloon immunities
|The amount of damage the tower does.
|}
|}
|Object
|
|
|-
|<tt>ModifyMovingTowers</tt>
|
|
|
|
|-
|<tt>ModifyNewlySpawnedTowers</tt>
|
|
|
|
|-
|<tt>NumPersists</tt>
|How many towers will be affected. If ApplyToUserTower is on, a "pierce" will be used on itself.
|Number
|{{n}}
|Defaults to <tt>-1</tt>
|-
|<tt>PriorityLevel</tt>
|
|Number
|
|
|-
|<tt>Range</tt>
|Range of the modifier.
|Number
|
|
|-
|<tt>ReplacesPriorityLevel</tt>
|
|
|
|
|-
|<tt>RequiresEmptyPriorityLevel</tt>
|If true, the modifier's priority level must be empty for it to work, else, it can stack with other modifiers of that priority level
|Boolean
|
|
|-
|<tt>RoundDuration</tt>
|
|
|
|
|-
|<tt>Stackable</tt>
|
|
|
|
|-
|<tt>TargetIsWeaponTaskOrigin</tt>
|
|
|
|
|-
|<tt>TargetingFilter</tt>
|What the modifier targets.
|Array of objects
|Array of objects
|
|
|
|
|-
|-
|<code>Duration</code>
|<tt>TaskPersistsWithDuration</tt>
|How long the modifier is active for.
|
|
|
|
|-
|<tt>Tasks</tt>
|
|
|
|
|-
|<tt>TerminateOnUserTargetChange</tt>
|
|
|
|
|-
|<tt>TerminateOnUserUpgrade</tt>
|
|Boolean
|
|
|-
|<tt>WeaponSlotIndex</tt>
|The slot index of the weapon the modifier is applied to.
|Number
|
|
|}
 
===TransferGame===
 
===TrapBloon===
 
===UITowerCostMult===
 
===WeaponBurstFire===
 
==Movement ==
<tt>Movement</tt> is a property shared by Projectiles, Collectables, and TextEffects. The <tt>Type</tt> determines how it moves and what sub-properties are allowed.
 
===Forward===
Moves forwards in a straight line.
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Speed</tt>
|How fast the object moves.
|Number
|{{n}}
|Weapon effectively stops moving
|-
|<tt>CutOffDistance</tt>
|The distance at which the object expires.
|Number
|{{n}}
|Defaults to <tt>-1</tt>
|-
|<tt>SpeedDecay</tt>
|
|Number
|{{n}}
|
|}
 
===GoToTarget===
Moves forwards in a straight line. Each time the object collides with something, it selects a new target and rotates to face it. If it cannot select a target after colliding, it continues moving in the same direction.
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Speed</tt>
|How fast the object moves.
|Number
|{{n}}
|Weapon effectively stops moving
|-
|<tt>CutOffDistance</tt>
|The distance at which the object expires.
|Number
|{{n}}
|Defaults to <tt>-1</tt>
|-
|<tt>NextTargetRange</tt>
|The radius at which the object can target.
|Number
|
|
|-
|<tt>DestroyWhenNoTarget</tt>
|If <tt>true</tt>, the object terminates itself if there are no targets in its range.
|Boolean
|
|
|}
 
===MotionCurve===
Follows a path defined by a set of [[wp:Bézier curve|cubic Bézier curve(s)]]. (An easy way to visualize it is with [https://www.desmos.com/calculator/fblkj0psxe this calculator].)
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Speed</tt>
|How fast the object moves.
|Number
|{{n}}
|Weapon effectively stops moving
|-
|<tt>CutOffDistance</tt>
|The distance at which the object expires.
|Number
|{{n}}
|Defaults to <tt>-1</tt>
|-
|<tt>Curves</tt>
|The control points of the Bézier curve. The first number of each sub-array is the X-position, and the second number is the Y-position.
|Array of array of numbers
|{{y}}
|
|-
|<tt>AngleOffset</tt>
|
|Number
|
|
|-
|<tt>TerminateAtEndOfCurve</tt>
|If <tt>true</tt>, the object expires when it reaches the end of the path.
|Boolean
|
|
|}
 
===MoveToTouch===
 
===ReturnToSender===
The object moves to its target, then returns to the location it was fired from.
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Speed</tt>
|Determines the object's speed when moving towards the target.
|Number
|
|
|-
|<tt>ReturnSpeed</tt>
|Determines the object's speed when returning to its sender.
|Number
|
|
|-
|<tt>TargetShouldFaceWeapon</tt>
|
|Boolean
|
|
|-
|<tt>StartOnTarget</tt>
|If <tt>true</tt>, the object starts at the target and returns to the sender, skipping the phase of traveling to the target first. <tt>Speed</tt> is ignored.
|Boolean
|{{n}}
|Defaults to <tt>false</tt>
|}
 
===RotateAroundTower===
 
===Target===
The object constantly rotates towards the target.
{| class="wikitable sortable"
!Key
!Description
!Type
!Required?
!Behavior when absent
|-
|<tt>Speed</tt>
|How fast the object moves.
|Number
|{{n}}
|Weapon effectively stops moving
|-
|<tt>CutOffDistance</tt>
|The distance at which the object expires.
|Number
|{{n}}
|Defaults to <tt>-1</tt>
|-
|<tt>SeekAngle</tt>
|The angle at which the object can target from.
|Number
|
|
|-
|<tt>TurnSpeed</tt>
|How quickly the object can rotate towards its target, in degrees per second.
|Number
|
|
|-
|<tt>TargetRange</tt>
|The radius at which the object can target.
|Number
|Number
|No
|
|Deafults to <code>-1</code>
|
|-
|<tt>ActivateCutOffFromSpotter</tt>
|
|Boolean
|
|
|}
|}
<!--==Navigation==
{{technical nav}}
[[Category:BTD5 (mobile) technical information]][[Category:Battles (multiplatform) technical information]][[Category:BMC (multiplatform) technical information]]-->

Latest revision as of 02:25, 10 June 2026

Base weapon properties

[edit | edit source]
Key Description Type Required? Behavior when absent
AllowFiringOnlyOnRoundStart If true, then each round, this weapon's RemainingAmmo is refilled to its TotalAmmo if this weapon is using the ammo system, and its CooldownTime is set to the current round's length, in seconds, divided by this weapon's TotalAmmo, ignoring the CooldownTime value defined within the weapon file. In Sandbox mode, or if this weapon isn't using the ammo system, CooldownTime is set to 0. Boolean No Defaults to false
AnimatesTower Exclusive to Bloons TD Battles.
CanFireWithNoTargetsAndRoundInProgress If true, during rounds, this weapon will fire without requiring a valid target. Boolean No Defaults to false
CanSelfTargetCamo If true, this weapon can target and hit Camo bloons, even if the tower itself lacks Camo detection. Boolean No Defaults to false
CanSpotFromOtherTowers If true, this weapon can target and hit bloons within other towers' range circles, including any Camo bloons within the range circles of towers that can detect Camo, but excluding towers who have CanSpotForTowers set to false. Boolean No Defaults to false
CanTargetUnderground If true, this weapon can target and hit bloons inside of path segments flagged as tunnels, as if they were not in a tunnel. Boolean No Defaults to false
CooldownTime An amount of time in seconds, minimum of 1 frame. Determines the attack cooldown for attacks, during which the weapon will remain idle even if a target is in range. Determines the ability cooldown for Activated Abilities. Number Yes Weapon functionally stops existing
CooldownTimeMultiplier No Defaults to 1
CostToFire In Bloons Monkey City, determines the cash cost of using an Activated Ability. The Premium Tower Order and Boss Ability buttons are hardcoded to treat this as a Bloonstone cost rather than a cash cost.

Also a valid weapon property in Bloons TD 5, but with no apparent functionality. Inherited from Bloons Monkey City in the Boss Bloon update, seemingly without its functionality to set a cash price to a weapon, and no special buttons were implemented to enable spending Monkey Money or Tokens on select abilities.

Number No Defaults to 0
DisabledOnTargetModes The weapon disables itself if the tower's targeting mode is set to any of the targeting modes in this array (i.e. Submerge and Support behavior). Array of strings No Weapon does not disable based on target mode.
DisableSlotWhenOutOfAmmo If true, this weapon disables itself when its RemainingAmmo is at 0. It does not re-enable itself. Boolean No Defaults to false
DrawWhenOutOfAmmo If true, this weapon will remain visible when its RemainingAmmo is at 0, otherwise it will stop being visible when RemainingAmmo is 0, becoming visible again when RemainingAmmo is not zero. Boolean No Defaults to true
FireDelayTime An amount of time in seconds, minimum of 1 frame. Determines the delay between a weapon firing and its tasks executing, during which the weapon will continually update its target. This plus a weapon's CooldownTime determines its attack speed, as CooldownTime will not count down until the FireDelayTime has run out. Activated Abilities will resume counting down their CooldownTime even if the FireDelayTime has not yet expired. Number Yes Weapon functionally stops existing
FireDelayTimeMultiplier No Defaults to 1
FiresOnRoundEnd Boolean No
ForceTargetWeaponOrigin If true, then it forces the weapon to spawn from the target regardless of if TargetIsWeaponOrigin is on for the tower. Boolean No Defaults to false
ForwardFiring No
InterestMultiplier Number No
ManuallyFired If true, this weapon is treated as an Activated Ability. Boolean No Defaults to false
MaxMoney Number No
MaxShots Number No
NumberOfRoundsBetweenShots Number No
ReloadOnRoundStart Exclusive to Bloons TD Battles.
RemainingAmmo Number No Defaults to 0
RequiresTargetToFire If true, this weapon can only fire if it has a valid target. Boolean No Defaults to true
SelfTargetMode Locks this weapon to the defined targeting priority, ignoring the targeting priority of its tower. String No The weapon uses its tower's targeting priority.
ShowRange If false, this weapon will not draw a range circle. CanSpotFromOtherTowers-enabled weapons possessed by other towers will not be able to target bloons using this weapon's range. Otherwise, this is just visual.

Activated Abilities are unaffected by this property.

Boolean No Defaults to true
SpreadCooldownOverRound Exclusive to Bloons TD Battles.
StartsOnCooldown Boolean No
TargetingArc No
TargetingFilter No
TargetRange Number No
TargetsIndependently Boolean No
Tasks A list of tasks the weapon executes each time it fires. Array of objects Yes Weapon functionally stops existing
TotalAmmo Number No Defaults to 0
Type String Yes
UseBloonStore Boolean No Defaults to false

Tasks

[edit | edit source]

A Task is a process that executes when a weapon fires. An array of tasks is executed in its array order, lowest index first. Some tasks, such as Projectile, AreaOfEffect, and Effect tasks, can also have tasks, which are referred to as "sub-tasks" and execute under different conditions. The Type of a task determines what the task is and what parameters it allows.

AddCashMult

[edit | edit source]

AddChildSprite

[edit | edit source]

ApplyBloonSpawnModifier

[edit | edit source]

AreaOfEffect

[edit | edit source]
Key Description Type Required? Behavior when absent
CanHitLead Determines if an AoE can hit Lead bloons or not. Boolean No Defaults to true
DisabledTasks Array of numbers
Duration Number
MaxTargets The pierce of the area of effect. One pierce is consumed per collision. Number Yes
Range The radius of the area of effect. Number Yes
Sort
Tasks A list of tasks the area of effect executes on each Bloon it hits. Array of objects
UseRangeModifier If true, the range scales with range modifiers. Exclusive to Bloons TD Battles. Boolean No

BloonAdjustment

[edit | edit source]

BloonSpawnedEvent

[edit | edit source]

Executes its tasks on each Bloon that spawns.

Key Description Type Required? Behavior when absent
Duration How long the event lasts for. Number
Tasks Array of objects

BoostReducer

[edit | edit source]

ChainTasks

[edit | edit source]
Key Description Type Required? Behavior when absent
CutOffDistance
NumJumps How times a branch of lightning will bounce. Number
NumPersists Number
Tasks

ChangeSubtaskEnabled

[edit | edit source]
Key Description Type Required? Behavior when absent
ToDisable Array of numbers
ToEnable Array of numbers

ChangeTerrain

[edit | edit source]
Key Description Type Required? Behavior when absent
Area Defines the area as a rectangle. The first number determines the width, the second number determines the height. Array of numbers
Mask Determines the kind(s) of terrain this area is treated as. If empty, this is treated as land (i.e. Pontoon behavior).
  • "Water"
  • "BlockTower" (unused)
  • "PathTower" (unused)
Array of strings
Radius Defines the area as a circle. The value determines the radius. Number

Collectable

[edit | edit source]
Key Description Type Required? Behavior when absent
AutoCollect
Bank Boolean
BonusMultiplierForManualCollection Number No
ClickOnly
CollectionRadius The radius in which the collectable can be collected from. Number
Duration How long the collectable lasts for. Number
GivesCashWhenExpired
GraphicName
LimitHealth
LivesMultiplier The multiplier for how many lives are given, the total lives given is Lives Range×LivesMultiplier. Number
LivesRange The minimum and maximum number of lives the collectable at base gives. Array of numbers
LoopAnimation
MoneyMultiplier The multiplier for how much cash is given, the total cash given is Money Range×MoneyMultiplier. Number
MoneyRange The minimum and maximum number of cash the collectable at base gives. Array of numbers
MoneyRangeIncreasePerRound
Movement The movement of the collectable. Object
SpriteFile
Tasks

CollectCollectables

[edit | edit source]

Automatically collects collectables. Does not collect drops from Golden Bloons.

Key Description Type Required? Behavior when absent
AnimateOnCollection Boolean
CollectionDelay Number
Range Number
Speed Number

CreateAtPathPoint

[edit | edit source]

CreateTower

[edit | edit source]

Creates a tower.

Key Description Type Required? Behavior when absent
TowerType The type of tower that is being created. String Yes Creates an invalid tower
TowerLifetime How long the created tower lasts. Number No The created tower lasts infinitely
TowerColour Applies a RGBA multiply colour on top of the created tower. First number controls the red channel, second controls the green channel, third controls the blue channel, the fourth is suppose to control the alpha channel but it doesn't work. Array of Numbers No Defaults to [ 255, 255, 255, 255 ]
HasParentTower Determines if the created tower also gets destroyed if its "parent" tower get sold. Boolean No Defaults to false
UseParentTowerUpgradeLevel Determines whether the created tower should copy the upgrade layout from the 'parent' tower that created it. Boolean No Defaults to false

Damage

[edit | edit source]

Deals damage to Bloons. For weapons, this deals damage to its target directly (i.e. Sniper Monkey behavior). For tasks that collide with Bloons (projectiles, areas of effect, etc), this deals damage on collision.

Key Description Type Required? Behavior when absent
Amount The amount of damage dealt. (If this weapon/projectile's task list does not have a MultiLayerDamage status below it, the damage will not pass through layers.) Number
BlimpModifier Exclusive to Bloons Monkey City. Number No Defaults to 1
BossDamageMod Excluded from Bloons TD Battles. Number No Defaults to 1
CeramicModifier Exclusive to Bloons Monkey City. Number No Defaults to 1
DamageType Bloons with a matching string in their DamageImmunity property will not take damage. Some damage types have hardcoded properties.
  • "Piercing": The projectile that dealt this damage plays a sound and terminates when it hits a Lead or frozen bloon.
  • "Fire": The projectile that dealt this damage plays a sound and terminates when it hits a Lead bloon.
  • "Explosive"
  • "Plasma"
  • "Ice"
  • "Juggernaut"
  • "MOABMauler"
  • "Foam"
  • "IceViral": Exclusive to Bloons TD Battles.
String
InformDamageFromParentTask No

DamageSpread

[edit | edit source]
Key Description Type Required? Behavior when absent
Amount Number
BlimpModifier Exclusive to Bloons Monkey City. Number No Defaults to 1
BossDamageMod Excluded from Bloons TD Battles. Number No Defaults to 1
CeramicModifier Exclusive to Bloons Monkey City. Number No Defaults to 1
DamageType String
MaxTargets Number
Range Number

DisableUIFeature

[edit | edit source]

Effect

[edit | edit source]
Key Description Type Required? Behavior when absent
AppliedToTower
ApplyLinearDodge
ApplyToTarget
Audio
DrawLayer
Duration
FlipLeft
FlipRight
FollowTarget
IgnoreAircraft
LinkScaleWithAreaOfEffectRange
LoopCount
LoopForever
PlaySpeed
Position
PositionLeft
PositionRight
RoundDuration
Scale
SpriteFile
Tasks
TerminateWithParent
UseDirection
UseDuration

EnableWeaponSlot

[edit | edit source]
Key Description Type Required? Behavior when absent
Slot Number
Enable Whether to enable/disable slot String No Defaults to true

FireOverTime

[edit | edit source]

FireTaskAtLocation

[edit | edit source]

Unused. Properties are unknown, and the task existing in a weapon file causes the game to crash on the title screen as if an essential task property were missing from it, confirming that the task is valid in some form.

ForceSellTower

[edit | edit source]

GiveCashForLeaks

[edit | edit source]

GrantCashPerPop

[edit | edit source]

Causes all Bloons to generate cash per layer popped for a limited time. This is exclusive to Bloons TD Battles and is only used by Rubber to Gold and Bounty.

Key Description Type Required? Behavior when absent
Amount The amount of cash generated per pop. Has a hardcoded cap of $50,000 per activation. Number
Duration The duration, in seconds. Number

Harpoon

[edit | edit source]

IncomeChange

[edit | edit source]

IncomeOverTime

[edit | edit source]

IncomeTax

[edit | edit source]

LaunchAircraft

[edit | edit source]
Key Description Type Required? Behavior when absent
Aircraft The aircraft that will be launched. String
MaxAircraft How many will be launched. Number No Defaults to 1
Path
Path
PathIndex The Flight Path the aircraft will use.
  • 0 = Figure 8
  • 1 = Figure ∞
  • 2 = Circle
Number
PathOrigin Defines the location of the origin of the path the aircraft will fly in. The first number controls the X coordinate, the second number controls the Y coordinate. Array of numbers No
UseTargetPath

MoneyChange

[edit | edit source]

MultiFire

[edit | edit source]

Used to shoot more than 1 projectile. All angles are in degrees.

Key Description Type Required? Behavior when absent
AcquireTarget
AimAtTarget If true, then the angles of the projectiles are offset by the angle of the shot. Boolean
AimOffsetsAtTarget Unused; only appears in the unused RoboMonkey.weapon file (RoboMonkeyLeft.weapon and RoboMonkeyRight.weapon are used instead). If true, the projectiles are angled towards the target. Boolean No Defaults to false
AngleIncrement The change in angle from the first projectile for all subsequent projectiles. Number
DisabledTasks
FireCount The number of times each subtask executes when this executes. If set to 0, this task does not execute any subtasks. Number
InitialOffset The angle of the "first" projectile. Number
MarkIDForProjectiles If true, Bloons hit by the MultiFire's parent task cannot be hit by the MultiFire's subtasks. (This is used by Frag Bombs to make it so Bloons hit by the initial bomb (not the explosion) can't also be hit by the frags.) Boolean No
Offsets The positional offsets of each projectile. Array of objects No
Radius
ShotDelay
Tasks A list of tasks to execute when this task executes. Array of objects

OverclockTask

[edit | edit source]
Key Description Type Required? Behavior when absent
Tasks Array of objects

ParticleEffect

[edit | edit source]

PlayerDamage

[edit | edit source]

Projectile

[edit | edit source]
Key Description Type Required? Behavior when absent
CollidesOnlyWithTarget If true, this projectile will pass through any Bloons that are not the target. Boolean No Defaults to false
CollisionType Determines how the projectile handles collision with Bloons.
  • "Once": can only collide with the same Bloon or its children once.
  • "Continual": can collide with any Bloon once per frame, even ones it has already hit.
  • "None": cannot collide with Bloons.
String
DisabledTasks Array of numbers No
DrawLayer Number No
ForcePersists If true, the projectile's pierce is unaffected by pierce modifiers. Boolean No Defaults to false
GraphicName String
GraphicsAtPierceLevels No
HasFixedAngle Boolean No Defaults to false
HasLimitedDuration Boolean No
HasRandomOrientation Boolean No
IgnoreStatusEffect No
LimitedDuration No
LoopAnimation No
LoopForever No
Movement The movement of the projectile. Object
NumPersists The pierce of the projectile. One pierce is consumed per collision. Number
OnlyCollidePastCutOff Boolean No
Radius Number No Uses the sprite's bounding box as a collision box
RemoveAfterRoundStart No
RemoveOnRoundEnd Boolean No
SpinRate No
SpriteFile String
StopAtEndOfCurves No
Tasks A list of tasks. TasksToProcessOnCollision and TasksToProcessOnTerminate determine which tasks execute on collision and which tasks execute when the projectile expires. Array of objects
TasksToProcessOnCollision
TasksToProcessOnTerminate
TerminateOnTowerRemoved If true, the projectile expires when the tower that fired it is destroyed. Boolean
TerminateOnZeroPersists If true, the projectile expires when all pierce is consumed. Boolean
TerminatePastCutoff

RandomFire

[edit | edit source]

Targets a random point within a specified radius.

Key Description Type Required? Behavior when absent
FireFullRange If true, this can only target points at the full extent of the range. Ignored if OnlyTargetPathLocations is set to true. Boolean
FollowTarget Boolean
HasRandomOrientation Boolean No
MinimumRange The minimum targeting radius. Number No
OnlyTargetPathLocations If true, this can only target points on a path within range (i.e. Spike Factory behavior). Boolean No Defaults to false
OnlyTargetPlacementLocations Boolean No Defaults to false
PlacementTowerType String No
Range The maximum targeting radius. Number
TargetIsWeaponTaskOrigin Boolean
Tasks A list of tasks to execute when this task executes. Array of objects
TerminateOnZeroPersists
UseRangeModifier If true, the targeting range scales with range modifiers. Exclusive to Bloons TD Battles. Boolean No Defaults to false
WaitTimeRange Array of numbers No

RayIntersect

[edit | edit source]

Creates a beam that collides with every Bloon that touches the sprite's bounding box on each frame.

Key Description Type Required? Behavior when absent
Tasks A list of tasks the ray executes on each Bloon it touches. Array of objects

RBEProjectile

[edit | edit source]
Key Description Type Required? Behavior when absent
CollisionType Determines how the projectile handles collision with Bloons.
  • "Once": can only collide with the same Bloon or its children once.
  • "Continual": can collide with any Bloon once per frame, even ones it has already hit.
  • "None": cannot collide with Bloons.
String
GraphicName String
MaxRBE Number
SpriteFile String
HasRandomOrientation Boolean No
NumPersists Number
RemoveOnRoundEnd Boolean No
Tasks A list of tasks. TasksToProcessOnCollision and TasksToProcessOnTerminate determine which tasks execute on collision and which tasks execute when the projectile expires. Array of objects
TasksToProcessOnCollision
TasksToProcessOnTerminate
TerminateOnZeroPersists If true, the projectile expires when all pierce is consumed. Boolean

RemoveStatusEffect

[edit | edit source]
Key Description Type Required? Behavior when absent
Status

RestoreAmmo

[edit | edit source]

Adds ammo to the weapon.

Key Description Type Required? Behavior when absent
Amount The amount of ammo to restore to the weapon. Number
Proxied If true, also restore ammo to the weapon that spawned this aircraft. Boolean No Defaults to false
RoundRobin 🎠 wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee idfk but it make da glaive lord work Number
SlotIndex The slot index of the weapon that ammo is being restored to. Number No

Sacrifice

[edit | edit source]
Key Description Type Required? Behavior when absent
SpriteFile
Tasks

ScreenWipe

[edit | edit source]

Exclusive to Bloons TD Battles.

Key Description Type Required? Behavior when absent
Count Number
Duration Number
SpeedMultiplierRange Array of numbers
Tasks Array of objects

StatusEffect

[edit | edit source]

Applies a modifier to the target Bloon. This task supports a lot of properties, but most are only used by certain types of statuses and are ignored by others. Some statuses cannot be inflicted by tasks, only by hardcoded game mechanics, but they can still be used for filters, and can still be removed with RemoveStatusEffect, and Bloons can be made immune to them.

This table lists properties that are common to all statuses.

Key Description Type Required? Behavior when absent
Status The type of status. This can also be set to an empty string, in which case it will do nothing until a TaskUpgrade changes it. String
TargetingFilter Object
FireMode A list of flags specifying something idk
  • "FireNormal" (unused)
  • "FireOnApply"
  • "FireOnCommand" (unused)
  • "FireOnLastPop" (unused)
  • "FireOnPop" (unused)
  • "FireOnRemove" (unused)
  • "RemoveOnLastApply"
Array of strings No

TargetAlLBloonsInRange

[edit | edit source]

Exclusive to Bloons TD Battles. (No, that is not a typo, it has to be capitalized that way for it to work properly.)

TextEffect

[edit | edit source]

TimerFire

[edit | edit source]

Executes its subtasks after a delay.

Key Description Type Required? Behavior when absent
CompoundSprite String
InitialTime The initial timer to delay the first execution of a looping TimerFire. Number No
Loops Determines if a TimerFire will loop. Boolean No Defaults to false
NumLoops Used in conjunction with the former, how many times will it loop. If Loops is not present or false, it won't loop. Number No Doesn't loop
SpriteList Array of strings
Tasks A list of tasks to execute when the time is up. Array of objects
TimeDelay The delay, in seconds. Number

TowerModifier

[edit | edit source]
Key Description Type Required? Behavior when absent
ApplyToUserTower
CanApplyToUserTower
Duration How long the modifier is active for. Number No Defaults to -1
Modifier The modifier applied. Each modifier can either be additive or multiplicative.
Cost The price of the tower/upgrades.
TargetRange The range of the tower.
Cooldown The cooldown time of the tower, does not affect activated abilities.
FireDelay The fire delay time of the tower.
CashPerPop The amount of money given per pop by the tower.
AbilityCooldown The cooldown of the activated ability.
PoppingPower The pierce of the tower. Affects both Projectile and AreaOfEffect tasks.
CanPopCamo The ability of the tower to pop camo bloons. (Boolean)
CanPopAllBloons The ability of the tower's damage type to ignore bloon immunities. (Boolean)
Damage The amount of damage the tower does.
Object
ModifyMovingTowers
ModifyNewlySpawnedTowers
NumPersists How many towers will be affected. If ApplyToUserTower is on, a "pierce" will be used on itself. Number No Defaults to -1
PriorityLevel Number
Range Range of the modifier. Number
ReplacesPriorityLevel
RequiresEmptyPriorityLevel If true, the modifier's priority level must be empty for it to work, else, it can stack with other modifiers of that priority level Boolean
RoundDuration
Stackable
TargetIsWeaponTaskOrigin
TargetingFilter What the modifier targets. Array of objects
TaskPersistsWithDuration
Tasks
TerminateOnUserTargetChange
TerminateOnUserUpgrade Boolean
WeaponSlotIndex The slot index of the weapon the modifier is applied to. Number

TransferGame

[edit | edit source]

TrapBloon

[edit | edit source]

UITowerCostMult

[edit | edit source]

WeaponBurstFire

[edit | edit source]

Movement

[edit | edit source]

Movement is a property shared by Projectiles, Collectables, and TextEffects. The Type determines how it moves and what sub-properties are allowed.

Forward

[edit | edit source]

Moves forwards in a straight line.

Key Description Type Required? Behavior when absent
Speed How fast the object moves. Number No Weapon effectively stops moving
CutOffDistance The distance at which the object expires. Number No Defaults to -1
SpeedDecay Number No

GoToTarget

[edit | edit source]

Moves forwards in a straight line. Each time the object collides with something, it selects a new target and rotates to face it. If it cannot select a target after colliding, it continues moving in the same direction.

Key Description Type Required? Behavior when absent
Speed How fast the object moves. Number No Weapon effectively stops moving
CutOffDistance The distance at which the object expires. Number No Defaults to -1
NextTargetRange The radius at which the object can target. Number
DestroyWhenNoTarget If true, the object terminates itself if there are no targets in its range. Boolean

MotionCurve

[edit | edit source]

Follows a path defined by a set of cubic Bézier curve(s). (An easy way to visualize it is with this calculator.)

Key Description Type Required? Behavior when absent
Speed How fast the object moves. Number No Weapon effectively stops moving
CutOffDistance The distance at which the object expires. Number No Defaults to -1
Curves The control points of the Bézier curve. The first number of each sub-array is the X-position, and the second number is the Y-position. Array of array of numbers Yes
AngleOffset Number
TerminateAtEndOfCurve If true, the object expires when it reaches the end of the path. Boolean

MoveToTouch

[edit | edit source]

ReturnToSender

[edit | edit source]

The object moves to its target, then returns to the location it was fired from.

Key Description Type Required? Behavior when absent
Speed Determines the object's speed when moving towards the target. Number
ReturnSpeed Determines the object's speed when returning to its sender. Number
TargetShouldFaceWeapon Boolean
StartOnTarget If true, the object starts at the target and returns to the sender, skipping the phase of traveling to the target first. Speed is ignored. Boolean No Defaults to false

RotateAroundTower

[edit | edit source]

Target

[edit | edit source]

The object constantly rotates towards the target.

Key Description Type Required? Behavior when absent
Speed How fast the object moves. Number No Weapon effectively stops moving
CutOffDistance The distance at which the object expires. Number No Defaults to -1
SeekAngle The angle at which the object can target from. Number
TurnSpeed How quickly the object can rotate towards its target, in degrees per second. Number
TargetRange The radius at which the object can target. Number
ActivateCutOffFromSpotter Boolean