Download

UMG Inventory Tutorial Help.

Hello, I followed all of the vidoes on the UMG Tutorial by Epic. And there are a few things that i cannot seem to fix. First the “ActionText” Variable should update the Textbox on your use button based on the item you clicked but its does not do that.Second When i Use/Drop the item picture becomes transparent and the inventory just freezes but the rest of the game runs fine.I really want to get this to work has anyone had these issues and know how to fix them?. Ill post the blueprints for the parts that arn’t working if you need to see other let me know.I’ll also upload a video and attach it aswell.(i know how to fix walking while the inventory is open i just did that to show its not the game that freezes.)

Drop Items in “MyCharacter” Blueprint
4993c9b9538746246b89261049a20282225c6456.png

Drop Items in “Umg Widget”
Drop_Items2.png

Use Items in “Umg Widget”
Use_items.png

Use Items in “Pickup” Blueprint
cf8627ed949fa6cbf895c182404168cc0b22048b.png

And there is where the text should be changed on the button.
20bb28d13cc0b8d1f059c224bde46d73cad15478.png

have you tested the free system i provide?

No all i did was follow the tutorial by Epic.

may i see your set up for the binding of your action text variable? So the buttons child widget text block.

When you add a breakpoint to set visibility, hit play and then hit a slot, it should now fire the breakpoint, hover over the Action Text variable and tell if its empty or not

Is this what you mean?
22b6756608c3b17d28346e728dff5d0fe59b64da.png

yes that was one thing. I assume the function Inventory Slot Clicked is inside this Widget blueprint?

Have you tested with a BreakPoint yet?

regards

EDIT:

Oh noo i see, when you set the Action Text you are not inside the Widgets Blueprint, you just set a Text to the action text but not for the boundvariable inside your widget.

2 Options:

  • Make the variable Action Text Public inside your Widget Blueprint -> then inside your Inventory Slot Clicked (Picture) grab the ouput from Action Menu and type “Set Action Text” you now have the bound variable
    connect your “Actions” output from your struct to this “Setter” and voilá.

  • instead of making it Public, you could add a public Function called f.e. “Set Action Text” -> do the same as above, but instead getting the Variable you would call the Function.

regards

I’m not sure what you ment why you were talking about the breakpoint. And I have a Inventory Slot Int not a function. The only two function that were in the tutorial from Epic were Drop/Use.

I meant your Picture called Inventory Slot Clicked :).

Breakpoints are really useful but not needed anymore in your case, see edit post above.
Rightclick on a Node you have and click “Add Breakpoint” when this node is fired during gameplay it will stop at this point and f.e. you can check the variables around if they are valid or what current value they have.

Doing what you said gives me the exact same variable i have set up there.

f7cdcf14cfcbd1fb0cc7fece2b1535a5.png

And my Action text was already set to Public.

No these are not the same variables. The one we see here is the Action Text of a Blueprint i dont know of (edit: it is MyCharacter->ActionText), but NOT the Action Text Variable of Action Menu.

So you have to set the ActionMenu->ActionText variable

edit edit: you can even delete the Action Text Variable out of your Character Blueprint

edit edit edit: oh its the PickUp Blueprint which has the ActionText :wink:

Lol i’m sorry i’m getting really confused now.So the variable that i have set and connected to “Set Visibility” is not the one i should have there?. I need to drag off of Action Menu and Set “Action Text”?. But when i do that its the same thing that i have set already. I don’t really understand what you are trying to say sorry.

Ok stop right here :smiley:

This logic with the Action Text should be located inside of the “GameHUD UMG Widget Event Graph”. When you click a Button (Inventory Slot) you
call the Binding to the Function/Event “ButtonWasClickedEvent”. The Button Number represents the Slot in your Inventory, so you take it to get
your Inventory Slot you clicked. From that you get the Struct and the Action Text that is saved to this specific Item.

This will go into the “Action Text” variable which is located in the UMG Widget and should be binded to the Text of the Button you showed us.
If this is all set up correctly, then the error is somewhere else.

NOW: In your video, you show that the Action Text GETS changed, but to “” <- nothing. So i guess you have a bug in the Item you picked up.

So please check:

  • Does your item has a valid ActionText Set when you spawned it? (maybe check the Objects options or print the action text)

If it’s not empty, then there must be an error when you are picking it up. Are you sure you made everything correct what happened in video 6?

Yes that is exactly what i want.

The Problem is:

You have a Variable called Action Text inside your PickUp Blueprint.
And you have a Variable called Action Text inside you ActionMenuWidgetBlueprint.
The one which is bound to you Button´s Text is the one from ActionMenuWidgetBlueprint.
The one from you PickUp does, tbh, nothing :slight_smile:

so you have 2 different variables with the same name. They are different because one is part of your PickUp and one is Part of your ActionMenu.

When you drag off Action Menu you will be able to get and set everything INSIDE the ActionMenu and so is the bound Action Text Variable.

edit: if

thas is wrong then go try out with a breakpoint :smiley:

How do you know that? The Action Text of the Item is inside its struct. The ActionText you see at the picture he showed us with the “ButtonClickedEvent”
is located inside the UMG Widget,… as long as he followed the Tutorial + i don’t think you can call a “ButtonClicked” Function in the Pickup Actor
without having any ButtonActor to link to :smiley:

You normaly set the Action Text of the Item Struct for each item inside its Blueprint or when it’s spawned in the option at the right side of the editor.
And the Logic we see at his last picture is the part where this variable gets linked to the Action Text of the Widget, which is the Binded Variable for the
Button.

So normaly this should work. He must have forgotten something in the Item or within the pickup method.

@Firezown: Would you mind showing me the Struct of your Item that you tried to pickup and of the Blueprints where you assign this variable
and put it into the Iventory?

hey,

what i see at the picture is not a click event but a delegate call thats why i assume he is not inside a widget :slight_smile:

he could even be in the controller class as well… i dont know until he tells me^^

Edit: but i dont know the tutorial he followed :slight_smile:

edit: @exi: ah ok now i see what you are up to :slight_smile:

Na, you can assume he is inside, because this delegate is created by assigning a “ButtonClicked” Event to a Widget Button.
Above the things he showed us in the screen, there is an array of Buttons and a DoOnce with a for each loop. This assignes
the ButtonClick Event to every Button. And this seems to work, because when he clicks the button, the ActionMenu Shows up.

I can’t really tell why his items gets invisible and the whole inventory breaks. It would be way easier to either have a look
at his whole project or for him just going through the tutorial one more time, step by step.

The Action Text problem could be linked to the whole problem. I don’t think it has to do with assigning the Variable, because
that seems to work. For testing that, he could Type in a Random name for the Variable instead of using the Item Struct one.

If he then clicks on the Item and the Action Text shows the random text, the whole clicking thing works and the item is broken
somewhere.

I dont see such a picture, so i assume it is done inside the tutorial, right?

However, i told him a few times now to simply add a breakpoint and watch the Action Text´s value :slight_smile:

yes of course its working, each child button can now fire the event in its parent widget return its index (slot) to the parent.
And the parent widget has another child which is the Action Menu, but he is not setting the bound variable inside the action menu, instead of that
he uses a variable inside the parent which does nothing.

Sorry, i fell asleep last night trying to fix this :p. In the tutorial his Widget is called “GameHudBlueprint” Mine is called “Main Ui” its a widget blueprint i just named it differently. My Action Text and inv struct and everything is inside there. Also Ive gone through all the videos several times over and i do not see anything that is done differently.What i’m trying to do is have the button that shows up with no text say “Equip” for this pistol i have.Also this text thing is not the only problem as you can see in the video the inventory freezes when i click any of the buttons. Here is my InvStruct in my pistol pickup.

Pistol.png

Have you tried debugging it like we told you? I don’t like repeating myself over and over again.
Please check if you set the Action Text correctly.

Try to assign a text to the button manualy here:

&d=1423911872

Disconnect the Action Text and fill it with something by hand to make sure that the binding works.

Also take the “Aktions” Pin of your Struct that you now should have disconnected and put it into a print node.
Exec the print node just behind the “Set Visibility” Node to check if the “Actions” Variable is not empty.
Remember this will only print if you press the Item in your inventory.

If you have done this, come back and tell me what the result was.

Ok, When i unpin actions to Action Text and type something in it it shows up on the button. Also i connected Actoin Text to a print and i did not see the print say anything.So something i wrong with the actions pin i guess i’m not sure what it is.