Jump to content

Fallout 4 MODDERS - BGSCodeObj: Type and Number of Function Arguments?


doublesnark

Recommended Posts

Hello Friends,

 

I'm doing some development at the moment with Scaleform in Fallout 4. It appears to me that Bethesda used either Scaleform 4.2 or Scaleform 4.4 which I was able to obtain the partial source code for.

 

As people familiar with this topic will know, Bethesda used 2 different interfaces to communicate between the game engine(seems to be Havok?) and Scaleform itself. These two interfaces are:

 

BGSExternalInterface.call(<function name here>, <arguments here)

 

and a direct use of what Scaleform referes to as "Function Objects", which are essentially the Scaleform Actionscript VM exposing the external program(in this case the game engine) directly. I believe the well-known BGSCodeObj is a use of this technique to expose internal engine calls.

 

My question is for people who have done the reversing and mod development for Scaleform apps in Fallout 4:

 

Other than simply decompiling the interfaces and looking examples of how BGSCodeObj functions are used, how are you able to determine the number and type of arguments for each call? I have done some reversing and see a large number of functions available. This screenshot is only a fraction:

 

e65zyHI.png

 

If I can figure out the type and number of arguments to call these functions from, I believe we may be able to greatly enhance our abilities as modders. I can simply continue reverse engineering fallout 4 and figure it out myself, but this will take time and I'm wondering if anybody already has answers to this question.

 

Thank you,

Snark

Link to comment
Share on other sites

Thanks HeyYou, after some more time in front of ghidra I have found the location of many of these functions. I've not found all yet but I'm on my way! I will update this thread at a later date with a detailed mapping of every function FO4 exposes to Scaleform.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...