
描述
Code Copyright Editor is an editor-only tool for Unreal Engine that helps you keep source-file copyright notices consistent, reviewable, and ready for professional plugin or project distribution.
Instead of manually copying header comments into every C++ file, updating old notices by hand, or hoping your project settings notice matches the actual codebase, this plugin gives you a dedicated workflow for defining notice templates, scanning your source tree, reviewing every affected file, and applying only the changes you explicitly approve.
It is designed for Unreal Engine plugin developers, marketplace/Fab publishers, technical artists, tools programmers, and teams that want cleaner source headers, safer copyright workflows, and repeatable CI checks.
What You Get
A dedicated editor window for editing copyright notice templates.
Project Settings integration for the Unreal Copyright Notice field.
A scanner for source files under configured project or plugin folders.
Review results with status badges, previews, and selectable apply targets.
Per-file information and descriptions rendered into file headers.
Protection for foreign, Epic, and third-party notices.
A commandlet for CI checks and automated reporting.
JSON, SPDX-style, and REUSE-style report output.
Example scripts and a GitHub Actions starter workflow.
The plugin does not add runtime gameplay code and is intended for editor and pipeline use.
🔹 Key Features
Template-driven copyright notices
Define reusable notice templates for source files and Project Settings.
Supported tokens include:
* {CopyrightText}
* {OwnerName}
* {ContactEmail}
* {ProductName}
* {ModuleName}
* {FileName}
* {RelativeFilePath}
* {Year}
* {LicenseName}
* {LicenseUrl}
* {LicenseIdentifier}
* {FileInformation}
* {FileDescription}
* {FileMetadataBlock}
This makes it easy to create notices that adapt to each file, plugin, module, and product.
🔹Dedicated editor UI
Open the tool from the editor menu and work through a clear workflow:
Template → Scan → Review → Apply
The editor window provides:
* Large multiline template editors
* Live preview of generated notices
* Source-file scan results
* Status badges for each file
* Safe file selection before applying changes
* Per-file metadata editing
* JSON export for scan results
🔹Project Settings integration
The plugin can also update the Unreal Engine Project Settings copyright notice, so the global project notice and the actual source headers can stay aligned.
Per-file information and descriptions
For files that need additional context, you can store individual metadata per file.
🔹Example uses:
* Describe what a specific source file does
* Add module-specific information
* Mark generated/editor-only/utility files
* Include file-level documentation directly in the notice block
The metadata can be rendered automatically through {FileMetadataBlock}.
🔹Codebase scanner with safe review
Scan configured folders such as Source and Plugins without writing anything.
The tool classifies files as:
* OK – already matches the rendered template
* MISSING – no compatible notice found
* REPLACE – own notice can be replaced
* PROTECTED – foreign or third-party notice detected
* CONFLICT – needs manual review
* READ/WRITE ERROR – file access problem
Protected and conflict files are not rewritten automatically.
🔹Third-party notice protection
Code Copyright Editor is designed to avoid accidentally overwriting notices from Epic, third-party libraries, or external code.
You can configure:
* Own notice markers
* Protected notice markers
* Excluded paths
* Excluded file patterns
* Exact files to ignore
This is especially useful for plugin projects that contain ThirdParty folders or generated files.
🔹Commandlet / CI support
The plugin includes a headless commandlet for automated checks:
UnrealEditor-Cmd.exe <Project>.uproject -run=CodeCopyrightCheck
Useful options include:
* -Fix
* -ReportDir=<Path>
* -FailOnProtected
* -NoJson
* -NoSpdx
* -NoReuse
* -NoFail
This allows teams to run copyright checks in CI and fail the build when notices are missing, outdated, conflicting, or unreadable.
🔹REUSE/SPDX-oriented reports
The commandlet can generate multiple report formats:
* CodeCopyrightReport.json
* CodeCopyrightReport.spdx
The SPDX report includes file entries, license expressions, status comments, and SHA1 file checksums.
The Markdown report gives a human-readable summary for pull requests, releases, and compliance review.
🔹 Typical Use Cases
* Preparing Unreal Engine plugins for Fab distribution
* Keeping C++ headers consistent across multiple plugins
* Updating old copyright notices after a new year or license change
* Adding SPDX-License-Identifier and SPDX-FileCopyrightText tags
* Reviewing large codebases before release
* Preventing accidental rewrites of third-party notices
* Running automated copyright checks in CI
* Producing internal compliance/review reports
🔹 Included Content
* CodeCopyrightEditor plugin
* Editor window for template editing, scanning, review, and apply workflow
* Project Settings integration
* Source-file notice rendering service
* Per-file metadata support
* CodeCopyrightCheck commandlet
* JSON report export
* SPDX Tag/Value style report export
* REUSE-oriented Markdown report
* Example CI workflow file
* PowerShell and shell helper scripts
* Documentation with UI and CI screenshots
🔹 Requirements & Compatibility
* Engine: Unreal Engine 5.x
* Tested with: Unreal Engine 5.4+
* Platforms: Editor-only tool
* Code: C++ plugin with Slate UI and commandlet support
* Runtime impact: No runtime gameplay dependency intended
🔹 Notes
This tool helps standardize and audit copyright notices, SPDX identifiers, and project-level notice workflows. It is not a substitute for legal advice, but it gives teams a much cleaner technical foundation for source-header consistency and release preparation.
🔹 Support
If you encounter issues or have ideas for improvements, feel free to reach out via the Fab support section.
Feedback from Unreal Engine plugin developers, tools programmers, technical artists, and teams preparing Fab releases is especially welcome.
🔹 Discord Support Channel







