diff --git a/Plugins/UEWingman/README.md b/Plugins/UEWingman/README.md index fdff7b17..1a844c34 100644 --- a/Plugins/UEWingman/README.md +++ b/Plugins/UEWingman/README.md @@ -33,8 +33,8 @@ see: ``` There are tons of commands built in: Graph_Dump, -GraphNode_Create, GraphPin_Connect, -BlueprintComponent_Create, Widget_Create, and so forth. +GraphNode_Add, GraphPin_Connect, +BlueprintComponent_Add, Widget_Add, and so forth. Using these commands, it's possible to examine and modify blueprints, widgets, and materials. @@ -131,7 +131,7 @@ You might be interested in seeing the "user manual" for the plugin. To get that, you type this: ``` -$ ue-wingman.py UserManual +$ ue-wingman.py Documentation_Manual ``` Of course, you're not the intended user: your AI agent is. @@ -141,7 +141,7 @@ User Manual says, among other things, that the AI agent can get a listing of built-in commands. You can see that too: ``` -$ ue-wingman.py ShowCommands +$ ue-wingman.py Documentation_Commands ``` With these two commands at your disposal, you'll have a better diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Add.h similarity index 97% rename from Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Create.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Add.h index fcb860de..dbd8a53b 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Add.h @@ -10,7 +10,7 @@ #include "EdGraph/EdGraph.h" #include "EdGraphSchema_K2.h" #include "Kismet2/BlueprintEditorUtils.h" -#include "BlueprintGraph_Create.generated.h" +#include "BlueprintGraph_Add.generated.h" // --------------------------------------------------------------------------- @@ -18,7 +18,7 @@ // --------------------------------------------------------------------------- UCLASS() -class UWing_BlueprintGraph_Create : public UWingHandler +class UWing_BlueprintGraph_Add : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Delete.h b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Remove.h similarity index 93% rename from Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Delete.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Remove.h index 544f899a..c57b749c 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Delete.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Remove.h @@ -8,7 +8,7 @@ #include "Engine/Blueprint.h" #include "EdGraph/EdGraph.h" #include "Kismet2/BlueprintEditorUtils.h" -#include "BlueprintGraph_Delete.generated.h" +#include "BlueprintGraph_Remove.generated.h" // --------------------------------------------------------------------------- @@ -16,7 +16,7 @@ // --------------------------------------------------------------------------- UCLASS() -class UWing_BlueprintGraph_Delete : public UWingHandler +class UWing_BlueprintGraph_Remove : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Documentation_Commands.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Documentation_Commands.h new file mode 100644 index 00000000..63ad766c --- /dev/null +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Documentation_Commands.h @@ -0,0 +1,33 @@ +#pragma once + +#include "CoreMinimal.h" +#include "WingHandler.h" +#include "WingFetcher.h" +#include "WingServer.h" +#include "WingTypes.h" +#include "WingProperty.h" +#include "WingManual.h" +#include "Documentation_Commands.generated.h" + +UCLASS() +class UWing_Documentation_Commands : public UWingHandler +{ + GENERATED_BODY() + +public: + UPROPERTY(meta=(Optional, Description="Substring filter for command names")) + FString Query; + + UPROPERTY(meta=(Optional, Description="If true, return full details including parameter types and descriptions")) + bool Verbose = false; + + virtual void Register() override + { + UWingServer::AddHandler(this, + TEXT("List all the main commands with their descriptions.")); + } + virtual void Handle() override + { + WingManual::Commands(EWingHandlerKind::Normal, Query, Verbose); + } +}; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Documentation_CreateAssets.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Documentation_CreateAssets.h new file mode 100644 index 00000000..5950ee9f --- /dev/null +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Documentation_CreateAssets.h @@ -0,0 +1,33 @@ +#pragma once + +#include "CoreMinimal.h" +#include "WingHandler.h" +#include "WingFetcher.h" +#include "WingServer.h" +#include "WingTypes.h" +#include "WingProperty.h" +#include "WingManual.h" +#include "Documentation_CreateAssets.generated.h" + +UCLASS() +class UWing_Documentation_CreateAssets : public UWingHandler +{ + GENERATED_BODY() + +public: + UPROPERTY(meta=(Optional, Description="Substring filter for command names")) + FString Query; + + UPROPERTY(meta=(Optional, Description="If true, return full details including parameter types and descriptions")) + bool Verbose = false; + + virtual void Register() override + { + UWingServer::AddHandler(this, + TEXT("List all the create commands that create new assets.")); + } + virtual void Handle() override + { + WingManual::Commands(EWingHandlerKind::Normal, Query, Verbose); + } +}; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/UserManual.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Documentation_Manual.h similarity index 77% rename from Plugins/UEWingman/Source/UEWingman/Handlers/UserManual.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/Documentation_Manual.h index 02371d84..0ef0d836 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/UserManual.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Documentation_Manual.h @@ -3,10 +3,10 @@ #include "CoreMinimal.h" #include "WingHandler.h" #include "WingManual.h" -#include "UserManual.generated.h" +#include "Documentation_Manual.generated.h" UCLASS() -class UWing_UserManual : public UWingHandler +class UWing_Documentation_Manual : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Add.h similarity index 96% rename from Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Create.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Add.h index bc3aba72..e52cd54e 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Add.h @@ -8,7 +8,7 @@ #include "Engine/Blueprint.h" #include "EdGraphSchema_K2.h" #include "Kismet2/BlueprintEditorUtils.h" -#include "EventDispatcher_Create.generated.h" +#include "EventDispatcher_Add.generated.h" // --------------------------------------------------------------------------- @@ -16,7 +16,7 @@ // --------------------------------------------------------------------------- UCLASS() -class UWing_EventDispatcher_Create : public UWingHandler +class UWing_EventDispatcher_Add : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Delete.h b/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Remove.h similarity index 94% rename from Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Delete.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Remove.h index 63a7b766..7d34eb25 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Delete.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Remove.h @@ -7,7 +7,7 @@ #include "WingUtils.h" #include "Engine/Blueprint.h" #include "Kismet2/BlueprintEditorUtils.h" -#include "EventDispatcher_Delete.generated.h" +#include "EventDispatcher_Remove.generated.h" // --------------------------------------------------------------------------- @@ -15,7 +15,7 @@ // --------------------------------------------------------------------------- UCLASS() -class UWing_EventDispatcher_Delete : public UWingHandler +class UWing_EventDispatcher_Remove : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Add.h similarity index 96% rename from Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Create.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Add.h index 98d3fb56..885238e1 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Add.h @@ -10,7 +10,7 @@ #include "EdGraph/EdGraph.h" #include "EdGraph/EdGraphNode.h" #include "EdGraph/EdGraphSchema.h" -#include "GraphNode_Create.generated.h" +#include "GraphNode_Add.generated.h" // --------------------------------------------------------------------------- @@ -36,7 +36,7 @@ struct FSpawnNodeEntry UCLASS() -class UWing_GraphNode_Create : public UWingHandler +class UWing_GraphNode_Add : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Delete.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Remove.h similarity index 95% rename from Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Delete.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Remove.h index 344d488a..5252d5b2 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Delete.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Remove.h @@ -10,7 +10,7 @@ #include "MaterialGraph/MaterialGraphNode.h" #include "Materials/Material.h" #include "IMaterialEditor.h" -#include "GraphNode_Delete.generated.h" +#include "GraphNode_Remove.generated.h" // --------------------------------------------------------------------------- @@ -18,7 +18,7 @@ // --------------------------------------------------------------------------- UCLASS() -class UWing_GraphNode_Delete : public UWingHandler +class UWing_GraphNode_Remove : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SearchTypes.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SearchTypes.h index 57cf92a7..b499a7cb 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SearchTypes.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SearchTypes.h @@ -35,7 +35,7 @@ public: UWingServer::AddHandler(this, TEXT("Search the action database for node types that can be spawned in a graph. " "Works with any graph type (Blueprint, Material, etc.). " - "Returns full action names for use with GraphNode_Create.")); + "Returns full action names for use with GraphNode_Add.")); } virtual void Handle() override { diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/ShowCommands.h b/Plugins/UEWingman/Source/UEWingman/Handlers/ShowCommands.h deleted file mode 100644 index 418828fd..00000000 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/ShowCommands.h +++ /dev/null @@ -1,71 +0,0 @@ -#pragma once - -#include "CoreMinimal.h" -#include "WingHandler.h" -#include "WingFetcher.h" -#include "WingServer.h" -#include "WingTypes.h" -#include "WingProperty.h" -#include "WingManual.h" -#include "ShowCommands.generated.h" - -UCLASS() -class UWing_ShowCommands : public UWingHandler -{ - GENERATED_BODY() - -public: - UPROPERTY(meta=(Optional, Description="Substring filter for command names")) - FString Query; - - UPROPERTY(meta=(Optional, Description="If true, return full details including parameter types and descriptions")) - bool Verbose = false; - - UPROPERTY(meta=(Optional, Description="Kind of command: Normal, or Create")) - EWingHandlerKind Kind = EWingHandlerKind::Normal; - - virtual void Register() override - { - UWingServer::AddHandler(this, - TEXT("List all available commands with their descriptions.")); - } - virtual void Handle() override - { - FString QueryLower = Query.ToLower(); - FString PrevGroup; - - for (const FWingHandlerConfig& H : UWingServer::AllHandlers()) - { - if (H.Kind != Kind) continue; - if (!H.Name.ToLower().Contains(QueryLower)) continue; - - // Blank line between groups - if (!Verbose) - { - FString Group = WingUtils::GetHandlerGroup(H.Class.Get()); - if (Group != PrevGroup) - { - if (!PrevGroup.IsEmpty()) - WingOut::Stdout.Print(TEXT("\n")); - PrevGroup = Group; - } - } - - if (Verbose) - { - WingManual::PrintHandlerHelp(H); - } - else - { - WingManual::PrintHandlerPrototype(H); - } - } - if (Kind == EWingHandlerKind::Normal) - { - WingOut::Stdout.Printf(TEXT( - "\n" - "You can also use ShowCommands with Kind=Create to see commands that create new assets.\n" - "\n")); - } - } -}; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/SysInfo_PackageContents.h b/Plugins/UEWingman/Source/UEWingman/Handlers/SysInfo_PackageContents.h new file mode 100644 index 00000000..7c1c0d0d --- /dev/null +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/SysInfo_PackageContents.h @@ -0,0 +1,46 @@ +#pragma once + +#include "CoreMinimal.h" +#include "WingServer.h" +#include "WingHandler.h" +#include "UObject/UObjectHash.h" +#include "SysInfo_PackageContents.generated.h" + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- + +UCLASS() +class UWing_SysInfo_PackageContents : public UWingHandler +{ + GENERATED_BODY() + +public: + UPROPERTY(EditAnywhere, meta=(Description="Package path, e.g. /Game/Testing/BP_Test")) + FString Package; + + virtual void Register() override + { + UWingServer::AddHandler(this, + TEXT("Print the name and type of every object in a package.")); + } + + virtual void Handle() override + { + UPackage* Pkg = LoadPackage(nullptr, *Package, LOAD_None); + if (!Pkg) + { + WingOut::Stdout.Printf(TEXT("ERROR: Could not load package '%s'\n"), *Package); + return; + } + + TArray Objects; + GetObjectsWithPackage(Pkg, Objects); + + for (UObject* Obj : Objects) + { + WingOut::Stdout.Printf(TEXT("%s %s\n"), *Obj->GetClass()->GetName(), *Obj->GetPathName()); + } + } +}; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Add.h similarity index 95% rename from Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Create.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Add.h index b0d00dc2..eccd9228 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Add.h @@ -5,7 +5,7 @@ #include "WingServer.h" #include "WingFetcher.h" #include "WingVariables.h" -#include "Variables_Create.generated.h" +#include "Variables_Add.generated.h" // --------------------------------------------------------------------------- @@ -13,7 +13,7 @@ // --------------------------------------------------------------------------- UCLASS() -class UWing_Variables_Create : public UWingHandler +class UWing_Variables_Add : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Add.h similarity index 97% rename from Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Create.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Add.h index b1ee837c..2db17329 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Add.h @@ -11,7 +11,7 @@ #include "Blueprint/UserWidget.h" #include "Kismet2/BlueprintEditorUtils.h" #include "Components/PanelWidget.h" -#include "Widget_Create.generated.h" +#include "Widget_Add.generated.h" // --------------------------------------------------------------------------- @@ -19,7 +19,7 @@ // --------------------------------------------------------------------------- UCLASS() -class UWing_Widget_Create : public UWingHandler +class UWing_Widget_Add : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Delete.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Remove.h similarity index 96% rename from Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Delete.h rename to Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Remove.h index 8613929f..084ed924 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Delete.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Remove.h @@ -9,7 +9,7 @@ #include "Blueprint/WidgetTree.h" #include "Components/PanelWidget.h" #include "Kismet2/BlueprintEditorUtils.h" -#include "Widget_Delete.generated.h" +#include "Widget_Remove.generated.h" // --------------------------------------------------------------------------- @@ -17,7 +17,7 @@ // --------------------------------------------------------------------------- UCLASS() -class UWing_Widget_Delete : public UWingHandler +class UWing_Widget_Remove : public UWingHandler { GENERATED_BODY() diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_SearchTypes.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_SearchTypes.h index bd6229f8..df038518 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_SearchTypes.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_SearchTypes.h @@ -27,7 +27,7 @@ public: { UWingServer::AddHandler(this, TEXT("Search for widget types that can be added to a Widget Blueprint. " - "Returns names for use with Widget_Create.")); + "Returns names for use with Widget_Add.")); } virtual void Handle() override { diff --git a/Plugins/UEWingman/Source/UEWingman/Private/WingManual.cpp b/Plugins/UEWingman/Source/UEWingman/Private/WingManual.cpp index e239ee92..77b34458 100644 --- a/Plugins/UEWingman/Source/UEWingman/Private/WingManual.cpp +++ b/Plugins/UEWingman/Source/UEWingman/Private/WingManual.cpp @@ -177,7 +177,7 @@ void WingManual::PrintManual(TSet
Sections, const FWingHandlerConfig* H "\n Float F (InstanceEditable)" "\n String S = This is the default value" "\n" - "\n The commands Variables_Create, Variables_Modify," + "\n The commands Variables_Add, Variables_Modify," "\n and Variables_Remove can be used to edit: " "\n blueprint variables, graph local variables, graph input" "\n variables, graph output variables, and custom" @@ -274,13 +274,14 @@ void WingManual::PrintManual(TSet
Sections, const FWingHandlerConfig* H { WingOut::Stdout.Print(TEXT( "\n COMMANDS YOU SHOULD KNOW ABOUT AND REMEMBER:" - "\n UserManual: this explanation" - "\n ShowCommands: a full list of all the commands" + "\n Documentation_Manual: this explanation" + "\n Documentation_Commands: a list of all the main commands" + "\n Documentation_CreateAssets: Additional commands that create new assets" "\n Blueprint_Dump: a summary of any blueprint" "\n Graph_Dump: a fairly detailed listing of any Graph" "\n Property_Dump: show information on many objects" "\n" - "\n You can use ShowCommands(Query=SomeCommand,Verbose=true)" + "\n You can use Documentation_Commands(Query=SomeCommand,Verbose=true)" "\n to get detailed help for a specific command." "\n" )); @@ -288,6 +289,35 @@ void WingManual::PrintManual(TSet
Sections, const FWingHandlerConfig* H if (Abridged) { - WingOut::Stdout.Printf(TEXT("\nUse command 'UserManual' to see the full manual.\n")); + WingOut::Stdout.Printf(TEXT("\nUse command 'Documentation_Manual' to see the full manual.\n")); } } + +void WingManual::Commands(EWingHandlerKind Kind, const FString& Query, bool Verbose) +{ + FString QueryLower = Query.ToLower(); + FString PrevGroup; + + for (const FWingHandlerConfig& H : UWingServer::AllHandlers()) + { + if (H.Kind != Kind) continue; + if (!H.Name.ToLower().Contains(QueryLower)) continue; + + // Blank line between groups + if (!Verbose) + { + FString Group = WingUtils::GetHandlerGroup(H.Class.Get()); + if (Group != PrevGroup) + { + if (!PrevGroup.IsEmpty()) + WingOut::Stdout.Print(TEXT("\n")); + PrevGroup = Group; + } + } + + if (Verbose) + PrintHandlerHelp(H); + else + PrintHandlerPrototype(H); + } +} diff --git a/Plugins/UEWingman/Source/UEWingman/Private/WingServer.cpp b/Plugins/UEWingman/Source/UEWingman/Private/WingServer.cpp index 6134f13d..dc94f68e 100644 --- a/Plugins/UEWingman/Source/UEWingman/Private/WingServer.cpp +++ b/Plugins/UEWingman/Source/UEWingman/Private/WingServer.cpp @@ -307,7 +307,7 @@ void UWingServer::TryCallHandler(const FString &Line) if (!Request->TryGetStringField(TEXT("command"), Command)) { WingOut::Stdout.Printf(TEXT("Request does not contain 'command' parameter")); - WingOut::Stdout.Printf(TEXT("We recommend sending command='UserManual'.")); + WingOut::Stdout.Printf(TEXT("We recommend sending command='Documentation_Manual'.")); return; } Request->RemoveField(TEXT("command")); diff --git a/Plugins/UEWingman/Source/UEWingman/Public/WingManual.h b/Plugins/UEWingman/Source/UEWingman/Public/WingManual.h index 4d452d9b..19e39c6a 100644 --- a/Plugins/UEWingman/Source/UEWingman/Public/WingManual.h +++ b/Plugins/UEWingman/Source/UEWingman/Public/WingManual.h @@ -23,4 +23,5 @@ public: static void PrintHandlerDescription(const FWingHandlerConfig& Handler); static void PrintHandlerHelp(const FWingHandlerConfig& Handler); static void PrintManual(TSet
Sections, const FWingHandlerConfig* Handler, bool Abridged); + static void Commands(EWingHandlerKind Kind, const FString& Query, bool Verbose); }; diff --git a/Plugins/UEWingman/ue-wingman-mcp.py b/Plugins/UEWingman/ue-wingman-mcp.py index fd8bbb23..8dc4064b 100644 --- a/Plugins/UEWingman/ue-wingman-mcp.py +++ b/Plugins/UEWingman/ue-wingman-mcp.py @@ -19,7 +19,7 @@ TOOL_DESCRIPTION = ( "Send a command to the Unreal Editor's UE Wingman plugin. " "The 'command' field specifies which operation to perform; " "additional fields are command-specific parameters. " - 'Use {"command": "UserManual"} to get an overview. ' + 'Use {"command": "Documentation_Manual"} to get an overview. ' "If the editor is not running, the call will return an error; " "just ask the user to start the editor and try again." )