CLO File Structure - SWTOR-Slicers/WikiPedia GitHub Wiki

  1. File Layout
  2. File Header
  3. Data Header
  4. Bone Data 1
  5. Bone Data 2
  6. Bone Data 3
  7. Bone Data 4

CLO files contain two sets of bones: "cloth" bones and "reference" bones. Each bone has a match within a sibling GR2 file. Apparently, only cloth bones are used for cloth simulation.

File Layout

  1. File Header
  2. Data Header
  3. 128-byte aligned array of 32-char bone names, length equals total number of bones
  4. Array of Bone Data 1 structs, length equals number of "cloth" bones
  5. Array of Bone Data 2 structs, length equals number of "cloth" bones
  6. Array of Bone Data 3 structs
  7. Array of Bone Data 4 structs

File Header

Total size: 16 bytes

Offset (h) Type Count Description Values
00 char 4 Signature OLCB
04 uint32 1 Unknown 1,2
08 uint32 1 Offset to data 10h
0c uint32 1 Size of data Filesize - 16

Data Header

Total size: 112 bytes

Offset (h) Type Count Description Values
00 uint32 1 Unknown 0
04 float 1 Unknown -0.98, -2.5
08 float 3 Unknown 0.0
14 float 1 Unknown N/A
18 float 4 Unknown -1.0
28 uint32 1 Total number of bones N/A
2c uint32 1 Offset to bone names - 10h 70h
30 uint32 1 Number of "cloth" bones N/A
34 uint32 1 Offset to Bone Data 1 - 10h N/A
38 uint32 1 Number of "cloth" bones N/A
3c uint32 1 Offset to Bone Data 2 - 10h N/A
40 uint32 3 Unknown 0
4c uint32 1 Number of elements in Bone Data 3 N/A
50 uint32 1 Offset to Bone Data 3 - 10h N/A
54 uint32 4 Unknown 0
64 uint32 1 Number of elements in Bone Data 4 N/A
68 uint32 1 Offset to Bone Data 4 - 10h N/A
6c uint32 1 Unknown 0

Bone Data 1

Total size: 96 bytes

Offset (h) Type Count Description Values
00 float 4 Constraints (max/min) N/A
10 float 6 Constraints (max/min) N/A
28 float 6 Constraints (max/min) N/A
40 float 4 Unknown N/A
50 int32 2 Unknown indices N/A
54 uint32 1 Bone Index (Cloth) 0 to total number of bones - 1
58 uint32 1 Parent Bone Index (Reference) 0 to total number of bones - 1

Bone Data 2

Struct size is variable, but it always ends with FFFFFFFFh.

Offset (h) Type Count Description Values
00 float 2 Unknown N/A
08 uint32 1 Unknown N/A
0c float 1 Unknown N/A
10 uint32 2 Unknown N/A
18 uint32 2 Unknown 0

Bone Data 3

Total size: 24 bytes

Offset (h) Type Count Description Values
00 uint32 1 Unknown index N/A
04 uint32 1 Unknown index N/A
08 float 3 Unknown N/A
14 uint32 1 Unknown N/A

Bone Data 4

Total size: 16 bytes

Offset (h) Type Count Description Values
00 uint32 4 Unknown indices N/A