MultiplayerStack

Player accounts, player profiles and matchmaking on AWS in one plugin: Amazon Cognito sign-in, DynamoDB profiles, stats and leaderboards, and GameLift FlexMatch, wired t…

Malware-scannedSigned licence keyInstant downloadUpdates included
MultiplayerStack β€” screenshot 1
MultiplayerStack β€” screenshot 2
MultiplayerStack β€” screenshot 3
MultiplayerStack β€” screenshot 4
MultiplayerStack β€” screenshot 5
MultiplayerStack β€” screenshot 6
MultiplayerStack β€” screenshot 7
MultiplayerStack β€” screenshot 8
MultiplayerStack β€” screenshot 9
MultiplayerStack β€” screenshot 10
MultiplayerStack β€” screenshot 11
MultiplayerStack β€” screenshot 12
MultiplayerStack β€” screenshot 13
MultiplayerStack β€” screenshot 14
MultiplayerStack β€” screenshot 15
MultiplayerStack β€” screenshot 16
MultiplayerStack β€” screenshot 17
MultiplayerStack β€” screenshot 18
1 / 18
Sign In And Connect, Restore Session And Connect, Connect Player, Sign Out Everywhere
Get Player Id / Get Player Name - one player id (the Cognito identity id) for every…
Player profiles in DynamoDB: Ensure, Load, Save, Update Profile Attributes
Update Player Stats (atomic counters) and Get Leaderboard by rating or any stat
Record Match Result with an Elo rating update, plus Calculate Elo
Matchmake With Profile (rating + region latencies to FlexMatch) and Find Match And Travel
$46.99

MultiplayerStack is the online backbone of a multiplayer game in a single plugin. Players create accounts and sign in with Amazon Cognito, their profile, stats and rating live in Amazon DynamoDB, and Amazon GameLift FlexMatch puts them into matches with players of similar skill - and the three are already connected, so your game needs no wiring of its own.

Sign In And Connect signs the player in, gets their AWS credentials through the identity pool and creates or loads their profile in one node. Restore Session And Connect does the same for returning players with the remembered session. From then on every DynamoDB and GameLift request runs with the player's own credentials, and the tokens are renewed automatically.

Each player has one profile item keyed by their player id: name, rating, wins, losses, draws, numeric stats and text fields. Update Player Stats changes counters atomically, Record Match Result counts the match and updates the Elo rating safely, and Get Leaderboard ranks all players by rating or any stat. Matchmake With Profile sends the player's rating and measured region latencies to FlexMatch; Find Match And Travel also takes the player to the game server when the match is ready. The MultiplayerStack Subsystem broadcasts On Signed In, On Profile Loaded, On Match Found and more for your UI.

Underneath, MultiplayerStack covers the same features as the Alpha XP plugins CognitoPass, DynamoLedger and GameLiftMatch: the full Cognito account flow (sign-up, MFA, authenticator apps, password reset, attributes), DynamoDB with plain JSON (items, queries, batches, transactions, counters) and GameLift for the client (FlexMatch, queue placement, session search, latencies, connect URLs). It uses one shared AWS connection, one set of credentials and one settings page, and can be installed next to those plugins.

All requests run on background worker threads with automatic retries, results arrive on the game thread, and every latent node can be cancelled. MultiplayerStack 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 a setup guide for the user pool, identity pool, profile table, FlexMatch rule set and an example IAM policy.

27Blueprint nodes
16Events
41Project settings
2Engine builds

Key features

  • Sign In And Connect, Restore Session And Connect, Connect Player, Sign Out Everywhere
  • Get Player Id / Get Player Name - one player id (the Cognito identity id) for every
  • Player profiles in DynamoDB: Ensure, Load, Save, Update Profile Attributes
  • Update Player Stats (atomic counters) and Get Leaderboard by rating or any stat
  • Record Match Result with an Elo rating update, plus Calculate Elo
  • Matchmake With Profile (rating + region latencies to FlexMatch) and Find Match And Travel
  • Full Cognito user-pool accounts: sign-up, sign-in with challenges, TOTP / SMS / e-mail
  • DynamoDB with plain JSON: Put / Get / Update / Delete Item, Query, Scan, Batch Get /
  • GameLift client: Find Match, Start / Wait / Accept / Stop Matchmaking, game session
  • Game Instance Subsystem events: On Signed In, On Signed Out, On Session Refreshed, On
  • Credentials from a Cognito identity pool (guest or signed in), static keys or the
  • 83 Blueprint nodes; background worker threads, retries with back-off, cancellable

Blueprint & C++ API

The API is organised into these entry points:

ClassTypeNodesUse it for
MultiplayerStackLibraryFunction library8Configuration and identity helpers shared by every area of MultiplayerStack (Login, Data, Match).
MultiplayerStackDataLibraryFunction library4Configuration, identity and JSON helpers for MultiplayerStack.
MultiplayerStackLoginLibraryFunction library4Session, token and configuration helpers for MultiplayerStack.
MultiplayerStackGlueLibraryFunction library3Player helpers that combine the Login, Data and Match areas.
MultiplayerStackMatchLibraryFunction library3Configuration, identity and connection helpers for MultiplayerStack.
MultiplayerStackSubsystemGame Instance subsystem3The player's online state in one place: account events, the cached player profile and the running matchmaking.
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

MultiplayerStack 2

NodeTypeAvailable onDescription
CancelAsyncAsyncStops waiting for this request: none of its output pins fire any more.
Is FinishedAsyncAsyncTrue after Cancel was called or the node finished.

Data β€Ί JSON 4

NodeTypeAvailable onDescription
Make Key JSON(Name: String, Value: String, Sort Name: String, Sort Value: String, Sort Value Is Number: Boolean) β†’ StringPureStaticBuilds a key JSON object such as {"pk": "{IdentityId}", "sk": "inventory"}. Leave Sort Name empty for tables without a sort key.
Struct To JSON(Struct: Integer) β†’ Boolean, JsonCallableStaticConverts any struct to a JSON object string (property names are used as keys).
JSON To Struct(Json: String) β†’ Boolean, Out StructCallableStaticFills a struct from a JSON object string; fields that are missing keep their default values.
Get Json Field(Json: String, Path: String) β†’ Boolean, ValuePureStaticReads one value from a JSON document with a path such as "inventory[2].count". Strings are returned as-is, numbers and booleans as text, objects and arrays as JSON.

Player 2

NodeTypeAvailable onDescription
Get Player Id() β†’ StringPureStaticThe player id used by every area: the Cognito identity id (key of the player profile, default GameLift player id, {IdentityId} in DynamoDB JSON), else the user-…
Get Player Name() β†’ StringPureStaticThe player's display name: the cached profile's Player Name, else the user name of the signed-in player (empty for guests).

Profile 2

NodeTypeAvailable onDescription
Calculate Elo(Player Rating: Float, Opponent Rating: Float, Outcome: Multiplayer Stack Match Outcome, K Factor: Float) β†’ Float, Rating Delta, Expected ScorePureStaticElo rating change for one match: Expected = 1 / (1 + 10^((Opponent; Player) / 400)), New = Player + K * (Score; Expected).
Get Cached Player Profile() β†’ Multiplayer Stack Player ProfilePureSubsystemThe profile last loaded or written by a profile node (Valid is false before that and after sign-out).

Config 3

NodeTypeAvailable onDescription
Set Region(Region: String)CallableStaticSwitches the AWS region used by every following request (empty = the region of the User Pool Id).
Set Credential Mode(Mode: Multiplayer Stack Credential Mode)CallableStaticOverrides the credential mode from the project settings at runtime.
Is Configured() β†’ Boolean, ProblemPureStaticChecks the settings 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. Not needed after Sign In: the user-pool ID token is registered automatically.
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>.

Login 4

NodeTypeAvailable onDescription
Is Signed In() β†’ BooleanPureStaticTrue while a player is signed in (the tokens may be renewed automatically when a node needs them).
Get Session() β†’ Multiplayer Stack Login SessionPureStaticThe signed-in player's session: user name, sub, ID and access tokens and their expiry. Valid is false when nobody is signed in.
Get Token Claims(Token: String) β†’ Boolean, Claims, JsonPureStaticDecodes the claims of a JWT such as the session's ID Token (for example "email", "sub", "cognito:groups", "exp").
Get User Pool Provider Name() β†’ StringPureStaticThe identity-pool login key of the configured user pool: cognito-idp.<region>.amazonaws.com/<user pool id>.

Match β€Ί Connect 2

NodeTypeAvailable onDescription
Make Connect Url(Connection: Multiplayer Stack Match Connection, Player Id: String, Extra Options: Map String β†’ String, Prefer Dns Name: Boolean) β†’ StringPureStaticBuilds 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: Multiplayer Stack Match Connection, Player Id: String, Extra Options: Map String β†’ String, Prefer Dns Name: Boolean) β†’ Boolean, UrlCallableStaticBuilds the connect URL (see Make Connect URL) and travels the player there. Returns false when there is no address or no player controller.

Match β€Ί Latency 1

NodeTypeAvailable onDescription
Get Best Region(Latencies: Multiplayer Stack Match Latency Map) β†’ String, Latency MsPureStaticThe region with the lowest latency in a Measure Region Latencies result; empty when there is none.

Matchmake 2

NodeTypeAvailable onDescription
Cancel Matchmaking() β†’ BooleanCallableSubsystemStops the running Matchmake With Profile / Find Match And Travel node and its ticket. Returns false when none is running.
Is Matchmaking() β†’ BooleanPureSubsystemTrue while a Matchmake With Profile / Find Match And Travel node is waiting for a match.

Events & delegates

Bind these in Blueprint (drag off the object β†’ Bind Event) or with AddDynamic in C++.

EventParametersFires onWhen it fires
On SuccessIdentity Id (String), Error (Multiplayer Stack Error)MultiplayerStackIdentityAction
On FailureIdentity Id (String), Error (Multiplayer Stack Error)MultiplayerStackIdentityAction
On Condition FailedOld Item Json (String), Error (Multiplayer Stack Error)MultiplayerStackDataPutItemAction
On Not FoundItem Json (String), Error (Multiplayer Stack Error)MultiplayerStackDataGetItemAction
On ChallengeChallenge Name (String), Challenge Parameters (Multiplayer Stack Login String Map)MultiplayerStackSignInAndConnectAction
On Status ChangedTicket (Multiplayer Stack Match Ticket), Error (Multiplayer Stack Error)MultiplayerStackMatchTicketWaitBaseFires whenever the ticket status changes (Queued, Searching, Requires Acceptance, Placing). Not final.
On Requires AcceptanceTicket (Multiplayer Stack Match Ticket), Error (Multiplayer Stack Error)MultiplayerStackMatchTicketWaitBaseFires when a proposed match needs Accept Match from every player (Ticket.PlayerIds). Not final.
On MatchedTicket (Multiplayer Stack Match Ticket), Error (Multiplayer Stack Error)MultiplayerStackMatchTicketWaitBaseFinal: the match is ready; Ticket.Connection holds the server address and a player session per player.
On FailedTicket (Multiplayer Stack Match Ticket), Error (Multiplayer Stack Error)MultiplayerStackMatchTicketWaitBaseFinal: the ticket Failed, was Cancelled or Timed Out, the wait limit was reached, or a request failed.
On PlacedPlacement (Multiplayer Stack Match Placement), Error (Multiplayer Stack Error)MultiplayerStackMatchWaitPlacementActionFinal: the game session is running; Placement.Connection holds the address and player sessions.
On Signed InSession (Multiplayer Stack Login Session)MultiplayerStackSubsystemA player signed in (Sign In, Respond To Challenge, Restore Session, Sign In And Connect, ... ).
On Signed Outβ€”MultiplayerStackSubsystemThe player signed out, deleted the account, or the saved session was rejected by the user pool.
On Session RefreshedSession (Multiplayer Stack Login Session)MultiplayerStackSubsystemThe ID and access tokens were renewed (Refresh Session or an automatic refresh).
On Profile LoadedProfile (Multiplayer Stack Player Profile)MultiplayerStackSubsystemThe player profile was loaded, created or changed by a profile node (the cached profile was updated).
On Match FoundTicket (Multiplayer Stack Match Ticket)MultiplayerStackSubsystemMatchmake With Profile / Find Match And Travel found a match (Ticket.Connection holds the server).
On Matchmaking FailedTicket (Multiplayer Stack Match Ticket), Error (Multiplayer Stack Error)MultiplayerStackSubsystemMatchmake With Profile / Find Match And Travel ended without a match (failed, timed out, cancelled on AWS, travel failed).

Project settings

Configure once under Project Settings β€Ί Plugins β€Ί MultiplayerStack β€” 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 user pool, identity pool, tables and GameLift resources, for example "us-east-1" or "eu-west-1".
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 (LogMultiplayerStack).
Credential ModeCredentialsCredential ModeWhere request credentials come from. Signed-in players are registered with the identity pool automatically.
Identity Pool IdCredentialsStringCognito identity pool, for example "us-east-1:01234567-89ab-cdef-0123-456789abcdef". Its identity id is the player id.
Allow Guest AccessCredentialsBooleanAllow unauthenticated (guest) identities before the player signs in. 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).
User Pool IdLoginStringCognito user pool, for example "us-east-1_AbCdEf123" (Amazon Cognito > User pools > the pool's overview).
App Client IdLoginStringApp client of the user pool. It needs the ALLOW_USER_PASSWORD_AUTH and ALLOW_REFRESH_TOKEN_AUTH flows.
App Client SecretLoginStringOnly for app clients created with a client secret: every request then carries the SECRET_HASH.
Remember SessionLoginBooleanKeep the player signed in between game sessions: the refresh token is stored in the SaveGame slot "MultiplayerStackSession". Restore Session uses it.
Auto RefreshLoginBooleanRefresh the tokens automatically (about 5 minutes before they expire) when a node needs them.
Login Endpoint OverrideLoginStringCustom user-pool endpoint, for example a local emulator such as "http://localhost:9229". Empty = the regional AWS endpoint.
Table PrefixDataStringPrepended to every table name, for example "mygame-prod-" so a node can just say "players".
Consistent Reads By DefaultDataBooleanUse strongly consistent reads for Get Item, Batch Get and for Query / Scan on the table itself (global secondary indexes are always eventually consistent).
Data Endpoint OverrideDataStringCustom DynamoDB endpoint, for example DynamoDB Local at "http://localhost:8000". Empty = the regional AWS endpoint.
Profile TablePlayer ProfileStringTable that holds one profile item per player (the Table Prefix applies). Its partition key is Profile Key Name (String).
Profile Key NamePlayer ProfileStringPartition key attribute of the profile table. Its value is the player id (the Cognito identity id).
Ensure Profile On ConnectPlayer ProfileBooleanCreate the profile with the defaults below during Sign In And Connect / Restore Session And Connect / Connect Player.
Default RatingPlayer ProfileFloatRating a new profile starts with.
Elo K FactorPlayer ProfileFloatElo K-factor used by Record Match Result when its K Factor input is 0 (larger = ratings move faster).
Default StatsPlayer ProfileMap String β†’ FloatExtra numeric stats every new profile starts with, for example kills = 0, xp = 0.
Leaderboard Partition KeyLeaderboardStringLeaderboards: every profile carries this attribute with the value Leaderboard Partition Value, so a global secondary index with this partition key and a stat as…
Leaderboard Partition ValueLeaderboardStringValue of Leaderboard Partition Key in every profile (one board for everybody).
Leaderboard Index FormatLeaderboardStringIndex name Get Leaderboard queries for a stat; {stat} is replaced by the stat name, for example "Rating-index".
Default Matchmaking ConfigurationMatchStringFlexMatch matchmaking configuration used when Start Matchmaking / Find Match / Matchmake With Profile leave Configuration Name empty.
Default Queue NameMatchStringGame session queue (name or ARN) used when Start Game Session Placement leaves Queue Name empty.
Default Fleet IdMatchStringFleet (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 IdMatchStringAlias (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 SecondsMatchFloatSeconds between status checks of Wait For Match, Find Match, Matchmake With Profile and Wait For Placement when the node leaves Poll Interval at 0.
Rating Attribute NameMatchStringMatchmaking attribute (Number) that Matchmake With Profile fills with the profile's Rating. Must exist in the FlexMatch rule set.
Match Endpoint OverrideMatchStringCustom GameLift endpoint, for example a local emulator such as "http://localhost:4566". Empty = the regional AWS endpoint.
Latency RegionsLatencyArray of StringRegions measured by Measure Region Latencies (and Matchmake With Profile) when no latencies are given. List the Regions and locations of your fleets.
Latency Host FormatLatencyStringHost that Measure Region Latencies connects to; {region} is replaced by the region name.
Latency PortLatencyIntegerTCP port that Measure Region Latencies connects to.

Options & enums

EnumValues
Match OutcomeWin Loss Draw
Match Ticket StatusUnknown Queued Searching Requires Acceptance Placing Completed Failed Cancelled Timed Out
Match Placement StatusUnknown Pending Fulfilled Cancelled Timed Out Failed
Match Session StatusUnknown Active Activating Terminated Terminating Error
Match Attribute TypeString Number String List String Number Map
Credential ModeCognito Identity Pool Static Keys Default Credential Chain

Compatibility

UE 4.27MultiplayerStack 4.27.zipUE 5.8MultiplayerStack 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
MultiplayerStackRuntimeDefault

Technical details

Code modulesMultiplayerStack (Runtime), MultiplayerStackSdk (External, Source/ThirdParty - prebuilt AWS SDK for C++)
Blueprints0 Β· C++ classes: 68
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) and the AWS Common Runtime libraries (Apache-2.0), in Source/ThirdParty/MultiplayerStackSdk
Engine versionsUnreal Engine 4.27 Β· 5.8 β€” a build for each is included
C++ classes68 + 14 structs
Blueprint nodes27
Events16
DocumentationDocumentation.html (in the download)
DownloadMultiplayerStack.zip Β· 50.3 MB
Versionv1.0.0

What's in the download

FileWhat it is
MultiplayerStack 4.27.zipPlugin build for Unreal Engine 4.27
MultiplayerStack 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 MultiplayerStack folder into your project's Plugins/ folder (create it if needed).
  3. Open the project, enable MultiplayerStack under Edit β€Ί Plugins and restart the editor.
  4. Fill in Project Settings β€Ί Plugins β€Ί MultiplayerStack.
  5. Right-click in any Blueprint graph and search MultiplayerStack β€” 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 with an Amazon Cognito user pool and identity pool, a DynamoDB table for player profiles and, for matchmaking, an Amazon GameLift fleet with a FlexMatch configuration; usage is billed by AWS. The app client needs the ALLOW_USER_PASSWORD_AUTH and ALLOW_REFRESH_TOKEN_AUTH flows. 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, and every module, class, log category and setting has its own name, so MultiplayerStack can be installed next to other AWS-based plugins. The remembered refresh token is stored in a local SaveGame file. Developed and maintained by Alpha XP.

Everything included

  • Sign In And Connect, Restore Session And Connect, Connect Player, Sign Out Everywhere
  • Get Player Id / Get Player Name - one player id (the Cognito identity id) for every…
  • Player profiles in DynamoDB: Ensure, Load, Save, Update Profile Attributes
  • Update Player Stats (atomic counters) and Get Leaderboard by rating or any stat
  • Record Match Result with an Elo rating update, plus Calculate Elo
  • Matchmake With Profile (rating + region latencies to FlexMatch) and Find Match And Travel
  • Full Cognito user-pool accounts: sign-up, sign-in with challenges, TOTP / SMS / e-mail…
  • DynamoDB with plain JSON: Put / Get / Update / Delete Item, Query, Scan, Batch Get /…
  • GameLift client: Find Match, Start / Wait / Accept / Stop Matchmaking, game session…
  • Game Instance Subsystem events: On Signed In, On Signed Out, On Session Refreshed, On…
  • Credentials from a Cognito identity pool (guest or signed in), static keys or the…
  • 83 Blueprint nodes; background worker threads, retries with back-off, cancellable…

Platforms

WindowsLinuxAndroid

Requirements

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

In the download

FileMultiplayerStack.zip
FormatZIP
Size50.3 MB
Versionv1.0.0
Licence fileIncluded in the archive
SHA-2562d8058ffda8660e1…

Personal

$46.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

$140.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

$444.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 MultiplayerStack β€” reviews come from customers who bought it, so every one is a verified purchase.

Reviews are for customers who bought MultiplayerStack.
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
$46.99Personal licence Β· MultiplayerStack
✦ 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.