So i am making a Debug for my game so i can easily test things, I have a simple GUI with a button to add food, here is the script:
script.Parent.MouseButton1Click:connect(function() game.ReplicatedStorage.Debug_Events.AddFood:FireServer() print("Client - Debug: ", script.Parent.Parent.Name, " - Fired") end)
When clicking the button it should fire the server so that my server script can pick it up and change a value, Here is the script that picks it up:
while true do wait() local Event = game.ReplicatedStorage.Debug_Events Event.AddFood.OnServerEvent:Connect(function() workspace.Player_Cache.Food.Value = workspace.Player_Cache.Food.Value + 1 print("Client - Debug was used to add Food") end) end
All i want is for it to fire once and add 1 food to the current amount of food, Instead it fires anywhere from 50 - 900 times, I added a Debounce on both and it still did the same, any help is much appreciated.
The 'while true do' part is not needed. This will create a loop, causing it to add your food more than once. The client is not firing the event many times, rather the server is acting upon the event many times.
Try this:
local Event = game.ReplicatedStorage.Debug_Events Event.AddFood.OnServerEvent:Connect(function() workspace.Player_Cache.Food.Value = workspace.Player_Cache.Food.Value + 1 print("Client - Debug was used to add Food") end)