I have a datastore and I need to check if a player has already picked up a collectible so that they can no longer pick it up

local DataStoreService = game:GetService("DataStoreService")
local myDataStore = DataStoreService:GetDataStore("myDataStore")

local player = game.Players.PlayerAdded:Connect(function(player)
	
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player
	
	local collectibles = Instance.new("IntValue")
	collectibles.Name = "Collectibles"
	collectibles.Parent = leaderstats
	collectibles.Value = player.leaderstats.Collectibles.Value
	
	local level = Instance.new("IntValue")
	level.Name = "Level"
	level.Parent = leaderstats
	level.Value = 1
	
	player.RespawnLocation = workspace.Level1.L1Spawn
	
	local playerUserID = "Player_"..player.UserId
	
	local data
	local success, errormessage = pcall(function()
		data = myDataStore:GetAsync(playerUserID)
	end)
		
	if success then
		collectibles.Value = data
	end
		
end)

game.Players.PlayerRemoving:Connect(function(player)
	local playerUserID = "Player_"..player.UserId
	
	local data = player.leaderstats.Collectibles.Value
	
	local success, errormessage = pcall(function()
		myDataStore:SetAsync(playerUserID, data)
	end)
		
	if success then
		print("data saved")
	else
		print("data not saved")
		warn(errormessage)
	end

end)

2 comments

0

did you watch it on youtube

0

watch what?