Setup Guide
Installation
From FAB Marketplace
- Purchase and download ElysIdentity from the FAB Marketplace
- Enable the plugin in your project's
.uprojectfile or via Edit → Plugins - Restart the editor
Manual Installation
Copy the ElysIdentity folder to your project's Plugins/ directory and rebuild.
Prerequisites
- Unreal Engine 5.6+
- SQLiteCore plugin enabled (included with UE, used for SQLite backend)
Quick Setup
1. Add the Identity Component
Add UERPIdentityComponent to your PlayerController Blueprint or C++:
// In your PlayerController header
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
UERPIdentityComponent* IdentityComponent;
// In constructor
IdentityComponent = CreateDefaultSubobject<UERPIdentityComponent>(TEXT("IdentityComponent"));
Or simply add it as a component in your PlayerController Blueprint.
2. Configure Plugin Settings
Open Project Settings → Rogue Paradigm → ElysIdentity and configure:
| Setting | Default | Description |
|---|---|---|
| PersistenceBackend | Json | Json for prototyping, SQLite for production |
| DatabasePath | {ProjectSaved}/ElysIdentity/players | Path to database file (.json or .db appended automatically) |
| TokenExpiryDays | 30 | Session token lifetime in days |
| ServerHMACSecret | changeme_in_production | Must change for production! HMAC signing secret |
| MaxPINAttempts | 5 | Failed PIN attempts before lockout |
| PINLockoutSeconds | 300 | Lockout duration in seconds |
| RecoveryCodeExpirySeconds | 900 | Recovery code lifetime (15 minutes) |
warning
Always change ServerHMACSecret before shipping. The default value is intentionally insecure.
3. Build Your Login UI
Listen for the OnLoginRequested delegate on UERPIdentityComponent:
IdentityComponent->OnLoginRequested.AddDynamic(this, &AMyPC::ShowLoginWidget);
Your widget should call:
Server_Login(AccountName, PIN)for existing accountsServer_Register(AccountName, PIN)for new accountsServer_RequestRecovery(AccountName)for forgotten PINs
4. Handle Authentication Success
IdentityComponent->OnAuthStateChanged.AddDynamic(this, &AMyPC::OnAuthChanged);
void AMyPC::OnAuthChanged(ERPAuthStateEnum NewState)
{
if (NewState == ERPAuthStateEnum::Authenticated)
{
FString PlayerGUID = IdentityComponent->GetPlayerGUID();
// Player is authenticated, proceed to gameplay
}
}
Authentication Flows
Returning Player (Silent)
When a player reconnects, the component automatically reads the stored session token and authenticates silently — no login widget needed.
New Player / Expired Token
The component fires OnLoginRequested, signaling your UI to show a login/register form.
PIN Recovery
- Player calls
Server_RequestRecovery(AccountName) - Server generates a 6-character code and fires
OnRecoveryCodeGenerated(deliver via Discord bot, webhook, etc.) - Player enters code + new PIN via
Server_RedeemRecovery(AccountName, Code, NewPIN)