Une définition d'objet, séparée de ce que le joueur possède
Les objets du jeu vivent dans un catalogue (identifiant, nom, type, effets, empilable ou non). L'inventaire du joueur ne contient que des identifiants et des quantités.
Cette séparation permet d'ajuster un objet pour tout le monde sans toucher aux sauvegardes — et sans stocker mille fois la même description.
Le serveur est propriétaire
Ajouter, retirer, équiper, jeter : tout passe par le serveur, qui vérifie que l'objet existe, que le joueur le possède, et que la quantité est cohérente.
Le client reçoit un état et l'affiche. Un inventaire dont le client décide est dupliqué le jour où le jeu devient populaire.
Piles, emplacements et limites
Décide tôt : les objets s'empilent-ils ? Y a-t-il un nombre d'emplacements ? Ces deux choix changent toute la structure et se corrigent mal après coup.
Une limite d'inventaire est un outil de game design : c'est elle qui crée le va-et-vient vers le marchand ou le coffre.
Sauvegarder sans perdre
Sérialise en données simples : une liste de `{id, quantite}`. Jamais d'Instance, jamais de référence directe à un objet du monde.
Complète les champs manquants à la lecture à partir d'un profil modèle : un inventaire sauvegardé avant l'ajout d'un champ ne le contient pas, et c'est l'erreur classique de la mise à jour suivante.
Questions fréquentes
Faut-il utiliser des Tools Roblox ?
Pour ce que le personnage tient en main, oui : les Tools gèrent l'équipement et l'animation. Mais l'inventaire de référence reste ta table côté serveur — le Backpack n'en est qu'un reflet.