CiaoSDKAntiCheat

Anti-Cheat consists of three detectors, all configurable in Ciao Games → Settings.

The detectors flag suspicious activity so you can decide how to respond. For example, a time difference could indicate clock manipulation, but it could also be caused by a poor connection or temporary loss of internet.

Evaluate the signal before reporting a user as a cheater.

Detectors

DetectorDescription
InternetCheckChecks internet availability.
InstallSourceCheckChecks install sources on Android devices. Not 100% accurate - treat as a signal, not proof.
TimeCheckChecks device time against internet time.

Detector Settings

Each detector is configured independently in the CiaoSDK Settings asset.

SettingDescription
<DetectorName>RunCheckOnControls when the detector runs. Values: Never, OnInitialize, OnLevelComplete (runs when CiaoSDK.SendLevelCompleted is called), OnRecurringInterval (runs every <DetectorName>IntervalSeconds).
<DetectorName>IntervalSecondsUsed when RunCheckOn = OnRecurringInterval. Defines the check interval in seconds.
TimeCheckThresholdSecondsUsed by TimeCheck. If the difference between internet time and device time exceeds this threshold, OnSuspiciousActivityDetected fires.
LegitimateInstallersUsed by InstallSourceCheck (Android). A list of accepted install sources.
timeServerUrlServer URL used to check time. www.example.com is used as a globally-accessible default. Change it to your own endpoint if needed.

Methods

MethodDescription
ValidateTime(Action<bool> callback)Checks device time against server time. Callback receives true if the check passed.
GetInternetTime(Action<DateTime> callback)Returns the current server time via callback.

Events

EventDescription
OnNoInternetFires when the device loses connectivity.
OnInternetRestoredFires when connectivity returns.
OnSuspiciousActivityDetectedFires when suspicious activity is detected. Subscribe before calling CiaoSDK.Initialize.
CiaoSDKAntiCheat.OnSuspiciousActivityDetected += args =>
    CiaoSDK.SendCheaterDetected(args);
 
CiaoSDK.Initialize(consent);


Did this page help you?