FOR DEVELOPERS / UNREAL PREVIEW

Fetch verified game data in Unreal.

This walkthrough uses the public Unreal subsystem API and the prebuilt Win64 review plugin. The API documentation is public. Binary SDK terms apply

Before you begin

The 0.28.14-preview review package targets Unreal Engine 5.8 on Windows x64 and carries GameReader 0.28.17-preview with C ABI revision 16. It is an owner-side technical review artifact, not a public download yet. Obtain the matching plugin package and review its included binary license before integration. The package contains the public Unreal header and compiled module plus the native GameReader DLL; it contains no implementation source. Read the licensing boundary.

You need a hosted AmoosedWeb site with a game catalogue containing an item for your game ID and version. This subsystem supports hosted and externally indexed catalogues, public items, and protected member items. Keep external index credentials and member key files outside published game content.

1. Install the plugin

  1. Copy the packaged AmoosedWeb directory into your Unreal project's Plugins/ directory.
  2. Build and open the project with the matching Unreal Engine 5.8 Win64 toolchain. Enable the AmoosedWeb Runtime plugin if prompted.
  3. Check that the plugin module loads. The packaged native AmoosedWebGameReaderC.dll must be present beside the plugin's Win64 binary.

The plugin checks the native ABI revision and required capabilities during Configure. After a synchronous start failure or a completed Blueprint event, read GetLastStatusCode for the numeric native category and GetLastError for display text. The public C header defines preview status values; they are not yet a stable 1.0 ABI.

2. Configure and refresh in Blueprint

  1. From a Game Instance context, call Get Game Instance Subsystem and select AmoosedWebSubsystem. Keep the returned reference.
  2. Bind OnCatalogueRefreshed and OnItemFetched before starting operations.
  3. Call Configure with the HTTPS site origin, your game ID, and your game version. If GetLastError is nonempty, stop and report it.
  4. Call RefreshHostedCatalogue for a hosted index, or RefreshExternalCatalogue with an absolute path to a trusted .amwkey or packed ICO. Keep the credential outside published game content. A false return means the operation did not start; read GetLastError. Wait for OnCatalogueRefreshed before using the catalogue.
  5. When the refresh event reports success, inspect GetCatalogueRevision and GetCatalogueItems. Each verified entry has an ID, kind, and resource path. Select the kind your game handles and pass its ID to the fetch operation. GetItemIds remains available when only IDs are needed.
  6. Call FetchPublicItem with that item ID and a single safe output file name, for example level-data.json. Wait for OnItemFetched. On success, use its OutputPath; on failure, display its Message.

Refresh and fetch run on a worker thread. Their Blueprint events arrive on the game thread. Only one operation can run at a time. IsOperationActive stays true until the game-thread completion callback has updated the status and broadcast the event. The downloaded file is written under the project's Saved/AmoosedWeb/ directory, and an existing destination is never replaced. Catalogue paths describe verified remote resources; they are not local output paths. Parse fetched records as data under your game's own rules.

3. Handle cancellation and updates

CancelActiveOperation requests cancellation of an active refresh or fetch. After cancelling, call Configure again before retrying with a new native session. Reconfiguration also cancels the previous session and clears its catalogue; callbacks from the old session are suppressed. Treat a refreshed catalogue revision as data from the site, not as a code update.

For a protected item, call FetchMemberItem with its item ID, safe output file name, and an absolute path to a private file containing 64 hexadecimal key characters. A newline is allowed. The key is read by the worker and never included in Blueprint events. A wrong or malformed key leaves no output file.

The plugin downloads verified data for logic already compiled into your game. It does not load executable code, Blueprints, PAKs, or IoStore content. Test gameplay, cancellation, and packaging on your target build before release. The owner review gate has checked independent PixelMaze gameplay and viewport output, protected item rejection, and cancellation during paused catalogue and item carrier requests on Win64. Other platforms and longer running packaged-game lifecycles need their own checks.

API reference

Read the complete public Unreal header, the public header index, and the native ABI preview. The public declarations show exactly which operations this adapter exposes. Implementation source requires a separate paid agreement