This script doesn't change the value of the money.
local player = game.Players.LocalPlayer or game.Players.PlayerAdded:Wait()
local leaderboard = player:WaitForChild("Leaderboard")
local money = leaderboard.Money
local value = script.Parent
value.Text = money.Value
money:GetPropertyChangedSignal("Value"):Connect(function()
value.Text = money.Value
end)
local hum = game.ReplicatedStorage("Drooling Zombie"):WaitForChild("Humanoid")
hum.Died:Connect(function()
game.ServerStorage.givemoney:Fire(15,money.Value)
end)

2 comments
You might be able to store a value of how many zombies have been spawned, and when one is killed, +$ to the money value? Not quite sure but I hope it helps a little!
u dont need to use server for give player money some of roblox contents will change for all players like player position or leaderstats