I have done many changes, and have conducted many tests, but when I try to enter a command [run/object], the code will not execute the command, and I have tried 2-3 different coding methods to try and get it working, but all have failed, sadly I can't provide any Output because there is no Output showing up, I don't know what I am doing wrong in the code, but I can't see what I did wrong, here is the script;
wait(.5)
local GroupAdmins = {"TheeDeathCaster","Player1"}
local GroupId = 000000
local Hint = true
function ChkAdmin(plr)
for i = 1, #GroupAdmins do if plr:lower() == GroupAdmins[i]:lower() then return true end end
return false
end
function Statz(plr)
if plr then print(plr.Name.." has joined the Training Facility") end
local Stat = Instance.new("BoolValue",plr) Stat.Name = "leaderstats" Stat.Value = true
local Rank = Instance.new("StringValue",Stat) Rank.Name = "Rank" if plr:IsInGroup(GroupId) then Rank.Value = plr:GetRoleInGroup(GroupId) elseif not plr:IsInGroup(GroupId) then Rank.Value = "Unknown" end
end
function GetPlr(plr,str)
local plrz = {}
if str:lower() == "me" then
table.insert(plrz,plr)
else
for i,v in pairs(game.Players:GetPlayers()) do
if str ~= "" and v and v.Name:lower():find(str:lower()) == 1 then
table.insert(plrz,v)
end
end
end
return plrz
end
function Hintz(plr)
if Hint and script:FindFirstChild("Hint") and plr and plr:FindFirstChild("PlayerGui") then
Hints = script.Hint:Clone()
Hints.Parent = plr.PlayerGui
end
end
function Message(msg,plrz)
for i,v in pairs(plrz) do
coroutine.wrap(function()
if v and v:FindFirstChild("PlayerGui") then
local M = Instance.new("Message",v.PlayerGui)
for x = 1, #msg do
M.Text = msg:sub(1,x)
wait(1/19)
end
wait(#msg/19+2.5)
if M then
return M:Destroy(), print("Message done")
end
end
end)()
end
end
local Sword = script:WaitForChild("Sword"):Clone(); local SWORDS = {}; local MAPS = {}; local DOORS = {};
for i,v in pairs(game.Workspace:GetChildren()) do if v and v.Name:lower():find("door") then table.insert(DOORS,v) end end print(#DOORS," Doors")
function Cmds(plr,msg)
if msg:lower() == "test" then Message("Test completed, working! :D",{plr}) end
if not ChkAdmin(plr.Name) then return end
if msg:lower():sub(1,2) == "m/" then
Message(plr.Name..": "..msg:sub(3),game.Players:GetPlayers())
end
if msg:lower(1,5) == "open/" then
for i,v in pairs(game.Workspace:GetChildren()) do --I have also tried the table 'DOORS', but that didn't work either [open/Door1]
coroutine.wrap(function()
if v and v:IsA("BasePart") and v.Name:lower() == msg:lower():sub(6) then
v.Transparency = 0.2
v.CanCollide = false
end
end)()
end
end
if msg:lower(1,6) == "close/" then
for i,v in pairs(game.Workspace:GetChildren()) do
coroutine.wrap(function()
if v and v:IsA("BasePart") and v.Name:lower() == msg:lower():sub(7) then
v.Transparency = 0
v.CanCollide = true
end
end)()
end
end
if msg:lower(1,6) == "sword/" then --I have tried 'sword/thee', and 'sword/me', but it will not work
local plrz = GetPlr(plr,msg:lower():sub(7))
for i,v in pairs(plrz) do
coroutine.wrap(function()
if v and v:FindFirstChild("Backpack") and v.Character and v.Character:FindFirstChild("Humanoid") then
local GiveSword = Sword:Clone()
GiveSword.Parent = v.Backpack
GiveSword.Name = v.Name.."'s Sword"
table.insert(SWORDS,GiveSword)
Instance.new("BoolValue",v).Name = "FIGHT"
wait(.5)
v.Character.Humanoid:EquipTool(GiveSword)
end
end)()
end
end
if msg:lower(1,8) == "unsword/" then
local plrz = GetPlr(plr,msg:lower():sub(9))
for i2,v2 in pairs(plrz) do
coroutine.wrap(function()
for i,v in pairs(SWORDS) do if v and v.Name:lower() == v2.Name.."'s Sword" then v:Destroy() end end
for i,v in pairs(v2:GetChildren()) do if v and v.Name == "FIGHT" then v:Destroy() end end
end)()
end
end
if msg:lower(1,4) == "run/" then --I've used the command correctly, and typed the Object name correctly aswell, but it won't execute
if not game:GetService("Lighting") then return false, print("Lighting does not exist!") end
for i,v in pairs(MAPS) do if v then v:Destroy() end end
for i,v in pairs(game:GetService("Lighting"):GetChildren()) do
if v and v.Name:lower() == msg:lower():sub(5) then --I typed the name correctly, but it won't execute
local MAP = v:Clone()
table.insert(MAPS,MAP)
MAP.Parent = game.Workspace
MAP:MakeJoints()
end
end
end
if msg:lower() == "stop/" then for i,v in pairs(MAPS) do if v then v:Destroy() end end end
end
function Control(plr)
print(plr.Name.." has joined the server")
coroutine.wrap(function() if plr.userId == game.CreatorId then table.insert(GroupAdmins,plr.Name) end end)()
coroutine.wrap(function() if (ChkAdmin(plr.Name)) then print(plr.Name.." is an Admin!") Message("You're an Admin!",{plr}) end end)()
coroutine.wrap(function() if plr then Statz(plr) plr.CharacterAdded:connect(function() Hintz(plr) end) end end)()
plr.Chatted:connect(function(msg) Cmds(plr,msg) end)
end
for i,v in pairs(game.Players:GetPlayers()) do Control(v) end
game.Players.PlayerAdded:connect(Control)
I am sorry if this Question is considered Off-Topic, or Too Board.

2 comments
Lol, Thanks man! :) I've been working with Admin Commands for a long time now, and I can't believe I made a mistake like that! Haha! :P Lol, you all are making me look old. :P
It's fine haha(: Everyone makes silly mistakes sometimes. But really read up on dictionaries and try to implement them into your script, your script will end up looking a LOT cleaner and be way more efficient, not to mention have less lines, if you manipulate it into your script.