20% off Steal the Deal With Unreal Engine Plugins For Grab
CloudWatchLink
Send game logs and metrics to Amazon CloudWatch from Blueprints and C++: UE_LOG forwarding, automatic FPS / frame / memory metrics, Logs Insights queries, alarms andβ¦
Highlights
All 11 features βCloudWatchLink brings Amazon CloudWatch into your game. See what happens on players' machines and on your dedicated servers - errors, warnings, crashes, performance - without building a logging backend.
The CloudWatchLink Logger forwards UE_LOG output to CloudWatch Logs. Choose the minimum level, allow or deny log categories and include or exclude messages by wildcard. Every line is written as structured JSON (timestamp, level, category, message, session, platform, build and your own context fields such as player or match id), so CloudWatch Logs Insights can search and aggregate it. Lines are buffered and sent in the background in batches; logging never waits for the network, the forwarder never logs into itself, and the last lines are sent on exit within a time limit. Log Message writes your own lines with extra fields, and Log Metrics EMF turns log lines into metrics through the Embedded Metric Format.
The CloudWatchLink Metrics component collects FPS, frame time, game / render / RHI thread and GPU time, memory, player count and ping, aggregates them into statistic sets and sends them on an interval, with map and platform dimensions. Increment Counter, Set Gauge and Record Timing add your own game metrics such as kills, queue length or loading time.
Latent nodes cover the CloudWatch Logs and CloudWatch APIs a game and its live-ops tools need: create log groups and streams with retention, Put Log Events with automatic batching (10,000 events, 1 MB and 24 hours per request, sorted by time), Get Log Events, Filter Log Events, Describe Log Groups and Streams, Logs Insights Start Query, Get Query Results, Stop Query and Run Query And Wait (a result table in one node), Put Metric, Put Metrics, Get Metric Data with metric math, Get Metric Statistics with percentiles, List Metrics, metric alarms (Put, Describe, Set State, Delete, Enable / Disable Actions) and dashboards (Put, Get, List, Delete).
Helpers build data points, statistic sets and distributions, metric queries, alarms, dashboard widgets and bodies, EMF lines, JSON filter patterns and ten ready-made Logs Insights queries for game logs (recent errors, errors by category, session and player timelines, crashes, sessions per platform and more), and turn query results into CSV.
Players get credentials from an Amazon Cognito identity pool (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 run on background worker threads with automatic retries; every result arrives on the game thread.
CloudWatchLink 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
- UE_LOG forwarding to CloudWatch Logs: level, category and message filters, structured
- Recursion-safe and thread-safe: lines from any thread, never blocks the game thread,
- Automatic game metrics: FPS, frame time, game / render / RHI thread time, GPU time,
- Custom metrics: counters, gauges, timings; statistic sets, distributions and
- Put Log Events with automatic splitting by the PutLogEvents limits and auto-created
- Logs Insights: Start Query, Get Query Results, Stop Query, Run Query And Wait, 10 game
- Get Metric Data (metric math), Get Metric Statistics (percentiles), List Metrics
- Alarms and dashboards, including widget and body builders
- Embedded Metric Format line builder
- Amazon Cognito identity pools, static keys and the default AWS credential chain
- 90 Blueprint nodes, C++ API
Blueprint & C++ API
The API is organised into these entry points:
| Class | Type | Nodes | Use it for |
|---|---|---|---|
| CloudWatchLinkLibrary | Function library | 28 | Configuration, identity, metric / query builders and helpers for CloudWatchLink. |
| CloudWatchLinkLogger | Game Instance subsystem | 18 | CloudWatchLink Logger: forwards UE_LOG output (and your own Log Message lines) to CloudWatch Logs. |
| CloudWatchLinkMetricsComponent | Actor component | 12 | Collects game metrics and sends them to CloudWatch in batches. |
| 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
CloudWatchLink 2
| Node | Type | Available on | Description |
|---|---|---|---|
| Cancel | Async | Async | Stops waiting for this request: none of its output pins fire any more (Run Query And Wait also stops the query). |
| 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: Cloud Watch Link 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>. |
Metrics βΊ Build 10
| Node | Type | Available on | Description |
|---|---|---|---|
| Make Dimension(Name: String, Value: String) β Cloud Watch Link Dimension | Pure | Static | A dimension (name + value) for List Metrics filters; an empty value matches any value. |
| Make Metric Datum(Metric Name: String, Value: Float, Unit: Cloud Watch Link Unit, Dimensions: Map String β String, High Resolution: Boolean, β¦) β Cloud Watch Link Metric Datum | Pure | Static | A single-value data point. Unset Timestamp = when it is sent. High Resolution = 1-second storage. |
| Make Statistic Set Datum(Metric Name: String, Sample Count: Float, Sum: Float, Minimum: Float, Maximum: Float, β¦) β Cloud Watch Link Metric Datum | Pure | Static | A pre-aggregated data point (sample count, sum, min, max): one datum for many samples, for example all frame times of a minute. |
| Make Distribution Datum(Metric Name: String, Values: Array of Float, Counts: Array of Float, Unit: Cloud Watch Link Unit, Dimensions: Map String β String) β Cloud Watch Link Metric Datum | Pure | Static | A distribution: up to 150 distinct values with how often each occurred (empty Counts = once each). Percentiles work on it. |
| Add Datum Dimension(Datum: Cloud Watch Link Metric Datum, Name: String, Value: String) β Cloud Watch Link Metric Datum | Pure | Static | Returns Datum with one more dimension (CloudWatch allows 30; empty names / values are ignored). |
| Unit To Text(Unit: Cloud Watch Link Unit) β String | Pure | Static | CloudWatch name of a unit, for example "Bytes/Second". |
| Make Metric Query(Id: String, Metric Name: String, Dimensions: Map String β String, Stat: String, Period: Integer, β¦) β Cloud Watch Link Metric Query | Pure | Static | A Get Metric Data query for one metric and statistic (Stat: Average, Sum, Minimum, Maximum, SampleCount, p50, p99, ...). |
| Make Metric Math Query(Id: String, Expression: String, Label: String, Period: Integer) β Cloud Watch Link Metric Query | Pure | Static | A metric math query, for example Expression "errors / requests * 100" over the queries with those ids. |
| Summarize Series(Values: Array of Float, Timestamps: Array of Date Time) β Cloud Watch Link Series Summary | Pure | Static | Count, minimum, maximum, average, sum and latest value of a series (timestamps optional, same length as Values). |
| Build Emf Line(Namespace: String, Metrics: Array of Cloud Watch Link Metric Datum, Dimensions: Map String β String, Properties: Map String β String) β String | Pure | Static | Embedded Metric Format: one JSON log line that CloudWatch Logs turns into metrics (no Put Metric Data call). |
Alarms 1
| Node | Type | Available on | Description |
|---|---|---|---|
| Make Metric Alarm(Alarm Name: String, Metric Name: String, Dimensions: Map String β String, Statistic: Cloud Watch Link Statistic, Comparison: Cloud Watch Link Comparison, β¦) β Cloud Watch Link Alarm Spec | Pure | Static | An alarm on one metric: fires when Statistic of the metric compares to Threshold for Evaluation Periods periods. |
Dashboards 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Make Dashboard Metric Widget(Title: String, Metrics: Array of Cloud Watch Link Metric Query, Single Value: Boolean, Region: String, X: Integer, β¦) β String | Pure | Static | A dashboard graph / number widget (JSON) for the given metric queries; X/Y/Width/Height in the 24-column grid. |
| Make Dashboard Log Widget(Title: String, Log Group: String, Query: String, Region: String, X: Integer, β¦) β String | Pure | Static | A dashboard table widget (JSON) that runs a Logs Insights query over a log group. |
| Make Dashboard Body(Widgets: Array of String) β String | Pure | Static | Joins widgets into a dashboard body for Put Dashboard. |
Logs Insights 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Make Logs Insights Query(Preset: Cloud Watch Link Insights Preset, Filter: String, Limit: Integer) β String | Pure | Static | Ready-made Logs Insights query for lines written by the logger. Filter: session / player id or search text; Limit: rows. |
| Get Query Result Value(Row: Cloud Watch Link Query Row, Field: String) β Boolean, Value | Pure | Static | One value of a Logs Insights row, for example Field "@message" or "count". |
| Query Results To Csv(Results: Cloud Watch Link Query Results) β String | Pure | Static | A Logs Insights result as CSV text (header row = Columns, RFC 4180 quoting). |
Logs 2
| Node | Type | Available on | Description |
|---|---|---|---|
| Make Json Filter Pattern(Field: String, Operator: String, Value: String, Numeric: Boolean) β String | Pure | Static | A filter pattern for Filter Log Events on JSON lines, for example { $.level = "Error" } or { $.fps < 30 } (Numeric). |
| Make Log Stream Name(Prefix: String, Session: String) β String | Pure | Static | The logger's default stream name: <Prefix>/<platform>/<Session> (characters CloudWatch refuses are replaced). |
JSON 1
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Json Field(Json: String, Path: String) β Boolean, Value | Pure | Static | Reads one value from a JSON document with a path such as "player.stats[2].score" (log messages, EMF lines, dashboard bodies). |
Logger 18
| Node | Type | Available on | Description |
|---|---|---|---|
| Start Forwarding(Log Group: String, Log Stream: String) β Boolean, Problem | Callable | Subsystem | Starts forwarding UE_LOG lines with the filters from the project settings. |
| Stop Forwarding(Send Remaining: Boolean) | Callable | Subsystem | Stops forwarding new lines. Send Remaining = the buffered lines are still sent in the background, otherwise discarded. |
| Is Forwarding() β Boolean | Pure | Subsystem | True while UE_LOG lines are being captured. |
| Flush Now | Callable | Subsystem | Sends the buffered lines now instead of waiting for the flush interval (returns immediately). |
| Get Buffered Count() β Integer | Pure | Subsystem | Lines waiting to be sent. |
| Get Dropped Count() β Integer64 | Pure | Subsystem | Lines lost since the process started (buffer full, rejected by CloudWatch, permanent errors). |
| Log Message(Level: Cloud Watch Link Log Level, Category: String, Message: String, Fields: Map String β String, Also Print To Output Log: Boolean) β Boolean | Callable | Subsystem | Writes one line straight to CloudWatch (not through UE_LOG, so no filter applies), with extra fields that become queryable JSON fields in Logs Insights. |
| Log Metrics Emf(Metrics: Array of Cloud Watch Link Metric Datum, Dimensions: Map String β String, Namespace: String) β Boolean | Callable | Subsystem | Writes metrics as an Embedded Metric Format line into the log stream: CloudWatch extracts them as metrics (no Put Metric Data request, no extra API cost per call). |
| Set Context Field(Name: String, Value: String) | Callable | Subsystem | Adds a field to every following JSON line, for example "player" = the player id or "match" = the match id. |
| Remove Context Field(Name: String) | Callable | Subsystem | Removes one context field. |
| Clear Context | Callable | Subsystem | Removes every context field you added (session, platform, build and project are always written). |
| Set Minimum Level(Level: Cloud Watch Link Log Level) | Callable | Subsystem | Forwards lines of this level and more severe ones from now on. |
| Set Category Filters(Allow: Array of String, Deny: Array of String) | Callable | Subsystem | Category filters: Allow (empty = all categories) and Deny lists, for example Allow = LogTemp, LogNet. |
| Set Message Filters(Include: Array of String, Exclude: Array of String) | Callable | Subsystem | Message filters with * and ? wildcards: Include (empty = all) and Exclude, for example "*password*". |
| Set Flush Settings(Interval Seconds: Float, Max Batch Lines: Integer) | Callable | Subsystem | Seconds between automatic sends and the line count that triggers an early send. |
| Get Session Id() β String | Pure | Subsystem | Random id of this game process; part of the default stream name and of every JSON line ("session"). |
| Get Log Destination() β Log Group, Log Stream | Pure | Subsystem | The log group and stream lines are sent to (empty before the first Start Forwarding). |
| Get Forwarder Stats() β Cloud Watch Link Forwarder Stats | Pure | Subsystem | Counters: forwarding state, buffered, sent, dropped, requests, last error, last flush time. |
Metrics Component 12
| Node | Type | Available on | Description |
|---|---|---|---|
| Start Collecting | Callable | Component | Starts sampling and periodic sending. |
| Stop Collecting(Send Remaining: Boolean) | Callable | Component | Stops sampling. Send Remaining = what was collected so far is sent now. |
| Is Collecting() β Boolean | Pure | Component | True between Start Collecting and Stop Collecting. |
| Increment Counter(Metric Name: String, Delta: Float) | Callable | Component | Adds Delta to a counter; the sum per flush interval is sent with unit Count. |
| Set Gauge(Metric Name: String, Value: Float, Unit: Cloud Watch Link Unit) | Callable | Component | Sets a gauge (for example "QueueLength"); min / max / average of the values set per interval are sent. |
| Record Timing(Metric Name: String, Milliseconds: Float) | Callable | Component | Records one duration in milliseconds (for example "LoadTime", "MatchmakingWait"), sent as a statistic set. |
| Flush Metrics() β Boolean | Callable | Component | Sends everything collected so far now (also works while not collecting, for custom metrics). |
| Set Metric Dimension(Name: String, Value: String) | Callable | Component | Sets (or replaces) a dimension of every following datum. |
| Remove Metric Dimension(Name: String) | Callable | Component | |
| Get Pending Datum Count() β Integer | Pure | Component | Data points that would be sent by the next flush (aggregated metrics + data waiting for a retry). |
| Get Last Snapshot() β Cloud Watch Link Game Snapshot | Pure | Component | The automatic metrics of the latest sample (works while collecting). |
| Set Intervals(New Flush Interval: Float, New Sample Interval: Float) | Callable | Component | Changes the flush and sample intervals at runtime (seconds). |
Events & delegates
Bind these in Blueprint (drag off the object β Bind Event) or with AddDynamic in C++.
| Event | Parameters | Fires on | When it fires |
|---|---|---|---|
| On Success | Identity Id (String), Error (Cloud Watch Link Error) | CloudWatchLinkIdentityAction | |
| On Failure | Identity Id (String), Error (Cloud Watch Link Error) | CloudWatchLinkIdentityAction | |
| On Flushed | Datum Count (Integer) | CloudWatchLinkMetricsComponent | Fires after a successful send with the number of data points. |
| On Failed | Error (Cloud Watch Link Error) | CloudWatchLinkMetricsComponent | Fires when a send failed (the data points are kept for the next send when the error is retryable). |
Project settings
Configure once under Project Settings βΊ Plugins βΊ CloudWatchLink β 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 your log groups, metrics and 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 in the background (requests never block the game thread). |
| 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 (LogCloudWatchLink - never forwarded to CloudWatch). |
| Default Namespace | Metrics | String | Metric namespace used when a node leaves Namespace empty, for example "MyGame". Empty = "Game/<project name>". |
| Log Group Name | Logs | String | Log group of the UE_LOG forwarder and of log nodes that leave Log Group empty, for example "/mygame/client". |
| Log Stream Prefix | Logs | String | First part of the forwarder's stream name <prefix>/<platform>/<session>. Empty = the project name. |
| Log Retention Days | Logs | Integer | Retention set when CloudWatchLink creates a log group: 0 = never expire, otherwise 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365... days. |
| Auto Start Forwarding | Forwarding | Boolean | Start forwarding UE_LOG lines as soon as the game instance starts. |
| Stop With Game Instance | Forwarding | Boolean | Stop forwarding when the game instance shuts down (end of Play In Editor). Otherwise forwarding runs until the process exits. |
| Minimum Level | Forwarding | Log Level | Forward lines of this level and more severe ones. |
| Allow Categories | Forwarding | Array of String | Only forward these categories (for example LogTemp, LogNet). Empty = all categories. |
| Deny Categories | Forwarding | Array of String | Never forward these categories. LogCloudWatchLink is always excluded. |
| Include Patterns | Forwarding | Array of String | Only forward messages matching one of these wildcards (* and ?). Empty = every message. |
| Exclude Patterns | Forwarding | Array of String | Drop messages matching one of these wildcards, for example "*password*". |
| Structured Json | Forwarding | Boolean | Write each line as a JSON object (timestamp, level, category, message, context fields) so Logs Insights can query the fields. Off = "[Level] Category: message". |
| Flush Interval Seconds | Forwarding | Float | Seconds between automatic sends. |
| Max Batch Lines | Forwarding | Integer | Send early as soon as this many lines are waiting (one request carries up to 10,000 lines / 1 MB). |
| Max Buffered Lines | Forwarding | Integer | Lines kept in memory while CloudWatch is unreachable; newer lines are dropped (and counted) beyond this. |
| Shutdown Flush Seconds | Forwarding | Float | Longest time the game waits on exit for the last lines to be sent. |
Options & enums
| Enum | Values |
|---|---|
| Credential Mode | Cognito Identity Pool Static Keys Default Credential Chain |
| Unit | None Seconds Milliseconds Microseconds Bytes Kilobytes Megabytes Gigabytes Terabytes Bits Kilobits Megabits Gigabits Terabits Percent Bytes/Second Kilobytes/Second Megabytes/Second Gigabytes/Second Terabytes/Second Bits/Second Kilobits/Second Megabits/Second Gigabits/Second |
| Log Level | Fatal Error Warning Display Log Verbose Very Verbose |
| Query Status | Unknown Scheduled Running Complete Failed Cancelled Timeout |
| Statistic | Average Sum Minimum Maximum Sample Count |
| Comparison | >= Threshold > Threshold < Threshold <= Threshold |
| Alarm State | Any (filter only) OK ALARM INSUFFICIENT_DATA |
| Missing Data | Missing Not Breaching Breaching Ignore |
| Insights Preset | Recent Errors Errors By Category Warnings By Category Top Messages Log Volume Over Time Session Timeline Player Timeline Search Text Sessions Per Platform Fatal Errors / Crashes |
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 |
|---|---|---|
| CloudWatchLink | Runtime | Default |
Technical details
| Code modules | CloudWatchLink (Runtime), CloudWatchLinkSdk (External, Source/ThirdParty - prebuilt AWS SDK for C++) |
|---|---|
| Blueprints | 0 Β· C++ classes: 19 |
| 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) and the AWS Common Runtime libraries, in Source/ThirdParty/CloudWatchLinkSdk |
| Engine versions | Unreal Engine 4.27 Β· 5.8 β a build for each is included |
| C++ classes | 18 + 26 structs |
| Blueprint nodes | 60 |
| Events | 4 |
| Documentation | Documentation.html (in the download) |
| Download | CloudWatchLink.zip Β· 41.9 MB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| CloudWatchLink 4.27.zip | Plugin build for Unreal Engine 4.27 |
| CloudWatchLink 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 CloudWatchLink folder into your project's Plugins/ folder (create it if needed).
- Open the project, enable CloudWatchLink under Edit βΊ Plugins and restart the editor.
- Fill in Project Settings βΊ Plugins βΊ CloudWatchLink.
- Right-click in any Blueprint graph and search CloudWatchLink β 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; CloudWatch Logs ingestion and storage, custom metrics, API requests, alarms, dashboards and Logs Insights queries are billed by AWS - keep the minimum level and the metric count reasonable for large player bases. 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 CloudWatchLink 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
- UE_LOG forwarding to CloudWatch Logs: level, category and message filters, structuredβ¦
- Recursion-safe and thread-safe: lines from any thread, never blocks the game thread,β¦
- Automatic game metrics: FPS, frame time, game / render / RHI thread time, GPU time,β¦
- Custom metrics: counters, gauges, timings; statistic sets, distributions andβ¦
- Put Log Events with automatic splitting by the PutLogEvents limits and auto-createdβ¦
- Logs Insights: Start Query, Get Query Results, Stop Query, Run Query And Wait, 10 gameβ¦
- Get Metric Data (metric math), Get Metric Statistics (percentiles), List Metrics
- Alarms and dashboards, including widget and body builders
- Embedded Metric Format line builder
- Amazon Cognito identity pools, static keys and the default AWS credential chain
- 90 Blueprint nodes, C++ API
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 CloudWatchLink β 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