I have the admin give script to give admin commands to specific people. However, the script only seems to work only once when the player spawns, and will never work after that when they die. I tried it in new place without any other script than this script but still doesnt work, and also wont create any error.

local admins = {-1,-2,-3,-4,-5,-6}

local overHeadGui = game:GetService("ServerStorage").adminGUI:WaitForChild("adminLabel")
local admin = game:GetService("ServerStorage"):WaitForChild("adminGUI")

local owner = admin:WaitForChild("ownerCommands")
local staff = admin:WaitForChild("adminCommands")

game.Players.PlayerAdded:Connect(function(player)
	print("Player Joined")
	player.CharacterAdded:Connect(function(character)
		print("Respawn Detected")
		for i, v in pairs (admins) do
			if player.UserId == v then 
				print("admin is valid")
				if i == 1 then
					print("owner detected")
					print("the admin label is not valid yet")
					local cloneGUI = overHeadGui:Clone()
					cloneGUI.TextLabel.Text = "Owner"
					cloneGUI.TextLabel.TextColor3 = Color3.fromRGB(150,138,189)
					cloneGUI.TextLabel.Size = UDim2.new(0,100,0,50)
					cloneGUI.Parent = character:WaitForChild("Head")
					print("setted admin label")
					local cloneAdmin = owner:Clone()
					print(cloneAdmin.Name)
					local adminGuiPlaceHold = player.PlayerGui:WaitForChild("adminGui")
					cloneAdmin.Parent = adminGuiPlaceHold
					for i,v in pairs(player.PlayerGui.adminGui:GetChildren()) do print(v.Name) wait() end
					print("clone admin setted. Parent")
--					for i,v in pairs (character:GetChildren()) do
--						if v:IsA("BasePart") and v.Name ~="HumanoidRootPart" and  v.Name ~= "Head" then
--							print("making it transparent")
--							v.Transparency = .5
--							v.Material = Enum.Material.Neon
----							if v.Name == "Head" then
----								v.Size  = Vector3.new(.5,.5,.5)
----							elseif v.Name == "Torso" then
----								v.Size = Vector3.new(2,2,.5)
----							elseif v.Name == "LeftArm" or "RightArm" then
----								v.Size = Vector3.new(1,5,1)
----							end
--						end
--						if v.Name == "Head" then
--							print("head transparent = 1")
--							v.Transparency = 1
--							for _,child in pairs(v:GetChildren()) do
--								if child.Name == "face" then
--									print("face destroyed")
--									child:Destroy()
--								end
--							end
--						end
--					end
					print("everything for owner done.")
				elseif i == 4 then
--					for i,v in pairs (character:GetChildren()) do
--						if v:IsA("BasePart") and v.Name ~="HumanoidRootPart" then
--							v.Transparency = .5
--							v.Material = Enum.Material.Neon
----							if v.Name == "Head" then
----								v.Size  = Vector3.new(.5,.5,.5)
----							elseif v.Name == "Torso" then
----								v.Size = Vector3.new(2,2,.5)
----							elseif v.Name == "LeftArm" or "RightArm" then
----								v.Size = Vector3.new(1,5,1)
----							end
--						end
--					end
					
					local cloneGUI = overHeadGui:Clone()
					cloneGUI.TextLabel.Text = "Co-Owner"
					cloneGUI.Parent = character:WaitForChild("Head")
			
					local cloneAdmin = staff:Clone()
					cloneAdmin.Parent =  player.PlayerGui:WaitForChild("adminGui")					
				else
					
					local cloneGUI = overHeadGui:Clone()
					cloneGUI.Parent = character:WaitForChild("Head")
			
					local cloneAdmin = staff:Clone()
					cloneAdmin.Parent =  player.PlayerGui:WaitForChild("adminGui")
				end
			end
		end
		print("Every task done!")
		return
	end)
	print("out of char script")
end)

--How I Solved-- I found that I had the speed respawn script that respawned my character before anything else loads up. When I added extra seconds, the script started to work properly.

2 comments

0

what does -1,-2 ect me

0

Its the user id of Player1, Player 2, etc.. I didnt want to expose the userid of my staff so i changed it.