internal void InsertData(string id, string displayName, double playTime, double afkTime, double lastReward, int referrals)
{
UserData userData;
if (!_userData.TryGetValue(id, out userData))
userData = _userData[id] = new UserData();
userData.displayName = displayName;
userData.playtime = playTime;
userData.afkTime = afkTime;
userData.lastRewardTime = playTime;
userData.referrals = referrals;
}"userData.lastRewardTime = playTime;" is the culprit line, its using play time rather than the actual "lastReward" variable I assume its meant to be using.