Submission to the Marketplace

Since the data send/receive plugin ObjectDeliverer I am currently creating for Unreal Engine is aimed for submission to the Marketplace, I tried packaging it once.

How To

Packaging a UE4 project can be done from the Editor, so I know how to do that, but I had never packaged a Plugin before and wasn’t sure how to do it, so I searched.

How To Package Plugins For UE4 Marketplace - Epic Wiki

I found a page that was exactly what I was looking for, so I basically followed its instructions.

Describing WhitelistPlatforms

It seems necessary to describe which platforms the package is for in the .uplugin file. Since ObjectDeliverer has currently only been confirmed on Windows, this time I limited it to Win64 and Win32 only.

{
  "FileVersion": 3,
  "Version": 1,
  "VersionName": "1.0.0",
  "FriendlyName": "ObjectDeliverer",
  "Description": "ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint). ",
  "Category": "Programming",
  "CreatedBy": "ayumax",
  "CreatedByURL": "https://github.com/ayumax",
  "DocsURL": "",
  "MarketplaceURL": "",
  "SupportURL": "https://github.com/ayumax/ObjectDeliverer",
  "EnabledByDefault": false,
  "CanContainContent": false,
  "IsBetaVersion": false,
  "Installed": false,
  "Modules": [
    {
      "Name": "ObjectDeliverer",
      "Type": "Runtime",
      "LoadingPhase": "Default",
      "WhitelistPlatforms": [
        "Win64",
        "Win32"
      ]
    }
  ]
}

Creating the Build Batch File

Following the instructions, I created a build batch file. I saved a file with the following content as buildPlugin.bat.

Following the explanation page, instead of the folder where the Plugin’s .uproject is located, I created an empty build folder elsewhere and placed buildPlugin.bat there.

"C:\Program Files\Epic Games\UE_4.21\Engine\Build\BatchFiles\RunUAT.bat" BuildPlugin -Plugin="C:\source\repos\ObjectDelivererTest\Plugins\ObjectDeliverer\ObjectDeliverer.uplugin" -Package="%CD%\PluginStaging_ALL\UE4_421" -Rocket

Running the Batch File

In the folder where the batch file was placed, hold down the left Shift key while right-clicking, select “Open PowerShell window here” to open a PowerShell console, and execute by typing .buildPlugin.bat.

Crushing Errors

During development, I had always launched and checked with DebugGame Editor, so I hadn’t built for Shipping. Probably because of that, there were many places where the description was lax, and build errors occurred frequently…

Most of the errors were in places where includes were written abbreviatedly.

For example, writing #include "TcpSocketBuilder.h" where #include "Common/TcpSocketBuilder.h" should have been written.

Since most were of the above pattern, I rechecked and corrected the includes in all C++ sources.

After Execution

If there were no errors during the build, waiting until it finished resulted in the PluginStaging_ALL\UE4_421 folder being generated in the folder where the batch file was placed, containing the complete Plugin set.

Summary

Referring to the page with the procedure, I succeeded in creating a package for my custom plugin.

Now, I need to think about the description for Marketplace submission, and what seems subtly troublesome is preparing the images for submission. This is similar for other app stores…

I need to make it properly so it doesn’t fail the review.