RimWorld

RimWorld

45 ratings
ModCheck[B19]
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
195.714 KB
14 Sep, 2018 @ 2:59pm
1 Change Note ( view )

Subscribe to download
ModCheck[B19]

Description
Toolkit for xml modders. Adds 13 new patch operations. Eliminate the need for patchmods. Patch according to presence, order or version of mods. Reorder xml elements, write patching results and test results to the log. Allow faster patching (shorter startup time) and measure how long each patch spends patching.

The primary task for ModCheck is to remove the need for patch mods. It's done by adding test operations, which can tell if another mod is loaded, if one mod is before another, is of at least a certain version, either in About or in ModSync. Each of those can be reversed (not loaded etc).

Adds logic operators, like sequence, AND, OR, If else conditions. This can be used together with the test operations or vanilla operations to make complex test conditions if needed.

Boost performance. Need to do multiple patching operations on the same building? Search, keep the result and run a list of patches without performing a full xpath search for each operation.

Added a bed and want it to appear in the build menu next to the vanilla beds? The Move operation allows you to alter where your modded building will appear.

Feature rich log writing. Get operations to write messages, warnings and errors if operations succeed or fail. Tell the user if a needed mod isn't loaded or load order is incorrect. Also allow writing conditionless with whatever message you might want to add.

Profile patches. Measure how much time is spend on each patch. ModCheck is aware of which mod owns which patch, meaning you can get a precise view of the startup time of your mod. You can name your patches if root operation is from ModCheck, like ModCheck.Sequence. This will allow performance printout with names rather than just patch 1,2,3....


Forum Thread[ludeon.com]
GitHub[github.com]
Manual of each operation[github.com] (wip)


Changelog:
Updating ModCheck will not break existing xml files unless stated otherwise.

v1.8
This is a significant update from a coding point of view. B19 vanilla changed completely regarding patching.
While the code is significantly better, all Harmony calls from ModCheck had to be redesigned and rewritten.

- Added B19 support
- Added Search operation to speed up patching when the same object is patched multiple times in a row
- Added Move operation to control cases where order matters (like order of building buttons)
- Patch profiling now measures the time more accurately (less rounding errors)

XML BREAKING ALERT!!!
Removed FindFile operation (vanilla rewrite renders it both obsolete and impossible to implement)
Any xml file with FindFile will need updating.


Earlier versions mentioned in the B18 mod page
16 Comments
nightinggale  [author] 21 Oct, 2018 @ 8:34am 
Oniwabanshu 29 Sep, 2018 @ 7:26pm 
@CrunchyDuck Lat time i used this (back in A17) you could get some data on how the mods you were currently using behaving, if loaded before core.
CrunchyDuck 19 Sep, 2018 @ 5:36am 
It's designed for modders to make compatibility easier. As a user, you should never have to use this mod.
apadilla124us 19 Sep, 2018 @ 5:34am 
how exactly would i use this? is this for modders or will this makethe mods i downloaded into a merge patch and load up my game faster?
nightinggale  [author] 18 Sep, 2018 @ 4:59pm 
I wish ModCheck could predict compatibility issues, but it has no detection system. What ModCheck can do is to be told that two mods can't work together or they need to be loaded in a certain order and then it will tell if there is a violation of this. Not only are people not good at filling in this sort of information, most compatibility issues tend to be unknown by the mod creators because they haven't tested every single combination of all mods. There are too many to realistically expect people to do that.

If I knew a way to auto detect incompatible mods, I would have coded it a long time ago. That would be an awesome addition.
Napalm51 18 Sep, 2018 @ 3:34am 
hello, I'm not a modder nor a programmer, and I really do not understand basically anything about that stuff, but I love to run mods with Rimworld.
Is this mod usable to see which mod is conflicting to the other mods etc.? or is just a testing tool for modders? Since I often run into compatibility issues but I'm not able to understand the game debug log..... Thanks for the answer
Fuglypump 16 Sep, 2018 @ 7:35pm 
Thank you so much for the update! I am updating my mods as we speak, this mod is a huge asset for me I can't emphasize it enough how much of an asset you are to the modding community.
[KOR]Bichang 15 Sep, 2018 @ 7:13am 
Thanks for the update.
nightinggale  [author] 15 Sep, 2018 @ 4:51am 
@CrunchyDuck Thanks. Naturally that was a typo. If all the mistakes I did while releasing was making that typo, then I say I did well. It's actually a lot of work releasing on GitHub, the forum and steam, particularly since I decided to make a new mod on steam instead of just updating and reuse the text.
Lonewolf187 15 Sep, 2018 @ 1:17am 
Thank you