Quick Start
This guide creates the smallest reliable Blueprint setup and proves that Discord accepted the activity.
Before You Start
Confirm:
- DiscordPulse is enabled and Unreal Editor was restarted.
- Discord desktop is open and logged in.
- You have the numeric Discord Application ID.
- Unreal Play Mode is set to Standalone for the first test.
1. Choose The Startup Blueprint
Use the Player Controller class assigned by your Game Mode.
For multiplayer projects, Discord Rich Presence must run only for the local player. A Player Controller provides the Is Local Controller check needed for this.
Do not use Blueprint Game Instance Event Init. In UE 5.7, that event runs before Game Instance Subsystems are created.
2. Create The Startup Flow
Player Controller: Event BeginPlay
-> Is Local Controller
-> Branch
False: stop
True:
-> Get Game Instance Subsystem
Class = Discord Presence Subsystem
-> Is Valid
Is Not Valid:
-> Print String "DISCORD SUBSYSTEM INVALID"
Is Valid:
-> Print String "DISCORD SUBSYSTEM VALID"
-> Continue setupThe Is Valid check is important. An unexecuted Blueprint enum output may still display its default Success value.
3. Bind Diagnostic Events
From the valid subsystem target, bind:
On Discord Initialization Failed
-> Print Error Message
On Discord Error
-> Print Error Message
On Discord Activity Updated
-> Print String "DISCORD ACTIVITY UPDATED"Bind these before initialization so no asynchronous result is missed.
4. Initialize Discord
Initialize Discord Presence
ApplicationId = "123456789012345678"
OptionalSteamAppId = ""
Auto Register = false
Require Discord Running = falseBranch on the returned result:
Result == Success
False -> Print Get Last Discord Error
True -> Set Simple Presence5. Publish The First Activity
Set Simple Presence
Details = "Playing My Game"
State = "Main Menu"The immediate result only confirms local submission. On Discord Activity Updated confirms that Discord accepted the activity.
Complete Flow
Event BeginPlay
-> Is Local Controller
-> Branch (True)
-> Get Game Instance Subsystem (Discord Presence Subsystem)
-> Is Valid
-> Bind On Discord Initialization Failed
-> Bind On Discord Error
-> Bind On Discord Activity Updated
-> Initialize Discord Presence(ApplicationId)
-> Branch: Result == Success
False -> Print Get Last Discord Error
True:
-> Set Simple Presence("Playing My Game", "Main Menu")
-> Branch: Result == Success
False -> Print Get Last Discord ErrorExpected Output
The Unreal Output Log should include:
Loaded Discord Social SDK
Discord Presence initialized and connection startedYour debug event should print:
DISCORD ACTIVITY UPDATEDIf the subsystem is invalid or no activity-updated event fires, use Troubleshooting.
Next Steps
- Add images and timestamps with Activity Reference.
- Review multiplayer and lifecycle rules in Initialization And Lifecycle.
- Use Blueprint API as the node reference.