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 toCleanupPartyState
in theKronosPartyState
class. Please make sure to update your code if you had this function overridden in C++ before.Fixed an issue in
KronosOnlineSession
class where theCanAcceptSessionInvite
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
andOnPartySessionInviteAccepted
events inKronosOnlineSession
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
andClientReconnectPartyAttempts
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 toKronosHostParams
andKronosSessionSettings
. This allows you to set thebUseLobbiesVoiceChatIfAvailable
session setting in case your Online Subsystem depends on it for VOIP integration.Added
LeavePartyInternal
function toKronosPartySubsystem
(C++ only). The previousLeaveParty
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 toKronosOnlineSession
.Added
OnKronosPartyUpdated
event toKronosOnlineSession
.Added initial replication handling to
KronosLobbyHUD
. This system brings two new nodes to the HUD class. See below.Added
OnInitialReplicationFinished
event toKronosLobbyHUD
.Added
HasInitialReplicationFinished
function toKronosLobbyHUD
. 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 theKronosHostParams
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 ownEditorStyle
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 toKronosPartyState
. 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 theEnableGDT
console command.Added
ClientFollowPartyAttempts
param toKronosConfig
. 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 toKronosReservationSubsystem
andKronosStatics
. 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 ofMakeReservationForGamePlayers
.Added
GetOwningPartyClient
function toKronosPartyPlayerState
.Changed the
SETTING_USERESERVATIONS
session setting's type frombool
toint32
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
andOnFollowPartyFailure
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 toKronosStatics
andKronosFriendsSubsystem
.Added a new
LastPartyInfo
struct to theKronosPartySubsystem
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 toKronosStatics
andKronosPartySubsystem
.Added
HasLastPartyInfo
function toKronosStatics
andKronosPartySubsystem
.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 toKronosReservationHost
. This can be used to retrieve all registered reservations in their current state.Added
SetHostReservations
function toKronosStatics
andKronosReservationSubsystem
.Added
GetPlayerControllerFromUniqueId
utility function toKronosStatics
.The
GetPlayerStateFromUniqueId
function inKronosStatics
no longer returns the pointer as constant.Exposed the
FindReservation
function of theKronosReservationHost
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 ofKronosReservationHost
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 toKronosMatchmakingPolicy
.Added an overridable
GetEloSearchRangeFor
function toKronosMatchmakingPolicy
.Added
PreReservationOwnerRemoved
event toKronosReservationHost
. 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 toKronosStatics
.Added
ToString
support for theFUniqueNetIdRepl
type in blueprints.Added
IsValid
utility function for theFUniqueNetIdRepl
type in blueprints.Added
IsValid
utility function for several Kronos types in blueprints such asFKronosMatchmakingParams
,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
andGetPlayerData
functions toKronosPartyClient
.Added
IsLocalPlayer
function toKronosPartyClient
andKronosPartyPlayerState
.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 toKronosReservationHost
.Added
OnReservationRegistered
andOnReservationRemoved
events toKronosReservationHost
.Added
OnInitialized
event toKronosReservationHost
andKronosPartyHost
.Exposed the following functions to blueprints in
KronosReservationHost
:GetMaxNumReservations
,GetNumReservations
,GetNumConsumedReservations
, andDumpReservations
.Added
CompleteReservationById
function toKronosStatics
.Added
GetPlayerUniqueId
function toKronosStatics
. This is a helper function that gets the player's unique id from their player state.Added
GetReservationHost
function toKronosStatics
.Added
GetPlayerElo
function toKronosPartyPlayerWidget
.Exposed properties of
KronosReservation
andKronosReservationMember
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 toKronosStatics
. Blueprint projects can use this instead of relying on theExecuteConsoleCommand
node to initiate server travels.Added
OnPartyPlayerEloChanged
event toKronosPartyPlayerWidget
.Removed
bAutoRemoveWidget
fromKronosLobbyPlayerWidget
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