20% off Steal the Deal With Unreal Engine Plugins For Grab
AppConfigLive
Live-ops feature flags and remote configuration from AWS AppConfig in Blueprints and C++: polling sessions, typed flags and values, offline snapshots, fallbacks, overridβ¦
Highlights
All 14 features βAppConfigLive lets you change your game after it shipped without a patch. Turn features on and off, run double-XP weekends, tune prices and drop rates, schedule events and flip kill switches with AWS AppConfig, and see the change in every running game within a minute.
Get Default Config Session and Start Configuration Session open an AWS AppConfig Data session for your application, environment and configuration profile and keep it current with background polling that respects the interval AppConfig asks for. When nothing changed, AppConfig sends an empty answer and the session keeps what it has; when something changed, On Configuration Changed fires with the names of the flags or keys that differ.
Feature flag profiles get Get Flag Enabled, Get Enabled Flags and typed attribute getters for strings, integers, floats, booleans, arrays and JSON. Freeform JSON profiles get typed values by path such as shop.featured[0].sku, section keys and Get Value As Struct, which fills any Blueprint struct from a section of the document.
Players are never left without values: the last configuration is saved as a snapshot and restored at the next start, shipped defaults load with Load Fallback From String or File, and Get Source tells whether data is live, from a snapshot or a fallback. Set Flag Override and Set Value Override power QA menus and emergency switches on top of any configuration.
For live-ops tools AppConfigLive also covers the AppConfig control plane: list, read and create applications, environments, configuration profiles and hosted configuration versions, start, stop and wait for deployments, validate configurations, build feature flag documents and resolve names to ids.
Players get credentials from an Amazon Cognito identity pool with a read-only policy; static keys and the default AWS credential chain are available for tools and servers. Requests run on background worker threads with automatic retries, and every result arrives back on the game thread.
AppConfigLive 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
- 86 Blueprint nodes
- Configuration sessions with background polling, Refresh Now and Fetch Latest Configuration
- Honours AppConfig's poll interval; unchanged responses keep the current content;
- On Configuration Changed with changed, added and removed flag names or changed keys
- Feature flags: enabled state, enabled-flag list, typed attributes (string, int, float,
- Freeform JSON: typed values by path, section keys, Get Value As Struct
- Snapshots on disk restored at start-up, fallbacks from a string or file, cache policies
- Local flag and value overrides for QA menus and kill switches
- Control plane: applications, environments, configuration profiles, hosted versions,
- Start, Stop and Wait For Deployment; Validate Configuration; Resolve Names To Ids
- Feature flag document builder and parser
- Amazon Cognito identity pools, static keys and the default AWS credential chain
- Struct To JSON, JSON To Struct and Get JSON Field helpers
- Cancellable latent nodes; all results and events 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 |
|---|---|---|---|
| AppConfigLiveSession | Object | 44 | One AppConfig configuration (application + environment + profile) kept up to date by polling. |
| AppConfigLiveLibrary | Function library | 16 | Configuration, identity, session factories and JSON helpers for AppConfigLive. |
| 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
AppConfigLive 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: App Config Live 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>. |
Session 10
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Default Config Session() β App Config Live Session | Callable | Static | The session for the Application / Environment / Configuration Profile identifiers in the project settings, created on first use and kept by the game instance. |
| Create Config Session(Application: String, Environment: String, Configuration Profile: String) β App Config Live Session | Callable | Static | Creates (or returns the existing) session for another configuration profile, for example per-platform or per-region settings. Names or ids are accepted. |
| Start Polling(Interval Seconds: Float) | Callable | Object | Polls AppConfig for changes in the background until Stop Polling. Each poll waits at least the interval AppConfig asked for. |
| Stop Polling | Callable | Object | Stops the background polling; the configuration held so far stays available. |
| Refresh Now() β Boolean | Callable | Object | Asks AppConfig for the latest configuration now, regardless of the poll timer. Returns false when the session is not started yet or is shutting down. |
| Is Polling() β Boolean | Pure | Object | True while Start Polling is active. |
| Get Seconds Until Next Poll() β Float | Pure | Object | Seconds until the next automatic poll; 0 when not polling. |
| Set Poll Interval(Seconds: Integer) | Callable | Object | Changes the poll interval of this session (never below the Required Minimum Poll Interval, 15 s or more). |
| Set Cache Policy(Policy: App Config Live Cache Policy) | Callable | Object | Changes what this session does with snapshots on disk (overrides the project setting for this session). |
| Get Identifiers() β App Config Live Ids | Pure | Object | The application, environment and configuration profile this session reads. |
Flags 15
| Node | Type | Available on | Description |
|---|---|---|---|
| Parse Feature Flags(Json: String) β Array of App Config Live Flag | Pure | Static | Parses an AppConfig feature flag document (as the Data API returns it) into flag structs. |
| Make Feature Flags Document(Flags: Array of App Config Live Flag) β String | Pure | Static | Builds the hosted configuration version document of a feature flag profile ("flags", "values", "version": "1") from flag structs, for Create Hosted Configuration Version. |
| Get Flag Enabled(Flag Name: String, Default: Boolean) β Boolean | Pure | Object | Enabled state of a feature flag; Default when the flag is unknown or no configuration is available. Honours Set Flag Override. |
| Has Flag(Flag Name: String) β Boolean | Pure | Object | True when the flag exists in the configuration (or was overridden). |
| Get Flag(Flag Name: String) β Boolean, Flag | Pure | Object | The flag with its enabled state and all attributes as JSON text values. Returns false when the flag is unknown. |
| Get All Flag Names() β Array of String | Pure | Object | Names of all flags in the configuration. |
| Get Enabled Flags() β Array of String | Pure | Object | Names of the flags that are currently enabled (overrides applied). |
| Get Flag Source(Flag Name: String) β App Config Live Source | Pure | Object | Where the flag's current state comes from: Override when Set Flag Override replaced it, otherwise the document source. |
| Get Flag Attribute As String(Flag Name: String, Attribute: String, Default: String) β String | Pure | Object | A flag attribute as text (numbers and booleans are converted). Default when the flag or attribute is missing. |
| Get Flag Attribute As Int(Flag Name: String, Attribute: String, Default: Integer) β Integer | Pure | Object | A flag attribute as an integer (numeric strings are accepted). |
| Get Flag Attribute As Float(Flag Name: String, Attribute: String, Default: Float) β Float | Pure | Object | A flag attribute as a float. |
| Get Flag Attribute As Bool(Flag Name: String, Attribute: String, Default: Boolean) β Boolean | Pure | Object | A flag attribute as a boolean ("true" / "false" strings are accepted). |
| Get Flag Attribute As Json(Flag Name: String, Attribute: String) β Boolean, Json | Pure | Object | A flag attribute as JSON text (objects and arrays included). Returns false when missing. |
| Get Flag Attribute As String Array(Flag Name: String, Attribute: String) β Array of String | Pure | Object | An array attribute of a flag as strings (numbers and booleans are converted; a single value becomes a one-element array). |
| Get Flag Attributes(Flag Name: String) β Map String β String | Pure | Object | All attributes of a flag as JSON text values (without "enabled"). |
Deployments 1
| Node | Type | Available on | Description |
|---|---|---|---|
| Is Deployment Terminal(State: App Config Live Deployment State) β Boolean | Pure | Static | True for Complete, Rolled Back and Reverted - the deployment will not change any more. |
JSON 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Struct To JSON(Struct: Integer) β Boolean, Json | Callable | Static | Converts any struct to a JSON object string (property names are used as keys). |
| JSON To Struct(Json: String) β Boolean, Out Struct | Callable | Static | Fills a struct from a JSON object string; fields that are missing keep their default values. |
| Get Json Field(Json: String, Path: String) β Boolean, Value | Pure | Static | Reads one value from a JSON document with a path such as "shop.featured[2].sku". Strings are returned as-is, numbers and booleans as text, objects and arrays as JSON. |
Document 7
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Configuration Version() β String | Pure | Object | Version label of the hosted configuration version in use (empty when AppConfig did not send one or the version has no label). |
| Get Content Type() β String | Pure | Object | MIME type of the configuration, for example "application/json", "application/x-yaml" or "text/plain". |
| Get Raw Text() β String | Pure | Object | The configuration as text (UTF-8 decoded). Local overrides are not applied here. |
| Get Raw Bytes() β Array of Byte | Pure | Object | The configuration bytes exactly as received, for binary or custom formats. |
| Get Last Update Time() β Date Time | Pure | Object | When the current configuration was received or loaded (UTC); zero when none. |
| Get Source() β App Config Live Source | Pure | Object | Where the current configuration came from: Live, Snapshot, Fallback or None. |
| Is Flag Profile() β Boolean | Pure | Object | True when the document looks like an AppConfig feature flag configuration (every entry has an "enabled" boolean). |
Values 8
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Value String(Path: String, Default: String) β String | Pure | Object | A value from a JSON configuration by path, for example "shop.featured[0].sku". Default when missing. |
| Get Value Int(Path: String, Default: Integer) β Integer | Pure | Object | An integer value by path (numeric strings are accepted). |
| Get Value Float(Path: String, Default: Float) β Float | Pure | Object | A float value by path. |
| Get Value Bool(Path: String, Default: Boolean) β Boolean | Pure | Object | A boolean value by path ("true" / "false" strings are accepted). |
| Get Value Json(Path: String) β Boolean, Json | Pure | Object | Any value by path as JSON text (objects and arrays included). Empty Path = the whole document with overrides applied. Returns false when missing. |
| Get Value String Array(Path: String) β Array of String | Pure | Object | An array value by path as strings (numbers and booleans are converted). |
| Get Value Keys(Path: String) β Array of String | Pure | Object | The keys of the object at Path (empty Path = top level), to iterate sections such as "events" or "shop". |
| Get Value As Struct(Path: String) β Boolean, Out Struct | Callable | Object | Fills a Blueprint struct from the object at Path (empty Path = the whole document); fields that are missing keep their default values. |
Overrides 8
| Node | Type | Available on | Description |
|---|---|---|---|
| Set Flag Override(Flag Name: String, Enabled: Boolean) | Callable | Object | Forces a flag on or off locally (testing, QA menus, kill switches). Survives new configurations until Clear Overrides. |
| Set Value Override(Path: String, Json Value: String) | Callable | Object | Replaces a value locally. Json Value is JSON text: 42, 1.5, true, "text" (quoted), [1,2] or {"a":1}; plain text that is not valid JSON is used as a string. |
| Clear Overrides | Callable | Object | Removes all flag and value overrides. |
| Load Fallback From String(Text: String, Content Type: String) β Boolean | Callable | Object | Uses this text as the configuration until something better arrives (snapshot or live). Call it before Start Configuration Session with the defaults you ship. |
| Load Fallback From File(File Path: String) β Boolean | Callable | Object | Like Load Fallback From String, reading the file (relative to the project folder or absolute; packaged files work). |
| Save Snapshot To Disk() β Boolean | Callable | Object | Writes the current configuration to the snapshot file of this session (done automatically with the snapshot cache policies). |
| Load Snapshot From Disk() β Boolean | Callable | Object | Loads the snapshot file of this session, replacing a fallback (never a live configuration). Returns false when there is none. |
| Clear Snapshot() β Boolean | Callable | Object | Deletes the snapshot file of this session. |
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 (App Config Live Error) | AppConfigLiveIdentityAction | |
| On Failure | Identity Id (String), Error (App Config Live Error) | AppConfigLiveIdentityAction | |
| On Completed | Deployment (App Config Live Deployment), Error (App Config Live Error) | AppConfigLiveWaitDeploymentAction | |
| On Configuration Changed | Session (App Config Live Session), Change (App Config Live Change) | AppConfigLiveSession | A new configuration is in effect (first load, poll, snapshot, fallback or override). Change lists what differs. |
| On Error | Session (App Config Live Session), Error (App Config Live Error) | AppConfigLiveSession | A poll or refresh failed. Polling continues with the next interval; the last good configuration stays in effect. |
Project settings
Configure once under Project Settings βΊ Plugins βΊ AppConfigLive β 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 AppConfig application 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 (LogAppConfigLive). |
| Application Identifier | AppConfig | String | Application name or id used by the default session (Get Default Config Session), for example "MyGame". |
| Environment Identifier | AppConfig | String | Environment name or id used by the default session, for example "Production". |
| Configuration Profile Identifier | AppConfig | String | Configuration profile name or id used by the default session, for example "LiveOps". |
| Poll Interval Seconds | AppConfig | Integer | How often a polling session asks AppConfig for changes, in seconds (never below the Required Minimum Poll Interval). |
| Required Minimum Poll Interval Seconds | AppConfig | Integer | Lower bound AppConfig enforces for this session (15 - 86400 s). Polls that come sooner return the same data. |
| Cache Policy | AppConfig | Cache Policy | What sessions do with the configuration on disk (snapshots make values available before the first poll and while offline). |
| Snapshot Directory | AppConfig | String | Folder for snapshots, relative to the project's Saved folder (or absolute). Empty = Saved/AppConfigLive. |
Options & enums
| Enum | Values |
|---|---|
| Credential Mode | Cognito Identity Pool Static Keys Default Credential Chain |
| Source | None Live Snapshot Fallback Override |
| Cache Policy | Memory Only Save Snapshot On Change Save And Restore Snapshot |
| Profile Type | Freeform Feature Flags |
| Deployment State | Unknown Baking Validating Deploying Complete Rolling Back Rolled Back Reverted |
| Environment State | Unknown Ready For Deployment Deploying Rolling Back Rolled Back Reverted |
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 |
|---|---|---|
| AppConfigLive | Runtime | Default |
Technical details
| Code modules | AppConfigLive (Runtime), AppConfigLiveSdk (External, Source/ThirdParty - prebuilt AWS SDK for C++) |
|---|---|
| Blueprints | 0 Β· C++ classes: 29 |
| 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/AppConfigLiveSdk |
| Engine versions | Unreal Engine 4.27 Β· 5.8 β a build for each is included |
| C++ classes | 29 + 13 structs |
| Blueprint nodes | 62 |
| Events | 5 |
| Documentation | Documentation.html (in the download) |
| Download | AppConfigLive.zip Β· 36.9 MB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| AppConfigLive 4.27.zip | Plugin build for Unreal Engine 4.27 |
| AppConfigLive 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 AppConfigLive folder into your project's Plugins/ folder (create it if needed).
- Open the project, enable AppConfigLive under Edit βΊ Plugins and restart the editor.
- Fill in Project Settings βΊ Plugins βΊ AppConfigLive.
- Right-click in any Blueprint graph and search AppConfigLive β 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; AppConfig and Cognito usage is billed by AWS. Multi-variant feature flags are evaluated only by the AppConfig Agent; the AppConfig Data API used by game clients returns their default value. Players need only appconfig:StartConfigurationSession and appconfig:GetLatestConfiguration; the control-plane (admin) nodes are meant for live-ops tools with an admin identity. 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 AppConfigLive 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
- 86 Blueprint nodes
- Configuration sessions with background polling, Refresh Now and Fetch Latest Configuration
- Honours AppConfig's poll interval; unchanged responses keep the current content;β¦
- On Configuration Changed with changed, added and removed flag names or changed keys
- Feature flags: enabled state, enabled-flag list, typed attributes (string, int, float,β¦
- Freeform JSON: typed values by path, section keys, Get Value As Struct
- Snapshots on disk restored at start-up, fallbacks from a string or file, cache policies
- Local flag and value overrides for QA menus and kill switches
- Control plane: applications, environments, configuration profiles, hosted versions,β¦
- Start, Stop and Wait For Deployment; Validate Configuration; Resolve Names To Ids
- Feature flag document builder and parser
- Amazon Cognito identity pools, static keys and the default AWS credential chain
- Struct To JSON, JSON To Struct and Get JSON Field helpers
- Cancellable latent nodes; all results and events 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 AppConfigLive β 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