HAL9000 Posted May 10, 2019 Share Posted May 10, 2019 (edited) 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 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 January 29, 2022 by HAL9000 a20 (see edit history) 7 Link to comment Share on other sites More sharing options...
sphereii Posted May 10, 2019 Share Posted May 10, 2019 Thanks Hal! Here's a repo of most of my migrated mods to Harmony. Feel free to use them for testing, playing, and seeing examples of Harmony in action: https://github.com/SphereII/SphereII.Mods Link to comment Share on other sites More sharing options...
xyth Posted May 10, 2019 Share Posted May 10, 2019 Thanks for doing this for the community Hal!! Link to comment Share on other sites More sharing options...
chikorina Posted May 10, 2019 Share Posted May 10, 2019 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. Link to comment Share on other sites More sharing options...
layarion Posted May 15, 2019 Share Posted May 15, 2019 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 More sharing options...
layarion Posted May 15, 2019 Share Posted May 15, 2019 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? Link to comment Share on other sites More sharing options...
sphereii Posted May 15, 2019 Share Posted May 15, 2019 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 More sharing options...
HAL9000 Posted May 17, 2019 Author Share Posted May 17, 2019 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 Link to comment Share on other sites More sharing options...
PeterB Posted July 12, 2019 Share Posted July 12, 2019 (edited) Pls anybody can shortly elaborate some advantages with DMT and using Harmony. Still reading thru the guide right now.Thanks Edited July 12, 2019 by PeterB (see edit history) Link to comment Share on other sites More sharing options...
sphereii Posted July 12, 2019 Share Posted July 12, 2019 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 More sharing options...
karlmarsh05 Posted July 20, 2019 Share Posted July 20, 2019 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 More sharing options...
sphereii Posted July 20, 2019 Share Posted July 20, 2019 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 More sharing options...
Tete1805 Posted July 24, 2019 Share Posted July 24, 2019 Thank you guys for the hard word on SDX and now DMT, you are amazing. Link to comment Share on other sites More sharing options...
Fatal Posted August 21, 2019 Share Posted August 21, 2019 Take a look here. ???? these tutorials apply to DMT? cause I just tried to do the simple cube sample and it does not work at all... Link to comment Share on other sites More sharing options...
Guppycur Posted August 21, 2019 Share Posted August 21, 2019 Two different things. Link to comment Share on other sites More sharing options...
Fatal Posted August 21, 2019 Share Posted August 21, 2019 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 More sharing options...
Guppycur Posted August 21, 2019 Share Posted August 21, 2019 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. Link to comment Share on other sites More sharing options...
FiftyTifty Posted October 1, 2019 Share Posted October 1, 2019 (edited) 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 October 1, 2019 by FiftyTifty (see edit history) Link to comment Share on other sites More sharing options...
AlexBLR Posted October 12, 2019 Share Posted October 12, 2019 Hello, is there any info about how to get all game classes/objects within description? Does any idea how to hook recipe searching mechanics? Link to comment Share on other sites More sharing options...
stone00 Posted October 21, 2019 Share Posted October 21, 2019 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 More sharing options...
HAL9000 Posted October 22, 2019 Author Share Posted October 22, 2019 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 Link to comment Share on other sites More sharing options...
stone00 Posted October 23, 2019 Share Posted October 23, 2019 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 More sharing options...
HAL9000 Posted October 23, 2019 Author Share Posted October 23, 2019 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 hi stone00, Give this a go: https://github.com/HAL-NINE-THOUSAND/DMT/releases/download/v1.5/DMTv1.5.7235.19353.zip Cheers, Hal Link to comment Share on other sites More sharing options...
ExtremeLurker Posted October 25, 2019 Share Posted October 25, 2019 How do you get started with modding the C# assembly? I'm a programmer, but what tool is best to use to view the assembly source? Do you just use ILSpy? Link to comment Share on other sites More sharing options...
HAL9000 Posted October 25, 2019 Author Share Posted October 25, 2019 dnSpy is what most of us use. It allows manual edits of the DLL for debugging and helping figure stuff out Link to comment Share on other sites More sharing options...
Recommended Posts