Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

Jade Empire modding (see first post for info summary)

Page: 2 of 9
 Maian
05-26-2007, 6:27 AM
#51
After many days of labor, here's a very rough structural layout of an MDL file. It's incomplete and I'd need to sift through many more MDL files to find all the other structures. And right now, I no longer have the time to continue doing that...

I say "structural layout" since I can't (easily) check what that non-structural data (e.g. vertices, normals, texture info, etc.) does. I pieced all this info just by looking at the hex of MDL files and using the following two sites as reference:

http://home.comcast.net/~cchargin/kotor/mdl_info.html) (documents KoToR 1/2's MDL format)
http://web.archive.org/web/20041021050414/www.torlack.com/index.html?topics=nwndata_binmdl) (documents NWN1's MDL format)

The result is that although I can guess at the data types and structures that MDL contains, I can't tell what what those structures are exactly for, unless that structure is very similar to a structure from the old MDL formats. For example, I can tell if something is a floating point value, but I may have no clue what that FP value is for.

---------------------------------------------------------------

- unless otherwise noted, number of bytes per item is 4
- item numbers and floating point numbers are given in decimal
- all other numbers are given in hex (which means "a" is 10, "10" is 16, etc.)
- if x is a model ptr, it refers to offset (x + 14); null model ptr = 00000000
- short and long values are given in big-endian form
- all numbers in big-endian form are always written as 8 digits
- tree of nodes are in pre-order
- floats, longs, null ptrs all have the same 0 value: 00000000
- function ptrs are the memory addresses (datatype long) of functions once the game's binary code is loaded into memory

MDL file
1) file header
2) model header
3) animation blocks; number of blocks is model header data's item 4
4) model nodes
5) unknown array 1 (if it exists)

file header
loc 0
1) 00008700
2) offset to raw data or end of file if no raw data (torlack); never seen any raw data
4) MDX part 1 size
5) MDX part 2 size (item 4 + item 5 = MDX total size)
6) 00000000?
size 14

model header
loc 14
1) geometry header block
2) model header data block
3) names array
size dc (items 1 to 2)

model header data
loc 64
1) long? does torlack's info apply here?
2) 00000000?
3) model ptr to animation ptr array
4) number of animations
5) same as item 4
6) long or float? seen 0, (cb90020 or 2.85e-31)
7) bounding box min x? (cchargin)
8) bounding box min y? (cchargin)
9) bounding box min z? (cchargin)
10) bounding box max x? (cchargin)
11) bounding box max y? (cchargin)
12) bounding box max z? (cchargin)
13) radius? (cchargin)
14) long? seen values of 1 and 2 so far
15) float? animation scale? (torlack)
16) supermodel name (20-len null-terminated string) (cchargin)
17) model ptr to a node, typically but not always the model root node
18) 00000000?
19) same as file header item 4
20) same as file header item 5
21) 00000000?
22) model ptr to names array
23) number of names
24) same as item 23
25) long? seen 0, 80100, cdcdcd00 (probably junk)
26) model ptr to unknown array 1 (or end of file if block doesn't exist?)
27) number of items in array specified at item 26
28) same as 27
size 8c

geometry header
1) function ptr
2) function ptr
3) model/animation name (20-len null-terminated string)
4) model ptr to model/animation's root node
5) number of nodes in model/animation (recursively includes nodes in super model + 1)? (torlack)
6) 6 00000000's?
7) reference count? seen only 0 (torlack)
8) geometry type (char) (torlack)
9) 3 chars padding? (torlack)
size 50

names array
loc f0
1) model ptrs to the strings in item 2; number of model ptrs is model header data's item 27
2) strings delimited by null chars; number of model ptrs is model header data's item 27

animation ptr array
1) model ptrs to animation headers; number of model ptrs is model header data's item 4

animation block
1) animation header block
2) event array
3) animation nodes

animation header
1) geometry header block
2) animation length (float)? (cchargin)
3) trans time (float)? (cchargin)
4) short? seen only 0, 101, 1
5) model name or part name (20?-len null-terminated string)
6) padding (short)? seen 4, 0
7) model ptr to event array or null if no events
8) number of events
9) same as item 8
10) 00000000?
size (items 1 to 10) 8c
size (items 2 to 10) 3c

event array
1) events; number of events is animation header's item 8

event
1) activation time? (float) (cchargin)
2) event name (20-len null-terminated string (cchargin)
3) 00000000?
size 28

node
1) node header block
2) subheader block (depends on node header's item 1 and apparently also node header's item 2?); can be nonexistent
3) data (depends on node header's item 1); can be nonexistent
4) child node array (if any children)

node header
1) node type (short) (torlack)
2) super node number (short)? (cchargin)
3) node/part number (short)? (cchargin) all values are unique within a model geometry/animation geometry block, generally increasing
4) n where node is n-th node of model node tree laid out in pre-order; if two different node header's have the same item 3, they also have the same item 4 (this applies for both model and animation node trees)
5) model ptr to parent animation header or null if no such parent
6) model ptr to parent node or null if no such parent
7) position X? (float) (cchargin)
8) position Y? (float) (cchargin)
9) position Z? (float) (cchargin)
10) rotation W? (float) (cchargin)
11) rotation X? (float) (cchargin)
12) rotation Y? (float) (cchargin)
13) rotation Z? (float) (cchargin)
14) model ptr to array of child node ptrs (or end of node if no children)
15) number of child nodes
16) float? seen 1.0
17) float? usually 1.0e10, seen 10.0, 30.0
size 3c

child node array
1) model ptrs to nodes; number of model ptrs is node header's item 15

mesh node subheader (type 0021)
1) 3 00000000's?
2) a floats
3) 00000000?
4) long? seen 10
5) 20 bytes that seem to vary in format (not sure what determines format):
5a) 10 shorts?
5b) 8 floats
5c) 10-len null-terminated string + 4 floats
6) if item 7 is not 0, number of items in array specified at item 7; otherwise, some long? seen 2e8, 321, f72, 954 (can't be model ptr since it can be larger than mdl file size)
7) 00000000 or model ptr to mesh node data array
8) -1 (long) if item 7 is 0?; otherwise, seen 61 and 62 (can't be index into array since it can be larger than array size)
9) long? seen 3 and 4
10) c bytes that seem to vary in format (not sure what determines format):
10a) 1 long and 4 shorts? or 6 shorts?
10b) 3 floats
11) long? seen 1c, 20, 24, 10, 34
12) long? seen 6b, 63, 27, 21, 823
13) 00000000?
14) long? seen c
15) long? seen 10, -1
16) long? seen 14, 10, -1
17) long? seen 18, -1
18) long? seen 1c, -1
19) long? seen -1
20) long? seen -1
21) long? seen -1
22) long? seen -1
23) long? seen -1
24) long? seen -1, 10
25) long or 2 shorts?? seen 2083d, 1017a, 11099, 10229, 2002e, 18, 10270 (can't be model ptr or offset in MDX file since it can be too large)
26) long?? seen 0, 7088, 43cb, 740, 180 (can't be model ptr since it can be larger than mdl file size)
27) long or 2 shorts?? seen 91fa0f8, 7690178, 76adc08, 76833a8, 76834d8, 0, abbcb10
28) long?? seen 3ccd, 3922, 3920, 4a92, 391c, -1, 443a (can't be model ptr since it can be larger than mdl file size)
29) long? seen 1
30) float? seen 0.0, 1.0
31) float? seen 0.0, 1.0
32) float? seen 0.0, 1.0
30) float; seen 1.0, 0.9
31) 00000000?
32) long or 2 shorts?? seen 91f7fe8, 7684fa0, 859ffc8, 7684b30, 0, c0affc8; difference between item 27 and 32 is relatively small (probably same "type")
33) offset in MDX file; either 0 or always past MDX part 1 (greater than MDX part 1 size); seen MDX part 1 size
34) offset from item 33?; always less than MDX part 2 size; seen MDX part 2 size
size e4

mesh node data array (type 0021)
(exists only have mesh node subheader's item 7 is not 0)
1) shorts; number of shorts is mesh node subheader's item 6

skin mesh node subheader (type 0061)
1) mesh node subheader block
2) 00000000?
3) 00000000?
4) 00000000?
5) long? seen 1c
6) long? seen 2c
7) model ptr to skin mesh node array 1 (cchargin)
8) number of items in array specified at item 7
9) model ptr to skin mesh node array 2
10) number of items in array specified at item 9
11) same as 10
12) model ptr to skin mesh node array 3
13) number of items in array specified at item 12
14) same as 13
15) model ptr to skin mesh node array 4
16) number of items in array specified at item 15
17) same as 16
18) 2c shorts? (number of shorts is same as item 6, but could be coincidence)
19) float? seen 1.0
20) float? seen 1.0
size (items 2 to 17) 74
size (items 2 to 20) d4
size (items 1 to 17) 158
size (items 1 to 20) 1b8

skin mesh node array 1
1) shorts? number of shorts is skin mesh node subheader's item 8

skin mesh node array 2
1) skin mesh node array 2 blocks; number of blocks is skin mesh node subheader's item 10

skin mesh node array 2 block
1) float?
2) float?
3) float?
4) float?
size 10

skin mesh node array 3
1) skin mesh node array 3 blocks; number of blocks is skin mesh node subheader's item 13

skin mesh node array 3 block
1) float?
2) float?
3) float?
size c

skin mesh node array 4
(only seen this array have 0 len, so don't know its structure)

light node subheader (type 0003)
1) 10 00000000's (torlack has info but I can't verify)
2) light priority (torlack)
3) ambient only flag (torlack)
4) dynamic type (torlack)
5) affect dynamic flag (torlack)
6) shadow flag (torlack)
7) generate flare flag (torlack)
8) fading light flag (torlack)
9) float? b/w 0 and 1?
10) float? b/w 0.0 and 1.0?
11) float? b/w 0.0 and 1.0?
12) float? b/w 0.0 and 1.0?
13) float? b/w 0.0 and 1.0?
14) float? seen 0.0
15) float? seen 0.0 and 1.0
16) float? seen 0.0 and 1.0
17) float? seen 0.0 and 1.0
18) float? seen 2000.0 and 500.0
19) float? seen -1.0
20) float? seen 0.0
21) float? seen 1.0
22) float? b/w 0.0 and 1.0?
23) float? b/w 0.0 and 1.0?
24) float? b/w 0.0 and 1.0?
size 9c

unknown node type 1 subheader (type 1001)
1) long? seen 0, 1
2) float? seen 0.0
3) float? seen 0.0
4) float? seen 0.0
5) float? seen 1.0
6) float? seen 1.0
7) float? seen 1.0
size 1c

unknown node type 2 subheader (type 0001 + super node 0002)
1) float?
2) float?
3) float?
4) float?
5) float?
6) float? seen 2.4138735e-9
7) float?
8) float?
9) float?
10) 00000000?
11) 00000000?
12) 00000000?
13) 00000000?
14) 00000000?
15) model ptr to array of child node ptrs or next node? same as node header's item 14?
16) same as node header's item 15? only seen 00000000 and the nodes had no children
17) 00000000?
18) 00000000?
size 48

unknown node type 3 subheader (type 0001 + super node 0004)
1) node type of corresponding node under model geometry (there's a node with the same node number in the node tree whose root's offset is specified in model header's geometry header's item 4)? (short)
2) model ptr to controller array or null if no controllers
3) number of controllers
4) same as item 3
5) model ptr to unknown node type 3 array 1 or null if no array
6) number of items in array specified at item 5; = sum of all controller's item 3's (i.e. total number of time keys)?
7) model ptr to controller data array or null if no controller data
8) number of controller data items
9) long? seen 6, 15, 16, 17
size 24

controller array?
1) controller blocks; number of blocks is unknown node type 3 subheader's item 3

controller?
1) controller type (long)? seen 8 (position), 14 (orientation)
2) short? = item 1 + 8?? seen 10, 1c
3) number of rows (and hence, number of time keys) (short)?
4) index into array specified at unknown node type 3 subheader's item 5? sum of all previous controller's # rows (item 3) or 0 if no previous controllers
5) index into controller data array (short)? sum of all previous controller's [# rows (item 3) * (# columns (derived from item 6) + 1)] or 0 is no previous controllers
6) column type (char)? seen 2 (2 columns), 5 (1 columns), 4 (0 columns)
7) char? seen 5, b3
8) short? seen 12, 4c (both multiples of 12...)
size 10

unknown node type 3 array 1
1) shorts that are related to time keys? number of shorts is unknown node type 3 subheader's item 6; seen values uniformly b/w 0 and 155 (larger values no doubt exist); typically x0, x5, or xa, where x is any digit(s)

controller data array?
1) the array is partitioned into controller data blocks that correspond to each controller; number of blocks is number of total floats/4-bytes is unknown node type 3 subheader's item 8;

controller data block
1) time keys? number of keys is controller's # rows (controller's item 3) (not sure if this is just another column since unknown node type 3 array 1 seems to contain integral versions of the time keys
2) controller data block items; number of items is controller's # rows * # columns; item data type seems to depend on unknown node type 3 subheader's item 1

controller data block item?
1) float? all 4 bytes almost always non-00, but the numbers can be extremely small or large (e.g. -1.9581039E22, 2.1989652E-16, even 4.0277763E-38)

controller data array item (controller node type (unknown node type 3 subheader's item 1) = 1001 and last 10 bytes of controller data)??
1) 2 shorts?
(when I see node type is 1001 with column type 5, the controller always has 2 rows, and the controller data always looks like this: 00020080 00001000 00020080 00001000; I also see this if node type is 1001 and no controllers are specified)

unknown array 1
1) unknown array 1 blocks; number of blocks is unknown node type 3 subheader's item 6

unknown array 1 block
1) model ptr to a node; denote as node A
2) model ptr to a node; denote as node B
3) 7 floats? 7 = node B's part number - node A's node's part number?

MDX file
1) MDX part 1
2) MDX part 2

MDX part 1
?

MDX part 2
1) function ptr?
2) long? seen 5 and 6 so far
3) 0018?
4) char?
5) char? usually 4x or 5x where x is any digit
6) array of shorts, adjacent values are usually have very small difference
7) 00000000?
8) 00000000?
 Maian
05-26-2007, 5:38 PM
#52
I found out how to get nwnnsscomp working without a NWN installation. nwnnsscomp doesn't actually use an NWN files - it just does a crude check to see if you have NWN installed. This is easy to bypass (with a bit of technical knowhow). Here's how:

1) Create a new txt file. Paste the following into it:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\BioWare\NWN]
[HKEY_LOCAL_MACHINE\SOFTWARE\BioWare\NWN\Neverwinte r]
"Location"="D:\\Games\\Jade Empire"

Change the "D:\\Games\\Jade Empire" to whatever your Jade Empire directory is. Make sure each back-slash is doubled as shown above.

2) Rename this txt file to install.reg, or any other name that ends with the extension reg. Make sure you uncheck "hide extensions for known file types" in Windows Explorer's Tools->Folder Options->View, or else you'd actually be renaming it to install.reg.txt.

3) Right-click this reg file and click Merge. It should ask you have you really want to merge the reg file with the Windows registry - click yes. Then it should inform you that the operation was successful.

4) Create a new txt file in your Jade Empire directory called chitin.key. Again, make sure you uncheck "hide extensions for known file types", or else you'd get chitin.key.txt.

That's it. nwnnsscomp should now work without requiring a NWN installation. Saved me 1.5gb on my puny laptop HD :)
 stoffe
05-28-2007, 12:44 PM
#53
I found out how to get nwnnsscomp working without a NWN installation. nwnnsscomp doesn't actually use an NWN files - it just does a crude check to see if you have NWN installed.
(snip)
That's it. nwnnsscomp should now work without requiring a NWN installation. Saved me 1.5gb on my puny laptop HD :)

You can also use one of the nwnnsscomp variants adapted for modding Knights of the Old Republic along with the nwscript.nss file from Jade Empire. Works fine to compile JE scripts with as well, from what I've noticed (not had any problems with malfunctioning scripts so far), and does not require any NWN or KOTOR game installations. :)
 croma
05-29-2007, 4:49 AM
#54
Nice goin guys! It's very helpful (the ones I can comprehend that is) but I still got the same problem as wurzelp****(sorry) which is headless pc. I only messed with the 'appearance.2da' and some .rim files up until now anyway and I need a help on a few things.

1. I've checked all (If I'm remembering it correctly) the .rim and .mod in /data and I found that only a few names has all extensions required in the same name (the 'h_*'s and 'n_*'s in .mdl, .mdx, and .txb) and DAMN I forgot to note them down (and DAMN I can't even find any .erf files). I think there's got to be something/file that configures or lists which head use which body or vice versa. Can anyone help me on this please?

2. I was wondering if it's possible for stoffe's 'tsl patcher' to be used as 'je patcher' instead. Both games uses the same system right?

3. If I wanted to create my own pc, then I'm gonna need all those .mdl, .mdx, and .txb pairs (and maybe the answer to my 1st question too) right? I've found the .tga to .txb converter but I can't find anything to edit the .mdl's and .mdx's. I don't know if 3ds Max or Maya (I only know those two) will do but I do know that I don't have enough free space for neither one of them. Any software (though I'd prefer freeware) suggestion?

Thanks for noticing a noob.
 stoffe
05-29-2007, 7:36 PM
#55
Since the data files are so spread out I've made a quick search utility that allows you to search for files with a specified name within all the game's MOD and RIM files. It is listing all matches in a sortable list along with in what MOD/RIM archive they were found. It also has an extraction feature where it can extract the selected files from the search result to a folder on your hard drive.

You can use wildcards in a limited way within the filename, for example to search for all files of a specific type ("*.2da" to find all 2DA files), or a match against a sub-pattern of a file name within a specific type ("p_ling*.txb" to find all TXB files with "p_ling" as part of the name, or "p_li*h01.txb" to find all TXB files with names containing "p_li", potentially followed by something else and then followed by "h01").

Wildcards do not work within the file extension itself ("*.md*" for example) at the moment, and may sometimes behave in a bit weird way when used in the middle of a filename pattern. Hopefully those bugs should be fixed in the next version when I have the time to do it properly. :)

It seems to work from what I've tested, though it's not considered complete yet. As said above the search works in a somewhat peculiar manner currently, which I hope to make more logical in later versions. Future plans include adding support for searching in the KEY/BIF data files as well as the override folder so that all data can be searched.

If anyone wants it, you can downoad it from the link in the first post in this thread.
 stoffe
05-29-2007, 7:57 PM
#56
1. I've checked all (If I'm remembering it correctly) the .rim and .mod in /data and I found that only a few names has all extensions required in the same name (the 'h_*'s and 'n_*'s in .mdl, .mdx, and .txb) and I forgot to note them down. I think there's got to be something/file that configures or lists which head use which body or vice versa. Can anyone help me on this please?

Keep in mind that I'm by no means an expert on this since I haven't done much in the way of character substitution so this is mostly guesswork, but from what I have seen it seems like the head is part of the body model, but has a separate texture for most human models.

I haven't been able to find any 2DA that sets the name of the texture (except for when you're a spirit), so I'd assume it's either set in the Model files, or uses a naming convention hardcoded in the game engine.

The head texture seems to be named the same as the body texture but with a "h" added on (P_Li01 --> P_Lih01) for the player character models. For NPC models it seems to be named the same as the body texture but with a h_ prefix instead of the n_ prefix the body textures tend to have (n_silk01 --> h_silk01).


2. I was wondering if it's possible for stoffe's 'tsl patcher' to be used as 'je patcher' instead. Both games uses the same system right?


Not in its current form. Some of the data files have different formats in Jade Empire (the dialog.tlk file, some 2DA files, slight changes to the ERF/RIM format etc). A version could be made with those adaptations, if anyone would have any interest in it. Could be a fair bit of work involved making those adaptations though, I'm not sure. Depends on how lazy I was when I made TSLPatcher. :)


3. If I wanted to create my own pc, then I'm gonna need all those .mdl, .mdx, and .txb pairs (and maybe the answer to my 1st question too) right? I've found the .tga to .txb converter but I can't find anything to edit the .mdl's and .mdx's.

MDL files are model files, MDX are paired with MDL files containing extra model data that has been added on, TXB are compressed textures. MAB files seem to contain material data of some kind.

There is currently no MDL/MDX converter that works with Jade Empire. Maian seems to be working on figuring out how some of it works, but it might be too early to tell where that leads.
 croma
05-30-2007, 1:15 AM
#57
What about that MDLOps in starwarsknights.com (I think)? Wouldn't it be easier to just mess err.... 'study' that and make the JE version? I like that JEFindRes by the way. Thanks, stoffe.
 croma
05-30-2007, 1:37 AM
#58
I'm interested on "How to make a new technique" guide by stoffe and I wondered:
1. If it's possible for us to make a new weapon/martial arts style move sets
2. If characters or .mdl and .mdx from other Bioware games (say TSL or SWKOTOR1) can be altered in such way that it's usable in JE

I'm a noob but if anyone can show me the way then I'll walk the line.
 tk102
05-30-2007, 1:55 AM
#59
I just got a look at the V4.0 TLK file tonight and updated K-GFF to interpret the TLK file strings correctly. K-GFF v1.2.0 has been uploaded to http://www.starwarsknights.com/tools.php)

@croma: I believe Maian is using MDLOps as a base.
 stoffe
05-30-2007, 10:17 AM
#60
I'm interested on "How to make a new technique" guide by stoffe and I wondered:
1. If it's possible for us to make a new weapon/martial arts style move sets
2. If characters or .mdl and .mdx from other Bioware games (say TSL or SWKOTOR1) can be altered in such way that it's usable in JE


You can add new weapon/martial/support/magic styles that behave differently, but you'll have to re-use the animations the characters play from a pre-existing style since, as mentioned above, there is currently no way of creating new MDL/MDX files that works with Jade Empire.
 croma
05-30-2007, 9:57 PM
#61
Ooh how I wish I could do some programming myself. I feel bad just relying on you guys. Then again, I'll just wait and try to figure out these ccreature.cpp failure message myself I guess. Thanks again guys!


"Three keys in learning are: creative, prideful, and masochism." -someone I knew-
 Maian
05-31-2007, 4:26 AM
#62
Well, I'm not sure if I'm qualified or want to extend MDLOps to support JE mdl/mdx files. As I said before, I'm not a modeler, I don't have modeling software, and I don't really know much about the format that's needed to import into that modeling software. I'm also new to Perl, which MDLOps is programmed in. I think I'll leave that up to someone more qualified.

I was only using MDLOps source code to help understand the format of mdl/mdx files. I planned to edit the files by hand, but after seeing how complex the format is and how many values there are which purpose eludes me, I'm not sure I can do that (and it would take a while).
 stoffe
05-31-2007, 6:41 AM
#63
I'll just wait and try to figure out these ccreature.cpp failure message myself I guess.

Have you moved all the relevant model and texture data files into the override folder for the appearance you try to change your player into? The player data in players.mod appear to be always loaded, but many other NPC appearances seem to be stored within the module(s) where a character using that appearance exist. Those resources would not be found if you are in another area unless you put it in the override folder where it can always be found.


For example, to use the Princess Sun Lian appearance instead of Unmasked Silk Fox for SF from Chapter 4 and onward I had to put the files h_prnces01.txb, n_prnces01.txb, n_prnces_.mdl and n_prnces_.mdx in the override folder for it to work. They were previously found in the a300/City Core module files only.


* * *

A completely unrelated question:
Do anyone know which .GUI file handles the quick key/style mapping display that pops up in the lower left corner of the screen when you enter combat mode?

I already know what my keys are mapped to and that big interface element is taking up space needlessly, so I'd like to make it invisible (set the ALPHA field to 0).

I seem to have trouble finding which file it is that handles it though. I'm finding pretty much everything else instead when modified some of the files with names that seemed likely. :confused:

Edit: Nevermind, I figured it out. Turns out it was one of the files I had checked, though the method I used to make it invisible didn't work since the game apparently already used the Alpha value to hide/unhide it when entering and leaving combat mode. Resizing it did the trick instead. :)
 stoffe
05-31-2007, 9:35 AM
#64
I've uploaded a minor update to my Jade Empire data file search tool (JEFindRes v0.2.0a), see the first post in this thread for a download link.

Version v0.2 has the Txb2Tga converter integrated, allowing it to automatically convert any TXB files it extracts to TGA format if you check a checkbox.

This version should also make using wildcard characters (*) in the file name (resref) part of the search string more reliable. It now works like wildcards usually do in a search:

No wildcard characters used: Only files whose name exactly matches what you type will be found.

No file extension set: Files of any type matching the name you type in will be found.

Wildcards at the beginning and/or end of search string: Your search string can be found anywhere within the filename.

Wildcards inside the search string: Allow any (or none) characters to exist in that position of the file name and only match the rest of what you type.

For example:

Search string Result
-------------- ----------------------------
p_li01 Files of any type with the name "p_li01".
p_li01.* Same as above
p_li01.txb All TXB files with the name "p_li01.txb"
*p_li Files of any type that ends with "p_li", e.g. "j00_c_app_li.ncs"
*p_li.ncs All NCS files that ends with "p_li", e.g. "j00_c_app_li.ncs"
p_li* Files of any type that starts with "p_li", e.g. "p_li01.txb" and "P_Ling_.mdl".
p_li*.txb TXB files where the name starts with "pi_li", e.g. "p_li01.txb" and "p_lingh01.txb"
*p_li* Files of any type containing "p_li" somewhere in the name, e.g. "j01p_lion_altar.pla" and "p_li01.txb"
p_li*01 Files of any type starting with "p_li" and ending with "01", e.g. "p_li01.txb", "p_lih01.txb" and "p_lingx01.txb"
p_li*01.txb Same as above, but only finds TXB files.
p_li*h*01 Files starting with "p_li", followed by anything, then an "h", followed by anything and then ending with "01", e.g. "p_lih01.txb" and "p_lingh01.txb".
*.2da All files of the 2DA file type, regardless of name
*.* All files in the game data (might take some time to list, there are many)
 croma
06-01-2007, 6:39 AM
#65
Have you moved all the relevant model and texture data files into the override folder for the appearance you try to change your player into? The player data in players.mod appear to be always loaded, but many other NPC appearances seem to be stored within the module(s) where a character using that appearance exist. Those resources would not be found if you are in another area unless you put it in the override folder where it can always be found.

I did but what I'm trying to do is switching Blossom with Crimson Khana. The problem is that there's no mercf sets (the n_*'s and h_*'s) available with the same name (the head was h_mercf01 but the body was n_mercf if I remember correctly). I converted to TGA and renamed it, renamed the TXB, edit the original TGA and put the other TGA part per part above it, but it all failed. Hell I even made "appearance_override.2da" and add "appearance_override" line under JE.ini's [DEBUG] line and of course, it failed and I laughed to myself (I still am, seriously). I can't figure out how to persuade the system to use another head I want (I bought you damnit!!).

It's not that bad though. The "Face Off" operation explained on page one can really amuse me anyway. I made some tiger-ish tattoo on (of course) TigerShen and ProdigyLu looks like Monkey King (looks cool with Monkey Paw style) which reminds me, is it possible to make Monkey Paw style able to finish harmonic combo or to choose it from the first time we choose the character? I would've mess with the .2da myself if it weren't for the roof leak which blast my power supply off.


God has a weird sense of humor. I never get it nor like it.
 stoffe
06-01-2007, 7:06 AM
#66
I did but what I'm trying to do is switching Blossom with Crimson Khana.

Do you want to replace the Blossom player appearance with Crimson Khana, or do you want to make Crimson Khana (the NPC in the arena) use Blossom's appearance? If it's the latter it would be quicker to change the appearance number in the relevant .CRE files to point to Blossom's line in appearance.2da. Open the CRE files with k-gff 1.2 and change the Appearance field (under the Looks struct).

If it's the former, the problem seems to be that Crimson Khana's appearance is one where the head and body are set separately (so they can re-use the body model with a variety of different heads). The body used is line 104 in appearance.2da and the head is line 22 in heads.2da.

This is problematic since all the standard player models have the head and body as a single model where you can't swap out the head. Thus I don't know how you'd tell the game to use a particular head along with the body for the player appearance, since you only pick an appearance and not a head.



ProdigyLu looks like Monkey King (looks cool with Monkey Paw style) which reminds me, is it possible to make Monkey Paw style able to finish harmonic combo or to choose it from the first time we choose the character?

Open the monkeypawas.2da file and on line 7 (Slam) change the value in the synergyprestate column from **** to 1. This will make the Monkey Paw power attack able to finish a harmonic combo.

To make it a starting style open stylesuperlist.2da and on line 22 (C_Monkey_paw) change the value in the StartingStyle column from 0 to 1. This should make the style pickable when creating a new character. You'll most likely need to remove one of the standard styles though (by setting the same column to 0 on its line) to make room for it, since the list of available styles already is full.
 croma
06-02-2007, 12:35 AM
#67
If it's the latter it would be quicker to change the appearance number in the relevant .CRE files to point to Blossom's line in appearance.2da. Open the CRE files with k-gff 1.2 and change the Appearance field (under the Looks struct).

Actually, my problem was the former but to hell with that. Until now I thought k-gff deals only with .gff files, I don't know if it deals with .cre too. By the way, which relevant .cre file is it?
 tk102
06-02-2007, 10:08 AM
#68
GFF stands for "generic file format" which is basically just a way to arrange the data within the file. Many files in the Bioware/Obsidian games are GFF formatted though they have a variety of extensions. CRE files are one of those types.

I didn't add CRE files as a known GFF file type in KGFF (in the File: Open dialog, "GFF Files" filter) because CRE aren't used in KotOR or TSL. You should still be able to choose File: Open and set the filter to All Files or simply associate CRE files to open with KGFF.
 Ghost Down
06-03-2007, 7:48 AM
#69
Are there any Jade Empire modding sites?

- Ghost Down
 stoffe
06-03-2007, 11:28 AM
#70
Are there any Jade Empire modding sites?


Not that I am aware of. There is this thread here, and a modding thread on Bioware's Jade Empire forums, but I don't know of anything else.
 croma
06-05-2007, 12:04 AM
#71
There's also http://gulbsoft.de/doku.php/games/jade/jade). There's a downloadable character mod and some tutorials down there but I don't know how to upload your files there. I think Georg Zwoller (or something, sorry if I'm sucks with names) owns it. He's in a site somewhere around the site links in his site...... yeah that's it.

Edit: Stoffe, where did you get that avatar pic? I think it looks like Radiant Jen Zi with a different hair and skin tone AND in 3D. Just curious, really.
 stoffe
06-05-2007, 6:30 AM
#72
 Ghost Down
06-05-2007, 8:12 AM
#73
Which sword is that stoffe?

- Ghost Down
 stoffe
06-05-2007, 8:29 AM
#74
Which sword is that stoffe?


The Demon Sword, which you can find in the first area of the Spirit Realm you arrive in (the "Follow my light" area). If you head in the opposite direction of the blue pillar of light across the battlefield you'll eventually come across a cannon and some bodies. The sword can be looted from one of the bodies.
 stoffe
06-05-2007, 4:19 PM
#75
I've uploaded another version (0.3a) of the JEFindRes search utility. This version will look inside the KEY/BIF files as well (in addition to the MOD/RIM files like before), along with the override folder for completeness. It can extract resource from all locations it finds them, and convert TXB files to TGA+TXI files when extracting them, if desired.

See the first post in this thread (http://www.lucasforums.com/showpost.php?p=2300867&postcount=1) for the download link if you're interested. :)


I put together a minimal readme file with this version as well:

JE - Resource Search utility (v0.3a)
-----------------------------------

This simple tool will allow you to search for filenames and filetypes within the game resource of the game Jade Empire by Bioware.

The first time you do a search the utility will ask for the location of your Jade Empire game folder. This is the folder where the JadeEmpire.exe file is located. The location will then be saved in a file named "jefindres.ini" in the same folder this utility is located in. If you need to change the installation path of the game you may delete the "jefindres.ini" file to cause the utility to ask for the game folder location again.

This utility will look for resources of matching name and type inside the BIF, MOD and RIM files in the data folder, along with the content of the override folder for completeness. Matching resources are listed, and you can choose to extract the resources you select in the result list. The result list can also be sorted by name, filetype and source file/folder by clicking on the respective column headers.

When extracting TXB files you can choose to make the utility convert them to TGA+TXI files by checking the checkbox under the Extract button.

When searching you may use * as a wildcard character to make partial matches against the name of the resources. This should work like most wildcard searches tend to do elsewhere. Note that partial matches against file type is currently not supported: you'll gave to search for either one file type or all of them matching the specified name. A few examples:

Search for: p_li01
Result: Files of any type with the name "p_li01".

Search for: p_li01.*
Result: Same as above

Search for: p_li01.txb
Result: All TXB files with the name "p_li01.txb"

Search for: *p_li
Result: Files of any type that ends with "p_li", e.g. "j00_c_app_li.ncs"

Search for: *p_li.ncs
Result: All NCS files that ends with "p_li", e.g. "j00_c_app_li.ncs"

Search for: p_li*
Result: Files of any type that starts with "p_li", e.g. "p_li01.txb" and "P_Ling_.mdl".

Search for: p_li*.txb
Result: TXB files where the name starts with "pi_li", e.g. "p_li01.txb" and "p_lingh01.txb"

Search for: *p_li*
Result: Files of any type containing "p_li" somewhere in the name, e.g. "j01p_lion_altar.pla" and "p_li01.txb"

Search for: p_li*01
Result: Files of any type starting with "p_li" and ending with "01", e.g. "p_li01.txb", "p_lih01.txb" and "p_lingx01.txb"

Search for: p_li*01.txb
Result: Same as above, but only finds TXB files.

Search for: p_li*h*01
Result: Files starting with "p_li", followed by anything, then an "h", followed by anything and then ending with "01", e.g. "p_lih01.txb" and "p_lingh01.txb".

Search for: *.2da
Result: All files of the 2DA file type, regardless of name

Search for: *.*
Result: All files in the game data (might take some time to list, there are many)
 RedHawke
06-09-2007, 12:35 AM
#76
Since ChAiNz stickied tk102's tool thread to keep it from getting 'lost' I'm sticky-ing this one as it is also a tool thread. One that I don't want to see 'lost'. ;)

I will install this darned game someday... someday! Curses DDO! :fist:
 croma
06-10-2007, 3:48 AM
#77
At last, the power supply replaced. No more internet via mobile phone.

It's a screenshot from the game using a quick re-skin I've made of the Radiant Jen character, which I'm currently playing as:

So it's just re-skinning? I thought I saw ponytail there. My bad eyes.

Anyway, I've replayed through both of my SWKotOR and tried to mod it myself (succesfully though not much, yay) instead of dnloading pre-existed ones just to get more grasp on those wonderful tools. Now I have theories:
1. It seems like everything can be hexed. I never tried though, never knew it, never had it.
2. The .txi files can override some .2da entry.
3. If theory 2 is true, maybe the .mdx files can do the same.

Anyone can help me on this? Any clarification, confirmation, comments, or curses are very much appreciated.
 tk102
06-14-2007, 9:01 PM
#78
If anyone would like to test drive an alpha version of DLGEditor for Jade Empire, you can download it here: http://www.starwarsknights.com/forumdl/jedlgeditor_230a2.rar)

Please note, unlike KotOR dialogs, Jade Empire relies exclusively on the dialog.tlk file for its conversations. Thus you will want to download stoffe's TLKEd program to do any custom editing.

If you do download this, please take the time to tell about the bugs you find. I don't have Jade Empire, so if there's a particular dialog that has trouble, send me a copy in an email (address is in Help: About JE DLGEditor).
 Gargoyle King
06-15-2007, 4:57 PM
#79
It's a screenshot from the game using a quick re-skin I've made of the Radiant Jen character, which I'm currently playing as:

http://img381.imageshack.us/img381/8392/jadereskinradiantge4.th.jpg) (http://img381.imageshack.us/img381/8392/jadereskinradiantge4.jpg) http://img244.imageshack.us/img244/7245/jenswordfightgf4.th.jpg) (http://img244.imageshack.us/img244/7245/jenswordfightgf4.jpg) http://img112.imageshack.us/img112/8869/radiantscholargarden2fp0.th.jpg) (http://img112.imageshack.us/img112/8869/radiantscholargarden2fp0.jpg) http://img152.imageshack.us/img152/5022/jenfightmagicuq0.th.jpg) (http://img152.imageshack.us/img152/5022/jenfightmagicuq0.jpg)
Is there any chance you could release that skin Stoffe, it looks awesome! So JE modding has finally begun, only a matter of time really; i hope it eventually becomes as diverse as K1 & TSL modding has!
 Aash Li
06-23-2007, 12:25 PM
#80
Id like to have Stoffe's skin of her too. :)
 Alkonium
06-25-2007, 8:38 AM
#81
Id like to have Stoffe's skin of her too. :)
Come to think of it, so would I. I mainly play as a customised (stat-wise, not appearance-wise) Tiger Shen, but that skin might give me a reason to play as Radiant Jen Zi.
 stoffe
06-26-2007, 8:58 AM
#82
Come to think of it, so would I. I mainly play as a customised (stat-wise, not appearance-wise) Tiger Shen, but that skin might give me a reason to play as Radiant Jen Zi.

I've uploaded the reskinned textures here (http://www.algonet.se/~stoffe/jadereskin.7z) if you want it. :) Unpack the files and put them in the override folder. Remove any files with the same name with an .TXB extension found in the override folder, otherwise the game will not use the modded textures.

http://img522.imageshack.us/img522/9360/portraitradiantem4.th.jpg) (http://img522.imageshack.us/img522/9360/portraitradiantem4.jpg)
 Aash Li
06-26-2007, 2:06 PM
#83
How do you rotate the camera around so you can see your chara? I cant seem to zoom in or anything. >_>
 stoffe
06-27-2007, 6:22 AM
#84
How do you rotate the camera around so you can see your chara? I cant seem to zoom in or anything. >_>

As far as I know there is no "Vanity Mode" in Jade Empire, unfortunately. :fist:

It can be partially faked, somewhat, in combat mode by pressing and holding the Block key, since this will allow you to rotate the camera around your character with the mouse. If you do this long enough it sometimes gets stuck in that camera angle when you release the block key until you attack or move, allowing you a look at your character in the normal combat stance as well.

This, along with screenshots from dialogs/cutscenes is what I've used to make screenshots of my characters so far. It might be possible to make a mod that allows you to put your character into cutscene mode at will and pick a camera angle, though I haven't looked into how the game allows camera movement yet to be sure.
 Aash Li
06-27-2007, 7:40 AM
#85
I think its rather stupid that teh console game allows it, but the pc version doesnt... whats the point of having it on the console version? Is there screenshot abilities on that, that I dont know of?

Where do you get the skin for Scholar Ling's face? I found her clothes, but not her...

Also, the clothing mod for your character isnt working for me, for some reason. O.o The head reskin does, but thats it...
 Aash Li
06-28-2007, 11:16 AM
#86
http://img525.imageshack.us/img525/9652/screen0002yh6.th.jpg) (http://img525.imageshack.us/my.php?image=screen0002yh6.jpg)

Drow! haha... anyone know where the body textures are found? :3


Guess Ill have to play the game through once before I can play as an npc I like better.... heh
 Ztalker
07-10-2007, 5:31 AM
#87
Heya...finished the game yesterday, but something felt...wrong...

In the Kotor games, you could freely choose where to go. In JE, It bothered me that you had to do this 'major' quest for a ship, when you can only visit 2 places with it.
Also, I felt like I was being pushed in the right direction by the game.

I'm seriously sorry for buying the game...I just don't like it somehow...

Anyone else feel this way? Or am I doing something wrong? :(
 stoffe
07-10-2007, 6:05 AM
#88
In the Kotor games, you could freely choose where to go.

Well, freely might be stretching it a bit. The beginning and end acts of both KOTOR games are quite linear with the freedom to choose where to go and what order to do things only being present in the middle "find the four plot items" act. :)

(Which, on a tangent, seems to be a popular theme for the roaming part in RPGs as of late... "Find the four waterdhavian creatures" and "find the four words of power" in Neverwinter Nights, "find the four star maps" in KOTOR and "find the four jedi masters" in TSL. :))


In JE, It bothered me that you had to do this 'major' quest for a ship, when you can only visit 2 places with it.


Four places :) (Tien's landing, Imperial City, Palace, Dirge), though you also have Kang's line of quests involving Lord Lao's furnace and all the shooter mini games to go with it. Jade Empire isn't much of a galaxy hopping game where you need to go around a lot.


Also, I felt like I was being pushed in the right direction by the game.


Jade Empire is a fairly story intensive games that, while it has side quests, mainly focuses on following the main plot. It's not an Oblivion type game with 250+ hours of roaming around exploring the countryside doing things at your leisure. It wasn't a very long game, but that didn't bother me much since I have so many other games that take forever to get though so some variety was nice. Over all I thought it was worth buying and playing though a few times.


Anyone else feel this way? Or am I doing something wrong? :(

I thought it was a good game with an interesting plot and fun characters with plenty of Bioware style humor and a combat system that made you feel more involved in the fights rather than like watching an interactive cutscene like the KOTOR games sometimes feel. But it's a matter of taste, so you are of course equally entitled not to like it. :)
 Ztalker
07-10-2007, 7:57 AM
#89
Originally Posted by stoffe
Four places (Tien's landing, Imperial City, Palace, Dirge), though you also have Kang's line of quests involving Lord Lao's furnace and all the shooter mini games to go with it. Jade Empire isn't much of a galaxy hopping game where you need to go around a lot.

4 Places? I made a little mistake then. I thought I could never return again after going to the Imperial Palace the frist time....
One more thing: How did you guys play your character? I ended up with using only 4 styles (out of efficiency): -Thousand Cuts -Longsword -Jade Golem -Spirit Thief.
I ened up like...a Jedi Sentinel from Kotor. Is it worthwile (and balanced) to play a full-Melee or a full-Magic character?
 Alkonium
07-23-2007, 9:01 PM
#90
Hmm, I hope I'm not going out of line by asking this, but since BioWare's rather slow on the patch, what are the odds of user-made bug fixes for this game?
 tk102
07-23-2007, 9:38 PM
#91
I'd say very good as long as they don't involve .bik movie files or models. :)

What bugs need fixing?
 Alkonium
07-23-2007, 9:48 PM
#92
I'd say very good as long as they don't involve .bik movie files or models. :)

What bugs need fixing?
I'm pretty sure most, if not all of the bugs in the game are scripting errors.
Well, the ones I've encountered are the issue with the first pirates you see on Gao the Greater's island not turning hostile when they should, combat going buggy after killing one of the two imperial soldiers who attack you after the first bit of flirting with Silk Fox, and the infamous combat glitch involving Sir Roderick.
 tk102
07-24-2007, 10:38 PM
#93
The Jade Empire Save Game Format (.sac) is exceptionally simple:
32 bit (n) Number of GFF files in this .sac
-------------
begin GFF list
-------------
32 bit (x) Number of bytes the GFF filename including null
x*chars Filename including null termination
32 bit (y) Size of GFF
y*bytes GFF formatted file

(repeat n times)

The last GFF file in the GFF List is called save.sav and contains all the player related information. The other GFF files appear to be area/module information.
 sekan
07-25-2007, 6:43 PM
#94
Is it just me or can you walk through walking people?
 stoffe
07-25-2007, 8:22 PM
#95
Is it just me or can you walk through walking people?

You can, since the random nameless people roaming around who you can't select aren't technically NPCs, they are a special "crowd" object that runs a number of dummy people who move around to make the area seem busy.

Since they aren't NPC/creature objects but rather just visual effects they have no collision detection or pathfinding. As such they are unaware of your presence, and you can walk right through them.

I guess things are made this way to reduce the load on the game engine. Pathfinding and AI are quite expensive for processing.
 sekan
07-26-2007, 2:06 PM
#96
Okey... Is there some way to turn them into npcs?
 stoffe
07-26-2007, 2:22 PM
#97
Okey... Is there some way to turn them into npcs?

Well, you could remove the crowd object and put an equal number of NPC objects into the area, place waypoints where they are supposed to walk and assign them custom AI scripts that make them patrol the waypoints, fake entering buildings etc.

A lot of work for no obvious gain, IMO, unless you plan to use those NPCs for something else than decoration and ambience. This will lead to the game slowing to a crawl whenever you are in populated areas, and being able to select all the nobodies, making it harder to locate the NPCs that actually have something to say.

There is a reason why the crowd objects where introduced into the game engine after all. The Aurora engine is awful at handling large amounts of NPCs moving about in an area without killing performance due to (among other things) poor pathfinding and an inefficient (for the task) scripting system.
 sekan
07-26-2007, 4:56 PM
#98
If it's so much work then i wont do it :p Stoffe is there a spawn script for JE?
 Mindtwistah
07-26-2007, 4:56 PM
#99
Is there a modding site with JE mods?
 tk102
07-29-2007, 5:12 AM
#100
Jade Empire Savegame Editor v0.6 released

I've uploaded the initial release of a savegame editor for Jade Empire. See the first post of this thread for the download link.


Edit: I've also uploaded SAC Utils to extract/pack the the save.sac file just in case anyone wants to try low level tweaking of their savegames with K-GFF.

Edit: v0.2 released: Fixed Appearance behavior -- now shows list and found an extra field in the GFF that needed to be tweaked to get the changes to stick.

Edit: v0.3 released: Added Weapons, Plot Items, Flyer Improvements, Techniques, Amulet, Gems nodes. Also added ability to Add/Remove Styles and the aforementioned elements

Edit: v0.4 released: Added Henchmen selection/availability and fixed style bars (was off by one)

Edit: v0.5 released: Fixed the bug that was causing journal entries to disappear.

Edit v0.6 released: Fixed handling of early savegames where Silver and Alignment fields are not defined. The symptom was that Silver or Alignment were showing up as the values of Chi but when edited, they actually changed the Chi. That's been fixed.
Page: 2 of 9