local DataStore = game:GetService(("DataStoreService"):GetDataStore("Daily Rewards")
	
local hourWait = 24

local possibleRewards = {10,15,20,5,5,5,5,5,5,5,5,5,5,5,100,250}


game.Players.PlayerAdded:Connect(function(player)
	
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parents = player
	
	local coins = Instance.new ("IntValue")
	coins.Name = "Coins"
	coins.Parent = leaderstats
	
	local timeNow= os.time()
	
	local data
	
	pcall (function()
		data = DataStore:GetAsync(player.UserId.."-dailyReward")
		print ("Getting Data")
	end)
	
	if data ~= nil then
		--Returning player to the game
		
		local timeSinceLastPlay = timeNow - data -- Number in sec since the last reward was claimed
		
		print ("Time since last claim"..timeSinceLastClaim)
		
		if (timeSinceLastClaim / 3600) >= hourWait then
			--They are eligible for a reward
			local reward = possibleRewards [math.random(1,#possibleRewards)]
			game.ReplicatedStorage.ShowDailyReward:FireClient(player,hourWait,reward)
			local connection 
			connection = game.ReplicatedStorage.ClaimReward.OnServerEvent:Connect((function(triggeringPlayer)
				if triggeringPlayer == player then
					print ("Reward Claimed")
					player.leaderstat.Coins.Value = player.leaderstat.Coins.Value + reward
					DataStore:SetAsync(player.UserId.."-dailyReward",os.time())
					connection:Disconnect()
				end
			end)
		else
			print("Player is uneligible right now")
			
		end
		
	else
		--New player
		print("New player")

	end
	
end)


game.Players.PlayerRemoving:Connect((function(player)
	local data
	pcall(function()
		data = DataStore:GetAsync(player.UserId.."-dailyReward")
		print ("Getting the Data")
	end)
	
	if data ==nil then
		-- New player
		pcall((function()
			local timeVal = os.time()
			DataStore.GetAsync(player.UserId.."dailyReward")
		end)
		print("Saved because you are a new player")
	end
end)
-----------------------
-----------------------
game.ReplicatedStorage.ShowDailyReward.OnClientEvent:Connect(function(hourToNextReward,rewardAmount)
	script.Parent.Enabled = true
	script.Parent.Frame.Comeback.Text = "Come back in "..hoursToNextReward.."hours for your next reward"
	
	script.Parent.Frame.Claim.MouseButton1Click:Connect(function()
		game.ReplicatedStorage.ClaimReward:FireServer()
		script.Parent.RewardNotice.Text = "You got "..rewardsAmount.."Coins"
		script.Parent.RewardNotice:TweenSizeAndPosition(UDim2.new(0.6,0,0.15,0),UDim2.new(0.5,0,0.5,0))
		script.Parent.Frame.Visible = false
		wait(1.5)
		script.Parent.RewardNotice:TweenSizeAndPosition(UDim2.new(0,0,0,0),UDim2.new(0.5,0,0.5,0))
		wait(1.5)
		script.Parent.Enabled = false
		script.Parent.Frame.Visible = true
	end)
	
end)

i dont know where is the problem and i have the remote event in rep storage so please i need a help btw its 2 scripts

1 comment

0

I think the problem is that the GUI is not enabled when you are making the frame visible. Just simply get rid of line 91 and everything should work fine.