Skip to content

create_node ignores posX/posY — every node is placed at (0,0) #8

Description

@katyoid

create_node ignores posX/posY — every node is placed at (0,0)

Summary

manage_blueprint action=create_node accepts posX/posY but does not apply them: the created node ends up at graph position (0,0). When building a graph programmatically, every created node lands on the origin, stacked on top of each other, and has to be dragged apart by hand — which largely defeats scripted graph authoring.

Environment

  • Plugin MCP Automation Bridge (previous reports were v0.5.30 — please confirm current version)
  • Unreal Engine 5.6.1; OS: Windows editor, client on WSL2
  • MCP client: claude-code (native WebSocket/HTTP transport)

Steps to reproduce

manage_blueprint
  action       = create_node
  blueprintPath= /Game/.../MyBlueprint
  graphName    = EventGraph
  nodeType     = K2Node_CallFunction
  memberName   = Power
  memberClass  = KismetMathLibrary
  posX         = 600
  posY         = 6300

get_node_details on the returned node:

{ "nodeTitle": "Power", "x": 0, "y": 0, ... }

Reproduced for every node created this way in a session (variable get/set, math CallFunction, etc.) — all report x:0, y:0 regardless of the posX/posY passed. Result: dozens of new nodes overlap exactly at the origin.

Expected

The node is placed at the given posX/posY, and get_node_details reports those coordinates.

Likely root cause

NodePosX/NodePosY are not read from the payload (or are assigned before AddNode() / AllocateDefaultPins() and then reset). When routing through FGraphNodeCreator<T>, set the position before finalizing:

FGraphNodeCreator<UK2Node_CallFunction> Creator(*TargetGraph);
UK2Node_CallFunction* Node = Creator.CreateNode(false);
Node->NodePosX = PosX;   // from payload
Node->NodePosY = PosY;
Creator.Finalize();

Suggested acceptance checks

  • create_node ... posX=600 posY=6300get_node_details reports x:600, y:6300.
  • Multiple created nodes appear at their requested positions, not overlapping at the origin.
  • No regression: nodes created without posX/posY still get a sane default position.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions