When a .zip file is encountered by the VFS population, it reads the info for all files in the archives. This is quite slow for the public archive (400-500ms on my computer), which means calling GetEngineInfo() repeatedly is impossible.
The solution is to not use the VFS to parse JSON. That requires always bundlin a .json next to the archive, but it ought not be a problem:
- modders wouldn't use archives when developping
- The installer was changed
- we control releases and can bundle the .json
The only breaking change is for users that would expect their .zip to work when dropped in their mod folder, but I would expect that to be rare.
(Might need a further change to the installers).
We might want to partially revert rP21823 after this.