COMMON UI SOUND SHEET
CommonUI resolves button sounds from the button Slate style, so every sound variation normally means another style asset, and a menu-wide audio change means touching every button on it. There was no easy way to edit UI audio per menu in a central location, the way audio designers actually think about it.
I prototyped a native answer inside Epic's CommonUI plugin: a Sound Sheet data asset that defines the audio identity of an entire menu, resolved in C++ with no Blueprint wiring on the buttons themselves. This helps with auditioning audio, maintaining balanced mixes, and navigating to the corresponding buttons and sounds quickly.
Unreal Engine source (CommonUI plugin, 5.8 fork) · C++ · Engine-native prototype
01 | Sound Sheets
One Asset per Menu
A Common UI Sound Sheet is a data asset mapping button classes to sounds across twelve interaction events: press, click, hover, selection, release, and the hold-button family. Each Activatable Widget references one sheet, so a menu, a dialog, and an inventory screen can each carry their own audio identity while sharing the same button widgets. Designers can author sounds in one place per menu, with zero per-button setup.
02 | Resolution
Three Tiers, Resolved in C++
Sounds resolve through a three-tier fallback: a instance override on each button wins, then the owning screen's sound sheet, then the button style's defaults. The sheet lookup walks the button's class hierarchy, so a sheet entry for a base button class covers every derived button unless a more specific entry exists. Resolution happens inside CommonUI's own style pipeline and the owning screen is found by ancestry at runtime, so buttons keep the correct sounds through widget pooling and reparenting. Building it also surfaced two pre-existing CommonUI defects which I fixed along the way: a hold-button double-fire and lack of Enhanced Input hold data support.
03 | Editor Integration
First-Class Asset
The sheet is a first-class editor citizen: its own factory, asset category under Common UI, and create-menu entry, matching the conventions of Epic's shipped asset types. The goal was a feature that feels like it was always part of the plugin, for designers and for any engineer reading the diff.
In Development
Video Coming Soon!