local Y=false local F=script repeat Wait(0)until script and(script.Parent and script.Parent.ClassName=="\077\111\100\101\108")local W=F.Parent if F and(W and W:FindFirstChild("\084\104\117\109\098\110\097\105\108"))then(W:FindFirstChild("\084\104\117\109\098\110\097\105\108")):Destroy()end local m=Game:GetService("\068\101\098\114\105\115")local A for Y,F in pairs(W:GetChildren())do if F and(F.ClassName=="\072\117\109\097\110\111\105\100"and F.Health~=0)then A=F end end local l=W:Clone()if Y then coroutine.resume(coroutine.create(function()if W and(A and(A:FindFirstChild("\083\116\097\116\117\115")and not(A: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=A.Status SpawnModel.Name="\065\118\097\108\105\098\108\101\083\112\097\119\110\115"else SpawnModel=(A: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(Y)local F=Y:GetChildren()for Y=1,#F,1 do if F[Y].className=="\083\112\097\119\110\076\111\099\097\116\105\111\110"then local W=Instance.new("\086\101\099\116\111\114\051\086\097\108\117\101",SpawnModel)W.Value=F[Y].Position W.Name=F[Y].Duration end FindSpawn(F[Y])end end FindSpawn(Game:GetService("\087\111\114\107\115\112\097\099\101"))local Y=SpawnModel:GetChildren()if#Y>0 then local F=Y[math.random(1,#Y)]local A=Instance.new("\070\111\114\099\101\070\105\101\108\100")A.Parent=W A.Name="\083\112\097\119\110\070\111\114\099\101\070\105\101\108\100"m:AddItem(A,F.Name)W:MoveTo(F.Value+Vector3.new(0,3.5,0))else if W:FindFirstChild("\083\112\097\119\110\070\111\114\099\101\070\105\101\108\100")then(W:FindFirstChild("\083\112\097\119\110\070\111\114\099\101\070\105\101\108\100")):Destroy()end W:MoveTo(Vector3.new(0,115,0))end end))end function Respawn()Wait(0)l.Parent=W.Parent l:makeJoints();(l:FindFirstChild("\072\101\097\100")):MakeJoints();(l:FindFirstChild("\084\111\114\115\111")):MakeJoints()W:remove()end if F and(W and A)then A.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
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(0)
	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
