RekognitionGuard
Moderate player images - avatars, sprays, screenshots, user-generated content - with Amazon Rekognition from Blueprints and C++: one node to an Allowed / Review / Blockeβ¦
Highlights
All 12 features βRekognitionGuard keeps unsafe player content out of your game. Give it a texture, a render target, a screenshot, a file, image bytes or an object in Amazon S3, and it answers with On Allowed, On Review or On Blocked - with the labels that decided it. The image it returns is exactly what was checked, already encoded as JPEG and under the 5 MB limit, ready to upload.
Moderation policies describe what your game accepts: rules per Rekognition category (Explicit, Violence, Weapons, Drugs & Tobacco, Hate Symbols, Swimwear and more) with thresholds and an action - Ignore, Review or Block. The most specific rule wins, so "Weapons: Review" can relax "Violence: Block" for a shooter while graphic violence stays blocked. Start from the All Ages, Teen or Mature preset, treat drawings and sprays more leniently, combine the verdicts of several images and judge whole videos with timestamps of the offending frames.
Images come from anywhere: Moderate Texture reads editor source art, CPU-readable runtime textures and - drawn through a temporary render target - compressed and streamed textures. Render targets are read on the game thread and encoded on a worker. Screenshots are taken in memory without writing a file. Files in any format the engine decodes are converted and downscaled automatically.
The same plugin brings the rest of Rekognition to Blueprints: Detect Labels with boxes, dominant colours and image quality; Detect Text for words in sprays and signs; Detect Faces with age range, emotions, eyes open and sunglasses, and Check Profile Photo for avatar rules; Compare Faces; Detect Protective Equipment; Recognize Celebrities to stop impersonation. Face collections and users find duplicate accounts and banned players, and stored-video jobs moderate uploaded clips with Wait For nodes that poll and collect every page.
Players get credentials from an Amazon Cognito identity pool, as guests or signed in through Set Login Token. Static keys and the default AWS credential chain are available for development, dedicated servers and tools. Requests and image encoding run on background worker threads with automatic retries, and every result arrives on the game thread.
RekognitionGuard is part of the Alpha XP AWS collection for Unreal Engine 4.27 and 5.8. It includes the AWS SDK for C++ prebuilt for Win64, Linux and Android and ships with styled HTML documentation.
Key features
- Is Image Safe, Moderate Texture, Moderate Render Target, Moderate Screenshot: On
- Moderation policies with category rules and thresholds, All Ages / Teen / Mature
- Evaluate Moderation, Evaluate Video Moderation, Combine Verdicts, Verdict To Text,
- Image input from bytes, files, UTexture2D (also compressed / streamed), render
- JPEG encoding with the engine ImageWrapper and automatic downscaling under the 5 MB limit
- Detect Labels (boxes, dominant colours, image quality, filters), Detect Text, Detect
- Detect Protective Equipment, Recognize Celebrities, Get Celebrity Info
- Check Profile Photo, Count Objects, Find Label, Get Text Lines, Bounding Box To Pixels
- Face collections and users: create, describe, list, index, search, delete, associate
- Stored video: content moderation and label detection jobs with Wait For nodes
- Amazon Cognito identity pools, static keys and the default AWS credential chain
- 75 Blueprint nodes, cancellable latent nodes, results on the game thread
Blueprint & C++ API
Every call is reachable from more than one place β pick the entry point that fits your project:
| Class | Type | Nodes | Use it for |
|---|---|---|---|
| RekognitionGuardLibrary | Function library | 24 | Configuration, identity, image and vision helpers for RekognitionGuard. |
| RekognitionGuardModerationLibrary | Function library | 10 | UGC moderation policies and verdicts: local, instant, no AWS call. |
| Async action nodes | Latent Blueprint nodes | 2 | Latent node with success / failure output pins. |
Callable runs when executed Β· Pure no exec pin, returns a value Β· LatentAsync finishes later and fires its outputs
RekognitionGuard 2
| Node | Type | Available on | Description |
|---|---|---|---|
| Cancel | Async | Async | Stops waiting for this request: none of its output pins fire any more. The request itself may still complete on AWS. |
| Is Finished | Async | Async | True after Cancel was called or the node finished. |
Config 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Set Region(Region: String) | Callable | Static | Switches the AWS region used by every following request. |
| Set Credential Mode(Mode: Rekognition Guard Credential Mode) | Callable | Static | Overrides the credential mode from the project settings at runtime. |
| Is Configured() β Boolean, Problem | Pure | Static | Checks the settings and returns false with a reason when requests cannot work yet. |
Identity 5
| Node | Type | Available on | Description |
|---|---|---|---|
| Set Login Token(Provider: String, Token: String) | Callable | Static | Signs the player in to the Cognito identity pool with a token from an identity provider. |
| Clear Login Tokens | Callable | Static | Forgets all login tokens and the cached identity (the player becomes a guest again). |
| Set Static Credentials(Access Key Id: String, Secret Access Key: String, Session Token: String) | Callable | Static | Uses these credentials from now on (Static Keys mode), for example temporary keys handed out by your own backend. |
| Get Identity Id() β String | Pure | Static | The Cognito identity id of this player, empty until credentials were resolved once. |
| Make User Pool Provider Name(Region: String, User Pool Id: String) β String | Pure | Static | Builds the identity-pool login key of a Cognito user pool: cognito-idp.<region>.amazonaws.com/<user pool id>. |
Images 5
| Node | Type | Available on | Description |
|---|---|---|---|
| Make Image From Bytes(Bytes: Array of Byte) β Rekognition Guard Image | Pure | Static | Wraps encoded image bytes (for example a file the player picked or an HTTP download). Width / Height are read from a JPEG / PNG header. |
| Make S 3 Image(Bucket: String, Key: String, Version: String) β Rekognition Guard Image | Pure | Static | An image stored in Amazon S3 (the bucket must be in the Rekognition region and readable by the caller's role). |
| Get Image Format(Image: Rekognition Guard Image) β Rekognition Guard Image Format | Pure | Static | The container of the image bytes: JPEG, PNG, Other (converted before sending) or Unknown. S3 images return Unknown. |
| Is Image Valid(Image: Rekognition Guard Image) β Boolean, Problem | Pure | Static | True when the image can be sent: S3 bucket + key, or bytes of a format the engine can decode. Problem says why not. |
| Bounding Box To Pixels(Box: Rekognition Guard Bounding Box, Image Width: Integer, Image Height: Integer) β Top Left, Size | Pure | Static | Converts a normalized box (0..1) to pixels of an image or widget of the given size (origin top left). |
Faces 1
| Node | Type | Available on | Description |
|---|---|---|---|
| Make Safe Id(Text: String) β String | Pure | Static | Makes a valid Rekognition id (collection, user or external image id) from any text, for example a player name: [A-Za-z0-9_.-], max 128. |
Vision 10
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Top Label(Labels: Array of Rekognition Guard Label) β Boolean, Label | Pure | Static | The label with the highest confidence. False when the array is empty. |
| Filter Labels By Confidence(Labels: Array of Rekognition Guard Label, Min Confidence: Float) β Array of Rekognition Guard Label | Pure | Static | Labels at or above Min Confidence, highest first. |
| Find Label(Labels: Array of Rekognition Guard Label, Name: String, Include Related: Boolean) β Boolean, Label | Pure | Static | Finds a label by name (case-insensitive). With Include Related a label whose parents or aliases contain the name also matches ("Vehicle" finds "Car"). |
| Get Labels In Category(Labels: Array of Rekognition Guard Label, Category: String) β Array of Rekognition Guard Label | Pure | Static | Labels of one label category, for example "Animals and Pets" or "Weapons and Military". |
| Count Objects(Labels: Array of Rekognition Guard Label, Name: String, Min Confidence: Float) β Integer | Pure | Static | Number of located instances of an object, for example how many "Person" are in a screenshot. |
| Get Text Lines(Detections: Array of Rekognition Guard Text Detection, Min Confidence: Float, Words: Boolean) β Array of String, Full Text | Pure | Static | The lines (or words) of Detect Text in reading order, plus all of it as one string. |
| Get Dominant Emotion(Face: Rekognition Guard Face Detail) β Boolean, Emotion, Confidence | Pure | Static | The strongest emotion of a face (needs the Emotions attribute). False when none was returned. |
| Get Largest Face(Faces: Array of Rekognition Guard Face Detail) β Boolean, Face, Index | Pure | Static | The face with the biggest bounding box (the person closest to the camera). Index is -1 when there are no faces. |
| Check Profile Photo(Faces: Array of Rekognition Guard Face Detail, Requirements: Rekognition Guard Photo Requirements) β Boolean, Problems | Pure | Static | Checks Detect Faces results against avatar / profile photo rules: one clear, frontal, sharp, bright face without sunglasses or occlusion. |
| Check Required Equipment(Person: Rekognition Guard Person, Required: Array of Rekognition Guard Equipment, Min Confidence: Float) β Boolean, Missing | Pure | Static | True when the person wears (covers the body part with) every required item. Missing lists the items that were not found. |
Moderation 10
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Moderation Categories(Parent: String) β Array of String | Pure | Static | The moderation label taxonomy (version 7): with Parent empty the 10 top-level categories, otherwise the level-2 labels of that category. Use the names in policy rules. |
| Make Moderation Policy(Preset: Rekognition Guard Policy Preset) β Rekognition Guard Moderation Policy | Pure | Static | A ready-made policy (All Ages, Teen, Mature) to use directly or to tweak. |
| Evaluate Moderation(Labels: Array of Rekognition Guard Moderation Label, Policy: Rekognition Guard Moderation Policy, Content Types: Array of Rekognition Guard Content Type) β Rekognition Guard Verdict | Pure | Static | Turns moderation labels into Allowed / Review / Blocked with reasons. |
| Evaluate Video Moderation(Labels: Array of Rekognition Guard Timed Moderation Label, Policy: Rekognition Guard Moderation Policy) β Rekognition Guard Verdict | Pure | Static | Verdict for a whole video: every timestamp is judged on its own, reasons carry the timestamps of the offending frames. |
| Combine Verdicts(Verdicts: Array of Rekognition Guard Verdict) β Rekognition Guard Verdict | Pure | Static | The strictest of several verdicts (for example all images of a gallery or the frames of an animated spray), reasons merged. |
| Verdict To Text(Verdict: Rekognition Guard Verdict) β String | Pure | Static | A one-line summary for logs and moderator tools, for example "Blocked: Explicit Nudity 97%, Weapons 88%". |
| Get Top Level Category(Label: Rekognition Guard Moderation Label, All Labels: Array of Rekognition Guard Moderation Label) β String | Pure | Static | Top-level category of a label, using the other labels of the same result and the built-in taxonomy ("Weapons" -> "Violence"). |
| Filter Moderation Labels(Labels: Array of Rekognition Guard Moderation Label, Max Taxonomy Level: Integer, Min Confidence: Float) β Array of Rekognition Guard Moderation Label | Pure | Static | Keeps labels up to a taxonomy level (1 = categories only, 2 = categories + sub-categories, 3 = all) and at or above Min Confidence. |
| Set Default Moderation Policy(Policy: Rekognition Guard Moderation Policy) | Callable | Static | Replaces the default policy (used when a node's Policy has no rules) until the game ends. |
| Get Default Moderation Policy() β Rekognition Guard Moderation Policy | Pure | Static | The policy used when a node's Policy has no rules: Set Default Moderation Policy, else the preset from the settings. |
Events & delegates
Bind these in Blueprint (drag off the object β Bind Event) or with AddDynamic in C++.
| Event | Parameters | Fires on |
|---|---|---|
| On Success | Identity Id (String), Error (Rekognition Guard Error) | RekognitionGuardIdentityAction |
| On Failure | Identity Id (String), Error (Rekognition Guard Error) | RekognitionGuardIdentityAction |
| On Allowed | Verdict (Rekognition Guard Verdict), Image (Rekognition Guard Image), Error (Rekognition Guard Error) | RekognitionGuardModerateAction |
| On Review | Verdict (Rekognition Guard Verdict), Image (Rekognition Guard Image), Error (Rekognition Guard Error) | RekognitionGuardModerateAction |
| On Blocked | Verdict (Rekognition Guard Verdict), Image (Rekognition Guard Image), Error (Rekognition Guard Error) | RekognitionGuardModerateAction |
Project settings
Configure once under Project Settings βΊ Plugins βΊ RekognitionGuard β values are saved to the project's config .ini, so they travel with the project and your build.
| Setting | Section | Type | What it does |
|---|---|---|---|
| Region | Connection | String | AWS region of Rekognition, your S3 buckets and your identity pool, for example "us-east-1" or "eu-west-1". |
| Credential Mode | Credentials | Credential Mode | Where request credentials come from. |
| Identity Pool Id | Credentials | String | Cognito identity pool, for example "us-east-1:01234567-89ab-cdef-0123-456789abcdef". |
| Allow Guest Access | Credentials | Boolean | Allow unauthenticated (guest) identities before Set Login Token is called. The pool must allow guest access too. |
| Access Key Id | Credentials | String | Access key for Static Keys mode. Keys saved here end up in DefaultGame.ini - use them for development and servers only. |
| Secret Access Key | Credentials | String | Secret key for Static Keys mode. |
| Allow Static Keys In Shipping | Credentials | Boolean | Static keys are refused in Shipping builds unless this is enabled (for example on a dedicated server). |
| Endpoint Override | Connection | String | Custom endpoint, for example a local emulator such as "http://localhost:4566". Empty = the regional AWS endpoint. |
| Request Timeout Ms | Connection | Integer | Total time a request may take, in milliseconds. |
| Connect Timeout Ms | Connection | Integer | Time allowed to open the connection, in milliseconds. |
| Max Retries | Connection | Integer | Automatic retries with exponential back-off for throttled and transient failures. |
| Worker Threads | Connection | Integer | Worker threads that run requests and image encoding in the background (the game thread never blocks on AWS). |
| Verify SSL | Connection | Boolean | Verify TLS certificates. Only disable for a local emulator. |
| Log Sdk Warnings | Connection | Boolean | Forward SDK warnings and errors to the Output Log (LogRekognitionGuard). |
| Default Policy Preset | Moderation | Policy Preset | Policy used by the moderation nodes when their Policy input has no rules (Set Default Moderation Policy overrides it at runtime). |
| Jpeg Quality | Images | Integer | JPEG quality (40..100) for textures, render targets, screenshots and converted images. |
| Max Image Dimension | Images | Integer | Captured or converted images are downscaled so the longer side is at most this many pixels (smaller uploads, same results). |
| Screenshot Timeout Seconds | Images | Float | Seconds Capture Screenshot / Moderate Screenshot wait for the viewport before failing. |
| Default Collection Id | Faces | String | Face collection used when a node's Collection Id is empty, for example "mygame-players". |
| Default Face Match Threshold | Faces | Float | Similarity (0..100) used when a face search node's threshold is 0 or below. |
| Video Poll Interval Seconds | Video | Float | Seconds between status checks of the Wait For ... video nodes. |
| Video Wait Timeout Seconds | Video | Float | The Wait For ... video nodes give up after this many seconds (the job keeps running on AWS). |
Options & enums
| Enum | Values |
|---|---|
| Credential Mode | Cognito Identity Pool Static Keys Default Credential Chain |
| Verdict | Allowed Review Blocked |
| Rule Action | Ignore Review Block |
| Policy Preset | All Ages (Strict) Teen Mature |
| Image Format | Unknown JPEG PNG Other (converted) |
| Quality Filter | Auto None Low Medium High |
| Face Attribute | Default All Age Range Beard Emotions Eye Direction Eyeglasses Eyes Open Gender Mouth Open Mustache Face Occluded Smile Sunglasses |
| Equipment | Face Cover Hand Cover Head Cover |
| Text Type | Line Word |
| Job Status | Unknown In Progress Succeeded Failed |
| Sort By | Timestamp Name |
Compatibility
One ready-made build per engine version is included in the download β copy the one that matches your project.
| Platform | Supported in |
|---|---|
| Windows | Editor & packaged |
| Linux | Editor & packaged |
| Android | Packaged builds |
| Module | Type | Loading phase |
|---|---|---|
| RekognitionGuard | Runtime | Default |
Technical details
| Code modules | RekognitionGuard (Runtime), RekognitionGuardSdk (External, Source/ThirdParty - prebuilt AWS SDK for C++) |
|---|---|
| Blueprints | 0 Β· C++ classes: 26 |
| Network replicated | No |
| Development platforms | Windows: Yes, Mac: No, Linux: Yes |
| Target build platforms | Win64, Linux, Android |
| Third-party software | Yes - AWS SDK for C++ 1.11.916 (Apache-2.0), with the AWS Common Runtime libraries, in Source/ThirdParty/RekognitionGuardSdk |
| Engine versions | Unreal Engine 4.27 Β· 5.8 β a build for each is included |
| C++ classes | 26 + 44 structs |
| Blueprint nodes | 36 |
| Events | 5 |
| Documentation | Documentation.html (in the download) |
| Download | RekognitionGuard.zip Β· 37.3 MB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| RekognitionGuard 4.27.zip | Plugin build for Unreal Engine 4.27 |
| RekognitionGuard 5.8.zip | Plugin build for Unreal Engine 5.8 |
| Documentation.html | Documentation (open in a browser) |
Quick start
- Unzip the download and pick the build that matches your engine (4.27 Β· 5.8).
- Copy the RekognitionGuard folder into your project's Plugins/ folder (create it if needed).
- Open the project, enable RekognitionGuard under Edit βΊ Plugins and restart the editor.
- Fill in Project Settings βΊ Plugins βΊ RekognitionGuard.
- Right-click in any Blueprint graph and search RekognitionGuard β or include the public headers from C++.
- Package for your target platform (Windows, Linux, Android).
Good to know
Built for Unreal Engine 4.27 and 5.8. Requires an AWS account; Amazon Rekognition usage is billed by AWS per image and per minute of video. Face collections store face vectors that identify people - ask players for consent and delete their faces with their account. On Linux and Android the SDK uses the engine's libcurl and OpenSSL and the engine's certificate store. On Win64 the SDK is one DLL with a plugin-specific name, so RekognitionGuard can be installed next to other AWS-based plugins. Never ship long-term access keys in a game client: use a Cognito identity pool for players. Developed and maintained by Alpha XP.
Everything included
- Is Image Safe, Moderate Texture, Moderate Render Target, Moderate Screenshot: Onβ¦
- Moderation policies with category rules and thresholds, All Ages / Teen / Matureβ¦
- Evaluate Moderation, Evaluate Video Moderation, Combine Verdicts, Verdict To Text,β¦
- Image input from bytes, files, UTexture2D (also compressed / streamed), renderβ¦
- JPEG encoding with the engine ImageWrapper and automatic downscaling under the 5 MB limit
- Detect Labels (boxes, dominant colours, image quality, filters), Detect Text, Detectβ¦
- Detect Protective Equipment, Recognize Celebrities, Get Celebrity Info
- Check Profile Photo, Count Objects, Find Label, Get Text Lines, Bounding Box To Pixelsβ¦
- Face collections and users: create, describe, list, index, search, delete, associate
- Stored video: content moderation and label detection jobs with Wait For nodes
- Amazon Cognito identity pools, static keys and the default AWS credential chain
- 75 Blueprint nodes, cancellable latent nodes, results on the game thread
Platforms
Requirements
- Unreal Engine 4.27 and 5.8
- Develop on Windows (Win64)
- Blueprints and C++
In the download
Personal
One non-commercial project
- 1 activation seat
- 1 year of updates
- One end product
- Non-commercial use
- Community support
- 14-day refund window
Commercial
Ship paid products
- 5 activation seats
- 1 year of updates
- One paid end product
- Unlimited end users
- Priority support
- Source files
- 14-day refund window
Extended
Resell & white-label
- Unlimited activation seats
- Lifetime updates
- Unlimited end products
- White-label & resell
- 1-hour SLA
- Seat-free team use
- 14-day refund window
One purchase per product, no subscription. Each licence comes with a signed key β 1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended. Paid licences can be refunded within 14 days from your order page.
- v1.0.0Latest
- Unreal Engine 4.27 and 5.8
- Blueprint and C++ API, HTML documentation
Be the first to review RekognitionGuard β reviews come from customers who bought it, so every one is a verified purchase.
Frequently asked
How do I get the files after paying?
Straight after checkout you land on your order page with the download button and your licence key. A receipt is emailed to you, and every order stays in My library.
Which licence do I need?
Personal β One non-commercial project. Commercial β Ship paid products. Extended β Resell & white-label. The Licences tab compares them side by side.
On how many devices can I activate it?
1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended.
How long do I get updates?
Personal: 1 year of updates, Commercial: 1 year of updates, Extended: lifetime updates, counted from your purchase.
Can I get a refund?
Yes β paid licences can be refunded within 14 days, straight from your order page.
Is the download safe?
The file was scanned with ClamAV when it was published. Its SHA-256 checksum is listed under Features β In the download, so you can verify the file you receive.
Do I need an account?
No. Checkout only needs your email. Signing in keeps all your purchases, keys and downloads together in My library.
More like this
AudioLens
Real-time audio analysis: FFT spectrum, onset and beat detection, and a full set of time- and frequency-domain descriptors..
β β β β β No reviews yetTTechHarbour$14.00BlueprintTCP
BlueprintTCP lets you connect to any TCP server and exchange data entirely from Blueprints β no C++ and no networking boilerplate.
β β β β β No reviews yetTTechHarbour$12.99BluetoothLink
Bluetooth Low Energy for Unreal - scan, connect, read, write and subscribe to BLE devices on Android and iOS.
β β β β β No reviews yetTTechHarbour$11.99ClusterLink
SocketCluster realtime client for Unreal - pub/sub channels, auth engine and JSON codec, usable from Blueprints.
β β β β β No reviews yetTTechHarbour$11.99