PathsPlusPlus

v1.2.3·Updated 2026-07-01

A helper mod allowing additional upgrade paths and tiers to be made for towers.

Screenshots 3 screenshots

About this mod Author’s original text

Paths++

A helper mod allowing additional upgrade paths to be made for towers.

Toggle "Balanced Mode" to switch from being still only able to get up to 5 upgrades in any one path and 2 in another, vs getting all vanilla upgrades you normally can as well as any/all available Paths++ upgrades.

Toggling off Balanced Mode can also function well with Ultimate Crosspathing, allowing you to get 5/5/5/5... towers (assuming the Mod Creators were keeping it in mind while coding).

Example Mods

doombubbles' Tornado Wizards

doombubbles' Mirror Universe Paths

For Modders: Creating your own Path++ mod

Reference Paths++ in your mod

Add Paths++ as a dependency for your mod within your csproj, which can be done by adding this to your main PropertyGroup:

PathsPlusPlus

Doing this will make sure the PathsPlusPlus dll is referenced properly by your csproj from your Mods folder.

Full.csproj example

net6.0

MirrorUniversePaths

Debug;Release

enable

MirrorUniversePaths

preview

False

embedded

PathsPlusPlus

You should also list Paths++ as a dependency in your ModHelperData, that will look something like this

public static class ModHelperData

{

/... /

public const string Dependencies = "doombubbles/PathsPlusPlus";

}

Doing this will also make your GitHub actions workflow download Paths++ automatically when building.

Old Instructions

The easiest way to reference the PathsPlusPlus dll is to put the following within your.csproj file (BELOW where you import btd6.targets)

$(BloonsTD6)\Mods\PathsPlusPlus.dll

Full.csproj example

net6.0

FourthPath

Debug;Release

enable

FourthPath

latest

false

embedded

$(BloonsTD6)\Mods\PathsPlusPlus.dll

GitHub Actions

To download PathsPlusPlus within GitHub actions, add the following step:

  • name: Download PathsPlusPlus

uses: dawidd6/action-download-artifact@v6

with:

github_token: ${{ secrets.GITHUB_TOKEN }}

workflow: build.yml

branch: main

name: PathsPlusPlus.dll

repo: doombubbles/paths-plus-plus

path: ${{ env.BLOONSTD6 }}/Mods/

Create your PathPlusPlus

Each Path++ path begins with creating a very simple class just to register your path.

All it needs to specify is which tower the path is for. UpgradeCount is set automatically based on how many upgrade classes you add.

public class DartMonkeyFourthPath: PathPlusPlus

{

public override string Tower => TowerType.DartMonkey;

}

Similarly to ModTowers from Mod Helper, your UpgradeCount should reflect how many upgrades you've actually made so far.

Extending a Vanilla Path

If you instead want to add additional upgrades to a vanilla path, create your PathPlusPlus with an override for the ExtendVanillaPath property like so.

public class DartMonkeyTopPath: PathPlusPlus

{

public override string Tower => TowerType.DartMonkey;

public override int ExtendVanillaPath => Top;

}

Create your UpgradePlusPlus(s)

For each upgrade you want in your path, you will define an UpgradePlusPlus where the generic parameter ` will be your PathPlusPlus` class above.

public class BetterDarts: UpgradePlusPlus

{

public override int Cost => 50;

public override int Tier => 1;

public override string Icon => VanillaSprites.ArmorPiercingDartsUpgradeIcon;

public override string Description => "Darts can pop Frozen bloons";

public override void ApplyUpgrade(TowerModel towerModel)

{

foreach (var damageModel in towerModel.GetDescendants().ToArray())

{

damageModel.immuneBloonProperties &= ~BloonProperties.Frozen;

}

if (IsHighestUpgrade(towerModel))

{

// apply a custom display, if you want

}

}

}

There are many familiar properties shared from ModUpgrade that all function basically the same, i.e. Cost, Tier, Icon, Description, DisplayName and ApplyUpgrade.

If you do not specify a Portrait, it will try to find an image from your mod with name {Path.Name}{Tier}.png such as DartMonkeyFourthPath1.png, otherwise the default tower portrait will be used.

If your upgrade adds an ability to the tower, override the Ability property to be true so it show

Install & use Install: follow the bundled instructions

  1. Unzip the archive from playbuff and read the bundled readme / instructions first.
  2. Most mods rely on the game's mod loader — the usual route is a community mod manager (such as r2modman): pick this game, install, and it handles the loader and dependencies.
  3. For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
  4. Launch the game to confirm it loaded; mods with listed dependencies need those installed as well.

Install locations vary a lot between mods — the bundled readme is the most reliable guide.

Dependencies

Install these first, or the mod will not work:

LavaGang-MelonLoaderdoombubbles-Btd6ModHelper

File & checksum

Filename
PathsPlusPlus-1.2.3.zip
File size
475.8 KiB