Skip to main content

WukongMP SDK 0.2.0

¡ 4 min read
ReadyM Team
Creators of WukongMP and OblivionMP

Over the past two weeks we've been hard at work to bring the PvP mode to self-hosted servers. With SDK version 0.2.0, this has become possible.

Though the SDK is still in early access, we are excited to share it with the community and see what mods you will create with it!

This version also includes a complete redesign of the admin panel, with addition of many requested features.

Read on for the full list of changes and the Migration Guide for updating your mods to SDK version 0.2.0.

Breaking changes​

  • Launcher version 0.24.0 is required to connect to servers running SDK version 0.2.0.
  • Mods built on SDK version 0.2.0 require updating the server binaries to version 0.2.0 as well, and older versions of the server will not be able to load mods built on SDK version 0.2.0.

SDK updates​

  • The PvP mod is now included in the server package, alongside the co-op mod, both built on top of SDK version 0.2.0.
  • RPC event handlers built on top of RpcClassBase now have access to the RunOnMainThread method, which allows you to schedule callbacks to run on the main thread in a safe way. This is particularly useful for RPC handlers that need to interact with the game world, as doing so from the network thread can cause crashes.
  • In-game chat has been re-enabled.
  • API methods related to the built-in chat have been moved from the Local API to the new Chat API for better organization and separation of concerns.
  • Two new (temporary) APIs - PvP API and Cheats API were used to implement the self-hosted version of the PvP mod before server-side scripting is ready. Once server-side scripting is implemented, these APIs will be removed and their functionality will be implemented using regular server-side mods instead.
  • Other APIs have received new methods and improvements. Check out the API reference for more details on the changes.

Admin panel updates​

  • Full panel redesign with a cleaner layout and modern typography.
  • Export button in the terminal saves server logs to a .txt file.
  • Terminal now supports log filtering.
  • New Players tab listing all players who have connected to the server - shows last visit date and total connection count.
  • Player whitelist manageable from the panel - toggle it on/off with a single switch, defines which players can join.
  • Ban system - banned players cannot connect to the server.
  • New Mods tab listing all currently installed mods on the server.
  • "Make admin" button on a player grants them access to the admin panel.
  • "Add admin" button lets you manually add an administrator by their ReadyM ID.
  • Remove administrator button on the admins list.
  • New granular permissions: Manage Admins, Manage Settings (currently covers whitelist management).
  • The first user to authorise with a PIN in the panel is assigned superuser status - they always have full permissions and can only be removed by another superuser. Superuser status can also be granted or revoked manually via a dedicated button.
  • Cookie fix - Secure flag is now set automatically based on whether the request came over HTTPS or HTTP.

What's next?​

We're continuing to work on server-side mod support, as well as revisiting some known bugs in co-op mode. Once server-side mod support is ready, we'll be removing the temporary PvP and Cheats APIs and implementing their functionality inside the PvP mod itself.

Next steps for WukongMP SDK will include open-sourcing the co-op and PvP mods, to allow the community to learn from them and contribute to their development.

Migration guide​

Here's a quick migration guide for updating your mods to SDK version 0.2.0:

  • Update your server binaries to version 0.2.0 - older versions of the server will not be able to load mods built on SDK version 0.2.0.
  • Rebuild your mod against the new SDK version 0.2.0. You can download the latest mod template and copy your mod files there. Make sure to update the manifest.json file in your mod folder to specify the new minimum SDK version in the dependencies section.
  • If your mod interacts with the in-game chat, make sure to update your code to use the new Chat API instead of the Local API.
  • If your mod uses RPC handlers, consider using the new RunOnMainThread method to schedule callbacks that interact with the game world, to avoid potential crashes.