Skip to main content
Docs: template-unreal

Licensing and Author Metadata

Every generated plugin includes standardized licensing and copyright information. You can also inject your own author metadata into the generated .uplugin descriptors and LICENSE files.

License Files

Each generated plugin gets a LICENSE file at its root containing the full MIT license text:

MIT License

Copyright (c) 2020-2021 ApiGear UG (haftungsbeschraenkt)
Copyright (c) 2021-2026 Epic Games Inc. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
...

The ApiGear shared plugin (Plugins/ApiGear/) also receives a LICENSE file.

SPDX Headers

All generated source files include SPDX license identifiers instead of inline license blocks:

// SPDX-FileCopyrightText: Copyright ApiGear UG and Epic Games, Inc.
// SPDX-License-Identifier: MIT

Auto-generated files (those regenerated on every run) also include a warning:

// SPDX-FileCopyrightText: Copyright ApiGear UG and Epic Games, Inc.
// SPDX-License-Identifier: MIT
// This file has been generated by the ApiGear Code Generator.
// Do not edit. Changes will be lost when the code is re-generated.

User-editable files (stubs, test fixtures marked with preserve: true) get the SPDX header only, with no "do not edit" warning.

note

Third-party libraries bundled in the ApiGear plugin (OLinkProtocolLibrary, nlohmann/json) retain their original license headers.

Author Metadata

Use the meta field to set author information that appears in .uplugin descriptors and LICENSE files.

Setting Author Info

Specify author and author_url in your solution or module YAML files.

In the solution file (applies to all modules):

helloworld.solution.yaml
schema: apigear.solution/1.0
targets:
- name: ue_docs
output: ../ue_docs/Plugins
template: apigear-io/template-unreal
features:
- all
inputs:
- helloworld.module.yaml
meta:
author: "Acme Corp"
author_url: "https://acme.com"

In a module file (per-module override):

helloworld.module.yaml
schema: apigear.module/1.0
name: io.world
version: "1.0.0"
meta:
author: "Acme Corp"
author_url: "https://acme.com"

interfaces:
- name: Hello
# ...

Priority

Module-level meta takes priority over solution-level meta. This lets you set a default author in the solution file and override it for specific modules when needed.

Generated Output

When author metadata is set, it populates two locations:

.uplugin descriptor -- the CreatedBy and CreatedByURL fields:

IoWorld.uplugin
{
"FileVersion": 3,
"FriendlyName": "IoWorld",
"CreatedBy": "Acme Corp",
"CreatedByURL": "https://acme.com",
...
}

LICENSE file -- an additional copyright line:

MIT License

Copyright (c) 2020-2021 ApiGear UG (haftungsbeschraenkt)
Copyright (c) 2021-2026 Epic Games Inc. All rights reserved.
Copyright (c) Acme Corp. All rights reserved.

Permission is hereby granted ...

When no meta is specified, CreatedBy and CreatedByURL are empty strings and no extra copyright line appears. This is the default behavior and is fully backward compatible.

Meta Field Reference

KeyTypeDescription
authorstringAuthor or organization name. Populates .uplugin CreatedBy and LICENSE copyright.
author_urlstringAuthor website URL. Populates .uplugin CreatedByURL.