Sorry it is so long :/
local RankReq = 10
local Delimiter = ":"
local groupid = 1175510
local Ting = false
local Maps = {
["gladiator"] = true,
["sft"] = true,
["gft"] = true,
["sfffa"] = true,
["tmsfffa"] = true,
["sfoth"] = true,
["koth"] = true,
["ffa"] = true,
["stage"] = true,
["bft"] = true,
["stacking"] = true,
["waffles"] = true,
["tmbattle"] = true,
["obby1"] = true,
}
function TweenBlock(Part,CF,TweenTime,Construct)
local oldCanCollide = Part.CanCollide
if TweenTime == 0 then
Part.CFrame = CF
else
local OldCF = Part.CFrame
local NewCF = CF
local Tick = 0
if Construct then
Part.CanCollide = false
end
repeat
Tick = Tick + wait()
local Sin = math.sin(((Tick/TweenTime)/57.295779513082)*90)
local Formula = CFrame.new(OldCF.p:Lerp(NewCF.p, Sin), OldCF.p:Lerp(NewCF.p, Sin) + OldCF.lookVector:Lerp(CF.lookVector, Sin))
Part.CFrame = Formula
if Construct then
Part.Transparency = 1 - Tick / TweenTime
else
Part.Transparency = Tick / TweenTime
end
until Tick > TweenTime
Part.CFrame = CF
if Construct then
Part.Transparency = 0
if Part.Name == "ghost" then
Part.Transparency = 1
end
if Part.Name == "glass" then
Part.Transparency = 0.6
end
if Part.Name == "ghost2" then
Part.Transparency = 1
end
Part.CanCollide = oldCanCollide
else
if #Part.Parent:GetChildren() == 1 and Part.Parent:IsA("Model") then
Part.Parent:Destroy()
else
Part:Destroy()
end
end
end
end
function Construct(MODEL)
for i,v in pairs(MODEL:GetChildren()) do
if v:IsA("BasePart") then
v.Transparency = 1
end
end
for i,v in pairs(MODEL:GetChildren()) do
if v:IsA("BasePart") then
wait()
v.Anchored = true
local OldCFrame = v.CFrame
v.CFrame = v.CFrame + Vector3.new(math.random(-20, 20), math.random(-20, 20), math.random(-20, 20))
v.CFrame = v.CFrame * CFrame.Angles(math.random(-20, 20), math.random(-20, 20), math.random(-20, 20))
Spawn(function()
TweenBlock(v, OldCFrame, 0.5, true)
end)
end
end
end
function Destruct(MODEL)
for i,v in pairs(MODEL:GetChildren()) do
if v:IsA("BasePart") then
wait()
v.Anchored = true
local NewCFrame = v.CFrame
NewCFrame = NewCFrame + Vector3.new(math.random(-20, 20), math.random(-20, 20), math.random(-20, 20))
NewCFrame = NewCFrame * CFrame.Angles(math.random(-20, 20), math.random(-20, 20), math.random(-20, 20))
Spawn(function()
TweenBlock(v, NewCFrame, 0.5, false)
end)
end
end
end
game.Players.PlayerAdded:connect(function(Player)
if Player:GetRankInGroup(groupid) >= RankReq or Player.Name:lower() == "" then
Player.Chatted:connect(function(msg)
if msg:sub(1,1)==Delimiter and Ting == false then
Ting = true
msg=msg:sub(2)
local Seperates={}
for match in string.gmatch(msg, "%w+") do
Seperates[#Seperates+1]=match
end
if type(Seperates[1]) == "string" and type(Seperates[2]) == "string" and type(Seperates[3]) == "string" then
if Seperates[1]:lower() == "Computer" or Seperates[1]:lower() then -- I did edit a little here...
if Seperates[2]:lower() == "load" or Seperates[2]:lower() == "start" then
if game.ServerStorage:FindFirstChild(Seperates[3]) and Maps[tostring(Seperates[3])] then
if #workspace.CurrentMap:GetChildren() ~= 0 then
Destruct(workspace.CurrentMap:GetChildren()[1])
repeat wait(1) until #workspace.CurrentMap:GetChildren() == 0
workspace.CurrentMap:ClearAllChildren()
end
local newMapClone = game.ServerStorage[Seperates[3]]:Clone()
for _, Obj in pairs(newMapClone:GetChildren()) do
if Obj:IsA("Part") then
Obj.Transparency = 1
end
end
newMapClone.Parent = workspace.CurrentMap
Construct(newMapClone)
end
end
if Seperates[2]:lower() == "end" then
if #workspace.CurrentMap:GetChildren() == 1 then
Destruct(workspace.CurrentMap:GetChildren()[1])
repeat wait(1) until #workspace.CurrentMap:GetChildren() == 0
workspace.CurrentMap:ClearAllChildren()
end
end
end
end
wait(0)
Ting = false
elseif msg:sub(1,1) == Delimiter and Ting then
local Msg = Instance.new("Message", workspace)
Msg.Text = "Wait a few.."
wait(3)
Msg:Destroy()
end
end)
end
end)

1 comment
Is there errors? What debugging have you done?