Is There A Way To Prevent Cheating With UI (Inventory Widgets)

I’m just realizing an inventory system might not be able to prevent cheating if using a UI/Widget. So is there actually a way to prevent cheating on an inventory system that utilizes UI? I just realized I am either doing it wrong or may not be able to. I have that when you press a button you open your inventory UIWidget. The widget then fetches and adds all replicated inventory items that that CharacterBP has to a ListView through an object and set variables. When they click on an item in the UI it will call a ServerSpawn Event that runs in the CharacterBP and passes the object

Now two things, since the UI/Widgets is only run on the client, doesn’t that mean 1, they can change the Object variable that populates the UI to add weapons to their UIWidget that are not really there. And 2, Even if they couldnt do number 1, couldnt they just change the spawn class that goes into the ServerSpawn Event?

A third question actually, if I used a branch node on the client (in this case UI/Widget), does that mean they can force a true or false result?

UI is only supposed to present the most updated version of the underlying data and if it makes a false request to the server using outdated data or attempting to cheat then the server verification step should catch that and drop the request with or without a notification to the player.

In other words Widgets primary job is to present replicated data in a pretty way and forward the input from the user to the server in this case. Widgets should never be the source of truth it is just a messenger.