July 5th, 2022
Features #
- You can now trigger a variety of inventory operations on a per-player basis at match end via the new
InventoryOperationsPlugin
.- Description: You can now update or grant stackable and instanced items on a per-player basis at match end via the new
InventoryOperationsPlugin
. - Details: If you opted into using the early preview of this plugin via the
@OptIn(WorkInProgress::class)
annotation, please see the integration note below.
- Description: You can now update or grant stackable and instanced items on a per-player basis at match end via the new
Integrations #
Update your
InstancedItemPlugin
to match the new interface.Description: You can now return additional item grants, rewards, and updates on
InstancedItemPlugin.newInstanced
. Changes have been made to theInstancedItemPlugin
interface to support this new feature, so you will need to make updates to yourInstancedItemPlugin
.Integration steps:
UpdateResult
has been renamed toInstancedItemPluginResult
to reflect that this is the return type for bothInstancedItemPlugin.newInstanced()
andInstancedItemPlugin.update()
.
In addition to the new return type,
newInstanced()
has additional parameters.Original Replacement fun newInstanced( instancedSpec: InventoryContent.InstancedSpec, clientRequestExt: ExtPurchaseRequest?, serverRequestExt: ExtInstancedItemServerGrant? ): ExtInstancedItem
fun newInstanced( instancedSpec: InventoryContent.InstancedSpec, inventoryContent: InventoryServiceContent, inventoryData: InventoryData, clientRequestExt: ExtPurchaseRequest?, serverRequestExt: ExtInstancedItemServerGrant? ): InstancedItemPluginResult
fun update( initialInstancedItem: InstancedItem, instancedSpec: InventoryContent.InstancedSpec, updateEntry: InventoryContent.UpdateEntry, inventoryContent: InventoryServiceContent, inventoryData: InventoryData, clientRequestExt: ExtInstancedItemUpdate?, serverRequestExt: ExtInstancedItemServerUpdate? ): UpdateResult
fun update( initialInstancedItem: InstancedItem, instancedSpec: InventoryContent.InstancedSpec, updateEntry: InventoryContent.UpdateEntry, inventoryContent: InventoryServiceContent, inventoryData: InventoryData, clientRequestExt: ExtInstancedItemUpdate?, serverRequestExt: ExtInstancedItemServerUpdate? ): InstancedItemPluginResult
Follow the integration steps below to fully remove the Progression service. Note that steps are organized based on your Pragma Engine version.
- Description: The Progression service and all related protos, classes, and utils have finally been removed. The Progression service and all related protos, classes, and uils have finally been removed.
- Integration steps: Depending on the version of Pragma Engine you’re upgrading from, steps will vary.
- If you’re currently on Pragma Engine 0.0.70 or later:
Rename the following service calls:
Original Replacement MatchEndV2
MatchEndV4
PlayerMatchEndV2
PlayerMatchEndV4
After confirming that they do not contain any wanted data, manually drop the
player_progression
databases.If you’re using the Docker environment provided via
/pragma-engine/platform/devenv/docker-compose-devenv
for local development, you can also drop the following databases:ete_test_game_player_progression1
ete_test_game_player_progression2
lobby_match_ete_test_game_player_progression1
lobby_match_ete_test_game_player_progression2
local_game_player_progression1
local_game_player_progression2
test_local_game_player_progression1
Test_local_game_player_progression2
- If you’re currently on Pragma Engine 0.0.69 or earlier, update to Pragma Engine 0.0.73 first by following all required integrations listed in prior release notes, then update to Pragma Engine 0.0.74 by following the steps detailed in this release note.
- If you’re currently on Pragma Engine 0.0.70 or later:
- If you’re an early user of
PlayerDataUpdatesPlugin
, rename thePlayerDataUpdatesPlugin
toInventoryOperationsPlugin
.- Description: See feature note above.
Bugs and Fixes #
- You can now view and edit huge JSON files in Pragma Portal without your browser tab locking up.
- Matchmaking now sends team assignment information to the game server.
- Description: Matchmaking assigns teams to parties that enter matchmaking, but this information was not being sent to the game server. This is now properly sent to the game server.
- Details: Added new
team_number
field to thePlayerInfoV2
payload that is sent to game servers inMatchDataV2
. This field will be populated with the team number the player was assigned in matchmaking.