Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Star Wars - The Old Republic - Beta

The Original Forum. Game archives, full of resources. How to open them? Get help here.
fmauNeko
ultra-n00b
Posts: 3
Joined: Sun Jan 15, 2012 11:26 pm
Has thanked: 2 times
Been thanked: 2 times

Re: Star Wars - The Old Republic - Beta

Post by fmauNeko »

Hello,
Did anyone found a specification for the String Tables (.stb) format ? That would be interesting to extract the item database.

Thanks :)
Nomis
ultra-n00b
Posts: 1
Joined: Mon Dec 05, 2011 11:54 am
Has thanked: 4 times
Been thanked: 3 times

Re: Star Wars - The Old Republic - Beta

Post by Nomis »

fmauNeko wrote:Hello,
Did anyone found a specification for the String Tables (.stb) format ? That would be interesting to extract the item database.

Thanks :)

Here a simple 010 Template for the String Tables:

Code: Select all

typedef struct StlHead {
    byte header[3];
    int count;
} StlHead;

typedef struct StringEntry {
    int64 textId;
    short unknown1 <comment="321=First, 326=Second ?">;
    byte unknown2[8];
    int offset;
    int length;

    if (length > 0){
        local int pos;
        pos=FTell();
        FSeek(offset);
        char entryContent[length];
        FSeek(pos);
    }

} StringEntry;



LittleEndian();
local int i;

StlHead head;
for (i = 0; i<head.count; i++){
    StringEntry entry;
}

Each entry is doubled. The unknown1 field indicates if it's the first or the second occur.
SWTOR fan
veteran
Posts: 112
Joined: Thu Nov 17, 2011 5:33 pm
Has thanked: 35 times
Been thanked: 132 times

Re: Star Wars - The Old Republic - Beta

Post by SWTOR fan »

It's been quite a while since my last response, I hope everyone's fine. :)

I have found out nearly 4000 new filenames, mostly from the swtor_main_art_dynamic_*_1.tor archives. While these files are named after a certain pattern, there are so many files that it takes a long time to get all file names.
Rick, how have you been? Would you mind uploading a new .filelist archive? They are much more convenient than my list. Have you found out new file names yourself as well?

In other news, I have finally made some progress on the client.gom file. I'll give an update once I know more. By the way, @brutang and fmauNeko, the .stb files will unfortunately only give you the names of the items/abilities, the actual data, e.g. amount of damage, is saved in the buckets/prototype nodes, which are related to the .gom file.
You do not have the required permissions to view the files attached to this post.
flipkick
ultra-n00b
Posts: 6
Joined: Thu Feb 09, 2012 1:40 pm
Has thanked: 2 times
Been thanked: 8 times

Re: Star Wars - The Old Republic - Beta

Post by flipkick »

I've written a ruby script to extract the translations of the language (stb ?) files. Get it at http://flip.netzbeben.de/2012/02/dfslf- ... nslations/

Example output:

Code: Select all

= 11000000:
 - 00220a00_de: [Zielgenauigkeit +2]
 - 00220a00_en: [ Aim +2 ]
 - 00890100_de: Haze wollte ihn erschießen. Aber Haze will jeden erschießen. Doch dann griffen die Sandleute an und haben sich für uns um Nerrik gekümmert.
 - 00890100_en: Haze wanted to shoot him. But Haze wants to shoot everyone. But then the Sand People attacked and took care of Nerrik for us.
 - 00930400_de: [Dieses Terminal enthält einen Teil der Bombenpläne.]
 - 00930400_en: [The terminal contains part of the bomb plans.]
flipkick
ultra-n00b
Posts: 6
Joined: Thu Feb 09, 2012 1:40 pm
Has thanked: 2 times
Been thanked: 8 times

Re: Star Wars - The Old Republic - Beta

Post by flipkick »

Does anyone has access to the development tools of the Hero Engine? SWTOR is built with it, and i guess with these tools it would be easy to get more information about several file structures and their content. I'm very interested in the gom files: http://wiki.heroengine.com/wiki/GOM

SWTOR also comes with the Granny 3D lib, dunno for what it is used actually there (maybe simply by the Hero Engine), i just wanted to let you know.
fmauNeko
ultra-n00b
Posts: 3
Joined: Sun Jan 15, 2012 11:26 pm
Has thanked: 2 times
Been thanked: 2 times

Re: Star Wars - The Old Republic - Beta

Post by fmauNeko »

For the GOM files, NodeViewer and Hero.dll are unobfuscated .NET assemblys, so you can decompile it with any .NET decompiler like JustDecompile, which works well.
SWTOR fan
veteran
Posts: 112
Joined: Thu Nov 17, 2011 5:33 pm
Has thanked: 35 times
Been thanked: 132 times

Re: Star Wars - The Old Republic - Beta

Post by SWTOR fan »

flipkick wrote:Does anyone has access to the development tools of the Hero Engine? SWTOR is built with it, and i guess with these tools it would be easy to get more information about several file structures and their content. I'm very interested in the gom files: http://wiki.heroengine.com/wiki/GOM

SWTOR also comes with the Granny 3D lib, dunno for what it is used actually there (maybe simply by the Hero Engine), i just wanted to let you know.
Unfortunately, the developers of SW:TOR have adapted the Hero Engine source so much that it won't help too much to have the original source. However, the NodeViewer source code would be a good place to get you started.

The model files are a custom Bioware format; they are still called .gr2 files because they have been Granny models during the beta, but have since then been replaced by the new format. AFAIK nicoli_s is working on a model converter, though I do not know about his progress.
flipkick
ultra-n00b
Posts: 6
Joined: Thu Feb 09, 2012 1:40 pm
Has thanked: 2 times
Been thanked: 8 times

Re: Star Wars - The Old Republic - Beta

Post by flipkick »

fmauNeko, this was very helpful. I've written a small C# program which uses Hero.dll to extract information about the currently 41554 available items in SWTOR (which is what i have found at the moment) :-D And now i can confirm the 64bit int id of the translations in the stb files, they are referenced from the gom.

I'll try to improve the program to show more detailed information about the items and then i'll upload it here.
flipkick
ultra-n00b
Posts: 6
Joined: Thu Feb 09, 2012 1:40 pm
Has thanked: 2 times
Been thanked: 8 times

Re: Star Wars - The Old Republic - Beta

Post by flipkick »

I found some first detailed information of the item prototypes. The C# source for my extract tool is attached, Hero.dll is required. The mysql stuff is for my personal translation db.

This is my very first C# program, so be gentle :-D

Example output:

Code: Select all

itm.gen.quest_shared.rdps1.chest.heavy.prototype.04x2:
 type: String: "armor.trooper"
 sub type: String: "ipp.class.bh.heroic.rdps1.t4x2.chest"
 bind on pickup
 durability: 120
 id: 16140952217605448722
 title: Xonolite Mesh Chestguard
 slot #0: Id: 16141113719776797593
  - title: Reflex Armoring 12
  - stats: STAT_att_agility: 15
  - stats: STAT_att_endurance: 10
 slot #1: Id: 16141146200986683659
  - title: Reflex Mod 12
  - stats: STAT_att_agility: 20
  - stats: STAT_att_endurance: 10
 slot #2: Id: 16141028933557874887
  - title: Rage Enhancement 12
  - stats: STAT_att_endurance: 10
  - stats: STAT_rtg_attack_power: 15
 slot #3: empty
 slot #4: empty

itm.eq.cc.pierce.legs.heavy.premium.cc_05i:
 type: String: "armor.trooper"
 sub type: String: "ipp.companion.pierce.default.legs"
 bind on pickup
 durability: 120
 stats: STAT_att_agility: 25
 stats: STAT_att_endurance: 42
 stats: STAT_rtg_accuracy: 3
 stats: STAT_rtg_defense: 13
 id: 16140958271266809222
 title: Pierce's Pants
 slot #0: empty
 slot #1: empty
 slot #2: empty
 slot #3: empty
 slot #4: empty

itm.gen.quest_wpn.theal1a.blaster.prototype.07x1:
 type: String: "weapon.ranged.blaster.holdout01"
 sub type: String: "blaster.high06.a03_v01"
 bind on pickup
 durability: 200
 id: 16140961445110358222
 title: D-203 Recon Interceptor
 slot #0: Id: 16140922506011855339
  - title: Blue Lethal Crystal
  - stats: STAT_rtg_critical_chance: 27
 slot #1: Id: 16141135957775441233
  - title: Commando Barrel 22
  - stats: STAT_att_agility: 34
  - stats: STAT_att_endurance: 36
 slot #2: Id: 16141046178047402709
  - title: Nimble Mod 22
  - stats: STAT_att_agility: 41
  - stats: STAT_att_endurance: 24
  - stats: STAT_rtg_critical_chance: 7
 slot #3: Id: 16141019615760744772
  - title: Assault Enhancement 22
  - stats: STAT_att_endurance: 22
  - stats: STAT_rtg_critical_chance: 10
  - stats: STAT_rtg_critical_damage: 28
 slot #4: empty
Nice, isn't it? I'll try to analyze even more item detail information.
You do not have the required permissions to view the files attached to this post.
Last edited by flipkick on Thu Feb 16, 2012 1:26 pm, edited 1 time in total.
fmauNeko
ultra-n00b
Posts: 3
Joined: Sun Jan 15, 2012 11:26 pm
Has thanked: 2 times
Been thanked: 2 times

Re: Star Wars - The Old Republic - Beta

Post by fmauNeko »

Good work here =)

I'm trying to understand how those gom files work from Hero.dll, and if I can, I'll make a program generating a real database from those files, and implement it in a real cross-platform language. My goal is to put it to run periodically on my server, and autogenerate the database whenever I upload the new files (to be reactive when new content is added.
OverWind
ultra-n00b
Posts: 1
Joined: Fri Feb 17, 2012 1:55 pm

Re: Star Wars - The Old Republic - Beta

Post by OverWind »

Greetings good sirs and/or madams,

I would like to try datamining the swtor files (because I'm curious, and would like to learn new things).
I'm a programmer, but have mostly been using Java, PHP, Perl, etc. etc.

I have tried fetching EasyMYP and the Hash file and created the "Hash" folder, and the program starts up fine, but when I selected a tor file, it just crashes.
I guess my problem is that I don't really know what to do.

Could anyone post a simple tutorial to get from A to C? Where A is me knowing next to nothing (but I know what a C# and Ruby script is, and I know programming) and getting some info out from the files. I would really appreciate it.

Thanks in advance!
flipkick
ultra-n00b
Posts: 6
Joined: Thu Feb 09, 2012 1:40 pm
Has thanked: 2 times
Been thanked: 8 times

Re: Star Wars - The Old Republic - Beta

Post by flipkick »

OverWind wrote: I have tried fetching EasyMYP and the Hash file and created the "Hash" folder, and the program starts up fine, but when I selected a tor file, it just crashes.
use easymyp 3 instead of 2.
Lex Talionis
ultra-n00b
Posts: 1
Joined: Wed Feb 15, 2012 12:02 pm
Been thanked: 3 times

Re: Star Wars - The Old Republic - Beta

Post by Lex Talionis »

Many thanks for all the hard work here, guys.

@flipkick & SWTOR fan - In the string tables entries the 2 bytes at position 08-09 seem to flag what type of string it is. For example:

4100 - 4103 = Plain Text String (Can be used almost anywhere in the UI)
4104 - 4105 & 4115 = Voice Acted String (Galactic Basic - Will be spoken in whatever language the user's copy of the game allows.)
410d = Voice Acted String (Alien Language)
5004 - 5005 = Dialogue Wheel Option

I haven't figured out 4106 & 4107... They seem to be a mess of test strings, Voice Acting Strings and everything else.

Anyway, hope that helps a little. :3
bhaal85
ultra-n00b
Posts: 1
Joined: Sat Feb 18, 2012 6:52 pm

Re: Star Wars - The Old Republic - Beta

Post by bhaal85 »

Hello everyone, I need some information to extract items and spells from swtor.

I use easymyp v3.2.

I downloaded the file ricky (82%) but can not import it into EasyMYP.
If I understand it I should convert the files. Filelist one file and call it hashes_filename.txt and place it in the Hash EasyMYP.

How do I create this file?

Could you explain the steps to remove items?

Thanks and sorry for my english: D
SWTOR fan
veteran
Posts: 112
Joined: Thu Nov 17, 2011 5:33 pm
Has thanked: 35 times
Been thanked: 132 times

Re: Star Wars - The Old Republic - Beta

Post by SWTOR fan »

Bad news, unfortunately. :(
It looks like all the names and descriptions were removed from the client.gom file (except for ~150 nodes) which will make it considerably harder to datamine the buckets/prototype nodes because one no longer knows what all these values stand for.
So anyone who was using the NodeViewer will now see many empty fields. It should be possible to identify the names of these fields based on their id and comparing them to old versions of the client.gom files.

Also, the script files (SCPT) seem to have changed as well but since I have not yet analysed their old format this is not too much of a setback. :wink:

Here's the current header of the sections in the client.gom file. Anyone who has been working on the file before will know what it means, for everyone else I will post a full specification once I know more about the file.
The main thing that has changed is that the id field and the zero field have switched places, and that the name and description offsets, while still valid, now only produce a zero-length string.

Code: Select all

4A 00 00 00|29 EC 29 C7 F7 ED 01 E1|00 00 00 00|92 00|1E 00|1C 00|1D 00|
Length     |Id                     |zero       |Type |StrO-|Name |Descr|
length = section length
id = section id
type = section type
StrO- = offset of strings
name = offset of name (zero-length string)
descr = offset of description (zero-length string)

Image
Post Reply