https://github.com/gold-meridian/tml-build
MSBuild SDK and accompanying projects for a feature-complete tModLoader development SDK/toolchain!
https://github.com/gold-meridian/tml-build
csharp dotnet msbuild msbuild-sdk msbuild-sdk-extras msbuild-sdks roslyn-analyzer roslyn-generator terraria terraria-mod tmodloader tmodloader-api tmodloader-mod
Last synced: 3 months ago
JSON representation
MSBuild SDK and accompanying projects for a feature-complete tModLoader development SDK/toolchain!
- Host: GitHub
- URL: https://github.com/gold-meridian/tml-build
- Owner: gold-meridian
- License: agpl-3.0
- Created: 2024-12-03T06:08:41.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-12-03T07:54:30.000Z (5 months ago)
- Last Synced: 2025-12-22T10:31:37.735Z (5 months ago)
- Topics: csharp, dotnet, msbuild, msbuild-sdk, msbuild-sdk-extras, msbuild-sdks, roslyn-analyzer, roslyn-generator, terraria, terraria-mod, tmodloader, tmodloader-api, tmodloader-mod
- Language: C#
- Homepage:
- Size: 90.5 MB
- Stars: 9
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tml-build
> 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.
## features
> See: [FEATURES.md](FEATURES.md).
---
There are a lot, but here's a quick rundown (unchecked items are not yet implemented):
- [x] no need to place the mod in `ModSources`, it can resolve tModLoader from *anywhere*,
- [x] easy tModLoader version referencing/switching,
- [x] reference locally-installed `steam` or `dev` version, as well as `stable`, `preview`, or a custom version (`x.y.z.w`),
- [x] `.tmod` archive packaging on build,
- [ ] configurable packing and compression,
- [ ] configurable handling of image file formats (`.rawimg` vs PNG),
- [x] sophisticated launch profile generation,
- [x] runs tModLoader through a program in charge of wrapping it and patching it for development use (see more in [FEATURES.md](FEATURES.md)),
- [x] built-in support for access transformers,
- [ ] optional support for the [proposed TOML rework](https://github.com/tModLoader/tModLoader/issues/4170) to `build.txt`,
- [x] 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,
- [x] type-safe references to all sorts of assets,
- [x] images,
- [x] sounds,
- [x] shaders (effects),
- [x] and localization,
- [and more!](FEATURES.md)
## how do I use this?
It's a one-line change in your `.csproj`:
```diff
-
+
```
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.
## license
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](LICENSE) for more details.