RimWorld

RimWorld

34 ratings
ModCheck[B18]
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
140.954 KB
8 Nov, 2017 @ 5:31pm
5 Jun, 2018 @ 4:18am
9 Change Notes ( view )

Subscribe to download
ModCheck[B18]

Description
PatchOperation toolkit to avoid patchmods in main mods, speed up patching and more.


B19 version


- Adds 12 new PatchOperations
- Set patches to trigger only if a specific mod is loaded, removing the need for standalone patch mods
- Speeds up patching, can reduce time for each patch from a few seconds to under a millisecond
- Highly optimized internally, faster than vanilla for overlapping operations
- Highly configurable log writing abilities
- Can add error messages for missing mods, wrong order, incompatible mod loaded etc
- Profiles patching, allowing identification of slow patches and confirmation when they are adjusted for speed
- Everything is configured in patch files (xml)

Example of common usage: make an animal and a patch for Combat Extended.. Include this patch in your mod and use ModCheck to make the patch only trigger if CE is loaded and to tell which file to patch, eliminating the time vanilla will use trying to patch all xml files.

Another example would be to test for a mod being loaded (or not loaded) and/or mod load order and in case of failure, add an error text to the log telling the player what to do in the mod menu.

Please use GitHub or forum to report problems. Steam is not a good place, particularly if you need to include xml contents.

Forum Thread[ludeon.com]
GitHub[github.com]

Updating ModCheck will not break existing xml files.

Changelog:

v1.7
- Speedboost: cached mod indexes for massive speed boost of some ModCheck internals
- Rewritten the log writing system to give better control/more features to patch writers
- Rewritten error messages to make it easier to find the error
- Changed profiling output. Total on top, one entry for each mod
- All PatchOperation names can now be used starting with both upper and lower case (fixes naming inconsistency)
- Added new mode to LoadOrder. It can now use first and last strings instead of the old approach (which still works)
- Added Sequence operation, which does the same as the vanilla operation, but with ModCheck specific options
- Added logic operations AND, OR, IfElse, Loop and Once
- Added warning/error if outdated versions of ModCheck are being loaded (risk of new vs old conflicts)
- Added a preview logo (thanks to larSyn for drawing it)
- Added support for ModSync RW
- Fix: profiling now displays correct time if the hardware has a high precision timer
- Fix: profiling will no longer cut off the output if you have a lot of patches
- Removed the need to include yourMod and modName unless they are actually used

v1.6
- Added FindFile to greatly speed up patch files
- Added patch operation profiling (with verbose logging only)

v1.5
- Added ModSync.xml
- Added PatchOperation isModSyncVersion

v1.4
- Fixed issue where cache failed to update as needed

v1.3
- Fix: checks are now only executed once (massive performance boost)
- Fix: writing to the log will now always only write one line and never repeat the same many times

v1.2
- Added custom message support (like logging: My mod detected modX and will patch itself accordingly)
- Added ability to detect another mod by more than one name (like name v1.3 and name v1.4)
- Major code redesign to greatly reduce the risk of bugs when adding new features

Note: stopped releasing for A17 due to the release of stable B18.
If you want to use A17, copying the v1.2 DLL will likely work, but it's untested.

v1.1
- Converted to mod layout for steam release

v1.0
- Initial release
51 Comments
nightinggale  [author] 14 Sep, 2018 @ 3:35pm 
I figured out the issue and it was just a project file setup, not an issue with the code itself. You can now all go to subscribe for the B19 version .
✬Rustic Fox✬ 14 Sep, 2018 @ 9:47am 
@nightinggale so close yet so far
nightinggale  [author] 14 Sep, 2018 @ 9:46am 
I fixed all issues related to B19, but while preparing to release, I updated to the newest version of Harmony. That caused unexpected problems and I can't release until I figure out what went wrong. This means current status is that I'm waiting for a reply from the Harmony creator.

Release date is: possibly 5 minutes after the Harmony problem has been solved and verified to not break something else. I can't say anything about when that will be, but hopefully soon.
von_krysiak 10 Sep, 2018 @ 4:57am 
You are a god! Keep it up ;-)
Sarg Bjornson 7 Sep, 2018 @ 11:30pm 
Yay! Good to hear!
✬Rustic Fox✬ 3 Sep, 2018 @ 1:35pm 
@nightinggale Keep up your hard work you are a blessing to this modding community.
nightinggale  [author] 2 Sep, 2018 @ 7:14pm 
I will see if I can get it finished this week. It's not like I haven't worked on it until you guys said anything. In fact I started as soon as the unstable version was "released", discovered that changes in vanilla made ModCheck impossible, provided detailed feedback on the issue and got vanilla changed to make ModCheck possible once again. Possible isn't the same as fixed overnight because vanilla quite literally changed every single line ModCheck mods.
2ScoopsPlz 2 Sep, 2018 @ 10:34am 
B19?
Fuglypump 28 Aug, 2018 @ 8:46pm 
The game updated to B19, any chance you can update your mod? I'm trying to update my mods and am getting errors, seems everything in the mod is working except my modcheck patches
nightinggale  [author] 18 Jun, 2018 @ 2:41pm 
The GitHub wiki is updated with a description of every single patch operation. I still have plans for adding guides on how to use the features, not just what they are.