Migration

Migration

DiscordPulse replaces older Discord RPC or Game SDK wrappers with a Game Instance subsystem backed by the Discord Social SDK.

Main Changes

Older IntegrationDiscordPulse
DiscordRpc.upluginDiscordPulse.uplugin
DiscordRpc runtime moduleDiscordPulse runtime module
Custom Discord Game Instance subclassNormal Game Instance plus UDiscordPresenceSubsystem
Manual callback node or timerAutomatic subsystem callback ticker
Basic presence nodeSet Simple Presence
Full legacy presence nodeSet Discord Activity
DiscordRpcLibrary or DiscordGameSDKDiscordSocialSDK

Replace Blueprint Startup

Old patterns often initialized directly from a custom Game Instance.

For UE 5.7 Blueprint projects, use:

Local Player Controller: Event BeginPlay
  -> Is Local Controller
  -> Branch (True)
  -> Get Game Instance Subsystem (Discord Presence Subsystem)
  -> Is Valid
  -> Bind error/activity events
  -> Initialize Discord Presence

Do not move the new subsystem getter into Blueprint Game Instance Event Init. That event runs before Game Instance Subsystems exist.

Replace Presence Calls

For details and state:

Set Simple Presence

For full activity:

Make FDiscordPresenceActivity
  -> Set Discord Activity

Activity updates complete asynchronously. Bind:

On Discord Activity Updated
On Discord Error

Field Compatibility

Supported:

  • Details and state
  • Large and small images
  • Image hover text
  • Start and end timestamps
  • Party ID and size
  • Join secret
  • Two buttons
  • Activity type

Retained but ignored:

  • SpectateSecret
  • MatchSecret
  • Is Instance

Migration Checklist

  1. Back up the project.
  2. Remove references to old Discord Game Instance classes and nodes.
  3. Install and enable DiscordPulse.
  4. Move Blueprint startup to local Player Controller BeginPlay.
  5. Validate the subsystem target.
  6. Bind initialization, error, and activity events.
  7. Call Initialize Discord Presence once for the local player.
  8. Replace basic calls with Set Simple Presence.
  9. Replace advanced calls with Set Discord Activity.
  10. Remove manual Discord callback timers.
  11. Test Standalone, PIE, Development, and Shipping.
  12. Remove old SDK folders only after successful packaging and runtime verification.

Common Migration Mistakes

  • Calling Get Game Instance Subsystem from Blueprint Game Instance Event Init
  • Running Discord setup on the server instead of the local player
  • Treating a default Success pin as proof that a node executed
  • Treating immediate activity Success as final Discord acceptance
  • Editing one plugin copy while the project loads another copy
  • Keeping old manual callback timers