• If you have a mod, tool or prefab, please use the Resources section. Click Mods at the top of the forums.

DMT Modding Tool

Status
Not open for further replies.

HAL9000

Tester
Hey guys,

Here's the new community made tool for modding 7 Days to Die. It is going to be the replacement for SDX going forwards.

The tool is open-source and can be found on github: https://github.com/HAL-NINE-THOUSAND/DMT.

-- ALPHA 20 - Major Changes --

With Alpha 20 Harmony is now supported by the vanilla game so DMT will be tipping its hat and riding into the sunset to find the machine elves. 

If you're still running an old alpha DMT will continue to work as it did. It _may_ be compatible with A20 too but we're recommending you move to the new built-in modding support as that is the future of mod integration with 7 days. A lot of the modders are/have moved to the new system so go check their posts or discord for the latest versions 

Downloads

v2.2

--v2
DMT v2 is now released. The major change is it now uses Harmony v2 instead of v1. This is a breaking change so I've bumped the DMT release to v2 as well. There are some upgrade processes you'll need to do for your mod. A lot of them can be done by DMT by using the "Attempt Hamony Auto Update" checkbox when building 

image.png

Further details of the updates required can be found here: https://stardewvalleywiki.com/Modding:Migrate_to_Harmony_2.0 

We've also removed the requirement for the mod.xml. Now both vanilla and DMT uses the ModInfo.xml file. Again, there is an auto-update function built in that should server most cases. Once the update is done you should delete the mod.xml file to remove any warnings that are generated in DMT. 

--

All previous SDX mods should be compatible with DMT but also comes with some new features and workflow improvements. The main new benefit is support for the Harmony modding library

Tutorials

Harmony hooks for DMT by sphereii (note: DMT now uses Harmony v2 so these may not work without using the upgrade feature in DMT v2)




Decompiler / Code viewer

dnSpy

Many thanks to sphereii and the other testers of DMT. If anyone is interested in keeping the source updated feel free to submit a pull request or PM me.

Cheers,

Hal

 
Last edited by a moderator:
Thank you:tickled_pink: I had a mod that I couldn't patch using SDX in 17.3 experimental, but was able to patch it using DMT. :cheerful:

 
In more layman's terms, could you explain in a few sentences what this offers over the other? Like is the Harmony library really big? just a summary of what stuff it has in it? (like is it specific to 7days or does it have other things useful to more general coders?)

 
ok i just noticed more info was in the guide

question: applying them at run-time means slower loads? is that the only down-side? are there any upsides besides making it easier to see what changes are being applied?

 
I have not noticed any kind of slower responses to the game, even when using Harmony on a really aggressive call.

To clear up your questions...

DMT is only for 7 Days To Die

Harmony applies patches to the DLL in-memory, vs in the DLL itself. You can add and remove patches in between reboots, just like you do for the XML snippets now.

DMT does support SDX Patches, but the way forward will be recommended to use Harmony instead. Harmony is a lot easier to work with; we can place our changes before the vanilla method starts, or after it ends, change its values, etc, without having to touch IL or CECIL.

 
Updated release v1.1

Fixed some Harmony integration bugs and added an auto-updater so future releases you should get a popup in the app when starting.

v1.1

Cheers,

Hal

 
Pls anybody can shortly elaborate some advantages with DMT and using Harmony. Still reading thru the guide right now.Thanks

 
Last edited by a moderator:
Pls anybody can shortly elaborate some advantages with DMT and using Harmony. Still reading thru the guide right now.Thanks
A big benefit of using Harmony is that it allows run-time patches. The Harmony DLLs we make are under the Mods folder, and are loaded every time the game is started. If players found they like a lot of different modlets, then can add and remove them at their leisure, without having to go through the DMT build process.

They are also easier and cleaner to write.

 
I don't suppose there is a simple tutorial somewhere to show a noob how to import a basic cube into the game using DMT is there? I just want to add a basic cube with my own texture. I followed a sdx tutorial but that does not work either dispite saying that the build completed and no errors. Thanks.

 
I don't suppose there is a simple tutorial somewhere to show a noob how to import a basic cube into the game using DMT is there? I just want to add a basic cube with my own texture. I followed a sdx tutorial but that does not work either dispite saying that the build completed and no errors. Thanks.
Take a look here.

 
Hey Guppy I guess I Am confused then. I have been out of the modding loop for a bit. So we still use sdk for blocks? or we use DMt now ? Another question is. Why use the DMT anyways.. I see that most mods like audio or block files is just a drop in mods folder and thats it.

So if I made a simple block in unity.. export it with the script, create my mod info and all the scripts.. I dont need to use anything to patch it? right? very confused on this process.

Its my understanding that sdk changed the assembly file and added it to the game ...

 
7days now supports import of .unity3d files without sdx. Check the tutorial section.

Sdx/dmt changes the assembly to allow scripts to be included, it's no longer necessary for anything else.

 
With a fresh install of the 7 Days To Die client, and dedicated server for Windows, DMT causes the client to endlessly throw a single error when connecting to the dedicated server, preventing the player from spawning in. This does not happen in single player.

This is with the latest 7 Days To Die, version 17.4.

Client log: https://pastebin.com/0GMguLRg

Server log: https://pastebin.com/NJzMja1C

When starting a game through the client (I.E, not connecting to a dedicated server to play), everything proceeds as expected with no errors thrown: https://pastebin.com/PsBaqquu

This is with no mods, just an absolutely plain install after running the DMT tool, pointing it to the client and server folders.

Edit: Disregard. The issue was that I increased the view distance in the registry, beyond the default maximum of 7.

 
Last edited by a moderator:
Hello, is there any info about how to get all game classes/objects within description?

Does any idea how to hook recipe searching mechanics?

 
hey, just tried to use this on a freash install of 16.4 and noticed you added like a 16 version one in your video, does this actually work with 16?

as i just keep getting

Running BackupFiles

Unhandled Exception: System.NotImplementedException: Instruction is not an i4 opcode

at DMT.Extensions.GetValueAsInt(Instruction i)

at DMT.Tasks.BackupFiles.GetVersionInfo()

at DMT.Tasks.BackupFiles.Patch(PatchData data)

at DMT.PatchData.Patch()

at DMTViewer.Program.Main(String[] args)

process exited with error code -532462766

 
Status
Not open for further replies.
Back
Top