WukongMP SDK 0.2.2
This version of the SDK adds two highly requested features: mod caching and .pak file support.
To take advantage of these features, make sure to update your server binaries to version 0.2.2, and to use ReadyM Launcher version 0.26.0 or later when connecting to servers running this SDK version.
The new Launcher version is backwards compatible with all 0.2.x releases of the SDK.
At the same time, the new 0.2.2 server can be connected to using older Launcher versions, but mod caching and .pak file support will not work.
Mod caching​
Starting with ReadyM Launcher version 0.26.0, mods downloaded from the server will be cached locally on the user's machine. This means that if a user has already downloaded a mod from a server, they won't have to download it again the next time they connect to that server, unless the mod has been updated on the server.
This also works across different servers - if two servers use the same mod, it will only be downloaded once and cached for both servers.
Internally, the server and the Launcher compare mod folder hashes, so any change to any file in the mod folder will cause the mod to be re-downloaded. This ensures that users always have the latest version of the mod when connecting to a server.
.pak file support​
Starting with Launcher version 0.26.0, the WukongMP SDK supports putting .pak files in the mods folder. Any .pak files will be loaded by the game at runtime. This is achieved by linking the Mods directory to the game's b1/Content/Paks/~WukongMp directory.
Note that the link is created each time that the game is started from the Launcher, and is removed when the game is closed. The Launcher must be running in the background to detect that the game has closed. Otherwise, the link will not be removed, and the game will continue to load .pak files (not C# mods) from the Mods folder until the link is manually removed.
.pak-only mods​
As a consequence of the above, it is now possible to create mods that consist solely of .pak files, without any .dll files. Such mods must still include a mod manifest, but since they don't contain any code, they do not need to specify a dependency on the SDK.
A minimal example of a manifest for a .pak-only mod would look like this:
{
"uniqueId": "Example.Pak.Mod",
"version": "1.0.0",
"name": "Example Pak Mod",
"author": "Author",
"description": "A mod that consists solely of .pak files."
// "dependencies": []
}
