# Classements pour les jeux PlayDrop

Déclarez des classements dans catalogue.json, soumettez des scores avec sdk.leaderboards, affichez le top et les voisins du joueur : types de score, limites, règles.

Source: https://www.playdrop.ai/fr/create/learn/leaderboards

Les classements donnent aux joueurs une raison de rejouer et un rang à partager. PlayDrop enregistre le meilleur score de chaque joueur pour chaque classement et l’affiche sur le jeu.

## Déclarez un classement

Ajoutez-le à l’app dans [catalogue.json](https://www.playdrop.ai/fr/create/learn/catalogue-json) :

```json
{
  "leaderboards": [
    { "key": "high-score", "displayName": "High score", "description": "Most points in one run",
      "scoreType": "INTEGER", "sort": "DESC", "unitLabel": "pts" },
    { "key": "best-time", "displayName": "Fastest run", "description": "Time to reach the flag",
      "scoreType": "TIME_MS", "sort": "ASC" }
  ]
}
```

- `key` : de 3 à 64 caractères, en commençant par une lettre minuscule, suivie de lettres minuscules, de chiffres, `_`, `.` ou `-`.
- `scoreType` et `sort` s’utilisent selon deux paires : `INTEGER` avec `DESC` (le plus élevé gagne, scores de 0 ou plus) ou `TIME_MS` avec `ASC` (le plus bas gagne, millisecondes positives).
- `unitLabel` est un texte d’affichage facultatif.

Une fois publiée, une clé ne peut plus être supprimée et ses `scoreType` et `sort` ne peuvent plus changer. Cessez d’utiliser un classement avec `"status": "RETIRED"`. Les classements nécessitent un [paquet](https://www.playdrop.ai/fr/create/learn/packaging).

## Soumettez et lisez les scores

```js
const result = await sdk.leaderboards.submitScore("high-score", 1200);
// { accepted, improved, previousBestScore, bestScore, rank, previousRank, bestScoreAt, leaderboard }
if (result.improved) showNewBest(result.bestScore, result.rank);

const { leaderboard } = await sdk.leaderboards.get("high-score", { top: 10, aroundMe: 3 });
// leaderboard: { definition, top, player, playerEntry, aroundPlayer }

const { leaderboards } = await sdk.leaderboards.list();
```

- Les scores sont des entiers sûrs. Seul un meilleur score remplace le record.
- `top` accepte de 1 à 100 entrées et `aroundMe` de 1 à 20 de chaque côté du joueur.
- `list({ includeRetired: true })` renvoie aussi les classements retirés.

Soumettez le score à la fin d’une partie, pas à chaque image, et uniquement pendant la phase `play`. Gérez les appels rejetés comme n’importe quel appel réseau ; gardez le jeu jouable.

## Invités et hors ligne

Vous pouvez soumettre un score sans vérifier la connexion du joueur. Sans aucune session de joueur, une soumission aboutit sans être enregistrée. Les hôtes qui annoncent la prise en charge des données sur l’appareil, comme les apps PlayDrop compatibles hors ligne, conservent un score réalisé hors ligne et le synchronisent plus tard ; leurs lectures hors ligne n’affichent que le record du joueur, sans rang. Ailleurs, une soumission nécessite une connexion réseau.

## Ce que les classements ne font pas

Le SDK ne propose ni régions, ni réinitialisations planifiées, ni saisons, ni récompenses hebdomadaires automatiques. Pour un classement hebdomadaire, intégrez la semaine dans votre propre conception, par exemple avec une nouvelle clé par saison, déclarée dans une nouvelle version.

À voir aussi : [succès](https://www.playdrop.ai/fr/create/learn/achievements), [sauvegardes cloud](https://www.playdrop.ai/fr/create/learn/cloud-saves), [partager un score](https://www.playdrop.ai/fr/create/learn/social).

## Guides associés

- [Succès](https://www.playdrop.ai/fr/create/learn/achievements): Déclarez des succès standard et progressifs avec icônes dans catalogue.json, débloquez-les et signalez la progression avec sdk.achievements.
- [Sauvegardes cloud](https://www.playdrop.ai/fr/create/learn/cloud-saves): Enregistrez et chargez la progression avec sdk.me.appData et sdk.me.updateAppData, pour invités et joueurs connectés : écritures, aperçus et hors ligne.
- [catalogue.json](https://www.playdrop.ai/fr/create/learn/catalogue-json): Les champs catalogue.json des jeux PlayDrop : identité, fiche, modes de jeu, surfaces, connexion, Instantané, préchargement, médias, traductions, scores et serveurs.
