Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

How to open / read the content of rvdata files?

Hello! My name is Laurie, I’m 19 and I love using RPG Maker VX! ^ ^
I am hoping to start a game project soon but I have important questions before starting! First of all:

How can I open and read the content of rvdata files in the data folder?
 
Rmvx Does This Automatically (If It Is For You To Read I Don't Know Its In Machine Code And , Maybe There's A Script That Can Read The Machine Code and Export It)
Thanks For Asking The Question,
Lionel Age:10
 
The contents of the .rvdata files are simply serialized Ruby objects containing the data required for the game to function. To read them, you'll need the classes that they represent and then unserialize them.
 
Laurie_Fatale":4jfv15po said:
I would like to add some things in them and also manipulate their data manually.

I don't know how to add but I know that the data can be changed, you can use a hexadecimal
editor I can give you a few hints how to locate some variables and how to interpret them:

Boolean variable:
@menu_disabledF means that the game menu is enabled
@menu_disabledT ... disabled
many variable entries begin with @ when using standard game script

Integer variable:
@save_counti means this is an integer variable, this one is not so simple as the boolean
because immediately after the i comes the value or it's length, if this value is below
than 5 this means that this is the length of the number:
0 = value not set
1 = value has 1 byte length
2 = value has 2 byte length
3 = value has 3 byte length
4 = value has 4 byte length
5 = don't know (reserved?)
Confused? Yeah! Let's supposed the real value is 1, the default representation will be 06,
but you can also use the following to represent it (HEX)01 01, I'll explain another way

HEXVIEW / CHARVIEW
40736176655F636F756E7469 = @save_counti
40736176655F636F756E746906 = @save_counti. (number of saves is 1)
40736176655F636F756E74690101 = @save_counti.. (number of saves is 1)

String variable:
This type of variable starts with " then it is followed by it's length in bytes then the
string itself, you can easily locate this type of variable at the beginning of the rxdata/rvdata
file and it can contain the characters names or the map name in case it is a map. It uses the
same method as the integer for the byte length but this one has always the byte length before
the string.

HEXVIEW / CHARVIEW
220B737472696E67 = ".string
22 is the type (")
0B is the length (0B = 11)
737472696E67 is the string itself "string"

Why is the byte length bigger than the string?
Why? Remember the bytes below 5 when I described how the integer is represented?
So the string is 6 byte length then it has 5 more added and it will be 11

I made an application that can change some of these values, I have it on my windows live
profile, if you want you may check it, download the one named SGEdit
http://cid-eb37b10f7f74932b.skydrive.li ... ns?lc=1033
or http://sites.google.com/site/darklunas/SGEdit.zip
 
The definitions are all printed in the docs.
You can print a data object after it's loaded. EX: After line 91 of Scene_Title, add

p $data_system

Then playtest

Problem: If you add objects, attributes or methods to the rvdata files, the next time you save your game from RMVX the changes will be gone.

You could define the module (copy it from the docs), modify it, create an object of that class, then use the "save_data" function to create a new file.

Be Well
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top