Changelog¶
All notable changes to FWPartySystem are documented on this page.
Version 2.0¶
Release type: Major | Engine: UE 5.3+
Added¶
- Beacon-based architecture. Complete rewrite from GameState replication to Online Beacon framework (
AFWPartyBeaconHost,AFWPartyBeaconClient,AFWPartyHostObject). Party state is now fully server-authoritative and decoupled from the game world. - Level transfer persistence. Party state survives both seamless travel and hard map loads. Beacon connections persist independently of game world teardown.
- Join codes. 6-character alphanumeric codes generated server-side for direct party join without friend lists. Ambiguous characters (
0,O,1,I,L) excluded from the character set. - Invitation system. Full invitation workflow with
InvitePlayer,AcceptInvitation,DeclineInvitation, and server-managed expiration timers. - Privacy modes.
EFWPartyPrivacy::OpenandEFWPartyPrivacy::InviteOnlycontrol whether join-by-code is available. - Kick system. Leader can remove members via
KickMemberwith automatic state cleanup and event broadcast. - Leader migration. Automatic leadership transfer to the longest-tenured online member when the leader disconnects or leaves.
- Disconnect grace period. Configurable window (default 60s) during which disconnected members can rejoin without losing their party slot.
- FWChatSystem integration. Optional automatic party chat channel creation and teardown when FWChatSystem is present.
OnMemberKickeddelegate. Distinct fromOnMemberLeftto allow UI differentiation between voluntary leave and kick.OnLocalPlayerJoinedParty/OnLocalPlayerLeftPartydelegates. Separate local-only events for the player's own party transitions.OnInvitationExpireddelegate. Server-driven expiration notification.FFWPartySettingsstruct. Centralized configuration for party defaults.
Changed¶
UFWPartyManagerComponentis now a pure client-side interface. All state mutations route through the beacon.- Member tracking uses
FUniqueNetIdReplinstead ofAPlayerStatereferences, enabling cross-level identity. - Party state is no longer replicated via
FFastArraySerializer. The beacon pushes completeFFWPartyInfosnapshots on change. OnPartyUpdatednow fires with the completeFFWPartyInfoinstead of a delta.
Removed¶
UFWPartyStateComponent-- redundant with beacon-cached state in the manager component.FFastArraySerializer-based replication -- replaced by beacon RPC state pushes.- Direct
APlayerStatereferences in party member info -- replaced byFUniqueNetIdRepl.
Migration Guide¶
Breaking Changes
Version 2.0 is a complete architecture rewrite. There is no automated migration path from 1.x.
Key migration steps:
- Replace
UFWPartyStateComponentwithUFWPartyManagerComponentonly. The manager now handles both operations and local state caching. - Spawn
AFWPartyBeaconHostin your GameMode'sInitGame. See Tutorial Part 1, Step 2. - Update member references. Replace any
APlayerState*member lookups withFUniqueNetIdRepl-based lookups viaFFWPartyMemberInfo::UniqueNetId. - Update event handlers.
OnPartyUpdatednow passesFFWPartyInfoinstead of individual changed fields. Bind new delegates (OnMemberKicked,OnLocalPlayerJoinedParty, etc.) as needed. - Configure beacon port. Add
BeaconPorttoDefaultEngine.iniand ensure firewall rules allow the port.
Version 1.0¶
Release type: Initial | Engine: UE 5.2+
Added¶
- Initial release of FWPartySystem.
UFWPartyManagerComponentfor party creation and management.UFWPartyStateComponentfor replicated party state viaFFastArraySerializer.EFWPartyRole(Leader, Member).FFWPartyMemberInfowithAPlayerStatereferences.FFWPartyInfowith member list and party ID.OnPartyCreated,OnPartyDisbanded,OnPartyUpdated,OnMemberJoined,OnMemberLeft,OnLeaderChangeddelegates.- Basic party creation and leave functionality.
- Automatic leader migration on disconnect.