V5.4.3 Interfaces losing implementation after reloading project

Hi, I’m new to UE, and recently started a new project with Blueprints.
I have created a blueprint interface and am inheriting it from a BP Class, I’ve recently noticed that every time I do the implementation in the class for a blueprint function (with return value), it works as expected. However when I save and close the project, the implementation is lost every time I reload the project.

The inheritance is still set up correctly in the class, however the implementation goes back to default.
Has someone else experienced this?

I am using GIT to store my changes, and git is tracking my changes every time I fix it. Even if I reload my git branch, which I’m sure I’ve pushed after saving, while the project is still open and I see it working, when I open the project the implementation is gone.

Luckily the DIFF button in UI can track my old implementation and I can easily copy and paste it every time I reopen the project, but it’s becoming annoying. I can’t imagine upkeeping more interfaces like this.

Has anyone else had this problem, or am I doing something stupidly wrong?

Thanks!

1 Like

Can you show the code? ( Just checking, there’s a lot of confusion around interfaces ).

Hi there, thank you for reaching out.

I’m following a playlist of tutorials from GorkaGames on youtube:
Unreal Engine 5 RPG Tutorial Series - #4: Assassinations (youtube.com)

I have a Blueprint Interface named BPI_Assasination which has one function:
image

Inherited from a Blueprint Class BP_Dummy:
image

Has a simple implementation as can be seen below:

This last screenshot is from the diff version control, its interesting to note that my ‘Depot’ changes shows that I removed the implementation, ‘Removed Nodes’. However I didn’t do this, this happens every time I restart the project.

Any help would be great, thanks a ton!

1 Like

What I did right now to avoid this problem is, created another function ‘Assasinate Me’ and left the interface empty without an implementation.

When I’m calling the function, I first do the check for interface, then call another function instead of the function defined in the interface, but this is temporary so I don’t have to redo the implementation every time, as it defeats the purpose of using an interface in the first place :frowning:

Ok, I see what you’re saying. It does look like it’s related to GIT somehow…

I have also seen people with interface implementations vanishing on restart without GIT, though.

Thanks for the info, but I don’t have any ground breaking suggestions at the moment. Apart from breaking the whole thing down into steps in an empty project… :melting_face:

1 Like

No problemo! Thanks a lot for your time anyway. Let’s hope someone else has this problem figured out. I also believe this could be related to GIT. However I tried turning it off, but the problem still persisted.

I will also try in a new project where GIT isn’t set up, and see if I manage to reproduce the issue there.

1 Like

I also have this exact same problem and it seems to be quite random and not related to GIT.
This only happens since 5.4.3 so I guess this is a new bug?

1 Like

This is a pretty major bug. I just tested 5.5.0 and its fixed however, so good news.