PatchOperation toolkit to avoid patchmods in main mods, speed up patching and more.
[url=https://steamcommunity.com/sharedfiles/filedetails/?id=1512517973]B19 version[/url]
- 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.
[url=https://ludeon.com/forums/index.php?topic=36534.0]Forum Thread[/url]
[url=https://github.com/Nightinggale/ModCheck]GitHub[/url]
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