Since the game developers have removed ModLoader from the Steam Workshop, the loader has been migrated to GitHub. Please visit the link to download the latest version and deploy it.
This project provides a sample Mod for They Are Billions, designed to help players quickly create and load their own Mods, as well as demonstrate some of the game’s features.
-
Create a
.NET FrameworkDLL project and referenceTABModLoader.dll.- This DLL file will automatically extract to the
/Modsfolder in the game's root directory once you subscribe to theTAB Mod Loaderand launch the game.
- This DLL file will automatically extract to the
-
Define a class that inherits from the abstract class
TABModLoader.ModBaseand implement theOnLoadmethod.- This method takes a
TABModLoader.ModInfosparameter that contains Steam Workshop information such as title, description, author, path, etc.
- This method takes a
-
Compile and generate the Mod DLL file, then use the Windows right-click menu to select "Send to -> Compressed (zipped) folder." Change the
.zipextension to.jpg, and rename the file toTAB.ModContent.jpg.- Place the generated
TAB.ModContent.jpgfile in your They Are Billions map project folder and upload it to the Steam Workshop.
- Place the generated
Once complete, other players need only subscribe to the Mod, and it will automatically load upon game start.
-
The
ModInfospath provided is for Steam Workshop, not the DLL load path. To access the DLL load path, it is located atGameRoot/Mods/ModInfos.SteamID/. -
The ModLoader comes with libraries such as
HarmonyandNewtonsoft.Json. Please avoid packaging these libraries with the Mod DLL in the ZIP file, as they will automatically extract and load. Including them could cause duplicate loading issues. -
The game code is obfuscated and difficult to read. However, i provide a de-obfuscated game executable (
TheyAreBillions-modifiedVisibility.exe) in theReferencesfolder, which can be explored using tools likeDNSpy.- Please note, direct reference or access to this de-obfuscated code is limited, as most of the content in the original program is marked as internal, with only a few public classes available.
- Due to the game’s protection mechanism, you cannot replace the original program with this de-obfuscated one, but you can access data through reflection. When using
Harmonyfor patches, you can use theMethodWithDecryptandPropertyWithDecryptextensions inTraversefor better readability. To do so, import theTABModLoader.Utilsnamespace. - For custom dictionary handling of obfuscated and de-obfuscated names, refer to the mapping file (
TheyAreBillions-decrypted.exe.srcmap) in theReferencesfolder.
-
DXVision.dllis an important DLL in the game, containing several parent classes for key classes. This file is also available in theReferencesfolder and is not obfuscated, so you can directly reference and access it. If you encounter inaccessible subclasses, consider converting them to the parent classes inDXVision.dllor examine them using tools likeDNSpy.
For specific usage details, please refer to the code in the TAB Helper Mod.
This is my current progress, and I hope my experience will help other developers enhance and optimize They Are Billions' content, providing players with a richer gaming experience.