> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Modifier les données en lecture seule ou internes d'un joueur via CloudScript

> Mettez à jour en toute sécurité les données en lecture seule et internes d'un joueur PlayFab depuis CloudScript à l'aide de server.UpdateUserInternalData, avec des exemples de code C# et JavaScript.

Les données des joueurs sont accessibles depuis CloudScript si votre titre en a besoin.

Pour plus d'informations sur l'utilisation de CloudScript, consultez le [démarrage rapide de CloudScript](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript/quickstart).

Les exemples C# de cette rubrique sont écrits pour le SDK Unity. Le SDK Unity utilise un modèle piloté par les événements pour gérer les tâches asynchrones. Pour exécuter l'exemple de code avec le SDK C#, vous devez modifier le code afin d'utiliser un modèle de tâches asynchrones (async Task). Le nom des méthodes à modifier est suivi du suffixe Async dans leur signature. Par exemple, SetObject dans le SDK Unity devient SetObjectAsync dans le SDK C#. Pour plus d'informations, consultez [Programmation asynchrone avec async et await](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/).

## Exemple de code CloudScript

Vous devez veiller à la sécurité de vos appels d'API serveur dans CloudScript. Le code suivant montre comment modifier en toute sécurité une donnée en lecture seule d'un joueur depuis CloudScript.

```javascript theme={null}
function IncrementReadOnlyUserData(args) {
  var playerData = server.GetUserInternalData({
        PlayFabId: currentPlayerId,
        Keys: ["ReadOnlyTest"]
  });

  var prevCount = "0";
  var nextCount = "1";
  try {
    prevCount = playerData.Data["ReadOnlyTest"].Value;
    var prevInt = parseInt(prevCount, 10);
    if (prevInt != prevInt) {
      prevInt = 0;
      nextCount = (prevInt + 1).toString();
    }
  } catch (e) {
    prevCount = "0";
    nextCount = "0";
  }

  var updateUserDataResult = server.UpdateUserInternalData({
    PlayFabId: currentPlayerId,
    Data:
        {
          "ReadOnlyTest": nextCount
        }
  });
}
```

## Exemple de code C\#

Comme expliqué dans le démarrage rapide de CloudScript, vous pouvez appeler la logique suivante depuis le client.

```csharp theme={null}
public void CloudIncrement() {
    PlayFabClientAPI.ExecuteCloudScript( new ExecuteCloudScriptRequest {
        FunctionName = "IncrementReadOnlyUserData"
    },
    result => Debug.Log("CloudScript call successful"),
    error => {
        Debug.Log("CloudScript call failed");
        Debug.Log(error.GenerateErrorReport());
    });
}
```


## Related topics

- [Obtenir les données en lecture seule d'un joueur](/fr/services/playfab/player-progression/player-data/how-to-get-read-only-player-data.md)
- [Définir les données en lecture seule d'un joueur](/fr/services/playfab/player-progression/player-data/how-to-set-read-only-player-data.md)
- [Démarrage rapide des données des joueurs](/fr/services/playfab/player-progression/player-data/quickstart.md)
- [Utilisation des données d'éditeur](/fr/services/playfab/live-service-management/game-configuration/titledata/using-publisher-data.md)
- [Modèles de contexte de PlayFab CloudScript avec Azure Functions](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/CloudScript-af-context.md)
