Legacy

WARNING: You are viewing changelogs for old versions of the plugin.

Version 1.9.1 (August 03, 2023)

  • Fixed an issue where party state cleanup would sometimes fail when leaving the party as a client. This caused party player actors to stay alive even after leaving the party. With this change the PreLeaveParty function has been renamed to CleanupPartyState in the KronosPartyState class. Please make sure to update your code if you had this function overridden in C++ before.

  • Fixed an issue in KronosOnlineSession class where the CanAcceptSessionInvite function had the "Session" param as output instead of input. This caused the session to reset into an invalid state when accepting the invite. Please make sure to update your blueprint if you had this function overridden before.

  • The "Session" param of OnGameSessionInviteAccepted and OnPartySessionInviteAccepted events in KronosOnlineSession have also been turned into constant reference.

Version 1.9.0 (July 19, 2023)

  • Added the ability to reconnect parties after returning to the main menu from a match! This is only the first iteration of this feature, and I expect to improve it with later releases. For a user guide, please refer to the Reconnect Party page of the documentation. Several new things have been introduced for this system, see below.

  • Added ReconnectKronosParty async node to the plugin.

  • Added CancelReconnectKronosParty async node to the plugin.

  • Added ClientReconnectPartyDelay and ClientReconnectPartyAttempts config params to the plugin.

  • Added three new properties to KronosLastPartyInfo. It now also stores the last party session id, player count, and (in C++ only) the session settings of the party.

  • Added bUseVoiceChatIfAvailable setting to KronosHostParams and KronosSessionSettings. This allows you to set the bUseLobbiesVoiceChatIfAvailable session setting in case your Online Subsystem depends on it for VOIP integration.

  • Added LeavePartyInternal function to KronosPartySubsystem (C++ only). The previous LeaveParty function is now only used for user requested disconnects. If you have extended the plugin from C++, and have cases where the player must leave the party due to game control flow, please use this new internal function instead.

  • Added OnKronosMatchUpdated event to KronosOnlineSession.

  • Added OnKronosPartyUpdated event to KronosOnlineSession.

  • Added initial replication handling to KronosLobbyHUD. This system brings two new nodes to the HUD class. See below.

  • Added OnInitialReplicationFinished event to KronosLobbyHUD.

  • Added HasInitialReplicationFinished function to KronosLobbyHUD. You can override this function to set variable replication requirements for the HUD.

  • Added the ability to recreate a session from previous session settings (C++ only). Set the SessionSettingsOverride param in the KronosHostParams to recreate a session from its native state. If set, all other params will be ignored in the host params. The session owner id will be updated automatically if necessary.

  • Added connection lost error message (after host left the match) to the examples shipped with the plugin as it was missing. You can find it in BP_KronosExampleLobbyPlayerController.

  • Fixed an issue with party cleanup, where party player actors would not get destroyed after the player has left the party.

  • Fixed an issue with KronosLobbyHUD where sometimes the player connected/disconnected events wouldn't be called due to late replication of game state.

  • Fixed an issue with matchmaking where using a specific session query for session owner id would not find any sessions.

  • The SEARCH_USER query setting is no longer used by the plugin because it was causing owner id based specific session query to fail for some reason. The removal of this setting does not affect matchmaking in any way. However, I hope to debug this in the future and re-introduce it if possible in case an Online Subsystem wishes to use this.

  • The KronosNameplateComponent now destroys the nameplate widget when the component is destroyed.

  • The KronosEditor module has been reworked to better segment its code.

  • The KronosEditor module now has its own EditorStyle as per engine convention.

  • Updated the description of UpdateKronosSession async nodes.

  • Updated copyright notice in plugin module build files and fixed missing copyright notice in KronosFriendsSubsystem.

  • Please note: For the 2.0 release I want to overhaul some aspects of the plugin that are currently problematic. Due to this, the 2.0 update may NOT be 100% backwards compatible with previous versions, and may require you to manually update some code in your project. If any breaking changes are introduced, a complete migration guide will be available for all users.

Version 1.8.0 (May 16, 2023)

  • Added support for Unreal Engine 5.2!

  • Added the ability to spawn player actors for party members! Several new things have been introduced to allow this feature to work seamlessly, see below.

  • Added a new KronosPartyPlayerActor class. This actor represents a single party member visually in the game world. Optionally it can also render a widget to the screen at the actor's location automatically.

  • Added a new KronosPartyPlayerStart class that can be used to mark spawn locations for party player actors. You can find this class in the "Place Actors" tab inside the "Kronos Matchmaking" category.

  • Added a custom "Kronos Matchmaking" category to the "Place Actors" tab of the engine.

  • Added PartyPlayerActorClass param to KronosPartyState. If set, one actor will be spawned automatically for each party member.

  • Added several console commands to the plugin to help with debugging. For the full list of console commands please refer to the Console Commands section of the documentation on the Testing & Debugging page.

  • Changed the "PartyPlayerEntryBox" widget binding in the KronosPartyWidget to be optional instead of required.

  • Updated the party cleanup process. The KronosPartyState actor is now getting destroyed before leaving the party.

  • Updated the example content provided with the plugin to showcase the new party player actor spawning system.

  • Fixed a potential issue where the KronosNameplateComponent initialization wouldn't abort if its owning actor was getting destroyed.

  • Fixed an issue in the example content provided with the plugin where players were unable to invite players to the lobby due to the platform invite UI not appearing.

  • Please note: Unreal Engine 4.27 version of the plugin can no longer be updated through the Marketplace due to Epic only allowing updates for the three latest engine versions. An up-to-date version for this engine release is available through the Kronos LTS program. For more information please visit the Kronos LTS page of the website.

Version 1.7.0 (April 16, 2023)

  • The plugin now ships with a new set of example blueprints, widgets, and maps. You can find these examples in the Content Browser. Make sure that the "Show Engine Content" and "Show Plugin Content" settings are enabled.

  • The plugin is now integrated with the GameplayDebugger. A custom gameplay debugger category has been implemented for Kronos which will draw matchmaking and session information to the screen in real-time. The gameplay debugger can be activated with the apostrophe (') key by default, or with the EnableGDT console command.

  • Added ClientFollowPartyAttempts param to KronosConfig. This allows you to specify the amount of search attempts to make for the party leader's session when following the party into a session.

  • Added CopyRegisteredReservations function to KronosReservationSubsystem and KronosStatics. This function is intended to be used as the host reservation before traveling to a new map in an online match. Going forward, this is the recommended way of setting the host reservation instead of MakeReservationForGamePlayers.

  • Added GetOwningPartyClient function to KronosPartyPlayerState.

  • Changed the SETTING_USERESERVATIONS session setting's type from bool to int32 because the Steam Online Subsystem doesn't support bool queries.

  • Updated the code documentation of several matchmaking and host params.

  • Updated copyright notice in plugin source files.

  • Fixed an issue where the editor would crash when attempting to create a party in PIE.

  • Fixed an issue where a reservation was attempted to be removed with an invalid player id when toggling the debug camera in the GameplayDebugger.

Version 1.6.1 (March 09, 2023)

  • Fixed an issue where players would sometimes crash when joining a party.

  • Fixed an issue where the FollowPartyToSessionFailure and OnFollowPartyFailure events weren't getting called when the session was not found.

Version 1.6.0 (March 03, 2023)

  • Added a new subsystem called KronosFriendsSubsystem. This subsystem will implement online friends interface related events and utility functions.

  • Added IsFriend function to KronosStatics and KronosFriendsSubsystem.

  • Added a new LastPartyInfo struct to the KronosPartySubsystem that contains some context information about the last party that we were a part of. This information is updated automatically when we create or join a party.

  • Added GetLastPartyInfo function to KronosStatics and KronosPartySubsystem.

  • Added HasLastPartyInfo function to KronosStatics and KronosPartySubsystem.

  • The host reservation feature of the KronosReservationHost beacon is now an array instead of a single reservation. This allows us to auto register multiple reservations, which in turn makes it possible to preserve all reservations as is before transitioning from the lobby to the match (keeping the information of who joined from the same party).

  • Added GetReservations function to KronosReservationHost. This can be used to retrieve all registered reservations in their current state.

  • Added SetHostReservations function to KronosStatics and KronosReservationSubsystem.

  • Added GetPlayerControllerFromUniqueId utility function to KronosStatics.

  • The GetPlayerStateFromUniqueId function in KronosStatics no longer returns the pointer as constant.

  • Exposed the FindReservation function of the KronosReservationHost to blueprints.

  • Optimized unique id IsValid calls throughout the plugin's code base.

  • Fixed an issue where reservation timeouts were not cleared properly resulting in pointless timeout attempts.

  • Fixed an issue where the reservation's owner unique id wouldn't be cleared when the owner left.

  • Fixed a potential issue where the PreReservationOwnerRemoved event of KronosReservationHost would be called multiple times while removing a reservation.

  • Fixed misleading code documentation for the LeaveKronosMatch node regarding its completion delegate.

  • Fixed missing code documentation for the KronosIdentitySubsystem class.

  • Blueprint nodes with unique return value names now use the ReturnDisplayName function metadata as they should.

Version 1.5.0 (January 29, 2023)

  • Added an overridable StartSearchPass function to KronosMatchmakingPolicy.

  • Added an overridable GetEloSearchRangeFor function to KronosMatchmakingPolicy.

  • Added PreReservationOwnerRemoved event to KronosReservationHost. This can be used to notify reservation members that the owner is leaving (e.g. leave and reconnect to the party), or to assign a new owner to the reservation.

  • Added GetPlayerStateFromUniqueId utility function to KronosStatics.

  • Added ToString support for the FUniqueNetIdRepl type in blueprints.

  • Added IsValid utility function for the FUniqueNetIdRepl type in blueprints.

  • Added IsValid utility function for several Kronos types in blueprints such as FKronosMatchmakingParams, FKronosHostParams, FKronosReservation, and more.

  • The plugin's C++ code is now more tightly integrated with blueprints. Advanced features such as native make/break functions, script methods, and blueprint autocasts have been implemented where needed.

  • Fixed an issue where matchmaking would use an incorrect EloRange for subsequent matchmaking passes.

  • Fixed an issue where the PreRegisterReservation function's base C++ implementation wasn't getting called when overriding it in blueprints. If you have overridden this function in blueprints, then please delete the function and re-override it.

Version 1.4.0 (December 24, 2022)

  • Added GetPlayerElo and GetPlayerData functions to KronosPartyClient.

  • Added IsLocalPlayer function to KronosPartyClient and KronosPartyPlayerState.

  • Added an option for KronosLobbyGameMode to only start lobby countdown when all players are ready.

  • Added comparison operator support (equal, not equal) for the FUniqueNetIdRepl type in blueprints.

  • Additional note: The Kronos Sample project has also been updated to include new features of the plugin. If you already have it downloaded, then please make sure to update it before opening the project.

Version 1.3.1 (December 17, 2022)

  • Fixed an issue where matchmaking would continue after an unsuccessful matchmaking pass even though it was not supposed to in the given matchmaking mode (e.g. in JoinOnly mode).

Version 1.3.0 (December 13, 2022)

  • Added an overridable PreRegisterReservation function to KronosReservationHost.

  • Added OnReservationRegistered and OnReservationRemoved events to KronosReservationHost.

  • Added OnInitialized event to KronosReservationHost and KronosPartyHost.

  • Exposed the following functions to blueprints in KronosReservationHost: GetMaxNumReservations, GetNumReservations, GetNumConsumedReservations, and DumpReservations.

  • Added CompleteReservationById function to KronosStatics.

  • Added GetPlayerUniqueId function to KronosStatics. This is a helper function that gets the player's unique id from their player state.

  • Added GetReservationHost function to KronosStatics.

  • Added GetPlayerElo function to KronosPartyPlayerWidget.

  • Exposed properties of KronosReservation and KronosReservationMember to blueprints.

  • The UKronosReservationSubsystem::PlayerHasReservation function has been turned into a constant function.

Version 1.2.0 (December 6, 2022)

  • Added support for Unreal Engine 5.1!

  • Added a new component called KronosNameplateComponent which can be used to render widgets above players heads.

  • Added a new ServerTravelToLevel function to KronosStatics. Blueprint projects can use this instead of relying on the ExecuteConsoleCommand node to initiate server travels.

  • Added OnPartyPlayerEloChanged event to KronosPartyPlayerWidget.

  • Removed bAutoRemoveWidget from KronosLobbyPlayerWidget as it is no longer needed.

  • Please note: Unreal Engine 4.26 version of the plugin is no longer getting updates due to Epic only allowing updates for the three latest engine versions on the Marketplace. If you need an up-to-date version for this engine release, please contact me privately.

Version 1.1.0 (November 6, 2022)

  • Improved reservation registering. Now pending duplicate reservations are cleaned up instead of returning a DuplicateReservation error.

  • Fixed a potential issue with the session cleanup process, where if the session was being destroyed already the cleanup would just complete immediately.

  • Added three new blueprint nodes to the KronosLobbyGameMode class: GetLobbyState, GetLobbyTimer, GetNumPlayersRequired.

  • Removed the SkipReservation param from the JoinKronosParty node as it was irrelevant. Party sessions don't make use of reservations.

  • Changed the default server name to "<PlayerName>'s Session". This can be overridden via the UKronosMatchmakingPolicy::GetDefaultServerName function.

  • FNames in function arguments are no longer sent by reference.

  • The AKronosReservationHost::DumpReservations function has been turned into a constant function.

Version 1.0.0 (November 1, 2022)

Initial release.

Last updated