Editor testing
For testing purposes, you can create custom mock implementations of communicator interfaces used by the PlayPadCommunicator component.
This allows you to test and validate game behavior without relying on external dependencies or running in PlayPad, enabling faster iteration and automated testing.
Mock configuration
Mock communicators are managed through the PlayPadMockConfiguration ScriptableObject, which provides a centralized location for all mock settings.
Creating a mock configuration
- In the Project window, right-click and select
Create > Elympics > PlayPadMockConfiguration. - Name the asset (e.g.,
PlayPadMockConfiguration).
Enabling mock configuration
- Select the
PlayPadCommunicatorGameObject in your scene. - In the Inspector, enable the Use Mock Configuration toggle.
- Assign your
PlayPadMockConfigurationasset to the Mock Configuration field.

Configuring mock communicators
Open the PlayPadMockConfiguration asset to configure individual mock communicators.
Each communicator has two fields:
- Object field - reference to your custom mock component
- Use Mock toggle - enables the mock for that specific communicator

Creating custom mock implementations
To create a custom mock communicator:
- Create a new MonoBehaviour script that derives from the appropriate base class.
- Implement all abstract members with your mock logic.
- Add the component to a GameObject in your scene.
- Attach all created scripts to that GameObject.
- Make a prefab out of that GameObject.
- Reference this GameObject in your
PlayPadMockConfigurationasset. - Enable the corresponding Use Mock toggle.
Example
using Cysharp.Threading.Tasks;
using ElympicsPlayPad.ExternalCommunicators.Ui;
public class MyMockExternalUiCommunicator : CustomStandaloneExternalUiCommunicatorBase
{
public override UniTask ShowLeaderboard()
{
Debug.Log("Mock: ShowLeaderboard called");
return UniTask.CompletedTask;
}
// Implement other abstract members...
}
Mock communicators only work in the Unity Editor or builds with the ELYMPICS_DISABLE_PLAYPAD scripting define symbol.
They are automatically disabled in production WebGL builds running on PlayPad.