Skip to content

Starting a Session and Testing Effects

Before Testing

Confirm that:

  • GamePackID is UnrealDemo or the ID assigned to your game,
  • ApplicationID is valid,
  • the login UI binds events before calling Connect,
  • effects register from OnSessionReady,
  • every trigger path sends a response.

Test in the Editor

  1. Start Play In Editor.
  2. Connect from your game's login UI.
  3. Complete authorization when OnAuthCodeReceived supplies a code and URL.
  4. Wait for OnSessionReady.
  5. Confirm IsInitialized is true and registration logs do not report “Currently not initialized”.
  6. Open the interaction URL returned by GetInteractionURL, or use the online effect menu associated with the authenticated account.
  7. 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:

  1. Hide and show one effect.
  2. Disable and enable purchases without hiding the effect.
  3. Test the bulk ID-array functions.
  4. Pass an empty ID array and verify the operation applies to every registered effect.
  5. Confirm cloned IDs route to the intended implementation.

Manual Session Mode

When Start Session Automatically is disabled:

  1. Connect and authorize.
  2. Wait for OnSessionReady.
  3. Call StartGameSession when the playable run begins.
  4. Test effects.
  5. Call StopGameSession when the run ends.

Packaged Win64 Build

The native runtime must ship with the plugin's Win64 binaries:

  • CrowdControl.dll
  • cpprest142_2_10.dll
  • libcrypto-3-x64.dll
  • libssl-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

SymptomCheck
DLL load failureConfirm Win64, the complete plugin binary directory, and matching architecture.
No auth codeConfirm the connection is active and ApplicationID is not empty.
Setup function logs “not initialized”Move registration to OnSessionReady.
Component never receives a requestConfirm its effect ID, lifetime, and that Register ran after initialization.
Viewer sees no resultConfirm exactly one response uses the incoming request ID.
Packaged build fails but PIE worksInspect 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.