I'm talking about this tutorial: http://wiki.roblox.com/index.php?title=In_Game_Currency

I've tried multiple ways but I just can't get it right.

The last thing I tried was making the script inside the button fire an event to the PurchaseScript:

-button script

local click = script.Parent.ClickDetector.MouseClick
local curman = require(389753980)
local deposit = game.ReplicatedStorage.Deposit

click:Connect(function(player)
	deposit:Fire(player, 100)
end)

-purchase script

local CurrencyManager = require(389753980)

local deposit = game.ReplicatedStorage.Deposit
local currentGold = {}
local updateCur = game.ReplicatedStorage.UpdateCurDis
CurrencyManager:SetInitialFunds(100)

local function onPlayerJoin(player)
	CurrencyManager:InitializePlayer(player.UserId)
	local balance = CurrencyManager:GetBalance(player.UserId)
	currentGold[player.UserId] = balance
	updateCur:FireClient(player, balance)
end

local function Deposit(player, amount)
	local balance = CurrencyManager:GetBalance(player.UserId)
	currentGold[player.UserId] = balance + amount
	updateCur:FireClient(player, CurrencyManager:GetBalance(player.UserId))
end


game.Players.PlayerAdded:Connect(onPlayerJoin)
for _, player in ipairs(game.Players:GetPlayers()) do
	onPlayerJoin(player)
end

deposit.Event:Connect(Deposit())

But it gives me the error:

15:32:25.479 - ServerScriptService.PurchaseScript:16: attempt to index local 'player' (a nil value)
15:32:25.481 - Stack Begin
15:32:25.482 - Script 'ServerScriptService.PurchaseScript', Line 16 - local Deposit
15:32:25.483 - Script 'ServerScriptService.PurchaseScript', Line 27
15:32:25.484 - Stack End

help?