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…

Malware-scannedSigned licence keyInstant downloadUpdates included
LexBot β€” screenshot 1
LexBot β€” screenshot 2
LexBot β€” screenshot 3
LexBot β€” screenshot 4
LexBot β€” screenshot 5
LexBot β€” screenshot 6
LexBot β€” screenshot 7
LexBot β€” screenshot 8
LexBot β€” screenshot 9
LexBot β€” screenshot 10
LexBot β€” screenshot 11
LexBot β€” screenshot 12
LexBot β€” screenshot 13
LexBot β€” screenshot 14
LexBot β€” screenshot 15
LexBot β€” screenshot 16
LexBot β€” screenshot 17
LexBot β€” screenshot 18
1 / 18
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…
$74.99

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.

81Blueprint nodes
14Events
23Project settings
2Engine builds

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:

ClassTypeNodesUse it for
LexBotLibraryFunction library46Configuration, identity, session-state builders, response helpers and audio helpers for LexBot.
LexBotConversationComponentActor component31A conversation with an Amazon Lex V2 bot for an NPC, a companion or voice commands.
LexBotSoundWaveSound Wave Procedural2A 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 nodesLatent Blueprint nodes2Latent 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
NodeTypeAvailable onDescription
CancelAsyncAsyncStops waiting for this request: none of its output pins fire any more. The request itself may still complete on AWS.
Is FinishedAsyncAsyncTrue after Cancel was called or the node finished.
Conversation 8
NodeTypeAvailable onDescription
Send Text(Text: String) β†’ BooleanCallableComponentSends 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) β†’ BooleanCallableComponentSends recorded speech: 16-bit PCM, any rate / channel count (converted to 16 kHz mono).
Is Waiting For Response() β†’ BooleanPureComponentTrue while a turn is on its way to the bot (or queued).
Reset Conversation(Delete On Server: Boolean)CallableComponentStarts a new conversation: new session id, no intent. Session attributes are kept and sent with the next turn.
Sync Session From ServerCallableComponentReads the session from the bot (Get Session) and updates intent, slots and attributes - for example after a Lambda changed them.
Get Session Id() β†’ StringPureComponentThe session id of this conversation (created on first use).
Set Session Id(New Session Id: String)CallableComponentContinues 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)CallableComponentTalks to another bot from now on (empty fields = settings). Call Reset Conversation to start fresh.
State 8
NodeTypeAvailable onDescription
Get Current Intent() β†’ Lex Bot IntentPureComponentThe intent the bot is working on, with its slots.
Get Slot Value(Slot Name: String) β†’ Boolean, ValuePureComponentInterpreted value of a slot of the current intent. False when the slot is empty.
Get All Slots() β†’ Map String β†’ Lex Bot SlotPureComponentAll slots of the current intent (empty slots have Has Value = false).
Get Dialog State() β†’ Lex Bot Dialog State, Slot To ElicitPureComponentWhere the conversation is (eliciting a slot, confirming, ended...) and which slot the bot asks for.
Get Last Transcript() β†’ StringPureComponentWhat Lex heard last (spoken turns) or the last text sent.
Get Last Response() β†’ Lex Bot ResponsePureComponentThe full last response (messages, interpretations, session state, sound).
Get Conversation History() β†’ Array of Lex Bot TurnPureComponentPlayer and bot lines of this conversation, oldest first (up to Max History).
Clear HistoryCallableComponentForgets the conversation history (the session on the bot is not affected).
Attributes 6
NodeTypeAvailable onDescription
Get Session Attributes() β†’ Map String β†’ StringPureComponentSession 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)CallableComponentSets a session attribute; it is sent with the next turn (for example "playerName", "gold").
Remove Session Attribute(Key: String)CallableComponentRemoves one session attribute (on the bot too, with the next turn).
Clear Session AttributesCallableComponentRemoves all session attributes (on the bot too, with the next turn).
Set Request Attribute(Key: String, Value: String)CallableComponentA request attribute sent with every following turn (not stored by Lex), for example "x-amz-lex:..." is reserved - use your own keys.
Clear Request AttributesCallableComponentStops sending request attributes.
Microphone 8
NodeTypeAvailable onDescription
Start Microphone(Device Index: Integer) β†’ BooleanCallableComponentStarts recording the player (-1 = default device). The utterance is sent when they stop speaking (Auto Send On Silence) or on Stop Microphone.
Stop Microphone() β†’ BooleanCallableComponentStops recording and sends the utterance. Returns false when nothing was said.
Cancel MicrophoneCallableComponentStops recording and throws the audio away.
Is Microphone Active() β†’ BooleanPureComponentTrue while the microphone records.
Get Input Level() β†’ Rms, PeakPureComponentMicrophone level after gain: RMS and peak (0..1), smoothed for meters.
List Capture Devices() β†’ Array of Lex Bot Capture DeviceCallableComponentThe audio input devices of this machine (empty where capture is not supported).
Is Microphone Supported() β†’ BooleanPureStaticTrue on platforms with microphone capture (Win64, Android).
Has Microphone Permission() β†’ BooleanPureStaticAndroid: whether RECORD_AUDIO was granted. Win64: true. Linux: false.
Voice 3
NodeTypeAvailable onDescription
Play Response Audio(Sound: Sound Base) β†’ Audio ComponentCallableComponentPlays a reply sound (None = the last reply) 2D or at the owner, and stops the previous one.
Stop Response AudioCallableComponentStops the reply that is playing (if any).
Is Playing Response() β†’ BooleanPureComponentTrue while a reply played by this component is audible.
Config 3
NodeTypeAvailable onDescription
Set Region(Region: String)CallableStaticSwitches the AWS region used by every following request.
Set Credential Mode(Mode: Lex Bot Credential Mode)CallableStaticOverrides the credential mode from the project settings at runtime.
Is Configured() β†’ Boolean, ProblemPureStaticChecks the settings (credentials and default bot) and returns false with a reason when requests cannot work yet.
Identity 5
NodeTypeAvailable onDescription
Set Login Token(Provider: String, Token: String)CallableStaticSigns the player in to the Cognito identity pool with a token from an identity provider.
Clear Login TokensCallableStaticForgets 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)CallableStaticUses these credentials from now on (Static Keys mode), for example temporary keys handed out by your own backend.
Get Identity Id() β†’ StringPureStaticThe Cognito identity id of this player, empty until credentials were resolved once.
Make User Pool Provider Name(Region: String, User Pool Id: String) β†’ StringPureStaticBuilds the identity-pool login key of a Cognito user pool: cognito-idp.<region>.amazonaws.com/<user pool id>.
JSON 3
NodeTypeAvailable onDescription
Struct To JSON(Struct: Integer) β†’ Boolean, JsonCallableStaticConverts 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 StructCallableStaticFills 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, ValuePureStaticReads 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
NodeTypeAvailable onDescription
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 StatePureStaticBuilds 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 SlotPureStaticA filled scalar slot. Original Value empty = the same as Value.
Make List Slot Value(Values: Array of String) β†’ Lex Bot SlotPureStaticA 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 IntentPureStaticAn 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 IntentPureStaticReturns 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 ActionPureStaticA 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 ContextPureStaticAn 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 HintPureStaticA 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) β†’ StringPureStaticThe session state as Lex V2 JSON (to save a conversation or log it).
Session State From Json(Json: String) β†’ Boolean, StatePureStaticReads a session state from Lex V2 JSON (Session State To JSON, a Lambda event or a saved game).
Generate Session Id() β†’ StringCallableStaticA new random session id (lower-case GUID). Every player / NPC conversation needs its own.
Decode Lex Header(Encoded: String) β†’ StringPureStaticDecodes a Lex header value (base64, gzip): utterance session state, messages, interpretations - for example from your own HTTP calls.
Encode Lex Header(Text: String) β†’ StringPureStaticEncodes text the way Lex expects in utterance headers (gzip, then base64).
Response 13
NodeTypeAvailable onDescription
Get Message Text(Message: Lex Bot Message) β†’ StringPureStaticReadable 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) β†’ StringPureStaticThe readable text of all messages, joined with Separator (a space by default).
Is Response Card(Message: Lex Bot Message) β†’ BooleanPureStaticTrue when the message is an image response card (show buttons instead of text).
Get Card Buttons(Message: Lex Bot Message) β†’ Array of Lex Bot ButtonPureStaticThe 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 MessagePureStaticOnly the messages of one type, for example all Custom Payload messages.
Intent State To Text(State: Lex Bot Intent State) β†’ StringPureStaticIntent state as Lex writes it ("InProgress", "Fulfilled"...), empty for Not Set.
Dialog Action Type To Text(Type: Lex Bot Dialog Action Type) β†’ StringPureStaticDialog action type as Lex writes it ("ElicitSlot", "Close"...), empty for Not Set.
Get Slot Value(Intent: Lex Bot Intent, Slot Name: String) β†’ Boolean, ValuePureStaticThe 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 StringPureStaticNames of the slots that have a value.
Get Top Interpretation(Response: Lex Bot Response) β†’ Boolean, InterpretationPureStaticThe interpretation Lex chose (the first one) and its confidence. False when there is none.
Find Interpretation(Response: Lex Bot Response, Intent Name: String) β†’ Boolean, InterpretationPureStaticThe 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, ReasonPureStaticTrue when the turn closed the intent (dialog action Close), with the reason (Fulfilled / Failed / Closed).
Strip SSML(Ssml: String) β†’ StringPureStaticRemoves SSML tags and decodes XML entities ("<speak>Hi <break/>there</speak>" -> "Hi there").
Locale 3
NodeTypeAvailable onDescription
Locale From Culture(Culture: String) β†’ StringPureStaticLex 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 StringPureStaticLocale ids Amazon Lex V2 supports (at the time of writing; your bot must have the locale built).
Is Supported Locale(Locale: String) β†’ BooleanPureStaticTrue when Locale is one of Get Supported Locales.
Audio 6
NodeTypeAvailable onDescription
Create Sound Wave From Pcm(Pcm: Array of Byte, Sample Rate: Integer, Num Channels: Integer) β†’ Lex Bot Sound WaveCallableStaticWraps 16-bit little-endian PCM in a playable sound wave.
Load WAV As PCM(File Path: String, Target Sample Rate: Integer) β†’ Boolean, Pcm, ProblemCallableStaticLoads 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) β†’ BooleanCallableStaticWrites 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 BytePureStaticConverts interleaved 16-bit PCM to mono at another sample rate (linear resampling).
Get Pcm Data() β†’ Array of BytePureSound Wave ProceduralThe raw audio: interleaved 16-bit signed little-endian samples (Save PCM As WAV writes it to a file).
Get Spoken Text() β†’ String, Pcm RatePureSound Wave ProceduralThe 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++.

EventParametersFires onWhen it fires
On SuccessResponse (Lex Bot Response), Error (Lex Bot Error)LexBotTurnActionThe bot answered (or the session call succeeded).
On FailureResponse (Lex Bot Response), Error (Lex Bot Error)LexBotTurnActionThe request failed; Error says why.
On Grantedβ€”LexBotPermissionAction
On Deniedβ€”LexBotPermissionAction
On Bot MessageMessage (Lex Bot Message), Index (Integer)LexBotConversationComponentFires once per bot message of a turn, in order (Index 0 first).
On Intent ChangedIntent (Lex Bot Intent), Previous Intent Name (String)LexBotConversationComponentThe bot recognized a different intent.
On Slot FilledSlot Name (String), Slot (Lex Bot Slot)LexBotConversationComponentA slot of the current intent got a (new) value.
On Conversation EndedReason (Lex Bot Conversation End), Intent (Lex Bot Intent)LexBotConversationComponentThe bot closed the intent: Fulfilled, Failed or Closed.
On ResponseResponse (Lex Bot Response)LexBotConversationComponentEvery complete response (after the other events of the turn).
On TranscriptText (String)LexBotConversationComponentWhat Lex heard for a spoken turn (or the text that was sent).
On ErrorError (Lex Bot Error)LexBotConversationComponentA request or the microphone failed (Error.Code: AWS error, NoSpeech, MicrophonePermission, Unsupported...).
On Speech Startedβ€”LexBotConversationComponentThe microphone level rose above the threshold.
On Speech Endedβ€”LexBotConversationComponentThe player stopped speaking (silence timeout).
On Response Audio Finishedβ€”LexBotConversationComponentA 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.

SettingSectionTypeWhat it does
RegionConnectionStringAWS region of your bot and identity pool, for example "us-east-1" or "eu-west-2".
Credential ModeCredentialsCredential ModeWhere request credentials come from.
Identity Pool IdCredentialsStringCognito identity pool, for example "us-east-1:01234567-89ab-cdef-0123-456789abcdef".
Allow Guest AccessCredentialsBooleanAllow unauthenticated (guest) identities before Set Login Token is called. The pool must allow guest access too.
Access Key IdCredentialsStringAccess key for Static Keys mode. Keys saved here end up in DefaultGame.ini - use them for development and servers only.
Secret Access KeyCredentialsStringSecret key for Static Keys mode.
Allow Static Keys In ShippingCredentialsBooleanStatic keys are refused in Shipping builds unless this is enabled (for example on a dedicated server).
Endpoint OverrideConnectionStringCustom endpoint, for example a local emulator. Empty = the regional AWS endpoint (runtime-v2-lex.<region>.amazonaws.com).
Request Timeout MsConnectionIntegerTotal time a request may take, in milliseconds.
Connect Timeout MsConnectionIntegerTime allowed to open the connection, in milliseconds.
Max RetriesConnectionIntegerAutomatic retries with exponential back-off for throttled and transient failures.
Worker ThreadsConnectionIntegerWorker threads that run requests in the background (requests never block the game thread).
Verify SSLConnectionBooleanVerify TLS certificates. Only disable for a local emulator.
Log Sdk WarningsConnectionBooleanForward SDK warnings and errors to the Output Log (LogLexBot).
Default Bot IdBotStringBot id (10 characters, Lex console > Bots > your bot) used when a node or component leaves Bot Id empty.
Default Bot Alias IdBotStringBot alias id used when a node leaves it empty. "TSTALIASID" is the draft test alias of every bot (development only).
Default Locale IdBotStringLocale id used when a node leaves it empty, for example "en_US", "en_GB", "de_DE" (see Get Supported Locales).
Default Response AudioBotAudio FormatSpoken replies for conversation components: None = text only (Recognize Text), PCM = sound waves you can play.
Microphone Sample RateMicrophoneIntegerSample rate the microphone audio is converted to before it is sent (Lex accepts 8000 or 16000).
Silence ThresholdMicrophoneFloatRMS level (0..1) above which the microphone input counts as speech.
Silence Timeout SecondsMicrophoneFloatSeconds of silence after speech that end the utterance (and send it when Auto Send On Silence is on).
Max Utterance SecondsMicrophoneFloatLongest utterance the microphone records before it is sent automatically.
No Speech Timeout SecondsMicrophoneFloatListening stops with a NoSpeech error when nobody speaks for this long (0 = wait forever).

Options & enums

EnumValues
Credential ModeCognito Identity Pool Static Keys Default Credential Chain
Intent StateNot Set In Progress Waiting Ready For Fulfillment Fulfillment In Progress Fulfilled Failed
Confirmation StateNone Confirmed Denied
Dialog Action TypeNot Set Elicit Intent Elicit Slot Confirm Intent Delegate Close None
Message TypePlain Text SSML Custom Payload Image Response Card
SentimentUnknown Positive Negative Neutral Mixed
Slot ShapeScalar List Composite
Conversation EndFulfilled Failed Closed
Audio FormatNone (text only) PCM 16 kHz (sound wave) MPEG (bytes) Ogg (bytes)
Dialog StateIdle Waiting For Bot Listening Eliciting Intent Eliciting Slot Confirming Intent Processing Ended

Compatibility

UE 4.27LexBot 4.27.zipUE 5.8LexBot 5.8.zip

One ready-made build per engine version is included in the download β€” copy the one that matches your project.

PlatformSupported in
WindowsEditor & packaged
LinuxEditor & packaged
AndroidPackaged builds
ModuleTypeLoading phase
LexBotRuntimeDefault

Technical details

Code modulesLexBot (Runtime), LexBotSdk (External, Source/ThirdParty - prebuilt AWS SDK for C++)
Blueprints0 Β· C++ classes: 12
Network replicatedNo
Development platformsWindows: Yes, Mac: No, Linux: Yes
Target build platformsWin64, Linux, Android
Third-party softwareYes - AWS SDK for C++ 1.11.916 (Apache-2.0), in Source/ThirdParty/LexBotSdk
Engine versionsUnreal Engine 4.27 Β· 5.8 β€” a build for each is included
C++ classes11 + 14 structs
Blueprint nodes81
Events14
DocumentationDocumentation.html (in the download)
DownloadLexBot.zip Β· 35.1 MB
Versionv1.0.0

What's in the download

FileWhat it is
LexBot 4.27.zipPlugin build for Unreal Engine 4.27
LexBot 5.8.zipPlugin build for Unreal Engine 5.8
Documentation.htmlDocumentation (open in a browser)

Quick start

  1. Unzip the download and pick the build that matches your engine (4.27 Β· 5.8).
  2. Copy the LexBot folder into your project's Plugins/ folder (create it if needed).
  3. Open the project, enable LexBot under Edit β€Ί Plugins and restart the editor.
  4. Fill in Project Settings β€Ί Plugins β€Ί LexBot.
  5. Right-click in any Blueprint graph and search LexBot β€” or include the public headers from C++.
  6. 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

WindowsLinuxAndroid

Requirements

  • Unreal Engine 4.27 and 5.8
  • Develop on Windows (Win64)
  • Blueprints and C++

In the download

FileLexBot.zip
FormatZIP
Size35.1 MB
Versionv1.0.0
Licence fileIncluded in the archive
SHA-2563c3be6db0a3f5c41…

Personal

$74.99

One non-commercial project

  • 1 activation seat
  • 1 year of updates
  • One end product
  • Non-commercial use
  • Community support
  • 14-day refund window
Read the Personal terms
β˜… Most popular

Commercial

$224.99

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
Read the Commercial terms

Extended

$709.00

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
Read the Extended terms

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.

  1. v1.0.0Latest
    • Unreal Engine 4.27 and 5.8
    • Blueprint and C++ API, HTML documentation
β€”
β˜…β˜…β˜…β˜…β˜…
No reviews yet
5β˜…0%
4β˜…0%
3β˜…0%
2β˜…0%
1β˜…0%

Be the first to review LexBot β€” reviews come from customers who bought it, so every one is a verified purchase.

Reviews are for customers who bought LexBot.
Email supportsupport@alphaxp.net β€” include your order reference.
What support coversInstallation help, download or activation problems, and questions about documented behaviour, for your licence term.
Keys & downloadsLost a key or a download link? Everything you bought is in My library.
Refunds & terms14-day refunds from your order page. Refund policy Β· Personal terms Β· Commercial terms Β· Extended terms

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

From the same studio
$74.99Personal licence Β· LexBot
✦ Why TechHarbour

Software you own, from the people who built it.

117 products, one studio. Each ships with a signed licence key, an instant download and 14-day refunds β€” and every file is malware-scanned before it goes on sale.