assert(Self:FindFirstChild("\072\117\109\097\110\111\105\100")~=nil,"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \104\117\109\097\110\111\105\100")assert(Settings~=nil,"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \067\111\110\102\105\103\117\114\097\116\105\111\110\115 \111\098\106\101\099\116")assert(Settings:FindFirstChild("\077\097\120\105\109\117\109\068\101\116\101\099\116\105\111\110\068\105\115\116\097\110\099\101")~=nil and Settings.MaximumDetectionDistance:IsA("\078\117\109\098\101\114\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \077\097\120\105\109\117\109\068\101\116\101\099\116\105\111\110\068\105\115\116\097\110\099\101 \040\078\117\109\098\101\114\086\097\108\117\101\041 \115\101\116\116\105\110\103")assert(Settings:FindFirstChild("\067\097\110\071\105\118\101\085\112")~=nil and Settings.CanGiveUp:IsA("\066\111\111\108\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \067\097\110\071\105\118\101\085\112 \040\066\111\111\108\086\097\108\117\101\041 \115\101\116\116\105\110\103")assert(Settings:FindFirstChild("\067\097\110\082\101\115\112\097\119\110")~=nil and Settings.CanRespawn:IsA("\066\111\111\108\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \067\097\110\082\101\115\112\097\119\110 \040\066\111\111\108\086\097\108\117\101\041 \115\101\116\116\105\110\103")assert(Settings:FindFirstChild("\083\112\097\119\110\080\111\105\110\116")~=nil and Settings.SpawnPoint:IsA("\086\101\099\116\111\114\051\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \083\112\097\119\110\080\111\105\110\116 \040\086\101\099\116\111\114\051\086\097\108\117\101\041 \115\101\116\116\105\110\103")assert(Settings:FindFirstChild("\065\117\116\111\068\101\116\101\099\116\083\112\097\119\110\080\111\105\110\116")~=nil and Settings.AutoDetectSpawnPoint:IsA("\066\111\111\108\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \065\117\116\111\068\101\116\101\099\116\083\112\097\119\110\080\111\105\110\116 \040\066\111\111\108\086\097\108\117\101\041 \115\101\116\116\105\110\103")assert(Settings:FindFirstChild("\070\114\105\101\110\100\108\121\084\101\097\109")~=nil and Settings.FriendlyTeam:IsA("\066\114\105\099\107\067\111\108\111\114\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \070\114\105\101\110\100\108\121\084\101\097\109 \040\066\114\105\099\107\067\111\108\111\114\086\097\108\117\101\041 \115\101\116\116\105\110\103")assert(Settings:FindFirstChild("\065\116\116\097\099\107\068\097\109\097\103\101")~=nil and Settings.AttackDamage:IsA("\078\117\109\098\101\114\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \065\116\116\097\099\107\068\097\109\097\103\101 \040\078\117\109\098\101\114\086\097\108\117\101\041 \115\101\116\116\105\110\103")assert(Settings:FindFirstChild("\065\116\116\097\099\107\070\114\101\113\117\101\110\099\121")~=nil and Settings.AttackFrequency:IsA("\078\117\109\098\101\114\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \065\116\116\097\099\107\070\114\101\113\117\101\110\099\121 \040\078\117\109\098\101\114\086\097\108\117\101\041 \115\101\116\116\105\110\103")assert(Settings:FindFirstChild("\065\116\116\097\099\107\082\097\110\103\101")~=nil and Settings.AttackRange:IsA("\078\117\109\098\101\114\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \065\116\116\097\099\107\082\097\110\103\101 \040\078\117\109\098\101\114\086\097\108\117\101\041 \115\101\116\116\105\110\103")assert(Mind~=nil,"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \077\105\110\100 \111\098\106\101\099\116")assert(Mind:FindFirstChild("\067\117\114\114\101\110\116\084\097\114\103\101\116\072\117\109\097\110\111\105\100")~=nil and Mind.CurrentTargetHumanoid:IsA("\079\098\106\101\099\116\086\097\108\117\101"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \067\117\114\114\101\110\116\084\097\114\103\101\116\072\117\109\097\110\111\105\100 \040\079\098\106\101\099\116\086\097\108\117\101\041 \109\105\110\100 \115\101\116\116\105\110\103")assert(Self:FindFirstChild("\068\105\101\100")and Self.Died:IsA("\066\105\110\100\097\098\108\101\069\118\101\110\116"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \068\105\101\100 \066\105\110\100\097\098\108\101\069\118\101\110\116")assert(Self:FindFirstChild("\082\101\115\112\097\119\110\101\100")and Self.Died:IsA("\066\105\110\100\097\098\108\101\069\118\101\110\116"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \082\101\115\112\097\119\110\101\100 \066\105\110\100\097\098\108\101\069\118\101\110\116")assert(Self:FindFirstChild("\065\116\116\097\099\107\101\100")and Self.Died:IsA("\066\105\110\100\097\098\108\101\069\118\101\110\116"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \065\116\116\097\099\107\101\100 \066\105\110\100\097\098\108\101\069\118\101\110\116")assert(script:FindFirstChild("\065\116\116\097\099\107")and script.Attack:IsA("\065\110\105\109\097\116\105\111\110"),"\077\111\110\115\116\101\114 \100\111\101\115 \110\111\116 \104\097\118\101 \097 \077\111\110\115\116\101\114\083\099\114\105\112\116\046\065\116\116\097\099\107 \065\110\105\109\097\116\105\111\110")

assert(Self:FindFirstChild'Humanoid' ~= nil, 'Monster does not have a humanoid')
assert(Settings ~= nil, 'Monster does not have a Configurations object')
	assert(Settings:FindFirstChild'MaximumDetectionDistance' ~= nil and Settings.MaximumDetectionDistance:IsA'NumberValue', 'Monster does not have a MaximumDetectionDistance (NumberValue) setting')
	assert(Settings:FindFirstChild'CanGiveUp' ~= nil and Settings.CanGiveUp:IsA'BoolValue', 'Monster does not have a CanGiveUp (BoolValue) setting')
	assert(Settings:FindFirstChild'CanRespawn' ~= nil and Settings.CanRespawn:IsA'BoolValue', 'Monster does not have a CanRespawn (BoolValue) setting')
	assert(Settings:FindFirstChild'SpawnPoint' ~= nil and Settings.SpawnPoint:IsA'Vector3Value', 'Monster does not have a SpawnPoint (Vector3Value) setting')
	assert(Settings:FindFirstChild'AutoDetectSpawnPoint' ~= nil and Settings.AutoDetectSpawnPoint:IsA'BoolValue', 'Monster does not have a AutoDetectSpawnPoint (BoolValue) setting')
	assert(Settings:FindFirstChild'FriendlyTeam' ~= nil and Settings.FriendlyTeam:IsA'BrickColorValue', 'Monster does not have a FriendlyTeam (BrickColorValue) setting')
	assert(Settings:FindFirstChild'AttackDamage' ~= nil and Settings.AttackDamage:IsA'NumberValue', 'Monster does not have a AttackDamage (NumberValue) setting')
	assert(Settings:FindFirstChild'AttackFrequency' ~= nil and Settings.AttackFrequency:IsA'NumberValue', 'Monster does not have a AttackFrequency (NumberValue) setting')
	assert(Settings:FindFirstChild'AttackRange' ~= nil and Settings.AttackRange:IsA'NumberValue', 'Monster does not have a AttackRange (NumberValue) setting')
assert(Mind ~= nil, 'Monster does not have a Mind object')
	assert(Mind:FindFirstChild'CurrentTargetHumanoid' ~= nil and Mind.CurrentTargetHumanoid:IsA'ObjectValue', 'Monster does not have a CurrentTargetHumanoid (ObjectValue) mind setting')
assert(Self:FindFirstChild'Died' and Self.Died:IsA'BindableEvent', 'Monster does not have a Died BindableEvent')
assert(Self:FindFirstChild'Respawned' and Self.Died:IsA'BindableEvent', 'Monster does not have a Respawned BindableEvent')
assert(Self:FindFirstChild'Attacked' and Self.Died:IsA'BindableEvent', 'Monster does not have a Attacked BindableEvent')
assert(script:FindFirstChild'Attack' and script.Attack:IsA'Animation', 'Monster does not have a MonsterScript.Attack Animation')

