Changes & additions:
- Switched script backend for the whole project from IL2CPP to Mono which allows for more transparency and ease of mod development
- Added official mod support allowing mod developers to create and inject their own .dlls into the game process allowing full access to the game's internals
- Added plugin support which essentially serves the same purpose as mods, though Plugins do not have to be obtained from the Steam Workshop which will be useful for mod development or proprietary server-sided mods
- Added full Steam Workshop integration allowing for easy mod download an installation directly within the game or through the Steam Workshop itself
- Added mod support for servers which allows server owners to configure:
- Server mods: Mods that will be run by the server affecting the main game loop, physics, server commands and much more
- Client mods: Server can configure mods that will be automatically downloaded by any connecting clients allowing for mod synchronization across all connected clients
- Added a Mods menu (accessed via the main menu) where all installed mods & plugins can be enabled or disabled
- Added logging support, meaning all logs produced by the game client or servers can be accessed within the local install folder of the game (Logs/Puck.log)
- Added Steam's URL launch support allowing clients to launch the game directly from their browser. For example, running steam://run/2994020//+ipAddress 127.0.0.1 +port 7777 +password myPassword/ (+password being optional) in your browser will connect you to the specified IP and port combination. This now works also for cases when the game client is already running!
- Refactored toast notification system & moved notifications to bottom right
- Updated Unity's Netcode for GameObjects to version 2.3.0
For server owners:
With the introduction of Steam API support on dedicated Linux servers, this requires additional .dlls to be loaded in order for the server to have access to the Steam API. The Steam API .dll is shipped together with the Linux dedicated server, but requires the server to be launched via the start_server.sh instead of the previously used Puck.x86_64 executable. All CLI arguments passed to start_server.sh will still be taken into consideration by Puck, so no further action, other than launching a different executable is needed.In order to add server-side or client-side mods to your server, a new mods configuration parameter was introduced. Example use case:
"mods": [
{
"id": 3493628417,
"enabled": false,
"clientRequired": true
},
{
"id": 3491056040,
"enabled": true,
"clientRequired": false
}
]
This configuration will add Toaster's Crispy Shadows (3493628417) as a client-sided mod and GAFURIX' Custom MOTD (3491056040) as a server-sided mod to your server.
Changed files in this update