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.
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
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.
I hope they solve this, I encountered the same problem in two different projects. I deleted the interface and re-created it, it seems to have solved my problem.
Yeah, it should be a high priority to fix. I’ve been minimizing my interface function usage because of this. If I’m ever on the fence, I just don’t use an interface unless I absolutely need it.
Some (random) implemented interface functions are getting removed when i open the project. I dont know the actual case how it happens, but it might be something related with GIT.