Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding UE4 plugin to the marketplace #37

Open
3 of 35 tasks
nielslanting opened this issue Sep 2, 2019 · 0 comments
Open
3 of 35 tasks

Adding UE4 plugin to the marketplace #37

nielslanting opened this issue Sep 2, 2019 · 0 comments

Comments

@nielslanting
Copy link
Collaborator

nielslanting commented Sep 2, 2019

To get the plugin into the marketplace we need to meet certain guidelines.
Here are some important ones we need to keep in mind:

  • 1.2.2.c Publishers are strongly encouraged to include a video URL in the Long Description for Blueprints or animated products. The video should be a Featurette/Example video like a commercial for the product, displaying its functionality, and should typically be no longer than 1 or 2 minutes.

  • 1.4.1.a Project Versions must have a Project File Link that navigates to a hosting site (such as GoogleDrive/Dropbox/OneDrive/etc.) at which the product’s files can be downloaded by Epic.

  • 1.4.1.b Project File Links must host the download of a zip archive containing only one Unreal Engine project or plugin folder for as long as it takes Epic to generate a build for those distributable files. The hosted project or plugin must be built in the same engine version as the earliest Supported Engine Version of that Project Version.

  • 1.4.2.a Publishers are responsible for assisting customers who experience issues using their product in a Supported Engine Version.

  • 1.4.2.b Upon initial submission and approval, every product must contain a Project Version that has the latest version of Unreal Engine as a Supported Engine Version.

  • 1.4.2.c Code Plugin products must have a Project Version for every different Supported Engine Version, each with different Project File Links that host different overarching plugin folders, even if they are duplicates with just different values in the “EngineVersion” key of their .uplugin descriptors.

  • 1.4.5.a Publishers must declare whether or not their product includes, uses, depends on, or distributes Third Party Software of any kind. Third Party Software means any and all files, including, but not limited to, fonts, graphics, sounds, APIs, content, source code, or compiled libraries, from sources other than the publisher or Epic Games.

  • 2.1.a Upon initial submission and approval, Epic will review products to ensure they function in the latest major engine version as advertised.

  • 2.1.b Unused plugin dependencies of content-only projects must have a value of False for their corresponding “Enabled” key in the .uproject descriptor.

  • 2.1.g Projects must have their redirectors cleaned up.

  • 2.1.h Content must function in binary builds of the Unreal Engine downloaded from the Epic Games Launcher. While products may provide extra functionality to customers using source-built versions of the Unreal Engine, they must not fully depend on the customer building the Unreal Engine from source to use them.

  • 2.2.c Products must not contain any copyrighted or trademarked names, branding, designs, materials, or content not owned by or adequately licensed to the publisher.

  • 2.2.e Products must function independently of any third party software not declared in this form.

  • 2.2.f Products must not use third party software licensed under GPL, LGPL, EPL, or MSPL.

  • 2.2.g Products distributed through the Marketplace are licensed only under the Unreal Engine EULA, which is not superseded by custom licenses publishers include in their products’ distributed files.

  • 2.6.1.a .uplugin descriptors must have an “EngineVersion” key present whose value dictates the major engine version (e.g. 4.x.0) the plugin is intended to be installed to. For instance, if the plugin is meant for Unreal Engine version 4.17:
    "EngineVersion" : "4.17.0",

  • 2.6.1.b .uplugin descriptors must have an “WhitelistPlatforms” or “BlacklistPlatforms” key in each module to specify compilation for the appropriate platforms that the module is intended to be built for with something similar to:
    "WhitelistPlatforms": [ "Win64", "Win32", "Mac", "IOS", "Android" ]

  • 2.6.1.c .uplugin descriptors must have a “MarketplaceURL” key present whose value dictates the Epic Games Launcher address at which the engine will download missing plugins if customers try to open projects that depend on them. After the product has been submitted for approval, the “MarketplaceURL” value should contain the ID at the end of the product’s Publisher Portal URL. For instance, if a publisher finds their Code Plugin product to have a URL of https://publish.unrealengine.com/v2/edit-product/[REDACTED], the following key and value should exist in the .uplugin:
    "MarketplaceURL" : "com.epicgames.launcher://ue/marketplace/content/[REDACTED]",

  • 2.6.1.d Plugins can depend on Unreal Engine plugins distributed with the engine, but must not depend on other user-made Unreal Engine plugins.

  • 2.6.2.a Any source code which requires Unreal Engine source code to compile must be included in the zipped up plugin folder. It's only acceptable to include externally compiled code which does not include or reference any Unreal Engine source code in a static library and/or DLLs (the folders that they're contained in must be added to the FilterPlugin.ini). Many customers build the engine from source, and they should be able to continue using Marketplace plugins by compiling them against a modified version of the engine.

  • 2.6.2.b All source and header files must contain a commented copyright notice (not the auto-generated Epic Games text) notating the publisher’s name or company name as well as year of intended publishing.

  • 2.6.3.a Code plugins must generate no errors or consequential warnings.

  • 2.6.3.b Plugins will be distributed with the binaries built by Epic’s compilation toolchain, so publishers must ensure that final debugging has been completed by clicking "Package..." on their plugin in the Plugins windows of the editor to test compilation before sending in a new plugin version. Publishers can also run this command from installed binary builds of each Unreal Engine version they’d like to compile their plugin for:
    Engine\Build\BatchFiles\RunUAT.bat BuildPlugin -Plugin=[Path to .uplugin file, must be outside engine directory] -Package=[Output directory] -Rocket

  • 2.6.3.c Plugins being built against engine versions 4.18 onward will be ensured to be IWYU compatible. Publishers can add the following to the plugin’s .build.cs files to enable IWYU:
    PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

  • 2.6.3.e Plugins being built against engine versions 4.20 onward that need to include files from their own plugin directory must add those include paths using the ModuleDirectory property in their .build.cs. If
    using System.IO;
    exists at the top of the .build.cs, Publishers can use the following syntax where "MyFolder" is the name of the directory under the current module they'd like to include:
    PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "MyFolder"));

  • 2.6.4.a All plugins purchased and imported from the Epic Games Launcher will be installed as an engine plugin (to "\Epic Games\4.x\Engine\Plugins\Marketplace"), not a project plugin, so publishers are strongly encouraged to create an Example Project to be used in conjunction with the plugin to display its functionality to new customers.

  • 2.6.4.b Publishers opting to distribute example projects for their Code Plugins should add a link to their Technical Information, beside the specification “Example Project:“, that navigates to a hosting site (such as Google Drive/Dropbox/OneDrive/etc.) at which the example project can be downloaded.

  • 2.6.4.c Example projects should have .uproject descriptors that depend on products’ plugins, but should not contain the actual plugins, as customers should only be installing those from the Epic Games Launcher.

  • 2.7.3.a Plugin folders must not contain unused folders or local folders (such as Binaries, Build, Intermediate or Saved), so for a plugin that might be called "MyPlugin", this leaves the following files and folders to be zipped up for submission:
    MyPlugin
    ├── Config
    ├── Content
    ├── Resources
    ├── Source
    │ ├── MyModule
    │ │ ├── Private
    │ │ ├── Public
    │ │ └── MyModule.build.cs
    │ └── ThirdParty
    ├── MyPlugin.uplugin

  • 2.7.3.b For folders in the overarching plugin folder meant for distribution besides the Content, Resources, or Source folders (like Docs folders), there must exist a Config folder in which there is a "FilterPlugin.ini" that contains something similar to:
    [FilterPlugin]
    /Docs/...
    /MyOtherFolder/...

  • 2.7.3.c Starting with the overarching plugin folder (the one containing the Source folder and .uplugin file), all file paths must be 200 characters or less.

  • 2.7.3.d Third party dependencies may only be used with proof of permission and must be placed in a ThirdParty folder located inside the Source folder.

  • 2.9.a Products that require particular knowledge of how to set up or use must contain, distribute, or direct customers to free documentation that covers implementation, application and/or modification of the associated products.

  • 2.9.b Documentation should take the form of web-based guides, txt/pdf files, code/Blueprint comments, videos, or in-editor tutorial Blueprint assets.

  • 2.9.c Documentation must be in English, but publishers may include translated versions of their documentation as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant