What does the "AdditionalDependencies" field mean in .uproject Modules section?

In a .uproject file there is a Modules section which lists the project-specific modules with a source code folder under the Source folder.

Each such module definition has an AdditionalDependencies field with a list of strings.

What is the meaning of this AdditionalDependencies field? Is it a list of modules or plugins?

If modules, what does it mean for a module A to have a dependency on module B? That is, what effect does this listing have:

"Modules":[
{
  "Name":"A",
  ...
  "AdditionalDependencies":[
    "B"
  ]
},
...
]

Each module has an associated build file .Build.cs, and in it is contained a PublicDependencyModuleNames and PrivateDependencyModuleNames list.

Is the kind of module dependency declared by .uproject/AdditionalDependencies different from the kind of module dependency declared by .Build.cs/DependencyModuleNames ? If so, how?

(Crossposted https://www.reddit.com/r/unrealengine/comments/vjg6q9/what_does_additionaldependencies_in_an_unreal/ and c++ - What does AdditionalDependencies in an Unreal .uproject file mean? - Stack Overflow)

1 Like

I found this note about the field at https://docs.unrealengine.com/5.0/en-US/unreal-engine-modules/:

AdditionalDependencies (array): Specifies additional dependencies needed by the module. You should specify this in your Build.cs files instead.

So what I suspect is that the AdditionalDependencies field is some kind of evolutionary left over, and that the dependencies declared in the .Build.cs file are intended to completely replace it.

I have entirely removed the AdditionalDependencies fields from my .uproject file, and thus far have not observed any ill-effects.

Iā€™d still be curious to know the story behind it if anyone knows.

1 Like