PipeRift / SaveExtension

Provides UE4 with a save-game system with support for savegame tags, level streaming and more
Apache License 2.0
164 stars 60 forks source link

Interface functions not called #64

Closed SkacikPL closed 3 years ago

SkacikPL commented 3 years ago

Tested on custom built 4.25 with plugin built from current source.

None of the interface functions are being called. Using SaveExtensionInterface in any blueprint class and implementing any of the functions within that class will not result in interface functions being called when they should (start/end of saving/loading).

This may be an issue with custom built versions of engine as i ran across some google results implying similar issues with implementing C++ interfaces in blueprints where functions would not be called.

So far i attempted a full UE4 4.25 rebuild along with game module and the plugin to no avail. Rest of the plugin functions as it should.

muit commented 3 years ago

Hi! Thank you for posting!

Have you registered the object into the savemanager? It is a manual process unfortunately

SkacikPL commented 3 years ago

Have you registered the object into the savemanager? It is a manual process unfortunately

Ah i see now,

Yeah that is less than optimal but it works. I guess that should be outlined somewhere in the documentation (i imagine the interface itself should be mentioned at least once).

Nevertheless, yeah - with using "subscribe for events" node the object does indeed receive interface calls. Thanks.

muit commented 3 years ago

Its not optimal for the user, but it is for performance. I may look for a better solution in the future.

Good point, I sometimes lack the time or simply forget important things like this. Thank you for posting, it helps a lot!

SkacikPL commented 3 years ago

No problem, thanks for the plugin. Besides wasting couple hours on rebuilding entire engine, it still saved me order of magnitude more on trying to lay out my own way of serializing things. Especially since i'm not so technically inclined.

So a net positive result after all. It's not really a bad design per se but it should've been noted somewhere in documentation i guess.