Jump to content

Derethevil

Recommended Posts

From a quick readup that looks like it could work pretty nicely. Thanks for the links and legwork!

 

I started putting together a "moddb" logic, and looks like it could go pretty cleanly into MO, actually.

There are some questions like metadata storage and using MO's downloader for arbitrary urls (code only shows nexus downloads), but that hopefully shouldn't be a big problem

 

Cool. Hope that will give you quick start without having to implement every base feature of mod-manager

Link to comment

I put up a very barebone implementation of it at https://github.com/TheTerrasque/yamm - haven't tried integrating it with MO yet. I also set up a very simple sample repository with 6 mods in to showcase the functionality.

Right now it's very very simple, little error checking, and missing many parts. But it works.

 

Putting it up so people can have a look at the idea and perhaps try it and give some feedback

 

And you need to have python installed to run it :)

Link to comment

It works! Noticed non-catched exceptions while trying to apply show, download commands to invalid mod names, though I understand, that this is not important. Would be cool to parallelize download process.
Just to let other people see it:
 

~/Desktop/yamm-master$ python yamm.py add "http://terra.thelazy.net/yamm/mods.json"
~/Desktop/yamm-master$ python yamm.py download Defeat
Mod 'Defeat' depends on : SexLab, SkyUI, SKSE, FNIS, UnofficialSkyrimPatch
Starting downloads..
 Downloading Defeat [1/6]
  100% - 10184 kb / 10178 kb
 Downloading SexLab [2/6]
  100% - 77472 kb / 77471 kb
 Downloading SkyUI [3/6]
  100% - 1384 kb / 1376 kb
 Downloading SKSE [4/6]
  101% - 552 kb / 544 kb
 Downloading FNIS [5/6]
  100% - 2760 kb / 2757 kb
 Downloading UnofficialSkyrimPatch [6/6]
  100% - 94120 kb / 94116 kb

Link to comment

Yeah, it's pretty rough still. And still tinkering with the basic setup. For example, I'm thinking of resolving dependencies in a more flexible way - right now it's very error prone and can't handle multiple mods providing same dependency, nor does it do recommended well. And no version checks. And the system doesn't keep track on when the last update was seen :D

 

Also, I'm writing the json file for hand now and updating dependencies manually. And don't think I have all the Defeat resources in yet. And service listing / editing, and gui, and a thousand other things :P

 

But it works. It's usable. It shows the logic. Also, the idea is that you can have multiple services added. For example nexus and loverslab, and it will resolve dependencies as long as the mod names are the same (which they will tend to be, as you use the active mod name when you add it to the dependency list), and they will compliment each other. Nexus is the one big list of all mods, while LoversLab have the kinky mods Nexus don't have. And anyone can set up their own service, all they need is a web host. And that can then work together with the other services. For example you have SmallMod Beta on a self-run service that pulls in SexLab from LoversLab, which then pulls in SkyIU from Nexus, seamlessly.

 

Also, the system is made so it should be easy for people to volunteer bandwidth. Master list can contain sha256 hash, which YAMM will verify after downloading, thus protecting against corrupted downloads and malicious tampering. The json has a list of urls to download from, which the client (at the moment) will pick from randomly. In fact, the whole process can be automated, with a script anyone can run that copies the files locally, then sends a ping to a service-defined url which then can use that to keep a list of updated mirrors.

 

Yeah, I have some big visions for what it can do ^^ We'll see what it will do in time

 

Anyway, gonna have a look at Defeat and maybe another mod, see if I can add all to the json - and then head to bed.

Link to comment

Yeah, it's pretty rough still. And still tinkering with the basic setup. For example, I'm thinking of resolving dependencies in a more flexible way - right now it's very error prone and can't handle multiple mods providing same dependency, nor does it do recommended well. And no version checks. And the system doesn't keep track on when the last update was seen :D

 

Also, I'm writing the json file for hand now and updating dependencies manually. And don't think I have all the Defeat resources in yet. And service listing / editing, and gui, and a thousand other things :P

 

But it works. It's usable. It shows the logic. Also, the idea is that you can have multiple services added. For example nexus and loverslab, and it will resolve dependencies as long as the mod names are the same (which they will tend to be, as you use the active mod name when you add it to the dependency list), and they will compliment each other. Nexus is the one big list of all mods, while LoversLab have the kinky mods Nexus don't have. And anyone can set up their own service, all they need is a web host. And that can then work together with the other services. For example you have SmallMod Beta on a self-run service that pulls in SexLab from LoversLab, which then pulls in SkyIU from Nexus, seamlessly.

 

Also, the system is made so it should be easy for people to volunteer bandwidth. Master list can contain sha256 hash, which YAMM will verify after downloading, thus protecting against corrupted downloads and malicious tampering. The json has a list of urls to download from, which the client (at the moment) will pick from randomly. In fact, the whole process can be automated, with a script anyone can run that copies the files locally, then sends a ping to a service-defined url which then can use that to keep a list of updated mirrors.

 

Yeah, I have some big visions for what it can do ^^ We'll see what it will do in time

 

Anyway, gonna have a look at Defeat and maybe another mod, see if I can add all to the json - and then head to bed.

 

It will also work like a torrent? wow.. 

 

You could also try to post it on bethsoft.com Skyrim sub-forums to get more visibility, idea-contributors and etc. Though, note, that they do not allow adult content (even in JSON files?).

 

 

Link to comment

> It will also work like a torrent? wow..

 

No, but I have been thinking about that. What I meant is that it's easy for other people to set up mirror hosts of the content, and easy for the one running the service to administer it. I have been thinking about adding torrent support, but right now that would complicate the code and I want to focus on getting a solid core first.

 

I've been working a bit on it during the weekend, and it has an extremely simple GUI at the moment, that more or less works. I also made a small web app to make management of the server files easier. Which also uncovered a bug with file verification that I just fixed.

 

I still haven't looked closely at MO integration, but 90% of what I've made so far will be needed there anyway. I am toying with the idea of making a lightweight mod installer too, with the goal of having it basically be one-click install for a mod + dependencies. MO is great, but it's also not the most userfriendly one. I discovered that the hard way when trying to help a very noob friend install a mod via IM's :P

Link to comment

Project status update:

 

Yes, I'm still working on it :) The core of the program is starting to become solid. There's still a few issues, but the majority now is missing nice-to-have features instead of this-won't-work-without-it type of issues. I've rewritten the dependency resolver, and it now handles dependencies not in the repository, and recommended and similar. And it's more elegantly written.

 

I've also started with MO integration, but have hit a bunch of snags there. I have limited integration now with an RPC type plugin for MO, but a lot of the features I need seem to not be exported to python, or not available at all. Haven't contacted Tannin about it yet, but it looks like it at best need a new MO release.

 

Plans ahead:

  •  More nuanced and better download dialogue, lots of improvements needed here. MO tie-in, corrupted files handling, choosing what to download, cancelling a transfer, and also :
  • Torrent support, possibly via Transmission torrent client. Transmission have a very clean and seemingly easy to use RPC built in, that's on by default. It's well documented and looks ideal for this use. Problem is it's not officially on windows.
  • Remove requirement of a file for each entry. That will allow description and/or homepages for non-distributable things like SKSE, Dawnguard and so on. It will also be needed for magnet-link only download.

Right now it's at a stage where the basics works, and it would be nice with some more widespread testing and feedback, and ideally some larger scale mod repositories.

Link to comment
  • 4 weeks later...

Hello! Project updates!

 

Right now this is growing into a pretty solid mod distribution system, which then relies on tools like Mod Organizer to handle the mod installation and management (which is mostly a solved problem in my opinion).

 

Since last time I've made the MO communication a bit better and easier to get working (Requires Mod Organizer 1.3.5 or higher to work) and gotten pretty far on the torrent side. It's more or less hooking up with various torrent client api's and let them do the downloading. I've also created a YAMM protocol that lets you easily add services and open mod entries by clicking on a link on a webpage. Which leads me to the next bit..

 

I've also developed a web service at http://yamm.thelazy.net/ which already automatically creates torrents and seeds them for added mods over a certain size, and has three services set up with some mods on.

 

And the third, which binds it together, I created a Windows Installer (5.5Mb) for it that contains everything necessary and sets things up as they should be. Including the protocol handlers and Mod Organizer plugin installation! (both are optional, but are checked by default)

 

So with this, it should be a very easy affair to test it out, and if everything works perfectly.. After install you should be able to click on a yamm link and have a mod open in YAMM. Edit: awww... forum software filters away the test link :(

 

I haven't tested the installer on a wide variety of systems, so it might fail on some. If so, I want to know about it. In fact, all feedback is welcome!

Link to comment

Hello,

 

I used it and everything works for me (downloads and install through MO). I have also added your three services (the only way for downloading ?).

To put the requires mods together is a good idea. I can't checked Torrent process because my client (qbittorrent) is unknown I suppose.

 

Thanks for your work.

Link to comment

Hello,

 

I used it and everything works for me (downloads and install through MO). I have also added your three services (the only way for downloading ?).

 

To put the requires mods together is a good idea. I can't checked Torrent process because my client (qbittorrent) is unknown I suppose.

 

Thanks for the feedback! It's good to know that it does work for other people too :)

 

You can also download a mod directly by visiting the mod entry on the site, like for example http://yamm.thelazy.net/mods/mods/199/- but the download speed is limited to max 500kb/s after about 8 mb transferred on a file. The intention is to use bittorrent for the larger files :)

 

The client support for bittorrent isn't done yet (I have to rewrite the download system, plus add RPC support for different torrent clients), but the server already have torrent support - there's a torrent download option on the mod I just linked, for example.

Link to comment

Yeah. Unless LL adds support for it, each mod needs to be added to that system. Adding a mod to that web interface looks like this, so it's not that much work really. And if LL added support for it, a lot could be automated.

 

The biggest challenge is the required / recommended metadata, but that could possibly be semi-automated and/or filled in by users.

Link to comment

Works great as for WINE. I know, WINE is not the target platform (and I don't play Skyrim via WINE). But, since I promised..

 

- Installed it fine (alongside with MO)

- added default service, updated DB

- downloaded Racemenu, and it's deps, it marked RM archive as damaged

- "To MO" installed the RM in MO :)

- Installed Defeat in the same  way

 

It seems like MO can't handle 7z archives under WINE:

 

20:55:37 [D] using mod name "SexLab" (id 0) -> C:/users/me/YAMM/files/SexLabFramework.v159c.7z
20:55:37 [D] integrated archiver can't open C:\users\me\YAMM\files\SexLabFramework.v159c.7z. errorcode 8
20:46:34 [D] passed mod id: 0, guessed id: -1

 

Link to comment

Great :D

 

"downloaded Racemenu, and it's deps, it marked RM archive as damaged" - hmm.. It shouldn't do that.. That means that the hash of the local file is different than the hash the server recorded for it, which either means the checksumming is going wrong somehow or the download was corrupted somehow. None of those should happen :D

Link to comment

Great :D

 

"downloaded Racemenu, and it's deps, it marked RM archive as damaged" - hmm.. It shouldn't do that.. That means that the hash of the local file is different than the hash the server recorded for it, which either means the checksumming is going wrong somehow or the download was corrupted somehow. None of those should happen :D

 

The interesting thing is that newly downloaded small files (< 1 MB) are not marked as damaged. And already downloaded files (even pseudo-damaged one) are marked as 'Completed'

Really hope this will be integrated into LL

Link to comment

A Loverslab centric mod manager would be unattractive to some people like myself, I think.

 

MO has a nice feature scope, but its behaves as if the UI does not even have its own thread. :(

 

A properly written MO that can talk to nexus AND loverslab via REST API or sth like that would be nice :>

Link to comment

Hi there.

Well after i thought through a few things, i somehow came to the idea, that it should be possible for Loverslab to have its very own Modmanager for Mods that are getting uploaded and updatet here.

Since Loverslab has its own "Database", why not make a program that always suggest an update for the mod, if the modder,artist, animator, etc. uploaded a new file to the Loverslab database.

I mean you can search for mods who are uploaded by lets say blabla.

If he now uploads a new version of his body mod, you get a small annotation in the LL-Modmanager, which you can click and it redirects you to the mod.

Maybe even downloads it for you as well, just like the <Put the pooty Sitename here> Mod Manager does already.

 

As i said.

We have our database. We have people here who really can do magic. 

Why not give it a try?

 

I would go right ahead and try it myself, but i neither do have the knowledge, nor do i have the time for it right now to learn to do it.

 

Thanks so far for reading this little topic.

See ya.

Derethevil.

plz make this. 

plz. ppl. 

 

its such an annoyance to have to check all the mods you manually install for updates. 

 

if it just works along side the NMM that would be preferable, because then theres no conflicting shit... >.> 

 

anyway. i'll keep my eye on this thread. 

 

o.o

-.o

o.o

o.-

o.o 

 

always one eye atleast. 

Link to comment

A Loverslab centric mod manager would be unattractive to some people like myself, I think.

 

MO has a nice feature scope, but its behaves as if the UI does not even have its own thread. :(

 

A properly written MO that can talk to nexus AND loverslab via REST API or sth like that would be nice :>

 

Well, my system have an open standard and no restrictions on sites it can work with. But the site admins have to add support for it.

Link to comment

 

A Loverslab centric mod manager would be unattractive to some people like myself, I think.

 

MO has a nice feature scope, but its behaves as if the UI does not even have its own thread. :(

 

A properly written MO that can talk to nexus AND loverslab via REST API or sth like that would be nice :>

 

Well, my system have an open standard and no restrictions on sites it can work with. But the site admins have to add support for it.

 

 

Then in my eyes there is no need for a new tool but for loverslab to add support.

That would be great!

Link to comment
  • 4 weeks later...
  • 2 weeks later...

How much server space does LL have?

Can it take more mods than it currently has?

What if the mod creators stop uploading to nexus?

Wouldnt that help ALOT?

Most of the mod creators hang out in #LL chat.

 

Convince them to move to just LL and we would be the central hub for all mods.

There is a major plus to becoming the central hub for skyrim mods.

The admins here arent Halfwit jackasses like the ones at nexus.

plus this is more of a helpful modding community. Rather than that harsh enviroment.

 

Couldnt a google cloud, or a ghostbox be used to host files?

thats free storage right there.

 

You are joking right, it doesn't matter how many mod authors are using LL chat, much as we may lke it here, we are a microscopic fraction of TES and Fallout Modders. Steam couldn't become the hub of modding and only managed to make the Nexus, more popular than ever.

Many more mods appear on Steam and Nexus combined, never mind separately, than here. What on earth makes you think LL can ever depose the Nexus.

LL is an unabashed adult site, right above this is a thread called

Yet another Steam thread demonizing LL and sexual mods in general.

Many mod users will never come here, the ads alone can put them off, America especially is bigoted against sex in games. Extreme violence is approved of, but showing a female nipple or pubes with nothing else revealed and they go ballisic.

I doubt Bethesda would ever allow LL to be the hub of modding, if it was even possible, it won't ever be possible.

Only Bethesda could depose the Nexus and then only by forcing Bethesda Net on us all. That would depose all Open modding sites including LL.

 

Original Topic

As for a LL MM, in the style of NMM, well that is actually a port of FoMM (Fallout Mod Manager) and for Bethesda Games Modding, FoMM is still better than NMM, if Nexus can't make one from scratch, why would LL succeed

 

A download Plugin for MO is the most viable option, the plugin itself isn't the main issue though. Nexus has a protocol (.nxm) to enable a manager to isolate the files it needs to intercept. LL would need that sort of download management system retro fitted to every download, never mind all the files hidden in the forums.

 

The best you can do is add a link in MO's per Mod Note system taking you to the right page, it would be great to have a plugin for LL.  It would be a lot of work for little benefit to LL though.

 

To be honest I'd prefer to have manual file tracking, or some other way to let me know when a "Most Recent" change, is actually a new mod and not just a page edit. That would make more sense to me.

Link to comment
  • 2 months later...
  • 3 years later...

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use