You are viewing a potentially older version of this package. View all versions.
Conductor-Conductor-0.5.15 icon

Conductor

Central library of reusable custom effects, status effects, and keywords to make modding Monster Train 2 safer and easier, used as a dependency for other mods.

Date uploaded 2 weeks ago
Version 0.5.15
Download link Conductor-Conductor-0.5.15.zip
Downloads 267
Dependency string Conductor-Conductor-0.5.15

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
MT2-Trainworks_Reloaded-0.7.32 icon
MT2-Trainworks_Reloaded

A Data Loader and Injection Engine for Monster Train 2

Preferred version: 0.7.32

README

Conductor

GitHub Release Trainworks Reloaded License


Overview

Conductor is a modding library for Monster Train 2, providing a growing collection of reusable effects, status effects, triggers, and keywords.
It’s designed to make modding safer, cleaner, and easier by abstracting away repetitive or risky code.

Conductor builds on top of Trainworks-Reloaded and adds additional utilities, APIs, and hooks for advanced mod development.


Installation

For Players

If you install a mod that depends on Conductor, it will automatically be downloaded by your mod manager (e.g. r2modman).
No manual setup is needed.

For Developers

  1. Add Conductor to your dependencies in thunderstore.toml:

    [package.dependencies]
    Conductor-Conductor = "0.4.1"
    
  2. If testing locally, download the latest release and extract it into your BepInEx/plugins folder.

  3. If you’re using Conductor’s utility functions as part of your build:

    • Add a package reference to your .csproj:

      <PackageReference Include="Conductor" Version="0.4.1" />
      

Usage

Check out the Conductor Wiki for setup guides, API references, and examples.

Important: Do not copy any code or JSON directly from this repository. Many assets depend on Conductor internals and will not function standalone. Instead, reference Conductor’s effects, statuses, and utilities within your own project.


Features at a Glance

  • Ready-to-use custom effects, statuses, and keywords
  • Quality-of-life APIs to simplify mod logic
  • Extensible systems built for integration with Trainworks-Reloaded
  • Future NuGet support for direct library usage

Attribution

Icons used in this project are credited as follows:


Contributing

Contributions and pull requests are always welcome! If you’d like to help expand Conductor’s features or documentation:

  • Open an issue with feature requests or bug reports
  • Submit a pull request
  • Join the discussion on the MT2 Discord #mt2-modding channel.

CHANGELOG

Unreleased

  • Attuned reads its multiplier from paramInt (0 keeps the game's 5) and shows it in the card text, so a mod can define Attuned 2 or Attuned 10 from JSON.

V0.5.14

  • Added CardEffectPlayCharacterAnimation (Allows a spell card to play a units animation)
  • Added CardEffectSwitchCharacterAnimationModel (Allows switching an animated sprite model variation)
  • Added Pierce (Mini-Sweep) that allows attacking the first N units.
  • Added N-Units target mode. Target Mode when assigned to a CardEffectNull causes the card to target the first N units (paramInt) or back N units (paramInt+paramBool3)

V0.5.13

  • Added IRewardPreviewProvider for custom rewards that provide variable items.
  • Added ICardGiverReward for custom rewards that provide cards
  • Added patch fixing Spellchains text for Spellchain with a paramInt > 1

V0.5.12

  • QoL extension functions added to CardUpgradeData/State CharacterData to query essence information.
  • Added Utilities.AddInkExternalFunction to bind an external function for Ink stories.

V0.5.11

  • Expanded Unit Essence Support. Added GetSourceEssenceCharacter, IsEssenceUpgrade (Register is now private).
  • Mod now uses AssetBundles (Mod should load faster).

V0.5.10

  • Added new TrackedValueType NumUnitsInTargetRoom, NumUnitsOnTrain which gets a count of units matching conditions.

V0.5.9

  • Fix NRE at startup before save data is initialized.

v0.5.8

  • Added ability for mods to have save data.
  • Added PlayerResource class
  • Added RoomModifierDamagePerAttackModifier

v0.5.7

  • SimpleTrackedValueHandler is now preview aware, now has a preview state and current state.
  • AbstractTrackedValueHandler has functions that get called when Previews are enabled/disabled.
  • Updated localizations.

v0.5.6

  • Add Utilities.MarkEffectAsADamageEffect
  • Add Utilities.MarkEffectAsHealEffect
  • Add Utilities.MarkEffectAsStatusGivingEffect

v0.5.5

  • Added Absolve (triggers when a Blight/Scourge is purged)
  • Added Vanish (triggers when an Ephemeral card is played or discarded)
  • Added Furnish (triggers when a Room is played)
  • Added missing Recoil icons.
  • Added TriggerOnCardPurged event.

v0.5.4

  • Added Recoil (character takes damage equal to stacks after attacking)
  • Added Trinity (genericized version from MT2 modding tutorials)

v0.5.3

  • AbstractTrackedValueHandler now has access to all of the managers.
  • Add CardEffectRequireTargetsDestroyed.
  • Fox Scaling CardTraits now respect the param_card parameter.
  • Fix CardEffectShuffleUnits triggering shift multiple times
  • Steelguard removed (Developers made Steelguard an actual status effect, which inactivated Conductor's version).

v0.5.2

  • Steelguard can now be referenced without a mod_reference. Use "steelguard".
  • Steelguard now sets damageBlocked.
  • Fix steelguard localizations and param substitution.

v0.5.1

  • Fix mistakenly included file
  • Ability to create status effects that change the target mode, see IChangeAttackingTargetModeStatusEffect.
  • Add fixes for Dormant to work properly.

v0.5.0

  • Fixes for Destiny of the Railforged 2.1
  • Add actual steelguard status effect (steelguard is not a true status effect in base game.)
  • Add sprite for unused Steelmight status effect.

v0.4.1

  • Remove debug logging.
  • Remove Mobilize Trigger code (It is the same as Rally now).
  • Internal touchups.

v0.4.0

  • Fixes for Destiny of the Railforged.

v0.3.2

  • Add Binder trigger.
  • Add ability to associate a sound cue with a custom Damage.Type

v0.3.1

  • Just more logging.

v0.3.0

  • Breaking change: Conductor.Interfaces.ITrackedValueHandler is private, users should switch to inheriting Conductor.TrackedValues.AbstractTrackedValueHandler
  • Breaking change: Conductor.Interfaces.CharacterTargetSelector and Conductor.Interfaces.CardTargetSelector moved to Conductor.TargetModes namespace.
  • Ability to create ClassMechanicHUDs.

v0.2.9

  • Ability to alias or combine triggers.
  • Added CardEffectEnchant and AfterSpawnBetterEnchant triggers
  • Added Brambles status effect
  • Added Utilities.AddCardEffectDisplay for a CardEffect to replace a trigger icon.
  • Allowed AllowTriggerToFirePreCharacterTriggerStatus to be called on Vanilla Triggers.

v0.2.8

  • Fix Heroic status dealing double the effects damage.

v0.2.7

  • Fix on_shift not being present as an identifier
  • Fix on_shift not triggering on normal enemy ascending.

v0.2.6

  • Fix Utilities.SetupTraitTooltips assembly is optional.

v0.2.5

  • Just a rebuild against MonsterTrain2 v1.3.1

v0.2.4

  • TargetModes support for Abyssal Prism. Adds ResolvesToSingleTarget to CharacterTargetSelector.
  • Essence processing and storage.
  • new Status effect Heroic. Allied units have +1 attack for each stack.
  • new Status effect Growth. Unit has +1 max health per stack.
  • Expose abandoned Piercing status.
  • OnShift StatusEffectTriggerStage
  • Rounded tooltip edges for tooltip status effect icons

v0.2.3

  • Changed overrideTargetCharacter for FollowUp and Vengeance to the character that was damaged which caused the trigger to fire. The attacking character can still be gotten by last_attacker_character, the damaged character can not.

v0.2.2

  • Add API for Custom TrackedValues.
  • Add TrackedValue BlightsAndScourgesInDeck

v0.2.1

  • Fixed Ambiguous method reference in Utilities.SetupCardEffectTooltips
  • Added support for implementing TargetModes.
  • Added 11 New TargetModes: (played_card, override_target_character, in_front_of_self, behind_self, around_self, strongest, highest_attack, lowest_attack, highest_attack_all_rooms, lowest_attack_all_rooms, highest_attack_excluding_self)
  • Remove unused setter from IConstructStatusArmorModifier
  • Add Resonance trigger