Skip to content

Blog

Indirect UI Actions: Modal Confirmation Without Widget Dependencies

Sometimes you build a feature that looks like a tiny UI polish… and it ends up unlocking a whole new level of system design.

That’s exactly what happened while improving my Inventory & Equipment UI.

I was working on what looked like a simple feature - selecting an item, choosing an action like Use, and showing a modal confirmation - but it exposed a bigger architectural challenge:

How do you trigger a modal confirmation flow without forcing every widget to know about every other widget?

This update is about solving that problem properly.

Not by introducing more master classes, not by casting to specific widget types, and not by wiring together a delegate spiderweb - but by designing the flow around decoupled commands, payloads, and queued execution.

It’s visually small.

Technically huge.

From “Side Quest” to Main Quest: Making a Widget System Without Class-Lock

Sometimes you start “just polishing one small thing”… and you end up solving a problem that’s been haunting you for years.

That’s exactly what happened to me while working on my Inventory & Equipment System.

I originally considered this work a side quest.

I should’ve been focused on the “main gameplay” features. But honestly? Seeing the UI architecture click into place is insanely satisfying.

And more importantly: this rabbit hole led to a major improvement in usability - not just for me, but for anyone who will use the system later.