Download - 4.63 MB
IMPORTANT: 0.4.9b fixed what is probably a severe bug with the handling of strings in Dragon Age 2 save files. So upgrade if you're at version 0.4.9a or earlier.
An editor for GFF files, without any documentation. Included is also a simple DA:O savegame editor.
Due to my experience with the Toolset's GFF editor (it sucks up a ton of RAM and crashes when editing any GFF of significant size), I wrote an editor. It cannot create new files, or modify the definitions of existing ones. In other words, you can modify values, add new elements to lists, and change any referenced structures (set them null, instantiate them, and if the reference is generic, replace them with a structure/value of your choosing).
The savegame editor can edit your money and max items, stats of existing party members and their approval, duplicate items in your backpack or party storage or edit their stack size, and move items from stores, chests, or people in areas you've visited that you might have missed.
The GFF read/write module works. The basic idea is that structs are decoded into dict-like objects, lists into lists, and primitive types into unicode/int/long/float or named tuples. If you can read my code, you can probably figure it out. There's also lazy GFF reader that doesn't parse data until it's needed. For the editor, this means very fast load times... It also means that expanding a large list is noticeably slower the first time, likewise with searches. There's also a Fast Save method that can be used that never parses the entire file, and thus saves much quicker, but also leaves old, unused data in the file.
The editor can also open GFF files from within V2.0, V2.2, and V3.0 ERFs, but cannot save them back into the ERF, and the V3.0 support is not complete. There's an option to export files (GFF and not) to disk, individually and in bulk. Decryption of protected ERFs is also supported, assuming you possess the password and add it to the list of passwords under Settings,
GFF V3.2 files can be viewed but not edited.
There's a few more improvements I want to make to the editor as well, and suggestions are welcome.
If you're going to play with the source code, it will require Python 2.6 outright and probably version 220.127.116.11 of wxPython for the GUI. It also requires PyCrypto for reading encrypted resources from ERFs. I haven't tested it with Python 2.7 or 2.5, but any relatively recent version of wxPython should work.
Criticism is welcomed, and always back up your files before you edit them!
Note: Credit for pretty much all the research that went into this belong to the contributors to the GFF and ERF articles on the DA Builder Wiki. Only the GFF V4.1 reverse-engineering is my own work.