I have a lot of customizations around the look/feel of the wards in my game. After a lot of messing around with them, I eventually settled on overriding some of the AbilitySpecial values and the AbilityTextureName then forcing certain models in through the npc_spawned event so that a certain model is spawned rather than the default behavior to use whatever ward the player owns.
That worked great, but when wards stack, they form a item_ward_dispenser, which double-left-clicking will change which ward shows in the foreground of the image. I have images made up for that, but since there are two, it's not like I can just set the AbilityTextureName and it doesn't appear to be something I can inject as a AbilitySpecial, so presumably it's somewhere in Valve's Lua code.
Playing around with Panorama's debugger, It looks like the src image that gets loaded is file://{images}/items/ward_dispenser.png (whereas something for a custom game would be in a location like raw://resource/flash3/images/items/my_custom_item.png
Not sure if there's a way to be able to override that location/inject my custom png in its place, or would this end up being something I just need to write my own implementation of (which after my experience with obs/sents individually doesn't seem promising because of the whole placement UI/showing fog of ward particles that seem pretty impossible to emulate). I feel like the ideal would be if I could just override GetTexture(), but I'm not sure if there's a way to do just that with the way Lua runs (seems like it's always a fully custom script/no ability to call the parent/base functionality)