# API de scripts Lua de pxstud.io — Lecture du document

> Fait partie de la référence de scripts Lua de pxstud.io, dont la vue d'ensemble (https://pxstud.io/fr/docs/scripting.md) explique les conventions. Les groupes d'options et les types auxquels elle renvoie se trouvent dans https://pxstud.io/fr/docs/scripting/option-groups.md et https://pxstud.io/fr/docs/scripting/types.md. Tout dans un seul fichier (en anglais) : https://pxstud.io/llms-full.txt. L'index de tout le site (en anglais) : https://pxstud.io/llms.txt.

## Lecture du document
Chaque champ du modèle du document et la façon dont un script le lit. Les données de pixels ne font jamais partie d'une lecture structurelle ; elles viennent des fonctions de pixels en bloc.

- **Sprite**: id; width; height; colorMode (ColorMode); palette; paletteChanges via app.getPalette; colorCycles via app.getColorCycles; paletteGroups; paletteLock; colorDepth; transparentIndex; pixelRatio; userData; layers via app.getLayers; frames via app.getFrames; cels via app.getCels; tags via app.getTags; slices via app.getSlices; tilemapInstances via app.getTilemap; tilemapCels via app.getCels; referenceTransforms via app.getReferenceTransform; contentLinks via app.getLinkedFrames; grid (non lu : réglage d'affichage de l'éditeur (boîte de dialogue Réglages de la grille) : les scripts voient l'illustration, pas la superposition); guides (non lu : réglage d'affichage de l'éditeur (Affichage > Repères) : les scripts voient l'illustration, pas la superposition); perspective (non lu : réglage d'affichage de l'éditeur (Affichage > Grille de perspective) : les scripts voient l'illustration, pas la superposition)
- **Layer**: id; name; type (LayerType); parentId; collapsed; isolated; opacity; visible; locked; movementLocked; background; clipped; draft; continuous; effects; blendMode (BlendMode); userData; referenceSource sous la forme reference ({ width, height } de l'image importée ; ses pixels ne sont pas lisibles); tileset sous la forme tileset ({ tileWidth, tileHeight, tileCount, matchFlipH, matchFlipV, matchRotate, baseIndex, name?, id? } ; images des tuiles via app.getTilePixels)
- **Frame**: id; order sous la forme index (0 = première image); durationMs; color; locked
- **Cel**: layerId; frameId; x; y; width; height; opacity; zIndex; link sous la forme linkedTo (l'image dont un cel lié partage l'image); userData; pixels (non lu : données de pixels : lis-les avec app.getImage); text (non lu : le texte modifiable de l'outil Texte, dessiné avec les polices de l'éditeur ; les scripts en voient les pixels); tween (non lu : la séquence d'interpolation qui commence à cette image clé (la recette de l'éditeur) ; les scripts voient les pixels des images intermédiaires); generated (non lu : marque une image intermédiaire écrite par une interpolation ; les scripts la voient comme un cel ordinaire)
- **Tag**: id; name; fromFrameId; toFrameId; color; direction (TagDirection); repeat; userData
- **Slice**: id; name; x; y; width; height; center; pivot; keys sous la forme keyFrameIds (ids des images qui démarrent une nouvelle clé (les limites, le centre et le pivot changent à partir de là) ; x, y, width, height, center et pivot sont la clé en vigueur sur l'image demandée (app.getSlices(frameId)), sinon celle de la première image); userData
- **Tileset**: tileWidth; tileHeight; tiles sous la forme tileCount (l'image de chaque tuile via app.getTilePixels); matchFlipH; matchFlipV; matchRotate; id; name; baseIndex; userData; tileUserData (non lu : données utilisateur par tuile, conservées depuis les fichiers .aseprite ; aucune commande de script ne les lit ni ne les modifie pour l'instant)
- **Tile placement**: x; y; tileIndex; flipH; flipV; rotate90
- **Reference placement**: layerId; frameId; x; y; width; height
- **Selection**: bounds; mask via app.getSelectionMask
