• English
  • UECopilot Plugin Documentation

    Version: 1.0.0 | Last Updated: 2026-05-08 Target Engine: Unreal Engine 5.7


    1. Plugin Overview

    1.1 What is UECopilot?

    UECopilot is an AI-assisted development plugin integrated into the Unreal Engine 5 editor. Through the Blueprint MCP Server (Blueprint Model Context Protocol Server, UEMCP), it exposes UE5's Blueprint data structures and editing operations as HTTP APIs, allowing AI models (such as Claude, GPT, etc.) to directly read, understand, create, and modify Blueprint assets.

    One-sentence summary: UECopilot enables AI to "understand" your Blueprints and operate them for you like an experienced TA/programmer.

    1.2 Operation Mode

    ModeStartup MethodUse CaseFeatures
    Editor ModeAutomatically loaded when UE5 editor startsDaily developmentEditor and MCP service coexist, real-time operation

    2. Core Capabilities Overview

    UECopilot's UEMCP module has been comprehensively analyzed and currently provides 80+ MCP tools, covering the following 9 major capability domains:

    Capability DomainTool CountCapability Rating
    Blueprint Reading & Retrieval8Stable
    Blueprint Graph Editing & Node Operations15Stable
    Blueprint Variables & Type System6Stable
    Function/Parameter Management4Stable
    Blueprint Structure & Metadata9Stable
    Material System18Mature
    Animation Blueprint System12Developing
    Safety & Snapshot System6Stable
    Asset Discovery & Reflection5Mature
    Unreal Python API (AI + World Building)Level Automation (Procedural Tools)Planned

    Capability Rating Descriptions:

    • Mature: Full tool functionality, edge cases well handled, SEH protection in place
    • Stable: Core paths usable, some boundary conditions to watch for
    • Developing: Basic capabilities available, advanced scenarios need improvement

    2.1 What Can It Do? (Scenario Descriptions)

    Scenario 1: AI-Assisted Blueprint Debugging

    User: "Help me check if there are any disconnected pins in this Blueprint"
    AI → calls find_disconnected_pins → returns all unconnected input pins
    AI → provides fix suggestions

    Scenario 2: AI-Assisted Blueprint Refactoring

    User: "Change all function calls referencing OldClass to NewClass"
    AI → calls replace_function_calls (supports dry_run preview) → executes replacement

    Scenario 3: AI-Assisted Material Creation

    User: "Help me create a material with a normal map and color adjustment"
    AI → create_material → add_material_expression (TextureSample, Multiply, etc.)
         → connect_material_pins → completes the material network

    Scenario 4: AI-Assisted Animation State Machine

    User: "Add an Idle→Run transition in this Anim Blueprint"
    AI → add_anim_state → add_anim_transition → set_transition_rule

    Scenario 5: Safe Experimentation

    User: "I want to modify this function parameter type, but I'm worried about issues"
    AI → snapshot_graph (take snapshot first) → change_function_parameter_type → if error, restore_graph

    3. System Requirements

    • Unreal Engine: 5.7+
    • Operating System: Windows 64-bit (fully tested)
    • Additional Dependencies: Node.js (for Web UI service, MCP service does not require it)

    4. Usage Guide

    The recommended workflow follows four steps: "Preview → Snapshot → Execute → Verify":

    Step 1: Preview & Analysis
      ├── Use get_blueprint / get_blueprint_graph to understand current state
      ├── Use search_blueprints to search for relevant nodes
      └── Use check_pin_compatibility to pre-check pin connection feasibility
    
    Step 2: Create Safety Snapshot
      └── Use snapshot_graph to save the current graph state
    
    Step 3: Execute Changes
      ├── Use add_node / connect_pins / delete_node, etc.
      ├── Tools with dryRun parameter should be used for a dry run first
      └── For major changes, use validate_blueprint to check compilation results
    
    Step 4: Verify & Restore
      ├── Use validate_blueprint to verify Blueprint integrity
      ├── Use diff_graph to compare differences before and after changes
      └── If issues arise, use restore_graph to roll back to the snapshot state

    4.2 AI Prompt Tips

    Good prompt examples:

    # Clearly specify the target object
    "Add a Print String node to the EventGraph of Blueprint MyCharacter, printing 'Hello'"
    
    # Step-by-step operations
    "1. First take a snapshot of MyCharacter's EventGraph
     2. Then change the input parameter type of the MoveForward function from float to double
     3. Finally verify if the Blueprint has compilation errors"
    
    # Query first, then operate
    "First list all Blueprints in the project that inherit from Character,
     then tell me their names and paths"

    Vague prompts to avoid:

    ✗ "Help me fix this Blueprint" — Which Blueprint? Fix what?
    ✗ "Add a feature" — What feature? Where to add it?
    ✗ "Modify the material" — Which material? Change it to what?

    4.3 Usage Notes

    1. MCP service is not head-safe: Although SEH (Structured Exception Handling) protection is used, erroneous operations in extreme cases could still cause the editor to crash. It is recommended to save the project and back up important Blueprints before operating.

    2. All write operations support Ctrl+Z undo: The server wraps each write operation in an Undo transaction, but it is recommended to manually save promptly after continuous operations.

    3. Snapshots are saved to disk: Snapshot files are stored in the Project/Saved/BlueprintMCP/Snapshots/ directory and are not included in project version control. Manual backup is recommended for important operations.

    4. AI model differences in understanding UE terminology: Different AI models may have varying understandings of UE-specific terms (such as "pin connection", "break struct", "event dispatcher"). Please use UE5 official terminology in your prompts.


    5. MCP Tools Complete Reference

    Note: The following lists all MCP tools that can be directly invoked through AI conversation. Tool names use snake_case convention. You can use these tool names directly in your prompts.

    5.1 Blueprint Retrieval & Reading (8 Tools)

    Tool NameFunctionKey Parameters
    list_blueprintsList all Blueprint assets, supports filtering by name and parent classfilter, parentClass, type
    get_blueprintGet detailed info of a specific Blueprint (variables, functions, components, etc.)name
    get_blueprint_summaryGet a brief summary of a Blueprint (same as get_blueprint)name
    get_blueprint_graphGet the full structure of a specified graph (EventGraph, FunctionGraph, etc.)name, graph
    describe_graphGet a pseudocode-style description of a graph (same as get_blueprint_graph)name, graph
    search_blueprintsSearch for nodes with specific names in Blueprintsquery, path, maxResults
    find_asset_referencesFind all nodes referencing a specified classclass, blueprint
    search_by_typeSearch for usage of a specific node type in BlueprintsnodeClass, blueprint, graph

    5.2 Blueprint Node Editing (15 Tools)

    Tool NameFunctionKey Parameters
    add_nodeAdd a new node to a specified graphblueprint, graph, nodeType, position
    delete_nodeDelete a node from a graphblueprint, nodeId
    duplicate_nodesDuplicate one or more nodesblueprint, nodeIds, offset
    move_nodeMove a node to a new positionblueprint, nodeId, position
    connect_pinsConnect pins between two nodesblueprint, sourceNodeId, sourcePin, targetNodeId, targetPin
    disconnect_pinDisconnect all connections of a specified pinblueprint, nodeId, pinName
    refresh_all_nodesRefresh all nodes in a graph (clean up broken references)blueprint
    set_pin_defaultSet the default value of a pinblueprint, nodeId, pinName, value
    get_pin_infoGet detailed pin info (type, direction, connection status)blueprint, nodeId, pinName
    check_pin_compatibilityPre-check if two pins can be connectedblueprint, sourceNodeId, sourcePin, targetNodeId, targetPin
    get_node_commentGet a node's comment textblueprint, nodeId
    set_node_commentSet a node's comment textblueprint, nodeId, comment
    replace_function_callsReplace function call target class in Blueprints (supports dry_run preview)blueprint, oldClass, newClass, dryRun
    change_struct_node_typeChange the struct type of Break/Make struct nodesblueprint, nodeId, structType

    5.3 Blueprint Variable System (6 Tools)

    Tool NameFunctionKey Parameters
    add_variableAdd a new member variable to a Blueprintblueprint, variableName, variableType, category
    remove_variableRemove a member variable from a Blueprintblueprint, variableName
    change_variable_typeChange a variable's type (supports dry_run impact analysis preview)blueprint, variable, newType, dryRun
    set_variable_metadataSet a variable's metadata (category, description, etc.)blueprint, variable, metadata
    set_blueprint_defaultSet a Blueprint CDO default property valueblueprint, propertyName, value
    delete_assetDelete a specified asset filepath

    5.4 Function & Parameter Management (4 Tools)

    Tool NameFunctionKey Parameters
    add_function_parameterAdd a parameter to a function/custom eventblueprint, functionName, paramName, paramType
    remove_function_parameterRemove a parameter from a function/custom eventblueprint, functionName, paramName
    change_function_parameter_typeChange a function parameter type (supports dry_run preview)blueprint, functionName, paramName, newType, dryRun
    reparent_blueprintChange a Blueprint's parent class (supports C++ classes and Blueprint classes)blueprint, newParentClass

    5.5 Blueprint Structure & Metadata (9 Tools)

    Tool NameFunctionKey Parameters
    create_blueprintCreate a new Blueprint assetblueprintName, packagePath, parentClass, blueprintType
    create_graphCreate a new graph in a Blueprint (EventGraph, FunctionGraph, etc.)blueprint, graphName, graphType
    delete_graphDelete a specified graph from a Blueprintblueprint, graphName
    rename_graphRename a graph in a Blueprintblueprint, oldName, newName
    add_interfaceAdd an interface implementation to a Blueprintblueprint, interfaceName
    remove_interfaceRemove an interface implementation from a Blueprint (optionally keep functions)blueprint, interfaceName, preserveFunctions
    list_interfacesList all interfaces implemented by a Blueprintblueprint
    add_event_dispatcherAdd an event dispatcher (supports dispatchers with parameters)blueprint, dispatcherName, parameters
    list_event_dispatchersList all event dispatchers and their parameters for a Blueprintblueprint

    5.6 Component System (3 Tools)

    Tool NameFunctionKey Parameters
    add_componentAdd a component to a Blueprint's SCSblueprint, componentClass, name, parentComponent
    remove_componentRemove a component from a Blueprint's SCSblueprint, componentName
    list_componentsList all components in a Blueprint's SCSblueprint

    5.7 User-Defined Types (4 Tools)

    Tool NameFunctionKey Parameters
    create_structCreate a user-defined struct asset (supports adding properties)assetPath, properties
    create_enumCreate a user-defined enum assetassetPath, values
    add_struct_propertyAdd a new property to a structstructPath, propertyName, propertyType
    remove_struct_propertyRemove a property from a structstructPath, propertyName

    5.8 Material System (18 Tools)

    Material Reading:

    Tool NameFunctionKey Parameters
    list_materialsList all material and material instance assetsfilter, type
    get_materialGet detailed material info (domain, blend mode, parameter list, referenced textures)name
    get_material_graphGet the node connection structure of a material graphname
    describe_materialProvide a detailed pseudocode description of a material graphmaterial
    search_materialsSearch for expressions in materialsquery
    find_material_referencesFind materials referencing a specified texture or material functiontexture, materialFunction

    Material Writing:

    Tool NameFunctionKey Parameters
    create_materialCreate a new material asset (supports domain and blend mode settings)name, packagePath, domain, blendMode
    set_material_propertySet material top-level properties (domain, blend mode, two-sided, etc.)material, property, value
    add_material_expressionAdd an expression node to a material graphmaterial, expressionClass, position
    delete_material_expressionDelete an expression from a material graphmaterial, expressionId
    connect_material_pinsConnect two pins in a material graphmaterial, expression, pinName, targetExpression, targetPin
    disconnect_material_pinDisconnect all connections of a specified material pinmaterial, expressionId, pinName
    set_expression_valueSet a material expression's parameter valuematerial, expressionId, parameter, value
    move_material_expressionMove a material expression's position in the editor graphmaterial, expressionId, position

    Material Instances:

    Tool NameFunctionKey Parameters
    create_material_instanceCreate a Material Instance Constant (MIC)name, packagePath, parentMaterial
    set_material_instance_parameterSet a material instance's parameter override valuematerialInstance, parameterName, value, type
    get_material_instance_parametersGet all overridable parameters of a material instancematerialInstance
    reparent_material_instanceChange a material instance's parent materialmaterialInstance, newParent

    Material Functions:

    Tool NameFunctionKey Parameters
    list_material_functionsList all material function assetsfilter
    get_material_functionGet detailed information about a material functionname
    create_material_functionCreate a new material function assetname, packagePath

    Material Safety:

    Tool NameFunctionKey Parameters
    validate_materialCompile and validate a materialmaterial
    snapshot_material_graphTake a snapshot of a material graphmaterial
    diff_material_graphCompare differences between a material graph and its snapshotmaterial, snapshotId
    restore_material_graphRestore a material graph from a snapshotmaterial, snapshotId

    5.9 Animation Blueprint System (12 Tools)

    Tool NameFunctionKey Parameters
    create_anim_blueprintCreate an Animation Blueprint assetname, packagePath, skeleton, parentClass
    add_state_machineAdd a state machine to an Anim Blueprintblueprint, name
    add_anim_stateAdd an animation state to a state machineblueprint, stateMachine, stateName
    remove_anim_stateRemove an animation state from a state machineblueprint, stateName
    add_anim_transitionAdd a transition rule between statesblueprint, fromState, toState
    set_transition_ruleSet the rule Blueprint for a state transitionblueprint, transitionId, ruleBlueprint
    add_anim_nodeAdd an animation node to an animation stateblueprint, stateName, nodeType
    set_state_animationSet the animation sequence used by a stateblueprint, stateName, animation
    list_anim_slotsList an Anim Blueprint's slotsblueprint
    list_sync_groupsList an Anim Blueprint's sync groupsblueprint
    create_blend_spaceCreate a blend space asset (1D/2D)name, packagePath, skeleton
    set_blend_space_samplesSet the sample points of a blend spaceblendSpace, samples

    5.10 Safety & Snapshot System (6 Tools)

    Tool NameFunctionKey Parameters
    snapshot_graphCreate a Blueprint graph snapshot (saved to disk)blueprint, graphs
    diff_graphCompare the current graph with a snapshotblueprint, snapshotId
    restore_graphRestore a Blueprint graph from a snapshotblueprint, snapshotId
    find_disconnected_pinsFind all unconnected input pins in a graphblueprint
    analyze_rebuild_impactAnalyze the potential impact scope of a Blueprint rebuildblueprint, changeDescription
    diff_blueprintsCompare the graph structure differences between two BlueprintsblueprintA, blueprintB, graph

    5.11 Asset Discovery & Reflection (5 Tools)

    Tool NameFunctionKey Parameters
    list_classesList all available UClassesfilter
    list_functionsList all functions of a specified classclassName, filter
    list_propertiesList all properties of a specified classclassName, filter
    rescan_assetsRescan the asset registry, refresh cacheNone
    server_statusView MCP server runtime status and asset statisticsNone

    5.12 Utility Functions & Safety Mechanisms

    Type Resolver (ResolveTypeFromString)

    Supported type resolution formats:

    Input FormatExampleResolution Result
    Basic Typesint, float, bool, string, textCorresponding basic pin types
    Object Referenceobject:ActorUObject subclass reference
    Soft Objectsoftobject:Texture2DSoft object reference
    Class Referenceclass:ActorClass reference
    Soft Class Referencesoftclass:AnimInstanceSoft class reference
    Structstruct:Vector, struct:TransformStruct pin type
    Enumenum:ETraceTypeQueryEnum byte type
    Interfaceinterface:BPI_InteractInterface reference
    Arrayarray:int, array:object:ActorTArray type

    SEH Safety Protection (Windows Only)

    For high-risk operations (Blueprint compilation, material expression addition, package saving, etc.), the __try/__except Structured Exception Handling (SEH) mechanism is used. This means that even if an operation causes an internal engine crash (such as an access violation), the service will not completely crash, but will instead return an error message.

    Undo Transaction Support

    All tool calls that modify Blueprints are wrapped in Undo/Redo transactions. This means that when used in the editor, operations executed by AI can be undone with Ctrl+Z.


    6. Usage Boundaries & Limitations

    6.1 Known Limitations

    CategoryDescriptionImpact
    Multi-UserThe service is designed for single-user; simultaneous multi-user operations are not supported⚠️ Medium
    NetworkOnly listens on 127.0.0.1, remote access not supported🔒 Security Design
    Version CompatibilityBased on UE5.4+ API, not tested on UE4⚠️ High
    PlatformSEH protection is Windows-only; material system SEH has a dedicated implementation⚠️ Medium
    Hot ReloadPlugin module needs to reconnect after hot reload⚠️ Low
    Large ProjectsUltra-large projects with tens of thousands of Blueprints may take a few seconds for the initial scan⚠️ Medium
    Compilation SafetyBlueprint compilation triggers the full compilation chain; complex Blueprints may be time-consuming⚠️ Medium
    AI UnderstandingAI models have limitations in understanding UE graph structures and pin types⚠️ Caution

    6.2 Unsupported Scenarios

    1. C++ Code Operations: Can only operate on Blueprints and assets; cannot create or modify C++ code files
    2. Runtime Debugging: Does not support debugging features such as breakpoints or step execution
    3. Multi-User Collaboration: No concurrency control mechanism; not suitable for multiple users operating the same Blueprint simultaneously
    4. Content Migration: Cross-project content migration is not supported
    5. Source Control Integration: Does not directly interact with Perforce/Git/SVN
    6. Packaging and Building: Does not support packaging, baking, or other build processes
    7. Level Editing: Does not directly support Actor placement and editing in levels
    8. Data Table Operations: Editing of DataTable/CurveTable is not currently supported
    9. Niagara System: Operations on Niagara particle systems are not supported
    10. UI/UW Editing: Editing of Widget Blueprints is not supported

    6.3 Security Boundaries

    ✅ Allowed:
       · Read/Create/Modify Blueprint assets
       · Read/Create/Modify Material assets
       · Read/Create/Modify Anim Blueprint assets
       · Create structs and enums
       · Perform safe snapshots and restoration
       · Use Ctrl+Z to undo in the editor
    
    ❌ Not Allowed:
       · Expose the editor to external network access
       · Batch modifications without version control
       · Relying on AI to fully understand the semantics of complex graph structures
       · Skipping tests and using directly on critical nodes
    
    ⚠️ Proceed with Caution:
       · Modifying the parent class of an existing Blueprint (may cause numerous broken connections)
       · Batch renaming/deleting assets
       · Changing variable types (may disconnect existing connections)
       · Large-scale modifications in Anim Blueprint state machines

    7. Challenges in Prompt Accuracy for Dialogue-Based MCP Operations

    7.1 Core Challenges

    Using natural language to operate UE5 Blueprints through AI models presents the following core challenges:

    Challenge 1: Loss of 3D Semantics in Graph Structure

    A Blueprint graph is a two-dimensional visual structure. AI only sees a flat JSON node list, losing spatial information such as:

    • Node position and layout (proximity implies logical grouping)
    • Visual grouping through comment boxes
    • Execution flow direction (left-to-right, top-to-bottom conventions)
    • Color cues (node type indication, execution wire colors)

    Impact: AI struggles to understand the "design intent" of a graph, only seeing structured connection data.

    Challenge 2: Tacit Knowledge of Pin Types

    Pin types in UE5 are a complex system:

    Explicit Pin InformationRequired Tacit Knowledge
    PinCategory = "object"Need to know the subclass inheritance tree
    PinSubCategoryObjectNeed to understand object reference vs. class reference
    bIsReferenceNeed to know value vs. reference semantic differences
    PinValueTypeNeed to understand key-value type relationships for Map/Set containers

    Impact: When constructing connect_pins requests, AI may provide semantically incorrect pin pairings.

    Challenge 3: Cascading Effects of Changes

    A simple modification can trigger a chain reaction:

    Change variable type (int → float)
      → Output pin types of all Get/Set nodes change
        → Nodes connected to these pins may become disconnected
          → Input values of downstream nodes become invalid
            → Compilation warnings or errors occur

    Impact: AI struggles to fully predict all cascading effects of a change, even with dryRun support.

    Challenge 4: Ambiguity of UE Terminology

    TermMeaning in Different Contexts
    "Node"Can be a Blueprint node, material expression, animation state, or skeleton node
    "Connection"Can be a pin connection, state transition, or component parent-child relationship
    "Type"Can be a variable type, pin type, node type, or asset type
    "Graph"Can be EventGraph, FunctionGraph, AnimationGraph, or MaterialGraph

    Impact: AI may confuse terminology meanings across different contexts, leading to incorrect request parameters.

    Challenge 5: Session State Maintenance

    Round 1: AI → "List all Blueprints"
             Service → Returns 50 Blueprint names
    
    Round 2: AI → "Open the first one"
             Problem → Which "first one"? The user needs to maintain dialog context

    Impact: The plugin itself is stateless; each tool call is independent. AI models need to maintain state within the conversation, but context windows are limited.

    7.2 Current Mitigation Strategies

    Mitigation measures already implemented at the plugin level:

    1. Detailed Error Messages: When an operation fails, return specific error reasons and a list of available options (such as available pin names, available graph names, etc.)
    2. dryRun Mode: Key modification operations support a preview mode that returns impact analysis
    3. Snapshot Mechanism: Supports taking snapshots before operations and restoring after
    4. SEH Protection: Crash protection for extreme cases

    10. FAQ and Troubleshooting

    10.1 Operation Issues

    Q: Changes to Blueprint did not take effect

    1. Check whether the saved field in the returned JSON is true
    2. Manually save the asset in the editor (Ctrl+S)
    3. Reopen the Blueprint graph to view changes

    Q: Blueprint compilation error

    1. Use the validate_blueprint tool to view specific error details
    2. If a snapshot is available, use restore_graph to restore
    3. Or use Ctrl+Z in the editor to undo

    Q: AI cannot find the specified Blueprint

    1. Ensure the Blueprint name is correct (case-sensitive)
    2. Use the list_blueprints tool to view all available Blueprints
    3. Level Blueprint needs to be referenced by map name

    10.2 Performance Issues

    Q: First list_blueprints call is slow

    The first call triggers a full scan of the asset registry. Subsequent calls use the cache and will be faster.

    11. Appendix: Capability Statistics

    11.1 Overview Data

    Stat ItemValue
    MCP Tools Total80+
    Capability Domains9 Major Categories
    Supported Asset TypesBlueprint, Material, MaterialInstance, MaterialFunction, AnimBlueprint, UserDefinedStruct, UserDefinedEnum, BlendSpace

    11.3 Type Support Coverage

    Blueprint Pin TypeSupport Status
    boolean, byte, int, int64, float, double, name, string, text✅ Full
    object, softobject, class, softclass, interface✅ Full
    struct (Vector, Transform, Rotator, Color, etc.)✅ Full
    enum✅ Full
    array, set, map✅ Basic Support
    delegate, mcdelegate✅ Basic Support

    Conclusion

    UECopilot's goal is to make AI a trusted co-pilot for UE5 developers — not to replace your judgment, but to help you complete repetitive tasks faster, reduce human error, and maintain accuracy and traceability in large-scale projects.

    Recommendations for Users:

    • Start small: Try it on simple Blueprints first
    • Use snapshots: Take a snapshot before any major operation
    • Gradual usage: Progress from reading → simple modifications → complex creation
    • Provide feedback: When encountering issues, please provide detailed logs to help the plugin improve continuously

    UECopilot - Empowering Unreal Engine development with AI wings