Actors vs Objects: What's the performance difference?

Is there a noticeable performance difference between these two when spawning (not at once) like ~100 of them?
Let’s say we have common BP classes like QuestEntry, DialogueOption, etc… Is it worth it to make these classes Objects instead of Actors?

It depends on the behavior and properties you need from those classes. I wouldn’t worry about it too much, just use the class that inherits the behavior you need. That being said, a BP class that is of a lower complexity class, I would imagine use less resources.

Of an interesting note, I’ve found that the size of an actor is 1016 bytes while the size of an object is 56 bytes. Objects can be used in blueprints however they can’t be placed in the world supposedly, moreover they don’t allow network replication (referenced in this link: https://answers.unrealengine.com/questions/296674/noob-question-difference-between-object-actor.html). I’m not sure what all actors have to justify that much data usage however if you have the chance accessing the code and observing the file that shows what these classes hold in their headers would give you some indication as to their purpose. If your doing logic in bp for a single player game that is not used to place actors in the level, then it’s likely a good idea to use objects instead. If your doing this in c++ however it might be tempting to go with a custom struct/class of sorts for your quest data. Or perhaps just use xml/json to store quest data and parse at runtime. Which would be better since it’s way easier to tweak data files like those than mess about code, it does mean that the end user can tweak these themselves however unless you encrypt them but even that won’t be a perfect solution.

2 Likes