Datastores not working to save tables

my code to save users data in a table:

local function returnPlayerItems(player)
	
	
	
	print(playerWords:GetAsync(player.UserId))
	return playerWords:GetAsync(player.UserId) or defaultStarterCards
	
	
	
end

game.Players.PlayerAdded:Connect(function(player)
	
	local char = player.Character or player.CharacterAdded:Wait()
	
	globalDiscoveries:SetAsync(player.UserId, {} or globalDiscoveries:GetAsync(player.UserId))
	
	for i, v in pairs(returnPlayerItems(player)) do
		
		
		addItem(player, v)
		
	end
	
end)



game.Players.PlayerRemoving:Connect(function(player)
	local items = {}

	for i, v in ipairs(player.PlayerGui.gameGui.Frame.items:GetChildren()) do
		if v:IsA('Frame') and v.Name ~= 'temp' then
			table.insert(items, v.Name) -- Use v.Name if it's the item identifier
		end
	end

	-- Debugging: Print to ensure the items table looks correct
	print("Saving items for player:", player.UserId, items)

	-- Attempt to save, handling errors or ensuring the correct format
	local success, errorMessage = pcall(function()
		playerWords:SetAsync(player.UserId, items)
	end)

	if not success then
		warn("Failed to save items for player:", player.UserId, errorMessage)
	end
end)

it flat out refuses to load the correct data for playerWords, even in a real game. I’m going to bed. This is ridiculous.