[1.3] [KV] ModSync RW

Started by Kiame, June 01, 2018, 12:13:30 AM

Previous topic - Next topic

Kiame

Find out when there are newer versions of a non-steam game available.

Consider this a spiritual successor of ModSync.ninja (which should be disabled before use). The main difference being that this is not centralized; thus no cost to run. This leverages hosting sites like Github, from which versioning information can be pulled.

Requires the mod's author to create a ModSync file and update the version number as new versions are released.

Initially there will be few to no mods listed in the ModSync window. Over time as developers adopt this more will show up. Also, only non-steam mods will ever be shown since steam mods will automatically stay up-to-date.

Mod Authors: Instructions to create a ModSync file

  • Enable Dev Mode
  • Go to the Mods page
  • Select your mod
  • On the right side there will be a new button "Create ModSync File"
  • Fill out the information on the new window
  • Confirm will be enabled once the Host information is complete and the "Validate" button has been clicked and the About.xml was successfully found.

Hosts:
Note: Currently Direct, Github, and Gitlab as a host are supported. Here are pages with instructions on how to fill each form of host out:

Additional Notes:


Translators:
-frenchiveruti - Spanish
-kaptain-kavern - French

Thanks:
-StickieBE - Added BitBucket support


Original Idea was from ModSync.ninja by historic and z_jasmi

Steam

Direct Download:
1.3

B18
B19
1.0
1.2

Github







[ For Modders ]

Nightinggale

We have such a great new tool, which brings version control without relying on a single person/server and yet nobody replies  ???

I just released ModCheck 1.7 and naturally it comes with ModSync RW support. Now we need to see other mods adding support as well.
ModCheck - boost your patch loading times and include patchmods in your main mod.

Kiame

 :)

My current plan is to plant the seed - release the mod - get feedback for a few weeks and as RW 1.0 is coming start a greater push for devs to pick this up as they release for the final game.

historic_os

#3
it's too bad that mod version sync did not become the norm in RW. I think that players are missing out on a lot of great new features and bug fixes in mods. for developers, it dosent feel great knowing users of your mods are not seeing the fruits of your hard work.
obviously, we've talked about all this with no luck with modsync ninja. I hope you are correct by assuming RW 1.0 will bring a wave of new players and mod developers who will find it important.

as per ModSync, I've said before on the other thread and gonna bring it up again to push it - please support none github mods.
the ideal solution will be to query this specific forum.
have the information stored in the mod forum message. if it's too ugly, there are many ways to hide text here I've tested during the development of modsync ninja from extremely small invisible text to keeping the text in an image URL (as I ended up doing).

the forum is a common ground to all mods and I think should be prioritized as a sync method. I've noticed that you created a sync factory, I can implement that forum agent if you want, but I wouldn't have time to do it anytime soon. so, if you (or anyone else) can pick it up it would be great!


p.s. with modsync ninja all updates were stored on the database, so I could check if any update between local version and latest was "save breaking" for that flag. since you don't have that version log how does the feature work now?

Kiame

What other hosts beyond github is desired? I've tried to make it as easy as possible to support new ones. TBH it'd take me all of an hour or two to get a new one up.

As stated above, a host just needs to have the About folder accessible externally and a page from which the mod can be downloaded.

Kiame

#5
To that end i realized i should have included a direct means to point to each piece specifically.

Adding a 'Direct' page in which developers can paste the specific uri for the About.xml, ModSync.xml, and Download page.

While this can be used for github and many other pages, it's not as dynamic

Edit: It's good to have a day away from the code... cleaning up with some refactoring  :)

Kiame

#6
Update:
Added another means by which developers can link to their mods: "Direct"

With Direct, all that's needed is the uri to the raw text About.xml and Download page. After the ModSync.xml is created put the ModSync.xml file into the same host directory as the About.xml.

Added links to wiki pages that go into more details on creating/updating the ModSync file via Direct and Github means.

Canute

Quote from: Kiame on June 03, 2018, 07:23:57 PM
:)

My current plan is to plant the seed - release the mod - get feedback for a few weeks and as RW 1.0 is coming start a greater push for devs to pick this up as they release for the final game.
I hope some of them notice it.
Did you test it, if it works fine with the Workshop. Not that i use steam, but if it got a conflct with workshop the devs won't integrate a versions checker.

Roolo

First if all, I'd like to say you did an amazing job and created a great tool. I highly value that you're persevering in creating a mod version checker.

Quote from: historic_os on June 03, 2018, 10:24:33 PM
have the information stored in the mod forum message. if it's too ugly, there are many ways to hide text here I've tested during the development of modsync ninja from extremely small invisible text to keeping the text in an image URL (as I ended up doing).

the forum is a common ground to all mods and I think should be prioritized as a sync method. I've noticed that you created a sync factory, I can implement that forum agent if you want, but I wouldn't have time to do it anytime soon. so, if you (or anyone else) can pick it up it would be great!

I also think this is the way to go. Right now the responsibility of indicating mods are updated are in hands of the mod developers. Like we experienced in the past, mod developers are often reluctant to introduce extra steps in their update cycles (even if the steps are very tiny). I don't blame them, updating mods is already a hassle, and when the tool isn't popular yet, it only helps a handful of users. Getting the tool popular is the only way of success, and that's pretty hard to achieve.

I think the easiest way around this is, like historic_os suggested, is to have the information stored in the mod forum message. When implemented properly this can put the responsibility away from mod developers, and place it in the hands of the community. All that would ideally be required to indicate if a mod is updated is a small tag in a message on the thread belonging to the mod, like [ModSyncRW, version =1.1]. You could even omit the version, or keep the information in a nice looking image. The nice thing about this is that whenever a mod developer doesn't do this after releasing an update, regular users can do it by replying to the update post and saying "hey, nice update! [ModSync]". 

There are some issues with this approach, but I don't think they are problematic. First: How do you detect if a thread belongs to a certain mod? Parsing forum titles and finding matches with data in the About.xml wouldn't be reliable I think. A better solution would be to add the mod name in the modsync tag, so [ModSyncRW, modName="Name"] (this tag would only need to be posted once per thread). So what if a malicious user places tags in the wrong forum thread or posts a tag when the mod isn't updated? Well the worst that can happen is that mod users are directed to the thread, find out someone's being annoying, report this behaviour to the moderators, resulting in the malicious user getting banned/warned and the post being removed. So the only problem is that this gives the moderators some extra work. I cannot speak for them, but I hope they value a working modsync system enough to accept this. Moreover, I think the community is responsible and mature enough to not be annoying.

By the way, I think this system can co-exist with the current system that's in play, so mod developers that don't want to rely on the forum system can also use ModSyncRW.

RemingtonRyder

Releasing small incremental updates to mods is not necessarily the way to go.

It can take weeks, even months for the right kind of feedback to trickle in. So these days I tend to do a big update when I've had time to test the mod, with several test releases in between.

It's not that I won't use a ModSync type of service, but, as it turns out, I don't update very often.

Nightinggale

Quote from: historic_os on June 03, 2018, 10:24:33 PMp.s. with modsync ninja all updates were stored on the database, so I could check if any update between local version and latest was "save breaking" for that flag. since you don't have that version log how does the feature work now?
How about adding a list of savegame breaking versions, or even just last savegame breaking version? It will require converting the version string into Version to figure out if a version is newer than another though, meaning you can can only use 2-4 ints, not characters like b (beta) or similar. Right now all it does is comparing two strings to see if the local matches the remote.
ModCheck - boost your patch loading times and include patchmods in your main mod.

ZE

wish this had a direct update button, that downloads, deletes and replaces mods on a server

Kiame

#12
Quote from: ZE on June 04, 2018, 10:10:19 AM
wish this had a direct update button, that downloads, deletes and replaces mods on a server

For those using a git repo, that's what 'git push' does

If you mean downloading and updating the mod for the users... it's a problem of security. In this type of system a malicious actor can post a zip file that, when opened, would inject a virus. This way the user is directed to a site where they can verify the validity of the page and the download.

meowmeow

Have you considered gitlab or other alternatives?

Kiame

I can take a look at gitlab, know any mods that use that so i can test?

Also using 'Direct' should work for all repos