This is the code from a script of mine, that loads maps into the workspace, below a small glass box of spectators. Via the chat commands of myself and those in my permissions, maps will be loaded into the workspace, and different commands will be created to fit whatever need.
I am hoping to use one sort of basic structure for every command, since all of the maps are being loaded the same - with exactly the same sizes and limitations.
As of right now, the script loads the map into the workspace, but does not change the name of the model to "Arena Loaded. Teleporting Players..". So, I know that at some point after the cloning and parenting, possibly the CFraming process, it's breaking. I have no idea. I've looked over this code for hours.
It was only yesterday that I got this thing functioning with an 'on' and 'off' ability, simply changing the model name and manipulating a bool value to call on for the rest of the commands.
Thus, if someone can help me debug and possibly shorten or optimize this, I would be very grateful.
if (loweredmsg == "computer, load sf arena" or loweredmsg == "jarvis, load sf arena") and engVal == true then
jarvis.Name = "Loading SF Arena.."
wait(1)
local storedArena = game.ReplicatedStorage.SF_Arena
local arenaClone = storedArena:Clone()
arenaClone.Parent = game.Workspace.LoadedMaps
local sfp = game.Workspace.LoadedMaps.SF_Arena.main_part
game.Workspace.LoadedMaps.SF_Arena.PrimaryPart = sfp
sfp:SetPrimaryPartCFrame(CFrame.new(0, 0, 0))
game.Workspace.LoadedMaps.SF_Arena:MakeJoints()
wait(2)
workspace['Loading SF Arena..'].Name = "Arena Loaded. Teleporting Players.."
local allsplrs = game.Players:GetPlayers()
local zplrs = allsplrs.Character
local tps = game.Workspace.SF_Arena:GetChildren()
for i = 1, #tps do
if tps[i].Name == "tp_brick" then
for i, v in pairs(zplrs) do
v:MoveTo(tps[i].Position)
end
end
end
workspace['Arena Loaded. Teleporting Players..'].Name = "Set-up Successful."
wait(2)
workspace['Set-up Successful.'].Name = "Jarvis"
end
