[B18][Mod Updater] ModSync Ninja

Started by historic_os, July 16, 2017, 06:34:45 AM

Previous topic - Next topic

historic_os



ModSync Ninja
Update your non-steam mods!


Struggling to manage all your mods or just really want to know when your favorite mod is updating? use ModSync Ninja!


What's that?
ModSync Ninja is a client-server service that allows modders to push updates to their mods.
When you check the list of mods you use, you'll be able see each mod installed version, current version, and a link to the update on the forums.
All that from the game itself.

Download: Direct | Steam

The project has been revived!
Kiame has joined us. Together, we have decided to give the project another go!

Aside from the project being back up, here's what we have in plan for the near future:


  • Better UI for the in game mod
  • Easier ways to update mods such as automatic build \ commit scripts that update the mod version on mod sync
  • Deliver better update notifications that includes the content of the update: Bug fixes, Feature, Translation and more.
  • Better update notifications by allowing patch notes
  • More, and open for suggestions!

Whos already in? Check the list of registered mods here!
http://www.modsync.ninja/mods


FAQ

  • Is this an auto update?
    Not yet, but it could be, depends on the community response. If everything goes well, a mod hosting and auto updating will be added.
    For now, if there's an update, you'll be directed to download the new version from the author's forum post!

  • Why is a mod I'm using not on the list?
    The author needs to add it to the sync database. Ask them to join, it's easy!

  • Can an update break my save game?
    If the update is a safe one that does not break save games, you'll see an indicator next to the Update button.

  • Will this use up my internet connection?
    An update check is only called once when you open MySync Ninja's menu.

  • Will it conflict with other mod managers?
    No, it doesn't modify the Mod menu.


Connection indicators


Authors:
Kiame, historic, Jas

Wanna learn more? visit: http://modsync.ninja

Client Change log
View on ModSync.Ninja mod page


Canute

I realy hope many modder support this ! :-)
But why you made a steam link for a non-steam updater ? :-)

Lerin

Great nice looking idea :D
Dude make option to download mods from steam to local, and all together will be amazing stuff

PixelBitZombie

If it does what it says it will do, then yes this mod will be one for the books. We just need to hope modders alike support this.
"When logic and proportion have fallen sloppy dead
And the White Knight is talking backwards
And the Red Queen's off with her head"


lost_RD

It seems the website does not support HTTPS?

kaptain_kavern

#5
This is quite nice and promising. I will look at using this with my mods soon.
I just hope lots of other modders will join - from prior experience in other modding communities, the key-point for this kind of projects is  to reach a certain "volume" of authors/uploaders using it

On a side note, I just started to use steamWS and this looks like a way more intuitive process IMHO :p

edit:
forgot the essential: Thank you for your work!

SpaceDorf

If this is going to work it will save my sanity :)
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

kaptain_kavern

I have started to add some of mine. Everything went smoothly. It's really straightforward. Great job.

It's logical from how you described the process but maybe you should add plainly that the name of the mod folder have to match exactly

Completely non mod related : if sometimes you have time and willing to show or explain how it is working/handled/done server-side, as a webdev amateur, I'm interested in those kind of things ;-)

RemingtonRyder

Can't see the use of it, to be honest. I already have a site where people can go to get direct downloads. They don't need to visit the forums.

Sefiriot

Quote from: MarvinKosh on July 16, 2017, 01:41:59 PM
Can't see the use of it, to be honest. I already have a site where people can go to get direct downloads. They don't need to visit the forums.

Well, if I did use your mod, and you updated on the forums: This is supposed to at least auto-alert me that you've updated the mod, and I should get the new version, without me having to remember to check your site for a new update every time I fire up the game. I have to admit that sounds very handy.

Canute

Quote from: MarvinKosh on July 16, 2017, 01:41:59 PM
Can't see the use of it, to be honest. I already have a site where people can go to get direct downloads. They don't need to visit the forums.
Maybe YOU have a site, but not the rest of the users. And maybe this get some support from the moderators of the forum, so when anyone want to release his mod here, he need to made it compactible with this.
When you want realease it on the steam workshop you need to follow some rules too.

RemingtonRyder

I stopped doing mod release posts on these forums a long while ago and this auto version checker isn't going to make me start again. It may be very convenient for you guys, but if it's reliant on the forums then I can't support it.

wwWraith

The thing is that it will work reliably only if all modders will support it and it will be able to support all modders. Until then even if you use just 1 mod without autoupdater, you have to manually check the forums either way. And steam, if it's author prefers it. And github, if they don't care about any other hubs. And their shiny personal sites, if they don't care about any player's convenience. Or google... Personally I have 9 tabs constantly opened in the browser to check for updates. I only hope that there won't be several different auto updating services that will make the things even more complex, like in some other games. But if someone really has the potential, ambition and responsibility to create a standard (or, ideally, official) way to update all mods, it would be really great.
Think about it. Think around it. Perhaps you'll get some new good idea even if it would be completely different from my words.

historic_os

Hey everyone, sorry for the late reply, crashed to sleep shortly after releasing the two posts.
to touch everything that has been said here(sorry, wall of text ill try to add relevant parts from here to the main post at well):

technical questions:

General how is it working -
Synced mods receive an xml file similar to the about.xml file to place in their mod folder. This file stores the mod version and gives the client side mod a reliable way to know mod's version.
Each time a mod pushes an update and uploads the new xml file to the server its being parsed and the new version record is created. Whenever a client asks for details about a specific mod his local version at his mod xml file is being compared to the versions on the server.

The main goal was to make the updating process as smooth as possible. I've had my own mod (industrial rollers) that has seen many updates and i know, first hand, how annoying it could be to upload the new updates and update both forums and steam. While i can't save you that trouble, i can at least make sure the mod sync part is as quick and simple as possible - just changing a value in the XML file and dragging it to the site.
Yes, with additional resources it could be smoother. But please understand, this is an initial release of a project i had no idea how the community would reply to. If modders agree to take part and players find it useful, smoother updating will be the biggest priority.

@lost_RD
SSL certificate(HTTPS) - Aside from the fact a decent certification can cost a lot of money and is another expense on top of the domain, domain privacy and hosting service. there's honestly no need for one at the moment.
HTTPS connection encrypts the data transferred between the client and the server and its main use is to prevent man in the middle attacks (hackers who already tap into your network connection or viruses already sitting on the client's computer).
It does not cover server security flaws or PBKAC.
Anyway, there is no sensitive data being transferred between the server and the client here.
There's no registration at the moment, no name or email being asked for - simply because there's no need for it.
The ModSync.xml file is the only thing being transferred between the client and the server and is completely transparent anyway (any user can view it, its just the mod name, ID and version).
Regarding the "Secret key" its just a tool to verify the mod author, you shouldn't use any of your real passwords for it (It does however use PBKDF2 ontop of SHA1, one way encryption that would take many years of computing to brute force in case you are worried).

If and when an SSL certificate will be required, it will be added. but at the moment id much rather spend the extra money on something else such as a cloud hosting to allow easier mod upload and download.

@kaptain_kavern
Mod folder and general -
Yep i do need to make it more clear that the mod folder is the only mod unique identifier available, ill try to emphasis it even more. Regarding how is it working - i went over it in the top of this post.
And sure, if you have any none related web(client or server) questions, it has been my work for years. I'd be glad to help:) hit me up here or on discord (if the question is related to this project and is too specific, go for PMs for obvious security reasons).

A question from Discord that might pop up here, just to have it covered.
Why is the client side mod sending a ping to google -
As seen in the main post, there are some connection indicators to help help clarify the sync process result.
The possible outputs of a sync request are: success, error due to a server side issue, error due to a client side issue and network connection error. For network connection, both the client and the server's connection is being checked to identify the source of the problem - Is the server offline or is it just the client not connected to the internet?
The most common and accepted none intrusive method to know if a client is actually online is sending a simple ping to google.com, since its always online. The request is simply calling google.com with no additional information, the response is never read, let alone kept.
If you have a personal vendetta against google and don't use it at all to the state a simple call to google.com bothers you - I'm very sorry. i might add an option to completely opt out of this connectivity check, but its on a very low priority.

historic_os

I hate to see how things got out of hand and out of context. This is not a forum replacement and it was never intended to be.
This is simply an additional tool to let users quickly get an overview of the mods they use and the status they are in. It allows them to download updates at the current state by redirecting them to the forums.
It does not list new mods and it is not a discovery tool.
Modders - think about the players using your great mod, they might as well use 100 or 200 more equally awesome mods. Do you honestly expect them to keep check of every single mod? what if they were away the moment you post your update and they miss it because its not on the first page anymore?

answering some general questions:
@Canute why is it on steam - its there for users who use both steam and forums, for mods that decide to not use steam for any reason:)
@Lerin copy mods from steam - you can simply copy the mod folder to your local mods. adding such feature is unfair for modders who prefer to have their mods on steam only.