20% off Steal the Deal With Unreal Engine Plugins For Grab
GameLiftMatch
Amazon GameLift matchmaking for the game client: FlexMatch tickets, queue placement, session search and creation, region latency and server travel from Blueprints and C+β¦
Highlights
All 11 features βGameLiftMatch connects your game client to Amazon GameLift without a matchmaking backend of your own. Players get temporary AWS credentials from an Amazon Cognito identity pool and call GameLift directly, from Blueprints or C++.
Find Match does FlexMatch in one node: it submits a ticket with your players, their attributes and their region latencies, reports every status change (queued, searching, requires acceptance, placing), and returns the server address with a player session for each player once the match is ready. Start Matchmaking, Wait For Match, Accept Match and Stop Matchmaking give full control over tickets and parties.
Start Game Session Placement and Wait For Placement request new game sessions through a queue, placed in the best region for your players. Search Game Sessions, Describe Game Sessions, Create Game Session and Create Player Session cover server browsers and direct sessions. Create Game Session can wait until the server has activated the session.
Measure Region Latencies times connections to every region at once with the engine's own sockets. It returns a latency map sorted fastest first that plugs straight into matchmaking and placement. Make Connect URL and Travel To Game Session take any result to the server with the player session id in the URL.
Players get credentials from an Amazon Cognito identity pool: as guests, or signed in with a token from a Cognito user pool, Google, Apple, Facebook or any OpenID provider through Set Login Token. Their identity id is the default player id. Static keys and the default AWS credential chain are available for development. Requests run on background worker threads with automatic retries, so the game thread never blocks, and every result arrives back on the game thread.
GameLiftMatch 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, including an example IAM policy.
Key features
- Find Match: FlexMatch ticket, status updates, acceptance and connection info in one
- Start Matchmaking, Wait For Match, Accept Match, Stop Matchmaking with player
- Start Game Session Placement, Wait For Placement, Stop Game Session Placement for
- Search Game Sessions (filter and sort expressions, paging), Describe Game Sessions
- Create Game Session (optionally waits until active) and Create Player Session
- Measure Region Latencies with engine sockets, sorted fastest first, plus Get Best Region
- Make Connect URL and Travel To Game Session (DNS name for TLS fleets, PlayerSessionId
- Amazon Cognito identity pools for guest and signed-in players (Set Login Token for any
- Static keys (development) and the default AWS credential chain
- Project Settings defaults for matchmaking configuration, queue, fleet, alias and poll
- Background worker threads, automatic retries with back-off, timeouts; all results on
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 |
|---|---|---|---|
| GameLiftMatchLibrary | Function library | 11 | Configuration, identity and connection helpers for GameLiftMatch. |
| 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
GameLiftMatch 2
| Node | Type | Available on | Description |
|---|---|---|---|
| Cancel | Async | Async | Stops waiting for this request: none of its output pins fire any more. |
| 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 (the home region of your fleets, queues and matchmaking configurations). |
| Set Credential Mode(Mode: Game Lift Match 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. It is also the default player id. |
| 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>. |
Connect 2
| Node | Type | Available on | Description |
|---|---|---|---|
| Make Connect Url(Connection: Game Lift Match Connection, Player Id: String, Extra Options: Map String β String, Prefer Dns Name: Boolean) β String | Pure | Static | Builds the URL that joins a game session: "host:port?PlayerSessionId=psess-...?Key=Value". The game server reads PlayerSessionId from the login options and validates it. |
| Travel To Game Session(Player Controller: Player Controller, Connection: Game Lift Match Connection, Player Id: String, Extra Options: Map String β String, Prefer Dns Name: Boolean) β Boolean, Url | Callable | Static | Builds the connect URL (see Make Connect URL) and travels the player there. Returns false when there is no address or no player controller. |
Latency 1
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Best Region(Latencies: Game Lift Match Latency Map) β String, Latency Ms | Pure | Static | The region with the lowest latency in a Measure Region Latencies result; empty when there is none. |
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 (Game Lift Match Error) | GameLiftMatchIdentityAction | |
| On Failure | Identity Id (String), Error (Game Lift Match Error) | GameLiftMatchIdentityAction | |
| On Status Changed | Ticket (Game Lift Match Ticket), Error (Game Lift Match Error) | GameLiftMatchTicketWaitBase | Fires whenever the ticket status changes (Queued, Searching, Requires Acceptance, Placing). Not final. |
| On Requires Acceptance | Ticket (Game Lift Match Ticket), Error (Game Lift Match Error) | GameLiftMatchTicketWaitBase | Fires when a proposed match needs Accept Match from every player (Ticket.PlayerIds). Not final. |
| On Matched | Ticket (Game Lift Match Ticket), Error (Game Lift Match Error) | GameLiftMatchTicketWaitBase | Final: the match is ready; Ticket.Connection holds the server address and a player session per player. |
| On Failed | Ticket (Game Lift Match Ticket), Error (Game Lift Match Error) | GameLiftMatchTicketWaitBase | Final: the ticket Failed, was Cancelled or Timed Out, the wait limit was reached, or a request failed. |
| On Placed | Placement (Game Lift Match Placement), Error (Game Lift Match Error) | GameLiftMatchWaitPlacementAction | Final: the game session is running; Placement.Connection holds the address and player sessions. |
Project settings
Configure once under Project Settings βΊ Plugins βΊ GameLiftMatch β 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 GameLift resources (home region of fleets, queues and matchmaking configurations), for example "us-east-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 (LogGameLiftMatch). |
| Default Matchmaking Configuration | GameLift | String | FlexMatch matchmaking configuration used when Start Matchmaking / Find Match leave Configuration Name empty. |
| Default Queue Name | GameLift | String | Game session queue (name or ARN) used when Start Game Session Placement leaves Queue Name empty. |
| Default Fleet Id | GameLift | String | Fleet (id or ARN) used by Search / Describe / Create Game Session when neither a fleet nor an alias is given and Default Alias Id is empty. |
| Default Alias Id | GameLift | String | Alias (id or ARN) used by Search / Describe / Create Game Session when neither a fleet nor an alias is given. Takes precedence over Default Fleet Id. |
| Poll Interval Seconds | GameLift | Float | Seconds between status checks of Wait For Match, Find Match and Wait For Placement when the node leaves Poll Interval at 0. |
| Latency Regions | Latency | Array of String | Regions measured by Measure Region Latencies when its Regions input is empty. List the Regions and locations of your fleets. |
| Latency Host Format | Latency | String | Host that Measure Region Latencies connects to; {region} is replaced by the region name. |
| Latency Port | Latency | Integer | TCP port that Measure Region Latencies connects to. |
Options & enums
| Enum | Values |
|---|---|
| Credential Mode | Cognito Identity Pool Static Keys Default Credential Chain |
| Ticket Status | Unknown Queued Searching Requires Acceptance Placing Completed Failed Cancelled Timed Out |
| Placement Status | Unknown Pending Fulfilled Cancelled Timed Out Failed |
| Session Status | Unknown Active Activating Terminated Terminating Error |
| Attribute Type | String Number String List String Number Map |
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 |
|---|---|---|
| GameLiftMatch | Runtime | Default |
Technical details
| Code modules | GameLiftMatch (Runtime), GameLiftMatchSdk (External, Source/ThirdParty - prebuilt AWS SDK for C++) |
|---|---|
| Blueprints | 0 Β· C++ classes: 18 |
| 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 and the AWS Common Runtime libraries (Apache-2.0), in Source/ThirdParty/GameLiftMatchSdk |
| Engine versions | Unreal Engine 4.27 Β· 5.8 β a build for each is included |
| C++ classes | 18 + 9 structs |
| Blueprint nodes | 13 |
| Events | 7 |
| Documentation | Documentation.html (in the download) |
| Download | GameLiftMatch.zip Β· 40.6 MB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| GameLiftMatch 4.27.zip | Plugin build for Unreal Engine 4.27 |
| GameLiftMatch 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 GameLiftMatch folder into your project's Plugins/ folder (create it if needed).
- Open the project, enable GameLiftMatch under Edit βΊ Plugins and restart the editor.
- Fill in Project Settings βΊ Plugins βΊ GameLiftMatch.
- Right-click in any Blueprint graph and search GameLiftMatch β or include the public headers from C++.
- Package for your target platform (Windows, Linux, Android).
Good to know
Built and verified warning-free for Unreal Engine 4.27 and 5.8. This is the game-client side of Amazon GameLift: it requires an AWS account with GameLift fleets running your dedicated server, and that server must validate each player session. GameLift and Cognito usage is billed by AWS. 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 GameLiftMatch 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
- Find Match: FlexMatch ticket, status updates, acceptance and connection info in oneβ¦
- Start Matchmaking, Wait For Match, Accept Match, Stop Matchmaking with playerβ¦
- Start Game Session Placement, Wait For Placement, Stop Game Session Placement forβ¦
- Search Game Sessions (filter and sort expressions, paging), Describe Game Sessions
- Create Game Session (optionally waits until active) and Create Player Session
- Measure Region Latencies with engine sockets, sorted fastest first, plus Get Best Region
- Make Connect URL and Travel To Game Session (DNS name for TLS fleets, PlayerSessionIdβ¦
- Amazon Cognito identity pools for guest and signed-in players (Set Login Token for anyβ¦
- Static keys (development) and the default AWS credential chain
- Project Settings defaults for matchmaking configuration, queue, fleet, alias and pollβ¦
- Background worker threads, automatic retries with back-off, timeouts; all results onβ¦
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 GameLiftMatch β 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