-
What I want it to be able to do is store and retrieve data for a chunk loading/generating system.
-
It has been printing saying that it has loaded the chunks but it hasn’t loaded them in.
-
So far I have tried different ways to bug fix it but they didn’t work.
After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!
wait(10)
local chunks = game.ServerStorage.Chunks
local loadedchunks = workspace.Chunks
local redchunk = chunks.RedChunk
local greenchunk = chunks.GreenChunk
local chunkstable = {} --holds all of the chunks in ServerStorage
local dstableTemplate = {} --holds all of the loaded chunk templates for datastore
local dstableName = {} --holds all of the chunk names for datastore
local dstablenumber = 1
local chunktablenumber = 1
local storesNamesNumber = 1
local storedTemplatesNumber = 1
local datastoreName = game:GetService("DataStoreService"):GetDataStore("ChunkDataName") --chunk name datastore
local datastoreTemplate = game:GetService("DataStoreService"):GetDataStore("ChunkDatafortest1") --template number datastore
local storedNames
local storedTemplate
local player
for _,plr in pairs(game.Players:GetChildren()) do
player = plr
end
for _,part in pairs(chunks:GetChildren()) do
table.insert(chunkstable,chunktablenumber,part)
chunktablenumber = chunktablenumber + 1
end
local function newchunkload()
for _,template in pairs(workspace.ChunkTemplates:GetChildren()) do
local randchunk = chunkstable[math.random(1,#chunkstable)]
local clone = randchunk:Clone()
clone.PrimaryPart.CFrame = template.CFrame
clone.Parent = loadedchunks
table.insert(dstableTemplate,dstablenumber,template.Name)
table.insert(dstableName,dstablenumber,clone.Name)
dstablenumber = dstablenumber + 1
end
end
local function loadoldchunks()
for _,name in pairs(storedNames) do
local ChunkName = storedNames[storesNamesNumber]
local ChunkTemplateName = storedTemplate[storedTemplatesNumber]
local chunkTemplate = workspace.ChunkTemplates[ChunkTemplateName]
local clone = chunks[ChunkName]:Clone()
clone.Parent = workspace.Chunks
clone.PrimaryPart.CFrame = chunkTemplate.CFrame
storedTemplatesNumber = storedTemplatesNumber + 1
storesNamesNumber = storesNamesNumber + 1
end
end
local key = "user-" .. player.userId
storedNames = datastoreName:GetAsync(key)
storedTemplate = datastoreTemplate:GetAsync(key)
if storedNames and storedTemplate then
loadoldchunks()
print("Chunks have been loaded")
wait(0.1)
datastoreName:SetAsync(key, dstableName)
datastoreTemplate:SetAsync(key, dstableTemplate)
print("chunks have been saved")
else
newchunkload()
wait(0.1)
datastoreName:SetAsync(key, dstableName)
datastoreTemplate:SetAsync(key, dstableTemplate)
print("New chunks have been saved")
end