You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
config: Entries specifying previously described SyncPaths will be overridden by the hardcoded defaults
client & server: Removed .nosync file support. The .nosync system has been superseded by server/client side exclusions checkout the Configuration docs for more info on the new system
server: Renamed commonModExclusions -> exclusions
Features
Add support for empty folders (Fixes mods like AmandsSense and Bobby's music player)
Sync exclusions instead of excluded files to reduce network traffic, size of PreviousSync, and cost of hashing on client
Client and Server hashing processes have been made properly async to prevent blocking/freezing when loading
Massive hashing overhaul, moved from CRC to a two-prong solution depending on file size:
* Small files (< 5MB) are hashed directly using Metrohash a tiny, performant non-cryptographic hash function
* Large files (> 5MB) are hashed using an algorithm called ImoHash which uses file size and distributed sampling of files to quickly hash even very large files (bundles lmao)
* Hashing on the server is now done via WASM for near native hashing performance instead of using JS
* Renamed PreviousSync data key from crc -> hash
* Client will now only request hashes for enabled and enforced sync paths reducing network traffic and load while hashing
SyncPaths are now applied in order of specificity and can "overlay" different settings into subdirectories (for example you could enforce BepInEx/config/RealismMod.cfg, while not enforcing the rest of your configs)
SyncPaths can now override less specific exclusions to "whitelist" files in excluded folders. For example:
* A file or folder in an excluded directory can be added as its own syncPath and will override the exclusion
Added clientside exclusions list. ModSync_Data/Exclusions.json can now exclude files from syncing on the client
* Can prevent files from being added/removed/updated even when present on the server
* Enforced paths will ignore client exclusions
Renamed commonModExclusions -> exclusions
Removed .nosync file support. The exclusion system has been improved to the point where I think the nosync files were simply less useable. Let me know if you find any edge cases where they would've been better
Generally improved exception handling to provide more specific error messages and better reproduction information when things go wrong
client: always dump local hashes to improve debugging for user issues
config: hardcode plugin dll and updater exe as the mod doesn't work without them
plugin: increase timeout to 10 minutes when retrying requests
Bug Fixes
attempt to fix timeout when hashing files
client: enforced paths will still have their files deleted regardless of client config
config: add :Zone.Identifier files to default exclusions list