Writing guide — the standard every page must meet¶
This wiki exists because the official reference answers "what is this node called?" and stops. Our pages exist to answer everything after that. This page is the contract.
Every API page must answer six questions¶
- What does it actually do? In terms of real engine objects and the relationships between them — never a restatement of the name. "Try Get Pawn Owner: tries to get the pawn owner" is the failure mode we exist to fix.
- What exactly do I get back? Including the difference between the pin's
declared type and what the object really is at runtime (e.g. a pin typed
Pawnwill happily carry yourCharacter— see the class hierarchy). - Can it fail? When, why, and what failure looks like:
None? An empty array? A log warning? Silence? If the name starts withTry,Get, orFind, this section is mandatory. - What does it not do? Side effects, or the absence of them. Does failure run any code? Does it log? Does it cache? Does it cost anything to call every frame?
- When do I use it — and when do I use the lookalike instead? Most confusion comes from five similarly-named nodes. Name the lookalikes and give the rule of thumb.
- Where do I go deeper? Link the relevant concept pages, and point at the engine source location (file path + function name) so readers with the engine installed can see the truth themselves.
Page template¶
# <Node / Function Name>
<At-a-glance box: class it lives on, what it returns, can it be None, link to
the official page.>
## The one-minute version
<Bullet answers to the questions a beginner actually has. Write these first —
imagine the confused Discord message, and answer it.>
## What it actually does
<Plain-English walkthrough of the real behavior, plus labeled pseudocode.>
## When it fails (and what failure does)
## The pattern everyone actually uses
## Lookalikes — which one do I want?
## Going deeper
Style rules¶
- Write for month one. Expand every acronym on first use. Never assume the reader knows what a controller, an anim instance, or possession is — link it.
- Answer the Discord message. The best pages start from a real confused question. Quote it (anonymized) if you have one; answer it point by point.
- Blueprint first, C++ alongside. Beginners live in Blueprint. Show the Blueprint pattern as the primary path, with the C++ equivalent in a short labeled block for those who want it.
- State the None-behavior of everything. Unreal has no exceptions in gameplay code. Every "can this be empty/None?" left unstated is a future bug in a reader's project.
- Diagrams over paragraphs for relationships (hierarchy, ownership chains). Mermaid diagrams render in the site build.
Content rules (legal)¶
- Never copy Epic's prose. Describing engine behavior factually is fine; reusing their sentences is not.
- Never paste engine source. Engine code is under the Unreal Engine EULA.
Paraphrase, write labeled pseudocode, and cite the path (e.g.
Engine/Source/Runtime/Engine/Private/Animation/AnimInstance.cpp) so licensed readers can look it up. - Your own example code is yours. Original snippets showing usage are encouraged.