Maybe I’m misunderstanding the API, but setting PlayerGui.SelectionImageObject has no effect on the image used for gamepad navigation. GuiObject.SelectionImageObjectdoes work, but obviously I don’t want to set this property for every single button in my game.
Another thing: it appears as if only the top level GuiObject this property is set to will do anything with this; none of the children will be considered. I was hoping this would not be the case. I wanted to use an invisible frame for the parent frame and four thin frames along each edge with some BorderSizePixel > 0. This achieves a constant pixel border frame, regardless of how the parent frame is stretched (since BackgroundTransparency also affects border transparency which I also disagree with, but that’s neither here nor there).
Experiencing both issues still, setting it for PlayerGui doesn’t work at all (setting it for individual gui instances does work, but it’s very annoying) and it doesn’t move descendants (less of an issue though, still annoying).