I am working on a shop gui, and everything works, except the whole server script. It acts as if i didnt fire the event, and doesnt print anything from the script either. The scripts are also not disabled, so idk whats going on. And since there are no errors in the input, it makes it a lot harder.
This is what i got so far:
The layout is like this: Button > Server Script, Local Script, and Remote Event (They are all inside the button)
Local Script:
local BuyEventOn = script.Parent:WaitForChild("BuyEvent")
local Player = game.Players.LocalPlayer
script.Parent.MouseButton1Down:Connect(function(click)
if Player:WaitForChild("leaderstats"):FindFirstChild("Money").Value > = script.Parent:WaitForChild("Cost").Value and Player:FindFirstChild(script.Parent.Name).Value == 0 then
BuyEventOn:FireServer()
print("1")
end
end)
Server Script:
local BuyEventOn = script.Parent:WaitForChild("BuyEvent")
local function BuyEvent1(Player)
print("2")
Player:WaitForChild("leaderstats"):FindFirstChild("Money").Value = Player:WaitForChild("leaderstats"):FindFirstChild("Money").Value - script.Parent:WaitForChild("Cost").Value
Player:FindFirstChild(script.Parent.Name).Value = 1
script.Parent.BackgroundColor3 = Color3.new(0, 255, 0)
end
BuyEventOn.OnServerEvent:Connect(BuyEvent1)
Im so confused, and im wondering if i did something wrong. And i know its not having anything to do with the Background color or the Leaderstats part, cause if it was then why isnt the print("2") part working? If you can help then please do! Thanks!

4 comments
Hello Nikkulai, have you tried debugging your local script? Add an else statement under the first if statement in your Local script and add a print ("you dont have enough money for this item."). This is checking if your first conditional statement could be false. :)
Ok, thanks! :D
If it happens to work/not work, then ill tell you.
https://forum.scriptinghelpers.org/topic/186/how-and-when-to-use-remoteevents-and-remotefunctions https://forum.scriptinghelpers.org/topic/112/how-to-use-remoteevents-properly