Hello, I'm currently making it so a PlayerGui is changed via BindableEvent (as it's client to client), the BindableEvent does fire, but the other local script doesn't receive it.
Here's my firing local script:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local rewardchange = game.ReplicatedStorage:WaitForChild("RewardChange")
local function mouseclick()
rewardchange:Fire()
print("Fired")
end
game.Players.LocalPlayer.PlayerGui.ScreenGui.Mainframe.PremiumPack.MouseButton1Down:Connect(mouseclick)
It's parent is StarterGui.
The receiving local script is in Workspace, and here it is:
local rewardgui = game.Players.LocalPlayer.PlayerGui.RewardGui
local button = game.Players.LocalPlayer.PlayerGui.ScreenGui.Mainframe.PremiumPack
local rewardchange = game.ReplicatedStorage:WaitForChild("RewardChange")
rewardchange.Event:Connect(function()
print("received")
local list = {"narahero","narahero","killerhero","wethero"}
local card = list[math.random(#list)]
if card == "narahero" then
rewardgui.NaraHero.Visible = true
rewardgui.NaraHeroDescription.Visible = true
rewardgui.NaraHeroHolder.Visible = true
rewardgui.NaraHeroName.Visible = true
print("It's good")
elseif card == "killerhero" then
rewardgui.KillerHero.Visible = true
rewardgui.KillerHeroDescription.Visible = true
rewardgui.KillerHeroHolder.Visible = true
rewardgui.KillerHeroName.Visible = true
print("It's good")
elseif card == "wethero" then
rewardgui.WetHero.Visible = true
rewardgui.WetHeroDescription.Visible = true
rewardgui.WetHeroHolder.Visible = true
rewardgui.WetHeroName.Visible = true
print("It's good")
end
button.Parent.Visible = false
end)
The way I know it doesn't receive is cause 'received' doesn't print, any help would be appreciated.

2 comments
i updated my answer to include ihatecar's answer. should be better for when people google and find this thread
since it has multiple troubleshooting options