← Packet index

Packet 93

PlayerSkinPacket

Used when the player changes their skin

Sent from the client to server, then processed and broadcasted to all clients. This is used by third-party(3P) servers to send custom geometry.

Packet datagramWire order
HeaderID 93varuint
0UUIDmce::UUID · variable
1Serialized SkinSerializedSkin · variable
2Localized New Skin Namestring · variable
3Localized Old Skin Namestring · variable

Serialized fields

4 top-level fields
  1. 0UUIDThe player's UUIDmce::UUID
    1. 0Most Significant Bitsuint64
    2. 1Least Significant Bitsuint64
  2. 1Serialized SkinThe player's serialized skinSerializedSkin
    1. 1PlayFabIDstring
    2. 2ResourcePatchstring
    3. 3ImageDataSkinImage
      1. 0Widthuint32
      2. 1Heightuint32
      3. 2ImageBytesarray<uint8>
    4. 4AnimatedImageDataAnimatedImageDataas array<AnimatedImageData>
      1. 0SkinImageSkinImage
        1. 0Widthuint32
        2. 1Heightuint32
        3. 2ImageBytesarray<uint8>
      2. 1AnimatedTextureTypeCompressionEnum-as-Valuepersona::AnimatedTextureTypeas varuint32
        1. 0None
        2. 1Face
        3. 2Body32x32
        4. 3Body128x128
      3. 2Framesfloat
      4. 3AnimationExpressionCompressionEnum-as-Valuepersona::AnimationExpressionas varuint32
        1. 0Linear
        2. 1Blinking
    5. 5CapeImageDataSkinImage
      1. 0Widthuint32
      2. 1Heightuint32
      3. 2ImageBytesarray<uint8>
    6. 6GeometryDataJson::Value
    7. 7GeometryDataMinEngineVersionMinEngineVersion
    8. 8AnimationDatastring
    9. 9CapeIDstring
    10. 10FullIDstring
    11. 11ArmSizeEnum-as-Valuepersona::ArmSize::Typeas uint8
      1. 0Slim
      2. 1Wide
    12. 12SkinColorColor
      1. 0Colorint32
    13. 13PersonaPiecesSerializedPersonaPieceHandleas array<SerializedPersonaPieceHandle>
      1. 0PieceIdstring
      2. 1PieceTypeEnum-as-Valuepersona::PieceTypeas uint32
        1. 0Unknown
        2. 1Skeleton
        3. 2Body
        4. 3Skin
        5. 4Bottom
        6. 5Feet
        7. 6Dress
        8. 7Top
        9. 8High_Pants
        10. 9Hands
        11. 10Outerwear
        12. 11FacialHair
        13. 12Mouth
        14. 13Eyes
        15. 14Hair
        16. 15Hood
        17. 16Back
        18. 17FaceAccessory
        19. 18Head
        20. 19Legs
        21. 20LeftLeg
        22. 21RightLeg
        23. 22Arms
        24. 23LeftArm
        25. 24RightArm
        26. 25Capes
        27. 26ClassicSkin
        28. 27Emote
        29. 28Unsupported
      3. 2PackIdmce::UUID
        1. 0Most Significant Bitsuint64
        2. 1Least Significant Bitsuint64
      4. 3IsDefaultPieceboolean
      5. 4ProductIdstring
    14. 14PieceTintColorsobject
    15. 15IsPremiumboolean
    16. 16IsPersonaboolean
    17. 17IsPersonaCapeOnClassicSkinboolean
    18. 18IsPrimaryUserboolean
    19. 19OverridesPlayerAppearanceboolean
    20. 20TrustedSkinFlagTrustedSkinFlagas string
      1. "Unset"Unset
      2. "False"False
      3. "True"True
    21. 21ProfileHashstring
  3. 2Localized New Skin NameThe player's localized new skin namestring
  4. 3Localized Old Skin NameThe player's localized old skin namestring

Changelog

Stable releases

Changes between stable protocol releases.

Released
Protocol
2225

Packet

1 entry

Changed 1

PlayerSkinPacket24 changes · ID 93
  • Changed supporting type persona::PieceType: Added enum value CoCo with value 28.
  • Changed supporting type persona::PieceType: Changed enum value Unsupported from 28 to 29.
  • Changed supporting type SerializedSkin: Moved ResourcePatch from field 2 to 1.
  • Changed supporting type SerializedSkin: Moved ImageData from field 3 to 2.
  • Changed supporting type SerializedSkin: Moved AnimatedImageData from field 4 to 3.
  • Changed supporting type SerializedSkin: Moved CapeImageData from field 5 to 4.
  • Changed supporting type SerializedSkin: Changed GeometryData from Json::Value to string.
  • Changed supporting type SerializedSkin: Moved GeometryData from field 6 to 5.
  • Changed supporting type SerializedSkin: Moved GeometryDataMinEngineVersion from field 7 to 6.
  • Changed supporting type SerializedSkin: Moved AnimationData from field 8 to 7.
  • Changed supporting type SerializedSkin: Moved CapeID from field 9 to 8.
  • Changed supporting type SerializedSkin: Moved FullID from field 10 to 9.
  • Changed supporting type SerializedSkin: Moved ArmSize from field 11 to 10.
  • Changed supporting type SerializedSkin: Moved SkinColor from field 12 to 11.
  • Changed supporting type SerializedSkin: Moved PersonaPieces from field 13 to 12.
  • Changed supporting type SerializedSkin: Moved PieceTintColors from field 14 to 13.
  • Changed supporting type SerializedSkin: Moved IsPremium from field 15 to 14.
  • Changed supporting type SerializedSkin: Moved IsPersona from field 16 to 15.
  • Changed supporting type SerializedSkin: Moved IsPersonaCapeOnClassicSkin from field 17 to 16.
  • Changed supporting type SerializedSkin: Moved IsPrimaryUser from field 18 to 17.
  • Changed supporting type SerializedSkin: Moved OverridesPlayerAppearance from field 19 to 18.
  • Changed supporting type SerializedSkin: Moved TrustedSkinFlag from field 20 to 19.
  • Changed supporting type SerializedSkin: Moved ProfileHash from field 21 to 20.
  • Changed supporting type SerializedSkin: Removed field PlayFabID (type string).
Released
Protocol
2168

Packet

1 entry

Changed 1

PlayerSkinPacket29 changes · ID 93