I am making a shop gui for my game using filtering enabled, however when I move my mouse over the button in studio the button does not respond, it just stays white.
Here's my local script:
local OpenGui = game:GetService('ReplicatedStorage').Remote.GuiOpen script.Parent.MouseButton1Click:Connect(function() OpenGui:FireServer('shopMainFrame') end)
And my server scipt:
function openGui(player, gui) game.Players:WaitForChild(player.name).PlayerGui.Guis.ScreenGui:WaitForChild(gui).Visible = not game.Players:WaitForChild(player.name).PlayerGui.Guis.ScreenGui:WaitForChild(gui).Visible end game:GetService('ReplicatedStorage').Remote.GuiOpen.OnServerEvent:Connect(function(player, gui) openGui(player, gui) end)
My StarterGui looks like this:
https://imgur.com/a/nZpIt
And here is what my guis look like when the mouse is over them: https://imgur.com/SVUrGS0
Do your images have transparent backgrounds? When Roblox darkens your button on mouse hover it is actually the background that is getting darker, not the image. So if your images are opaque the color change will not be visible behind the image. To fix this, either use images with transparency, or if you cant/don't want to then you can use something like this to get the same effect:
local button = script.Parent local defaultButtonColor = button.ImageColor3 local hoverButtonColor = Color3.new(0.8, 0.8, 0.8) button.MouseEnter:connect(function() button.ImageColor3 = hoverButtonColor end) button.MouseLeave:connect(function() button.ImageColor3 = defaultButtonColor end)
Server Scripts cannot access PlayerGuis, only LocalScripts.
LocalScript
local guiHere -- Location of the gui that you want to open script.Parent.MouseButton1Click:Connect(function() guiHere.Visible = not guiHere.Visible end)