Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -660,7 +660,8 @@ static UEdGraphNode* CreateBPNodeFromJson(UEdGraph* Graph, UBlueprint* Blueprint
const TSharedPtr<FJsonObject>& PinDefaults = NodeJson->GetObjectField(TEXT("pin_defaults"));
for (auto& Pair : PinDefaults->Values)
{
UEdGraphPin* Pin = FindPinByName(NewNode, Pair.Key, EGPD_Input);
// *Pair.Key yields const TCHAR* on both UE 5.7 (FString key) and 5.8 (UE::FSharedString key).
UEdGraphPin* Pin = FindPinByName(NewNode, FString(*Pair.Key), EGPD_Input);
if (Pin)
{
FString Value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,9 @@ FString ConvertJsonValueToPythonLiteral(const TSharedPtr<FJsonValue>& JsonVal)
for (const auto& Pair : Object->Values) {
if (!bFirst) DictLiteral += TEXT(", ");

FString KeyString = Pair.Key;
// UE 5.7: FJsonObject::Values key is FString; UE 5.8: UE::FSharedString.
// operator* yields const TCHAR* on both, so this builds on either engine.
FString KeyString = *Pair.Key;
// Escape key string as well (similar to EJson::String case)
KeyString = KeyString.Replace(TEXT("\\"), TEXT("\\\\"));
KeyString = KeyString.Replace(TEXT("\'"), TEXT("\\\'"));
Expand Down
1 change: 0 additions & 1 deletion Plugins/UnrealMCPython/UnrealMCPython.uplugin
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
"MarketplaceURL": "",
"FabURL": "com.epicgames.launcher://ue/Fab/product/5cd0eb75-3c66-43bf-88ac-693be184fb95",
"SupportURL": "",
"EngineVersion": "5.7.0",
"CanContainContent": true,
"IsBetaVersion": false,
"Installed": true,
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,10 @@ expose, an optional C++ helper (`MCPythonHelper`) is available. Full details in

**Option A: Download from GitHub Releases (Recommended)**

Each [release](https://github.com/GenOrca/unreal-mcp/releases) ships two kinds of plugin asset — pick whichever fits:
Each [release](https://github.com/GenOrca/unreal-mcp/releases) ships two kinds of plugin asset. **Most users want the precompiled one for their exact engine version:**

- **`UnrealMCPython_<engine>_<version>.zip`** (e.g. `UnrealMCPython_5.7_2.2.0.zip`) — **precompiled** for that exact UE version. No C++ toolchain required; just drop it in.
- **`UnrealMCPython-v<version>.zip`** — **source only** (the CI release pipeline runs on Linux and does not compile the C++ module). Unreal builds the module on first open, which needs a C++ toolchain.
- **`UnrealMCPython_<engine>_<version>.zip`** (e.g. `UnrealMCPython_5.8_2.2.0.zip`) — **precompiled** for that exact UE version. No C++ toolchain, no rebuild — just drop it in and launch. **Pick the one matching your engine version.**
- 🛠️ **`UnrealMCPython-v<version>.zip`** — **source only**, for C++ developers (the CI release pipeline runs on Linux and does not compile the C++ module). Unreal tries to *compile* it on first open, which **requires Visual Studio with the "Game development with C++" workload**. Without that toolchain the build fails and the editor closes — so don't use this one unless you intend to compile.

Extract, then copy `Plugins/UnrealMCPython/` into your project's `Plugins/` folder:

Expand All @@ -137,7 +137,10 @@ YourProject/
Keep the `mcp-server/` folder from the zip in a convenient location — you'll need its path in Step 3.

> [!NOTE]
> Precompiled binaries are engine-version-specific. If there's no `_<your engine>_` zip for your version, use the source zip and let Unreal compile it on first open (Windows: Visual Studio with the "Game development with C++" workload). Maintainers build the per-version binaries locally with `tools/build-plugin.ps1` (the CI pipeline can't — GitHub-hosted runners have no Unreal Engine).
> Precompiled binaries are engine-version-specific. If there's no `_<your engine>_` zip for your version, either ask for one in an issue or use the source zip and let Unreal compile it on first open (Windows: Visual Studio with the "Game development with C++" workload). Maintainers build the per-version binaries locally with `tools/build-plugin.ps1` (the CI pipeline can't — GitHub-hosted runners have no Unreal Engine).

> [!WARNING]
> **Seeing `'UnrealMCPython' was designed for build 5.7.0 … load anyway?` or a rebuild that fails and closes the editor?** You downloaded the **source** zip (or a binary for a different engine version). Download the **`UnrealMCPython_<your engine>_<version>.zip`** that matches your engine instead — it loads without compiling. (Source builds from releases ≤ 2.2.0 also pin an old engine version; this is fixed on `main`.)

**Option B: Install from [Fab](https://fab.com/s/aed5f75d50b2)**

Expand Down
Loading