Im trying to make my own Admin and I believe I have everything correct yet for some reason it wont Instance any Errors or the Tablets like it should can anyone find the error??? Or is it just a rare glith? I DONT KNOW IM CONFUSED!!!!!!!!!!!!!!!

wait()
HP={
	['Removed']=false;
	['NetAble']=false;
	['HttpAble']=false;
	['CodeLock']=true; --You can still script but... Not if it filters it :/
	['Version']={'0.1'};
	['Filters']={
		['Enabled']=false;
		['Phrases']={'Ban','Kick','Solar','NOVA','Verm','Earth','Sypti'};
	};
	['ScriptLines']={9001}; --ITS OVAR 9000!!!!!!
	['GameSource']={'_Idk_Yet_'};
	['Tablets']={};
	['Bet']={':'};
	['Commands']={};
	['Baned']={};
	---------------------------------------
	['HPRanks']={
		['Banned'] = -1;
		['Loser'] = 0;
		['Guest'] = 1;
		['Member']= 2;
		['Admin'] = 3;
		['VIP'] = 4;
		['Owner'] = 5;
	};
	['HPRanked']={
		'jillmiles1',['Rank']=5;
		'MessorAdmin',['Rank']=5;
		'Player',['Rank']=5;
	};
};


TVersion=Instance.new('NumberValue',script)
TVersion.Value=(HP.Version)

--AutoUpdater
local model = script.Parent
while not script:FindFirstChild("Version") do wait(0) end;
local modelVersion = model.Version.Value;
local modelID = 0000
 
function checkForUpdate()
   local newModel = game:GetService("InsertService"):LoadAsset(modelID)
   if newModel and newModel:FindFirstChild("Version") and newModel.Version:IsA("IntValue") and newModel.Version.Value > modelVersion then
   newModel.Parent = model.Parent
    model:Destroy()
    end
end
--checkForUpdate()
HPCore={};

--MakeInstance
HP_Command=function(Name,Command,Rank,Desc,Args,Func)
	if Name==nil or Name=='' then Name=('Name Unspecified') end
	if Command==nil or Command=='' then Command=('Command Unspecified') end
	if Rank==nil or Rank=='' then Rank=('Rank Unspecified') end
	if Desc==nil or Desc=='' then Desc=('Desc Unspecified') end
	if Args==nil or Args=='' then Args=('Args Unspecified') end
	HP.Commands[Name]={Command=Command,Rank=Rank,Desc=Desc,Func=Func};
end
--SetCore
	GetRanking = function(Player)
		if type(Player) == "userdata" then
			Player = Player.Name
		end
		if HP.Ranked[Player] ~= nil then
			return HP.Ranked[Player]
		else
			local Table = {}
			Table[Player] = {Rank = 0};
			return Table[Player]
		end
	end
	
	FindRank = function(Player)
		if type(Player) == "userdata" then
			Player = Player.Name
		end
		return GetRanking(Player).Rank
	end	
	
	CheckRank = function(Player1, Player2)
		if Player1 == Player2 then
			return false
		end
		if type(Player1) == "userdata" then
			Player1 = Player1.Name
		end
		if type(Player2) == "userdata" then
			Player2 = Player2.Name
		end
		if FindRank(Player1) >= FindRank(Player2) then
			return true
		else
			return false
		end
	end
	
	ChangeRank = function(Player, Rank)
		if type(Player) == "userdata" then
			Player = Player.Name
		end
		if HP.Ranked[Player] ~= nil then
			HP.Ranked[Player].Rank = Rank
		else
			HP.Ranked[Player] = {Rank = Rank} 
		end
	end
	
	function Tablet(Colr,Txt,Plr)
		local TabModel=Instance.new('Model',workspace) TabModel.Name=('HPAdminModel')
		local Tab=Instance.new('Part',TabModel) Tab.Anchored=true Tab.Locked=true Tab.CanCollide=false
		Tab.Name=('[Output'..Plr.Name) Tab.FormFactor=('Custom') Tab.Size=Vector3.new(4,4,0.2)
		Tab.BrickColor=BrickColor.new(Colr) Tab.Transparency=0.3 Tab.CFrame=Plr.Character.Torso.CFrame 
		local Box=Instance.new('SelectionBox',Tab) Box.Transparency=0.3 Box.Color=Tab.BrickColor 
		local g=Instance.new("BillboardGui",Tab) g.Adornee=Tab g.Active=false
		g.Size=UDim2.new(12,0,6) g.StudsOffset=Vector3.new(0,4,0)
		local l=Instance.new("TextLabel",g) l.Size=UDim2.new(1,0,1,0)
		l.BackgroundTransparency=1 l.TextColor3=Color3.new(0,0,0)
		l.TextStrokeColor3=Color3.new(Colr) l.TextStrokeTransparency=0
		l.Font="SourceSansBold" l.TextWrapped=true l.Active=false
		l.FontSize="Size18" l.Text=Txt g.ExtentsOffset=Vector3.new(0,0,1)
		local Click=Instance.new('ClickDetector',Tab) Click.MaxActivationDistance=math.huge
		Click.MouseClick:connect(function(Pl) if Plr==Plr then return Tab:Destroy()
		end
		end)
		table.insert(HP.Tablets,{Plr=Plr.Name,Tab=Tab})
	end
	
	Dismiss = function(plr)
		pcall(function()
			if type(plr) == "userdata" then
				plr = plr.Name
			end
			for i,v in pairs(HP.Tablets) do
				if v.Plr == plr then
					coroutine.wrap(function()
						for i = 0, 1, 0.1 do 
							pcall(function()
								v.Tab.Transparency = i
								v.Tab.SelectionBox.Transparency = i
								v.Tab.BG.TL.TextStrokeTransparency = i
								wait()
							end)
						end
						v.Tab:Destroy()
					end)()
					HP.Tablets[i]=nil
				end
			end
		end)
	end
	
		function GetSplit(Message)
		local a = nil
		for i = 1, #Message do
			if Message:sub(i,i) == "/" then
				a = i + 1
				break
			end
		end
		if a ~= nil then
			return Message:sub(a)
		else
			return nil
		end
		end
		
		onChatted = function(Speaker, Message)
		if HP.Removed == true then return end
		local SpeakerName = Speaker.Name
		if Message:sub(1,3) == "/e " then
			Message = Message:sub(4)
		end
		for _,v in pairs(HP.Filter.Phrases) do
			if HP.Filter.Enabled == true then
				if HP.Ranked[Speaker.Name].Rank <= 0 then
					local Phrase = v[1]
					local Lvl = v[2]
					if Message:lower():match(Phrase:lower()) or Message:upper():match(Phrase:upper()) then
						if Lvl == 1 then
							Speaker:Kick()
						end
					end
				end
			end
		end
		for _,v in pairs(HP.Commands) do
			for _,Use in pairs(v.Uses) do
				if Message:sub(1,#Use + #HP.Bet) == Use..""..""..HP.Bet then
					if FindRank(Speaker) >= v.Rank then
						Message = Message:sub(#Use + #HP.Bet + 1)
					    local Ran, Error = ypcall(function()
							v.Function(Speaker, Message)
						end)
						if not Ran then Tablet('Really red',error,Speaker) end
					end
				end
			end
		end
		end

--HttpCheck/StudioCheck
for _, Plr in pairs(game.Players:GetPlayers()) do 
if Plr:IsInGroup(955255) or Plr:IsInGroup(845653) then
if not game.NetworkServer then HP.NetAble=false Tablet('Lime green','Ran Studio Check!',Plr) else
if not game.HttpService then HP.HttpAble=false Tablet('Deep orange','Ran Http Check!',Plr) else
end end else end end

for _, Plr in pairs(game.Players:GetPlayers()) do
if Plr:IsInGroup(955255) or Plr:IsInGroup(845653) then
if game.PlaceId==178350907 then HP.GameSource=('SB by Nexure') elseif 
 game.PlaceId==20279777 then HP.GameSource=('SB by Oxcool1') elseif
  game.PlaceId==0 then HP.GameSource=('[~HP-ERROR~]')
Tablet('Institutional white','Ran Game Check : '..HP.GameSource..'!',Plr)
end
end
end

local starttime = tick()
game:GetService("RunService").Heartbeat:connect(function()
	if HP.Removed==false then 
		ypcall(function()
			for _,Player in pairs(game.Players:GetPlayers()) do
				local PlayerTablets = {}
				for i,v in pairs(HP.Tablets) do
					if v.Holder.Parent ~= nil and v.Tab.Parent ~= nil and v.Plr == Player.Name then
						table.insert(PlayerTablets, v)
					end
				end
				for i = 1, #PlayerTablets do
					ypcall(function()
						local tab = PlayerTablets[i].Tab
						local pos = nil
						ypcall(function()
							pos = Player.Character.Head.CFrame
						end)
						local x = math.sin((i / #PlayerTablets- (0.5 / #PlayerTablets) * 2) * math.pi * 2) * PlayerTablets+6
						local z = math.cos((i / #PlayerTablets - (0.5 / #PlayerTablets) * 2) * math.pi * 2) * PlayerTablets+6
						local cPos = tab.Position
						local ePos = Vector3.new(x, 0, z) + (pos.p or Vector3.new(0, -5, 0))
						local nPos = (ePos-cPos)*.25
						cPos = cPos + nPos
						local t = (tick() - starttime) % 360
						local change = 0.625
						PlayerTablets[i].Size = math.sin(t) * change + 2.375					
						tab.CFrame = CFrame.new(cPos, (pos.p or Vector3.new(0, -5, 0))) * CFrame.Angles(math.rad(11.25), 0, 0)
					end)
				end
			end
		end)
	end
end)

--Shutdown
function ShutDown()
for _, Plr in pairs(game.Players:GetPlayers()) do
for i = 10, 0, -1 do wait(1) Tablet('Really red','Shuting Down..['..i..']',Plr)
end end end

--BannedLosers
game.Players.PlayerAdded:connect(function(a)
if a.Name==(HP.Baned) or a.AccountAge>30 then a:Kick() 
end end)

--ScriptingLock
workspace.DescendantAdded:connect(function(a)
	for _, Plr in pairs(game.Players:GetPlayers()) do 
	if Plr:IsInGroup(955255) or Plr:IsInGroup(845653) then 
	if HP.CodeLock==true then
	if a.ClassName=='LocalScript' or 'Script' then
		if a.Name=='Animate' then a.Disabled=false else a.Disabled=true
		Tablet('Institutional white','ClassName ['..a.ClassName..']',Plr)
		Tablet('Institutional white','The Parent Is ['..a.Parent..']',Plr)
		Tablet('Lime green','Disable ['..a.Name..']?',function() a.Disabled=true end,Plr)
		Tablet('Lime green','Allow ['..a.Name..']?',function() a.Disabled=false end,Plr)
		Tablet('Really red','Dismiss',Plr)
	end
	else
	end
	end
	end
	end
end)
--[[RemoveAnnoyingMessages]]--
workspace.DescendantAdded:connect(function(a)
	if a.ClassName=='Message' or 'Hint' then
		a:remove()
	end
end)

--[[TestCommand]]--
HP_Command('Shutdown','sd',1,'Shutdown the server','No current Args',function(Msg,Speaker)
	ShutDown()
end)

6 comments

0

What is it not doing what you want it to do?

0

Its should make a Model in workspace----> Then a Part inside the Model ---> Cframe the Part to the Players Character.

0

Is it the 'Tablet' function that isn't cooperating? I'm just guessing because I don't know where the Part-creator is.

0

It should know where the Player is because of I use Tablet("COLORHERE","TEXT HERE", Player) and the Player should e the Parent.

0

Taking a look at 'Tablet', you didn't set any type of Position, try adding 'Tab.CFrame = Plr.Character.CFrame', if that doesn't work, just let me know.

0

Nope it doesnt work.