Migration
DiscordPulse replaces older Discord RPC or Game SDK wrappers with a Game Instance subsystem backed by the Discord Social SDK.
Main Changes
| Older Integration | DiscordPulse |
|---|---|
DiscordRpc.uplugin | DiscordPulse.uplugin |
DiscordRpc runtime module | DiscordPulse runtime module |
| Custom Discord Game Instance subclass | Normal Game Instance plus UDiscordPresenceSubsystem |
| Manual callback node or timer | Automatic subsystem callback ticker |
| Basic presence node | Set Simple Presence |
| Full legacy presence node | Set Discord Activity |
DiscordRpcLibrary or DiscordGameSDK | DiscordSocialSDK |
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 PresenceDo 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 PresenceFor full activity:
Make FDiscordPresenceActivity
-> Set Discord ActivityActivity updates complete asynchronously. Bind:
On Discord Activity Updated
On Discord ErrorField 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:
SpectateSecretMatchSecretIs Instance
Migration Checklist
- Back up the project.
- Remove references to old Discord Game Instance classes and nodes.
- Install and enable DiscordPulse.
- Move Blueprint startup to local Player Controller
BeginPlay. - Validate the subsystem target.
- Bind initialization, error, and activity events.
- Call
Initialize Discord Presenceonce for the local player. - Replace basic calls with
Set Simple Presence. - Replace advanced calls with
Set Discord Activity. - Remove manual Discord callback timers.
- Test Standalone, PIE, Development, and Shipping.
- Remove old SDK folders only after successful packaging and runtime verification.
Common Migration Mistakes
- Calling
Get Game Instance Subsystemfrom Blueprint Game InstanceEvent Init - Running Discord setup on the server instead of the local player
- Treating a default
Successpin as proof that a node executed - Treating immediate activity
Successas final Discord acceptance - Editing one plugin copy while the project loads another copy
- Keeping old manual callback timers