# burnout-data-tool
A C# command line tool for reading and writing Burnout 3/Revenge-era data files, such as VDB, VList, and maybe more in the future.
Burnout 3 stores all values in the VDB file, including every vehicle's values.
- Extract the whole game from the ISO to a folder or just the
VDB.xmlfile from thedatafolder. - Export the VDB file to YAML in raw format with
bdtool.exe vdb export "path/to/vdb.xml" "path/to/vdb.yaml", or to a more readable format withbdtool.exe vdb export "path/to/vdb.bin" "path/to/vdb.yaml" --format dto --definitions "path/to/bo3_vdb_definitions.yaml". - Edit the values in the exported YAML file.
- Import the YAML file back to a binary file with
bdtool.exe vdb import "path/to/vdb.yaml" "path/to/vdb.xml", orbdtool.exe vdb import "path/to/vdb.yaml" "path/to/vdb.xml" --format dto, ifdtoformat was used to export it in step 2. - Replace the original VDB file in the data folder with your new VDB file and recreate the ISO using the appropriate software (differs by platform). Some software may also allow you to replace the file in the ISO directly, if the size of the file wasn't changed.
- Play!
Modifying BO4 values works the same way, except for per-vehicle values which are stored in their respective BGV files.
- Extract the whole game from the ISO to a folder or just the BGV file of the vehicle that you want to modify from the
PVEHfolder. Here's a list of vehicles. - Extract VDB section from the BGV file to a binary file with
bdtool.exe vdata extract "path/to/Car.BGV" "path/to/car_vdb.bin". - Export the VDB binary file to YAML in raw format with
bdtool.exe vdb export "path/to/car_vdb.bin" "path/to/car_vdb.yaml", or to a more readable format withbdtool.exe vdb export "path/to/car_vdb.bin" "path/to/car_vdb.yaml" --format dto --definitions "path/to/bo4_bgv_vdb_definitions.yaml". - Edit the values in the exported YAML file.
- Import the YAML file back to a binary file with
bdtool.exe vdb import "path/to/car_vdb.yaml" "path/to/car_vdb.bin", orbdtool.exe vdb import "path/to/car_vdb.yaml" "path/to/car_vdb.bin" --format dto, ifdtoformat was used to export it in step 3. - Insert the VDB binary data back into the BGV file with
bdtool.exe vdata insert "path/to/Car.BGV" "path/to/car_vdb.bin" - Replace the original BGV file in the vehicle's folder with your new BGV file and recreate the ISO using the appropriate software (differs by platform). Some software may also allow you to replace the file in the ISO directly, if the size of the file wasn't changed.
- Play!
Note: Xbox 360 version BGV files need to be uncompressed first before extracting the VDB from it by using bdtool.exe tools zlib uncompress "path/to/Car.BGV" "path/to/Car_uncompressed.BGV" command.
After the modified VDB is inserted into the uncompressed BGV file, it needs to be compressed again by using bdtool.exe tools zlib compress "path/to/Car_uncompressed.BGV" "path/to/Car.BGV" command.
You should also specify the endian with --endian big option when using the vdb import command for Xbox 360 files.
- VDB (Value Database): Read/Write
- VList (Vehicle List): Read/Write
- BGV/BTV (Drivable/Traffic Vehicle Data): Partial Read/Partial write
- This tool is still in development, keep backups of your game files and be aware that there may still be changes to the exported formats!
- Initially the plan was to make this tool for specifically editing VDB values, so support for other Burnout data file types is still limited.
- Adding new values to the files hasn't been tested. Modifying existing values works as expected.
More info about the data files and usage of this tool can be found in the Wiki!
Thanks to:
