Jump to content

DMT Modding Tool


HAL9000

Recommended Posts

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.thumb.png.cdf20332a0835fc9daf0bfa89cc7f6f2.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

Edited by HAL9000
a20 (see edit history)
Link to comment
Share on other sites

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?)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • 1 month later...
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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • 4 weeks later...

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 ...

Link to comment
Share on other sites

  • 1 month later...

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.

Edited by FiftyTifty (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

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

Link to comment
Share on other sites

Have a look on the Github page and under Releases grab v1.2. That should be compatible with A16. I'll have a look at backwards compatibility for the next release

 

Hey Hal tried right back to 1.0 same error, hopefully backwards compatible is actually a viable option cause this'll be awesome, I'll be looking forward to next release xD

Link to comment
Share on other sites

  • Roland unpinned and locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...