Unreal hides very useful beginner options by default!

A room full of monitors with Unreal is definitely lots of fun! :+1:
So that helps. But I don’t think that’s the answer not really.
Its about motivation, or what drives people to learn Unreal?

BTW: I don’t pretend to know the real answer here, I’ve no idea.
But I’m sure its related to the fact passion for UE is super high.
So as sht as support is atm, Unreal has that special something. :wink:

1 Like

Ok, so I’m adding an actor component in one blueprint, and then in another blueprint, I’m doing little dance to locate that component and failing… so then I’m debugging and want to step through where it fails, and take a look in the world outliner on that actor to see if it has the component or not… but I can’t. The entire world outliner is greyed out, the viewport is frozen, and the only thing I’m allowed to do is step to the next node.

Any suggestions for a beginner?

Ah yes, that freezing is how breakpoints work. It freezes whenever that code you added the breakpoint to executes, this is so the program “Pauses” and you can check that breakpoint for many things. For example Say you want to see if your Weapon is indeed changing it’s Damage from 5 to 10 you would add a breakpoint to the Damage Set and when that code executes the program will pause and you can then look inside of your blueprint nodes for that function where that breakpoint is and check the integer pipe value going in by hovering your mouse over it.

Also if you really want to get into the meat of beginner stuff for free Unreal has a whole site dedicated to that. go here and do any course you think is a good starting point or interesting to you.

My suggestion is to start with the courses titled “Exploring Blueprints” then do the “Twin Stick Shooter with Blueprint” course as that one also talks about C++ with blueprints towards the end.

1 Like

Ok, very good, thank you for the general suggestions… :grinning_face_with_smiling_eyes:

How about my specific example?

In practice that’s a bit of an oversimplification. 9 times out of 10 its more likely you hit a breakpoint and then hit a snag, where there’s no info after hovering over the problem area (the debugger likes to return ‘out of scope’ a lot :rage:). Think sub-components / sub-actors / sub-objects / structs (and pure function calls).

Same goes for watching values. Its only useful some of the time, as by default it often shows the wrong value when its out of scope, which is highly-deceptive for beginners, and why this has been documented in lots of other threads.

The big catch is though, even if you go in and then set a breakpoint on say a sub-component, it may not be possible to debug the value anyway, as the timing is off when the breakpoint hits. Or the value of a variable being targeted isn’t accessed there except from external BP’s (nod to vars / components set at design-time).

You also need to always remember to debug the right instance in the first place. But you have to wait until the debugger is running to do that. So overall a lot of the time you need to look for other solutions. For example creating a quick sub-project to find out where problems are. Often the cause is you yourself and bad assumptions, so its a self-inflicted wound. But not always. Sometimes the editor is to blame, and you’ve lost a whole morning debugging a phantom error an editor restart magically fixes.

Going back to the wish-list here. Often there’s no other practical way to debug a problem than inserting a Print String or series of them, and color coding them all. For example in multiplayer especially, because color-coding print string messages from Client1 / Client2 / Server helps to make sense of everything happening rapidly!

Nod to Pure function calls too as they’re quick to code, but a PITA to debug. Its often necessary to create extra vars all the time, just to store intermediate values to aid debugging. And Construction-Scripts??? Lots of gotchas!

It’d also be cool to have an Edit and Continue type feature in Blueprints, with a console window to call or evaluate something while a breakpoint is active. :wink: I’m probably dreaming though. Is any of this possible @BrUnO_XaVIeR?

What did I do this time?
I’m innocent, I swear!

Well, I don’t know… These days I use these nodes everywhere combo with automated testing:

I also intend to use a C++ trickery to make these nodes to auto launch the blueprint editor, and point to the node causing an exception, to spare me the time wasted trying to find where a breakpoint “should fire IF only I had an instance being watched”.

I’ve learned how to do that with blueprint editor while researching C# nodes, but still have no free time to touch any of my “personal plugin projects” yet.

1 Like

That’s exactly what the guilty would say. :stuck_out_tongue: With your plugin work and Magic Nodes could the BP VM ever support something like Edit & Continue? Because obviously that would offer a lot of flexibility when debugging tricky scenarios (just in time code fixes). I’ve seen the try / catch plugin around. It seems like more bloat in BP. But maybe I’m missing something??? :thinking:

I forgot… my custom " Breakpoint " nodes already do that.
Auto scope and open to edit the BP with faulty code:

1 Like

You will have to be more specific, I don’t understand what you mean with that.
You mean like the Live Coding plugin?!

Two examples:

  1. For when the debugger refuses to show you the value of a variable (in a sub-component / child actor) and stubbornly just reads: out of scope… (Ability to live add a Print-String to force the editor to output the value without having to abort the debugging session).

  2. Live fixes to Blueprint code / wires. The ability to fix mistakes / errors in the code as you step through it. There are restrictions to what you can do or how much you can change. Historically at least, this was a super neat feature. Not sure how good it works anymore.

Well yeah whilst you are correct, that’s why I pointed to basic tutorials to get eobet started. Sometimes it’s best to start right from the beginning and follow a sort of standard as opposed to simply saying “it’s bugged” 9/10 No matter what it always depends on your structure.

Moral of the story, start from tutorials, build your knowledge up from a base and work from there. Eventually you will get the hang of it and can explore new methods to handle your debugging. There is no “right” or “wrong” just what works and doesn’t work. So yeah get workin on those courses boiiiii

Oh I think that would require to either wait for “Verse” for live script changes or a severe change to the Blueprint compiler.

Blueprints are compiled to bytecode before running.

1 Like

I think you’re still not seeing the issue…

Unreal Engine stops reflecting what’s actually going on when you try to debug it!

(Also, to even confirm this, I had to select the actor in the world outliner before the breakpoint was hit, because Unreal prevents you from doing this after, which is ludicrus to me. It’s like, it knows it’s ■■■■ in this area and tries to hide it!) :upside_down_face:

EDIT: Yes, I forgot to hook up the set wire in the screenshot… ignore that, that’s not the issue either. :stuck_out_tongue:

Bro, you put a breakpoint on the Branch LITERALLY before you set the “Establishment Manager” of course it’s not going to update your set variable. You need to put a breakpoint on the set variable itself cause that’s when you’re actually changing the variable. But if you already did that and it didn’t work

you could just use a print string as well. there’s a lot of ways to get what you want.

1 Like

If you are having trouble understanding the engine, then I would highly recommend the official Online Learning. I speak from experience; I started with Godot and Unity.

You are seriously making me doubt my ability to explain myself clearly… the manager in question was created before the screenshot by an entirely different blueprint on an entirely different actor. I’m just trying to retrieve that reference now, and the problem is that Unreal will not display this information unless, as you say, you manually do prints or set watches… the entire issue could be fixed if only Unreal didn’t freeze the outliner and prevent detail panel updates during stepping through blueprints!

This is the “feedback for the unreal engine team” part of the forum, so if you, like me, have any experiences on how Unity or Godot did things better, I’d love it if you could share it here to gather them all in this thread. Maybe one day, someone from Epic might even read them!

  1. What you have circled is not the world outliner, it’s the components tab of the details panel; the world outliner does update, the components tab does not. If you need to see an array of components on the actor, make one and make it editable, that way, it shows up and updates in the details panel.

  2. I get what you mean by the editor freezing and not letting you select anything. That’s because the frame hasn’t been completed or rendered yet, meaning there’s nothing to show. Keep in mind, when you hit a breakpoint, you are freezing the game mid-frame while it’s still being processed.
    If you do it on the first frame, the screen will be black because nothing has been rendered yet:

  3. Why are you afraid to add prints? Prints are what are used to debug programming everywhere; they exist literally for debugging, and print string in unreal is literally meant for the sole purpose of debugging, which is why it has that yellow construction tape that says “Development Only” on it (and has the option to print to the log), which means it only runs in development builds.

1 Like

The desire is: “I’d like to browse the entire scene, and look at properties, while blueprint execution is paused.”
I understand the desire. Unreal is not (currently?) structured to support this.
For example, properties can be procedural – you’d need to execute some blueprint to read the property value. But Blueprints are also single-threaded. So, if blueprint execution is paused, properties can’t (in general) be shown.

This is a limitation in the engine, I agree! If you personally can’t develop a game without having this feature, then you cannot use the Unreal Engine to develop your game. Sorry!

I think the issue is he expected Unreal Editor to be running in the Virtual Machine itself, like Unity does, so everything could be picked and inspected from details panel…

But if that was the case then Unreal Editor would have the same bad performance of Unity Editor (everything is running on the C# VM even the editor).

Majority of Unreal Editor is c++ code and completely separate from the Blueprint VM, so there’s a lot of things blocking you from seeing things the way Unity would show.