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:
- Direct (https://github.com/KiameV/rimworld-modsync-rw/wiki/Create-ModSync-File-"Direct")
- Github (https://github.com/KiameV/rimworld-modsync-rw/wiki/Create-ModSync-File-"Github")
- Gitlab (https://github.com/KiameV/rimworld-modsync-rw/wiki/Create-ModSync-File-"Gitlab")
Additional Notes:
- Please request or implement other Hosts. Instructions on implementing new hosts are up on the wiki (https://github.com/KiameV/rimworld-modsync-rw/wiki/Adding-a-new-Host).
- Hosts must have the ability to retrieve the About.xml and ModSync.xml. A host must also have a page where the mod can be downloaded from.
- This will use and update the same ModSync.xml file as ModSync.ninja used
Translators:
-frenchiveruti - Spanish
-kaptain-kavern - French
Thanks:-StickieBE - Added BitBucket support
Original Idea was from ModSync.ninja by historic and z_jasmi
Steam (https://steamcommunity.com/sharedfiles/filedetails/?id=1399727830)
Direct Download:
1.3 (https://github.com/KiameV/rimworld-modsync-rw/releases/download/current/ModSyncRW.zip)B18 (https://github.com/KiameV/rimworld-modsync-rw/releases/download/B18/ModSyncRW.zip)
B19 (https://github.com/KiameV/rimworld-modsync-rw/releases/download/B19/ModSyncRW.zip)
1.0 (https://github.com/KiameV/rimworld-modsync-rw/releases/download/1.0/ModSyncRW.zip)
1.2 (https://github.com/KiameV/rimworld-modsync-rw/releases/download/1.2/ModSyncRW.zip)
Github (https://github.com/KiameV/rimworld-modsync-rw/)
(https://steamuserimages-a.akamaihd.net/ugc/928185288339427547/BF74D4CECCE4A0C38F0EEF396DADED536F47286D/)
(https://steamuserimages-a.akamaihd.net/ugc/928185288339427720/DD98F45CBBC8A24CECE748152BC9C527BEE8F33E/)
[ For Modders ](https://steamuserimages-a.akamaihd.net/ugc/928185288339457378/7F0EF6ED4F1AC062ED71DE0CB6D15376F84015DA/)
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.
:)
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.
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?
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.
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 :)
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.
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.
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.
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.
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.
wish this had a direct update button, that downloads, deletes and replaces mods on a server
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.
Have you considered gitlab or other alternatives?
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
Quote from: Kiame on June 05, 2018, 09:53:05 AM
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
I do: https://gitlab.com/rwmods (https://gitlab.com/rwmods). I manage my releases under tags (yes, they don't have a base folder, I need to fix it).
Quote from: Kubouch on June 05, 2018, 10:50:48 AM
I do: https://gitlab.com/rwmods (https://gitlab.com/rwmods). I manage my releases under tags (yes, they don't have a base folder, I need to fix it).
Thanks. I'll take a look at it tonight
Taking a quick look and 'Direct' will work. It doesn't look like it'll be hard to make Gitlab specific either as it's very close to github
The input fields I'm thinking will be available: (ownerand project is filled in using one of your mods as an example. Branch will always default to master)
Owner: [ rwmods ]
Project: [ universal-fermenter ]
Branch: [ master ]
I don't see a need to add a location for downloads as there's no release page or is that where tags come into play? Would another field like this be useful? (this would be a selection box with 2 options)
Download Page: [ ] ->
-
Main Page-
Tags
Update:
Added Gitlab support for developers
Instructions (https://github.com/KiameV/rimworld-modsync-rw/wiki/Create-ModSync-File-"Github")
Tags are a recommended way (https://docs.gitlab.com/ee/workflow/releases.html) by GitLab to emulate the functionality of GitHub's Releases. It is just a convention. They added a Release Notes field to the Git tags where you can put some text or attach a file.
Please request modders to include this in their mods as they get ready for RW 1.0
Thank you
How exactly would one add support for this? Adding a comprehensive guide to the wiki would be a good idea if you want this to gain traction with modders, people spend enough time figuring out the game code, they don't want to reverse-engineer some third-party API's on top of that.
Quote from: NoImageAvailable on June 17, 2018, 02:34:44 PM
How exactly would one add support for this? Adding a comprehensive guide to the wiki would be a good idea if you want this to gain traction with modders, people spend enough time figuring out the game code, they don't want to reverse-engineer some third-party API's on top of that.
There's already a step by step guide in the description of this mod.
QuoteMod 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:
- Direct (https://github.com/KiameV/rimworld-modsync-rw/wiki/Create-ModSync-File-"Direct")
- Github (https://github.com/KiameV/rimworld-modsync-rw/wiki/Create-ModSync-File-"Github")
- Gitlab (https://github.com/KiameV/rimworld-modsync-rw/wiki/Create-ModSync-File-"Gitlab")
If there's anything that does not make sense please let me know and i'll update it to be clearer.
Updated for 1.0
Direct Download: https://github.com/KiameV/rimworld-modsync-rw/releases/download/1.0/ModSyncRW.zip
1.0 Update:
Mods that are hosted on Gitlab and Github and have 'About' directories that are not at the root are now supported with a new field "About Dir".
Updated the wiki pages with information on what the About directory will do. Mods that are already using ModSync RW will not need to update to the new format.
Added more details in the wiki pages for create ModSync.xml files
I sincerely hope this takes off as the go-to solution for non-Steam releases. Very easy to make ModSync.xml files and it does not require much effort to maintain.
All of my RimWorld v1.0+ mods will include ModSync functionality.
Nice work Kiame. I'm gonna join in the ModSync party in 1.0 as well. Making it decentralised and friendly to modders should help bring more modders in.
u just upgraded to 1.0, modsync and hugslib as well but the modsync button isnt showing up on my menu
TheIVFallen
A few things to verify:
1. The mod is enabled
2. Do you have the correct version? If running the unstable version of the game use ModSync RW 1.0 otherwise please use the B18 version until the game is officially released (at which point you can switch to the 1.0 version of this mod)
By going to github.com/Author/Project/releases/latest and looking at what the last part of the URL resolves to, you can implement version retrieval for most RimWorld mods on Github without relying on mod authors to add a ModSync.xml file. Many won't even if it's easy.
Quote from: Tsunamy on July 09, 2018, 04:34:26 PM
By going to github.com/Author/Project/releases/latest and looking at what the last part of the URL resolves to, you can implement version retrieval for most RimWorld mods on Github without relying on mod authors to add a ModSync.xml file. Many won't even if it's easy.
Without a ModSync.xml file how would this mod know where to look?
-It is not guaranteed that a mod is hosted on GitHub.
-Who is the Author?
-What Branch?
-Where can the mod be downloaded from? -d/l branch or release?
-What version is currently installed?
If it's hosted elsewhere, where?
GitLab? See above
Direct Download?
-Where's the version for it?
-Where's the zip?
-What version is currently installed?
The ModSync.xml file is the abstraction layer that allows all of this information to be standardized. I've written instructions on how to make the ModSync.xml files. If someone is already using git and github/gitlabs/other then adding an additional file is not a problem. Same holds true to a static means of uploading files to a server; just another file to upload. Heck if someone wanted to select Direct Download option they could host the xml files in a repo and have the zip on a google drive (not sure why they'd do that but it's possible)
There's also something called being `platform agnostic` in which a program/mod does not rely on a 3rd party app/api/site to always behave a certain way. Uri signatures should stay unchanged - too much rely on that to be true - but behaviors like redirects that are specific to a single site cannot be guaranteed to always behave that way.
I am
not going to tie this mod to any one platform. This mod will support as many different platforms as possible as people ask for support to be added.
If a modder does not want to take the 10 minutes to learn how to create a ModSync.xml then upload the file in another minute that's unfortunate - in the end it just hurts the mods' users as they won't know when there are updates. TBH after doing it 18 times now it takes all of 2 minutes to do everything. If any of the instructions are not clear let me know and I'll update them (they are wikis so others can update them as well i believe (i'll probably need to approve any changes))
QuoteWithout a ModSync.xml file how would this mod know where to look?
My suggestion was based on users making
their own ModSync.xml files for mods that don't support it and whose authors are silent to pull requests. Perhaps they just don't care or they have long been absent (and the user would like to know if that absence ever changes).
Inputting that the mod is from Github and inputting the Author and Project could enable the automatic version retrieval without relying on a server-side ModSync.xml file. 301 Redirects are platform agnostic and as far as this particular redirect goes, is unlikely to change because of all the projects very reliant on this redirect.
One of the stated project goals is to
"leverages hosting sites like Github", so this seems like a very easy addition to accomplish that. It would essentially just be comparing the version number from the About.xml file with the version number pulled from the 301 Redirect I described.
You're assuming modders create releases - many do not. Also this assumes that modders will create a new release for each update - many do not.
This would also require the user to update the version locally each time they update.
I got tired of creating new versions each time i updated a mod. I now just modify the release for the current RW version. I delete the zip, upload the new zip, and update the last update text in the message. This saves a ton of time otherwise I'd have to go to wherever i have direct download links and update manually.
Quote from: Kiame on July 09, 2018, 05:45:35 PM
You're assuming modders create releases - many do not. Also this assumes that modders will create a new release for each update - many do not.
I got tired of creating new versions each time i updated a mod. I now just modify the release for the current RW version. I delete the zip, upload the new zip, and update the last update text in the message. This saves a ton of time otherwise I'd have to go to wherever i have direct download links and update manually.
It does make that assumption, yes. So in the cases where releases aren't done, it would simply have to report to the user that it can't handle this particular mod and they're going to have to do it manually.
An Option B could be to have it update the mod from the latest commit, whether it needs to be updated or not, and simply store the commit hash in a ModSync.xml file. Should the latest commit ever change, it'll tell the user that the mod may be ready to be updated.
I'm in the same boat as you, I hate doing all this shit manually, but I know how difficult it can be to get a modder to do the smallest of things for compatibility, even if it does not impact their mod in the slightest. They simply do not want to be saddled with the responsibility of ever having to update said compatibility should the circumstances ever change. And people in general can be very stubborn.
In those cases it would be very very nice to have fallback options.
Hashtags could be used but then there would be too many false positives at which point users would not know when a mod is actually updated or if it was just the modder updating their mod locally but not ready for the next release.
Quote from: Kiame on July 09, 2018, 05:54:09 PM
Hashtags could be used but then there would be too many false positives at which point users would not know when a mod is actually updated or if it was just the modder updating their mod locally but not ready for the next release.
That's why going off releases would be the first thing the mod would try, and the commit hashes would be the fallback. i.e. If not {A}, then it must be {B}.
The only instances I can see this failing is incompatibilities wherein ModSync RW is being used on an out of date RW build, but you can check to make sure that the mod's update will be compatible by checking the About.xml file beforehand.
It's a one-time setup for the XML and all you have to do is change the version number when you update. Pretty well abstracted and easy to do.
And yet there aren't too many mods that support this right now. ¯\_(ツ)_/¯
Unless people request modders to include this it's not going to get used. It would be nice for this to get stickied.
In the end this mod will go unused out of ignorance to its existence and not complexity
And not to speak, only 5-10% of rimworld player/modder use DRM-free rimworld and not the workshop.
I hate to beat a dead horse, but I don't think people are willing to add support for a mod no one uses. This is a Catch 22 situation.
If you started adding support to update mods that don't have explicit support, then more people would start to use it. Once it catches on, mod authors who wish for a finer control of what ModSync does with updating their mod would add support for it.
if Kiame does that for his 10+ mods, other modders can do that easily. Also, responding to people asking about bugs with "it was already fixed, just download the new version" literally takes more time than uploading the modsync file.
Regardless, previous iterations of modsync had around 160 mods. so yes, some mods will certainly support it.
to add to this general conversation: automatic version detection is the ideal but impossible scenario and we need to accept it. we've gone over it in past modsync threads, but the main points are:
1. mods are not similar. a mod can be either XML item mod, an assembly or just a scenario. the game does not force a version indication of mods. it doesn't even offer one.
2. mods use many distribution pipelines. some use cloud, version control, direct hosting,etc.. you can't force modders to use github.
3. even if you do force some type of source control, you can't determine what is a "build" and what's just a push of changes not ready for release. most modders don't use releases or branches.
the best approach to get such project adopted is by helping. Kiame has made the whole project open source and anyone interested can easily add a new agent where every idea can be implemented and added to the arsenal for modders that could find it the ideal solution for them.
So if it can't accurate detect the version of every single mod regardless of distribution method it's not worth adding?
I don't understand the all-or-nothing mentality at all.
Just to be clear, this mod can track changes to the version number in the ModSync.xml file accurately no matter where it's hosted. Thus it can track the version of any mod hosted anywhere accurately.
The problem with trying to track anything related to a repo is that there's no guarantee that there was an update to the mod. If every time a repo changed in any way there would be too many false positives as to render this mod worthless.
There is absolutely no point in doing hours of work on versioning when the mod author can update it in seconds through XML. You choose your priorities as a developer and version detection should not be one of them.
1.0 Update:
Moved the ModSync RW button on the main screen to the left so it's no longer hidden.
Hey Kiame,
I was planning on adding support for ModSync RW to GlitterWorld Prime,
However, I host the downloads on my own GitLab Server.
I notice there is GitLab support but the URL is hard coded to the official GitLab hosting.
So I looked at using "Direct". Again I was met with defeat since "Direct" is actually more of a "Redirect" in the sense that ModSync RW doesn't actually perform the download in this case, but instead redirects the user to the URL provided, which kind of defeats the point of automated mod version control if the user has to download loads of individual ZIP files.
I considered writing my own Host which implements IHost but seems kind of a waste for a single mod to add an additional host, unless you don't mind having a few additional hosts that is.
I came from the approach that it's safer for the end user to know what they're downloading as it would be easy for bad actors to include viruses if everything was hidden.
Direct should work in all cases, what exactly isnt working?
I understand your reasoning and it's working as you intended, but consider:
- Any of us could make a mod with malicious code, whether they download the ZIP directly or not.
- If we did write malicious code, Even Steam wouldn't detect it and prevent it from being uploaded or the user for downloading it
- They should have antivirus installed which would detect known viri during download and as it's being written to disk
- It's at the users discretion what they download.
It'll just make it a pain for the end user and the honest mod makers if they can't just click "Check for updates" and have ModSync RW download the new version automatically.
Is this something you would perhaps consider? Cheers, TS.
I would consider it and it shouldn't be too hard on the file manipulation end. The main problem i foresee is the download location would have to stay static between versions
Yeah, I completely understand,
Most of us tend to put it in URLs like http://somesite.com/some_mod/releases/some_mod_B18_latest.zip anyway so that's fine.
If you do end up implementing it, you can just pop a warning message to say:
"Hey listen,
By updating this mod you realise the risks of downloading files over the internet.
Don't blame me if it goes horribly wrong.
By pressing OK, I assume that you have reviewed the source code and you trust the mod author isn't about to screw you over,
Have fun, Love Kiame."
Much better concept than before. All my 9 mods will support it as soon as 1.0 comes out and my rw1 branches get merged into master.
Is anyone else having the issue of not all your downloaded mods showing up in modsync? For example I have 18 mods in my "mods" folder, and only 7 that show up in modsync.
If any are steam version they will not show up. Also not all mods have added modsync support, it's up to mod authors to do that.
so if a steam version exists the manually downloaded one from github etc wont show up?
Quote from: KinKade on August 16, 2018, 08:01:09 PM
so if a steam version exists the manually downloaded one from github etc wont show up?
If you installed the Steam version it won't work with ModSync. But this doesn't matter because you presumably wanted Steam to manage the versions.
If you installed the non-Steam, zipped-up version of a mod with ModSync in it, whatever the mod maker put in the link will show up.
At least, that's how it works for my mod that is both on Steam and my local drive (not GitHub) and uses ModSync for the non-Steam version.
Updated for B19 - https://github.com/KiameV/rimworld-modsync-rw/releases/download/B19/ModSyncRW.zip
Hi.
I have modsync installed, and I tried everything to get it running, but I cannot find modsync button if there is any, and cannot possibly get to the update mods screen. It is b19 version, and rimworld marks it as correct version green. Tried moving it up and down the modlist, but still cannot find how to get to the update mods screen.
tile7,
the ModSync button appear at the main menu, left of the Mods button.
If you don't have it, you should try to deactivate all mods beside Core and Modsync and check if it work.
If it doesn't work, i think something is wrong with the installation or the downloaded version.
I guess you download the Master from github page and not the Release version. The Master don't include the Assemblies, then it can't work.
Yes, I downloaded master. Thanks a lot Canute.
Ah, now we're talking! This is going to be a much more sustainable concept. *cough*I told you so (https://github.com/FluffierThanThou/RW_ModOrderWithVersioning)*cough*
Would it be worth having a discussion about what information should be stored in a manifest (e.g. modsync.xml)? This would be a good place to potentially store dependency information, as well as hints about load order. I'm talking about something akin to what Factorio does; example (https://github.com/benjaminjackman/factorio-mods/blob/master/rso-mod_1.5.0/info.json#L9). Obviously, without a centralized repository dependencies are always going to be fuzzy, but that shouldn't stop us from trying.
As an adjust project idea that (were I not inundated with real world work) I would use as a basis for my first modding project, a mod in the spirit of modded Minecraft's WAILA that would attempt to modify tooltips/descriptions of objects and features added by mods, to include what mod is providing that resource.
This way you can always tell if what you're wanting to do is something that vanilla provides or if you'll need help from a mod's author if it's not functioning like it should. (or who to thank for its coolness!)
Awesome work, loving it!
Was thinking about making something similar, stumbled upon this.
I took the liberty to add Bitbucket functionality and will be filing a PR soon filed a PR.
Updated for 1.0
https://github.com/KiameV/rimworld-modsync-rw/releases/download/1.0/ModSyncRW.zip (https://github.com/KiameV/rimworld-modsync-rw/releases/download/1.0/ModSyncRW.zip)
Hello Kiame, I encourage you to remove the spanish translation from the mod because it's extremely outdated, when I make some time for myself I'll make a new one for the new implementation of modsync.
It's great to see this tool as I always thought it would be cool to be.
Greets.
Thanks for the heads up. I'll remove it for now
How does the modlist get generated for this mod? Does everyones modsync.xml get uploaded to a central location or something and then version checks are done from that?
It relies on mod authors to host the modsync.xml file somewhere. This mod is completely decentralized so it relies on the individual modders to host their files.
For example all of my mods had their own GitHub repo. The modsync.xml file for each mod is accessible there. When someone with ModSync RW checks the version of mods, ModSync RW checks each mod's ModSync.xml file, reads where the remote ModSync.xml is hosted then compared the local and remote versions in the file. If the remote's is larger the user is informed with red text for the mod
GitHub is not the only way to host the xml file. Just having a static URL will work too as long as it gets updated with the new version when the mod does
If people are using this...is there a way for mod authors to do the setup ...without installing the mod themselves?
I can write an .xml file by hand; adding a mod, restarting rimworld, then restarting again to remove the mod is a bit of a pain.
--LWM
You can write it by hand just look at the modsync.xml file in the About directory.
Question, why remove this mod after adding it? This mod is very lightweight and does nothing once the game starts - doesnt do anything actually unless you click the modsync button on the main screen
Minimalist at heart!
Updated for 1.1
https://github.com/KiameV/rimworld-modsync-rw/releases/download/1.1/ModSyncRW.zip
Now, if it would just go online when I start the game. Almost ever time I start, it says I am offline. I have a lot of security in front of my computer. Where does this program connect to, what port does it use, and what method does it use to get to the internet? I have to specifically create pin-holes for every single little thing. Obviously, I do not play many multi player games, unless I host them locally.
Quote from: phuhque on March 01, 2020, 03:12:08 PM
Now, if it would just go online when I start the game. Almost ever time I start, it says I am offline. I have a lot of security in front of my computer. Where does this program connect to, what port does it use, and what method does it use to get to the internet? I have to specifically create pin-holes for every single little thing. Obviously, I do not play many multi player games, unless I host them locally.
The networking code is here: https://github.com/KiameV/rimworld-modsync-rw/blob/master/Source/RestUtil.cs
Basically uses .NET to call externally first to google.com to verify it can connect then loops through each loaded mod and if the mod has a .modsync file it'll open it and connect to the endpoint specified in that file. The connection to google is not secure (http vs https) and i wonder if your network is blocking insecure requests.
Greetings.
I'm trying to sort through my old mod selection after forgetting about Rimworld for about a year, and this looks to be a good first step, followed by copying over the mods.
Alas, RimWorld (1.1.2567, with royalty) complains about ModSync being incompatible, wrong version or corrupted.
I redownloaded it already, and currently no other mods are installed, so that rules out incompatible and corrupted... Anything I can do?
Apparently I've been away too long ... forgot about HugsLib and Harmony is now a separate mod...
May I suggest that you add the dependency on HugsLib to the About.xml ?
I still love this mod.
Kiame, do you need an update on the translation?
TBH i do not pay attention to the translations. If anything is not correct feel free to create a pull request or PM me the changes and I'll include them
Alright I'll look it up when I have a moment haha, I don't care either because most of the mods are not in Spanish so it ends up being a miss match of languages, in any case I'll let you know ;)
Update for 1.2 - https://github.com/KiameV/rimworld-modsync-rw/releases/download/current/ModSyncRW.zip
Update 1.2.1.0:
Now supports Manifest.xml files and will use Manifest.xml before ModSync.xml or Version.xml (the latter two being the fall backs)
Updated for 1.3
Direct Download (https://github.com/KiameV/rimworld-modsync-rw/releases/download/current/ModSyncRW.zip)
Steam (https://steamcommunity.com/sharedfiles/filedetails/?id=1399727830)
Quote from: Kiame on April 14, 2021, 02:19:10 AM
Update 1.2.1.0:
Now supports Manifest.xml files and will use Manifest.xml before ModSync.xml or Version.xml (the latter two being the fall backs)
It would be nice to mention this in the main post. Thank you for the mod!