An FxVfxFile, with the extension .vfx, is a binary file format used by Fox Engine to define node graphs which drive visual effects.
Because of the complexity of the Fx system, the format remained indecipherable for a long time, and would have remained unknown until one non-binary file was found left in the game: fx_tpp_splbrdwng01_s1.vfx, which is actually a DataSetFile2. That one file provided insight into the structure of the .vfx format. They can be unpacked and repacked with VfxTool.
A .vfx file is a directed acylic graph of Fx nodes with a single global output: an FxModuleGraph node. Each node produces different outputs, and they’re combined together to produce complex effects.
There are a wide variety of Fx nodes, although only a small number of them are currently known. More research must be done to catalog the nodes, their parameters, and what they do.
The bulk of the format is the node data, which follows the header. There is one entry for each node. The first node is always an FxModuleGraph node. For details on parameters, see the list of Fx nodes.
The parameters differ for each node class. They are listed in alphabetical order (although the names aren’t written in the file) and can be many different data types. Before each parameter is a single byte, usually 1, denoting the array size of the parameter.
The nodes are followed by the graph edges, which connect nodes together.