How can I transfer folders( From DataStores) to other places in my game

I recently made a Data Store that saves stats in a folder and I believe it works. However upon trying to use it I get no values Any help will be appreciated

– Script(Place 1)

local RS = game:GetService("ReplicatedStorage")
local SaveData = game:GetService("DataStoreService"):GetDataStore("System1")
local Debounce = {}


game.Players.PlayerAdded:Connect(function(Player)
	local StatFolder = Instance.New("Folder",Player)
	StatFolder.Name = "StatFolder"

	local Constitution = Instance.New("IntValue",StatFolder)
	Constitution.Name = "Constiution"
	Constitution.Value = 0
	
	local Strength = Instance.New("IntValue",StatFolder)
	Strength.Name = "Strength"
	Strength.Value = 0
	
	local Dexterity = Instance.New("IntValue",StatFolder)
	Dexterity.Name = "Dexterity"
	Dexterity.Value = 0
	
	local Agility = Instance.New("IntValue",StatFolder)
	Agility.Name = "Agility"
	Agility.Value = 0
	
	local Intelligence = Instance.New("IntValue",StatFolder)
	Intelligence.Name = "Intelligence"
	Intelligence.Value = 0
	
	local Charisma = Instance.New("IntValue",StatFolder)
	Charisma.Name = "Charisma"
	Charisma.Value = 0
	
	local Wisdom = Instance.New("IntValue",StatFolder)
	Wisdom.Name = "Wisdom"
	Wisdom.Value = 0
	
	local TruePoint = Instance.New("IntValue",StatFolder)
	TruePoint.Name = "TruePoint"
	TruePoint.Value = 0

	local Success, Value = pcall(function()
		return SaveData:GetAsync(Player.UserId)

	end)

	if Success then
		if Value then
			Constitution.Value = Value[1]
			Strength.Value = Value[2]
			Dexterity.Value = Value[3]
			Agility.Value = Value[4]
			Intelligence.Value = Value[5]
			Wisdom.Value = Value[6]
			Charisma.Value = Value[7]
          TruePoint.Value = Value[8]


		end
	else
		Constitution.Value = 0
		Strength.Value = 0
		Dexterity.Value = 0
		Agility.Value = 0
		Intelligence.Value = 0
		Wisdom.Value = 0
		Charisma.Value = 0
       TruePoint.Value = 0
end

end)

game.Players.PlayerRemoving:Connect(function(Player)

	local StatTable = {
		Player:WaitForChild("StatFolder").Strength.Value,
		Player:WaitForChild("StatFolder").Dexterity.Value,
		Player:WaitForChild("StatFolder").Agility.Value,
		Player:WaitForChild("StatFolder").Intelligence.Value,
		Player:WaitForChild("StatFolder").Wisdom.Value,
		Player:WaitForChild("StatFolder").Charisma.Value,
		Player:WaitForChild("StatFolder").TruePoint.Value
	}

	local Success, Error = pcall(function()
		return SaveData:SetAsync(Player.UserId, StatTable)
	end)

	if Error then
		print(Error)

	end

end)


game:BindToClose(function()
	for i,players in pairs(game.Players:GetPlayers()) do

		local StatTable = {
			players:WaitForChild("StatFolder").Constitution.Value,
			players:WaitForChild("StatFolder").Strength.Value,
			players:WaitForChild("StatFolder").Dexterity.Value,
			players:WaitForChild("StatFolder").Agility.Value,
			players:WaitForChild("StatFolder").Intelligence.Value,
			players:WaitForChild("StatFolder").Wisdom.Value,
			players:WaitForChild("StatFolder").Charisma.Value,
			players:WaitForChild("StatFolder").TruePoint.Value
		}

		local Success, Error = pcall(function()
			return SaveData:SetAsync(players.UserId, StatTable)
		end)

		if Error then
			print(Error)
		end

	end
end)

local TS = game:GetService("TeleportService")
local ID = 192991921
RS.TeleportToCC.OnServerEvent:Connect(function(Player)
	if Debounce[Player] then return end
	Debounce[Player] = true

	local Character = Player.Character
	
	if SaveData:GetAsync(Player.UserId) == nil or 0 then 
		TS:Teleport(ID,Player)
		
	end 
	
	
end)
		

	

–Script (Place 2)

local DSS = game:GetService("DataStoreService")
local System = DSS:GetDataStore("System1")
local RS = game.ReplicatedStorage
local player = game.Players.LocalPlayer






RS.AddPoint.OnServerEvent:Connect(function(player,concat)
	System:GetAsync(player.UserId)
	local Con = player:WaitForChild("PowerFolder").Dexterity
	local Str = player:WaitForChild("PowerFolder").Strength
	local Dex = player:WaitForChild("PowerFolder").Dexterity
	local Agi = player:WaitForChild("PowerFolder").Agility
	local Int = player:WaitForChild("PowerFolder").Intelligence
	local Wis = player:WaitForChild("PowerFolder").Wisdom
	local Cha = player:WaitForChild("PowerFolder").Charisma

	
	if concat == "1" then
		Agi.Value += 1
		print("works")
	end
	if concat == "2" then
		Cha.Value += 1
		print("works")

	end
	if concat == "3" then
		Con.Value +=1
		print("works")

	end
	if concat == "4" then
		Dex.Value += 1
		print("works")

	end
	if concat == "5" then
		Int.Value += 1
		print("works")

	end
	if concat == "6" then
		Str.Value +=1
		print("works")

	end
	if concat == "7" then
		Wis.Value += 1
		print("works")

	end

	
	
	
end)



please ignore the “PowerFolder” that is in the second place. Those are "StatFolder
"

You would Keep the exact same system you have.

Data from DataStores are kept even when moving to other Places under the same game, which makes it easier for you to Handle your Data rather than having to send a HTTP request to try and get this Data (If that’s possible, potentially with a Proxy), unless you are moving to a completely different game, you might do this, but moving between places under a specific game is fine, Data from the Starting Place will Apply Here.

However, to Save Instances, you would need HttpService to Encode the Items to JSON, which is a bit of a complicated process, If you will have the same system on the other place, just save the Values, and set up the system in the other place.

Exactly as Cairo said, you should copy the script in the place 1 and paste it in place 2 too.
Creating the folders on join, the values, reading the datastore and populating the values.

Just one thing to notice, you are handling incorrectly the pcall.
You are setting to 0 all the values when the connection from the server and the DSS failed.
Example, if I already played your game and I have stats stored, if I join again your game and the DSS fails to connect, you would be giving me stats = 0. And when I leave the server you will save my stats on 0, making me lose my whole progress that I used to have from past sessions.
I added some warns that points each event of your pcall

local Success, Value = pcall(function()
	return SaveData:GetAsync(Player.UserId)
end)

if Success then
	warn("Connection with DSS Succeded")
	if Value then
		warn("Player has existing data")
		Constitution.Value = Value[1]
		Strength.Value = Value[2]
		Dexterity.Value = Value[3]
		Agility.Value = Value[4]
		Intelligence.Value = Value[5]
		Wisdom.Value = Value[6]
		Charisma.Value = Value[7]
		TruePoint.Value = Value[8]
	else
		warn("Player has no data, means new player")
	end
else
	warn("Connection with DSS Failed, you should perform retries")
-- Do retries cause the connection failed, do it until succeded connection
-- If not, kick the player but, do not give them stats = 0 or save those stats until you
-- get proper data from the player
	Constitution.Value = 0
	Strength.Value = 0
	Dexterity.Value = 0
	Agility.Value = 0
	Intelligence.Value = 0
	Wisdom.Value = 0
	Charisma.Value = 0
	TruePoint.Value = 0
end

So in conclusion, I would copy my script from place 1 and put it in place 2. For my place 2 scripts, Can I get rid of the instance new values from place 2 or can i keep them there

and also i keep getting this error ServerScriptService.AttributeService:7: attempt to call a nil value when I try to call it in place 2