Undocumented build graph properties

Hi,

I’ve been working on writing build graph for our project and I have some questions regarding hidden/undocumented properties in build graph.

I have found $(Branch), $(EscapedBranch), $(CodeChange) and $(Change), but is there any actual way of figuring our what properties we have to work with?

There are people online talking about the <StringOp …> node that also can be used but is not documented.

These have been super useful so it would be nice to know all the properties that are built in.

Is there any plan of documenting these so that it’s more convienient to learn and use?

Best regards,

Olle

Olle,

I can’t speak to plans to document them, but I can at least point you to BgScriptReader.cs as the location where you can find the code that referrences all of the BuildGraph nodes, including the ones that aren’t documented.

The “built-in” variables that are setup are setup in BuildGraph.cs in the ExecuteAsync() function.

You’re right, these should be documented better. Tracked internally as UE-371370.

Hi Eric,

Thanks for pointing me in the right direction.
I guess I will have to read the source code to get hold of all the properties.

Thank you

Den tirs. 27. jan. 2026 kl. 16.38 skrev Epic Pro Support Community <
[Content removed]>:

Unfortunately, BgScriptReader does not appear to be scanned as part of the automatic documentation process, like all the *Task.cs files, particularly in Engine\Source\Programs\AutomationTool\BuildGraph\… but that entire tree is very good reading for finding features that aren’t obvious!

… oh, just found the “Contains” and “ContainsItem” conditions hiding over in BgCondition.cs .. that’s fun :slight_smile: There’s also the mostly undocumented Macro functionality that is really nice to use too, you can search around in Epic’s buildgraphs for <Macro, <Expand, and <Extend to see some examples of how that works