Verification

Verification

Use this checklist before releasing DiscordPulse or shipping a game that uses it.

Clean Project Test

  1. Create a clean Unreal Engine 5.7 Blueprint project.
  2. Install DiscordPulse under Plugins/DiscordPulse.
  3. Enable the plugin and restart Unreal.
  4. Confirm the editor opens without module errors.
  5. Confirm Discord Presence Subsystem is available to Blueprint.
  6. Complete the Quick Start.

Repeat with a C++ project if the plugin will be distributed to C++ users.

Canonical Runtime Test

Use:

Standalone play mode
Local Player Controller BeginPlay
Is Local Controller == true
Valid Discord Presence Subsystem
Set Simple Presence

Expected Output Log:

Loaded Discord Social SDK
Discord Presence initialized and connection started

Expected event:

On Discord Activity Updated

Initialization Tests

TestExpected Result
Empty Application IDInvalid Client ID; initialization-failed event fires
Non-numeric Application IDInvalid Client ID
Valid ID, Discord openInitialization returns Success
Valid ID, Discord closed, Require Discord Running enabledDiscord Not Running
Initialize twice with same IDSecond call returns Success
Initialize with a different IDSubsystem restarts
Shutdown twiceBoth calls complete without crashing

Activity Tests

  1. Initialize with a valid Application ID.
  2. Call Set Simple Presence.
  3. Confirm On Discord Activity Updated fires.
  4. Confirm the activity appears in Discord.
  5. Confirm Get Current Discord Activity matches the accepted activity.
  6. Test images using known uploaded asset keys.
  7. Test elapsed time.
  8. Test a complete button label/URL pair.
  9. Update only on meaningful game-state changes.
  10. Clear activity.

Blueprint Lifecycle Tests

TestExpected Result
Get subsystem from Game Instance Event InitReturns None; documented unsupported timing
Get subsystem from local Player Controller BeginPlayValid target
Listen server with local-controller guardOnly local controller initializes
Dedicated serverDoes not initialize DiscordPulse
Repeated PIE start/stopNo stale callback or shutdown crash

Failure Tests

  1. Call activity before initialization and confirm Not Initialized.
  2. Use an invalid Application ID and confirm the error event.
  3. Close Discord after a successful activity update.
  4. Submit another update and observe error/disconnect behavior.
  5. Reopen Discord and restart presence.
  6. Remove the runtime DLL from a test package and confirm clean SDK-load failure.

Invite Tests

Use two Discord accounts when possible:

  1. Publish party ID, available party size, and join secret.
  2. Confirm normal activity visibility.
  3. Accept an invite and confirm On Discord Join Requested.
  4. Send a join request and confirm On Discord Join Request Received.
  5. Accept with Respond To Discord Join Request.
  6. Confirm local dismissal behavior for No and Ignore.

Editor Tests

  • Standalone play
  • New Editor Window PIE
  • Listen-server PIE with local-controller guard
  • Repeated PIE entry and exit
  • Map changes while updating activity
  • Editor close while DiscordPulse is active

BuildPlugin Test

Use an output directory outside the source plugin:

Engine\Build\BatchFiles\RunUAT.bat BuildPlugin ^
  -Plugin="C:\Source\DiscordPulse\DiscordPulse.uplugin" ^
  -Package="C:\PluginPackages\DiscordPulse" ^
  -TargetPlatforms=Win64

Install the generated package into a clean project and repeat the canonical runtime test.

Packaged Game Test

  1. Package Win64 Development.
  2. Confirm discord_partner_sdk.dll is beside the executable.
  3. Run with Discord open.
  4. Run with Discord closed.
  5. Repeat with Shipping.
  6. Review logs for LogDiscordPulse.

Release Record

Record for every release:

Plugin version:
Unreal version:
Discord Social SDK version:
Platforms tested:
Blueprint project:
C++ project:
Editor Development:
Game Development:
Game Shipping:
Known limitations: