Skip to content

Game Methods

Methods for multiplayer room management, matchmaking, data persistence, ads, and leaderboards.

createRoom

Creates a new multiplayer game room.

js
gametegra.createRoom({ maxPlayers: 4 })
csharp
var result = await gametegra.createRoom(gametegra.@params("maxPlayers", 4));
gdscript
var result = await gametegra.createRoom({ 'maxPlayers': 4 })

Parameters:

NameTypeRequiredDescription
maxPlayersnumberNoMaximum number of players allowed in the room.

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": true,
  "data": {
    "match_id": "7110b5d5-48a2-4b58-bfb7-6d85b1989a69.supergamefy",
    "success": true
  },
  "errorMessage": null
}

joinRoom

Joins an existing game room by match ID.

js
gametegra.joinRoom({ match_id: '7110b5d5-48a2-4b58-bfb7-6d85b1989a69.supergamefy' })
csharp
var result = await gametegra.joinRoom("7110b5d5-48a2-4b58-bfb7-6d85b1989a69.supergamefy");
gdscript
var result = await gametegra.joinRoom('7110b5d5-48a2-4b58-bfb7-6d85b1989a69.supergamefy')

Parameters:

NameTypeRequiredDescription
match_idstringYesThe match ID returned by createRoom.

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": true,
  "data": {
    "match_id": "7110b5d5-48a2-4b58-bfb7-6d85b1989a69.supergamefy",
    "success": true
  },
  "errorMessage": null
}

leaveRoom

Leaves the current game room.

js
gametegra.leaveRoom()
csharp
var result = await gametegra.leaveRoom();
gdscript
var result = await gametegra.leaveRoom()

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": false,
  "data": {
    "error": "Do not give consent for custom Method"
  },
  "errorMessage": null
}

quickMatch

Initiates automatic matchmaking.

js
gametegra.quickMatch({ mode: 'ranked' })
csharp
var result = await gametegra.quickMatch(gametegra.@params("mode", "ranked"));
gdscript
var result = await gametegra.quickMatch({ 'mode': 'ranked' })

Parameters:

NameTypeRequiredDescription
modestringNoMatch mode (e.g. 'ranked', 'casual').

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": true,
  "data": {
    "match_id": "abc123.supergamefy",
    "success": true
  },
  "errorMessage": null
}

getScore

Retrieves the current player's score.

js
gametegra.getScore()
csharp
var score = await gametegra.getScore();
gdscript
var result = await gametegra.getScore()

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": false,
  "data": {
    "error": "Do not give consent for custom Method"
  },
  "errorMessage": null
}

saveData

Saves a key-value pair to the player's persistent game storage.

js
gametegra.saveData({ key: 'login', value: { id: 1, credential: 'test' } })
csharp
var result = await gametegra.saveData(gametegra.@params("key","login","value",new Dictionary<string,object>{{"id",1},{"credential","test"}}));
gdscript
var result = await gametegra.saveData({ 'key': 'login', 'value': { 'id': 1, 'credential': 'test' } })

Parameters:

NameTypeRequiredDescription
keystringYesStorage key.
valueanyYesValue to persist. Can be any JSON-serializable type.

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": true,
  "data": {
    "success": true,
    "ack": {
      "collection": "2038553363867504640",
      "key": "login",
      "version": "381c82902a9c6691656b7913d194e3a0",
      "user_id": "d2f2e862-7db2-46ce-9bc7-469739fcb618",
      "permission_read": 1,
      "permission_write": 1
    }
  },
  "errorMessage": null
}

loadData

Loads stored data entries for the current player.

js
gametegra.loadData({ keys: ['coins', 'level'] })
csharp
var result = await gametegra.loadData(gametegra.@params("keys", new string[]{"coins","level"}));
gdscript
var result = await gametegra.loadData({ 'keys': ['coins', 'level'] })

Parameters:

NameTypeRequiredDescription
keysstring[]NoArray of keys to load. Currently ignored — all keys are returned.

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": true,
  "data": {
    "success": true,
    "data": [
      {
        "collection": "2038553363867504640",
        "key": "login",
        "user_id": "d2f2e862-7db2-46ce-9bc7-469739fcb618",
        "version": "381c82902a9c6691656b7913d194e3a0",
        "create_time": "2026-03-31T18:53:45Z",
        "update_time": "2026-03-31T18:53:45Z",
        "value": {
          "id": 1,
          "credential": "test"
        }
      }
    ]
  },
  "errorMessage": null
}

showAd

Displays an advertisement.

js
gametegra.showAd({ placement: 'miniapp_open', adType: 'interstitial', miniGameId: 2038553363867504640 })
csharp
var result = await gametegra.showAd(gametegra.@params("placement","miniapp_open","adType","interstitial","miniGameId",2038553363867504640L));
gdscript
var result = await gametegra.showAd({ 'placement': 'miniapp_open', 'adType': 'interstitial', 'miniGameId': 2038553363867504640 })

Parameters:

NameTypeRequiredDescription
placementstringYesAd placement identifier (e.g. 'miniapp_open').
adType`string ('interstitial''rewarded')`Yes
miniGameIdnumberYesThe miniapp ID requesting the ad.

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": true,
  "data": {
    "success": true
  },
  "errorMessage": null
}

createLeaderboard

Creates a new leaderboard configuration.

js
gametegra.createLeaderboard({ id: 'global_wins', authoritative: false, sort_order: 'desc', operator: 'best', reset_schedule: '0 0 * * 1', metadata: { title: 'Haftalık Skorlar' } })
csharp
var result = await gametegra.createLeaderboard(gametegra.@params("id","global_wins","sort_order","desc","operator","best"));
gdscript
var result = await gametegra.createLeaderboard({ 'id': 'global_wins', 'sort_order': 'desc', 'operator': 'best' })

Parameters:

NameTypeRequiredDescription
idstringYesUnique leaderboard identifier.
authoritativebooleanNoWhether scores require server-side validation.
sort_order`string ('asc''desc')`No
operator`string ('best''set''increment')`
reset_schedulestring (cron expression)NoCron schedule for resetting the leaderboard.
metadataobjectNoArbitrary metadata (e.g. display title).

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": true,
  "data": {
    "success": true,
    "message": "Leaderboard '2038553363867504640_global_wins' creation request sent."
  },
  "errorMessage": null
}

updateLeaderboard

Submits or updates the current player's score on a leaderboard.

js
gametegra.updateLeaderboard({ id: 'global_wins', score: 50, subscore: 1, metadata: { map: 'desert2' } })
csharp
var result = await gametegra.updateLeaderboard(gametegra.@params("id","global_wins","score",50));
gdscript
var result = await gametegra.updateLeaderboard({ 'id': 'global_wins', 'score': 50 })

Parameters:

NameTypeRequiredDescription
idstringYesThe leaderboard ID to update.
scorenumberYesThe player's score.
subscorenumberNoOptional tiebreaker score.
metadataobjectNoExtra metadata (e.g. { map: 'desert' }).

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": true,
  "data": {
    "leaderboard_id": "2038553363867504640_global_wins",
    "owner_id": "d2f2e862-7db2-46ce-9bc7-469739fcb618",
    "score": "100",
    "subscore": "5",
    "rank": "1",
    "metadata": {
      "map": "desert"
    },
    "create_time": "2026-03-31T19:07:40Z",
    "update_time": "2026-03-31T19:07:40Z",
    "expiry_time": "2026-04-06T00:00:00Z",
    "success": true
  },
  "errorMessage": null
}

getLeaderboard

Fetches the top scores from a leaderboard.

js
gametegra.getLeaderboard({ id: 'global_wins', limit: 10 })
csharp
var result = await gametegra.getLeaderboard(gametegra.@params("id","global_wins","limit",10));
gdscript
var result = await gametegra.getLeaderboard({ 'id': 'global_wins', 'limit': 10 })

Parameters:

NameTypeRequiredDescription
idstringYesThe leaderboard ID to fetch.
limitnumberNoMax number of records to return.

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": true,
  "data": {
    "records": [
      {
        "leaderboard_id": "2038553363867504640_global_wins",
        "owner_id": "d2f2e862-7db2-46ce-9bc7-469739fcb618",
        "username": "player1",
        "score": "100",
        "subscore": "5",
        "num_score": 1,
        "metadata": {
          "map": "desert"
        },
        "create_time": "2026-03-31T19:07:40Z",
        "update_time": "2026-03-31T19:07:40Z",
        "expiry_time": "2026-04-06T00:00:00Z",
        "rank": "1",
        "max_num_score": 1000000
      }
    ],
    "owner_records": [],
    "next_cursor": null,
    "prev_cursor": null,
    "success": true
  },
  "errorMessage": null
}

openMatchChat

Opens the native match chat UI.

js
gametegra.openMatchChat({ room_name: 'lobby' })

Parameters:

NameTypeRequiredDescription
room_namestringNoOptional room name to open the chat for.

Response:

json
{
  "onClientSuccess": true,
  "onHostSuccess": false,
  "data": {
    "error": "Do not give consent for custom Method"
  },
  "errorMessage": null
}