Idea Make a simple reward system that will reward the player after 24:00:00 Using the os.time() function.
Issue The timer goes into a negative time, as a result It shows up as things like (-21:02:13)
Code1



~~local RewardTime = 24*60*60 --How often they get the reward in seconds --This is 24 hours

local DataStore = game:GetService("DataStoreService"):GetDataStore("LastLogin")
local Player = script.Parent.Parent.Parent.Parent.Parent
local LastLogin = DataStore:GetAsync(Player.userId) or os.time()
 

while true do

Seconds = RewardTime-(os.time()-LastLogin);
Minutes = Seconds/60;
Hours = Minutes/60;	
script.Parent.Text = ("Time Until Next Reward: d:d:d"):format(Hours,Minutes%(60),Seconds%(60))
wait(1)
end

Code2

local DataStore = game:GetService("DataStoreService"):GetDataStore("LastLogin")

game.Players.PlayerAdded:connect(function(Player)
    wait()
    local LastLogin = DataStore:GetAsync(Player.userId)
    if LastLogin then
        local Seconds = os.time()-LastLogin
        local Minutes = Seconds/60
        local Hours = Minutes/60
        print("It has been: "..Hours.." hours Since your last reward")
        if Hours >= 24 then
            print("You get a daily login award")
            DataStore:SetAsync(Player.userId,os.time())
        end
    else
        DataStore:SetAsync(Player.userId,os.time())
    end
end)

Thanks :D