Jump to content

A Mod Fetcher/Installer project called YAMM


hellyou

Recommended Posts

Hey everyone!

 

Some time ago I started a small project that could download a mod and all dependencies, and install them in MO.

 

This is the thread where I talked about it

 

Short highlight:

  • Basics works
  • Supports MO
  • Uses an open format and protocol that can be easily supported by for example LoversLab
  • Can work across different sites
  • Support file mirrors and bittorrent (via Transmission) for downloads, to help bandwidth use
  • Is meant to be launched from the site hosting the mod, so you'd browse LL as usual and you click a download link. Program starts, lists mod + all dependencies, downloads them, and installs them in MO for you. Example
  • Can notify when new version of a mod gets released

As I predicted in the tread, it kinda fizzled out. But lately I've been thinking of reviving it, especially considering Skyrim SE's skse will be out some time, and it would be nice to have this kind of functionality by then :)

 

Now, the basics do work already, in some fashion. There's still a lot left to do, but it's usable in the current state.

 

What's missing:

  • Dependencies on specific versions of mods
  • UI rework
  • Resolving multiple possible mods providing same functionality
  • Supporting xdelta patches. This would help a lot on bandwidth and storage
  • Getting sites to actually support it
  • Adding support for other mod managers than MO
  • Adding support for other torrent clients

I put up a test website showing the functionality at http://yamm.thelazy.net/mods/ and the client can be grabbed at https://github.com/TheTerrasque/yamm/releases

 

The question is, is there enough interest to get this moving forward again?

Link to comment

Out of curiosity, how exactly does the dependency fetching work? This seems like an excellent idea, and quite ambitious, but from what I'm seeing on the test site you've linked, it looks to be a more manual process. Do you have an automatic solution? It'd seem a bit difficult to account for every single mod and fetch an automatic, complete list of all mods, unless it's configured specifically for the host websites and their linking processes. 

 

Perhaps you thought of this and you've already figured it out or I've overlooked it? You'd need to get it incredibly polished before pitching it to be used with a big modding website. This includes NMM support and probably manual download support as not everyone likes using mod managers for absolutely everything. 

Link to comment

Out of curiosity, how exactly does the dependency fetching work?

There is a JSON file that holds the metadata, and acts as the "channel". Here is an example. Most of the fields are optional.

 

Do you have an automatic solution?

Yes, that's the client here, but it's not locked to that client. Anyone can write a client, since it's basically just fetching and parsing a json file.

 

It does require support from the mod site, and it requires mod authors to add the mods their mod directly depends on. The program can recursively figure out the rest of the dependencies.

 

Edit: Basically what's shown under "Requires" in the "File Information" box on http://www.loverslab.com/files/file/1216-deviously-cursed-loot/

 

If you have the client installed, go to http://yamm.thelazy.net/mods/mods/203/ and click [Open in YAMM] the client will open with the first window in this screenshot. From there it's basically 4 clicks to download it and all dependencies and have it installed in MO (MO must be running, and I recommend having an empty profile).

 

You'd need to get it incredibly polished before pitching it to be used with a big modding website.

The base protocol is already pretty good and flexible, but without an implementation it's more or less invisible. The tools I made to show it aren't polished, mainly due to lack of time and it being one man project, but it should show the potential.

Link to comment

So, essentially, it just registers the names of the mods typed in the required section and automatically fetches them without links? This would be good for working with older mods and any new ones, but can still be compromised by typos and hidden files which used to be on Nexus and now only available on things like google drives. [ie: H.U.E]

 

Naturally, the hidden file instances aren't your problem and shouldn't be, since those are a bit of an up in the air thing, but if it relies on the typed titles, typos could mess that up. Then factor in not everyone types the exact titles to all of the required mods, because a search would bring you to the required mod anyway. For example, typing "SOS" or "Schlongs of Skyrim" would bring anyone searching for required mods to "SOS - Schlongs of Skyrim". This of course isn't the best practice but people do such things all the time. It's a point of concern because if people get comfortable using it and trust it to read everything and get all of the dependencies for them and go through and do whatever, they could miss something vital if it doesn't give some sort of very blatant, noticeable warning for cases like that.

 

I've looked at the program, though, it's got a good start. I really do like what you're doing with it, and I'd help if I had the time to dedicate and didn't have my own projects to tend to. That being said, I absolutely understand why it isn't perfectly polished. Hopefully I'm not trying your patience with my thoughts, I'm not running on much since I've been up for a really long time now lol.

 

I don't deny that it shows awesome potential and I think with other people you could really get the ball rolling, though that's probably one of the biggest challenges. I doubt my interest is the only one really piqued, though some people may not particularly care to comment on it due to having nothing of interest or productive to add. [i encourage lurkers interested to add some rep to the OP to show interest, it can help.] So I personally think you should continue development on it. Maybe add "Interest check" to the title for more input, or add a poll by clicking "Manage topic poll"? Could really help encourage those super passive lurkers to chime in.

Link to comment

Thanks :)
 
Regarding hidden files and titles, it's already sort of worked around / supported.
 
When it comes to names, mods are registered in the system by a tag, that's independent of the name of the mod. And that tag is the one that's being referred to by other mods. Mods can also list other tags they provide the functionality for. For example "Sexlab Aroused Redux" can list the tag for "Sexlab Aroused" to show that it covers that function. Ideally that should be shown as a choice in the UI, but right now the first mod having that tag is chosen when resolving dependency.
 
When it comes to "hidden" files and files not on modding sites, it supports both cross-site resolving (and anyone that can host a static file can provide that) and it supports "empty" entries with just name and homepage link. SKSE and the DLC is examples of that on the test site.
 

So, essentially, it just registers the names of the mods typed in the required section and automatically fetches them without links?


It needs that info in a more structured way than what's provided there, but essentially yes. And that is why it needs to be supported by the site providing the mods. When that's said it's easy to add, and I'd be happy to help with that if needed.

 

My point with that was that most mods on this site have the needed info to support it already :)

Link to comment

Let me tell you this: my ability to understand mods is limited to the point at which that this kind of program would make life easier with less breaking my games because I didn't get hings just right.

 

Now if there was only a program that could simply show mod conflicts in a load order by choosing a single mod at a time and reading what will break and why (TES5edit throws too much complicated info at me), my would be complete.

 

I absolutely support your efforts.

Link to comment
  • 2 months later...

It doesn't seem to be that much interest around it.

 

And working on this alone I won't have much time to work on this :(

Just came across when I was looking through mo code and noticed he laid down some bare bones framework for adding LL DL support. Just grabbed your mob, haven't tried it yet, but am very interested in it and would love to help if capable. I will gladly beta test, and would be willing to help add all the mods I use on LL, that are currently being updated, to your repository. cheers, and pls message me back.

tama.

Link to comment

Hey Tama!

 

That's good to hear :) It is working the way it is now, both the repository at yamm.thelazy.net and the latest release at https://github.com/TheTerrasque/yamm/releases

 

The biggest two technical problems are versioning - currently it has no real concept of versioning - and that the UI and process is a bit clunky. Especially the MO and torrent integration needs some polish or alternative means.

 

But the biggest hurdle is the legal / political issues. Most mods have a stipulation that they're not to be uploaded any other place than where the mod author uploads them. That rule is there for generally very good reasons, although not so much in this case.

 

I'm glad to hear of your interest, and testing / feedback is welcome! I created a user for you on the repository website, since it's rather barebone I like to keep registration manual for now. If anyone else is interested, send me a message. Mod authors are especially welcome!

Link to comment
  • 2 weeks 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