LexBot
Conversational NPCs and voice commands with Amazon Lex V2: send typed text or microphone speech to your bot and get messages, intents, slots, sentiment and spoken replieβ¦
Highlights
All 11 features βLexBot brings Amazon Lex V2 bots into your game. Design the conversation in the Lex console - intents, slots, prompts, confirmation and Lambda fulfillment - and let players talk to it by typing or speaking. Shopkeepers that take orders, quest givers that understand free-form answers, companions that follow voice commands, tutorial assistants: the bot does the language understanding, your Blueprints react to the result.
Recognize Text sends what the player typed and returns the bot's messages, the recognized intent with its slot values, every interpretation with its NLU confidence, sentiment analysis and the session state with the next dialog action. Recognize Utterance sends recorded speech as 16-bit PCM in any sample rate (converted to 16 kHz mono automatically) and returns what Lex heard, plus - on request - the spoken reply as a sound wave you can play in 2D or at the NPC. Put Session, Get Session and Delete Session start a conversation at a given intent, pre-fill slots, set session attributes or end a conversation.
The LexBot Conversation component handles a whole dialogue for an actor: it keeps the session id, the current intent with its slots and the session attributes, queues turns while the bot answers, records the microphone with voice-activity detection on Win64 and Android, plays spoken replies and fires events for every bot message, intent change, filled slot and for the end of a conversation (Fulfilled, Failed or Closed).
Helper nodes build session states, slots, dialog actions, active contexts and runtime hints, read card buttons and message text, strip SSML, map the game's culture to a Lex locale, and load, save and resample WAV / PCM audio.
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, servers and tools. Requests run on background worker threads with automatic retries; results always arrive on the game thread.
LexBot 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
- Recognize Text: messages, intent and slots, interpretations with NLU confidence,
- Recognize Utterance: speech in (any PCM rate / channels), transcript and optional
- Recognize Text With Voice Reply and Recognize WAV File
- Put Session, Get Session, Delete Session
- LexBot Conversation component: session handling, turn queue, microphone with
- Events: On Bot Message, On Intent Changed, On Slot Filled, On Conversation Ended, On
- Plain text, SSML, custom payload and image response card messages with buttons
- Session attributes, request attributes, active contexts and runtime hints
- Locale From Culture and the list of Lex V2 locales
- Amazon Cognito identity pools, static keys and the default AWS credential chain
- 90 Blueprint nodes, C++ API with a native callback
Blueprint & C++ API
The API is organised into these entry points:
| Class | Type | Nodes | Use it for |
|---|---|---|---|
| LexBotLibrary | Function library | 46 | Configuration, identity, session-state builders, response helpers and audio helpers for LexBot. |
| LexBotConversationComponent | Actor component | 31 | A conversation with an Amazon Lex V2 bot for an NPC, a companion or voice commands. |
| LexBotSoundWave | Sound Wave Procedural | 2 | A bot reply (or any 16-bit PCM) as a playable sound wave, built at runtime. Plays like any sound wave (Play Sound 2D, audio components, attenuation). |
| 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
LexBot 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. |
Conversation 8
| Node | Type | Available on | Description |
|---|---|---|---|
| Send Text(Text: String) β Boolean | Callable | Component | Sends what the player typed (or a card button's Value). Turns are queued while the bot is answering. |
| Send Audio(Pcm: Array of Byte, Sample Rate: Integer, Num Channels: Integer) β Boolean | Callable | Component | Sends recorded speech: 16-bit PCM, any rate / channel count (converted to 16 kHz mono). |
| Is Waiting For Response() β Boolean | Pure | Component | True while a turn is on its way to the bot (or queued). |
| Reset Conversation(Delete On Server: Boolean) | Callable | Component | Starts a new conversation: new session id, no intent. Session attributes are kept and sent with the next turn. |
| Sync Session From Server | Callable | Component | Reads the session from the bot (Get Session) and updates intent, slots and attributes - for example after a Lambda changed them. |
| Get Session Id() β String | Pure | Component | The session id of this conversation (created on first use). |
| Set Session Id(New Session Id: String) | Callable | Component | Continues another conversation (for example a saved one) under this id. |
| Set Bot(New Bot Id: String, New Bot Alias Id: String, New Locale Id: String) | Callable | Component | Talks to another bot from now on (empty fields = settings). Call Reset Conversation to start fresh. |
State 8
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Current Intent() β Lex Bot Intent | Pure | Component | The intent the bot is working on, with its slots. |
| Get Slot Value(Slot Name: String) β Boolean, Value | Pure | Component | Interpreted value of a slot of the current intent. False when the slot is empty. |
| Get All Slots() β Map String β Lex Bot Slot | Pure | Component | All slots of the current intent (empty slots have Has Value = false). |
| Get Dialog State() β Lex Bot Dialog State, Slot To Elicit | Pure | Component | Where the conversation is (eliciting a slot, confirming, ended...) and which slot the bot asks for. |
| Get Last Transcript() β String | Pure | Component | What Lex heard last (spoken turns) or the last text sent. |
| Get Last Response() β Lex Bot Response | Pure | Component | The full last response (messages, interpretations, session state, sound). |
| Get Conversation History() β Array of Lex Bot Turn | Pure | Component | Player and bot lines of this conversation, oldest first (up to Max History). |
| Clear History | Callable | Component | Forgets the conversation history (the session on the bot is not affected). |
Attributes 6
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Session Attributes() β Map String β String | Pure | Component | Session attributes shared with the bot and its Lambda code (as last returned by the bot plus local changes). |
| Set Session Attribute(Key: String, Value: String) | Callable | Component | Sets a session attribute; it is sent with the next turn (for example "playerName", "gold"). |
| Remove Session Attribute(Key: String) | Callable | Component | Removes one session attribute (on the bot too, with the next turn). |
| Clear Session Attributes | Callable | Component | Removes all session attributes (on the bot too, with the next turn). |
| Set Request Attribute(Key: String, Value: String) | Callable | Component | A request attribute sent with every following turn (not stored by Lex), for example "x-amz-lex:..." is reserved - use your own keys. |
| Clear Request Attributes | Callable | Component | Stops sending request attributes. |
Microphone 8
| Node | Type | Available on | Description |
|---|---|---|---|
| Start Microphone(Device Index: Integer) β Boolean | Callable | Component | Starts recording the player (-1 = default device). The utterance is sent when they stop speaking (Auto Send On Silence) or on Stop Microphone. |
| Stop Microphone() β Boolean | Callable | Component | Stops recording and sends the utterance. Returns false when nothing was said. |
| Cancel Microphone | Callable | Component | Stops recording and throws the audio away. |
| Is Microphone Active() β Boolean | Pure | Component | True while the microphone records. |
| Get Input Level() β Rms, Peak | Pure | Component | Microphone level after gain: RMS and peak (0..1), smoothed for meters. |
| List Capture Devices() β Array of Lex Bot Capture Device | Callable | Component | The audio input devices of this machine (empty where capture is not supported). |
| Is Microphone Supported() β Boolean | Pure | Static | True on platforms with microphone capture (Win64, Android). |
| Has Microphone Permission() β Boolean | Pure | Static | Android: whether RECORD_AUDIO was granted. Win64: true. Linux: false. |
Voice 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Play Response Audio(Sound: Sound Base) β Audio Component | Callable | Component | Plays a reply sound (None = the last reply) 2D or at the owner, and stops the previous one. |
| Stop Response Audio | Callable | Component | Stops the reply that is playing (if any). |
| Is Playing Response() β Boolean | Pure | Component | True while a reply played by this component is audible. |
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: Lex Bot Credential Mode) | Callable | Static | Overrides the credential mode from the project settings at runtime. |
| Is Configured() β Boolean, Problem | Pure | Static | Checks the settings (credentials and default bot) 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>. |
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), for example for a session attribute. |
| JSON To Struct(Json: String) β Boolean, Out Struct | Callable | Static | Fills a struct from a JSON object string (for example a Custom Payload message); missing fields keep their defaults. |
| Get Json Field(Json: String, Path: String) β Boolean, Value | Pure | Static | Reads one value from a JSON document with a path such as "reward.items[0].id". Strings are returned as-is, numbers and booleans as text, objects and arrays as JSON. |
Session 13
| Node | Type | Available on | Description |
|---|---|---|---|
| Make Session State(Intent Name: String, Slots: Map String β String, Session Attributes: Map String β String, Dialog Action: Lex Bot Dialog Action Type, Slot To Elicit: String) β Lex Bot Session State | Pure | Static | Builds a session state for Put Session or the State input of the recognize nodes. Intent Name empty = no intent; Dialog Action Not Set = let Lex decide. |
| Make Slot Value(Value: String, Original Value: String, Resolved Values: Array of String) β Lex Bot Slot | Pure | Static | A filled scalar slot. Original Value empty = the same as Value. |
| Make List Slot Value(Values: Array of String) β Lex Bot Slot | Pure | Static | A filled List slot (several values, for example toppings). |
| Make Intent(Name: String, Slots: Map String β Lex Bot Slot, State: Lex Bot Intent State, Confirmation State: Lex Bot Confirmation State) β Lex Bot Intent | Pure | Static | An intent with slots (name -> slot), state and confirmation state. |
| Set Intent Slot(Intent: Lex Bot Intent, Slot Name: String, Slot: Lex Bot Slot) β Lex Bot Intent | Pure | Static | Returns a copy of Intent with one slot set (or replaced). |
| Make Dialog Action(Type: Lex Bot Dialog Action Type, Slot To Elicit: String, Elicitation Style: String) β Lex Bot Dialog Action | Pure | Static | A dialog action: what Lex does next (for example Elicit Slot "Size"). |
| Make Active Context(Name: String, Attributes: Map String β String, Time To Live Seconds: Integer, Turns To Live: Integer) β Lex Bot Active Context | Pure | Static | An active context that enables follow-up intents for a time and a number of turns. |
| Make Runtime Hint(Intent Name: String, Slot Name: String, Phrases: Array of String) β Lex Bot Runtime Hint | Pure | Static | A runtime hint: phrases that make one slot easier to recognize (item names, character names...). Add it to a session state. |
| Session State To Json(State: Lex Bot Session State) β String | Pure | Static | The session state as Lex V2 JSON (to save a conversation or log it). |
| Session State From Json(Json: String) β Boolean, State | Pure | Static | Reads a session state from Lex V2 JSON (Session State To JSON, a Lambda event or a saved game). |
| Generate Session Id() β String | Callable | Static | A new random session id (lower-case GUID). Every player / NPC conversation needs its own. |
| Decode Lex Header(Encoded: String) β String | Pure | Static | Decodes a Lex header value (base64, gzip): utterance session state, messages, interpretations - for example from your own HTTP calls. |
| Encode Lex Header(Text: String) β String | Pure | Static | Encodes text the way Lex expects in utterance headers (gzip, then base64). |
Response 13
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Message Text(Message: Lex Bot Message) β String | Pure | Static | Readable text of a message: plain text, SSML without tags, card title + subtitle, custom payload as it is. |
| Join Messages(Messages: Array of Lex Bot Message, Separator: String) β String | Pure | Static | The readable text of all messages, joined with Separator (a space by default). |
| Is Response Card(Message: Lex Bot Message) β Boolean | Pure | Static | True when the message is an image response card (show buttons instead of text). |
| Get Card Buttons(Message: Lex Bot Message) β Array of Lex Bot Button | Pure | Static | The buttons of a response card (empty for other messages). Send a button's Value back with Send Text. |
| Get Messages Of Type(Messages: Array of Lex Bot Message, Type: Lex Bot Message Type) β Array of Lex Bot Message | Pure | Static | Only the messages of one type, for example all Custom Payload messages. |
| Intent State To Text(State: Lex Bot Intent State) β String | Pure | Static | Intent state as Lex writes it ("InProgress", "Fulfilled"...), empty for Not Set. |
| Dialog Action Type To Text(Type: Lex Bot Dialog Action Type) β String | Pure | Static | Dialog action type as Lex writes it ("ElicitSlot", "Close"...), empty for Not Set. |
| Get Slot Value(Intent: Lex Bot Intent, Slot Name: String) β Boolean, Value | Pure | Static | The interpreted value of a slot (falls back to what the user said). False when the slot is missing or empty. |
| Get Filled Slot Names(Intent: Lex Bot Intent) β Array of String | Pure | Static | Names of the slots that have a value. |
| Get Top Interpretation(Response: Lex Bot Response) β Boolean, Interpretation | Pure | Static | The interpretation Lex chose (the first one) and its confidence. False when there is none. |
| Find Interpretation(Response: Lex Bot Response, Intent Name: String) β Boolean, Interpretation | Pure | Static | The interpretation of one intent (for example to check how likely "CancelOrder" was). False when it is not listed. |
| Is Conversation Ended(Response: Lex Bot Response) β Boolean, Reason | Pure | Static | True when the turn closed the intent (dialog action Close), with the reason (Fulfilled / Failed / Closed). |
| Strip SSML(Ssml: String) β String | Pure | Static | Removes SSML tags and decodes XML entities ("<speak>Hi <break/>there</speak>" -> "Hi there"). |
Locale 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Locale From Culture(Culture: String) β String | Pure | Static | Lex locale id of a culture: "en-US" -> "en_US", "de" -> "de_DE", "pt-BR" -> "pt_BR". Empty Culture = the game's current culture. |
| Get Supported Locales() β Array of String | Pure | Static | Locale ids Amazon Lex V2 supports (at the time of writing; your bot must have the locale built). |
| Is Supported Locale(Locale: String) β Boolean | Pure | Static | True when Locale is one of Get Supported Locales. |
Audio 6
| Node | Type | Available on | Description |
|---|---|---|---|
| Create Sound Wave From Pcm(Pcm: Array of Byte, Sample Rate: Integer, Num Channels: Integer) β Lex Bot Sound Wave | Callable | Static | Wraps 16-bit little-endian PCM in a playable sound wave. |
| Load WAV As PCM(File Path: String, Target Sample Rate: Integer) β Boolean, Pcm, Problem | Callable | Static | Loads a 16-bit PCM WAV file and converts it to mono at Target Sample Rate (16000 for Lex). Relative paths are below Saved. |
| Save PCM As WAV(Pcm: Array of Byte, Sample Rate: Integer, Num Channels: Integer, File Path: String) β Boolean | Callable | Static | Writes 16-bit PCM as a WAV file (for example a reply sound's Get Pcm Data). Relative paths are below Saved. |
| Resample PCM16(Pcm: Array of Byte, In Sample Rate: Integer, In Num Channels: Integer, Out Sample Rate: Integer) β Array of Byte | Pure | Static | Converts interleaved 16-bit PCM to mono at another sample rate (linear resampling). |
| Get Pcm Data() β Array of Byte | Pure | Sound Wave Procedural | The raw audio: interleaved 16-bit signed little-endian samples (Save PCM As WAV writes it to a file). |
| Get Spoken Text() β String, Pcm Rate | Pure | Sound Wave Procedural | The text of the bot messages this sound speaks, and its sample rate in Hz. |
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 | Response (Lex Bot Response), Error (Lex Bot Error) | LexBotTurnAction | The bot answered (or the session call succeeded). |
| On Failure | Response (Lex Bot Response), Error (Lex Bot Error) | LexBotTurnAction | The request failed; Error says why. |
| On Granted | β | LexBotPermissionAction | |
| On Denied | β | LexBotPermissionAction | |
| On Bot Message | Message (Lex Bot Message), Index (Integer) | LexBotConversationComponent | Fires once per bot message of a turn, in order (Index 0 first). |
| On Intent Changed | Intent (Lex Bot Intent), Previous Intent Name (String) | LexBotConversationComponent | The bot recognized a different intent. |
| On Slot Filled | Slot Name (String), Slot (Lex Bot Slot) | LexBotConversationComponent | A slot of the current intent got a (new) value. |
| On Conversation Ended | Reason (Lex Bot Conversation End), Intent (Lex Bot Intent) | LexBotConversationComponent | The bot closed the intent: Fulfilled, Failed or Closed. |
| On Response | Response (Lex Bot Response) | LexBotConversationComponent | Every complete response (after the other events of the turn). |
| On Transcript | Text (String) | LexBotConversationComponent | What Lex heard for a spoken turn (or the text that was sent). |
| On Error | Error (Lex Bot Error) | LexBotConversationComponent | A request or the microphone failed (Error.Code: AWS error, NoSpeech, MicrophonePermission, Unsupported...). |
| On Speech Started | β | LexBotConversationComponent | The microphone level rose above the threshold. |
| On Speech Ended | β | LexBotConversationComponent | The player stopped speaking (silence timeout). |
| On Response Audio Finished | β | LexBotConversationComponent | A reply played by this component finished. |
Project settings
Configure once under Project Settings βΊ Plugins βΊ LexBot β 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 bot and identity pool, for example "us-east-1" or "eu-west-2". |
| 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. Empty = the regional AWS endpoint (runtime-v2-lex.<region>.amazonaws.com). |
| 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 (LogLexBot). |
| Default Bot Id | Bot | String | Bot id (10 characters, Lex console > Bots > your bot) used when a node or component leaves Bot Id empty. |
| Default Bot Alias Id | Bot | String | Bot alias id used when a node leaves it empty. "TSTALIASID" is the draft test alias of every bot (development only). |
| Default Locale Id | Bot | String | Locale id used when a node leaves it empty, for example "en_US", "en_GB", "de_DE" (see Get Supported Locales). |
| Default Response Audio | Bot | Audio Format | Spoken replies for conversation components: None = text only (Recognize Text), PCM = sound waves you can play. |
| Microphone Sample Rate | Microphone | Integer | Sample rate the microphone audio is converted to before it is sent (Lex accepts 8000 or 16000). |
| Silence Threshold | Microphone | Float | RMS level (0..1) above which the microphone input counts as speech. |
| Silence Timeout Seconds | Microphone | Float | Seconds of silence after speech that end the utterance (and send it when Auto Send On Silence is on). |
| Max Utterance Seconds | Microphone | Float | Longest utterance the microphone records before it is sent automatically. |
| No Speech Timeout Seconds | Microphone | Float | Listening stops with a NoSpeech error when nobody speaks for this long (0 = wait forever). |
Options & enums
| Enum | Values |
|---|---|
| Credential Mode | Cognito Identity Pool Static Keys Default Credential Chain |
| Intent State | Not Set In Progress Waiting Ready For Fulfillment Fulfillment In Progress Fulfilled Failed |
| Confirmation State | None Confirmed Denied |
| Dialog Action Type | Not Set Elicit Intent Elicit Slot Confirm Intent Delegate Close None |
| Message Type | Plain Text SSML Custom Payload Image Response Card |
| Sentiment | Unknown Positive Negative Neutral Mixed |
| Slot Shape | Scalar List Composite |
| Conversation End | Fulfilled Failed Closed |
| Audio Format | None (text only) PCM 16 kHz (sound wave) MPEG (bytes) Ogg (bytes) |
| Dialog State | Idle Waiting For Bot Listening Eliciting Intent Eliciting Slot Confirming Intent Processing Ended |
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 |
|---|---|---|
| LexBot | Runtime | Default |
Technical details
| Code modules | LexBot (Runtime), LexBotSdk (External, Source/ThirdParty - prebuilt AWS SDK for C++) |
|---|---|
| Blueprints | 0 Β· C++ classes: 12 |
| 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), in Source/ThirdParty/LexBotSdk |
| Engine versions | Unreal Engine 4.27 Β· 5.8 β a build for each is included |
| C++ classes | 11 + 14 structs |
| Blueprint nodes | 81 |
| Events | 14 |
| Documentation | Documentation.html (in the download) |
| Download | LexBot.zip Β· 35.1 MB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| LexBot 4.27.zip | Plugin build for Unreal Engine 4.27 |
| LexBot 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 LexBot folder into your project's Plugins/ folder (create it if needed).
- Open the project, enable LexBot under Edit βΊ Plugins and restart the editor.
- Fill in Project Settings βΊ Plugins βΊ LexBot.
- Right-click in any Blueprint graph and search LexBot β 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 and an Amazon Lex V2 bot; Lex and Cognito usage is billed by AWS. Uses the Lex V2 request / response operations (RecognizeText, RecognizeUtterance, Put / Get / Delete Session), which work on every platform; the HTTP/2 streaming operation is not used. Microphone capture is available on Win64 and Android (Android asks for RECORD_AUDIO through the engine's AndroidPermission plugin); on Linux send recorded audio instead. 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 LexBot 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
- Recognize Text: messages, intent and slots, interpretations with NLU confidence,β¦
- Recognize Utterance: speech in (any PCM rate / channels), transcript and optionalβ¦
- Recognize Text With Voice Reply and Recognize WAV File
- Put Session, Get Session, Delete Session
- LexBot Conversation component: session handling, turn queue, microphone withβ¦
- Events: On Bot Message, On Intent Changed, On Slot Filled, On Conversation Ended, Onβ¦
- Plain text, SSML, custom payload and image response card messages with buttons
- Session attributes, request attributes, active contexts and runtime hints
- Locale From Culture and the list of Lex V2 locales
- Amazon Cognito identity pools, static keys and the default AWS credential chain
- 90 Blueprint nodes, C++ API with a native callback
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 LexBot β 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