I’ve been encountering problems where certain functions don’t work properly when opening a project / restarting the editor. Traced it down to having certain variables winding up disconnected from their pins in various BPs. I just figured out how to reproduce on a clean project using 4.13.2. Note: I see other reports about pins disconnecting when renaming and other phantom disconnects upon load. Most of those are super old 4.3 threads or due to other problems. Think this is different… here’s my theory on this one:
BUG: If you split a struct pin - lets say for a vector or rotator - and wire a float variable into one of its components… that variable will then disconnect when you close and restart the editor.
To reproduce: This happens in my case in the Animation BPs, so I created a New Project using the 3rd person Template because I knew that has a skeletal mesh in it with an AnimBP. Inside of the ThirdPerson_AnimBP, I added a Transform (Modify) Bone controller in-between the State Machine and Final Pose and set it to modify the neck bone, per the image below. I created two variables: TestFloat as float, TestRotator as rotator. I split the Translation pin, but did not split the Rotation pin - and wired the variables. Let’s say the point was to be able to change the float to push out the neck like a giraffe, and the rotator to change the look direction. Compile, save and close the editor.
When you reopen the project and look at this AnimBP again, the result (per below) is that the rotator on the unsplit pin is fine, but the float on the split pin got disconnected. I would wonder if when the project loads this BP up, it sees the float and the vector that was split as different variables types … even though it remembers to remain split. Or maybe because the first pin is empty it assumes all other pins will be empty… IDK. Or maybe this is bad practice and I’m the dummy. But given that you can split pins, it seems reasonable to wire a blueprint like this so seems like a bug to me. Also bet it happens in other types of blueprints too.
For a workaround, I can change that float to a vector and ignore the x and y components etc etc. I’m also curious what happens if I fill all the empty green pins with a empty float variable. Hope this helps and sorry if this was posted elsewhere and it didn’t come up in my searching for an answer.