[1.0] RWMS -- RimWorld ModSorter .. RimWorld mod sorter (Windows, Linux, OSX)

Started by shakeyourbunny, April 07, 2019, 07:05:28 AM

Previous topic - Next topic

shakeyourbunny

Quote from: lunaferret on July 11, 2019, 12:44:33 AMI saw mention of the need to install bs4 here, but it's not mentioned in the documentation.
https://github.com/shakeyourbunny/RWMS/blob/master/docs/documentation.md#missing-modules

This will take care of any missing dependencies and there may be in future more than just BeautifulSoup.

lunaferret

Quote from: shakeyourbunny on July 11, 2019, 07:05:05 AM
Quote from: lunaferret on July 11, 2019, 12:44:33 AMI saw mention of the need to install bs4 here, but it's not mentioned in the documentation.
https://github.com/shakeyourbunny/RWMS/blob/master/docs/documentation.md#missing-modules

This will take care of any missing dependencies and there may be in future more than just BeautifulSoup.

Oh wow, I must have gone over that page at least 5-6 times and completely missed it. Okay then, thank you!

Vehicular_Zombicide

I have the DRM free version of Rimworld, so I don't have any Steam directories to write to. When I tried using the standalone Windows version to sort, it wouldn't get past the configuration page, throwing the following error instead:

** RWMS 0.94.7 by shakeyourbunny ***************************************************************************************
bugs: https://github.com/shakeyourbunny/RWMS/issues
database updates: visit https://github.com/shakeyourbunny/RWMSDB/issues

loading database.

Database (v4, date: Sun Jul 14 17:31:36 2019) successfully loaded.
2879 known mods, 107 contributors.
Top contributors: shakeyourbunny (697), randomnone (205), Black Goat (159), pigand (125), czarneski77 (120),

Loading and parsing ModsConfig.xml
*** fatal error: could not find ModsConfig.xml; detected: 'C:\Users\James\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\Saves/ModsConfig.xml'

Press ENTER to terminate the program.


Attached is the config file for RWMS. Any idea what I'm doing wrong?

[attachment deleted due to age]

shakeyourbunny

It looks like you never started the game at least once, so no ModsConfig.xml can exist.

There is no configuration page, but you can do the following to display a "configuration page":

rwms_sort --dump-config

It will display the detected paths, if you use the the most recent developer commit, it will even check the paths and files if they exist or not.

ThiIsMe007

Hi there,

first thank you for sharing with us your creation. I've only tested it on a couple of mods so far, but it looks very promising from what I could see.

The only issue I had was that your program didn't correctly detect my folder settings, but then my game setup isn't the most orthodox either, since I keep both the Steam and the no-DRM version installed. Manually filling out the rwms_config.ini file did help, but giving the user of your program the option to use profiles in the future, created/confirmed at first launch for example, could be interesting to look into if you don't mind suggestions.

Anyway I had a question for you, which is not directly related to your tool, but I thought you may be best placed to know the answer to it.

What priorities does the game use to load mods from :

  • the Steam mod folder (..\steam\steamapps\workshop\content\294100)
  • the Custom mod folder (..\steam\steamapps\common\RimWorld\Mods)
?

My goal is to fix a "bugged" Steam mod (Startup Impact), by adding a custom Manifest.xml file for Fluffy's mod manager to properly set its load order (absolute first, before "Core").

If I directly modify the Steam mod, my changes will be overwritten by its next update. If I add a local copy of the mod with the same name to the Custom mod folder, I'm not certain that the game takes it from there instead of the Steam mod folder (see my question above). If I add a local copy of the mod to the Custom mod folder with a different name, it works, but your tool detects it as an "unknown" mod.

How should I best proceed ? Thank you again for insight and advice.

ThiIsMe007

Okay, after further testing, I might have a bug to report with a mod unknown to your tool.

The mod was initially placed on the inactive tab (I'm using Fluffy's mod manager). When I launched your program, it detected the mod as unknown and asked me if I wanted to proceed. After saying yes, it placed the mod at the end of my active mod list.

Is it possible to make tool only care about active mods, and leave inactive mods as they are ?

Canute

QuoteManually filling out the rwms_config.ini file did help, but giving the user of your program the option to use profiles in the future
These tool isn't very big, so why you don't have 2 folders with different ini files ?
One for DRM-free one for steam settings ?

Btw. i suggest to use for the DRM-free an override of the default saveddata location, so it use different settings/mods then the steam one.

ThiIsMe007

Quote from: Canute on July 18, 2019, 04:06:41 AM
QuoteManually filling out the rwms_config.ini file did help, but giving the user of your program the option to use profiles in the future
These tool isn't very big, so why you don't have 2 folders with different ini files ?
One for DRM-free one for steam settings ?

Yes, to use different versions of the game.

Sooner or later, I'll probably completely switch to 1.0+, but I'm still not fixed whether I'll use the Steam or no-DRM game for that in the future. Steam has the advantage of mod updates of course, but I don't need or want all the Steam social crap with its overhead while playing, so no-DRM has its advantages too.

In any case, profiles can't hurt (and would be very useful to players like me I think), but as I said, it's only a suggestion.

QuoteBtw. i suggest to use for the DRM-free an override of the default saveddata location, so it use different settings/mods then the steam one.

Excellent suggestion, thank you. I'll have a closer look into that.

To the @OP and tool author, how can I help with reporting unknown mods to your database? Is GIT the only option ?

Canute

When you play with mods, the mod update is a nice feature. So stay with steam.
As non-steam user i can tell you it is sometimes a pain to keep the mod's uptodate.

shakeyourbunny

Quote from: ThiIsMe007 on July 18, 2019, 03:49:37 AM
Okay, after further testing, I might have a bug to report with a mod unknown to your tool.

The mod was initially placed on the inactive tab (I'm using Fluffy's mod manager). When I launched your program, it detected the mod as unknown and asked me if I wanted to proceed. After saying yes, it placed the mod at the end of my active mod list.

Is it possible to make tool only care about active mods, and leave inactive mods as they are ?

Please file unknown mods to the database issues: https://www.github.com/RWMSDB/issues.

The script does not enable disabled mods, maybe this was an oversight that unknown, deactivated mods got automatically activated (and perhaps put on the bottom of the load order).

If the latter is the case, see https://github.com/shakeyourbunny/RWMS/blob/master/docs/documentation.md#interactive-and-misc-options (dontremoveunknown). It may be a side effect of this. If it's true, feel free to file a bug on the issue tracker on https://www.github.com/RWMS/issues.


lbmaian

Hiya, I created a little fork of RWMS: https://github.com/lbmaian/RWMS (pull request: https://github.com/shakeyourbunny/RWMS/pull/25)

It has the following changes:
1) Fix non-active unknown mods being added to ModConfig.xml
2) Add local database json file option (defaults to "rwms_database.json") that appends/overwrites entries in the remote database json, so unknown mods can be more easily sorted locally (note: mods in the local database yet not in the remote database still remain in the unknown mods report)
3) Preserve database ordering of mods within the same category - this also allow reordering of mods within the same category via local database
4) Pretty-print the output ModConfig.xml
5) Add dump-database option which dumps the combined local and remote database json
6) Add dump-database-scores option which dumps the sorted mapping from mod name to sort score as json
7) Show relative paths for local unknown mods in the unknown mods report

There's no built exe for this, so you'd have to download the source ZIP and install/run it with the standard instructions: https://github.com/shakeyourbunny/RWMS/blob/master/docs/documentation.md

ThiIsMe007

@lbmaian Very nice, and thank you for updating this valuable tool. I'm going to test it and report later.

Might I abuse and request a pre-compiled Windows x64 executable please ?


ThiIsMe007

Fantastic, thank you very much. Your additions really made my life easier, especially 5) and 2).

This tool is very much comparable what we have for Skyrim with LOOT, or for Oblivion with BOSS. Hopefully it'll gather enough community support to maintain a curated Rimworld mod database in the future.

May I ask if you've already thought about how to handle requirements while sorting, such as Mod B requires Mod A to be loaded before it (Mod A < Mod B), or more complex chains such as Mod A < Mod B < Mod C ? Not thinking of mods like Giddy, coming with a "core" that can easily be preloaded anywhere, but rather this kind of mod (see Load order section).

Right now I'm working on a rather large mod list, and I manually fix whatever the sorting tool comes up with inside Fluffy's mod manager. It sure would help if more mod authors provided proper Manifest.xml files with their mods.

Anyway, I'll be testing this tool rather extensively this week end, and report any issues I have. Once I'm all done, I shall also log all my unknowns to the GIT.

Please have a nice day.

lbmaian

I actually did think about mod dependencies, but implementing support them is not only a technical challenge (somehow support both Fluffy's Mod Manager's Manifest.xml and Steam workshop dependencies?), but also a design challenge, particularly how mod dependencies should interact with the mod categorization sorting.

For example, "Release Animals into Wild" has a dependency on "Allow Tool", but is categorized as "animal", which is lower than "Allow Tool"'s category of "ui". This is a categorization error, but in the general case, mod dependencies can throw a wrench into the way mod categorization works.

The workaround is to add another categorization right after the dependency's categorization, and indeed, in the above specific case, "Release Animals into Wild" should be categorized as "ui_addon", which is just after the "ui" category.

Another problem is that most mod authors don't bother providing manifests, as you noted. Sometimes they use workshop dependencies instead. Sometimes they just provide explicit guidance in the mod's description. Or sometimes by their very nature, one type of mod just has to load after another type of mod, hence the mod categorization scheme. But sometimes a suitable category doesn't exist.

So rather than provide the ability to create an ad-hoc category, I added the ability to explicitly order mods in the same category: within the same category, mods that appear earlier in the list will load before mods the appear later. For this purpose, the local database's mods are de-facto prepended to the list of mods.

I use this functionality in my local rwms_database.json, for example, to ensure "AnimalCollabProj Patch Pack" loads before "AnimalCollabProj Lite". I also changed "Camera+" to load before "TD Enhancement Pack", with the addition of changing "Camera+" from "ui" to "annoyance", due to a conflicting mouse zoom feature, but I'm not sure what the proper categorization fix for that should be. "TD Enhancement Pack" just does a bunch of things, some of which address annoyances, and some that are really just UI stuff.