I've been using DataStores for a while. Now today, I watched a tutorial on saving tables. I did what I suppose to do, but my data(which is a table) consist of nil indexes. I have no idea how to fix it, I have checked if my GetAsync() only has 1 parameter, looked at the DevForum. No solutions. I EVEN checked if I was using the correct key.

Code(Server Sided):

local dataStoreService = game:GetService("DataStoreService")
local replicatedStorage = game:GetService("ReplicatedStorage")

local powerDataStore = dataStoreService:GetDataStore("PowerDataStore")

local availablePowers = replicatedStorage:WaitForChild("PlaceHolders").Powers

game.Players.PlayerAdded:Connect(function(player)
	local AvailablePowersFolder = Instance.new("Folder", player)
	AvailablePowersFolder.Name = "AvailablePowers"

	local data

	local success, Error = pcall(function()
		data = powerDataStore:GetAsync("AvailablePowerData-"..player.UserId)
	end)

	if success and data ~= nil then
		print(data)
		for _, v in pairs(data) do
			if replicatedStorage.PlaceHolders.Powers:FindFirstChild(v.Name) then
				local powerValue = Instance.new("StringValue", AvailablePowersFolder)
				powerValue.Name = v.Name
			end
		end
	end
end)

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

	for _, v in pairs(player["AvailablePowers"]:GetChildren()) do
		table.insert(powerTable,v.Name)
		for _, v in pairs(powerTable) do
			print(v)
		end
	end



	if #game:GetService("Players"):GetChildren() == 1 then
		-- it will fire BTC function instead,so datastore request will not be dropped
	else
		success, Error = pcall(function()
			powerDataStore:SetAsync("AvailablePowerData-"..player.UserId, powerTable)

			if success then
				print("Saved data! - ".. player.Name)
			else
				warn(Error)
			end
		end)
	end
end)

game:BindToClose(function()

	for _, player in pairs(game:GetService("Players"):GetPlayers()) do

		local powerTable = {}

		for _, v in pairs(player["AvailablePowers"]:GetChildren()) do
			table.insert(powerTable,v.Name)
		end

		local success, Error = pcall(function()
			powerDataStore:SetAsync("AvailablePowerData-"..player.UserId, powerTable)
		end)

		if success then print("Saved data on BTC! - ".. player.Name) end

	end

end)

ANY help would be appreciated!