# UnrealSpecifiers is the reference for choosing UPROPERTY meta tags, and now an agent skill

> UnrealSpecifiers is a community document that explains more than a hundred Unreal Engine 5 specifiers and over three hundred meta tags with examples, written because the official documentation lists what each one does without helping you choose between them. A newer addition is an agent skill that routes a coding agent through combination constraints before it opens the detailed reference, with a validation script and a sample Unreal project to smoke test against.

**fjz13/UnrealSpecifiers** — UE5标识符详解，包含100多个标识符以及300多个meta的解释和示例。Detailed Explanation of UE5 Identifiers, including over 100 identifiers and explanations and examples for more than 300 meta tags.

- Repository: https://github.com/fjz13/UnrealSpecifiers
- Stars: 1,063 · Forks: 160
- Language: C++
- License: NOASSERTION
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/fjz13-unrealspecifiers

## The gap is choosing, not looking up

The motivation is stated in the first person and it is a specific complaint. Unreal community members keep asking about specifiers and the use of various metas in the engine, and the author was not satisfied with how thinly the official Unreal documentation explains each identifier, so the document was compiled. It covers more than 100 specifiers and more than 300 meta tags with detailed explanations and examples, and the author says it is maintained continuously. The distinction the document is really about is between knowing what a meta does and knowing which one to use. Anyone can read that BlueprintReadOnly exists. The useful knowledge is that BlueprintReadOnly with a certain combination produces a Details panel entry that behaves in a particular way, and that some combinations silently do nothing. The audience is Unreal Engine C++ programmers writing UCLASS, USTRUCT, UENUM, UINTERFACE, UPROPERTY and UFUNCTION declarations, and the format is a set of markdown files with a directory structure and linked navigation, plus an overall table at the front for a quick overview, a PDF ebook for anyone with a slow connection, and search for anything specific.

## The document is bound to an engine version, and that matters

The metadata at the top of the README is not boilerplate. The document version is 1.1 with a revision date of 2024-10-23, and the applicable engine version is stated as UE5.4 for the documentation, with a note that the ue-specifiers agent skill has been audited and routed for UE5.8 local usage. That distinction between the two lines is the important part, because it tells you the reference text and the skill are at different engine versions and have been validated differently. The skill work described in the README is explicitly based on UE5.8 source, on the UHT, BlueprintGraph and PropertyEditor consumption paths, and on the Insider samples in the Hello project, which means the agent-facing material was checked against code and tooling rather than written from memory. The English edition carries a warning that it was translated by AI, which may lead to poor quality or incorrect information, and advises reading with caution. That is an unusual thing for a project to print about its own documentation, and it is the right thing to print, because the Chinese original is the authoritative text and the translation is a convenience.

## A skill that routes rather than dumps

The newer part of the repository is an agent skill at skills/ue-specifiers, and the design decision in it is what makes it more than a copy of the documentation inside a prompt. The stated approach is that it is not a simple copy of the document for the model, but a reorganisation of UE C++ reflection declaration practices into the routing and constraints to use first when writing code, made available to clients that support agent skills, with Codex and Claude Code named as examples. The goal was changed from query and answer to assisting a coding agent in writing UE C++ code that uses UCLASS, USTRUCT, UENUM, UINTERFACE, UPROPERTY, UFUNCTION, UPARAM and the meta tags correctly, and the guiding instruction is to prefer the smallest correct specifier and meta combination. The suggested test prompts make the intent concrete. One asks for a UActorComponent that can be added from the Blueprint Add Component panel but without an unnecessary BlueprintReadWrite. Another asks whether a UFUNCTION using CustomThunk and CustomStructureParam is missing a required thunk implementation. A third asks how to design an FDataTableRowHandle property that only allows selecting a particular row struct.

## Four index files, and the ambiguous ones have their own

The skill's file layout is the practical part. SKILL.md guides the agent on writing, modifying or reviewing UE C++ reflection declarations and tells it to choose the minimal correct combination first. references/indexes/common.index.md is a quick entry point for high frequency specifiers, generated from the original document's usage rating stars. references/indexes/constraints.index.md is the entry point for combination scenarios, covering Blueprint exposure, the Details Panel, Config, SaveGame, replication and RPC, Instanced, UMG, the type picker, Latent, CustomThunk, async actions, materials, and script and Python scenarios. references/indexes/ambiguous-symbols.index.md exists because some names carry different meanings in different contexts, and the list given is Category, BlueprintType, Config, DisplayName and Transient. And references/sources/ holds the normalised detail for each specifier and meta, with a note to look at the Decision Summary first. The stated redesign consolidated combination risks into the constraints index so an agent sees the caveat before it opens a pile of source detail, and removed the illustrations that had no bearing on using the skill.

## Validation and a real build as the test

The skill ships with a way to check itself. The tool is tools/validate.ps1, and it validates the skill indexes, the number of source documents, the internal links and the routing consistency. The expected output is given exactly:

```text
ue-specifiers validation passed.
source docs: 447
constraint rows: 65
missing internal markdown links: 0
```

Running it is two commands from the repository root:

```powershell
cd <repo-root>
.\skills\ue-specifiers\tools\validate.ps1
```

There is also a smoke test against Unreal itself. The repository provides a wrapper under bat, configured with two environment variables, the path to a UE 5.8 installation and the path to the Hello project root, and then the build script:

```bat
set UESPEC_UE_ROOT=<path-to-UE_5.8>
set UESPEC_HELLO_ROOT=<path-to-Hello-project-root>
bat\build-hello.bat
```

The README is careful about what Insider is, a collection of sample code rather than a suite of automated tests, and says it is better used to compare specific specifier and meta declarations with editor behaviour. The validation script has been run with a UE5.8 HelloEditor Win64 Development build as a smoke test.

## Installing the skill into a client

The skill is copied into the client's skills directory, and the README notes that different clients default to different locations, listing ~/.agents/skills for Codex and ~/.claude/skills for Claude Code. The copy is done with a small PowerShell block, and the suggestion afterwards is to reopen the agent session so the skills list refreshes, after which ue-specifiers should be visible and usable:

```powershell
$repoRoot = Resolve-Path .
$skillsRoot = Join-Path $HOME ".agents\skills"  # Codex
# $skillsRoot = Join-Path $HOME ".claude\skills" # Claude Code
New-Item -ItemType Directory -Force $skillsRoot | Out-Null
Copy-Item -Recurse -Force (Join-Path $repoRoot "skills\ue-specifiers") $skillsRoot
```

That is deliberately a manual copy rather than an installer, which fits a document repository that is also a sample project with a Tools directory for the PDF generation scripts, but it does mean the skill is not versioned along with your project by default. The surrounding material is documented in the same repository, with Doc/ holding the document and the main entry point at Doc/zh/Main.md, Project/ holding the sample code project with C++ and blueprint assets, and Tools/ holding the steps and scripts for producing the PDF.

## Free for study, all rights reserved, and maintained at a distance

The licence is the first thing to read. The document and the sample project are provided as open-source material for free reading and learning, all rights are reserved by the author, and nobody else is authorised to use it for commercial purposes. That is not a standard software licence, and GitHub cannot classify it, so the LICENSE file is the reference. In practice, reading it in a team and using it to write your own code is the intended use, and redistributing it or basing a commercial product on it is outside what the author granted. On maintenance, the picture is mixed. The last push was on 2026-06-07 and the repository is not archived, so work is happening, but the only tagged release is 1.1 from 2024-10-25, and the document version is still 1.1 with the 2024-10-23 revision date, while the skill has been audited against UE5.8. In other words, the reference text is a UE5.4 era document that is being maintained as a living repository rather than as a released one, with the agent skill carrying the recent work. The author is an Epic Games Unreal community manager, and the material is also presented as a talk at Unreal Fest Shanghai 2024, which is where most Unreal developers will have heard of it.

## Conclusion

UnrealSpecifiers is worth keeping open in a tab if you write Unreal C++ reflection declarations, because the part it adds over the official reference is judgment, which one meta fits which situation, and that is the knowledge usually held by one person on a team. The agent skill is the more interesting development, because routing an agent through constraints before reference material is the difference between an assistant that writes plausible reflection code and one that writes correct reflection code, and the validation script and the Hello project smoke test make it testable rather than aspirational. Before adopting the skill, run the validate script and check the numbers it reports, read the English edition with the caveat the project itself prints about AI translation, and confirm the licensing terms, since the document is free for study and learning and commercial use is reserved.

## FAQ

### What does UnrealSpecifiers cover?

More than 100 Unreal Engine 5 specifiers and more than 300 meta tags, with detailed explanations and examples. The document opens with an overall table for a quick overview, and the markdown files are organised into directories with linked navigation plus a PDF version.

### Is the English version of the UnrealSpecifiers document reliable?

The repository prints a warning that the English version was translated by AI, which may lead to poor quality or incorrect information, and advises reading with caution. The Chinese original is the authoritative text, and the document version is 1.1 with a revision date of 2024-10-23.

### What is the ue-specifiers agent skill?

A skill at skills/ue-specifiers that routes a coding agent through compact indexes, especially constraints.index.md, before opening detailed source docs, so an agent writing UE C++ reflection declarations picks the smallest correct specifier and meta combination. It can be copied into ~/.agents/skills for Codex or ~/.claude/skills for Claude Code.

### How do I verify the ue-specifiers skill files?

Run the validate script from the repository root, .\skills\ue-specifiers\tools\validate.ps1. It checks the indexes, the source document count, the internal links and the routing consistency, and the expected output reports source docs: 447, constraint rows: 65 and missing internal markdown links: 0.

## Sources

- [fjz13/UnrealSpecifiers on GitHub](https://github.com/fjz13/UnrealSpecifiers)
- [Issues](https://github.com/fjz13/UnrealSpecifiers/issues)
- [README](https://github.com/fjz13/UnrealSpecifiers/blob/main/README.md)
- [Releases](https://github.com/fjz13/UnrealSpecifiers/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/fjz13-unrealspecifiers
