I’ve been thinking on what a good solution for this would look like considering Roblox’s icon format.
Right now, Roblox drops all of their icons in one central directory, and refers to them directly by name. Explorer instances draw from the icons with the same name as their class, while ribbon icons and other icons from around the UI use hardcoded names:
This is fantastic… if you’re Roblox. For modders, this is an unmitigated nightmare. We don’t actually have the power to change any icons, we can only push pixels over our problems. I can make it look like the ribbon uses different icons, but only because I’m hackily specifying different icons to show up at different resolutions. I don’t need to explain how that’s fragile, especially considering that Studio is moving to a more responsive design where resolutions aren’t guaranteed to stay constant.
What should really be implemented is a layer of indirection. Every unique usage of an icon should be given a unique identifier. At this level, we should not be thinking about what icon we intend to show there - we are explicitly deferring this decision.
Once we have a list of unique usages, we can then map icon names onto those usages. This list should be part of the icon pack, not hardcoded into Studio. This means if an icon modder has a different idea about how icons should be associated, we can change the association ourselves.
For a living, breathing example of how much better this system would make icon modding, I refer you to the View tab, where we can discover how Roblox’s icon format has locked us into a deeply unsatisfying situation:
Both of those buttons draw from the same icon,
ShowGrid.png. That’s hardcoded behaviour, and as an icon modder I am completely powerless to change that.
I already have two separate icons designed specifically for those buttons. They’re 100% ready to go - I have them right here:
But because Roblox has hardcoded those icons, too bad! Looks like I’m stuck with Roblox’s design decision in my icon pack now:
This sucks. And it’s far from the only occurrence of problems like this. There are icons left, right and centre where I want to do more than just change the pixels. I want to change the associations. That’s pretty table stakes for a good icon pack format, so it should be possible.