Contacts Config Format
Overview
Contacts are a flexible alternative to the traditional friends system. Unlike a simple friends list, contacts can be split into named groups, allowing you to manage social connections differently across game modes or features.
To learn how to work with contacts and groups in your game, see the .
Adding Contacts Config
To use contacts, you need to:
Add the contacts description to the contacts config.
Deploy configs to services.
Contacts Description Format
{
"allowedGroups": ["Arkanoid"]
}
Fields
allowedGroupslist of string required A list of contact group names allowed in the game. Maximum 20 groups.
All contacts in the game are split into groups. Depending on your needs, you can use a single group or multiple groups.
Single group — suitable for most games:
{ "allowedGroups": ["DungeonGame"] }
Multiple groups — useful when different game modes need separate contact lists:
{ "allowedGroups": ["DungeonGame_solo", "DungeonGame_duo", "DungeonGame_squad"] }
matchingobject optional Configures contact update notifications. If not set, notifications are disabled.
Each notification has the following fields:
notificationEnabledbool required If
true, enables notifications when a contact’s status changes.notificationKeystring optionalNotification key sent with the update event. Defaults to
"notify_contacts_update".
"matching": { "notificationEnabled": true, "notificationKey": "notify_contacts_update" }
limitedAccessarray of objects optional Defines access rules controlling which players can use contacts. Maximum 20 rules. Rules with
disabled: trueare ignored. If no enabled rules are present, access is allowed for all players.Each rule has the following fields:
allowbool required If
true, players matching this rule are allowed access. Iffalse, they are denied.disabledbool optional If
true, this rule is ignored. Defaults tofalse.purchasedlist of string (GUID) optional Allow if the player has purchased any of the listed items. Maximum 100 entries.
notPurchasedlist of string (GUID) optional Allow if the player has not purchased any of the listed items. Maximum 100 entries.
authTaglist of string optional Allow if the player’s auth tag matches any of the listed values. Maximum 100 entries.
notAuthTaglist of string optional Allow if the player’s auth tag does not match any of the listed values. Maximum 100 entries.
authTypelist of string optional Allow if the player’s auth type matches any of the listed values. Maximum 100 entries.
notAuthTypelist of string optional Allow if the player’s auth type does not match any of the listed values. Maximum 100 entries.
platformlist of string optional Allow if the player’s platform matches any of the listed values. Maximum 100 entries.
notPlatformlist of string optional Allow if the player’s platform does not match any of the listed values. Maximum 100 entries.
loginWildcardlist of string optional Allow if the player’s login matches any of the listed wildcard patterns. Maximum 100 entries.
notLoginWildcardlist of string optional Allow if the player’s login does not match any of the listed wildcard patterns. Maximum 100 entries.
commentstring optional Internal comment for this rule. Maximum 512 characters.
errorMessagestring optional Error message returned to the client when access is denied. Maximum 512 characters.
"limitedAccess": [ { "allow": true, "platform": ["pc", "console"], "errorMessage": "Contacts are not available on this platform." } ]
loginChecksarray of objects optional Defines additional checks performed during login. Maximum 20 checks.
Each check has the following fields:
needTokenbool required If
true, an auth token is required to perform this check.typestring optional Type of the check. Possible values:
GENERIC(default),CURRENCY.requestUrlslist of string (URL) optional URLs to call during the check. Maximum 100 entries.
actionstring optional Action name to perform. Maximum 512 characters.
commentstring optional Internal comment. Maximum 4096 characters.
errorOverridestring optional Custom error message to return on failure. Maximum 512 characters.
knownErrorslist of string optional List of known error messages that are handled gracefully. Maximum 100 entries.
timeoutSecint optional Timeout in seconds for the check request. Range: 0–86400. Defaults to
0.denyLoginOnReqFailurebool optional If
true, login is denied when the check request fails. Defaults tofalse.
"loginChecks": [ { "type": "GENERIC", "needToken": true, "requestUrls": ["https://auth.example.com/check"], "timeoutSec": 30, "denyLoginOnReqFailure": true } ]