galevsky06 Posted September 16, 2014 Share Posted September 16, 2014 (edited) DyMOD - modern mods manager 1. Easy to install: Dedicated installer ! 2. Unique Mods Library Organize your mods into folders under the Mods Libray root one. You can also move mods inside the library whenenever you want (event for installed mods), with no bad impact. A mod is identified by a SHA1 (kind of hash-key on the file content), not by its name or path). Each mod should appear once into the library, and can be deployed to as many applications as required (let's say 2: Dcs World and DCS World Beta ;)). 3. Manage as many applications as you want You can manage mods for all your apps and switch from one to another in one click. 4. Smart mods installation/unintallation One button to install or re-install, another one to uninstall Installation will backup original content, if exists. Uninstallation will restore back-up in a smart way: only if the content is the one that has been deployed by the mod. 5. Easy status report Each refresh of the Mods tree checks the status for each mod regarding the current application. It can be: uninstalled installed (each file is identical to the one that have been installed by the mod = same SHA1) repairable (some mods files have changed *BUT* they are identical to the ones that were before the mod installation => It is safe to install again) broken (some mods files have changed and they differ from the original ones. It is NOT safe to install again, I mean it may not work as it did before) 6. Easy to create mods DyMOD mods (.dmz files) are just zip files, containing component to be deployed to some root path. Components can be: additional (empty) folder additional file (the file doesn't exists in the application) replacing file (the file will replace the original one to bring some changes) There is also a .metadata folder containing 3 files: info.txt description.txt changelog.txt The 2 latter are free-text displayed into the corresponding tabs. The info.txt is JSON with that structure: { "Author": "galevsky", "Organization": "dcs-tools.com", "Name": "DummyMod", "Version": "1.0", "Application": "For DummyApplication root folder (default is C:\\Program Files\\DummyApplication)", "UpdateUrl": null } All of them must use UTF-8 encoding. 7. JSGME compatible DyMOD is compatible with any .zip file containing stuff to be dropped into an application folder. 8. Easy to dig Each component of the mods has its own status, to allow you to look at the right files and check things quickly by hand if you want. 9. Anti-Collisions detection The first step of any new installation is checking that the mod will not impact files already modified by previous installations. Feature into the next release: a new feature will allow you to create a unique MERGED mod, and automatically uninstall the ones in conflict. 10. Website module Want to host your mods online ? A very small PHP application will be available to let you host you mods. It will build the URL to check for the latest version, and display mod information online for each version. 11. ABOVE ALL: SAFE !!!! Since the uninstallation is safe (means it removes only files that it puts itself), it makes the following scenario safe: Let's talk about ModOne, a mod designed for DCS World 1.2.10 ModOne have been installed. Then, an automated update of DCS happens -let's say v1.2.11-, impacting some files of the mod. Thus, the status of ModOne will be set to either repairable or broken. If repairable, just launch re-installation (if you still want to use ModOne), or remove it. If broken, DyMOD will point at files that have been modified by DCS Update and that differ from the v1.2.10. Here again you have the choice, both are safe: uninstallation => the "corrupted" files will remain in v1.2.11 since the restore of v1.2.10 files will be skipped thanks to the smart process. You have a fuly operational v1.2.11 without you rmod. re-installation, => the v1.2.11 files will be backed-up by the installation process, therefore you will be able to uninstall successfully in a second time. Broken just means "Hey dude, pay attention to that mod if you re-install, it may not work as before". After this short presentation, the aim of this thread is to ask for testers ! I would like to get it tested before the first public release in October/November. Thank you :) Galevsky Edited September 16, 2014 by galevsky06 1 Link to comment Share on other sites More sharing options...
cichlidfan Posted September 16, 2014 Share Posted September 16, 2014 Interesting. I will have to give this a closer look. ASUS ROG Maximus VIII Hero, i7-6700K, Noctua NH-D14 Cooler, Crucial 32GB DDR4 2133, Samsung 950 Pro NVMe 256GB, Samsung EVO 250GB & 500GB SSD, 2TB Caviar Black, Zotac GTX 1080 AMP! Extreme 8GB, Corsair HX1000i, Phillips BDM4065UC 40" 4k monitor, VX2258 TouchScreen, TIR 5 w/ProClip, TM Warthog, VKB Gladiator Pro, Saitek X56, et. al., MFG Crosswind Pedals #1199, VolairSim Pit, Rift CV1 :thumbup: Link to comment Share on other sites More sharing options...
Lenop Posted September 16, 2014 Share Posted September 16, 2014 Looks very, very interesting! Link to comment Share on other sites More sharing options...
VTJS17_Fire Posted September 16, 2014 Share Posted September 16, 2014 Nice! :thumbup: Hardware: Intel i5 4670K | Zalman NPS9900MAX | GeIL 16GB @1333MHz | Asrock Z97 Pro4 | Sapphire Radeon R9 380X Nitro | Samsung SSDs 840 series 120GB & 250 GB | Samsung HD204UI 2TB | be quiet! Pure Power 530W | Aerocool RS-9 Devil Red | Samsung SyncMaster SA350 24" + ASUS VE198S 19" | Saitek X52 | TrackIR 5 | Thrustmaster MFD Cougar | Speedlink Darksky LED | Razor Diamondback | Razor X-Mat Control | SoundBlaster Tactic 3D Rage ### Software: Windows 10 Pro 64Bit [sIGPIC][/sIGPIC] Link to comment Share on other sites More sharing options...
aaron886 Posted September 16, 2014 Share Posted September 16, 2014 Looks great! Link to comment Share on other sites More sharing options...
jimcarrel Posted September 16, 2014 Share Posted September 16, 2014 This is similar to the old standbys from years past. I can see that you have probably done a new version and I like the fact that you have brought in json structure. The best thing you have done is add some specific checks such as 'broken" and "repairable" Looks good and a new way of giving us use of adding and subtracting mods. Just one question. I can't seem to follow exactly how --- If one has a mod installed and unwittingly runs an update,, how exactly do you get back to a pure updated file? I think I'm reading that one can end up with updated file, but don't understand how it is accomplished. This of course, would be the best part of your program. Are you implying that this program tracks updates? Then again, I may not be asking the right question. Win 10 64 bit Intel I-7 7700K 32GB Ram Nvidia Geforce GTX 1060 6gig Link to comment Share on other sites More sharing options...
galevsky06 Posted September 16, 2014 Author Share Posted September 16, 2014 (edited) Just one question. I can't seem to follow exactly how --- If one has a mod installed and unwittingly runs an update,, how exactly do you get back to a pure updated file? I think I'm reading that one can end up with updated file, but don't understand how it is accomplished. This of course, would be the best part of your program. Are you implying that this program tracks updates? Not directly. The idea is: installation is smart (does back-up), easy :D, but uninstallation also: - For additional content (file or folder), the removal is done only if the file matches the one extracted from the mod archive. If not, I prefer to let it, that means that something external (DSC Update for example :D) decided to replace it and that file or folder does not belong only to the mod anymore. - For replacing files, same thing: I remove the file only if it matches the one from the mod. If an newer version was created since the mod installation, I cannot remove it. If I can remove, I replace it by the back-up file. This way, I remove properly the mods: no break ! If it is secured to uninstall, it is secure to install. But it was not sufficient, I mean, when I do some changes into a .lua script file, I strongly dislike to see my modifications scratched by DCS Update. So, I wanted to know what to do in that situation, and that is why these 2 statuses exist: - repairable: DyMOD soft is telling me that files were rolled back to the state it was before the mod first installation => I can re-install the mod directly. - broken: I want to know which file has changed, in order to fix my mod and make it compatible with the new version. I can try to reinstall with no special care, but I prefer to compare files and do it the right way. (You can use WinMerge or any dedicated software for further investigation) Another interesting feature that I missed.... Components can be: additional (empty) folder additional file (the file doesn't exists in the application) replacing file (the file will replace the original one to bring some changes) It lacks another one, the best one in fact: the regexp-replacer. Instead of providing the whole file that will scratch an original one, it is more powerful to describe what needs to be changed. In *nix environement, I would write it this way: sed -i -e 's/some_regexp_to_replace/the_replacing_text/g' theFileToModify So I am coding another type of file in the archive that will be: some_path/someFileName.extension.DyRep The extra .DyRep extension means 'do not scratch the file with this one but apply regexp replacement instead'. Let's see an example: Scripts\net\events.lua.DyRep which content will be sort of (I am not fixed to the grammar): ##DyRep_REPLACE## local report = function(msg, ...) net.recv_chat(string.format(msg, ...)) end ##DyRep_WITH## local report = function(msg, ...) --net.recv_chat(string.format(msg, ...)) end ##DyRep_DONE## I am sure that you have understood the meaning. Thus, the collision risks with another module about the same file is smaller (I have to check that the impacted text differs), It is more robust to new DCS versions, because even if the new version does modifications on other lines, I consider it as repairable if I still find the searched text. With a whole text replacement, the status would be "broken". My first motivation was the lack of features in JSGME. Edited September 16, 2014 by galevsky06 Link to comment Share on other sites More sharing options...
Flagrum Posted September 16, 2014 Share Posted September 16, 2014 Interesting project! ... and right away a feature request: what about a "create mod" function? What I mean with this is, let the user change any file in the installation directory directly. Then your tool detects the changes and creates a .ZIP with all changed files - ready to be used as a mod in a different installation. Ideally the function would somehow support even cases where the installation already contains other installed mods. But I am atm unsure of how to deal with that, tbh. Maybe just show the conflicting files ("xyz.lua is already used by mod ABC"? Or something more intelligent ... like a 3 side diff to determine if the changed lines of the installed mod conflict with the to-be-created mod? Anyhow, such a function would greatly help with creating mods. One would not need to keep track of the changed files, create/maintain the mod folder structure, keep the turn around times down, etc. Link to comment Share on other sites More sharing options...
jimcarrel Posted September 16, 2014 Share Posted September 16, 2014 Okay, I did sort of understand, but I was looking at it backwards. If you install a mod, and run update without remembering to remove the mod first. Then DyMOD will definitely let you know whether or not you can reinstall it after the update? Then if you are the author of mod then he or she just has to compare the files for offending lines. It will be of benefit to end users of mods, (if adding mods with your program) then they can more readily ask mod authors for updates. LOL. All kidding aside, it sounds excellent Win 10 64 bit Intel I-7 7700K 32GB Ram Nvidia Geforce GTX 1060 6gig Link to comment Share on other sites More sharing options...
galevsky06 Posted September 17, 2014 Author Share Posted September 17, 2014 (edited) Interesting project! ... and right away a feature request: what about a "create mod" function? What I mean with this is, let the user change any file in the installation directory directly. Then your tool detects the changes and creates a .ZIP with all changed files - ready to be used as a mod in a different installation. Ideally the function would somehow support even cases where the installation already contains other installed mods. But I am atm unsure of how to deal with that, tbh. Maybe just show the conflicting files ("xyz.lua is already used by mod ABC"? Or something more intelligent ... like a 3 side diff to determine if the changed lines of the installed mod conflict with the to-be-created mod? Anyhow, such a function would greatly help with creating mods. One would not need to keep track of the changed files, create/maintain the mod folder structure, keep the turn around times down, etc. There is two different people in my mind: - mods users that should live safe with DyMOD + avoid to touch/modify/put hands on applications files (they could do things that would be considered as trustable as DCS Update changes). Trust DyMOD, trust mods author, and if you regret... let's uninstall via DyMOD ! - mods makers that should not ignore how to put relative files paths into a folder then zip it and rename the extension. I don't want to cope with the mess of what I can trust or not from external modifications. It is out of DyMOD soft scope. If you deal with applications files, it may impact mods statuses, so you do that at your own risk. Well, the whole application may be broken... I hope that you understand my point :) Edited September 17, 2014 by galevsky06 Link to comment Share on other sites More sharing options...
galevsky06 Posted September 17, 2014 Author Share Posted September 17, 2014 (edited) If you install a mod, and run update without remembering to remove the mod first. For sure you don't have to care about it... this is the very first feature I wanted into DyMOD ! Who remember to disable mods before clicking YES on the DCS Update pop-up ??!? :D Then DyMOD will definitely let you know whether or not you can reinstall it after the update?You will ALWAYS be able to either install a not "installed" mod, or uninstalled a mod which status is not "uninstalled". Then if you are the author of mod then he or she just has to compare the files for offending lines. It will be of benefit to end users of mods, (if adding mods with your program) then they can more readily ask mod authors for updates. LOL. Yep, fix it in your own if you can, and encourage the mods author to publish a new version. If not... let's fork ! If the guy wanted his mod to be private, he would have shared it within his closed circle only.... All kidding aside, it sounds excellent:) Edited September 17, 2014 by galevsky06 Link to comment Share on other sites More sharing options...
Home Fries Posted September 17, 2014 Share Posted September 17, 2014 Looks interesting. I'm willing to test and provide feedback. I have experience as a modder, software developer, and test engineer. -Home Fries My DCS Files and Skins My DCS TARGET Profile for Cougar or Warthog and MFDs F-14B LANTIRN Guide Link to comment Share on other sites More sharing options...
biller Posted September 17, 2014 Share Posted September 17, 2014 What is the tool about? [sIGPIC]http://bbs.3gofly.com/data/attachment/forum/201307/23/133241qur1slx8ux2ev1t7tt.jpg[sIGPIC] Link to comment Share on other sites More sharing options...
galevsky06 Posted September 17, 2014 Author Share Posted September 17, 2014 What don't you understand in post #1 ? Link to comment Share on other sites More sharing options...
galevsky06 Posted September 17, 2014 Author Share Posted September 17, 2014 Looks interesting. I'm willing to test and provide feedback. I have experience as a modder, software developer, and test engineer. Nice :thumbup: Link to comment Share on other sites More sharing options...
redterror Posted September 17, 2014 Share Posted September 17, 2014 Hi - I'd like to test. I'm a software developer by day and I have experience with basic customizations to DCS (not really full-blown mods, just tweaks). Link to comment Share on other sites More sharing options...
galevsky06 Posted September 17, 2014 Author Share Posted September 17, 2014 Nice, you are 2 at that time. I am currently preparing the release 4 test. I will leave on next Saturday for my summer vacations. Do not expect to get it before October. Thks for you help ! :thumbup: Gal' Link to comment Share on other sites More sharing options...
JayPee Posted September 17, 2014 Share Posted September 17, 2014 This looks very interesting! I've always felt that JGSME lacks flexibility but in the land of the blind, one-eye is the king. i7 4790K: 4.8GHz, 1.328V (manual) MSI GTX 970: 1,504MHz core, 1.250V, 8GHz memory Link to comment Share on other sites More sharing options...
galevsky06 Posted September 17, 2014 Author Share Posted September 17, 2014 (edited) So true. ;) Edited September 17, 2014 by galevsky06 Link to comment Share on other sites More sharing options...
jimcarrel Posted September 17, 2014 Share Posted September 17, 2014 Would you put me on the list. I'd like to have a go. I have tested with modifications for CMS software...mostly Joomla Win 10 64 bit Intel I-7 7700K 32GB Ram Nvidia Geforce GTX 1060 6gig Link to comment Share on other sites More sharing options...
galevsky06 Posted September 17, 2014 Author Share Posted September 17, 2014 Sure, welcome :) Link to comment Share on other sites More sharing options...
galevsky06 Posted September 18, 2014 Author Share Posted September 18, 2014 News inspired me... :D Link to comment Share on other sites More sharing options...
JayPee Posted September 18, 2014 Share Posted September 18, 2014 Do you have a list of features which are abd which aren't working (yet)? i7 4790K: 4.8GHz, 1.328V (manual) MSI GTX 970: 1,504MHz core, 1.250V, 8GHz memory Link to comment Share on other sites More sharing options...
galevsky06 Posted September 18, 2014 Author Share Posted September 18, 2014 (edited) My statuses: into the back-log || once planned V designed || once all tech. details are cleared in mind V implemented || once all unit tests are OK + manual testing like a short QA campaign V beta released || once no more issues detected in a reasonable time slot V stable released The current version has been implemented, and will be beta-released (to testers only) in less than a month. It includes: Everything said done in post#1 (smart install/uninstall of JGSME + DyMOD .dmz mods in as many applications as user want, flexible Mods Library, dynamic-computation of statuses, anti-collision check at installation stage, automated application updates check..) Mods Ownership tool Mod Creation wizard (based on a ready-to-zip folder to select and .metadata generation) What is currently implemented (more unit testing/improvement required): php5 application to host DyMOD files The .DyRep format that applies changes instead of replacing files. You will get these two features AFTER the beta release above. Other questions ? :) Edited September 18, 2014 by galevsky06 Link to comment Share on other sites More sharing options...
Abburo Posted September 19, 2014 Share Posted September 19, 2014 Do you need one more tester? Here I am too if needed. Romanian Community for DCS World HW Specs: AMD 7900X, 64GB RAM, RTX 4090, HOTAS Virpil, MFG, CLS-E, custom Link to comment Share on other sites More sharing options...
Recommended Posts