These are some legacy docs for an alternate dumping method which I haven't actually used in a long time. This method was still available via the mod for some time, but during the 2023 data refresh for OpenBLCMM development, I ended up commenting it out because I doubted I'd ever end up using it again, and the only thing it was doing was making both the mod and the project documentation more confusing to work with.
The actual code for this method is still present in the DataDumper mod
file, and it would only take uncommenting a couple of actions in the action
lists to re-enable it (specifically uncommenting the MODE_FWD, MODE_REV,
and MODE_DUMP elements inside the main MODES structure in __init__.py).
For docs about the preferred method for generating public dumps, see the main README.
This version of the dump process uses a fully automated method of
dumping characters and vehicles, by using PythonSDK's ability to
load packages on the backend. It turns out that doing so will omit
six objects from the dumps, though (and technically will include some
objects in the dumps which never get loaded by the game while actually
playing it). So technically, to get the full object set, you'll have
to do some manual work to load a character, get the object dumps, then
load the next character, get those object dumps, etc. Alternatively,
if you don't mind having the not-actually-in-the-game objects in your
dumps, you could do the fully-automated process, and then just do a
handful of manual dumps, putting them into your Launch.log where
appropriate. The objects which are missing from the fully-automated
method are:
GD_Attributes_Lilac.Init_PlayerSkillDamage_AdditionalDamagePerLvlGD_Attributes_Lilac.Init_PlayerSkillDamage_Part2GD_Attributes_Lilac.Init_PsychoSkillDamageGD_Balance_HealthAndDamage.Init_PlayerSkillDamage_AdditionalDamagePerLvlGD_Balance_HealthAndDamage.Init_PlayerSkillDamage_Part2GD_Tulip_DeathTrap.AI.WillowAIDef_DeathTrap:AIBehaviorProviderDefinition_1.Behavior_DeathTrapSoundFix
The first three will be present if you load up Krieg, and the next three
can be dumped when Gaige is loaded. (The GD_Balance_HealthAndDamage
objects also show up for Maya, and possibly others, but since you're
grabbing the DeathTrap one anyway, you may as well just grab them from
Gaige.)
After finding out about the missing data (at first I'd only known about
Init_PlayerSkillDamage_AdditionalDamagePerLvl), I'd also done manual
dumps for all vehicles, just in case I was missing anything. It turns
out that I wasn't, but the manual character-dump process below also
includes vehicles in the manual steps. That's not really necessary,
but if you're doing the character work already it's not that much
more.
Whether or not those six objects are worth going through each character to dump manually is certainly up to you. In the end, if I wasn't doing these to provide "clean" BLCMM OE dumps, I probably wouldn't care, though the data that I'm providing for OE is now constructed using the manual dumps.
- Install the
DataDumpermod into PythonSDK'sModsdir, copy the scripts inscriptsto yourWillowGamesfolder (where yourLogsandSaveDatadirs are), make sure you can activate "Data Dumper" from PythonSDK's "Mods" menu. Have a level 80 char who's been through all game content ready to go, and when you enter the game, play in Normal so that you won't be in danger of getting killed. - Start BL2, activate Data Dumper, head into game, hit
Bto run in the defaultMaps Forward (with char+vehicle)mode. Once the game auto-exits, copyLaunch.logup alongside the scripts you copied, with the filenameLaunch.log-all_object_names_fwd - Start BL2 again, activate Data Dumper, head into game, hit
Ntwice to cycle toMaps Reverse (with char+vehicle)mode, and hitBto run again. Once the game auto-exits, copyLaunch.logup alongside the scripts you copied, with the filenameLaunch.log-all_object_names_rev - Run
generate_obj_dump_lists.py - Start BL2 again, activate Data Dumper, head into game, hit
Na bunch until you cycle toDump Data (with char+vehicle)mode, and hitBto start. Once the game auto-exits, checkLaunch.logstarting fromswitch.to.charvehicleand see if there are a bunch ofNo objects founderrors after awhile. - If there were no
No objects founderrors in thecharvehiclesection, copyLaunch.logup alongside the scripts, with the filenameLaunch.log-data_dumps - If there were errors in the
charvehiclesection, copyLaunch.logup with the scripts asLaunch.log-data_dumps_minus_charvehicle. Start BL2 again, activate Data Dumper, head into game, hitNthree times to switch to the character/vehicle mode, and hitBto start. Once the game exits, saveLaunch.logasLaunch.log-data_dumps_charvehicleand runcombine_vehiclechar.pyto generateLaunch.log-data_dumps. - Run
categorize_data.py - If desired, hop back into BL2, load a Krieg and Gaige char, in turn, and
dump the above six objects mentioned in the previous section. Save the
dumps manually in the appropriate file in the
categorizeddirectory. - Sanitize any data if you like, removing some personal information from
the dumps in the
categorizeddirectory. See below for known locations of personal information (steam username/userid, hostname, etc). - Head back into BL2 as Krieg and manually dump
GD_Lilac_Skills_Hellborn.Skills.Projectile_FireBall:BehaviorProviderDefinition_0.Behavior_AttemptStatusEffect_1, saving it insideBehavior_AttemptStatusEffect.dumponce you're out. - If you want, run
compare_blcmm_data.pyto generate a list of how the new data files compare to your existing files, just to spot-check the data. - Run
generate_blcmm_data.py- this will generate OE-compatible files inside the directorygenerated_blcmm_data. Note that the current version of this script generates data for OpenBLCMM, the newer 2023 version, not the BLCMM version that's been in-use for awhile now.
For BL2, steps 1 and 2 should take about two hours each, and generate about a 6GB logfile each. Step 4 should take about 90 minutes, and generate another 6GB file. While processing, you'll want another 8GB or so free space beyond that, to allow for processing. So make sure you've got at least 26GB free on your HD before starting this off. You can decrease that requirement by removing some files as you go, of course -- once you've done step 4, you don't actually need the files from steps 1 or 2 anymore, for instance.
For TPS, steps 1 and 2 should take a little under an hour each, and generate logfiles a bit less than 3GB each. Step 4 should take about 45 minutes, and generate a file that's a little over 3GB. While processing, you'll want another 5GB or so free space beyond that, to allow for processing. So make sure you've got at least 14GB free on your HD before starting this off. As with BL2, you could decrease the requirement by removing some unnecessary files as you go.