Am I crazy or do interface functions delete/reset themselves?

I’m feeling crazy here, but I’ve just observed this happening like 8 times in a row. I implement a very simple function in an interface, it works, I save my project, close my project, reopen my project, and my interface implementation is completely empty! As if I never created it and saved it. But I very clearly did save it. WTF am I doing wrong? Or is this a bug in the engine?

Note: I did rename this function and I noticed that unrela engine sometimes crashes when I rename interface functions. Is it a crime to rename interface functions? Are there known bugs related to it? Should I just avoid it like cancer?

Observed issue Example 1:
Renaming interface functions leads to crashes in Unreal Engine 5 for mac

Observed issue Example 2:
Step 1
Implement interface function
Step 2
Rename it
Step 3
Continue programming etc, save the project completely, close the project
Step 4
Open the project, and the function contents are completely gone as if the function was left empty the entire time. So I re-implement the function.
Step 5
Save the project, close it.
Step 6
Open the project again, POOF It’s gone again! So I re-implement the function again.
Step 7
Save the project, close it.
Step 8
Open the project again, POOF It’s gone again! So I re-implement the function again.
This goes on forever until I basically either get lucky or I re-create a new interface function and just completely delete this one. I tried this 5++ times before I got it working properly.


Observed Issue Example 3:
Step 1
Implement interface event
Step 2
Rename it
Step 3
Continue programming etc, save the project completely, close the project
Step 4
Open the project, I notice my event doesn’t work. I double click it to check it’s implementation, this new event appears with a different name, I see the yellow error/warning about it’s name being different. I re-link it to the correct name, delete the incorrect one. It magically works again.
Step 5
Save the project, close it.
Step 6
Open the project again, the same error/warning is back! I have to fix it again
Step 7
Save the project, close it.
Step 8
Open the project again, the same error/warning is back! I have to fix it again
This goes on forever until I basically either get lucky or I re-create a new interface event and just completely delete this one. I tried this 5++ times before I got it working properly.



Note: I’ve never had this problem with an interface that I do NOT rename. Super weird.

You had 2 instances of the same project running simultaneously?

I know that renaming interface methods can make existing event implementations ‘lose’ their ‘interfaceness’, they become regular events.
Besides that, blueprint methods and interface method names can collide, also check if you didn’t implement that interface in parent/child class instead

No, I saved it, closed it, and re-opened it. I only ever have one instance running. But saving should save my progress. Not lose some of it.

It doesn’t appear that’s the case. I certianly didn’t do it intentionally.

So my current work around that avoids this bug/problem/behavior is anytime I have to rename an interface function, I delete the implementation & any node calling it, compile, then rename the function in the BPI_File, then save it, compile, then re-implement the function and connect it back up. You don’t need to delete the code from within your function, just delete the function implementation node. It’s an annoying process but it completely avoids this problem.

1 Like