I have some errors regarding a global datastore not functioning correctly. I will attach the code I am using to call said value and to set it. HTTP and Roblox Studio API are all good.
Setting code:
local CreatedServer = TeleportService:ReserveServer(game.PlaceId)
local Dict = {
ServerName = group,
PlayerName = plr.Name,
RoleName = RoleName,
GroupID = groupID,
}
serverData[CreatedServer] = Dict
Original setup:
local DataStoreService = game:GetService("DataStoreService")
local HttpService = game:GetService("HttpService")
local serverDataStore = DataStoreService:GetDataStore("jreiogehrughwrjghew3kjghe")
local serverData = {}
local success, getServerData = pcall(function()
return serverDataStore:GetAsync("Main")
end)
if success then
serverData = getServerData
end
local function VerifyServers()
for code,data in pairs(serverData) do
--
end
end
print(serverData)
if serverData then
for i,v in pairs(serverData) do
print(i, v["ServerName"])
end
end
It calls nill. I have it screenshot. It’s kinda hard to read.
Help would be appreciated
I’m guessing this is Line 57 in your script, where it says the error is happening.
That long random string of characters in the error message is the index trying to be found in a table (it’s the server key returned from ReserveServer), but it’s saying the table is nil, so you’re trying to access an index of nil which isn’t allowed.
That makes me guess that your serverData
variable is not defined on that line where you’re using it. Are you sure it was declared (i.e. local serverData = ...
) somewhere before that line in the script?
1 Like
Yeah it was declared earlier in the script
I did some tweaking and now I get an error at line 64. My new code is attached. It also wont transfer a table via a function and remote event.
local TeleportService = game:GetService("TeleportService")
local AssetService = game:GetService("AssetService")
local RpS = game:GetService("ReplicatedStorage")
local DataStoreService = game:GetService("DataStoreService")
local HttpService = game:GetService("HttpService")
local serverDataStore = DataStoreService:GetDataStore("jreiogehrughwrjghew3kjghe")
local success, getServerData = pcall(function()
return serverDataStore:GetAsync("Main")
end)
local serverData = {}
if success then
table.insert(serverData, getServerData)
end
local function VerifyServers()
for code,data in pairs(serverData) do
--
end
end
local function BuildList(player, info)
if info then
RpS.Events:FindFirstChild("RefreshEvent"):FireClient(player, info)
elseif not info then
RpS.Events:FindFirstChild("RefreshEvent"):FireClient(player)
end
end
RpS.Events:FindFirstChild("RefreshEvent").OnServerEvent:Connect(function(player)
BuildList(player)
end)
RpS.Events.CreateServer.OnServerEvent:Connect(function(plr,args,group)
local CreatedServer = TeleportService:ReserveServer(game.PlaceId)
local groupID
local RoleName
if group == "Royal Barbados Police Force" then
groupID.Value = 8526274
RoleName.Value = "Student Constable"
end
local Dict = {
ServerName = group,
PlayerName = plr.Name,
RoleName = RoleName,
GroupID = groupID,
}
print(CreatedServer)
table.insert(serverData,CreatedServer)
local serverInfo = serverData[CreatedServer]
for i,v in ipairs(Dict) do
table.insert(serverData[CreatedServer], Dict[i])
end
print(#serverData[CreatedServer])
for i,v in ipairs(serverInfo) do
print(serverInfo[i])
end
BuildList(plr, serverInfo)
local success, err = pcall(function()
serverDataStore:UpdateAsync("Main", function() return serverData end)
end)
if success then
print("uploaded successfully")
end
if err then
warn(err)
end
end)
RpS.Events:FindFirstChild("TeleportEvent").OnServerEvent:Connect(function(player, targetID)
TeleportService:TeleportToPrivateServer(game.PlaceId, targetID, {player})
end)
RpS.Events:FindFirstChild("EndServerEvent").OnServerEvent:Connect(function(player, targetID)
serverData[targetID] = nil
local success, err = pcall(function()
serverDataStore:UpdateAsync("Main", function() return serverData end)
end)
if success then
print("uploaded successfully")
end
if err then
warn(err)
end
BuildList()
end)