Starting a Session and Testing Effects
Before Testing
Confirm that:
GamePackIDisUnrealDemoor the ID assigned to your game,ApplicationIDis valid,- the login UI binds events before calling
Connect, - effects register from
OnSessionReady, - every trigger path sends a response.
Test in the Editor
- Start Play In Editor.
- Connect from your game's login UI.
- Complete authorization when
OnAuthCodeReceivedsupplies a code and URL. - Wait for
OnSessionReady. - Confirm
IsInitializedis true and registration logs do not report “Currently not initialized”. - Open the interaction URL returned by
GetInteractionURL, or use the online effect menu associated with the authenticated account. - Order each effect and verify its gameplay behavior and response.
Use OnEffectRequestReceived to display the viewer name, effect display name, duration, and quantity while testing.
Verify Response Behavior
Test more than the success path:
- temporary failure while gameplay is not ready,
- permanent failure for invalid or obsolete requests,
- pending completion after asynchronous work,
- a second timed request while the first is active,
- pause, resume, expiry, and early stop,
- parameter boundaries and every option,
- disconnect and reconnect.
An effect that changes gameplay but never sends a response is not complete.
Test Menu State
Exercise visibility and availability independently:
- Hide and show one effect.
- Disable and enable purchases without hiding the effect.
- Test the bulk ID-array functions.
- Pass an empty ID array and verify the operation applies to every registered effect.
- Confirm cloned IDs route to the intended implementation.
Manual Session Mode
When Start Session Automatically is disabled:
- Connect and authorize.
- Wait for
OnSessionReady. - Call
StartGameSessionwhen the playable run begins. - Test effects.
- Call
StopGameSessionwhen the run ends.
Packaged Win64 Build
The native runtime must ship with the plugin's Win64 binaries:
CrowdControl.dllcpprest142_2_10.dlllibcrypto-3-x64.dlllibssl-3-x64.dll
Package the project for Win64 and inspect the staged plugin binary directory before release. Test authentication and at least one effect in the packaged build; a successful editor test does not prove that native DLL staging is correct.
If you rebuild CrowdControlCPP, copy the release DLL and matching runtime dependencies into Plugins/UnrealCrowdControl/Binaries/Win64 before launching or packaging.
Troubleshooting
| Symptom | Check |
|---|---|
| DLL load failure | Confirm Win64, the complete plugin binary directory, and matching architecture. |
| No auth code | Confirm the connection is active and ApplicationID is not empty. |
| Setup function logs “not initialized” | Move registration to OnSessionReady. |
| Component never receives a request | Confirm its effect ID, lifetime, and that Register ran after initialization. |
| Viewer sees no result | Confirm exactly one response uses the incoming request ID. |
| Packaged build fails but PIE works | Inspect staged native DLLs and dependencies. |
When more detail is needed, set LogCrowdControl=Verbose under [Core.Log].
After the full test matrix passes, submit the effect pack.
