Skip to Main Content

README


BloonsTD6 Mod Helper

BloonsTD6 Mod Helper Assembly

Namespaces

BTD_Mod_Helper Namespace

Classes
BloonsModExpanded version of MelonMod to suit the needs of BTD Mod Helper
BloonsTD6ModExtend this Class instead of MelonMod to gain access to dozens of easy to use built-in hooks
ModHelperCatch-all class for non-extension static methods

BTD_Mod_Helper.Api Namespace

Classes
AnimationsClass to statically store RuntimeAnimationControllers for different animations
FontsClass to statically store TMP_FontAsset for different fonts
ModByteLoaderA class that can be generated by your mod in order to statically load a big complex Model object in your mod, like
Ninja Kiwi does with the whole GameModel
ModByteLoader<T>A class that can be generated by your mod in order to statically load a big complex Model object in your mod, like
Ninja Kiwi does with the whole GameModel
ModContentModContent serves two major purposes:


1. It is a base class for things that needs to be loaded via reflection from mods and given Ids,
such as ModTower and ModUpgrade


2. It is a utility class with methods to access instances of those classes and other resources
ModGameMenuClass for a custom BTD6 menu
ModGameMenu<T>Generic class for creating a ModGameMenu with the given type as it's base menu
ModLoadTaskClass for a Coroutine style task that runs during the BTD6 loading screen
ModMenuDataClass to be passed in to the Open methods of Screens
MoreAccessToolsFurther methods along the lines of Harmony's HarmonyLib.AccessTools
NamedModContentModContent with DisplayName and Description that registers values in the LocalizationManger's textTable
TaskSchedulerClass for scheduling Tasks using MelonCoroutines
Interfaces
IModContentDummy interface to unite ModContent and BloonsTD6Mod

BTD_Mod_Helper.Api.Audio Namespace

Classes
ModJukeboxTrackClass that lets you add custom Jukebox Tracks from embedded audio

BTD_Mod_Helper.Api.Bloons Namespace

Classes
BloonModelUtilsProvides Utility methods for dealing with BloonModels
ModBloonClass for adding in a new Bloon to the game
ModBloon<T>Class for a ModBloon which has a different ModBloon as its base
ModRoundSetClass for a custom RoundSet
ModVanillaBloonAllows you to easily modify the models of a specific vanilla Bloon
ModVanillaBloonsAllows you to easily modify the models of multiple vanilla Bloons

BTD_Mod_Helper.Api.Commands Namespace

Classes
ExportCommandRoot command for exporting information to files
ModCommandDefines a command that can be run from within the Mod Helper developer console
ModCommand<T>Defines a ModCommand that is a subcommand of the specified other command
OpenCommandCommands for opening specific files / folders
OpenFolderCommandOpens specific folders within file explorer
TestCommandRoot command where test related actions are

BTD_Mod_Helper.Api.Components Namespace

Classes
MatchLocalPositionComponent to make this transform continuously match the position of another transform
ModGameMenuTrackerComponent to track that a instance of a GameMenu's gameObject actually is the same ModGameMenu as was opened,
as direct comparison on the Unity Objects does not work reliably
ModHelperButtonModHelperComponent for a background panel
ModHelperCategoryModHelperComponent for a category in the mod settings menu
ModHelperCheckboxModHelperComponent for a Checkbox
ModHelperComponentBase for a helper component for making custom UIs in the same style as Vanilla ones
ModHelperComponentExtExtensions for mod helper components, for using generics and based on restricts for il2cpp objects
ModHelperDropdownModHelperComponent for a
ModHelperImageModHelperComponent for an image element
ModHelperInputFieldModHelperComponent for a text input field
ModHelperOptionModHelperComponent that's the base panel for the visual representation of a ModSetting
ModHelperPanelModHelperComponent for a background panel
ModHelperScrollPanelModHelperComponent for a background panel
ModHelperSliderModHelperComponent for a sliding input
ModHelperTextModHelperComponent for a background panel
ScaleOverrideCustom component to keep the scale of a transform permanently at 0, even if an Animator tries to change it
Structs
InfoStruct used to represent the name, position and size information of a ModHelperComponent
Enums
InfoPresetSpecific common preset setups of Info structs

BTD_Mod_Helper.Api.Coop Namespace

Classes
MessageUtilsUtility functions used for sending messages over the network.

BTD_Mod_Helper.Api.Data Namespace

Classes
ModMultiTextOverrideA bunch of ModTextOverrides that all share the same Active condition and don't require any on the fly determinations of
their text
ModSettingsAnother class outside of the main BloonsTD6Mod class that ModSettings can be defined in. Rules otherwise work the same
way
ModTextOverrideClass for dynamically overriding In-Game text in a way that's compatible with other mods
Interfaces
IModSettingsInterface to signify that BTD_Mod_Helper.Api.ModOptions.ModSettingsHandler.CreateModSettings(BTD_Mod_Helper.Api.Data.IModSettings,BTD_Mod_Helper.BloonsMod) should be called on this type

BTD_Mod_Helper.Api.Display Namespace

Classes
ModBloonCustomDisplayA ModCustomDisplay that will automatically apply to a ModBloon
ModBloonCustomDisplay<T>A ModCustomDisplay that will automatically apply to a ModBloon
ModBloonDisplayA ModDisplay that will automatically apply to a ModBloon
ModBloonDisplay<T>A convenient generic class for applying a ModBloonDisplay to a ModBloon
ModBloonOverlayA special ModDisplay for Bloon Overlays. Handles automatically loading different instances of itself for each BloonOverlayClass
ModBuffIconClass for adding a new buff icon that can be displayed for towers
ModCustomDisplayThe custom version of a ModDisplay that loads in a model from a unity assetbundle
ModDisplayA custom Display that is a copy of an existing Display that can be modified
ModDisplay2DMod Display specifically set up to be a 2d image
ModTowerCustomDisplayA ModCustomDisplay that will automatically apply to a ModTower for specific tiers
ModTowerCustomDisplay<T>A convenient generic class for applying a ModTowerCustomDisplay to a ModTower
ModTowerDisplayA ModDisplay that will automatically apply to a ModTower for specific tiers
ModTowerDisplay<T>A convenient generic class for applying a ModTowerDisplay to a ModTower

BTD_Mod_Helper.Api.Enums Namespace

Classes
RoundSetTypeIn game IDs for the round sets included in BTD6
TowerSetTypeEnum-like class for the different tower set types
Enums
CustomShaderCustom Shaders added by Mod Helper
ScheduleTypeControls how you want to wait the Task Scheduler to wait for your tasks

BTD_Mod_Helper.Api.Helpers Namespace

Classes
AbilityHelperA wrapper around AbilityModels for making them easier to create
ActionHelperClass for converting actions and functions
AttackHelperA wrapper around AttackModels for making them easier to create
CostHelperHelper for scaling costs to difficulties
FileDialogHelperClass to help with the usage of Native File Dialogs
FileIOHelperClass replacing the original functionality of FileIOUtil before BTD6 update 33.0
GameModelExporterClass for handily exporting elements of the GameModel to json files
InstancesProvides quick access to many major BTD6 singleton classes
ListsProvides quick access to many major BTD6 object lists
LocalizationHelperHelps mods more easily support additional localization for their mod texts
MapHelperContains helper methods for working with maps and custom maps.
MatchScaleComponent to make this transform continuously match the scale of another transform
ModelHelperA wrapper class around a Model
ModelHelper<T>A wrapper class around a Model
ModelSerializerHandles serializing and deserializing models in a way that utilizes their actual constructors
ProcessHelperHelper methods for processes
ProjectileHelperA wrapper around ProjectileModels for making them easier to create
QuickEditUtility for allowing the user to quickly edit some input in an external program
TimeHelperProperties and methods for helping change in game time / time related values
WeaponHelperA wrapper around WeaponModels for making them easier to create

BTD_Mod_Helper.Api.Internal Namespace

Classes
ResourceHandlerHandles embedded resources within Mod Helper mods

BTD_Mod_Helper.Api.ModMenu Namespace

Classes
ModHelperHttpHttp client used by the mod helper

BTD_Mod_Helper.Api.ModOptions Namespace

Classes
ModSettingBase class for a ModSetting without the generics
ModSetting<T>Class for keeping track of a variable for a Mod that can be changed in game via the Mod Settings menu
ModSettingBoolModSetting class for a boolean value
ModSettingButtonModSetting for adding a button in the settings that performs a given action, with the setting just tracking
the number of times that the button has been pressed.
ModSettingCategoryCategory of mod settings
ModSettingDoubleModSetting for a decimal value
ModSettingEnum<T>ModSetting for an Enum value
ModSettingFileModSetting for selecting a specific file on the host computer
ModSettingFloatAlias for ModSettingDouble
ModSettingFolderModSetting for selecting a specific folder on the host computer
ModSettingHotkeyModSetting for a customizable Hotkey
ModSettingIntModSetting for int values
ModSettingNumber<T>ModSetting class for a number, implying it can have a min/max value, and be an input or a slider
ModSettingStringModSetting for a string value

BTD_Mod_Helper.Api.Scenarios Namespace

Classes
ModGameModeClass for a custom GameMode that will be added to the modes screen when starting a new match

BTD_Mod_Helper.Api.Towers Namespace

Classes
ModHeroClass for adding a custom Hero to the game. Use alongside ModHeroLevel to give multiple levels.
ModHeroLevelClass representing the UpgradeModel and changes for a particular Level for a ModHero
ModHeroLevel<T>Convenient generic class for specifying the ModHero that this ModHeroLevel is for
ModParagonUpgradeDefines the Paragon Upgrade for a ModTower. Remember to set the ParagonMode property.
ModParagonUpgrade<T>A convenient generic class for specifying the ModTower that this ModParagonUpgrade is for
ModSubTowerHelper class for making a subtower
ModSubTower<T>Helper class for making a subtower for a specific other ModTower
ModTowerClass for adding a custom Tower to the game. Use alongside ModUpgrade to define its upgrades,
and optionally ModTowerDisplay to define custom displays for it.
ModTower<T>A convenient generic class for specifying the ModTowerSet that a ModTower uses
ModTowerHelperClass with helper methods for TowerModels / ModTowers


Mostly used internally
ModTowerSetA custom collection of ModTowers
ModUpgradeA class used to create an Upgrade for a Tower
ModUpgrade<T>A convenient generic class for specifying the ModTower that this ModUpgrade is for
ModVanillaContentClass for changing Vanilla content within the game
ModVanillaContent<T>ModContent Class for modifying a certain set of vanilla towers
ModVanillaParagonDummy ModTower that can be used to make a Paragon for a base tower.
ModVanillaTowerModContent class for modifying all TowerModels for a given Tower
ModVanillaTower<T>Helper class for changing a vanilla tower to be part of a modded tower set
ModVanillaUpgradeModContent class for modifying all TowerModels that have a given upgrade applied to them
Enums
ParagonModeDefines the Paragon behavior for a ModTower

BTD_Mod_Helper.Extensions Namespace

Classes
AbilityModelBehaviorExtExtensions for AbilityModels
AbilityModelExtExtensions for AbilityModels
ActionExtExtension methods for System.Action
AddBehaviorToBloonModelExtExtensions for AddBehaviorToBloonModels
AirUnitModelBehaviorExtBehavior extensions for AirUnitModels
ArrayExtExtensions for arrays
AssemblyExtExtensions for Assemblies
AttackBehaviorExtBehavior extensions for attacks
AttackModelBehaviorExtBehavior Extensions for AttackModel
AttackModelExtExtensions for AttackModels
AudioClipExtensionsExtensions for unity audio clips
BloonBehaviorExtExtensions for getting bloon behaviors
BloonExtExtensions for Bloons
BloonModelBehaviorExtBehavior extensions for BloonModels
BloonModelExtExtensions for BloonModels
BloonsTD6ModExtExtensions for BloonsTD6Mods (for some reason lol)
BloonToSimulationExtExtensions for the BloonToSimulation
ButtonClickedEventExtExtensions for ButtonClickedEvents
ButtonExtExtensions for Buttons
ComponentExtExtensions for Component
DeconstructExtAdding more deconstruct methods to things
DictionaryExtExtensions for normal System Dictionaries
DirectoryInfoExtExtensions for DirectoryInfo
DisplayModelExtExtensions for DisplayModel
DumpNodeExtExtension for dumping textures from UnityDisplayNodes
EmissionModelBehaviorExtExtensions for EmissionModels
EntityBehaviorExtBehavior extensions for Entities
EntityExtExtensions for Entities
FileInfoExtExtensions for FileInfo
FunctionExtExtensions for Functions
GameExtExtensions for Game
GameModelExtExtensions for the GameModel
GameObjectExtExtensions for GameObjects
GrowModelExtExtension methods for Il2CppAssets.Scripts.Models.Bloons.Behaviors.GrowModel.
HarmonyExtExtensions for Harmony stuff
IEnumerableExtExtensions for the normal System IEnumerable class
Il2CppGenericIEnumerableExtensions for Il2cpp Ienumerables
Il2CppGenericIEnumerableExtExtensions for il2cpp ienumerables
Il2CppGenericsExtensions for il2cpp lists
Il2CppGenericsExtExtensions for generic il2cpp lists
Il2CppIEnumeratorExtensions for il2cpp ienumerators
Il2CppIEnumeratorExtExtensions for Il2cpp Ienumerators
Il2CppReferenceArrayExtensions for il2cpp reference arrays
Il2CppReferenceArrayExtExtensions for Il2CppReferenceArrays
Il2CppStringArrayExtExtension methods for Il2CppStringArrays
Il2CppSystemDelegateExxtExtensions for Il2cpp delegates
Il2CppSystemDictionaryExtExtensions for il2cpp dictionaries
Il2CppSystemObjectExtExtensions for Il2cpp objects
ImageExtExtensions for Images
InGameExtExtensions for the InGame class
InputFieldExtExtensions for InputFields
InputFieldOnValueChangedExtension for OnChangeEvent
InputFieldSubmitEventExtensions for InputFieldSubmitEvents
LayoutGroupExtExtensions for LayoutGroups
ListExtExtensions for non il2cpp Lists
LocalizationManagerExtExtension methods for the Localization Manager.
LockedListExtensions for LockedLists
LockedListExtExtensions for LockLists
MapExtExtensions for Maps
MiscModelExtOther miscellaneous extensions for various Model classes
ModelExtExtensions for Models
ModModelExtExtensions for the ModModel (GameMode) class
NK_TextMeshProUGUIExtExtensions for NK_TextMeshProUGuis
NKMultiGameInterfaceExtExtensions for sending and receiving data in coop
PetModelBehaviorExtExtensions for PetModels
PopupScreenExtExtensions for PopupScreen
PowerModelBehaviorExtBehavior extensions for PowerModels
ProfileModelExtExtensions for ProfileModels
ProjectileBehaviorExtBehavior extensions for projectiles
ProjectileExtExtensions for Projectiles
ProjectileModelBehaviorExtBehavior Extensions for ProjectileModels
ProjectileModelExtExtensions for ProjectileModels
RendererExtExtensions for unity renderers
RootObjectLockListExtensions for RootObjectLockLists
RoundModelExtExtensions for RoundModels
SliderEventExtExtensions for SliderEvents
SpawnerExtExtensions for Spawners
SpriteExtExtensions for Sprites
SpriteReferenceExtExtensions for SpriteReferences
StandardTowerPurchaseButtonExtExtensions for StandardTowerPurchaseButtons
StreamExtExtensions for streams
StringExtExtensions for strings
SupportModelExtExtension methods for support models
Texture2DExtExtensions for Texture2Ds
ToggleEventExtExtensions for ToggleEvents
ToggleExtExtensions for Toggles
TowerBehaviorExtBehavior extensions for Towers
TowerDetailsModelExtExtensions for TowerDetailsModels
TowerExtExtensions for Towers
TowerModelBehaviorExtBehavior extensions for TowerModels
TowerModelExtExtensions for TowerModels
TowerToSimulationExtExtensions for TowerToSimulation
TypeExtExtensions for Type
UnityDisplayNodeExtExtensions for UnityDisplayNodes
UpgradeModelExtExtensions for UpgradeModels
Vector3ExtExtensions for Vectors
WeaponBehaviorExtBehavior extensions for Weapons
WeaponModelBehaviorExtBehavior extensions for WeaponModels
WeaponModelExtExtensions for WeaponModels
Delegates
Function()
Function<T>()
InputFieldOnValueChanged.Function(string)Represents a multicast delegate; that is, a delegate that can have more than one element in its invocation list.
InputFieldSubmitEvent.Function(string)Represents a multicast delegate; that is, a delegate that can have more than one element in its invocation list.
SliderEventExt.Function(float)Represents a multicast delegate; that is, a delegate that can have more than one element in its invocation list.
ToggleEventExt.Function(bool)Represents a multicast delegate; that is, a delegate that can have more than one element in its invocation list.

BTD_Mod_Helper.UI.BTD6 Namespace

Classes
MainMenuUIClass to access the game's Main Menu UI
MapSelectUIClass to access the game's Map Select UI
TitleScreenUIClass to access the Title Screen UI

BTD_Mod_Helper.UI.Menus Namespace

Classes
ModSettingsMenuThe ModGameMenu for Mod Settings

BTD_Mod_Helper.UI.Modded Namespace

Classes
RoundSetChangerClass controlling the in game Round Set override UI
To learn how to download BTD Mod Helper and install mods, click here