Skip to content

FWPartySystem Plugin

Version: 2.0 | Module: FWPartySystem | Type: Runtime

A production-ready, beacon-based party system for Unreal Engine 5 that persists across level transfers. FWPartySystem supports direct join via codes, invitation workflows, configurable party sizes, leader management, and integrates with FWChatSystem for automatic party chat channels.


Feature Overview

Feature Description
Party Lifecycle Create, join, leave, and disband parties with full state management
Join Codes Share short alphanumeric codes for direct party join without friend lists
Invitation System Send, accept, decline, and auto-expire party invitations
Beacon Architecture Server-authoritative state via AOnlineBeaconHost / AOnlineBeaconClient
Level Transfer Persistence Party state survives seamless travel and hard map loads
Leader Management Automatic leader migration on disconnect, manual leader transfer
Configurable Party Size Per-party max member limits with Blueprint-configurable defaults
Privacy Modes Open parties (anyone with code can join) or invite-only parties
Kick System Leaders can remove members with automatic state cleanup
Chat Integration Optional sync with FWChatSystem for automatic party chat channels
Blueprint Support All operations, queries, and events exposed to Blueprints

Dependencies

Dependency Type Notes
OnlineSubsystem Required Provides unique net ID resolution for party members
OnlineSubsystemUtils Required Utility functions for online identity handling
SocketIOClient Required Used for real-time party event synchronization
FWChatSystem Optional Enables automatic party chat channel creation and teardown

Optional Chat Integration

When FWChatSystem is present, creating a party automatically provisions a private chat channel scoped to party members. When absent, all chat-related functionality is silently skipped with no errors.


Plugin Architecture

FWPartySystem
+-- Components/
|   +-- UFWPartyManagerComponent       // Blueprint-facing party operations
+-- Beacons/
|   +-- AFWPartyBeaconHost             // Server-side party state authority
|   +-- AFWPartyBeaconClient           // Client-side beacon communication
|   +-- AFWPartyHostObject             // Party host management object
+-- Types/
|   +-- FWPartyTypes.h                 // Enums, structs, delegates

Quick Start

1. Enable the Plugin

In your .uproject file or via the Plugin Manager, enable FWPartySystem.

2. Add the Component to Your Player Controller

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Party")
TObjectPtr<UFWPartyManagerComponent> PartyManager;

3. Create a Party

PartyManager->CreateParty();
PartyManager->OnPartyCreated.AddDynamic(this, &AMyController::HandlePartyCreated);

Call Create Party on the Party Manager Component, then bind the On Party Created event to handle the result.

4. Share the Join Code

void AMyController::HandlePartyCreated(const FFWPartyInfo& PartyInfo)
{
    // Display PartyInfo.JoinCode in your UI for other players to use
    UE_LOG(LogParty, Log, TEXT("Party created with code: %s"), *PartyInfo.JoinCode);
}

5. Join a Party by Code

PartyManager->JoinPartyByCode(TEXT("ABC123"));
PartyManager->OnJoinPartyResult.AddDynamic(this, &AMyController::HandleJoinResult);

File Reference

Page Description
Installation Add the plugin to your project and configure dependencies
Quick Start Get a party system running in under 10 minutes
Party Manager Component Primary API for all party operations
Beacon Architecture Server-side beacon host, client, and host object internals
Types Reference Enums, structs, and delegate definitions
API Reference Complete function and delegate reference
Configuration Plugin settings, party defaults, and project configuration
Events and Delegates All multicast delegates and event flow diagrams
Tutorial: Implementing Multiplayer Parties Step-by-step implementation guide
Changelog Version history and release notes

Compatibility

Engine Version Status
UE 5.4+ Supported
UE 5.3 Supported
UE 5.2 and below Not tested

Dedicated Server

All party mutations are server-authoritative. The AFWPartyBeaconHost must run on the server or a dedicated beacon host. Client-side calls to UFWPartyManagerComponent dispatch requests through the beacon client and do not modify local state until the server confirms the operation.