In the first image, you’re calling “GetPlayerCharacter” and casting to MyCharacter from within the MyCharacter class; you don’t need to do that, just use the ChildTest variable directly, it’s local.
In the second image, you’ve set up “EquipIronSword” as an event, rather than a method. This will work, but it does operate a bit differently, and I think execution time is a bit slow since it runs through the UE event system.
Also, you’re retrieving the Inventory from MyCharacter, rather than from your GameInstance.
The ButtonClicked value is part of MyCharacter, when you’re within MyCharacter you don’t need to use “Self” to get local variables, you can just access them directly.
Looks like your character has a sword in hand in that last image, though! Something’s going right.