Skip to content

CLO File Structure

seedhartha edited this page Apr 30, 2021 · 80 revisions
  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

INTRODUCTION

IMPORTING SWTOR MODELS INTO BLENDER: A BRIEF OVERVIEW.
Check this intro first. Afterwards, you can jump directly to the guides on extracting PCs, NPCs and others.


TOOLS

Downloadable Tools (All Links Page):

Online Tools:

No longer working:

  • EasyMYP Windows app.
  • Noesis Windows app.

THE COMPLETE GUIDE TO AUTO-EXTRACTING AND ASSEMBLING PLAYER CHARACTERS AND NPCs:

READ THE BROAD STROKES FIRST: YOU'LL SEE IT'S EASIER THAN YOU THINK!


ASSEMBLING GAME LOCATIONS AUTOMATICALLY:


LOCATING AND ASSEMBLING ASSETS MANUALLY:


OTHER GUIDES (WIP):


MODDING

Modding isn't working since SWTOR moved to 64-bit codebase. Unless a new coder takes charge, it'll stay so indefinitely.


DATAMINING

Basically, use Jedipedia.net's tools and check our Discord. We'll see about adding new material, but this is very involved stuff.


SWTOR TECHNICAL INFORMATION:


OTHER RESOURCES:

Clone this wiki locally