I have a game that has a daily reward in it, but I also made it so people can buy cash. Whenever someone buys cash, the daily reward breaks and they wont get the 5 cash daily reward.
Here's the daily reward script:
local datastoreService=game:GetService("DataStoreService") local datastore=datastoreService:GetDataStore("ClubData") local dailyRewardWait=24 local reward=5 game.Players.PlayerAdded:connect(function(p) local leaderstats=Instance.new("Folder") leaderstats.Name="stats" leaderstats.Parent=p local coins=Instance.new("IntValue") coins.Name="Coins" coins.Parent=leaderstats local userdata pcall(function() userdata=datastore:GetAsync(p.UserId) end) if userdata then if (os.time()-userdata.rewardTime)/3600>=dailyRewardWait then userdata={coins=userdata.coins+reward; rewardTime=os.time();} datastore:SetAsync(p.UserId,userdata) end coins.Value=userdata.coins else datastore:SetAsync(p.UserId,{ coins=0; rewardTime=os.time(); }) end end)
Here's the data store script:
CashStore = game:GetService("DataStoreService"):GetDataStore("PlayerData") function PlayerEntered(player) repeat wait() until player.Character local cash = player.stats.Coins if CashStore:GetAsync("Points_"..player.Name) ~= nil then cash.Value = CashStore:GetAsync("Points_"..player.Name) else cash.Value = 0 end cash.Changed:connect(function(Val) CashStore:SetAsync("Points_"..player.Name, Val) end) end game.Players.PlayerAdded:connect(PlayerEntered)