Contents:
-----------------------------------------
What is Resourcing? [EXPL]
"Resourcing" -- the act of using a client's built-in /Resource/ folder to force modifications into the client. Such modifications can include minor text changes up to much more difficult client edits.
Warning!
While exchanging imagery between clients is easy due to the fact the clients are all programmed to read images in the same way, things like nui (window structure file) and rdb (internal database file) require more attention to detail.
Example (NUI):
If you were to resource a 7.3 window_main_player_info.nui into a 7.1 client, the client would crash on load because it does not understand the nui (as new tags, images and structures were added to this nui in 7.3)
Example (RDB):
If you were to resource a 8.1 db_pet.rdb into a 7.4 client the looters will now malfunction as the 7.4 client is not engineered to read the 8.1 format (As the structure of the file has changed)
-----------------------------------------
What will I need? [REQ]
The tools you will require are directly reliant on the task you are attempting to complete and the Client Epic you are working with.
6.1/6.2 - Arabic Resource Editor
7.4 - Game-Portal Resource Editor
7.4 - Raskim SQL to RDB Editor
7.4 - Xijezu 7.4 SQL to RDB Editor
Notice: If you can not find these tools, it's not my fault. Create your own!
For actual file extraction you will need:
- NCarbon Full Dumper/Normal Dumper
or
- Advanced Client Dumper
-----------------------------------------
Editing RDB/NUI [EDIT]
Editing an RDB is as easy as creating a program that converts HEX into Binary (or human-readable) at first this may seem a daunting task. But I assure you with the information below you will find it much easier:
RDB Structure:
- First 128-Bytes = File Date
- First 4-Bytes after File Date = Row Count
- First 4-Bytes after Row Count = Beginning of First Row
after the first section is figured out, the rest just depends on what fields are contained in that rdb (normally stick very close to the database structure, but won't be EXACTLY the same structure) then after you find the last field of the row, the very next 4-byte will be the beginning of the next row and so on all the way down the rest of the rdb.
NUI Structure:
The only truly important thing's to be told about an NUI is that it is a text-file and can be viewed with notepad++ the other thing being that rect: x,x,x,x is the position of the current window segment.
First X = Horizontal (+ = Right / - = Left)
Second X = Vertical (+ = Down / - = Up)
Third X = Horizontal (+ = Right / - = Left)
Fourth X = Vertical (+ = Down / - = Up)
Note, Second and Fourth X are boundary limiters, meaning if you are changing the rect on a text and you increase the first x to move it to the right, if you do not increase the third x by the same amount the text will like wrap down to the next line or be cut-off/vanish entirely.
Another minor thing to note about the NUI Files, is they directly link to an SPR! So be mindful of this, some changes will not take effect without proper updates to the connected .spr
-----------------------------------------
Adding Modified File to Client [SAVE]
Once you have modified the resource, whatever it is. You must simply rename the file from it's real_name (db_string(ascii).rdb) to it's hash_name ( !PWS)3rDAd3O'`dU+O}deN ) and simply place it into your client's /resource/ folder.
-----------------------------------------
About Empty Strings [EMPTY]
It is important that anyone attempting to resource realize that by adding content that did not natively exist in your client while cause said content to display empty strings. ALLLLL! And I mean ALLLLLLLLL empty strings originate from one central cause (missing entry in dbo.StringResource / db_string.rdb)
How to Read Empty String:
For example say you have an NPC who's name is Empty String: 10004049, the empty string itself says the code of the string. So in order to correct this you would either locate a db_string.rdb that had the npc string in it (OR) you load up dbo.StringResource create an entry ("Test TEXT") for code 10004094, load to rdb and add to the client, now your NPC is not Empty String: 10004094 but "Test TEXT"
-----------------------------------------
If you feel like you need even more help than this, leave a post and if it is not totally idiotic I may help you.
- What is Resourcing? [EXPL]
- What will I need? [REQ]
- Editing RDB/NUI [EDIT]
- Adding Modified File to Client [SAVE]
- About Empty-Strings [EMPTY]
-----------------------------------------
What is Resourcing? [EXPL]
"Resourcing" -- the act of using a client's built-in /Resource/ folder to force modifications into the client. Such modifications can include minor text changes up to much more difficult client edits.
Warning!
While exchanging imagery between clients is easy due to the fact the clients are all programmed to read images in the same way, things like nui (window structure file) and rdb (internal database file) require more attention to detail.
Example (NUI):
If you were to resource a 7.3 window_main_player_info.nui into a 7.1 client, the client would crash on load because it does not understand the nui (as new tags, images and structures were added to this nui in 7.3)
Example (RDB):
If you were to resource a 8.1 db_pet.rdb into a 7.4 client the looters will now malfunction as the 7.4 client is not engineered to read the 8.1 format (As the structure of the file has changed)
-----------------------------------------
What will I need? [REQ]
The tools you will require are directly reliant on the task you are attempting to complete and the Client Epic you are working with.
6.1/6.2 - Arabic Resource Editor
7.4 - Game-Portal Resource Editor
7.4 - Raskim SQL to RDB Editor
7.4 - Xijezu 7.4 SQL to RDB Editor
Notice: If you can not find these tools, it's not my fault. Create your own!
For actual file extraction you will need:
- NCarbon Full Dumper/Normal Dumper
or
- Advanced Client Dumper
-----------------------------------------
Editing RDB/NUI [EDIT]
Editing an RDB is as easy as creating a program that converts HEX into Binary (or human-readable) at first this may seem a daunting task. But I assure you with the information below you will find it much easier:
RDB Structure:
- First 128-Bytes = File Date
- First 4-Bytes after File Date = Row Count
- First 4-Bytes after Row Count = Beginning of First Row
after the first section is figured out, the rest just depends on what fields are contained in that rdb (normally stick very close to the database structure, but won't be EXACTLY the same structure) then after you find the last field of the row, the very next 4-byte will be the beginning of the next row and so on all the way down the rest of the rdb.
NUI Structure:
The only truly important thing's to be told about an NUI is that it is a text-file and can be viewed with notepad++ the other thing being that rect: x,x,x,x is the position of the current window segment.
First X = Horizontal (+ = Right / - = Left)
Second X = Vertical (+ = Down / - = Up)
Third X = Horizontal (+ = Right / - = Left)
Fourth X = Vertical (+ = Down / - = Up)
Note, Second and Fourth X are boundary limiters, meaning if you are changing the rect on a text and you increase the first x to move it to the right, if you do not increase the third x by the same amount the text will like wrap down to the next line or be cut-off/vanish entirely.
Another minor thing to note about the NUI Files, is they directly link to an SPR! So be mindful of this, some changes will not take effect without proper updates to the connected .spr
-----------------------------------------
Adding Modified File to Client [SAVE]
Once you have modified the resource, whatever it is. You must simply rename the file from it's real_name (db_string(ascii).rdb) to it's hash_name ( !PWS)3rDAd3O'`dU+O}deN ) and simply place it into your client's /resource/ folder.
-----------------------------------------
About Empty Strings [EMPTY]
It is important that anyone attempting to resource realize that by adding content that did not natively exist in your client while cause said content to display empty strings. ALLLLL! And I mean ALLLLLLLLL empty strings originate from one central cause (missing entry in dbo.StringResource / db_string.rdb)
How to Read Empty String:
For example say you have an NPC who's name is Empty String: 10004049, the empty string itself says the code of the string. So in order to correct this you would either locate a db_string.rdb that had the npc string in it (OR) you load up dbo.StringResource create an entry ("Test TEXT") for code 10004094, load to rdb and add to the client, now your NPC is not Empty String: 10004094 but "Test TEXT"
-----------------------------------------
If you feel like you need even more help than this, leave a post and if it is not totally idiotic I may help you.