Now that I've reverted to using the hr1 system I ran into this issue again.
I have a library that is going to be about 20GB compressed and when I send out an update to my users that changes only the data (hxi) I don't want them to have to redownload the entire 20GB all over again.
So I worked with Claude to implement a split archive solution.
The default behaviour is the current behaviour, bundle everything together into one set of hr files - works for expansions and regular plugins as before. I did change the default split size to 2GB as that seems to me to make sense.
Then there are two new options:
Split Data From Samples: This will put the data into its own .hr1 file with the suffix _data. The samples will then be bundled into .hr2, .hr3, etc. as needed. If the user only needs the data (because they installed the samples previously) then they just download and extract the .hr1. As it extracts it will still check for the next archive as before but will fail silently if its not there. However if one of the other archives is missing it will report an error as expected - I also improved the error message so instead of just saying Read Error, it tells the user which archive is missing.
Data Only Update: This just compresses the data into an .hr1 archive and assumes the samples haven't changed and have already been compressed using the split option.