BloonsTD6 is now supported by Thunderstore and its mod manager.
When you download BTD6 Mod Helper from Thunderstore, it is a "Lite" build without the in game Mod Browser and functionality for enabling / disabling mods, as Thunderstore's Mod Manager takes care of that. Mod Settings management and all other features are still fully present.
BTD6 modding with Thunderstore is very straightforward.
r2modman-Setup-x.x.x.exe if you want an Installer or r2modman-x.x.x.exe if you don'tThunderstore packages are controlled by a thunderstore.toml file at the top level of your mod project. Recent mods created from the official mod template / Create Mod button will start out with one of these, otherwise you can see below for an example
thunderstore.toml[package]
name = "TemplateMod" # The Thunderstore package name. This should usually match your mod name (no spaces).
namespace = "" # The Thunderstore team that owns the package. Create this team on Thunderstore first.
description = "" # Short description shown on Thunderstore package listings. Max 256 characters
websiteUrl = "" # Optional project URL shown on Thunderstore. Your GitHub repository is a good default.
# Thunderstore package dependencies use the format Namespace-PackageName = "version".
# Versions listed are minimums, not exact requirements, so it's ok if you don't change these frequenty
[package.dependencies]
LavaGang-MelonLoader = "0.7.3"
doombubbles-Btd6ModHelper = "3.6.5"
[build]
icon = "./Icon.png"
readme = "./README.md"
outdir = "bin"
[[build.copy]] # Make sure this matches your mod's dll name
source = "./bin/Release/TemplateMod.dll"
target = "TemplateMod.dll"
[[build.copy]]
source = "./CHANGELOG.md"
target = "./CHANGELOG.md"
[[build.copy]]
source = "./LICENSE"
target = "./LICENSE"
[publish]
repository = "https://thunderstore.io"
communities = ["bloons-td-6"]
categories = ["mods"]
Note that this example does not include a version property, as that is intended to be set by the GitHub actions workflow.
Before GitHub Actions can publish for you, you must
namespace in thunderstore.toml.Settings > Secrets and variables > Actions and add a repository secret named TCLI_AUTH_TOKEN with the Thunderstore API token as its value.
gh secret set TCLI_AUTH_TOKEN --body "THE_TOKEN_CONTENT_HERE"Mod Helper's source generator keeps .github/workflows/build.yml in sync with your project.
When a thunderstore.toml file exists in your project, the workflow will include Thunderstore packaging and publishing steps.
This also includes ensuring your Icon is the right size and pre-processing your README for Thunderstore.
On release builds, the workflow will:
tcli, the Thunderstore CLI.sharp to resize your icon to Thunderstore's required 256x256 size.README.md for Thunderstore by removing sections wrapped in THUNDERSTORE EXCLUDE START / THUNDERSTORE EXCLUDE END..dll files.tcli build --package-version <release tag>.tcli publish using the TCLI_AUTH_TOKEN secret.The GitHub actions workflow will run when you push a Git tag or simply when you run it manually from the Actions tab of your repository.
The release tag is also used as the Thunderstore package version, so keep it aligned with your ModHelperData.Version and changelog.
If you want specific text in your README to appear only on GitHub and not on Thunderstore, wrap it like this:
<!-- THUNDERSTORE EXCLUDE START -->
GitHub-only content here.
<!-- THUNDERSTORE EXCLUDE END -->