NFS: World BETA Server XML discussion

01/06/2017 02:45 leorblx#1
Alright, everybody.

This thread is for discussing the XML structures that the beta version of the game expects in order to work properly... also known as the "xmls" by some people.


Before I can say that the beta server is ready, some more data is needed to get stuff working properly. (e.g. the car dealer; while you can buy a car, you don't know what car you're looking at.)

**Right now, my top priority is the car dealer ("Purchase Cars" after you create a persona) - if anyone can find logs from 2010, those would be much appreciated, as I need to know how to get the game to render models and display statistics and all that, but only in the car dealer. Outside of that doesn't matter as much.**

So that's why I'm going to show you guys how to get some of the data we need. Please note, it requires compiling a C++ program, but it's really not that hard if you have VS2015 installed with the Visual C++ stuff (or whatever it's called). I can provide a pre-built one if anyone needs it.


Since the creation of the game, I'm assuming, there has been a magical file that lays within the Data folder. It's called NFSWO_COMMUNICATION_LOG.txt. I'm guessing that it was left there for debugging purposes, but I'm not sure if it was supposed to be used in the production version of the game. Anyway, the game happens to log info about requests and responses in this file; it's encrypted though, and that's where the tool comes in.


The tool in question can be found here: [Only registered and activated users can see links. Click Here To Register...] (Please note, I didn't make this.)


Once you have the tool compiled, you'll want to copy the communication log file into the folder that the compiled tool is in. Then run:


Code:
exe_name_and_extension_here /d name_of_log_here
Example:
Code:
decrypt.exe /d NFSWO_COMMUNICATION_LOG.txt
A new file should be created, and in that file you'll see the decrypted requests and responses. Afterwards, upload the file somewhere and post the link.

@[Only registered and activated users can see links. Click Here To Register...] has uploaded a package with a modified .jar and the XML files I gave him here: [Only registered and activated users can see links. Click Here To Register...], so you can get the server set up with that. PLEASE NOTE that some information is currently hardcoded, such as the persona name/level. My .jar will change that, but for now I just care about getting stuff to work.

I am excited for this, and I hope we can make this work!

P.S. my .jar is coming soon™
01/06/2017 05:44 N/A#2
Quote:
Originally Posted by leorblx View Post
So that's why I'm going to show you guys how to get some of the data we need. Please note, it requires compiling a C++ program, but it's really not that hard if you have VS2015 installed with the Visual C++ stuff (or whatever it's called). I can provide a pre-built one if anyone needs it.


Since the creation of the game, I'm assuming, there has been a magical file that lays within the Data folder. It's called NFSWO_COMMUNICATION_LOG.txt. I'm guessing that it was left there for debugging purposes, but I'm not sure if it was supposed to be used in the production version of the game. Anyway, the game happens to log info about requests and responses in this file; it's encrypted though, and that's where the tool comes in.


....
MSVC (Microsoft Visual C++) compiler. Also, if you're compiling it for the same computer, no flags seems to be needed during the compilation. (As compiling it with the recommended flags just causes it to not work)

Not sure how compatible it is with other C++ compilers (like Borland, or GNU)

Essentially the computer runs on the compiled binary code.
Think of it as the computer eating baked food instead what is available before baking it.
(You also don't even need Visual Studio, just plug in any IDE to the compiler, or grab static compilers, and do it on the command line)

Also, just a heads up, as it's more of a security/privacy thing..
Since I did decrypt some of my earlier comm logs as part of reading through as much of the resource files as possible. (I got partial tpk support...)

The communication logs encrypts the password (And email) along with the rest of the xml text, so if you do attach it... well, I'd suggest you to remove the password on the decompiled xml log, or change your account password if you use the same password anywhere.

Thankfully, release builds actually left the password field blank, and yes, if I recall (by lurking on the EA forums), they did rely on communication log file, along with the crash dumps.
01/06/2017 09:17 berkay2578#3
Quote:
Originally Posted by N/A View Post
MSVC (Microsoft Visual C++) compiler. Also, if you're compiling it for the same computer, no flags seems to be needed during the compilation. (As compiling it with the recommended flags just causes it to not work)

Not sure how compatible it is with other C++ compilers (like Borland, or GNU)
minGW works, so GNU is OK.
01/06/2017 10:31 Desynchronised#4
Old Borland 32-bit compiler wont work. (BCC32)
Newest Borland 32-bit and any version of Borland 64-bit compiler will work as they are Clang Based. Not that you should use them tho...
01/06/2017 12:37 leorblx#5
Quote:
Originally Posted by N/A View Post
...Since I did decrypt some of my earlier comm logs...
What year are those logs from? Do you still have them?
01/06/2017 14:05 fabx24#6
i founded this communication log with some communications Just download it and decrypt it. Scroll down and click Pobizer, after that click Pobizer again with the 393Kb. It gonna download it. (This is the one i gave to leo for making freeroam avaible and a car detectable for getting driver, maybe can help).

[Only registered and activated users can see links. Click Here To Register...]
01/06/2017 15:33 berkay2578#7
Quote:
Originally Posted by fabx24 View Post
i founded this communication log with some communications Just download it and decrypt it. Scroll down and click Pobizer, after that click Pobizer again with the 393Kb. It gonna download it. (This is the one i gave to leo for making freeroam avaible and a car detectable for getting driver, maybe can help).

[Only registered and activated users can see links. Click Here To Register...]
I got these out of it:

HTML Code:
//Scirocco
<CustomCarTrans xmlns="http://schemas.datacontract.org/2004/07/EA.NFSWO.ENGINE.DataLayer.Serialization" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
	<BaseCar>-90545772</BaseCar>
	<Durability>100</Durability>
	<ExpirationDate i:nil="true"/>
	<Heat>1</Heat>
	<Id>999999</Id>
	<IsPreset>false</IsPreset>
	<Level>0</Level>
	<Name/>
	<OwnershipType>CustomizedCar</OwnershipType>
	<Paints/>
	<PerformanceParts/>
	<PhysicsProfile>
		<AttribHash>-1965895939</AttribHash>
		<Tier>1</Tier>
	</PhysicsProfile>
	<ResalePrice>0</ResalePrice>
	<RideHeightDrop>0</RideHeightDrop>
	<SerialNumber>1</SerialNumber>
	<Version>0</Version>
	<Vinyls/>
	<VisualParts/>
</CustomCarTrans>
HTML Code:
//Silvia S15
<CustomCarTrans xmlns="http://schemas.datacontract.org/2004/07/EA.NFSWO.ENGINE.DataLayer.Serialization" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
	<BaseCar>-951615808</BaseCar>
	<Durability>100</Durability>
	<ExpirationDate i:nil="true"/>
	<Heat>1</Heat>
	<Id>999999</Id>
	<IsPreset>false</IsPreset>
	<Level>0</Level>
	<Name/>
	<OwnershipType>CustomizedCar</OwnershipType>
	<Paints/>
	<PerformanceParts/>
	<PhysicsProfile>
		<AttribHash>-591225061</AttribHash>
		<Tier>1</Tier>
	</PhysicsProfile>
	<ResalePrice>0</ResalePrice>
	<RideHeightDrop>0</RideHeightDrop>
	<SerialNumber>1</SerialNumber>
	<Version>0</Version>
	<Vinyls/>
	<VisualParts/>
</CustomCarTrans>
Will try to find where the game compares the AttribHash to get all the cars.
01/06/2017 21:01 LemonDropKick#8
@[Only registered and activated users can see links. Click Here To Register...] i found this communication log from 2010 on the internet. maybe you can use it.
01/06/2017 21:12 leorblx#9
@[Only registered and activated users can see links. Click Here To Register...] Thank you SO MUCH. That's exactly what I need.

EDIT: ahh come on still unlocalized string, this is getting annoying
01/08/2017 12:48 berkay2578#10
[Only registered and activated users can see links. Click Here To Register...]
lol, game still uses jenkins , I'll upload every hash for the cars in a moment. Here you all go:


--
Also [Only registered and activated users can see links. Click Here To Register...] is still up, it has LZMA compressed files I didn't check.
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
->

[Only registered and activated users can see links. Click Here To Register...] -> sectionXXX.dat
01/08/2017 13:12 leorblx#11
Nice! Thanks a ton :D

Would you mind telling me where I should put the hashes? (Are they product hashes?)
01/08/2017 13:18 berkay2578#12
Quote:
Originally Posted by leorblx View Post
Nice! Thanks a ton :D

Would you mind telling me where I should put the hashes? (Are they product hashes?)
Sadly, they are not the ProductHashes. Game doesn't have a commerce.bin so I'm confused as to how it would even understand ProductHash entries.

These are the PhyicsProfileHash values, they can be used in carslots, mydefaultcar etc.
HTML Code:
<PhysicsProfile>
	<AttribHash><!-- Put the decimal values here --></AttribHash>
	<Tier>1</Tier>
</PhysicsProfile>
For example, if you want the lancerevo9 it should look like this:
HTML Code:
<PhysicsProfile>
	<AttribHash>2101449805</AttribHash>
	<Tier>1</Tier>
</PhysicsProfile>
01/08/2017 13:30 leorblx#13
Quote:
Originally Posted by berkay2578 View Post
Sadly, they are not the ProductHashes. Game doesn't have a commerce.bin so I'm confused as to how it would even understand ProductHash entries.
That's strange. Maybe they used a different file for hashes?
01/08/2017 14:47 randy kaka#14
i am really disapointed because there is no real bmw m3 gtr even no the bodykit for bmw m3 gtr i cannont believe this damn
ps berkay thanks for codes ;) :D
01/14/2017 23:33 leorblx#15
Alright, I still haven't been able to figure out the hashes for the car products (Not the cars themselves, but the products.) I'm 99% sure I have valid catalog data, but at this point I just don't know what's going on.

[Only registered and activated users can see links. Click Here To Register...]


Style shows up, probably because the game recognizes ProductTitle or Description, currency stuff works (rentals, cash, etc), but nothing else does. Still looking for help on this one, at this point, this stumps me.