Keep getting reward each time i play

Once.Value is a Bool Value and I even have it on my datastore. the boolvalue turns true and stays that way after I received reward for the first time but for some reason I still keep getting the reward each time I rejoin.

if Once.Value == false and Player:IsInGroup(GroupId) then
		Once.Value = true
		Gems.Value = Gems.Value + Reward
	else
			print("already got reward") -- this doesnt even show in the output
	end

just use a datastore like this:

if not ds:GetAsync(Player.UserId) and Player:IsInGroup(GroupId) then
	Gems.Value = Gems.Value + Reward
	ds:SetAsync(Player.UserId, true)
else
	print("already got reward") -- this doesnt even show in the output
end