Monster Train

Monster Train

Not enough ratings
Official Modding Guide
By shinymark and 1 collaborators
Learn how to get started with playing and making Monster Train mods.
   
Award
Favorite
Favorited
Unfavorite
Playing Mods
USER CREATED MODS ARE NOT OFFICIALLY SUPPORTED. Sadly this means if something isn't working correctly we can't assist.

To play mods that others have created you need to do a few simple things:
  1. From the Monster Train main menu, click "Mod Settings" in the lower right corner.
  2. Enable the Mod Loader.
  3. Apply changes and restart the game.
  4. Go to the Steam Workshop and subscribe to some mods! There is a link to the Workshop inside the game itself under the Mod Settings menu if you click "Browse Mods".
Note that every time you change what mods you have installed you must restart the game for it to recognize the mods.
Introduction to Creating Mods
Creating mods is not necessary to have fun in Monster Train but it adds a lot of fun ways to express yourself, change gameplay mechanics, add new content and so much more. Just about anything in the game can be changed.

Common mod elements include:
  • New cards
  • New monster art and text descriptions
  • Additional card upgrades
  • Capacity limits by floor
  • Battle Restart options
  • New clans
There's unlimited potential to create brand new styles of gameplay and add undiscovered mechanics. What will you create?
Requirements
Some basics are required before you can make mods. At this time, there is no graphical tool for making Monster Train mods. Mod making requires programming using C# and BepInEx.

Install Mod Loader
This is located within the Steam Workshop here.

Check out the BepInEx Project
Monster Train uses the BepInEx project to facilitate mod support. Their official website has documentation[github.com] on how to use their tools, though it is not Monster Train specific.

Recommended: Install Visual Studio 2019
You will need a way to build .NET Class Library DLLs to make a mod. As of time of writing, we recommend using the free Visual Studio 2019 Community[visualstudio.microsoft.com].
Video Tutorials
The first step to making the mod of your dreams is learning from others who have done so. Below are a couple of videos showing you a step-by-step method of creating a mod for Monster Train.

Renaming a card:
https://youtu.be/YvbQKdMFh8g

Create a new card:
https://youtu.be/0mEpzI4r6gw
Making Your Mod
Steps to make a mod using Visual Studio 2019:
  1. Install the Mod Loader from Steam Workshop
  2. In Visual Studio 2019 Create a .NET Class Library project using .NET Standard 2.0
  3. Use BepInEx to make your mod - see their documentation and other resources linked below
  4. Build your mod into a DLL
  5. To test locally, copy your mod DLL into Monster Train's Steam Workshop folder inside a subfolder for your mod (e.g. c:Program Files (x86)Steamsteamappsworkshopcontent1102190my-modpluginsmymod.dll)
  6. Run Monster Train; if you have Mods enabled your mod will be automatically loaded by BepInEx

Resources:

Shiny Shoe Official Example Mods[github.com]
This is a collection of open-source sample mods you can reference. All of these mods are available for download on the Workshop today.

Trainworks Mod Tools[github.com]
This is useful community-made mod tooling to make various modding tasks much easier. If you want to add a card or character to the game we highly recommend using Trainworks.

Visual Studio Modding Templates[github.com]
These templates make it easier to set up new mod projects in Visual Studio.

BepInEx Project[github.com]
Monster Train uses the BepInEx project to facilitate mod support. Their official website has documentation on how to use their tools, though it is not Monster Train specific.
Uploading and Distributing Your Mod
Now you've made a mod! Let's upload it. You can choose to make it public or keep it private for yourself.

Uploading a mod requires comfort with making various types of files and using a command line tool. Maybe some day we will have a graphical interface to make this easier but for now this is the process.

Step 1: Get the Mod Uploader
Subscribe to the Mod Uploader tool.

Step 2: Create your Mod Manifest
The modmanifest.json file is a simple file with metadata about your mod. It has the following fields:
  • Title (required) - string - the name of your mod.
  • Description (required) - string - some text describing your mod.
  • CosmeticOnly (required) - boolean - true if mod does not affect gameplay, false otherwise.
  • ModId (optional) - integer - this is the ID on the Steam Workshop for your mod. If your mod is brand new, you can leave this blank. When MtModUploader.exe sees that this is blank it will create a new mod on Workshop for you and write the ModId into modmanifest.json automatically.
  • ChangeLog (optional) - string - text describing what changed since your last update.
  • Tags (optional) - array of strings - tags for sorting on the Steam Workshop web UI.
Mods that are not "cosmetic only" block access to some parts of multiplayer, the ability to unlock achievements, covenant unlocks, and so on because mods that change gameplay can allow the user to cheat or win easily. Please set this flag appropriately based on the content of your mod.

Here is a full example modmanifest.json file for a new mod that has not previously been uploaded to the Workshop:
{ "Title": "Test Mod", "Description": "Adds one new card and one new artifact. They are cool.", "CosmeticOnly": false, "Tags": [], "ChangeLog": "Some recent changes. This is optional." }

Step 3: Create a Mod Image
Make a 512x512 24 bit PNG file named modimage.png and save it in your mod folder. This is for the icon visible to users on Steam Workshop and is required.

Step 4: Upload your Mod to Workshop
Your final mod folder layout before uploading should look like this example:
.\MyMod\ modmanifest.json modimage.png plugins\ mymod.dll <any other files>

Then you'd upload your mod to the Workshop using the command line via the MtModUploader.exe tool that comes with the Mod Uploader. You need to run that executable and point it at your Mod folder. This command will need to be modified based on your circumstances, but it will look something like this:
MtModUploader.exe .\MyMod

The Mod Uploader will check your manifest for required fields, ensure you have a mod image, and if everything looks good it will upload your files to Steam Workshop.

A good way to see real-world examples of how the files are configured is to subscribe to some mods from Steam Workshop and inspect their files.

Monster Train Workshop mods are saved in:
<your_program_folder>\Steam\steamapps\workshop\content\1102190

When you subscribe to the Mod Uploader, it is saved in:
<your_program_folder>\Steam\steamapps\workshop\content\1102190\2194499032

Step 5: Share it with the World
By default when you upload a mod to Workshop it is only visible to yourself. You must go to your new mod page in Workshop and make it publicly visible when you're ready to launch it.
3 Comments
CapAp 31 Jan, 2022 @ 9:11pm 
Would it be possible to mod the Logbook display? I dislike having to flip pages to track my Wurmkin progress.
shinymark  [author] 24 Feb, 2021 @ 9:26am 
Hi Conflagration - that seems possible but unfortunately would not be easy without coding experience. If you're interested in looking at it more deeply I encourage you to join our Discord community and speak to others in the modding channel there.
Conflagration 23 Feb, 2021 @ 4:06pm 
Hello, not sure if this thread is being monitored but I wanted to know this game supports modding that would allow an item/upgrade pool be created that requires specific combinations of clans to be available like a new rage morsel that only show up if you're playing umbra/hellhorned or an artifact that grants awoken/hellhorned a rage whenever they gain regeneration.

Or would something like this be easier if the api doesn't support it

A mod to add these new new combination pool assets then doing a check that disables part of mod if clan doesn't equal the that specific value.

This seems like something that would make runs feel more unique and special with combos just want to see if it's feasible to do without much coding experience.