CARVIEW |
Select Language
HTTP/2 200
date: Sun, 24 Aug 2025 20:44:17 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"56f5c835aacfdc62a3e62e10f353882f"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=ecLmku%2Fl3oXLCDnWYmXy3m8iD0gkgXP0B5fECNrHsN%2F7F6G8mgNzAPc2Cuw8NRtwSKLoma5rGtyxOyHw2hPfYJwjzmSupt3Rdo3B2zD%2F024yhiDH%2BIpaQ3lVH6ch79T6wTFgleLzWzEm94cqNEle%2FjZF0H6tEkZYJs4rN2QPaPHx9Etcfk%2FcUEsNLDb1sHslDLWvNvw6M0Npt%2FEq6gPQBYSAP7HOx8DBXDxVVBVWS2cCnrnOkhM%2FCAutyk%2BR%2BXKHFaI9isbzRgCc3vMLTpAcWw%3D%3D--Byav6GWIV89RXlFw--5KhRjCgEnItehEVsc8zKAw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1443305549.1756068257; Path=/; Domain=github.com; Expires=Mon, 24 Aug 2026 20:44:17 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Mon, 24 Aug 2026 20:44:17 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: A0D6:1CEFBF:11F466C:1785947:68AB79A1
Examples · jwindgassen/UnrealYAML Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 14
Examples
Jonathan Windgassen edited this page Feb 2, 2023
·
3 revisions
The UnrealYAML Plugin largely follows the syntax of the yaml-cpp library it is based on. Its documentation can be found here.
Below are some more examples, that show the basic functionality for C++ and Blueprints.
Here, we will create some simple YAML File using UnrealYAML
FYamlNode Node; // Create an empty Node
// Add Attributes by using the subscript operator
// It will automatically convert from and to various types.
Node["message"] = "Hello, World!";
Node["answer"] = 42;
Node["origin"] = FVector(1, 2, 3); // Accepts Unreal Types
// Create arrays using a TArray or by pushing
FYamlNode Fibonacci(TArray<int32>({0, 1, 1, 2, 3, 5}));
Fibonacci.Push(13);
Fibonacci.Push("The End!");
Fibonacci.SetStyle(EYamlEmitterStyle::Flow);
Node["fibonacci"] = Fibonacci;
// Accessing and comparing types
check(Node.Type() == EYamlNodeType::Map)
check(Node["fibonacci"].IsSequence())
// Write to file
UYamlParsing::WriteYamlToFile(FPaths::ProjectDir() + "example1.yml", Node);
message: Hello, World!
answer: 42
origin: [1, 2, 3]
fibonacci: [0, 1, 1, 2, 3, 5, 13, The End!]
Reading in the file created above, we can read and convert the contents:
FYamlNode Node;
UYamlParsing::LoadYamlFromFile(FPaths::ProjectDir() + "example1.yml", Node); // Load and Parse from file
// Accessing and converting an attribute
FString Message = Node["message"].As<FString>();
int32 Answer = Node["answer"].As<int32>();
FVector Origin = Node["origin"].As<FVector>(FVector::ForwardVector); // User ForwardVector if the conversion is not possible
// Iterate over Fibonacci's
int32 Sum = 0;
for (const auto& Fib : Node["fibonacci"]) {
Sum += Fib.As<int32>(0); // "The End!" cannot be converted, so 0 will be used
}
UE_LOG(LogTemp, Log, TEXT("%d"), Sum)
Note: UnrealYAML does not support converting Nodes of type Sequence to an Array of Nodes yet. We use conversion to an Integer Array here instead.
Using the Reflection System that Unreal provides, we can automatically parse the following file:
Name: This is a String
Transform: [[1, 2, 3], [90, -180, 0], [5, 5, 5]]
SomeNumbers: [2, 3, 5, 7, 11, 13, 17, 19]
Substruct:
Vector: [1, -1, 0]
Flags:
- Flag1
- This is another Flag
- Even More
into an instance of the following struct:
USTRUCT(BlueprintType)
struct FExampleSubstruct {
GENERATED_BODY()
UPROPERTY(BlueprintReadWrite)
FVector Vector;
UPROPERTY(BlueprintReadWrite)
TArray<FString> Properties;
};
USTRUCT(BlueprintType)
struct FExampleStruct {
GENERATED_BODY()
UPROPERTY(BlueprintReadWrite)
FString Name;
UPROPERTY(BlueprintReadWrite)
FTransform ComplexProperty;
UPROPERTY(BlueprintReadWrite)
TArray<int32> SomeNumbers;
UPROPERTY(BlueprintReadWrite)
FExampleSubstruct Substruct;
};
FYamlNode Node;
UYamlParsing::LoadYamlFromFile(FPaths::ProjectDir() + "example2.yml", Node); // Load and Parse from file
FExampleStruct Struct;
ParseNodeIntoStruct(Node, Struct);
UE_LOG(LogTemp, Log, TEXT("%s"), *Struct.Substruct.Flags[2])
- This does (currently) not work with Structs defined in Blueprints. Unreal will mangle the property names.
- The Blueprint Node will modify the passed Struct. You cannot use a simple
Make <Struct>
Node as the input, as the changes can't be accessed again. Use a local variable instead.
Clone this wiki locally
You can’t perform that action at this time.