Skip to content

FWGuildSystem Plugin

Version: 1.0 | Module: FWGuildSystem | Type: Runtime

A comprehensive guild system plugin for Unreal Engine 5 that provides guild creation, rank hierarchies with granular permissions, member management, invitation workflows, audit logging, and HTTP API integration for backend persistence.


Feature Overview

Feature Description
Guild Lifecycle Create, disband, search, and manage guilds
Rank System Configurable rank hierarchies with bitmask permissions
Member Management Invite, kick, promote, and demote guild members
Invitation Workflow Send, accept, decline, and expire invitations
Audit Logging Track all guild operations with timestamps and actor info
HTTP API Integration Full backend persistence via REST endpoints
Chat Integration Optional sync with FWChatSystem for guild channels
Blueprint Support All operations exposed to Blueprint via callable functions and delegates

Dependencies

Dependency Type Notes
FWChatSystem Optional Enables guild chat channel synchronization. The plugin functions fully without it.

Optional Dependency Handling

FWGuildSystem detects FWChatSystem at runtime. When absent, the UFWGuildChatIntegrationComponent gracefully disables itself and all chat-related delegates return without error.


Plugin Architecture

FWGuildSystem
├── Components/
│   ├── UFWGuildManagerComponent      // Blueprint-facing guild operations
│   ├── UFWGuildStateComponent        // Local guild state cache
│   └── UFWGuildChatIntegrationComponent  // Optional chat bridge
├── Types/
│   └── FWGuildTypes.h                // Enums, structs, bitmasks
└── Utils/
    └── FFWGuildTypeUtils             // Static helper functions

Quick Start

1. Enable the Plugin

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

2. Add Components to Your Player Controller or Pawn

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Guild")
TObjectPtr<UFWGuildManagerComponent> GuildManager;

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Guild")
TObjectPtr<UFWGuildStateComponent> GuildState;

3. Create a Guild

GuildManager->CreateGuild(TEXT("My Guild"), TEXT("A guild for adventurers."));
GuildManager->OnGuildCreated.AddDynamic(this, &AMyPlayerController::HandleGuildCreated);

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

4. Configure Rank Permissions

FFWGuildRank OfficerRank;
OfficerRank.Name = TEXT("Officer");
OfficerRank.Permissions = static_cast<uint8>(
    EFWGuildPermission::Invite |
    EFWGuildPermission::Kick |
    EFWGuildPermission::ViewAuditLog
);

File Reference

Page Description
Guild Manager Component Primary API for all guild operations
Guild State Component Local state management and caching
Chat Integration Component Optional FWChatSystem bridge
Types Reference Enums, structs, and bitmask definitions
API Reference Complete function and delegate reference
Configuration Plugin settings and project configuration
Events and Delegates All multicast delegates and event types
Permissions Guide Rank permission system deep dive
Tutorial: Setting Up a Guild System Step-by-step implementation guide

Compatibility

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

Dedicated Server

Guild operations that communicate with the HTTP API should only execute on the server or in a client-authoritative context with proper validation. The UFWGuildManagerComponent handles authority checks internally when used on replicated actors.