Setup Guide

Kingdom Hearts III

A guide to setting up Kingdom Hearts III for Archipelago.

GuideMultiworld Setup Guide
LanguageEnglish
AuthorsCodex, Aesais

Guide

Rendered from source markdown.

Kingdom Hearts III Archipelago Setup Guide

This guide covers the current KH3 AP Alpha setup flow for PC/Steam KH3.

KH3 AP is currently an Alpha release. Start each seed from a fresh KH3 save, keep only the current seed's KH3 AP .pak in ~mods, and use Patch Game after installing a new APWorld.

Required Files

You need:

  • Archipelago 0.6.6 or newer.
  • The Kingdom Hearts III Alpha APWorld: download `kh3.apworld`.
  • Either the direct KH3 player .pak from an ap.aesais.net room, a KH3 player .apkh3/generated room .zip, or a standard Archipelago room generated with the current KH3 world so the client can build the pak after authentication.
  • For local .pak generation from a .apkh3 file or generated AP_*.zip: the .NET 8 (x64) SDK, unless your host room already provides the KH3 player .pak. The KH3 client can run this generation automatically during import, connection, or game launch. Download the .NET 8 SDK from Microsoft (x64). Players who receive a ready-made .pak do not need .NET or NuGet to use it.
  • The Garden of Assemblage mod .pak. The KH3 client downloads or updates the release matching the installed APWorld version when you use Patch Game, or falls back to GitHub's latest full release when no usable match exists. You can also install it manually: download the latest GoA pak.

The kh3.apworld contains the KH3 world, KH3 client, KH3 pak generator, and the bundled KH3 AP runtime files. Those runtime files include the KH3-specific UE4SS loader and KH3 AP probe used for live check reporting and item delivery.

Install The APWorld

  1. Open the Archipelago Launcher.
  2. Click Install APWorld.
  3. Select the downloaded kh3.apworld.
  4. Restart the Archipelago Launcher.

After restarting, the launcher should show KH3 Client and KH3 Pak Generator. If those entries do not appear, confirm that kh3.apworld was installed into Archipelago's custom_worlds folder and restart the launcher again.

Install The Mods

  1. Open your KH3 install directory.
  2. Go to KINGDOM HEARTS III/Content/Paks/~mods.
  3. Put the Garden of Assemblage .pak in ~mods, or let Patch Game download it for you.
  4. Put your generated KH3 AP player .pak in ~mods, import a .pak, .apkh3, or generated .zip from the client's Save Manager tab, or put one .apkh3/generated .zip in ~mods for automatic preparation.
  5. Keep only one active KH3 AP seed pak in ~mods. The Save Manager tab handles this automatically when switching managed runs.

Close and restart KH3 after changing .pak files. KH3 can keep old mod data in memory while the game is running.

The KH3 client's KH3 Config tab has a folder icon on the Mods Dir row that creates this folder if needed, then opens it once the KH3 directory is configured.

Patch The Game

  1. Launch the Archipelago Kingdom Hearts III client.
  2. Open the KH3 Config tab.
  3. Select your KH3 install directory if it was not detected automatically.
  4. Confirm the Save Dir points at the KH3 save folder. The auto-detected path is correct for most Steam installs.
  5. Choose the save cleanup mode:
    • Backup archives gameplay saves before cleanup.
    • Delete removes gameplay saves during cleanup.
  6. Click Patch Game.

This downloads the supported GoA pak if needed, installs the bundled KH3 AP runtime into the KH3 Binaries/Win64 folder, and configures the KH3 AP probe. The client rewrites the probe config after connecting so runtime events are written to the correct bridge directory for your current AP room.

Close and restart KH3 after patching. The game only loads the UE4SS runtime and KH3 AP probe when KH3 starts.

The KH3 Dir field should point at the top-level KINGDOM HEARTS III game folder. Selecting Binaries/Win64 is also accepted; the client will normalize the path.

The KH3 Config tab also shows UE4SS, UE4SS Compatibility, and Probe DLL status. After patching, Probe DLL should report Installed in root Mods.

Switch Between AP Runs

The Save Manager tab can retain several AP runs without mixing their KH3 saves:

  1. Close KH3.
  2. Click Import Seed Pak and select a generated KH3 player .pak, a player .apkh3, or a generated Archipelago .zip.
  3. Import any other runs you want available, then click Activate beside the run you want to play.

Importing a .apkh3 generates and stores its player pak. Importing a generated .zip generates and stores every KH3 player in that archive; it does not activate one automatically. This makes each player available as a separate run row so you can choose the intended slot explicitly.

Activation disconnects the AP client, stores the current run's latest gameplay saves and seed pak, installs the selected run as the only active AP seed pak in ~mods, restores that run's saved snapshot, and reopens its existing bridge state. If installation fails, the client restores the previous pak and saves.

After a run connects successfully, it remembers that AP server's host and port. Activating the run later places its remembered address in the server textbox, ready for Connect. Connecting the same run to a different server updates its remembered address. Use Edit beside a run to change its exact AP slot name, server, and port. This edits only the connection profile; it does not rename or alter the seed pak's embedded player identity. Passwords are never stored with the run.

After a successful connection, the client automatically copies the single matching player seed pak from ~mods into managed run storage. Reconnecting to an already managed pak does not copy it again unless that installed file changed.

If ~mods has no KH3 AP seed pak but contains exactly one .apkh3 or generated .zip, Connect and Launch KH3 first generate the player pak, add it to managed storage, and install it as the active pak. A generated .zip containing multiple KH3 players is automatic only when the client's current slot name matches exactly one player in the archive; otherwise import it from Save Manager and activate the desired player. If more than one seed container is present in ~mods, move all but the intended source out of that folder. After generation, managed import, and installation all succeed, the client moves the processed source out of ~mods into its generated-pak archive. A source imported from Downloads or any folder other than ~mods is left where it is.

If no KH3 seed pak or seed container is available at all, Connect opens a slot-name dialog. Enter the exact room slot name. After the server authenticates that slot, an ArchipelagoMine/ap.aesais.net room lets the client resolve the slot's signed player download automatically. A hosted .pak is managed and installed directly; a hosted .apkh3 or generated .zip is downloaded and processed into the player pak first. The HTTPS requests use the certificate roots bundled with the client, so the user does not have to visit the website in a browser first. Local ArchipelagoMine rooms can advertise their local HTTP room URL through the same flow.

When no hosted player download is advertised, or a current room's hosted download is temporarily unavailable, the client uses the player-scoped KH3 generation data carried by the normal Archipelago connection. It creates a local .apkh3, generates and manages the pak, installs it, and then finishes bridge setup. Keep KH3 closed during either process. Rooms made with older KH3 world versions that advertise neither source still require their .apkh3 or generated .zip file.

If one AP seed pak is installed but its seed does not match the selected room, the client detects that from the room handshake before sending a slot name. It copies the old pak and current run saves into managed run storage, removes only the live pak from ~mods, and opens the slot-name dialog for the new room. If the server rejects a slot name that was inferred from an installed pak, the client performs the same preservation and offers one dialog retry. KH3 must be closed; manually entered invalid names are still reported as normal errors.

While generation is running, the client displays the current phase in the window title and animates its progress bar. The Connect and Launch buttons show Working...; the log also records generation, managed import, installation, and source-archive phases. Pak generation can take about a minute per KH3 player and the client remains responsive during it.

Automatic launch still runs the normal save-seed safety check after installing the pak. KH3 is not launched when the active AP save folder belongs to another seed.

Delete Entire Run is available only for inactive runs and requires a second confirmation. It deletes that run's stored pak, AP save snapshot, and matching bridge folder. Vanilla backups never appear in Save Manager; use Restore Vanilla KH3 on the Config tab to return to protected vanilla saves.

Start A Seed

  1. Generate or join an Archipelago room that includes Kingdom Hearts III.
A room from ap.aesais.net
  1. Make sure GoA is installed; Patch Game can install it for you.
  2. Keep KH3 closed, leave ~mods without a KH3 AP player pak, and click Connect.
  3. Enter the exact room slot name. The client downloads that slot's hosted .pak or .apkh3, processes it when needed, and installs the resulting pak.
  4. Open the KH3 Bridge tab and confirm Connection, Installed Pak, and Save Seed match the room you are joining.
  5. Launch KH3 from Steam or with the Launch KH3 button in the client.
  6. Start a fresh KH3 save for the seed.
Standard Archipelago
  1. Make sure GoA is installed; Patch Game can install it for you.
  2. Keep KH3 closed, leave ~mods without a KH3 AP player pak, and click Connect.
  3. Enter the exact room slot name in the dialog. The client authenticates, generates and installs that slot's pak, and keeps the UI responsive while it works.
  4. Open the KH3 Bridge tab and confirm Connection, Installed Pak, and Save Seed match the room you are joining.
  5. Launch KH3 from Steam or with the Launch KH3 button in the client.
  6. Start a fresh KH3 save for the seed.

You can still download/import the player .apkh3 or generated Archipelago .zip before connecting. This is the fallback for an older room and is useful when you want to prepare the pak without authenticating to its server.

As a shortcut, put exactly one .apkh3 or generated .zip in ~mods while no KH3 AP player pak is installed. Connect or Launch KH3 will perform the generation, managed import, and installation automatically. Multi-player archives still require an unambiguous matching client slot name.

Fix A Missing NuGet Source

The .NET SDK includes the NuGet tooling; you do not need to install NuGet separately. The first local pak build needs an enabled package source that provides the bundled randomizer's dependencies; this is normally nuget.org. UnrealPak is bundled with the KH3 APWorld on Windows and does not need a separate installation.

If the pak generator reports that it cannot find packages such as UE4DataTableInterpreter or UAssetAPI, list the configured package sources:

dotnet nuget list source

If nuget.org is missing, add it and then run the KH3 Pak Generator again:

dotnet nuget add source "https://api.nuget.org/v3/index.json" --name nuget.org

If nuget.org is listed but disabled, enable it instead:

dotnet nuget enable source nuget.org

Linux Pak Generation

NuGet restore works the same way on Windows and Linux. The packaging tool is platform-specific: Windows uses the UnrealPak bundled with the KH3 APWorld, while Linux uses repak v0.2.3. The pak generator normally uses repak from PATH or downloads the pinned Linux x64 build into its tool cache automatically.

On Manjaro, you can install the .NET 8 SDK and repak manually if the automatic tool setup is unavailable:

sudo pacman -S dotnet-sdk-8.0

mkdir -p ~/.local/bin /tmp/repak-install
cd /tmp/repak-install

curl -L -o repak.tar.xz \
  https://github.com/trumank/repak/releases/download/v0.2.3/repak_cli-x86_64-unknown-linux-gnu.tar.xz

tar -xf repak.tar.xz
install -m 755 repak_cli-x86_64-unknown-linux-gnu/repak ~/.local/bin/repak

Make sure ~/.local/bin is in the environment used to launch Archipelago, or set KH3_REPAK_PATH to the installed executable:

export PATH="$HOME/.local/bin:$PATH"
export KH3_REPAK_PATH="$HOME/.local/bin/repak"

For a clean start, use the trash icon on the Save Dir row before starting a new seed. This archives or deletes gameplay save files after a second confirmation click while keeping settings-style files in place. Close KH3 first so save files are not locked. This is recommended when switching rooms or regenerated seeds.

If Auto remove saves on new seed is enabled, the client can perform that cleanup automatically when it detects saves from a different seed and KH3 is not running.

Playing

If you load an older KH3 save from before an AP item was received, the KH3 client replays received AP items so the in-game state can catch back up. Normal title-screen loads, manual saves, autosaves, and death-screen continues are supported by the replay system.

The KH3 Bridge tab shows the live runtime diagnostics while playing, including current save slot, slot replay indices, pending/applied items, blocking UI state, safe runtime context, recent KH3 loot, and recent AP item grants.

UE4SS Compatibility

KH3 AP ships a bundled KH3-specific UE4SS runtime. The Patch Game button treats that runtime as the supported setup for AP play.

UE4SS runtime install screen

If another UE4SS install is already present, the client preserves the existing Mods folder and merges Mods/mods.txt, but it may replace UE4SS loader/proxy files such as UE4SS.dll, dwmapi.dll, xinput1_3.dll, and UE4SS-settings.ini. Replaced files are backed up beside the original file with an .apbak-<timestamp> suffix.

Lua-only UE4SS mods are the most likely to coexist with KH3 AP. Other C++ UE4SS mods are higher risk because they may have been built against a different UE4SS runtime or ABI.

Troubleshooting

  • If the game gives different chest rewards than the KH3 client logs, remove old AP paks from ~mods, download the current room's KH3 .pak, and restart KH3.
  • If checks are not appearing in the client, confirm the KH3 client is connected before loading into KH3 and that Patch Game has been run from the KH3 Config tab. Probe DLL should list as Installed in root Mods.
  • If switching to a new room or regenerated seed, clear KH3 saves and install only the new generated KH3 AP .pak. The Save Seed row on the KH3 Bridge tab should match the installed room.
  • If the client blocks connection because existing saves belong to a different seed, close KH3 and use the Save Dir trash icon or enable Auto remove saves on new seed.
  • If KH3 Client does not appear in the launcher, reinstall kh3.apworld and restart Archipelago.