Setting Up the Unreal SDK #

This tutorial can be run against either a new Unreal C++ project or a preexisting one. It has been tested against Unreal Engine 4.26.


Create a new project (optional)
  1. Launch Unreal Engine 4 from the Epic Games Launcher.

  2. From the Select or Create New Project window in the Unreal Project Browser, choose Games and click Next.

  3. For the Select Template step, choose Blank and click Next.

  4. For the Project Settings step, choose C++. Name the project PragmaIntegration, then click Create Project.

Prepare the Unreal plugin #

  1. Create a Plugins folder in the root of your Unreal project using File Explorer.

  2. Copy pragma-engine/sdk/unreal4/update-pragma-sdk.sh to the Plugins folder you just created.

  3. Open the update-pragma-sdk.sh script and modify as follows:

  • Uncomment SOURCE_ENGINE_RELATIVE_FOLDER.

  • Change the value of SOURCE_ENGINE_RELATIVE_FOLDER to point to your Pragma Engine repo.

  • Uncomment TARGET_PRAGMA_SDK_DIR.

  • Change the path to PragmaSDK.

  1. Run update-pragma-sdk.sh in Git Bash from the directory where you copied the script. Confirm that the PragmaSDK folder now exists in your Plugins directory.

  2. Open your Unreal Project’s Config/DefaultGame.ini and add the following configuration information to the bottom:

    [/Script/PragmaSDK.PragmaSdkConfig]
    BackendAddress="http://127.0.0.1:10000"
    

    Game servers need to need to connect to the partner (10100) port over HTTP.

    [/Script/PragmaSDK.PragmaSdkConfig]
    BackendAddress="http://127.0.0.1:10100"
    ProtocolType="Http"
    
    • (Optional) Add the following to Config/DefaultEngine.ini to enable logs for every inbound and outbound RPC with payloads.
      [Core.Log]
      LogPragma=Verbose
      
  3. Open Source/[Project Name]/[Project Name].Build.cs and add PragmaSDK to the PublicDependencyModuleNames array:

    PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "PragmaSDK", "PragmaSDKAux" });