tModLoader mod development toolkit (SDK).
tml-build encompasses a CLI tool and MSBuild SDK which enable you to quickly and easily develop tModLoader mods.
It reimplements the entire build toolchain, allowing for strong control over how your mod is built and packaged, as well as what tML version your mod targets.
See: FEATURES.md.
There are a lot, but here's a quick rundown (unchecked items are not yet implemented):
- no need to place the mod in
ModSources, it can resolve tModLoader from anywhere, - easy tModLoader version referencing/switching,
- reference locally-installed
steamordevversion, as well asstable,preview, or a custom version (x.y.z.w),
- reference locally-installed
-
.tmodarchive packaging on build,- configurable packing and compression,
- configurable handling of image file formats (
.rawimgvs PNG),
- sophisticated launch profile generation,
- runs tModLoader through a program in charge of wrapping it and patching it for development use (see more in FEATURES.md),
- built-in support for access transformers,
- optional support for the proposed TOML rework to
build.txt, - much easier CI integration (no more boilerplate setup; the build system installs tML for you),
- easily supports NuGet dependencies without needing to copy references yourself,
- easily reference existing mods in your project by including their workshop IDs,
- type-safe references to all sorts of assets,
- images,
- sounds,
- shaders (effects),
- and localization,
- and more!
It's a one-line change in your .csproj:
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Tomat.Terraria.ModLoader.Sdk/1.0.9">It's that simple; base configuration uses sane defaults that replicate tML.
With this change, you should be good to remove all of tMod's default configuration values as well.
Source code is licensed under AGPL 3.0; your projects do not need to be under the same license to use this package (unless you replicate code). See LICENSE for more details.