Third Party Libraries

To add a third party library to your mod, you must add it as a module under your UPlugin.

Module Definition

You must first create a directory structure that follows this example: Plugins/<mod_reference>/Source/ThirdParty/<third_party>Library/ and place a file named after that library in the directory called <third_party>Library.Build.cs

The file must contain a class named after the module, and references to any include paths and library paths.

Here is an example where all source files are placed in inc and compiled libraries (.lib) are placed in x64/Release:

using System.IO;
using UnrealBuildTool;

public class <third_party>Library : ModuleRules
    public <third_party>Library(ReadOnlyTargetRules Target) : base(Target)
        Type = ModuleType.External;
        PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "inc"));
        PublicLibraryPaths.Add(Path.Combine(ModuleDirectory, "x64", "Release"));

Module Usage

After you have defined the third party module, you need to reference it in your plugins base modules <mod_reference>Library.Build.cs file as a public dependency.

PublicDependencyModuleNames.AddRange(new string[] {"<third_party>Library"});

Import Errors

Unreal Engine has stricter standards about what warnings are treated as errors, but some libraries ignore those warnings as they are non-critical to their use case.

In those cases, you need to wrap any imports from that library in several layers of compatibility macros and headers.

#include "Windows/WindowsHWrapper.h"
#include "Windows/AllowWindowsPlatformTypes.h"
#include "Windows/AllowWindowsPlatformAtomics.h"


#pragma push_macro("check")
#undef check


#pragma pop_macro("check")


#include "Windows/HideWindowsPlatformAtomics.h"
#include "Windows/HideWindowsPlatformTypes.h"

If even after wrapping the imports you are getting errors from compiling the library, you will need to fix those errors and recompile the library.