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:


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)

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.