Last Updated 4-4-98


All information here is available in the Unofficial Jedi Knight Specifications at DarkJedi. But here, I give a little explanation as to how to put them in your 3DOs and combine 'em.

There are 3 places in a 3DO where Flags and Types are used. The first is in the Faces section where a face can have any number of types, the second and third are in the Hierarchy section.

Let's first look at Face Types:

Hex Meaning
0x0000 This is a "normal" face as in it takes on the default values given by the JK engine.
0x0001 This face is translucent. This means that the player can "see through" it. Other than that, this face is normal.
0x0002 This face is two-sided. This means that even if it is "facing away" from the camera/player it will be drawn. This is useful if you are creating something like a cape that has no real thickness. Other than that, this face is normal.
0x0004 Objects collide with this face, OR this flag could mean that the face is Magsealed. Look below to figureout what I'm talking about. Other than that, it is normal.
*Note: Flags can have any number of 0s before the numbers. So, 0x001 0x1 0x000001 are all the same. 0s can not be placed after the numbers unless specified. 0x0010 is not the same as 0x001!

But wait, what if you want a two-sided translucent face? That is no problem. All you have to do is "add" values. So you would add 0x1 to 0x2 to get 0x3 (1+2=3). This is the easiest method to take. To be honest, you're really doing a bitwise OR operation on the values, but let's not confuse the situation!

Note on 0x2: Other factors may judge whether the face is truly translucent, so you may have to play around with MAT files and CMPs to get the desired effect!

Note on 0x4: This is my "best guess" at what this could mean. I assume it means collide because of the 3DOs it is used in (the top of the table in 00tabl.3do). Though, when I tested an object with 0x4 faces, I noticed no substantial difference between it an 0x0 objects. What's that mean? Well two things, other environmental variables take precedence over it, or it is flat out ignored. I think we'll stick with option 1.

Now let's move onto Hierarchy Flags:

Hex Meaning
0x0000 This is a "normal" node.

Hmm, lot's of choices there :-) This is probably some sort of internal variable used in the JK engine, or can be accessed with COG functions.

Last, but not least, Hierarchy Types:

Hex Meaning
0x00001 This node is apart of the upper body (torso).
0x00010 This node is apart of the lower body (hip).
0x00002 This node is apart of the left arm (lforearm,lhand,lshoulder).
0x00020 This node is apart of the left leg (lcalf,lfoot,lthigh).
0x00004 This node is apart of the right arm (rforearm,rhand,rshoulder).
0x00040 This node is apart of the right leg (rcalf,rfoot,rthigh).
0x00008 This node is apart of the head (head,neck).

These are all pretty self explanatory. Just a couple notes. You can not have a type 0x0 node. If you have an object that isn't humanoid (doesn't have legs, feet, or whatever), the use 0x1 for each node type. Also, types can not be combined as in Face types.