📌 DMM - Dark engine Mod Manager

5 Guests are here.
6648140973258
ZylonBaneQuote
Just a heads-up @Marvin, when the next SCP releases (Real Soon Now), it will include a modding mechanism whereby files can be dropped in the "scriptdata" folder, which Squirrel scripts can detect and access. However, the mod manager currently displays a warning symbol next to these and declares their type "Unrecognized". So we need a new "Script Data" type added. Attached is a sample non-functional mod that demonstrates this behavior.

While I was messing around with this, I noticed a few more issues:

The DML mod type isn't recognized if the DML is inside a "dbmods" folder.

There are a couple of typos in the dialog for deleting a mod:


The button "Launch game" also terminates the mod manager. The rollover help doesn't even warn that this will happen. This can be annoying if you're testing mod configurations, because you have to keep re-launching the manager.

The mod manager window title and about dialog should be updated to use title case. Currently they all read "Dark mod manager" instead of "Dark Mod Manager".
66481409736b5
MarvinQuote
Long time, no see - apologies for that, manager has simply fallen to the wayside.

In any case, todos would be:
* Thief 1 compatibility fixes
* typo fixes
* new dml folder type

Remaining questions:

1. @ZylonBane dbmods folder - is that a "proper" SS2 mod folder or something that Brain's original manager used? Iirc the manager performs a depth=1 search through all recognized folder types, plus the main folder, but that can obviously be changed. Is a DML file actually allowed in any subfolder, at any depth?
2. I think there was a change request about the "Launch game" feature once, can't remember where... exiting also performs some cleanup operations for free. In any case, I would opt to minimize the manager as keeping it open without greying out the button (which would mean that the manager has to check for a running instance of SS2) could be confusing to the average user. Alternatively, one could leave the button disabled on a timer.
3. @voodoo47 About the "disable all" button: I thought that fan missions are usually started via FMSel, doesn't that have its own way of mod disabling? What actually would be the proper interaction flow, and what is the likeliest thing a user expects when dealing with a fan mission with/without mods? If users use a different program for fan missions, should that instead disable mods?



As for the string discussion: As you probably know, the two hardest problems in computer science are naming things, off-by-1 errors, and string handling. DMM is supposed to be as dumb as possible, and merging string files - which can by in CP850, Latin-1, or nowadays possibly Unicode, mind you - is not something I would feel comfortable with in C++, a language I know virtually nothing about.

Making up your own robust solution and opening a PR would of course be very welcome.
6648140973e5e
ZylonBaneQuote

Quote by Marvin:
1. @ZylonBane dbmods folder - is that a "proper" SS2 mod folder or something that Brain's original manager used?
Dbmods is a NewDark feature, so the original mod manager wouldn't have known about it. It's documented in the "dbmod-sample.dml" file that comes with NewDark.
// There's a third way for loading specific mission dbmods. If there is a directory named "dbmods\<mission>"
// in any path from which dbmods can be loaded, then it will load all dml files in that directory, regardless
// of their name. So for example if the game is loading the mission "miss1.mis", then it will load all dml files
// in directories named "dbmods\miss1.mis\". There's also a "dbmods\miss_all\" that applies to all missions.
// Note that it will not load the FM/base dir first for these, all paths will be processed in regular order
// (still with the highest priority dir loaded last). For that it might be safer to avoid including a dbmods
// mission dir in an FM. See info about the "dbmods" directory in "Gamesys dbmods" below, for details on file
// order etc..

// To apply a dbmod to gamesys, it follows similar convention as for mission files. Append .dml extension,
// for example "dark.gam.dml", or to apply it to all gamesys files call it "gamesys.dml".
//
// The location and loading rules are the same as for missions, described above. There is however one
// additional option for applying gamesys mods. Gamesys dml files may also be placed in a "dbmods" sub-dir
// in any dir that's in in resname_base or mod_path. All "dbmods" directories will be loaded (or rather all
// *.dml files in them) in expected order, so that the highest priority dir is loaded last for the final
// say. All dml files in one dir are loaded in alphabetical/sorted order, that ensures a consistent order
// each time and also allows you to affect the order by simply renaming the files (in case there are some
// small conflicts between mods that can be resolved by changing the order). Any sub-directories contained
// inside a "dbmods" directory will be ignored (for gamesys patches).
//
// The "dbmods" directories are processed after all the regular dml files are processed.
//
// Example:
//     <base dir>/gamesys.dml
//     mymods/dbmods/tougherAI.dml
//     mymods/dbmods/weakerWeapons.dml
//     modA/dbmods/cheaperLoot.dml
//     modA/dbmods/tougherAI.dml
//
//     The mod_path is "mymods+modA".
//
//     The loaded order will be:
//         <base dir>/gamesys.dml
//         modA/dbmods/cheaperLoot.dml
//         modA/dbmods/tougherAI.dml
//         mymods/dbmods/tougherAI.dml
//         mymods/dbmods/weakerWeapons.dml

2. I think there was a change request about the "Launch game" feature once, can't remember where... exiting also performs some cleanup operations for free.
I think it would be fine if the button and rollover text was explicit about what's going to happen. Surprise app shutdown is never a good thing. So like, if the label was changed to "Close & Play" or whatever fits.

Maybe a popup dialog too if you try to close it with un-applied changes. Something like "There are changes that have not been applied.", then have Apply, Discard, and Cancel buttons.
Acknowledged by: Marvin
6648140974041
voodoo47Quote
3. no, FMsel does not have a disable/pause all (mods) button, so such a button wouldn't be a bad thing to have in DMM (this is needed for Thief fan missions that are absolutely incompatible with any/all mods). NewDarkloader has it, but FMsel is what we officially support (and we probably don't want to fork it to ad the button there).
Acknowledged by: Marvin
66481409742dc
MarvinQuote

Quote by voodoo47:
3. no, FMsel does not have a disable/pause all (mods) button, so such a button wouldn't be a bad thing to have in DMM (this is needed for Thief fan missions that are absolutely incompatible with any/all mods). NewDarkloader has it, but FMsel is what we officially support (and we probably don't want to fork it to ad the button there).

Ok, so the expectation is that either a) the user knows that an FM cannot stomach mods, will disable all of them in DMM, then start the mission via FMSel,  or b) the user uses NewDarkloader which takes care of this automatically (?) or by some other means? Do FMs have a marker file somewhere for that, or do they simply provide a ReadMe that explicitly states that mods are not allowed? I would guess that the average FM player is at least somewhat smart enough to figure that out.
Reply

Legal stuff

Privacy Policy & Terms of Service Contact