Blueprint Limitations / Shortcomings

Hi Epic, I have been using blueprint for some time now, I liked the ease of use of it a lot, but I pretty much immediately noticed some shortcomings.

I got some blueprint code that has latent nodes in it to make it functional.

This functionality is part of the player controller, and other classes/entities etc will call this functionality.

Problem is, latent nodes aren’t allowed in functions or macro’s… Why?

A macro is supposed to be a wrapper around blueprint right, so you don’t have to copy paste blueprint functionality around?

Well, now I have to copy paste this blueprint network around, and if I want to make a change, I have to backtrack every single usage of it and change every single one, individually…

Why Epic, why?

Also, as a side note, what is the deal with static constants not existing in blueprints?

For this I’ve now just made a class with default values that is initialized in every class that I need it in, which is kinda dumb.

Imagine C++ without constants, no MAX_INT etc, would be a mess, yet this is the standard in blueprint?

Seriously though, I like blueprint, but it has some serious problems right now as far as I can see.

If these limitations came from a conscious design decision, would you please please please re-evaluate it?

Latent nodes used to be able to be used in macros, but that changed in 4.7 or 4.8. I don’t remember why.

Static variables are not a part of the blueprint workflow, true, but there is the savegame class, from which variables can be saved and loaded, and the GameInstance class which is created on the game’s initialization and is not destroyed until the game ends so you can keep variables that you always need there so you can sort-of simulate static functionality.

Ah, that’s at least one problem fixed, sort of. You would still have to cast it to your own class of course, but at least it possible.

Anyway, the latent thing is kinda annoying, because you also can’t give events an event as a parameter, which you could otherwise use as a call back event.

I was thinking about making an event wrapper class in C++, which you could then use as a callback, so I at least won’t have to copy paste code around anymore.

Still, it would be 10 times better, if not a 100 times better, to have latent macro’s or functions. You can make them with C++ as well, with return values and everything, so I don’t see why this shouldn’t be allowed in blueprint as well.

This is quite a limiting factor to the code complexity blueprint allows right now, it’s annoying that you have to use hacky solutions to make it work without copy pasting code around.

I really hope Epic will fix this problem. I wonder why they stopped allowing latent macro’s in 4.7 or 4.8.