Skip to content

Fast Files Linker

qaate47 edited this page Mar 8, 2026 · 2 revisions

acts contains a fast file linker, on the supported games, it allows linking different kind of assets into a fastfile.

Supported games and assets

Game Linker Pools
Black Ops 4 bo4 rawfile, scriptparsetree, scriptparsetreedbg, scriptparsetreeforced, structuredtable, luafile, rawstring, scriptbundle, stringtable, image, localize, ttf, bgcache
Black Ops Cold War cw rawfile

The tool has the name fastfilelinker. The syntax is

acts fastfilelinker <path/to/file.zone>

Usage

To configure the linker, a .zone file is required. I tried to use the similar syntax as OpenAssetTools, which is close to the Black Ops 3 mod tool syntax.

We will use the example of Black Ops 4.

When a line starts by >, it means it contains a config. For the first line game is the config name and bo4 its value.

The comments are defined by // or /* ... */.

Otherwise if a line isn't blank, it is considered as an asset description with the format type,name.

Zone configs

Here base configs to use to start

demo.zone

>game=bo4              // the game to use
>name=demo             // fastfile name
>compression=zlib      // compression type, by default no compression is used

All the available are defined here:

  • game - Target game
  • name - Name of the created fast file
  • compression - Compression format, needs to be supported by the game, values:
  • compression.high - Try to compress the data as much as possible (might be slower), ignored for _hc compression. values: true, false, default: false
  • gsc.opModTool - use mod tool opcodes, default true
  • gsc.gendbg - generate script preprocessor file, default false
  • gsc.dev - generate script debug file, default false
  • gsc.noDevCallInline - do not inline the devcalls into /# #/, default false
  • gsc.devBlockAsComment - use dev blocks /# #/ as comment markers, default false
  • gsc.defs - Defines used by the gsc preprocessor, coma separated name(=value)?
  • lua.defs - Defines used by the gsc preprocessor, coma separated name(=value)?

Zone assets

To add an asset, use the type and then the name, if the asset is supported, it'll be added to the fastfile.

For example with a script.

demo.zone

scriptparsetree,scripts/core_common/acts/demo.gsc

For supported games, a ! can be added before the script name to force its loading.

demo.zone

scriptparsetree,!scripts/core_common/acts/demo_forced.gsc

Clone this wiki locally