Skip to content

Releases: apocalyptech/UAssetAPI

2025-03-04-01: ObjectConst and BindDelegate improvements

Choose a tag to compare

@apocalyptech apocalyptech released this 04 Mar 17:20

This is a pretty minor update which just includes the following:

  • ObjectConst graphing was trimming off some of the reported target when there were dots in the name. I have no idea why I was doing that, but it's causing problems for other folks using the graph, so I've commented out that trimming.
  • Include FunctionName in BindDelegate graphs

NOTE: If you want to use my fork of UAssetAPI in conjunction with a "released" UAssetGUI version, this release will not work with it. The most recent release of my own fork which works with UAssetGUI v1.0.0.0-alpha.7 is v2022-11-02-01.

2022-12-16-01: CallMulticastDelegate graphing and some other minor tweaks

Choose a tag to compare

@apocalyptech apocalyptech released this 16 Dec 17:47

This is a pretty minor release, which mainly just adds in graphing support for CallMulticastDelegate opcodes. Previous versions would just show that it was a CallMulticastDelegate and leave it at that -- the new version will include some relevant info about the opcode.

There's also been a couple of tweaks to the graphing script, and some merges from upstream. The full changelog:

  • Added graphing support for CallMulticastDelegate opcodes (though the Parameters array in there is basically still untested, except for cases where it's empty)
  • Fix bytecode-to-dot.py so it can be given a filename which completely omits the extension (including the dot)
  • Merged in some commits from upstream

NOTE: If you want to use my fork of UAssetAPI in conjunction with a "released" UAssetGUI version (at time of writing, the latest is v1.0.0.0-alpha.7), this release will not work with it. The most recent release of my own fork which works with UAssetGUI v1.0.0.0-alpha.7 is v2022-11-02-01.

2022-11-23-01: GUID Reporting, more tweaks, and upstream merges

Choose a tag to compare

@apocalyptech apocalyptech released this 23 Nov 17:47

The main functionality change for this release is that when the serializer encounters something marked as a GUID, it'll report that GUID in the serialization (and the graphing script will report on it as well). This can be quite useful for some hotfixing in BL3/WL, and also make it much easier to tie some bytecode references back to JohnWickParsed-serialized data.

The other functionality tweak in this release is that the graphing script will output to SVG by default, instead of PNG. (PNG can still be chosen at runtime, though.) Not all SVG renderers necessarily support the in-node indentation that I'm doing, but it's so much more useful of a format that I think it's worth the change.

The release also pulls in a bunch of updates from upstream, including some packaging/build changes.

Full Changelog:

  • When a StructConst of type /Script/CoreUObject.Guid is detected, will add an _interpreted_guid to the serialization, which will match the GUIDs seen while serializing objects with JWP, etc.
  • Default to SVG rendering in bytecode-to-dot.py, instead of PNG
  • Merged in some commits from upstream (including various packaging/building changes)
  • Report on which UAssetAPI.dll is being used, in serialize-ubergraph.py

NOTE: If you want to use my fork of UAssetAPI in conjunction with a "released" UAssetGUI version (at time of writing, the latest is v1.0.0.0-alpha.7), this release will not work with it. The most recent release of my own fork which works with UAssetGUI v1.0.0.0-alpha.7 is v2022-11-02-01.

2022-11-02-01: Some tweaks and upstream sync

Choose a tag to compare

@apocalyptech apocalyptech released this 02 Nov 17:19

Relatively minor release here -- here's the relevant Changelog entries:

  • Added --raw option to serialize-ubergraph.py to save out raw on-disk bytecode alongside serializations
  • StructExport will always include raw serialization, instead of only doing so when serialization errors occur
  • Merged in some commits from upstream
  • bytecode-to-dot.py will use angled brackets instead of square brackets to report the "main" statement bytecode index (to prevent confusion with the actually-hotfixable statements, which use square brackets)

That's all!

NOTE: As of June 28, 2023, the most recently-"released" version of UAssetGUI is v1.0.0.0-alpha.7. This is the last release of my UAssetAPI fork which works with that version -- since then, there have been some changes to the class structure which prevents my fork from working with the released UAssetGUI versions.

2022-10-25-02: Added Ancillary Scripts

Choose a tag to compare

@apocalyptech apocalyptech released this 26 Oct 04:39

Well, a second release in the same day -- glad I added the numeric suffix on the datestamp!

I'd been using a couple of Python scripts to help dig into bytecode for BL3/WL modding, along with UAssetAPI, and I realized that this repo would be a pretty appropriate place to store them. So, this release is primarily just to add those into the github, and get them bundled up into the zip. There's one script for serializing bytecode from the CLI, and another for turning those serializations into handy visual graphs, to get a better picture for what the bytecode's doing. I did also pull in a bugfix which got merged into upstream, as well.

Full changelog:

  • Added serialization and graphing scripts
  • Include README and Licenses in distributed zip
  • Checked in my own build scripts
  • Merged in a bugfix from upstream

2022-10-25-01: Initial BL3/WL Support

Choose a tag to compare

@apocalyptech apocalyptech released this 25 Oct 21:05

This is just the initial build with support for helping Borderlands 3 / Wonderlands modders deal with editing Ubergraph Bytecode literals. Apart from possibly just keeping up with upstream UAssetAPI changes over time, this is somewhat unlikely to change. As mentioned in the README, it looks like we've got the ability to hotfix these specific opcode types:

  • ByteConst
  • False
  • FloatConst
  • InstanceDelegate
  • Int64Const
  • IntConst
  • IntConstByte
  • IntOne
  • IntZero
  • NameConst
  • ObjectConst
  • RotationConst
  • TransformConst
  • True
  • UInt64Const
  • VectorConst

If it turns out that that list is in error in any way, that'd certainly be cause for another release here as well. Anyway, enjoy!