AGS 3.79.0 Release Notes
Release date: November 25th, 2024
Announcements
Changes to AccelByte Gaming Services (AGS) versioning starting in 2025
As part of our continuous efforts to enhance how we communicate product updates and provide clarity on our release cycle, we will be updating our versioning scheme starting next year. Specifically:
- Current Versioning (2024):
- For the remainder of 2024, we will continue with the current versioning system (e.g., 3.76, 3.77, 3.78, etc.).
- The final release of this cycle will be version 3.80, which will be deployed starting in early January 2025.
- New Versioning Format (2025 and Beyond):
- Starting in 2025, we will adopt a new versioning format based on the year of the release and increment for each main release in the year, such as 2025.1, 2025.1.1.2, 2025.2, 2025.2.4.5, and so on. Example:
- 2025.3 means the third main release in 2025. 2. 2025.4.2.5 means the fourth main release that contains two minor updates and five hotfixes in 2025.
- Starting in 2025, we will adopt a new versioning format based on the year of the release and increment for each main release in the year, such as 2025.1, 2025.1.1.2, 2025.2, 2025.2.4.5, and so on. Example:
Why Are We Making This Change?
This new versioning system reflects a more intuitive, year-based approach that aligns with our product development and release schedule. We believe this update will make it easier for customers to understand the cadence of updates and anticipate future releases.
What Does This Mean for You?
- No Impact on Functionality: These changes are related only to how we version and communicate releases. Your product functionality will not be affected by the versioning change.
- Upcoming Release Schedule: As mentioned, our final 2024 release (version 3.80) will be completed by December 2024, and deployments for 3.80 will begin in January 2025.
- Transition to 2025 Versioning: When we begin our 2025 cycle, the first release will be version 2025.1, followed by 2025.2, and so on throughout the year.
Key Dates
- December 2024: Final release under the current versioning (version 3.80).
- January 2025: Deployment of version 3.80 begins.
- 2025.1: The first release under the new versioning format will begin deployment in February 2025.
If you have any questions or concerns about these changes, please don't hesitate to contact AccelByte support.
Versions
AGS Game SDK
Extend SDK (previously known as Server SDK)
AccelByte Multiplayer Servers (AMS) CLI
- AMS CLI: 0.245.31
Highlights
[Play] Party session storage
The Party Session Storage tool provides the same functionality as Session Storage but is designed for storing attributes or values related to your party members to facilitate matchmaking, you can leverage Party Session Storage. Its use depends on your game's requirements and how you manage party-related data.
noteAccelByte recommends avoiding over-relying on party attributes for gathering member details to ensure a more flexible and robust system design.
[Unreal Engine] Added support for Filter Excluded Sessions.
- Introduced
FAccelBtyeModelsGameSessionExcludedSession
, a new struct toFOnlineSessionSearchAccelByte
. This field allows players to start matchmaking by passing additional information to exclude the unwanted or past game sessions that has been played. - A player's past game sessions can be recorded and also shared with party members.The excluded sessions list can also be automatically synchronized across the party session, enabling the party leader to accumulate each member's excluded or past game sessions.
- Introduced
How to access and use the feature from the SDK:
- To enable the automatic caching and synchronization process:
- Call this function from the
FOnlineSessionV2AccelByte
interface (Session Interface):void SetEnablePartyMemberPastSessionRecordSync(bool bEnable, uint32 AmountOfPastSessionRecorded)
. - Set
bEnable
totrue
. TheAmountOfPastSessionRecorded
is the amount of past session that will be recorded or cached by this player.
- Call this function from the
- To enable the automatic caching and synchronization process:
How to access it through the REST API:
- Use the Session API
/session/v1/public/namespaces/{namespaces}/parties/{partyID}/storage
. - Use the Session API
/session/v1/public/namespaces/{namespace}/parties/{partyID}/storage/users/{userID}/reserved
.
- Use the Session API
[Play] Weighting Matchmaking Attributes
Weighting gives game developers flexibility in shaping how matches are made by prioritizing certain rules over others. For example, if they believe that matching players with similar skill levels (MMR) is more important than finding a low-latency connection, they can increase the weight for MMR. This makes the matchmaking system pay closer attention to player skill differences when choosing potential matches.
This feature will give developers control over the player experience based on what they think will work best for their game. When developers prioritize different rules, it results in unique gameplay experiences. For instance, focusing on MMR can lead to more balanced and competitive matches where players feel more evenly matched. On the other hand, if latency is prioritized, players might experience smoother gameplay, which is especially important in fast-paced games. This choice ultimately affects how players feel in each game session, so developers can tailor matchmaking to fit the style and goals of their game.
Weight will be used to create a weighted score for matchmaking prioritization and also for the rebalancing process (specific for the matching rule). For example:
- If the MMR weight exceeds the latency, matchmaking will prioritize searching for the closest MMR even though the latency might be high.
- If latency weight exceeds MMR, matchmaking will prioritize searching for the close latency even though the MMR difference might be high.
The weight is the same by default, but the admin can configure it for the matching parameter.
How to access and use the feature in the Admin Portal:
- On the Admin Portal sidebar, go to Multiplayer > Matchmaking Configuration. The Match Configurations page appears, showing a list of match rulesets in your namespace.
- From the list, open the ruleset you want to configure.
How to access and use the feature through REST API:
- Use the MatchmakingV2 API (
/match2/v1/namespaces/{namespace}/rulesets
). - Add the weighted latency in
ruleset with weight*MMR
score. - Add the weighted MMR in ruleset with
region_latency_rule_weight*Latency
score.
- Use the MatchmakingV2 API (
[AMS] Added support for bare metal servers (provided by servers.com).
Bare metal servers are now available in AMS for Private Cloud customers. Powered by servers.com, bare metal servers offer stable, cost-effective performance with no data transfer fees, making them perfect for steady game workloads. To acquire bare metal servers for your AMS account, submit a request through the AccelByte Customer Support Portal. Keep in mind that provisioning new machines may take up to one month, so planning ahead is essential to prevent any delays in availability. Once your machines are provisioned, they will be added to your AMS account in the Admin Portal. You can immediately deploy these instances in any fleet as required. For the pricing information about bare metal instances, refer to the AMS instance types and pricing page.
How to access and use the feature in the Admin Portal: After your machines are provisioned, create a fleet and select the bare metal instances option.
How to access and use the feature from the SDK: Follow the same flow as the regular server creation process.
How to access and use the feature through the REST API: Follow the same flow as the regular server creation process.
[OS] Added support for automatically handling Xbox refunds, chargebacks, and chargeback reversals via the Microsoft Clawback service.
Whenever there were refund, chargeback, or chargeback reversal events from Xbox, admins used to need to manually perform the corresponding revocations or fulfillments on AGS. This release, AGS has integrated with the Microsoft Clawback service, which allows AGS to detect refund or a chargeback events and automatically revoke or reinstate player entitlements and ownership accordingly.
How to access and use the feature in the Admin Portal:
- On the Admin Portal sidebar, go to Game Setup > Store > 3rd Party Configuration.
- Open the Xbox tab and enable the Clawback Service option.
[OS] Added ability to create legal documents for a group of countries.
- Legal policies can now be applied to a group of countries, removing the need to create duplicated policies for multiple countries.
- How to access and use the feature in the Admin Portal:
- On the Admin Portal sidebar, go to Game Setup > Legal Agreements Legal Documents
- Create a legal document and then created a new policy in it.
[OS] Added the ability to configure a rule for generating verification codes.
Admins can now configure how the verification codes for MFA should be generated such as the the length of the generated code and the allowed characters (i.e,letters only, numbers only, mixed, etc.). This configuration applies only to codes generated by AGS (e.g., email verifications and one-time codes). It does not affect codes from third-party services (i.e., 2FA apps).
How to access and use the feature in the Admin Portal: On the Admin Portal sidebar, go to Settings > Verification Code.
[OS] Added support for configuring the login website URL via the Admin Portal.
Admins can now configure the login website domain orURL for their environments via the Admin Portal directly.
How to access and use the feature in the in the Admin Portal: On the Admin Portal sidebar, go to Settings > General Settings.
Manage player challenge progression from the Admin Portal.
Game admins can now directly check or audit the challenge progress of players directly from the Admin Portal. This update provides visibility into active challenges, goal progression, and rewards claimed by players.
How to access and use the feature in the in the Admin Portal: On the Admin Portal sidebar, go to Engagement > Challenges > Lookup Challenge.
Added Time to Live (TTL) feature to admin game records.
The TTL feature has been implemented to admin game records, enabling game admins to set expiration times for these records. With this feature, admin game records will be automatically removed after the designated time. For more information, refer to the Managing admin game records page.
- Endpoints:
- CloudSave/adminPutAdminGameRecordV1
- Required permission:
ADMIN:NAMESPACE:{namespace}:CLOUDSAVE:RECORD [UPDATE]
- Required permission:
- CloudSave/adminPostAdminGameRecordV1
- Required permission:
ADMIN:NAMESPACE:{namespace}:CLOUDSAVE:RECORD [CREATE]
- Required permission:
- CloudSave/adminPutAdminGameRecordConcurrentHandlerV1
- Required permission:
ADMIN:NAMESPACE:{namespace}:CLOUDSAVE:RECORD [UPDATE]
- Required permission:
- CloudSave/deleteAdminGameRecordTTLConfig
- Required permission:
ADMIN:NAMESPACE:{namespace}:CLOUDSAVE:RECORD [UPDATE]
- Required permission:
- CloudSave/adminPutAdminGameRecordV1
- SDK support for admin game records TTL:
- Unreal Engine
- Added TTL config on admin game record
ServerCloudSave
:CreateAdminGameRecord
ReplaceAdminGameRecord
- Added new functions to the Cloud Save interface
FOnlineCloudSaveAccelByte
.CreateAdminGameRecord
ReplaceAdminGameRecord
GetAdminGameRecord
GetAdminGameRecordFromCache
- Added new delegates to the Cloud Save interface:
OnGetAdminGameRecordCompleted
OnModifyAdminGameRecordCompleted
- Added TTL config on admin game record
- Unity
- Updated the
GameRecord
data model with an additionalTTLConfig
field. - Added an overload with metadata optional parameters to the
Server.CloudSave.SaveGameRecord
andServer.CloudSave.ReplaceGameRecord
interfaces
- Updated the
- Unreal Engine
- Endpoints:
Added ability to override maximum and minimum value of a Statistics Configuration for specific Statistic Cycle.
Allow game admins to set minimum and maximum values of a Statistic configuration for a specific Statistic Cycle. This ensures that the values for user statistics remain within the set boundaries for each cycle, preventing any updates that would exceed the maximum or fall below the minimum limits.
How to access and use the feature in the Admin Portal:
- On the Admin Portal sidebar, go to Progression & Inventory > Statistics > Cycles.
- Go to the details page of cycle to edit it.
- Override the statistics minimum and maximum value.
How to access and use the feature via endpoints:
- Statistics/createStat
- Required permission: ADMIN:NAMESPACE:{namespace}:STAT [CREATE]
- Statistics/updateStat
- Required permission: ADMIN:NAMESPACE:{namespace}:STAT [UPDATE]
- Statistics/createStat
Added
GoalProgressionId
to Challenge API responses.The
GoalProgressionId
data has been added to the following Challenge API response:- Unreal Engine
Challenge::GetRewards
ServerChallenge::GetUserRewards
- Unity
Api.Challenge.GetRewards
Server.Challenge.GetUserRewards
- Unreal Engine
Added support for Partial Backfill Proposal
Unreal Engine: Updated
FOnlineSessionV2AccelByte::AcceptBackfillProposal
to allow the game server to accept the proposal partially.- The function signature has been updated with additional optional parameter struct:
FAccelByteModelsV2MatchmakingBackfillAcceptanceOptionalParam
- The accepted ticket IDs can be specified by setting an array to the
AcceptedTicketIDs
field in the mentioned struct above. - Function signature:
bool AcceptBackfillProposal(const FName& SessionName, const FAccelByteModelsV2MatchmakingBackfillProposalNotif& Proposal, bool bStopBackfilling, const FOnAcceptBackfillProposalComplete& Delegate, FAccelByteModelsV2MatchmakingBackfillAcceptanceOptionalParam const& OptionalParameter = {});
- The other ticket IDs from the proposal will be rejected if they are not specified in the
AcceptedTicketIDs
.
- The function signature has been updated with additional optional parameter struct:
Unity: Added the option to accept backfill proposals partially. The member that is not being accepted will be returned to the queue. The following new interfaces were added to support the feature:
public void AcceptBackfillProposal(MatchmakingV2BackfillProposalNotification backfillProposal, ResultCallback<AcceptBackfillProposalResponse> callback)
public void AcceptBackfillProposal(MatchmakingV2BackfillProposalNotification backfillProposal, AcceptBackfillProposalOptionalParams optionalParam, ResultCallback<AcceptBackfillProposalResponse> callback);
To improve the support of this feature, starting from AGS version 3.79, the following function is deprecated and will be removed in AGS version 3.82:
public void AcceptBackfillProposal(MatchmakingV2BackfillProposalNotification backfillProposal, bool stopBackfilling, ResultCallback callback)
.infoFor more information, refer to the Manage backfill tickets using AGS SDK page.
Unreal Engine
Refactored the
QosApi
to useSharedPtr
. To prevent build breaks, a mitigation is included under-the-hood to provide temporary continuity. This mitigation is immediately marked as deprecated and will be removed in a future release.importantAccelByte recommends updating your code as soon as possible and replace any usage of
ApiClient->Qos
withApiClient->GetQosApi().Pin()
.Added Meta Quest Native Platform Handler with support for Login, Friend Sync and IAP.
Login
- OSS: Added support for login using Meta Quest credentials
Friend Sync
- SDK: Added support for using the Meta Quest app-scoped ID in
User::BulkGetUserByOtherPlatformUserIdsV4
- OSS: Added
FOnlineFriendsAccelByte::SyncPlatformFriends
method to sync the native platform friend using the Native Platform Handler.
- SDK: Added support for using the Meta Quest app-scoped ID in
infoCurrently, only the Meta Quest Native Platform Handler supports this functionality.
- OSS: Added support for login using Meta Quest credentials
Friend Sync
In-App Purchase (IAP)
- SDK:
- Added enum member
PARTIAL_REVOKED
andREVOKED
toEAccelByteEntitlementIAPOrderStatus
- Added new methods to
IAccelBytePlatformWrapper
:GetProductsBySku
GetPurchasedProducts
CheckoutProduct
ConsumeProduct
- Added enum member
- OSS:
- Added new methods to
FOnlineStoreV2AccelByte
:QueryPlatformOfferBySku
- Added new methods to
FOnlinePurchaseAccelByte
:QueryPlatformReceipts
PlatformCheckout
- Added support for syncing the Meta Quest Purchases and DLC using
FOnlineEntitlementsAccelByte
:SyncPlatformPurchase
SyncDLC
- Added new methods to
- SDK:
Meta Quest Platform Handler
- Added support for
OVRPlatformSDK
version 68.0 - Added a new class called
FAccelByteMetaQuestPlatformWrapper
with the following functions:FetchPlatformToken
to retrieve the Meta Quest token in formatoculus_id:nonce
for logging in to IAMGetAppId
to retrieve the App IDGetPlatformUserId
to retrieve the application scoped Meta Quest user IDFetchPlatformFriends
to retrieve the Meta Quest platform friends
- Added new methods to
FAccelByteMetaQuestPlatformWrapper
for IAP:GetProductsBySku
GetPurchasedProducts
CheckoutProduct
ConsumeProduct
- Added support for
Added new Game Server APIs to replace the records of multiple users.
ServerCloudSave::BulkGetUserRecord
ServerCloudSave::BulkReplaceUserRecord
Added the
FriendRequesterIsBlockedByRequestee
error code for scenarios where a player sends a friend invitation but is blocked by the invitee.Added the
Entitlement::GetUserEntitlementByIds
function.Added the new
ReportChatMessage
method toFOnlineChatAccelByte
.Added chat ID and topic ID to
FAccelByteChatMessage
with the following getter methods:GetChatId
GetTopicId
Exposed
ServerCloudSave::BulkGetUserRecordsByKeys
.Changed the default value for the feature flag
bServerUseAMS
(used to enable or disable AMS feature for Dedicated Server) fromfalse
totrue
. If you are not using AMS, you will now need to set thebServerUseAMS
tofalse
.Reverted the Dedicated Server (DS)
watchdog_url
command line parameter from mandatory to optional.
Unity
To simplify implementation and promote best practices out of the box, we have enhanced the login system to include default login queue functionality. To provide a streamlined experience, we added these new interfaces along with options to modify the login behavior:
CancellationToken
: A token to cancel the current ongoing queued login.OnCancelledEvent
: Delegates when the login is cancelled.OnQueueUpdatedEvent
: Delegates when the queue ticket is refreshed.LoginTimeout
: Specifies the timeout. When the reached timeout, the login interface will invoke errorResultCallback
.
With this new functionality, login ticket IDs are now managed by the SDK. As a result, the
TokenDataV4
callback type in allLoginV4
methods has been replaced withTokenData
. We are deprecating all login methods using theTokenDataV4
callback in AGS version 3.79, with plans to remove them in AGS version 3.82.infoFor more information, refer to the Login Queue guide.
Exposed the
AutoCalculateLatency
parameter (on-by-default) toApi.Turnmanager.GetTurnServer
. Set this parameter to false to skip ping calculation**.Added optional parameters for
API.User.BulkGetUserByOtherPlatformUserIds
:RawPuid
PidType
Added new feature enabling party leaders to cancel party invitations. When an invitation is canceled, the party leader and members will receive a notification.
noteOnly party leaders can cancel invitations.
How to use:
AccelByte.Api.Session.CancelPartyInvitation(string partyId, string userId, ResultCallback callback)
The party leader, members, and the rejected invitee will receive a notification through two different Lobby events:
Party leader and current members:
AccelByte.Api.Lobby.SessionV2GameSessionMemberChanged += notification =>
{
// Handle notification
}Rejected invitee:
AccelByte.Api.Lobby.SessionV2PartyInvitationCancelled += notification =>
{
// Handle notification
}
[Preview] Introduced P2P feature on WebGL Platform.
Added new interfaces to Api.Session to modify player attributes:
GetPlayetAttributes
StorePlayerAttributes
ResetPlayerAttributes
Removed the unused class and endpoint in
Telemetry.cs
andTelemetryApi.cs
. To access the AccelByte Telemetry feature please useApi.GetGameTelemetry()
.Added new lobby
PartyCreatedNotification
type.
Deprecated and removed features
This section lists features, SDK functions, endpoints, and other AGS tools that are deprecated and removed in this release and in upcoming releases.
Please follow the required migration steps for each deprecation or removal.
WalledPaid
and WalledExpired
events
- The
WalletPaid
andWalletExpired
events have been added to eventually replace existing events that contain a typo,WalledPaid
andWalledExpired
. - The older events,
WalledPaid
andWalledExpired
, have been marked as deprecated and will be removed within Q3 2025. Please migrate to the newer events,WalletPaid
andWalletExpired
.
Schedule field in Challenge Goal response model
The deprecation of the "Schedule" field, initially planned for AGS version 3.80, has been rescheduled to AGS version 3.81. For details on the original announcement, please refer to the AGS version 3.78 release notes. We appreciate your understanding and are committed to ensuring a smooth transition.
IAM ListUserIDByPlatformUserIDV3 endpoint
Based on the prior announcement in the AGS version 3.76 release notes, starting from this release (AGS version 3.79), the following functions will only accept up to 100 User IDs:
- [Unreal Engine]
User::BulkGetUserByOtherPlatformUserIds
- [Unity]
Api.GetUser().BulkGetUserByOtherPlatformUserIds()
Rate limits may apply if call frequency becomes excessive. We recommend optimizing your calling patterns to only request enough data to populate your UI. For more information, refer to Use best practices for game integration
(Unity SDK) AccelBytePlugin and MultiRegistry interfaces
Based on the prior announcement in the AGS version 3.76 release notes, the main interfaces, AccelBytePlugin
and MultiRegistry
, are removed in AGS version 3.79. These interfaces are replaced by AccelByteSDK
. To learn how to migrate from AccelBytePlugin
or MultiRegistry
, refer to the Enable multiple registries support in your game (Unity) page.
Unity SDK functions
Based on the prior announcement in the AGS version 3.76 release notes, the following functions have been removed in AGS version 3.79:
ApiClient.GetServiceVersion
: Migrate toApiClient.GetVersionService
.ApiClient.GetHeartBeat
: Migrate toApiClient.GetHeartBeatService
.ApiClient.GetStoreDisplay
: Migrate toApiClient.GetStoreDisplayService
.
(Unity SDK) Networking.Ping method
Starting from AGS version 3.79, Networking.Ping
is deprecated and will be removed in AGS version 3.82. To differentiate the ping methods, they've been separated into Networking.UdpPing
and Newtorking.HttpPing
.
UdpPing
is not yet supported for Web Platform.
Minor Changes or Improvements
- Provided a new page for users to set their default profanity list.
Admin Portal
- Moved the Lookup User menu within the Admin Portal to improve accessibility and user experience.
- Removed all items under the Multiplayer menu on the Admin Portal sidebar (except for Turn Server Configuration) and moved them to separate sections.
- Removed all items under the Chat and Blocklist menus.
- Added "IAP" as an additional filter option for the Revocations History page.
- The operator list in the "Purchase Requirements" page is now translated correctly when setting the site's page language to Chinese.
- Adding whitespace in the Batch Name field of the Generate Codes" modal on the Code Redemption page no longer makes the page unresponsive.
- Fixed the unresponsive Continue button on the Link to AccelByte Account page during the account linking process.
- Uneditable toggles are now displayed on the Price Details modal for view-only users.
- Fixed issue that allowed users with a view-only role to modify configurations in the Admin Portal.
- Implemented UI improvements around Legal Document-related pages.
- Implemented UI improvements around IAM Clients-related pages.
- When the Custom Regex is enabled in the Input Validation menu, the Regex field now supports up to 3,000 characters.
- Provided a preview button to enable game admins to preview the challenge configuration they are making, such as how the rotation works based on the configuration.
- Removed the "Early Access" tag from the Challenge menu within the Admin Portal.
- Enhanced the Inventory menu by displaying inventory IDs on both the Inventory List and Inventory Details pages for easy identification.
- Removed the display of the goal repetition field when a challenge is set to have no rotation.
- Ensured that only valid goal options are displayed when setting goal requirements from the publisher namespace in relation to the game namespace.
- Aligned tooltips with the actual validation rules for creating inventory configurations.
- Updated the placeholder for inventory searches to specify inventory ID.
- Modified the goal search bar filter to utilize goal code instead of challenge configuration goal name.
- Exposed Sync XBOX Cert button in the Multiplayer Sessions to sync the XBOX pfx configuration to Session service.
- Added filters and hid the Overview button on the Analytics Dashboard v2 menu.
GDPR
- Added the
GET /gdpr/s2s/namespaces/{namespace}/requests/{requestId}
endpoint that takes in arequestId
to get a personal data request. - The following endpoints have
requestId
included in their responses:GET /gdpr/s2s/namespaces/{namespace}/requests/finished
POST /gdpr/s2s/namespaces/{namespace}/users/{userId}/requests
Basic
- The
POST /basic/v1/admin/namespaces
endpoint now supports the following special characters:- apostrophe (')
- comma (,)
- dot (.)
- hyphen (-)
Platform
- Metadata has been added to Wallet Operations events.
- The
GET /platform/admin/namespaces/{namespace}/users/{userId}/entitlements
endpoint now has an additional parameter,ignoreActiveDate
, which will work only withactiveOnly=true
. When the new parameter is set to true, the endpoint will ignore thestartDate
andendDate
of an entitlement. - Added the
GET /admin/namespaces/{namespace}/users/{userId}/entitlements/byIds
endpoint, which retrieves user entitlements by IDs. This will return all entitlements regardless of their status.
IAM
- Added the ability to delete unused or inactive legal documents.
- The
GET /iam/v3/public/namespaces/{namespace}/requests/{requestId}/async/status
endpoint now correctly returns "400" status for "request not found" errors. - Platform User IDs (
puid
) will not be included in access tokens upon refresh. - IAM will now validate country codes obtained from first parties (e.g., Steam, PSN, etc.) during logins.
- The
POST /iam/v4/public/namespaces/{namespace}/platforms/{platformId}/users
endpoint now supports queries for Oculus by app user ID. - Email scope now supports
id_token claims
.
Cloud Save
- Enhanced key validation. The implementation now relies on database-level validation for keys containing $ (dollar) and . (dot) characters, streamlining the update process by eliminating manual service checks.
- Standardized the
updatedAt
field format to date-time across concurrent update endpoints on OpenAPI specification.
Challenge
- Optimized the process for deleting tied challenges to reduce completion time significantly.
- Enhanced the clarity of "Create goal" endpoint description, detailing third-party value options for account linking.
Inventory
- Updated the reason message for better clarity when changing the collection ID of an entitlement.
- Optimized the time seconds fraction in inventory configuration to support Unreal Engine 4.27 parsing.
- Enhanced the save item endpoint description with more detailed information.
- Refined the save item logic to allow admins to define custom data for
slotUsed
, custom attributes, and server attributes when no default store configuration exists. - Upgraded the consume and chaining operation endpoints to support the consumption of option box items.
Season Pass
- Updated the
OpenJDK
being used by the service to version 21.
Session
- Improved the Xbox Multiplayer Activity feature in Session service:
- Added the new
PUT /session/v1/admin/namespaces/{namespace}/platform-credentials/{platformId}/sync
endpoint to sync the Xbox PFX credentials that are used for Xbox native session sync for MPA. - Adding
DELETE /session/v1/admin/namespaces/{namespace}/platform-credentials/{platformId}
to delete Xbox PFX configurations. - Improved the Xbox multiplayer activity sync so that the invited users in a session can be prevented from being re-invited by other members.
- Added the new
- Added metadata for game sessions and party requests invitations to enable game developers to add content for the receiver.
- Fixed the issue that prevented players from joining the party session by code when the party joinability type is
FRIENDS_OF_LEADER
,FRIENDS_OF_MEMBERS
, orFRIENDS_OF_FRIENDS
. - Fixed the issue that prevented a kicked user from a party session from creating a new party.
Matchmaking
- Backfill proposals in matchmaking can now be created without connecting to the DS Hub service.
- Enhanced the backfill process to address cases where the Matchmaking service fails to update the session.
Session History
- Fixed an issue that produced HTTP error code 404 when the admin queried the solo matchmaking ticket history using this endpoint:
GET /sessionhistory/v1/admin/namespaces/{namespace}/tickets/{ticketId}
- Fixed the issue of the query filter not working properly in the
GET /sessionhistory/v1/admin/namespaces/{namespace}/tickets
endpoint.
AMS
- Added the optional "claim timeout" that will apply to "ready" dedicated servers (DS) and replace them if they aren't claimed in the configured time.
- Update OpenAPI spec to clarify optional parameters for these endpoints:
post /ams/v1/admin/namespaces/{}/fleets
- Parameter:
imageDeploymentProfile/timeout/claim
- Parameter:
put /ams/v1/admin/namespaces/{}/fleets/{}
- Parameter:
imageDeploymentProfile/timeout/claim
- Parameter:
- Session IDs are now shown on the Fleet History page.
- Updated the memory value from Max memory to Usable memory on the Instance Type list.
- Added validation to prevent whitespace characters in fleet names.
- Add new queries on the Server Image endpoint.
GameSDK
- [Unreal Engine]
FAccelByteModelsRewardItem
struct now includes the correctly-parsedSKU
andIdentityType
fields. - [Unreal Engine] Changed any
this
on lambda capture inside the Quality of Service (QoS) toWeakPtr
- [Unreal Engine] Reduced the
UnbindLobbyMulticastDelegate
failure log level from Warning to Log. - [Unreal Engine] Ensured that the Session interface is destroyed before the Identity interface.
- [Unreal Engine] An error is triggered when using misconfigured base URLs in any HTTP request. We recommend reviewing your configuration if you encounter this error.
- [Unreal Engine] Ensured that the following delegates are only triggered once per event:
- Kick Party:
FOnlineAsyncTaskAccelByteKickV2GameSession::TriggerDelegates()
. - Game Sessions:
FOnlineSessionV2AccelByte::UnregisterLeftSessionMember()
for the leader.
- Kick Party:
Extend
- Improved accuracy of Extend billing.
Bug Fixes
Admin Portal
- Fixed the issue with changing the date of birth using the previous day.
- Fixed the issue where clicking the Log out button redirected to a "404 Namespace Not Found" page.
- Updated the placeholder for Cloud Save searches to their correct record type.
- Fixed the issue where the delete button wasn't displayed for additional fields in the Achievement details section.
- Disabled the Inventory Integration toggle in the Inventory Integration menu for Admins with view-only role.
- Hid the Add Role button on the group role details page for admins with the view-only role.
- Fixed the issue where the Export configuration button did not work in the Statistics Configuration menu for admins with the view-only role.
- Fixed the missing tab issue when an admin accessed the Matchmaking History page from Session History Details page.
- Fixed the issue where not all game namespaces were visible on the sidebar for users viewing the Admin Portal using a large screen.
- Fixed the issue where typing the same keyword on the legal search field would it as a new keyword on the recent search.
- Fixed the issue where a user can access table query data from another studio if the data is already cached.
- Fixed the issue where the Log Viewer result is not displayed on mobile view.
Challenge
- Fixed the issue preventing users from viewing completed challenges through the challenge list endpoint.
- Fixed the issue causing an "HTTP status code 500" error when claiming rewards for durable and non-stackable items in quantities greater than one.
- Fixed the issue where claiming multiple rewards with the same Stat Code didn't properly grant the correct Statistics value.
Cloud Save
- Fixed an issue where updating a player's record caused by a 'double hit' would return an "HTTP status code 500" error. It now correctly returns a "409 Conflict HTTP" error to indicate a duplicate request.
Inventory
- Fixed the issue where validation was missing when attempting to save multiple non-stackable items.
- Fixed the issue where an unhandled exception occurred if there was an attempt to add an unpublished item, which previously returned an "HTTP status code 500" error.
- Fixed the issue where an unhandled exception occurred during the transfer of non-stackable items, which previously resulted in an "HTTP status code 500" error.
- Fixed the issue where creating a new inventory configuration with the inventory code exceeding 64 characters resulted in an incorrect "HTTP status code 500" error.
- Fixed the issue where creating a new tag with a name exceeding 239 characters resulted in an "incorrect HTTP status code 500" error.
- Fixed the issue where the Global statistics calculation didn't include the default value on newly created user stat item.
Session
- Fixed the issue preventing kicked players from creating a party.
- Fixed the issue that prevented players from joining the party session by code when the party joinability type is
FRIENDS_OF_LEADER
,FRIENDS_OF_MEMBERS
, orFRIENDS_OF_FRIENDS
.
Session History
- Fixed the negative values displayed in Query Xray Match.
- Fixed the issue preventing query solo matchmaking.
- Fixed the issue with the wrong sorting result.
Login Website
- Fixed the input validation error not appearing on the input field when the user adds an invalid value.
- Fixed the issue where enabling the "third-party login only" flag would block the Admin Portal's forgot Password route.
Player Portal
- Hid Link an Account + button when there is no other third-party login that can be linked.
- Fixed the issue where the Account Overview page appears for 1–2 seconds (blinking) when the user accesses the player portal without logging in.
- Fixed the issue with users setting all legal documents to be hidden but the country dropdown would still appear.
- Fixed styling issue on Page not found error page.
- Fixed the issue where users see the "Page not found" error after linking a third-party account with a one-time code using an existing account.
- Fixed the Save Change button in the My Profile page being grayed out after changing the preferred language.
- Fixed the redirection issue with third-party logins using headless accounts redirecting back to the login website.
- Fixed the issue with logins using headless third-party accounts getting stuck on the upgrade account screen.
- Fixed the issue of the "Early age-gate" implementation being missing from the one-time-use code flow.
- Fixed the UI mobile view where the long email is spilled out from the designated area on the one-time code page.
- Fixed the issue with bullet points being unable to be displayed on legal documents that use Markdown.
- Removed the additional period (.) on each password input validation on the Password & Security - Change Password page.
- Various bug fixes and improvements around the localization feature.
- Fixed an issue that caused account synchronization to return a 404 error when re-claiming Twitch drop rewards.
- Fixed the issue with backfill tickets remaining undeleted when a session is not found.
- Fixed the panic errors that occur in the Matchmaking service when accepting backfills.
- Fixed an issue with inconsistent behavior when enabling bans through the Admin Portal.
- Fixed an issue that caused duplicate ban notifications.
App Editor
- Fixed the issue where the header and footer customization strips out special and East-Asian characters.
Analytics
- Enabled the AIS-connector to be able to consume a single Kafka topic for all events.
- Modified game telemetry to only use a single Kafka topic for all events.
- Updated configuration to not depend on Kafka-connect service.
- Updated game-telemetry to use the common log library.
- Updated analytics-vis-api to use the common log library.
- Adjusted the game telemetry test event endpoint to handle user unique identifier (UID).
- Fixed heartbeat topic in
analytics-vis-api
. - Fixed elastic search rollover failure issue.
AMS
- Fixed the issue with the value of the Running DS count in the fleet information and of the Running DS (Target) in the fleet list table showing only the Ready DS count instead of Ready + Claimed DS.
- Fixed the redirection issue from the Server List to the Session ID information.
- Fixed the broken redirection links in "ttx1 instance type" and "How to link AMS account".
- Fixed the issue with the sort by created at option on the Logs and Artifacts not working for pages starting from page 2.
- Fixed the issue where the ports protocol information being left blank in the Fleets server list endpoint.
- Fixed the issue causing inconsistent number of items to be shown per page when removing the search filter.
- Fixed the issue where the Validation on DS Host region configuration did not work under certain conditions.
Extend
- Fixed incorrect vulnerability label in the Admin Portal.
- Fixed configuration resource values for Extend App.
- Changed the AMS data source name format to be more readable for users.
- Fixed the CSM behavior related to vulnerability detection.
GameSDK
- [Unreal Engine] The correct delegates are now triggered on
FOnlineUserAccelByte::PostLoginBulkGetUserProfileCompleted
fromClearOnQueryUserInfoCompleteDelegates to ClearOnQueryUserProfileCompleteDelegates
. - [Unreal Engine] Fixed the issue where duplicate unban notifications were sent at the end of a ban period when the ban was already manually lifted.
- [Unreal Engine] The game client no longer attempts to reconnect a WebSocket connection when it is closed by the server due to multiple concurrent logins or a ban notification.
- [Unity] Fixed stripped
ctor
exception onAccelByte.Models.UpdateUserStatItemValueResponse
.