The error is happening at this line table.insert(members.Members, Player.UserId)
Script
local function createCode(Player, code)
local code = code-- Code is what the player types into the textBox
members = Classes:GetAsync(code)--Check if the code is already in use
if not members then
Classes:SetAsync(code, {Owner = Player.UserId, Members = {}})
print("There are no members")
return true
else
--Tell the user the code is taken, class codes must be unique
return false
end
end
local function joinClass(Player, code)
local code = code--Code is what the player types into the textBox
members = Classes:GetAsync(code)--Check to see if it's a real code
if members then --If it's a real code then
Classes:UpdateAsync(code, function(members)
table.insert(members.Members, Player.UserId) -- Player being the one joining
return true
end)
else
print("no members")
return false
end
end
ReplicatedStorage.CreateCode.OnServerInvoke = createCode
ReplicatedStorage.JoinClass.OnServerInvoke = joinClass
Classes:UpdateAsync updates the current value of code.
When you return true it sets code to a boolean.
Try using
Classes:UpdateAsync(code, function(members)
local newmembers = newmembers
table.insert(newmembers, Player.UserId) -- Player being the one joining
return newmembers
end)
You don’t need to return true inside the update function.
You can do it after.
if members then --If it's a real code then
Classes:UpdateAsync(code, function(members)
local newmembers = newmembers
table.insert(newmembers, Player.UserId) -- Player being the one joining
return newmembers
end)
return true
else
print("no members")
return false
end