Advertisement
Tetezaza1542

???? too

Aug 9th, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  2. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  3. local RealPlayer = Player
  4. do print("FE Compatibility code by Mokiros")local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end,__call=function(self,...)local t=rawget(self,"_RealService")if t then return t(...)end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return self[t]end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;x.RunService=v({RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")setmetatable(x,{__index=function(self,t)return r:GetService(t)or typeof(r[t])=="function"and function(m,...)return r[t](r,...)end or r[t]end,__newindex=s.__newindex,__call=s.__call})game,owner=x,x.Players.LocalPlayer end
  5. --// Ultra sans ... by 1x1x1x1IAMbck again converted and free to use :OOOO \\--
  6. -- hard boss fight can rp
  7.  
  8.  
  9.  
  10. --Converted with nutta1258 model to script plugin v4
  11. function sandbox(var,func)
  12.     local env = getfenv(func)
  13.     local newenv = setmetatable({},{
  14.         __index = function(self,k)
  15.             if k=="script" then
  16.                 return var
  17.             else
  18.                 return env[k]
  19.             end
  20.         end,
  21.     })
  22.     setfenv(func,newenv)
  23.     return func
  24. end
  25. cors = {}
  26. mas = Instance.new("Model",game:GetService("Lighting"))
  27. Model0 = Instance.new("Model")
  28. Model1 = Instance.new("Model")
  29. Part2 = Instance.new("Part")
  30. SpecialMesh3 = Instance.new("SpecialMesh")
  31. BodyPosition4 = Instance.new("BodyPosition")
  32. Part5 = Instance.new("Part")
  33. Script6 = Instance.new("Script")
  34. Part7 = Instance.new("Part")
  35. SpecialMesh8 = Instance.new("SpecialMesh")
  36. ParticleEmitter9 = Instance.new("ParticleEmitter")
  37. Part10 = Instance.new("Part")
  38. SpecialMesh11 = Instance.new("SpecialMesh")
  39. ParticleEmitter12 = Instance.new("ParticleEmitter")
  40. Part13 = Instance.new("Part")
  41. SpecialMesh14 = Instance.new("SpecialMesh")
  42. Part15 = Instance.new("Part")
  43. SpecialMesh16 = Instance.new("SpecialMesh")
  44. Part17 = Instance.new("Part")
  45. Script18 = Instance.new("Script")
  46. CylinderMesh19 = Instance.new("CylinderMesh")
  47. Script20 = Instance.new("Script")
  48. Sound21 = Instance.new("Sound")
  49. Script22 = Instance.new("Script")
  50. Part23 = Instance.new("Part")
  51. Script24 = Instance.new("Script")
  52. CylinderMesh25 = Instance.new("CylinderMesh")
  53. Script26 = Instance.new("Script")
  54. Sound27 = Instance.new("Sound")
  55. Script28 = Instance.new("Script")
  56. Part29 = Instance.new("Part")
  57. Script30 = Instance.new("Script")
  58. CylinderMesh31 = Instance.new("CylinderMesh")
  59. Script32 = Instance.new("Script")
  60. Sound33 = Instance.new("Sound")
  61. Script34 = Instance.new("Script")
  62. Part35 = Instance.new("Part")
  63. Script36 = Instance.new("Script")
  64. CylinderMesh37 = Instance.new("CylinderMesh")
  65. Script38 = Instance.new("Script")
  66. Sound39 = Instance.new("Sound")
  67. Script40 = Instance.new("Script")
  68. Part41 = Instance.new("Part")
  69. Script42 = Instance.new("Script")
  70. CylinderMesh43 = Instance.new("CylinderMesh")
  71. Script44 = Instance.new("Script")
  72. Sound45 = Instance.new("Sound")
  73. Script46 = Instance.new("Script")
  74. Part47 = Instance.new("Part")
  75. Script48 = Instance.new("Script")
  76. CylinderMesh49 = Instance.new("CylinderMesh")
  77. Script50 = Instance.new("Script")
  78. Sound51 = Instance.new("Sound")
  79. Script52 = Instance.new("Script")
  80. Part53 = Instance.new("Part")
  81. ParticleEmitter54 = Instance.new("ParticleEmitter")
  82. Part55 = Instance.new("Part")
  83. ParticleEmitter56 = Instance.new("ParticleEmitter")
  84. Part57 = Instance.new("Part")
  85. Script58 = Instance.new("Script")
  86. CylinderMesh59 = Instance.new("CylinderMesh")
  87. Script60 = Instance.new("Script")
  88. Sound61 = Instance.new("Sound")
  89. Script62 = Instance.new("Script")
  90. Model63 = Instance.new("Model")
  91. UnionOperation64 = Instance.new("UnionOperation")
  92. UnionOperation65 = Instance.new("UnionOperation")
  93. Part66 = Instance.new("Part")
  94. SpecialMesh67 = Instance.new("SpecialMesh")
  95. UnionOperation68 = Instance.new("UnionOperation")
  96. Part69 = Instance.new("Part")
  97. SpecialMesh70 = Instance.new("SpecialMesh")
  98. Script71 = Instance.new("Script")
  99. Part72 = Instance.new("Part")
  100. Humanoid73 = Instance.new("Humanoid")
  101. Script74 = Instance.new("Script")
  102. Script75 = Instance.new("Script")
  103. NumberValue76 = Instance.new("NumberValue")
  104. BodyGyro77 = Instance.new("BodyGyro")
  105. BodyPosition78 = Instance.new("BodyPosition")
  106. Script79 = Instance.new("Script")
  107. Part80 = Instance.new("Part")
  108. Script81 = Instance.new("Script")
  109. CylinderMesh82 = Instance.new("CylinderMesh")
  110. Script83 = Instance.new("Script")
  111. Sound84 = Instance.new("Sound")
  112. Script85 = Instance.new("Script")
  113. Script86 = Instance.new("Script")
  114. Sound87 = Instance.new("Sound")
  115. UnionOperation88 = Instance.new("UnionOperation")
  116. Part89 = Instance.new("Part")
  117. Script90 = Instance.new("Script")
  118. CylinderMesh91 = Instance.new("CylinderMesh")
  119. Script92 = Instance.new("Script")
  120. Sound93 = Instance.new("Sound")
  121. Script94 = Instance.new("Script")
  122. Script95 = Instance.new("Script")
  123. Script96 = Instance.new("Script")
  124. Part97 = Instance.new("Part")
  125. Script98 = Instance.new("Script")
  126. SpecialMesh99 = Instance.new("SpecialMesh")
  127. Script100 = Instance.new("Script")
  128. Sound101 = Instance.new("Sound")
  129. Sound102 = Instance.new("Sound")
  130. Texture103 = Instance.new("Texture")
  131. Texture104 = Instance.new("Texture")
  132. Texture105 = Instance.new("Texture")
  133. Texture106 = Instance.new("Texture")
  134. Texture107 = Instance.new("Texture")
  135. Texture108 = Instance.new("Texture")
  136. Sound109 = Instance.new("Sound")
  137. Sound110 = Instance.new("Sound")
  138. Part111 = Instance.new("Part")
  139. Script112 = Instance.new("Script")
  140. SpecialMesh113 = Instance.new("SpecialMesh")
  141. Script114 = Instance.new("Script")
  142. Texture115 = Instance.new("Texture")
  143. Texture116 = Instance.new("Texture")
  144. Texture117 = Instance.new("Texture")
  145. Texture118 = Instance.new("Texture")
  146. Texture119 = Instance.new("Texture")
  147. Texture120 = Instance.new("Texture")
  148. Part121 = Instance.new("Part")
  149. SpecialMesh122 = Instance.new("SpecialMesh")
  150. Model123 = Instance.new("Model")
  151. Model124 = Instance.new("Model")
  152. Part125 = Instance.new("Part")
  153. Script126 = Instance.new("Script")
  154. CylinderMesh127 = Instance.new("CylinderMesh")
  155. Script128 = Instance.new("Script")
  156. Script129 = Instance.new("Script")
  157. Sound130 = Instance.new("Sound")
  158. UnionOperation131 = Instance.new("UnionOperation")
  159. UnionOperation132 = Instance.new("UnionOperation")
  160. BodyPosition133 = Instance.new("BodyPosition")
  161. ParticleEmitter134 = Instance.new("ParticleEmitter")
  162. UnionOperation135 = Instance.new("UnionOperation")
  163. Part136 = Instance.new("Part")
  164. Humanoid137 = Instance.new("Humanoid")
  165. Script138 = Instance.new("Script")
  166. Script139 = Instance.new("Script")
  167. Script140 = Instance.new("Script")
  168. NumberValue141 = Instance.new("NumberValue")
  169. BodyGyro142 = Instance.new("BodyGyro")
  170. BodyPosition143 = Instance.new("BodyPosition")
  171. Script144 = Instance.new("Script")
  172. UnionOperation145 = Instance.new("UnionOperation")
  173. Script146 = Instance.new("Script")
  174. Model147 = Instance.new("Model")
  175. Model148 = Instance.new("Model")
  176. Part149 = Instance.new("Part")
  177. Script150 = Instance.new("Script")
  178. CylinderMesh151 = Instance.new("CylinderMesh")
  179. Script152 = Instance.new("Script")
  180. Script153 = Instance.new("Script")
  181. Sound154 = Instance.new("Sound")
  182. UnionOperation155 = Instance.new("UnionOperation")
  183. UnionOperation156 = Instance.new("UnionOperation")
  184. BodyPosition157 = Instance.new("BodyPosition")
  185. ParticleEmitter158 = Instance.new("ParticleEmitter")
  186. UnionOperation159 = Instance.new("UnionOperation")
  187. Part160 = Instance.new("Part")
  188. Humanoid161 = Instance.new("Humanoid")
  189. Script162 = Instance.new("Script")
  190. Script163 = Instance.new("Script")
  191. Script164 = Instance.new("Script")
  192. NumberValue165 = Instance.new("NumberValue")
  193. BodyGyro166 = Instance.new("BodyGyro")
  194. BodyPosition167 = Instance.new("BodyPosition")
  195. Script168 = Instance.new("Script")
  196. UnionOperation169 = Instance.new("UnionOperation")
  197. Script170 = Instance.new("Script")
  198. Model171 = Instance.new("Model")
  199. Model172 = Instance.new("Model")
  200. Part173 = Instance.new("Part")
  201. Script174 = Instance.new("Script")
  202. CylinderMesh175 = Instance.new("CylinderMesh")
  203. Script176 = Instance.new("Script")
  204. Script177 = Instance.new("Script")
  205. Sound178 = Instance.new("Sound")
  206. UnionOperation179 = Instance.new("UnionOperation")
  207. UnionOperation180 = Instance.new("UnionOperation")
  208. BodyPosition181 = Instance.new("BodyPosition")
  209. ParticleEmitter182 = Instance.new("ParticleEmitter")
  210. UnionOperation183 = Instance.new("UnionOperation")
  211. Part184 = Instance.new("Part")
  212. Humanoid185 = Instance.new("Humanoid")
  213. Script186 = Instance.new("Script")
  214. Script187 = Instance.new("Script")
  215. Script188 = Instance.new("Script")
  216. NumberValue189 = Instance.new("NumberValue")
  217. BodyGyro190 = Instance.new("BodyGyro")
  218. BodyPosition191 = Instance.new("BodyPosition")
  219. Script192 = Instance.new("Script")
  220. UnionOperation193 = Instance.new("UnionOperation")
  221. Script194 = Instance.new("Script")
  222. Model195 = Instance.new("Model")
  223. Part196 = Instance.new("Part")
  224. Humanoid197 = Instance.new("Humanoid")
  225. Script198 = Instance.new("Script")
  226. Script199 = Instance.new("Script")
  227. Script200 = Instance.new("Script")
  228. NumberValue201 = Instance.new("NumberValue")
  229. BodyGyro202 = Instance.new("BodyGyro")
  230. BodyPosition203 = Instance.new("BodyPosition")
  231. UnionOperation204 = Instance.new("UnionOperation")
  232. Script205 = Instance.new("Script")
  233. Script206 = Instance.new("Script")
  234. UnionOperation207 = Instance.new("UnionOperation")
  235. BodyPosition208 = Instance.new("BodyPosition")
  236. Model209 = Instance.new("Model")
  237. Part210 = Instance.new("Part")
  238. Humanoid211 = Instance.new("Humanoid")
  239. Script212 = Instance.new("Script")
  240. Script213 = Instance.new("Script")
  241. Script214 = Instance.new("Script")
  242. NumberValue215 = Instance.new("NumberValue")
  243. BodyGyro216 = Instance.new("BodyGyro")
  244. BodyPosition217 = Instance.new("BodyPosition")
  245. UnionOperation218 = Instance.new("UnionOperation")
  246. Script219 = Instance.new("Script")
  247. Script220 = Instance.new("Script")
  248. UnionOperation221 = Instance.new("UnionOperation")
  249. BodyPosition222 = Instance.new("BodyPosition")
  250. Model223 = Instance.new("Model")
  251. Part224 = Instance.new("Part")
  252. Humanoid225 = Instance.new("Humanoid")
  253. Script226 = Instance.new("Script")
  254. Script227 = Instance.new("Script")
  255. Script228 = Instance.new("Script")
  256. NumberValue229 = Instance.new("NumberValue")
  257. BodyGyro230 = Instance.new("BodyGyro")
  258. BodyPosition231 = Instance.new("BodyPosition")
  259. UnionOperation232 = Instance.new("UnionOperation")
  260. Script233 = Instance.new("Script")
  261. Script234 = Instance.new("Script")
  262. UnionOperation235 = Instance.new("UnionOperation")
  263. BodyPosition236 = Instance.new("BodyPosition")
  264. Model237 = Instance.new("Model")
  265. Part238 = Instance.new("Part")
  266. Humanoid239 = Instance.new("Humanoid")
  267. Script240 = Instance.new("Script")
  268. Script241 = Instance.new("Script")
  269. Script242 = Instance.new("Script")
  270. NumberValue243 = Instance.new("NumberValue")
  271. BodyGyro244 = Instance.new("BodyGyro")
  272. BodyPosition245 = Instance.new("BodyPosition")
  273. UnionOperation246 = Instance.new("UnionOperation")
  274. Script247 = Instance.new("Script")
  275. Script248 = Instance.new("Script")
  276. UnionOperation249 = Instance.new("UnionOperation")
  277. BodyPosition250 = Instance.new("BodyPosition")
  278. Model251 = Instance.new("Model")
  279. Part252 = Instance.new("Part")
  280. Humanoid253 = Instance.new("Humanoid")
  281. Script254 = Instance.new("Script")
  282. Script255 = Instance.new("Script")
  283. Script256 = Instance.new("Script")
  284. NumberValue257 = Instance.new("NumberValue")
  285. BodyGyro258 = Instance.new("BodyGyro")
  286. BodyPosition259 = Instance.new("BodyPosition")
  287. UnionOperation260 = Instance.new("UnionOperation")
  288. Script261 = Instance.new("Script")
  289. Script262 = Instance.new("Script")
  290. UnionOperation263 = Instance.new("UnionOperation")
  291. BodyPosition264 = Instance.new("BodyPosition")
  292. Model265 = Instance.new("Model")
  293. Part266 = Instance.new("Part")
  294. Humanoid267 = Instance.new("Humanoid")
  295. Script268 = Instance.new("Script")
  296. Script269 = Instance.new("Script")
  297. Script270 = Instance.new("Script")
  298. NumberValue271 = Instance.new("NumberValue")
  299. BodyGyro272 = Instance.new("BodyGyro")
  300. BodyPosition273 = Instance.new("BodyPosition")
  301. UnionOperation274 = Instance.new("UnionOperation")
  302. Script275 = Instance.new("Script")
  303. Script276 = Instance.new("Script")
  304. UnionOperation277 = Instance.new("UnionOperation")
  305. BodyPosition278 = Instance.new("BodyPosition")
  306. Model279 = Instance.new("Model")
  307. Part280 = Instance.new("Part")
  308. Humanoid281 = Instance.new("Humanoid")
  309. Script282 = Instance.new("Script")
  310. Script283 = Instance.new("Script")
  311. Script284 = Instance.new("Script")
  312. NumberValue285 = Instance.new("NumberValue")
  313. BodyGyro286 = Instance.new("BodyGyro")
  314. BodyPosition287 = Instance.new("BodyPosition")
  315. UnionOperation288 = Instance.new("UnionOperation")
  316. Script289 = Instance.new("Script")
  317. Script290 = Instance.new("Script")
  318. UnionOperation291 = Instance.new("UnionOperation")
  319. BodyPosition292 = Instance.new("BodyPosition")
  320. Model293 = Instance.new("Model")
  321. Part294 = Instance.new("Part")
  322. Humanoid295 = Instance.new("Humanoid")
  323. Script296 = Instance.new("Script")
  324. Script297 = Instance.new("Script")
  325. Script298 = Instance.new("Script")
  326. NumberValue299 = Instance.new("NumberValue")
  327. BodyGyro300 = Instance.new("BodyGyro")
  328. BodyPosition301 = Instance.new("BodyPosition")
  329. UnionOperation302 = Instance.new("UnionOperation")
  330. Script303 = Instance.new("Script")
  331. Script304 = Instance.new("Script")
  332. UnionOperation305 = Instance.new("UnionOperation")
  333. BodyPosition306 = Instance.new("BodyPosition")
  334. Model0.Name = "UltraSans"
  335. Model0.Parent = mas
  336. Model1.Name = "Body"
  337. Model1.Parent = Model0
  338. Part2.Name = "Ribs"
  339. Part2.Parent = Model1
  340. Part2.CFrame = CFrame.new(255.436905, 165.891083, -3.19966507, -0.000402251055, 0.0290115159, 0.999579072, 0.049831178, 0.998337924, -0.0289554391, -0.998757601, 0.0497985519, -0.0018472604)
  341. Part2.Orientation = Vector3.new(1.65999997, 90.1100006, 2.8599999)
  342. Part2.Position = Vector3.new(255.436905, 165.891083, -3.19966507)
  343. Part2.Rotation = Vector3.new(93.6500015, 88.3399963, -90.7900009)
  344. Part2.Size = Vector3.new(1.92031944, 1.92031944, 0.960159719)
  345. Part2.Anchored = true
  346. Part2.TopSurface = Enum.SurfaceType.Smooth
  347. Part2.FormFactor = Enum.FormFactor.Symmetric
  348. Part2.formFactor = Enum.FormFactor.Symmetric
  349. SpecialMesh3.Parent = Part2
  350. SpecialMesh3.MeshId = "http://www.roblox.com/asset/?id=36780113"
  351. SpecialMesh3.Scale = Vector3.new(43.2071991, 37.0347404, 37.0347404)
  352. SpecialMesh3.MeshType = Enum.MeshType.FileMesh
  353. BodyPosition4.Parent = Part2
  354. BodyPosition4.Position = Vector3.new(0, 175, 0)
  355. BodyPosition4.P = 1250
  356. BodyPosition4.MaxForce = Vector3.new(0, 1.79099999e+18, 0)
  357. BodyPosition4.maxForce = Vector3.new(0, 1.79099999e+18, 0)
  358. BodyPosition4.position = Vector3.new(0, 175, 0)
  359. Part5.Parent = Model1
  360. Part5.CFrame = CFrame.new(256.023621, 204.272949, -1.64614868, -0.0887466818, -0.000201163319, 0.996054292, 0.0574222803, 0.998335838, 0.00531784864, -0.9943977, 0.0576676428, -0.0885874406)
  361. Part5.Orientation = Vector3.new(-0.299999982, 95.0799942, 3.28999996)
  362. Part5.Position = Vector3.new(256.023621, 204.272949, -1.64614868)
  363. Part5.Rotation = Vector3.new(-176.559998, 84.909996, 179.869995)
  364. Part5.Size = Vector3.new(4.93796539, 1.23449135, 2.4689827)
  365. Part5.Anchored = true
  366. Part5.TopParamA = -0.10000000149012
  367. Part5.TopParamB = 0.10000000149012
  368. Part5.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  369. Part5.TopSurfaceInput = Enum.InputType.Constant
  370. Script6.Name = "qPerfectionWeld"
  371. Script6.Parent = Model1
  372. table.insert(cors,sandbox(Script6,function()
  373. -- Created by Quenty (@Quenty, follow me on twitter).
  374. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  375. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  376.  
  377. --[[ INSTRUCTIONS
  378. - Place in the model
  379. - Make sure model is anchored
  380. - That's it. It will weld the model and all children.
  381.  
  382. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  383. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  384. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  385. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  386. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  387. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  388. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  389. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  390.  
  391. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  392. ]]
  393.  
  394. --[[ DOCUMENTATION
  395. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  396. - Will work in PBS servers
  397. - Will work as long as it starts out with the part anchored
  398. - Stores the relative CFrame as a CFrame value
  399. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  400. - Utilizes a recursive algorith to find all parts in the model
  401. - Will reweld on script reparent if the script is initially parented to a tool.
  402. - Welds as fast as possible
  403. ]]
  404.  
  405. -- qPerfectionWeld.lua
  406. -- Created 10/6/2014
  407. -- Author: Quenty
  408. -- Version 1.0.3
  409.  
  410. -- Updated 10/14/2014 - Updated to 1.0.1
  411. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  412.  
  413. -- Updated 10/14/2014 - Updated to 1.0.2
  414. --- Fixed bug fix.
  415.  
  416. -- Updated 10/14/2014 - Updated to 1.0.3
  417. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  418.  
  419. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  420.  
  421.  
  422. local function CallOnChildren(Instance, FunctionToCall)
  423.     -- Calls a function on each of the children of a certain object, using recursion.  
  424.  
  425.     FunctionToCall(Instance)
  426.  
  427.     for _, Child in next, Instance:GetChildren() do
  428.         CallOnChildren(Child, FunctionToCall)
  429.     end
  430. end
  431.  
  432. local function GetNearestParent(Instance, ClassName)
  433.     -- Returns the nearest parent of a certain class, or returns nil
  434.  
  435.     local Ancestor = Instance
  436.     repeat
  437.         Ancestor = Ancestor.Parent
  438.         if Ancestor == nil then
  439.             return nil
  440.         end
  441.     until Ancestor:IsA(ClassName)
  442.  
  443.     return Ancestor
  444. end
  445.  
  446. local function GetBricks(StartInstance)
  447.     local List = {}
  448.  
  449.     -- if StartInstance:IsA("BasePart") then
  450.     --  List[#List+1] = StartInstance
  451.     -- end
  452.  
  453.     CallOnChildren(StartInstance, function(Item)
  454.         if Item:IsA("BasePart") then
  455.             List[#List+1] = Item;
  456.         end
  457.     end)
  458.  
  459.     return List
  460. end
  461.  
  462. local function Modify(Instance, Values)
  463.     -- Modifies an Instance by using a table.  
  464.  
  465.     assert(type(Values) == "table", "Values is not a table");
  466.  
  467.     for Index, Value in next, Values do
  468.         if type(Index) == "number" then
  469.             Value.Parent = Instance
  470.         else
  471.             Instance[Index] = Value
  472.         end
  473.     end
  474.     return Instance
  475. end
  476.  
  477. local function Make(ClassType, Properties)
  478.     -- Using a syntax hack to create a nice way to Make new items.  
  479.  
  480.     return Modify(Instance.new(ClassType), Properties)
  481. end
  482.  
  483. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  484. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  485.  
  486. local function HasWheelJoint(Part)
  487.     for _, SurfaceName in pairs(Surfaces) do
  488.         for _, HingSurfaceName in pairs(HingSurfaces) do
  489.             if Part[SurfaceName].Name == HingSurfaceName then
  490.                 return true
  491.             end
  492.         end
  493.     end
  494.    
  495.     return false
  496. end
  497.  
  498. local function ShouldBreakJoints(Part)
  499.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  500.     --  definitely some edge cases.
  501.  
  502.     if NEVER_BREAK_JOINTS then
  503.         return false
  504.     end
  505.    
  506.     if HasWheelJoint(Part) then
  507.         return false
  508.     end
  509.    
  510.     local Connected = Part:GetConnectedParts()
  511.    
  512.     if #Connected == 1 then
  513.         return false
  514.     end
  515.    
  516.     for _, Item in pairs(Connected) do
  517.         if HasWheelJoint(Item) then
  518.             return false
  519.         elseif not Item:IsDescendantOf(script.Parent) then
  520.             return false
  521.         end
  522.     end
  523.    
  524.     return true
  525. end
  526.  
  527. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  528.     --- Weld's 2 parts together
  529.     -- @param Part0 The first part
  530.     -- @param Part1 The second part (Dependent part most of the time).
  531.     -- @param [JointType] The type of joint. Defaults to weld.
  532.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  533.     -- @return The weld created.
  534.  
  535.     JointType = JointType or "Weld"
  536.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  537.    
  538.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  539.     Modify(NewWeld, {
  540.         Name = "qCFrameWeldThingy";
  541.         Part0  = Part0;
  542.         Part1  = Part1;
  543.         C0     = CFrame.new();--Part0.CFrame:inverse();
  544.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  545.         Parent = Part1;
  546.     })
  547.  
  548.     if not RelativeValue then
  549.         RelativeValue = Make("CFrameValue", {
  550.             Parent     = Part1;
  551.             Name       = "qRelativeCFrameWeldValue";
  552.             Archivable = true;
  553.             Value      = NewWeld.C1;
  554.         })
  555.     end
  556.  
  557.     return NewWeld
  558. end
  559.  
  560. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  561.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  562.     -- @param MainPart The part to weld the model to (can be in the model).
  563.     -- @param [JointType] The type of joint. Defaults to weld.
  564.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  565.    
  566.     for _, Part in pairs(Parts) do
  567.         if ShouldBreakJoints(Part) then
  568.             Part:BreakJoints()
  569.         end
  570.     end
  571.    
  572.     for _, Part in pairs(Parts) do
  573.         if Part ~= MainPart then
  574.             WeldTogether(MainPart, Part, JointType, MainPart)
  575.         end
  576.     end
  577.  
  578.     if not DoNotUnanchor then
  579.         for _, Part in pairs(Parts) do
  580.             Part.Anchored = false
  581.         end
  582.         MainPart.Anchored = false
  583.     end
  584. end
  585.  
  586. local function PerfectionWeld()
  587.     local Tool = GetNearestParent(script, "Tool")
  588.  
  589.     local Parts = GetBricks(script.Parent)
  590.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  591.  
  592.     if PrimaryPart then
  593.         WeldParts(Parts, PrimaryPart, "Weld", false)
  594.     else
  595.         warn("qWeld - Unable to weld part")
  596.     end
  597.    
  598.     return Tool
  599. end
  600.  
  601. local Tool = PerfectionWeld()
  602.  
  603.  
  604. if Tool and script.ClassName == "Script" then
  605.     --- Don't bother with local scripts
  606.  
  607.     script.Parent.AncestryChanged:connect(function()
  608.         PerfectionWeld()
  609.     end)
  610. end
  611.  
  612. -- Created by Quenty (@Quenty, follow me on twitter).
  613.  
  614. end))
  615. Part7.Name = "GasterBlaser"
  616. Part7.Parent = Model1
  617. Part7.CFrame = CFrame.new(246.701797, 208.015915, 47.8325119, -0.974856734, 0.123940133, 0.185183972, -0.0177562926, 0.785197079, -0.618991315, -0.222123757, -0.606716096, -0.763253987)
  618. Part7.Orientation = Vector3.new(38.2399979, 166.360001, -1.29999995)
  619. Part7.Position = Vector3.new(246.701797, 208.015915, 47.8325119)
  620. Part7.Rotation = Vector3.new(140.959991, 10.6700001, -172.75)
  621. Part7.Size = Vector3.new(1.23449135, 0.987593114, 1.23449135)
  622. Part7.Anchored = true
  623. Part7.BottomSurface = Enum.SurfaceType.Smooth
  624. Part7.TopSurface = Enum.SurfaceType.Smooth
  625. Part7.FormFactor = Enum.FormFactor.Plate
  626. Part7.formFactor = Enum.FormFactor.Plate
  627. SpecialMesh8.Parent = Part7
  628. SpecialMesh8.MeshId = "http://www.roblox.com/asset/?id=14028428"
  629. SpecialMesh8.Scale = Vector3.new(18.5173702, 24.6898289, 30.8622837)
  630. SpecialMesh8.VertexColor = Vector3.new(1000000, 10000, 10000)
  631. SpecialMesh8.MeshType = Enum.MeshType.FileMesh
  632. ParticleEmitter9.Name = "Fire"
  633. ParticleEmitter9.Parent = Part7
  634. ParticleEmitter9.Speed = NumberRange.new(100, 100)
  635. ParticleEmitter9.Rotation = NumberRange.new(-45, -45)
  636. ParticleEmitter9.Color = ColorSequence.new(Color3.new(0.666667, 0, 0),Color3.new(1, 0, 0))
  637. ParticleEmitter9.LightEmission = 1
  638. ParticleEmitter9.Texture = "http://www.roblox.com/asset/?id=241936182"
  639. ParticleEmitter9.Transparency = NumberSequence.new(0,0.28749996423721,1)
  640. ParticleEmitter9.ZOffset = 1
  641. ParticleEmitter9.Size = NumberSequence.new(10,0)
  642. ParticleEmitter9.EmissionDirection = Enum.NormalId.Bottom
  643. ParticleEmitter9.Lifetime = NumberRange.new(0.60000002384186, 0.60000002384186)
  644. ParticleEmitter9.LockedToPart = true
  645. ParticleEmitter9.Rate = 250
  646. ParticleEmitter9.SpreadAngle = Vector2.new(50, 50)
  647. ParticleEmitter9.VelocitySpread = 50
  648. Part10.Name = "GasterBlaser"
  649. Part10.Parent = Model1
  650. Part10.CFrame = CFrame.new(246.263687, 210.66745, -45.3492661, 0.911797941, 0.121225327, 0.392337978, 0.143219471, 0.801558256, -0.580510557, -0.384854376, 0.58549875, 0.713497281)
  651. Part10.Orientation = Vector3.new(35.4899979, 28.8099995, 10.1300001)
  652. Part10.Position = Vector3.new(246.263687, 210.66745, -45.3492661)
  653. Part10.Rotation = Vector3.new(39.1299973, 23.1000004, -7.56999969)
  654. Part10.Size = Vector3.new(1.23449135, 0.987593114, 1.23449135)
  655. Part10.Anchored = true
  656. Part10.BottomSurface = Enum.SurfaceType.Smooth
  657. Part10.TopSurface = Enum.SurfaceType.Smooth
  658. Part10.FormFactor = Enum.FormFactor.Plate
  659. Part10.formFactor = Enum.FormFactor.Plate
  660. SpecialMesh11.Parent = Part10
  661. SpecialMesh11.MeshId = "http://www.roblox.com/asset/?id=14028428"
  662. SpecialMesh11.Scale = Vector3.new(18.5173702, 24.6898289, 30.8622837)
  663. SpecialMesh11.VertexColor = Vector3.new(1000000, 10000, 10000)
  664. SpecialMesh11.MeshType = Enum.MeshType.FileMesh
  665. ParticleEmitter12.Name = "Fire"
  666. ParticleEmitter12.Parent = Part10
  667. ParticleEmitter12.Speed = NumberRange.new(100, 100)
  668. ParticleEmitter12.Rotation = NumberRange.new(-45, -45)
  669. ParticleEmitter12.Color = ColorSequence.new(Color3.new(0.666667, 0, 0),Color3.new(1, 0, 0))
  670. ParticleEmitter12.LightEmission = 1
  671. ParticleEmitter12.Texture = "http://www.roblox.com/asset/?id=241936182"
  672. ParticleEmitter12.Transparency = NumberSequence.new(0,0.28749996423721,1)
  673. ParticleEmitter12.ZOffset = 1
  674. ParticleEmitter12.Size = NumberSequence.new(10,0)
  675. ParticleEmitter12.EmissionDirection = Enum.NormalId.Bottom
  676. ParticleEmitter12.Lifetime = NumberRange.new(0.60000002384186, 0.60000002384186)
  677. ParticleEmitter12.LockedToPart = true
  678. ParticleEmitter12.Rate = 250
  679. ParticleEmitter12.SpreadAngle = Vector2.new(50, 50)
  680. ParticleEmitter12.VelocitySpread = 50
  681. Part13.Name = "Left Arm"
  682. Part13.Parent = Model1
  683. Part13.CFrame = CFrame.new(248.724396, 200.188034, 97.2817001, -0.190738052, 0.0807573348, 0.978313506, -0.78801626, 0.581692457, -0.201653793, -0.585362554, -0.809390008, -0.0473127924)
  684. Part13.Orientation = Vector3.new(11.6300001, 92.7699966, -53.5699997)
  685. Part13.Position = Vector3.new(248.724396, 200.188034, 97.2817001)
  686. Part13.Rotation = Vector3.new(103.199997, 78.0499954, -157.050003)
  687. Part13.Size = Vector3.new(12.3449135, 66.6625366, 12.3449135)
  688. Part13.BottomSurface = Enum.SurfaceType.Smooth
  689. Part13.TopSurface = Enum.SurfaceType.Smooth
  690. Part13.FormFactor = Enum.FormFactor.Custom
  691. Part13.formFactor = Enum.FormFactor.Custom
  692. SpecialMesh14.Parent = Part13
  693. SpecialMesh14.MeshId = "http://www.roblox.com/asset/?id=36780032"
  694. SpecialMesh14.Scale = Vector3.new(49.3796577, 49.3796577, 49.3796577)
  695. SpecialMesh14.MeshType = Enum.MeshType.FileMesh
  696. Part15.Name = "Right Arm"
  697. Part15.Parent = Model1
  698. Part15.CFrame = CFrame.new(245.976883, 201.98732, -92.438797, 0.141120955, 0.15161556, 0.978313744, 0.816126168, 0.541548073, -0.201652721, -0.560377538, 0.826884866, -0.0473136418)
  699. Part15.Orientation = Vector3.new(11.6300001, 92.7699966, 56.4300003)
  700. Part15.Position = Vector3.new(245.976883, 201.98732, -92.438797)
  701. Part15.Rotation = Vector3.new(103.199997, 78.0499954, -47.0499992)
  702. Part15.Size = Vector3.new(12.3449135, 66.6625366, 12.3449135)
  703. Part15.BottomSurface = Enum.SurfaceType.Smooth
  704. Part15.TopSurface = Enum.SurfaceType.Smooth
  705. Part15.FormFactor = Enum.FormFactor.Custom
  706. Part15.formFactor = Enum.FormFactor.Custom
  707. SpecialMesh16.Parent = Part15
  708. SpecialMesh16.MeshId = "http://www.roblox.com/asset/?id=36780156"
  709. SpecialMesh16.Scale = Vector3.new(49.3796577, 49.3796577, 49.3796577)
  710. SpecialMesh16.MeshType = Enum.MeshType.FileMesh
  711. Part17.Name = "Shatter"
  712. Part17.Parent = Model1
  713. Part17.CFrame = CFrame.new(240.69458, 179.215439, 394.634857, 0.999580324, 0.0029917676, -0.0286321938, -0.0287241638, 0.0374363177, -0.998891473, -0.00191184809, 0.999302268, 0.0375071391)
  714. Part17.Orientation = Vector3.new(87.2999954, -37.3600006, -37.5)
  715. Part17.Position = Vector3.new(240.69458, 179.215439, 394.634857)
  716. Part17.Rotation = Vector3.new(87.8499985, -1.63999999, -0.170000002)
  717. Part17.Color = Color3.new(1, 0, 0)
  718. Part17.Transparency = 1
  719. Part17.Size = Vector3.new(9.13523674, 102.783638, 8.46861839)
  720. Part17.BackSurface = Enum.SurfaceType.Weld
  721. Part17.BottomSurface = Enum.SurfaceType.Weld
  722. Part17.BrickColor = BrickColor.new("Really red")
  723. Part17.CanCollide = false
  724. Part17.FrontSurface = Enum.SurfaceType.Weld
  725. Part17.LeftSurface = Enum.SurfaceType.Weld
  726. Part17.Material = Enum.Material.Neon
  727. Part17.Reflectance = 0.5
  728. Part17.RightSurface = Enum.SurfaceType.Weld
  729. Part17.TopSurface = Enum.SurfaceType.Weld
  730. Part17.brickColor = BrickColor.new("Really red")
  731. Part17.FormFactor = Enum.FormFactor.Symmetric
  732. Part17.formFactor = Enum.FormFactor.Symmetric
  733. Script18.Name = "Fade"
  734. Script18.Parent = Part17
  735. table.insert(cors,sandbox(Script18,function()
  736. bin = script.Parent
  737.  
  738. function activate(hit)
  739.     bin.Transparency = 0.2
  740.     wait(0.01)
  741.     bin.Transparency = 0.3
  742.     wait(0.01)
  743.     bin.Transparency = 0.4
  744.     wait(0.01)
  745.     bin.Transparency = 0.5
  746.     wait(0.01)
  747.     bin.Transparency = 0.6
  748.     wait(0.01)
  749.     bin.Transparency = 0.7
  750.     wait(0.01)
  751.     bin.Transparency = 0.8
  752.     wait(0.01)
  753.     bin.Transparency = 0.9
  754.     wait(0.01)
  755.     bin.Transparency = 1
  756. end
  757. script.Parent.Touched:connect(activate)
  758.  
  759.  
  760. end))
  761. CylinderMesh19.Parent = Part17
  762. CylinderMesh19.Offset = Vector3.new(0, 75, 0)
  763. CylinderMesh19.Scale = Vector3.new(1, 6.5, 1)
  764. Script20.Parent = Part17
  765. table.insert(cors,sandbox(Script20,function()
  766. function onTouched(hit)
  767.     script.Parent.Fire:play()
  768. end
  769. script.Parent.Touched:connect(onTouched)
  770. end))
  771. Sound21.Name = "Fire"
  772. Sound21.Parent = Part17
  773. Sound21.EmitterSize = 1000
  774. Sound21.MinDistance = 1000
  775. Sound21.Pitch = 0.60000002384186
  776. Sound21.PlaybackSpeed = 0.60000002384186
  777. Sound21.SoundId = "http://www.roblox.com/asset?id=2248511"
  778. Sound21.Volume = 4
  779. Script22.Name = "Lava Script"
  780. Script22.Parent = Part17
  781. table.insert(cors,sandbox(Script22,function()
  782. function onTouched(part)
  783. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  784. part.Parent.Torso:BreakJoints()
  785. end
  786. end
  787.  
  788. script.Parent.Touched:connect(onTouched)
  789. end))
  790. Part23.Name = "Shatter"
  791. Part23.Parent = Model1
  792. Part23.CFrame = CFrame.new(237.289169, 157.746063, -539.278137, 0.99958545, 0.0054795132, -0.0282655954, -0.0284511056, 0.0374020077, -0.998895288, -0.00441626878, 0.99928534, 0.0375424027)
  793. Part23.Orientation = Vector3.new(87.3099976, -36.9799995, -37.2599983)
  794. Part23.Position = Vector3.new(237.289169, 157.746063, -539.278137)
  795. Part23.Rotation = Vector3.new(87.8499985, -1.62, -0.310000002)
  796. Part23.Color = Color3.new(1, 0, 0)
  797. Part23.Transparency = 1
  798. Part23.Size = Vector3.new(9.13523674, 102.783638, 8.46861839)
  799. Part23.BackSurface = Enum.SurfaceType.Weld
  800. Part23.BottomSurface = Enum.SurfaceType.Weld
  801. Part23.BrickColor = BrickColor.new("Really red")
  802. Part23.CanCollide = false
  803. Part23.FrontSurface = Enum.SurfaceType.Weld
  804. Part23.LeftSurface = Enum.SurfaceType.Weld
  805. Part23.Material = Enum.Material.Neon
  806. Part23.Reflectance = 0.5
  807. Part23.RightSurface = Enum.SurfaceType.Weld
  808. Part23.TopSurface = Enum.SurfaceType.Weld
  809. Part23.brickColor = BrickColor.new("Really red")
  810. Part23.FormFactor = Enum.FormFactor.Symmetric
  811. Part23.formFactor = Enum.FormFactor.Symmetric
  812. Script24.Name = "Fade"
  813. Script24.Parent = Part23
  814. table.insert(cors,sandbox(Script24,function()
  815. bin = script.Parent
  816.  
  817. function activate(hit)
  818.     bin.Transparency = 0.2
  819.     wait(0.01)
  820.     bin.Transparency = 0.3
  821.     wait(0.01)
  822.     bin.Transparency = 0.4
  823.     wait(0.01)
  824.     bin.Transparency = 0.5
  825.     wait(0.01)
  826.     bin.Transparency = 0.6
  827.     wait(0.01)
  828.     bin.Transparency = 0.7
  829.     wait(0.01)
  830.     bin.Transparency = 0.8
  831.     wait(0.01)
  832.     bin.Transparency = 0.9
  833.     wait(0.01)
  834.     bin.Transparency = 1
  835. end
  836. script.Parent.Touched:connect(activate)
  837.  
  838.  
  839. end))
  840. CylinderMesh25.Parent = Part23
  841. CylinderMesh25.Offset = Vector3.new(0, 75, 0)
  842. CylinderMesh25.Scale = Vector3.new(1, 6.5, 1)
  843. Script26.Parent = Part23
  844. table.insert(cors,sandbox(Script26,function()
  845. function onTouched(hit)
  846.     script.Parent.Fire:play()
  847. end
  848. script.Parent.Touched:connect(onTouched)
  849. end))
  850. Sound27.Name = "Fire"
  851. Sound27.Parent = Part23
  852. Sound27.EmitterSize = 1000
  853. Sound27.MinDistance = 1000
  854. Sound27.Pitch = 0.60000002384186
  855. Sound27.PlaybackSpeed = 0.60000002384186
  856. Sound27.SoundId = "http://www.roblox.com/asset?id=2248511"
  857. Sound27.Volume = 4
  858. Script28.Name = "Lava Script"
  859. Script28.Parent = Part23
  860. table.insert(cors,sandbox(Script28,function()
  861. function onTouched(part)
  862. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  863. part.Parent.Torso:BreakJoints()
  864. end
  865. end
  866.  
  867. script.Parent.Touched:connect(onTouched)
  868. end))
  869. Part29.Name = "Shatter"
  870. Part29.Parent = Model1
  871. Part29.CFrame = CFrame.new(239.414673, 231.100922, -530.748474, 0.999585509, 0.000488025806, -0.02878768, -0.0284511056, -0.136621878, -0.990214586, -0.00441627763, 0.990623176, -0.136551335)
  872. Part29.Orientation = Vector3.new(81.9799957, -168.099991, -168.23999)
  873. Part29.Position = Vector3.new(239.414673, 231.100922, -530.748474)
  874. Part29.Rotation = Vector3.new(97.8499985, -1.64999998, -0.0299999993)
  875. Part29.Color = Color3.new(1, 0, 0)
  876. Part29.Transparency = 1
  877. Part29.Size = Vector3.new(9.13523674, 102.783638, 8.46861839)
  878. Part29.BackSurface = Enum.SurfaceType.Weld
  879. Part29.BottomSurface = Enum.SurfaceType.Weld
  880. Part29.BrickColor = BrickColor.new("Really red")
  881. Part29.CanCollide = false
  882. Part29.FrontSurface = Enum.SurfaceType.Weld
  883. Part29.LeftSurface = Enum.SurfaceType.Weld
  884. Part29.Material = Enum.Material.Neon
  885. Part29.Reflectance = 0.5
  886. Part29.RightSurface = Enum.SurfaceType.Weld
  887. Part29.TopSurface = Enum.SurfaceType.Weld
  888. Part29.brickColor = BrickColor.new("Really red")
  889. Part29.FormFactor = Enum.FormFactor.Symmetric
  890. Part29.formFactor = Enum.FormFactor.Symmetric
  891. Script30.Name = "Fade"
  892. Script30.Parent = Part29
  893. table.insert(cors,sandbox(Script30,function()
  894. bin = script.Parent
  895.  
  896. function activate(hit)
  897.     bin.Transparency = 0.2
  898.     wait(0.01)
  899.     bin.Transparency = 0.3
  900.     wait(0.01)
  901.     bin.Transparency = 0.4
  902.     wait(0.01)
  903.     bin.Transparency = 0.5
  904.     wait(0.01)
  905.     bin.Transparency = 0.6
  906.     wait(0.01)
  907.     bin.Transparency = 0.7
  908.     wait(0.01)
  909.     bin.Transparency = 0.8
  910.     wait(0.01)
  911.     bin.Transparency = 0.9
  912.     wait(0.01)
  913.     bin.Transparency = 1
  914. end
  915. script.Parent.Touched:connect(activate)
  916.  
  917.  
  918. end))
  919. CylinderMesh31.Parent = Part29
  920. CylinderMesh31.Offset = Vector3.new(0, 75, 0)
  921. CylinderMesh31.Scale = Vector3.new(1, 6.5, 1)
  922. Script32.Parent = Part29
  923. table.insert(cors,sandbox(Script32,function()
  924. function onTouched(hit)
  925.     script.Parent.Fire:play()
  926. end
  927. script.Parent.Touched:connect(onTouched)
  928. end))
  929. Sound33.Name = "Fire"
  930. Sound33.Parent = Part29
  931. Sound33.EmitterSize = 1000
  932. Sound33.MinDistance = 1000
  933. Sound33.Pitch = 0.60000002384186
  934. Sound33.PlaybackSpeed = 0.60000002384186
  935. Sound33.SoundId = "http://www.roblox.com/asset?id=2248511"
  936. Sound33.Volume = 4
  937. Script34.Name = "Lava Script"
  938. Script34.Parent = Part29
  939. table.insert(cors,sandbox(Script34,function()
  940. function onTouched(part)
  941. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  942. part.Parent.Torso:BreakJoints()
  943. end
  944. end
  945.  
  946. script.Parent.Touched:connect(onTouched)
  947. end))
  948. Part35.Name = "Shatter"
  949. Part35.Parent = Model1
  950. Part35.CFrame = CFrame.new(242.149307, 227.234451, 389.155182, 0.999585629, 0.00791429821, -0.0276785586, -0.0287242234, 0.210321724, -0.977210224, -0.00191253109, 0.977600157, 0.2104619)
  951. Part35.Orientation = Vector3.new(77.7399979, -7.48999977, -7.77999973)
  952. Part35.Position = Vector3.new(242.149307, 227.234451, 389.155182)
  953. Part35.Rotation = Vector3.new(77.8499985, -1.58999991, -0.449999988)
  954. Part35.Color = Color3.new(1, 0, 0)
  955. Part35.Transparency = 1
  956. Part35.Size = Vector3.new(9.13523674, 102.783638, 8.46861839)
  957. Part35.BackSurface = Enum.SurfaceType.Weld
  958. Part35.BottomSurface = Enum.SurfaceType.Weld
  959. Part35.BrickColor = BrickColor.new("Really red")
  960. Part35.CanCollide = false
  961. Part35.FrontSurface = Enum.SurfaceType.Weld
  962. Part35.LeftSurface = Enum.SurfaceType.Weld
  963. Part35.Material = Enum.Material.Neon
  964. Part35.Reflectance = 0.5
  965. Part35.RightSurface = Enum.SurfaceType.Weld
  966. Part35.TopSurface = Enum.SurfaceType.Weld
  967. Part35.brickColor = BrickColor.new("Really red")
  968. Part35.FormFactor = Enum.FormFactor.Symmetric
  969. Part35.formFactor = Enum.FormFactor.Symmetric
  970. Script36.Name = "Fade"
  971. Script36.Parent = Part35
  972. table.insert(cors,sandbox(Script36,function()
  973. bin = script.Parent
  974.  
  975. function activate(hit)
  976.     bin.Transparency = 0.2
  977.     wait(0.01)
  978.     bin.Transparency = 0.3
  979.     wait(0.01)
  980.     bin.Transparency = 0.4
  981.     wait(0.01)
  982.     bin.Transparency = 0.5
  983.     wait(0.01)
  984.     bin.Transparency = 0.6
  985.     wait(0.01)
  986.     bin.Transparency = 0.7
  987.     wait(0.01)
  988.     bin.Transparency = 0.8
  989.     wait(0.01)
  990.     bin.Transparency = 0.9
  991.     wait(0.01)
  992.     bin.Transparency = 1
  993. end
  994. script.Parent.Touched:connect(activate)
  995.  
  996.  
  997. end))
  998. CylinderMesh37.Parent = Part35
  999. CylinderMesh37.Offset = Vector3.new(0, 75, 0)
  1000. CylinderMesh37.Scale = Vector3.new(1, 6.5, 1)
  1001. Script38.Parent = Part35
  1002. table.insert(cors,sandbox(Script38,function()
  1003. function onTouched(hit)
  1004.     script.Parent.Fire:play()
  1005. end
  1006. script.Parent.Touched:connect(onTouched)
  1007. end))
  1008. Sound39.Name = "Fire"
  1009. Sound39.Parent = Part35
  1010. Sound39.EmitterSize = 1000
  1011. Sound39.MinDistance = 1000
  1012. Sound39.Pitch = 0.60000002384186
  1013. Sound39.PlaybackSpeed = 0.60000002384186
  1014. Sound39.SoundId = "http://www.roblox.com/asset?id=2248511"
  1015. Sound39.Volume = 4
  1016. Script40.Name = "Lava Script"
  1017. Script40.Parent = Part35
  1018. table.insert(cors,sandbox(Script40,function()
  1019. function onTouched(part)
  1020. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  1021. part.Parent.Torso:BreakJoints()
  1022. end
  1023. end
  1024.  
  1025. script.Parent.Touched:connect(onTouched)
  1026. end))
  1027. Part41.Name = "Shatter"
  1028. Part41.Parent = Model1
  1029. Part41.CFrame = CFrame.new(240.012283, 155.552521, 393.456024, 0.999585629, 0.000480881077, -0.0287836809, -0.0287241023, -0.0497649834, -0.998347819, -0.00191250595, 0.998760879, -0.0497305393)
  1030. Part41.Orientation = Vector3.new(86.7099991, -149.940002, -150.009995)
  1031. Part41.Position = Vector3.new(240.012283, 155.552521, 393.456024)
  1032. Part41.Rotation = Vector3.new(92.8499985, -1.64999998, -0.0299999993)
  1033. Part41.Color = Color3.new(1, 0, 0)
  1034. Part41.Transparency = 1
  1035. Part41.Size = Vector3.new(9.13523674, 102.783638, 8.46861839)
  1036. Part41.BackSurface = Enum.SurfaceType.Weld
  1037. Part41.BottomSurface = Enum.SurfaceType.Weld
  1038. Part41.BrickColor = BrickColor.new("Really red")
  1039. Part41.CanCollide = false
  1040. Part41.FrontSurface = Enum.SurfaceType.Weld
  1041. Part41.LeftSurface = Enum.SurfaceType.Weld
  1042. Part41.Material = Enum.Material.Neon
  1043. Part41.Reflectance = 0.5
  1044. Part41.RightSurface = Enum.SurfaceType.Weld
  1045. Part41.TopSurface = Enum.SurfaceType.Weld
  1046. Part41.brickColor = BrickColor.new("Really red")
  1047. Part41.FormFactor = Enum.FormFactor.Symmetric
  1048. Part41.formFactor = Enum.FormFactor.Symmetric
  1049. Script42.Name = "Fade"
  1050. Script42.Parent = Part41
  1051. table.insert(cors,sandbox(Script42,function()
  1052. bin = script.Parent
  1053.  
  1054. function activate(hit)
  1055.     bin.Transparency = 0.2
  1056.     wait(0.01)
  1057.     bin.Transparency = 0.3
  1058.     wait(0.01)
  1059.     bin.Transparency = 0.4
  1060.     wait(0.01)
  1061.     bin.Transparency = 0.5
  1062.     wait(0.01)
  1063.     bin.Transparency = 0.6
  1064.     wait(0.01)
  1065.     bin.Transparency = 0.7
  1066.     wait(0.01)
  1067.     bin.Transparency = 0.8
  1068.     wait(0.01)
  1069.     bin.Transparency = 0.9
  1070.     wait(0.01)
  1071.     bin.Transparency = 1
  1072. end
  1073. script.Parent.Touched:connect(activate)
  1074.  
  1075.  
  1076. end))
  1077. CylinderMesh43.Parent = Part41
  1078. CylinderMesh43.Offset = Vector3.new(0, 75, 0)
  1079. CylinderMesh43.Scale = Vector3.new(1, 6.5, 1)
  1080. Script44.Parent = Part41
  1081. table.insert(cors,sandbox(Script44,function()
  1082. function onTouched(hit)
  1083.     script.Parent.Fire:play()
  1084. end
  1085. script.Parent.Touched:connect(onTouched)
  1086. end))
  1087. Sound45.Name = "Fire"
  1088. Sound45.Parent = Part41
  1089. Sound45.EmitterSize = 1000
  1090. Sound45.MinDistance = 1000
  1091. Sound45.Pitch = 0.60000002384186
  1092. Sound45.PlaybackSpeed = 0.60000002384186
  1093. Sound45.SoundId = "http://www.roblox.com/asset?id=2248511"
  1094. Sound45.Volume = 4
  1095. Script46.Name = "Lava Script"
  1096. Script46.Parent = Part41
  1097. table.insert(cors,sandbox(Script46,function()
  1098. function onTouched(part)
  1099. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  1100. part.Parent.Torso:BreakJoints()
  1101. end
  1102. end
  1103.  
  1104. script.Parent.Touched:connect(onTouched)
  1105. end))
  1106. Part47.Name = "Shatter"
  1107. Part47.Parent = Model1
  1108. Part47.CFrame = CFrame.new(236.299973, 119.940369, -538.815735, 0.999585509, 0.00792214368, -0.0276803747, -0.0284510124, 0.124318644, -0.991834402, -0.00441626878, 0.992210686, 0.124492511)
  1109. Part47.Orientation = Vector3.new(82.6699982, -12.54, -12.8899994)
  1110. Part47.Position = Vector3.new(236.299973, 119.940369, -538.815735)
  1111. Part47.Rotation = Vector3.new(82.8499985, -1.58999991, -0.449999988)
  1112. Part47.Color = Color3.new(1, 0, 0)
  1113. Part47.Transparency = 1
  1114. Part47.Size = Vector3.new(9.13523674, 102.783638, 8.46861839)
  1115. Part47.BackSurface = Enum.SurfaceType.Weld
  1116. Part47.BottomSurface = Enum.SurfaceType.Weld
  1117. Part47.BrickColor = BrickColor.new("Really red")
  1118. Part47.CanCollide = false
  1119. Part47.FrontSurface = Enum.SurfaceType.Weld
  1120. Part47.LeftSurface = Enum.SurfaceType.Weld
  1121. Part47.Material = Enum.Material.Neon
  1122. Part47.Reflectance = 0.5
  1123. Part47.RightSurface = Enum.SurfaceType.Weld
  1124. Part47.TopSurface = Enum.SurfaceType.Weld
  1125. Part47.brickColor = BrickColor.new("Really red")
  1126. Part47.FormFactor = Enum.FormFactor.Symmetric
  1127. Part47.formFactor = Enum.FormFactor.Symmetric
  1128. Script48.Name = "Fade"
  1129. Script48.Parent = Part47
  1130. table.insert(cors,sandbox(Script48,function()
  1131. bin = script.Parent
  1132.  
  1133. function activate(hit)
  1134.     bin.Transparency = 0.2
  1135.     wait(0.01)
  1136.     bin.Transparency = 0.3
  1137.     wait(0.01)
  1138.     bin.Transparency = 0.4
  1139.     wait(0.01)
  1140.     bin.Transparency = 0.5
  1141.     wait(0.01)
  1142.     bin.Transparency = 0.6
  1143.     wait(0.01)
  1144.     bin.Transparency = 0.7
  1145.     wait(0.01)
  1146.     bin.Transparency = 0.8
  1147.     wait(0.01)
  1148.     bin.Transparency = 0.9
  1149.     wait(0.01)
  1150.     bin.Transparency = 1
  1151. end
  1152. script.Parent.Touched:connect(activate)
  1153.  
  1154.  
  1155. end))
  1156. CylinderMesh49.Parent = Part47
  1157. CylinderMesh49.Offset = Vector3.new(0, 75, 0)
  1158. CylinderMesh49.Scale = Vector3.new(1, 6.5, 1)
  1159. Script50.Parent = Part47
  1160. table.insert(cors,sandbox(Script50,function()
  1161. function onTouched(hit)
  1162.     script.Parent.Fire:play()
  1163. end
  1164. script.Parent.Touched:connect(onTouched)
  1165. end))
  1166. Sound51.Name = "Fire"
  1167. Sound51.Parent = Part47
  1168. Sound51.EmitterSize = 1000
  1169. Sound51.MinDistance = 1000
  1170. Sound51.Pitch = 0.60000002384186
  1171. Sound51.PlaybackSpeed = 0.60000002384186
  1172. Sound51.SoundId = "http://www.roblox.com/asset?id=2248511"
  1173. Sound51.Volume = 4
  1174. Script52.Name = "Lava Script"
  1175. Script52.Parent = Part47
  1176. table.insert(cors,sandbox(Script52,function()
  1177. function onTouched(part)
  1178. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  1179. part.Parent.Torso:BreakJoints()
  1180. end
  1181. end
  1182.  
  1183. script.Parent.Touched:connect(onTouched)
  1184. end))
  1185. Part53.Name = " "
  1186. Part53.Parent = Model1
  1187. Part53.CFrame = CFrame.new(262.916138, 135.497894, -14.6219063, 0.911797941, 0.121225327, 0.392337978, 0.143219471, 0.801558256, -0.580510557, -0.384854376, 0.58549875, 0.713497281)
  1188. Part53.Orientation = Vector3.new(35.4899979, 28.8099995, 10.1300001)
  1189. Part53.Position = Vector3.new(262.916138, 135.497894, -14.6219063)
  1190. Part53.Rotation = Vector3.new(39.1299973, 23.1000004, -7.56999969)
  1191. Part53.Size = Vector3.new(1.23449135, 0.987593114, 1.23449135)
  1192. Part53.Anchored = true
  1193. Part53.BottomSurface = Enum.SurfaceType.Smooth
  1194. Part53.TopSurface = Enum.SurfaceType.Smooth
  1195. Part53.FormFactor = Enum.FormFactor.Plate
  1196. Part53.formFactor = Enum.FormFactor.Plate
  1197. ParticleEmitter54.Name = "Fire"
  1198. ParticleEmitter54.Parent = Part53
  1199. ParticleEmitter54.Speed = NumberRange.new(100, 100)
  1200. ParticleEmitter54.Rotation = NumberRange.new(-45, -45)
  1201. ParticleEmitter54.Color = ColorSequence.new(Color3.new(0.666667, 0, 0),Color3.new(1, 0, 0))
  1202. ParticleEmitter54.LightEmission = 1
  1203. ParticleEmitter54.Texture = "http://www.roblox.com/asset/?id=241936182"
  1204. ParticleEmitter54.Transparency = NumberSequence.new(0,0.28749996423721,1)
  1205. ParticleEmitter54.ZOffset = 1
  1206. ParticleEmitter54.Size = NumberSequence.new(10,0)
  1207. ParticleEmitter54.EmissionDirection = Enum.NormalId.Bottom
  1208. ParticleEmitter54.Lifetime = NumberRange.new(0.60000002384186, 0.60000002384186)
  1209. ParticleEmitter54.LockedToPart = true
  1210. ParticleEmitter54.Rate = 250
  1211. ParticleEmitter54.SpreadAngle = Vector2.new(50, 50)
  1212. ParticleEmitter54.VelocitySpread = 50
  1213. Part55.Name = " "
  1214. Part55.Parent = Model1
  1215. Part55.CFrame = CFrame.new(257.581726, 130.483658, 6.27809906, -0.974856734, 0.123940133, 0.185183972, -0.0177562926, 0.785197079, -0.618991315, -0.222123757, -0.606716096, -0.763253987)
  1216. Part55.Orientation = Vector3.new(38.2399979, 166.360001, -1.29999995)
  1217. Part55.Position = Vector3.new(257.581726, 130.483658, 6.27809906)
  1218. Part55.Rotation = Vector3.new(140.959991, 10.6700001, -172.75)
  1219. Part55.Size = Vector3.new(1.23449135, 0.987593114, 1.23449135)
  1220. Part55.Anchored = true
  1221. Part55.BottomSurface = Enum.SurfaceType.Smooth
  1222. Part55.TopSurface = Enum.SurfaceType.Smooth
  1223. Part55.FormFactor = Enum.FormFactor.Plate
  1224. Part55.formFactor = Enum.FormFactor.Plate
  1225. ParticleEmitter56.Name = "Fire"
  1226. ParticleEmitter56.Parent = Part55
  1227. ParticleEmitter56.Speed = NumberRange.new(100, 100)
  1228. ParticleEmitter56.Rotation = NumberRange.new(-45, -45)
  1229. ParticleEmitter56.Color = ColorSequence.new(Color3.new(0.666667, 0, 0),Color3.new(1, 0, 0))
  1230. ParticleEmitter56.LightEmission = 1
  1231. ParticleEmitter56.Texture = "http://www.roblox.com/asset/?id=241936182"
  1232. ParticleEmitter56.Transparency = NumberSequence.new(0,0.28749996423721,1)
  1233. ParticleEmitter56.ZOffset = 1
  1234. ParticleEmitter56.Size = NumberSequence.new(10,0)
  1235. ParticleEmitter56.EmissionDirection = Enum.NormalId.Bottom
  1236. ParticleEmitter56.Lifetime = NumberRange.new(0.60000002384186, 0.60000002384186)
  1237. ParticleEmitter56.LockedToPart = true
  1238. ParticleEmitter56.Rate = 250
  1239. ParticleEmitter56.SpreadAngle = Vector2.new(50, 50)
  1240. ParticleEmitter56.VelocitySpread = 50
  1241. Part57.Name = "Shatter"
  1242. Part57.Parent = Model1
  1243. Part57.CFrame = CFrame.new(253.665207, 35.7730713, -10.1541901, 0.999585509, 0.0286352765, 0.00299632479, -0.0284508113, 0.998354912, -0.049779769, -0.00441685319, 0.0496738851, 0.998755753)
  1244. Part57.Orientation = Vector3.new(2.8499999, 0.170000002, -1.63)
  1245. Part57.Position = Vector3.new(253.665207, 35.7730713, -10.1541901)
  1246. Part57.Rotation = Vector3.new(2.8499999, 0.170000002, -1.63999999)
  1247. Part57.Color = Color3.new(1, 0, 0)
  1248. Part57.Transparency = 1
  1249. Part57.Size = Vector3.new(22.1352329, 65.783638, 23.6686192)
  1250. Part57.BackSurface = Enum.SurfaceType.Weld
  1251. Part57.BottomSurface = Enum.SurfaceType.Weld
  1252. Part57.BrickColor = BrickColor.new("Really red")
  1253. Part57.CanCollide = false
  1254. Part57.FrontSurface = Enum.SurfaceType.Weld
  1255. Part57.LeftSurface = Enum.SurfaceType.Weld
  1256. Part57.Material = Enum.Material.Neon
  1257. Part57.Reflectance = 0.5
  1258. Part57.RightSurface = Enum.SurfaceType.Weld
  1259. Part57.TopSurface = Enum.SurfaceType.Weld
  1260. Part57.brickColor = BrickColor.new("Really red")
  1261. Part57.FormFactor = Enum.FormFactor.Symmetric
  1262. Part57.formFactor = Enum.FormFactor.Symmetric
  1263. Script58.Name = "Fade"
  1264. Script58.Parent = Part57
  1265. table.insert(cors,sandbox(Script58,function()
  1266. bin = script.Parent
  1267.  
  1268. function activate(hit)
  1269.     bin.Transparency = 0.2
  1270.     wait(0.01)
  1271.     bin.Transparency = 0.3
  1272.     wait(0.01)
  1273.     bin.Transparency = 0.4
  1274.     wait(0.01)
  1275.     bin.Transparency = 0.5
  1276.     wait(0.01)
  1277.     bin.Transparency = 0.6
  1278.     wait(0.01)
  1279.     bin.Transparency = 0.7
  1280.     wait(0.01)
  1281.     bin.Transparency = 0.8
  1282.     wait(0.01)
  1283.     bin.Transparency = 0.9
  1284.     wait(0.01)
  1285.     bin.Transparency = 1
  1286. end
  1287. script.Parent.Touched:connect(activate)
  1288.  
  1289.  
  1290. end))
  1291. CylinderMesh59.Parent = Part57
  1292. CylinderMesh59.Offset = Vector3.new(0, 25, 0)
  1293. CylinderMesh59.Scale = Vector3.new(1, 4.5, 1)
  1294. Script60.Parent = Part57
  1295. table.insert(cors,sandbox(Script60,function()
  1296. function onTouched(hit)
  1297.     script.Parent.Fire:play()
  1298. end
  1299. script.Parent.Touched:connect(onTouched)
  1300. end))
  1301. Sound61.Name = "Fire"
  1302. Sound61.Parent = Part57
  1303. Sound61.EmitterSize = 1000
  1304. Sound61.MinDistance = 1000
  1305. Sound61.Pitch = 0.60000002384186
  1306. Sound61.PlaybackSpeed = 0.60000002384186
  1307. Sound61.SoundId = "http://www.roblox.com/asset?id=2248511"
  1308. Sound61.Volume = 4
  1309. Script62.Name = "Lava Script"
  1310. Script62.Parent = Part57
  1311. table.insert(cors,sandbox(Script62,function()
  1312. function onTouched(part)
  1313. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  1314. part.Parent.Torso:BreakJoints()
  1315. end
  1316. end
  1317.  
  1318. script.Parent.Touched:connect(onTouched)
  1319. end))
  1320. Model63.Name = "Head"
  1321. Model63.Parent = Model0
  1322. UnionOperation64.Parent = Model63
  1323. UnionOperation64.CFrame = CFrame.new(238.314423, 226.662888, 9.3290863, -0.999578953, 0.0290145539, -0.000376083568, 0.0289597735, 0.998337626, 0.0498331301, 0.00182134425, 0.0498012528, -0.998757541)
  1324. UnionOperation64.Orientation = Vector3.new(-2.8599999, -179.979996, 1.65999997)
  1325. UnionOperation64.Position = Vector3.new(238.314423, 226.662888, 9.3290863)
  1326. UnionOperation64.Rotation = Vector3.new(-177.139999, -0.0199999996, -178.339996)
  1327. UnionOperation64.Color = Color3.new(1, 0, 0)
  1328. UnionOperation64.Size = Vector3.new(0.731566668, 2.22208261, 2.22208357)
  1329. UnionOperation64.BrickColor = BrickColor.new("Really red")
  1330. UnionOperation64.Material = Enum.Material.Neon
  1331. UnionOperation64.brickColor = BrickColor.new("Really red")
  1332. UnionOperation64.UsePartColor = true
  1333. UnionOperation65.Parent = Model63
  1334. UnionOperation65.CFrame = CFrame.new(238.314407, 226.669022, 9.20576477, -0.999578953, 0.0290145539, -0.000376083568, 0.0289597735, 0.998337626, 0.0498331301, 0.00182134425, 0.0498012528, -0.998757541)
  1335. UnionOperation65.Orientation = Vector3.new(-2.8599999, -179.979996, 1.65999997)
  1336. UnionOperation65.Position = Vector3.new(238.314407, 226.669022, 9.20576477)
  1337. UnionOperation65.Rotation = Vector3.new(-177.139999, -0.0199999996, -178.339996)
  1338. UnionOperation65.Color = Color3.new(0.592157, 0, 0)
  1339. UnionOperation65.Size = Vector3.new(1.46313381, 4.44416523, 4.44416857)
  1340. UnionOperation65.BrickColor = BrickColor.new("Crimson")
  1341. UnionOperation65.Material = Enum.Material.Neon
  1342. UnionOperation65.brickColor = BrickColor.new("Crimson")
  1343. UnionOperation65.UsePartColor = true
  1344. Part66.Name = "Handle"
  1345. Part66.Parent = Model63
  1346. Part66.CFrame = CFrame.new(248.086517, 223.699707, -0.307014465, 0.000416902825, 0.314539552, 0.949232578, -0.04983202, -0.948058367, 0.314172506, 0.998767376, -0.0474323109, 0.0152844461)
  1347. Part66.Orientation = Vector3.new(-18.3099995, 89.0799942, -176.98999)
  1348. Part66.Position = Vector3.new(248.086517, 223.699707, -0.307014465)
  1349. Part66.Rotation = Vector3.new(-87.2099991, 71.659996, -89.9199982)
  1350. Part66.Color = Color3.new(0.972549, 0.972549, 0.972549)
  1351. Part66.Size = Vector3.new(3.3260591, 3.3260591, 3.3260591)
  1352. Part66.BottomSurface = Enum.SurfaceType.Smooth
  1353. Part66.BrickColor = BrickColor.new("Institutional white")
  1354. Part66.Material = Enum.Material.Metal
  1355. Part66.TopSurface = Enum.SurfaceType.Smooth
  1356. Part66.brickColor = BrickColor.new("Institutional white")
  1357. Part66.FormFactor = Enum.FormFactor.Symmetric
  1358. Part66.formFactor = Enum.FormFactor.Symmetric
  1359. SpecialMesh67.Parent = Part66
  1360. SpecialMesh67.MeshId = "http://www.roblox.com/asset/?id=21057589"
  1361. SpecialMesh67.Scale = Vector3.new(24.6898289, 30.8622837, 16.0483894)
  1362. SpecialMesh67.MeshType = Enum.MeshType.FileMesh
  1363. UnionOperation68.Parent = Model63
  1364. UnionOperation68.CFrame = CFrame.new(256.070313, 225.963394, -0.327735901, -0.996056914, -0.000202496187, -0.0887173787, -0.00531769032, 0.998335719, 0.0574246123, 0.0885581151, 0.0576699525, -0.994400144)
  1365. UnionOperation68.Orientation = Vector3.new(-3.28999996, -174.899994, -0.310000002)
  1366. UnionOperation68.Position = Vector3.new(256.070313, 225.963394, -0.327735901)
  1367. UnionOperation68.Rotation = Vector3.new(-176.690002, -5.08999968, 179.98999)
  1368. UnionOperation68.Color = Color3.new(0.639216, 0.635294, 0.647059)
  1369. UnionOperation68.Size = Vector3.new(42.0630302, 42.226326, 41.1241989)
  1370. UnionOperation68.BottomParamA = -0.10000000149012
  1371. UnionOperation68.BottomParamB = 0.10000000149012
  1372. UnionOperation68.BottomSurface = Enum.SurfaceType.Motor
  1373. UnionOperation68.BottomSurfaceInput = Enum.InputType.Constant
  1374. UnionOperation68.BrickColor = BrickColor.new("Medium stone grey")
  1375. UnionOperation68.Material = Enum.Material.Metal
  1376. UnionOperation68.brickColor = BrickColor.new("Medium stone grey")
  1377. Part69.Name = "Handle"
  1378. Part69.Parent = Model63
  1379. Part69.CFrame = CFrame.new(253.078461, 215.361496, -0.724945068, -0.000418284559, -0.474598885, 0.880202174, 0.0498288907, 0.879098833, 0.474027723, -0.99875766, 0.0440577716, 0.0232810229)
  1380. Part69.Orientation = Vector3.new(-28.2999992, 88.4799957, 3.24000001)
  1381. Part69.Position = Vector3.new(253.078461, 215.361496, -0.724945068)
  1382. Part69.Rotation = Vector3.new(-87.1899948, 61.6699982, 90.0499954)
  1383. Part69.Color = Color3.new(0.972549, 0.972549, 0.972549)
  1384. Part69.Size = Vector3.new(3.3260591, 3.3260591, 3.3260591)
  1385. Part69.BottomSurface = Enum.SurfaceType.Smooth
  1386. Part69.BrickColor = BrickColor.new("Institutional white")
  1387. Part69.Material = Enum.Material.Metal
  1388. Part69.TopSurface = Enum.SurfaceType.Smooth
  1389. Part69.brickColor = BrickColor.new("Institutional white")
  1390. Part69.FormFactor = Enum.FormFactor.Symmetric
  1391. Part69.formFactor = Enum.FormFactor.Symmetric
  1392. SpecialMesh70.Parent = Part69
  1393. SpecialMesh70.MeshId = "http://www.roblox.com/asset/?id=21057589"
  1394. SpecialMesh70.Scale = Vector3.new(23.4553452, 24.6898289, 16.0483894)
  1395. SpecialMesh70.MeshType = Enum.MeshType.FileMesh
  1396. Script71.Name = "qPerfectionWeld"
  1397. Script71.Parent = Model63
  1398. table.insert(cors,sandbox(Script71,function()
  1399. -- Created by Quenty (@Quenty, follow me on twitter).
  1400. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  1401. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  1402.  
  1403. --[[ INSTRUCTIONS
  1404. - Place in the model
  1405. - Make sure model is anchored
  1406. - That's it. It will weld the model and all children.
  1407.  
  1408. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1409. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1410. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1411. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1412. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1413. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1414. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1415. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1416.  
  1417. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  1418. ]]
  1419.  
  1420. --[[ DOCUMENTATION
  1421. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  1422. - Will work in PBS servers
  1423. - Will work as long as it starts out with the part anchored
  1424. - Stores the relative CFrame as a CFrame value
  1425. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  1426. - Utilizes a recursive algorith to find all parts in the model
  1427. - Will reweld on script reparent if the script is initially parented to a tool.
  1428. - Welds as fast as possible
  1429. ]]
  1430.  
  1431. -- qPerfectionWeld.lua
  1432. -- Created 10/6/2014
  1433. -- Author: Quenty
  1434. -- Version 1.0.3
  1435.  
  1436. -- Updated 10/14/2014 - Updated to 1.0.1
  1437. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  1438.  
  1439. -- Updated 10/14/2014 - Updated to 1.0.2
  1440. --- Fixed bug fix.
  1441.  
  1442. -- Updated 10/14/2014 - Updated to 1.0.3
  1443. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  1444.  
  1445. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  1446.  
  1447.  
  1448. local function CallOnChildren(Instance, FunctionToCall)
  1449.     -- Calls a function on each of the children of a certain object, using recursion.  
  1450.  
  1451.     FunctionToCall(Instance)
  1452.  
  1453.     for _, Child in next, Instance:GetChildren() do
  1454.         CallOnChildren(Child, FunctionToCall)
  1455.     end
  1456. end
  1457.  
  1458. local function GetNearestParent(Instance, ClassName)
  1459.     -- Returns the nearest parent of a certain class, or returns nil
  1460.  
  1461.     local Ancestor = Instance
  1462.     repeat
  1463.         Ancestor = Ancestor.Parent
  1464.         if Ancestor == nil then
  1465.             return nil
  1466.         end
  1467.     until Ancestor:IsA(ClassName)
  1468.  
  1469.     return Ancestor
  1470. end
  1471.  
  1472. local function GetBricks(StartInstance)
  1473.     local List = {}
  1474.  
  1475.     -- if StartInstance:IsA("BasePart") then
  1476.     --  List[#List+1] = StartInstance
  1477.     -- end
  1478.  
  1479.     CallOnChildren(StartInstance, function(Item)
  1480.         if Item:IsA("BasePart") then
  1481.             List[#List+1] = Item;
  1482.         end
  1483.     end)
  1484.  
  1485.     return List
  1486. end
  1487.  
  1488. local function Modify(Instance, Values)
  1489.     -- Modifies an Instance by using a table.  
  1490.  
  1491.     assert(type(Values) == "table", "Values is not a table");
  1492.  
  1493.     for Index, Value in next, Values do
  1494.         if type(Index) == "number" then
  1495.             Value.Parent = Instance
  1496.         else
  1497.             Instance[Index] = Value
  1498.         end
  1499.     end
  1500.     return Instance
  1501. end
  1502.  
  1503. local function Make(ClassType, Properties)
  1504.     -- Using a syntax hack to create a nice way to Make new items.  
  1505.  
  1506.     return Modify(Instance.new(ClassType), Properties)
  1507. end
  1508.  
  1509. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  1510. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  1511.  
  1512. local function HasWheelJoint(Part)
  1513.     for _, SurfaceName in pairs(Surfaces) do
  1514.         for _, HingSurfaceName in pairs(HingSurfaces) do
  1515.             if Part[SurfaceName].Name == HingSurfaceName then
  1516.                 return true
  1517.             end
  1518.         end
  1519.     end
  1520.    
  1521.     return false
  1522. end
  1523.  
  1524. local function ShouldBreakJoints(Part)
  1525.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  1526.     --  definitely some edge cases.
  1527.  
  1528.     if NEVER_BREAK_JOINTS then
  1529.         return false
  1530.     end
  1531.    
  1532.     if HasWheelJoint(Part) then
  1533.         return false
  1534.     end
  1535.    
  1536.     local Connected = Part:GetConnectedParts()
  1537.    
  1538.     if #Connected == 1 then
  1539.         return false
  1540.     end
  1541.    
  1542.     for _, Item in pairs(Connected) do
  1543.         if HasWheelJoint(Item) then
  1544.             return false
  1545.         elseif not Item:IsDescendantOf(script.Parent) then
  1546.             return false
  1547.         end
  1548.     end
  1549.    
  1550.     return true
  1551. end
  1552.  
  1553. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  1554.     --- Weld's 2 parts together
  1555.     -- @param Part0 The first part
  1556.     -- @param Part1 The second part (Dependent part most of the time).
  1557.     -- @param [JointType] The type of joint. Defaults to weld.
  1558.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  1559.     -- @return The weld created.
  1560.  
  1561.     JointType = JointType or "Weld"
  1562.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  1563.    
  1564.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  1565.     Modify(NewWeld, {
  1566.         Name = "qCFrameWeldThingy";
  1567.         Part0  = Part0;
  1568.         Part1  = Part1;
  1569.         C0     = CFrame.new();--Part0.CFrame:inverse();
  1570.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  1571.         Parent = Part1;
  1572.     })
  1573.  
  1574.     if not RelativeValue then
  1575.         RelativeValue = Make("CFrameValue", {
  1576.             Parent     = Part1;
  1577.             Name       = "qRelativeCFrameWeldValue";
  1578.             Archivable = true;
  1579.             Value      = NewWeld.C1;
  1580.         })
  1581.     end
  1582.  
  1583.     return NewWeld
  1584. end
  1585.  
  1586. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  1587.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  1588.     -- @param MainPart The part to weld the model to (can be in the model).
  1589.     -- @param [JointType] The type of joint. Defaults to weld.
  1590.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  1591.    
  1592.     for _, Part in pairs(Parts) do
  1593.         if ShouldBreakJoints(Part) then
  1594.             Part:BreakJoints()
  1595.         end
  1596.     end
  1597.    
  1598.     for _, Part in pairs(Parts) do
  1599.         if Part ~= MainPart then
  1600.             WeldTogether(MainPart, Part, JointType, MainPart)
  1601.         end
  1602.     end
  1603.  
  1604.     if not DoNotUnanchor then
  1605.         for _, Part in pairs(Parts) do
  1606.             Part.Anchored = false
  1607.         end
  1608.         MainPart.Anchored = false
  1609.     end
  1610. end
  1611.  
  1612. local function PerfectionWeld()
  1613.     local Tool = GetNearestParent(script, "Tool")
  1614.  
  1615.     local Parts = GetBricks(script.Parent)
  1616.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  1617.  
  1618.     if PrimaryPart then
  1619.         WeldParts(Parts, PrimaryPart, "Weld", false)
  1620.     else
  1621.         warn("qWeld - Unable to weld part")
  1622.     end
  1623.    
  1624.     return Tool
  1625. end
  1626.  
  1627. local Tool = PerfectionWeld()
  1628.  
  1629.  
  1630. if Tool and script.ClassName == "Script" then
  1631.     --- Don't bother with local scripts
  1632.  
  1633.     script.Parent.AncestryChanged:connect(function()
  1634.         PerfectionWeld()
  1635.     end)
  1636. end
  1637.  
  1638. -- Created by Quenty (@Quenty, follow me on twitter).
  1639.  
  1640. end))
  1641. Part72.Parent = Model63
  1642. Part72.CFrame = CFrame.new(236.023392, 227.942581, 1.53780365, -0.000400150049, 0.0291465167, 0.999575138, 0.0497951023, 0.998335719, -0.0290904455, -0.998759449, 0.0497622974, -0.00185083784)
  1643. Part72.Orientation = Vector3.new(1.66999996, 90.1100006, 2.8599999)
  1644. Part72.Position = Vector3.new(236.023392, 227.942581, 1.53780365)
  1645. Part72.Rotation = Vector3.new(93.6399994, 88.3300018, -90.7900009)
  1646. Part72.Color = Color3.new(0, 1, 0)
  1647. Part72.Transparency = 1
  1648. Part72.Size = Vector3.new(0.814765275, 0.814765275, 0.814765275)
  1649. Part72.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1650. Part72.BrickColor = BrickColor.new("Lime green")
  1651. Part72.CanCollide = false
  1652. Part72.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1653. Part72.Material = Enum.Material.Metal
  1654. Part72.brickColor = BrickColor.new("Lime green")
  1655. Part72.FormFactor = Enum.FormFactor.Custom
  1656. Part72.formFactor = Enum.FormFactor.Custom
  1657. Part72.Shape = Enum.PartType.Ball
  1658. Humanoid73.Parent = Part72
  1659. Humanoid73.Health = 0
  1660. Humanoid73.MaxHealth = 0
  1661. Humanoid73.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  1662. Humanoid73.WalkSpeed = 10
  1663. Humanoid73.maxHealth = 0
  1664. Script74.Parent = Part72
  1665. table.insert(cors,sandbox(Script74,function()
  1666. bin = script.Parent
  1667.  
  1668. function move(target)
  1669.     local dir = (target.Position - bin.Position).unit
  1670.     local spawnPos = bin.Position
  1671.     local pos = spawnPos + (dir * 1)
  1672.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  1673.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  1674. end
  1675.  
  1676. function moveTo(target)
  1677.     bin.BodyPosition.position = target.Position
  1678.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  1679. end
  1680.  
  1681. function findNearestTorso(pos)
  1682.     local list = game.Workspace:GetChildren()
  1683.     local torso = nil
  1684.     local dist = 10000000000000000
  1685.     local temp = nil
  1686.     local human = nil
  1687.     local temp2 = nil
  1688.     for x = 1, #list do
  1689.         temp2 = list[x]
  1690.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  1691.             temp = temp2:findFirstChild("Torso")
  1692.             human = temp2:findFirstChild("Humanoid")
  1693.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  1694.                 if (temp.Position - pos).magnitude < dist then
  1695.                     torso = temp
  1696.                     dist = (temp.Position - pos).magnitude
  1697.                 end
  1698.             end
  1699.         end
  1700.     end
  1701.     return torso
  1702. end
  1703.  
  1704. function shoot(pos)
  1705.     dir = (pos - bin.CFrame.p).unit
  1706.     for i = 1, 50 do
  1707.         local ex = Instance.new("Explosion")
  1708.         ex.BlastRadius = 1
  1709.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  1710.         ex.Parent = game.Workspace
  1711.     end
  1712. end
  1713.  
  1714. function shootAt(torso)
  1715.     local dir = (torso.Position - bin.Position).unit
  1716.     local spawnPos = bin.Position
  1717.     local pos = spawnPos + (dir * 1)
  1718.     shoot(pos)
  1719. end
  1720.  
  1721. while true do
  1722.     local torso = findNearestTorso(bin.Position)
  1723.     if torso~=nil then
  1724.         move(torso)
  1725.         moveTo(torso)
  1726.     end
  1727.     wait()
  1728. end
  1729.  
  1730. end))
  1731. Script75.Parent = Part72
  1732. table.insert(cors,sandbox(Script75,function()
  1733. function onTouched(part)
  1734.     local h = part.Parent:findFirstChild("Humanoid")
  1735.     if h~=nil then
  1736.         h.Health = h.Health 100
  1737.         wait(1)
  1738.     end
  1739. end
  1740.  
  1741. script.Parent.Touched:connect(onTouched)
  1742.  
  1743. end))
  1744. NumberValue76.Name = "Speed"
  1745. NumberValue76.Parent = Part72
  1746. NumberValue76.Value = 300
  1747. BodyGyro77.Parent = Part72
  1748. BodyGyro77.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  1749. BodyGyro77.MaxTorque = Vector3.new(9000, 9000, 9000)
  1750. BodyGyro77.maxTorque = Vector3.new(9000, 9000, 9000)
  1751. BodyGyro77.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  1752. BodyPosition78.Parent = Part72
  1753. BodyPosition78.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  1754. BodyPosition78.MaxForce = Vector3.new(6000, 6000, 6000)
  1755. BodyPosition78.maxForce = Vector3.new(6000, 6000, 6000)
  1756. BodyPosition78.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  1757. Script79.Name = "SuperRun"
  1758. Script79.Parent = Model63
  1759. table.insert(cors,sandbox(Script79,function()
  1760. function makeRun(character)
  1761.     local h = character:FindFirstChild("Humanoid")
  1762.     if (h~= nil) then
  1763.         h.WalkSpeed = 60
  1764.     end
  1765.  
  1766. end
  1767.  
  1768. function onPlayerRespawn(property, player)
  1769.     -- need to connect to new humanoid
  1770.    
  1771.     if property == "Character" and player.Character ~= nil then
  1772.         makeRun(player.Character)
  1773.     end
  1774. end
  1775.  
  1776.  
  1777.  
  1778. function onPlayerEntered(newPlayer)
  1779.         -- VERY UGLY HACK
  1780.         -- Will this leak threads?
  1781.         -- Is the problem even what I think it is (player arrived before character)?
  1782.         while true do
  1783.             if newPlayer.Character ~= nil then break end
  1784.             wait(1)
  1785.         end
  1786.  
  1787.         -- start to listen for new humanoid
  1788.         newPlayer.Changed:connect(function(property) onPlayerRespawn(property, newPlayer) end )
  1789.  
  1790.         makeRun(newPlayer.Character)
  1791. end
  1792.  
  1793.  
  1794. game.Players.ChildAdded:connect(onPlayerEntered)
  1795.  
  1796.  
  1797.  
  1798.  
  1799. end))
  1800. Part80.Name = "Shatter"
  1801. Part80.Parent = Model63
  1802. Part80.CFrame = CFrame.new(-2.86876011, 233.069382, 9.46652985, 0.000479114155, -0.999585629, -0.0287835505, -0.049765408, 0.0287240595, -0.998347759, 0.998760819, 0.00191074784, -0.0497310162)
  1803. Part80.Orientation = Vector3.new(86.7099991, -149.940002, -60.0099983)
  1804. Part80.Position = Vector3.new(-2.86876011, 233.069382, 9.46652985)
  1805. Part80.Rotation = Vector3.new(92.8499985, -1.64999998, 89.9700012)
  1806. Part80.Color = Color3.new(1, 0, 0)
  1807. Part80.Transparency = 1
  1808. Part80.Size = Vector3.new(5.67866373, 84.2662811, 3.03685927)
  1809. Part80.BackSurface = Enum.SurfaceType.Weld
  1810. Part80.BottomSurface = Enum.SurfaceType.Weld
  1811. Part80.BrickColor = BrickColor.new("Really red")
  1812. Part80.CanCollide = false
  1813. Part80.FrontSurface = Enum.SurfaceType.Weld
  1814. Part80.LeftSurface = Enum.SurfaceType.Weld
  1815. Part80.Material = Enum.Material.Neon
  1816. Part80.Reflectance = 0.5
  1817. Part80.RightSurface = Enum.SurfaceType.Weld
  1818. Part80.TopSurface = Enum.SurfaceType.Weld
  1819. Part80.brickColor = BrickColor.new("Really red")
  1820. Part80.FormFactor = Enum.FormFactor.Symmetric
  1821. Part80.formFactor = Enum.FormFactor.Symmetric
  1822. Script81.Name = "Fade"
  1823. Script81.Parent = Part80
  1824. table.insert(cors,sandbox(Script81,function()
  1825. bin = script.Parent
  1826.  
  1827. function activate(hit)
  1828.     bin.Transparency = 0.2
  1829.     wait(0.01)
  1830.     bin.Transparency = 0.3
  1831.     wait(0.01)
  1832.     bin.Transparency = 0.4
  1833.     wait(0.01)
  1834.     bin.Transparency = 0.5
  1835.     wait(0.01)
  1836.     bin.Transparency = 0.6
  1837.     wait(0.01)
  1838.     bin.Transparency = 0.7
  1839.     wait(0.01)
  1840.     bin.Transparency = 0.8
  1841.     wait(0.01)
  1842.     bin.Transparency = 0.9
  1843.     wait(0.01)
  1844.     bin.Transparency = 1
  1845. end
  1846. script.Parent.Touched:connect(activate)
  1847.  
  1848.  
  1849. end))
  1850. CylinderMesh82.Parent = Part80
  1851. CylinderMesh82.Offset = Vector3.new(0, 150, 0)
  1852. CylinderMesh82.Scale = Vector3.new(1, 10.5, 1)
  1853. Script83.Parent = Part80
  1854. table.insert(cors,sandbox(Script83,function()
  1855. function onTouched(hit)
  1856.     script.Parent.Fire:play()
  1857. end
  1858. script.Parent.Touched:connect(onTouched)
  1859. end))
  1860. Sound84.Name = "Fire"
  1861. Sound84.Parent = Part80
  1862. Sound84.EmitterSize = 1000
  1863. Sound84.MinDistance = 1000
  1864. Sound84.Pitch = 0.60000002384186
  1865. Sound84.PlaybackSpeed = 0.60000002384186
  1866. Sound84.SoundId = "http://www.roblox.com/asset?id=2248511"
  1867. Sound84.Volume = 5
  1868. Script85.Name = "Lava Script"
  1869. Script85.Parent = Part80
  1870. table.insert(cors,sandbox(Script85,function()
  1871. function onTouched(part)
  1872. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  1873. part.Parent.Torso:BreakJoints()
  1874. end
  1875. end
  1876.  
  1877. script.Parent.Touched:connect(onTouched)
  1878. end))
  1879. Script86.Name = "MusicScript"
  1880. Script86.Parent = Model63
  1881. table.insert(cors,sandbox(Script86,function()
  1882. --Made by Stickmasterluke
  1883. gw=game.Workspace
  1884.  
  1885. function message(text,time)
  1886.     local oldmsg=gw:FindFirstChild("Hint")
  1887.     if oldmsg then
  1888.         oldmsg.Parent=nil
  1889.     end
  1890.     local spacenumber=time*0
  1891.     local msg=Instance.new("Hint")
  1892.     msg.Parent=gw
  1893.     --[[for i=1, spacenumber do
  1894.         wait(1/25)
  1895.         local maketext=""
  1896.         for i2=1, i do
  1897.             maketext=maketext.." "
  1898.         end
  1899.         maketext=maketext..text
  1900.         for i2=1, spacenumber-i do
  1901.             maketext=maketext.." "
  1902.         end
  1903.         msg.Text=maketext
  1904.     end]]
  1905.     msg.Text=text
  1906.     wait(0)
  1907.     msg.Parent=nil
  1908. end
  1909.  
  1910. last=""
  1911. lastlast=""
  1912. while true do
  1913.     wait(0)
  1914.     local tracks=script:GetChildren()
  1915.     local rn=math.random(1,#tracks)
  1916.     local track=tracks[rn]
  1917.     if track~=nil then
  1918.         if track.className=="Sound" and track.Name~=last and track.Name~=lastlast then
  1919.             lastlast=last
  1920.             last=track.Name
  1921.             message(track.Name,50)
  1922.             track:play()
  1923.             wait(10000000000000000000000000)
  1924.             track:pause()
  1925.         end
  1926.     end
  1927. end
  1928.    
  1929. end))
  1930. Sound87.Parent = Script86
  1931. Sound87.Looped = true
  1932. Sound87.Pitch = 0.80000001192093
  1933. Sound87.PlaybackSpeed = 0.80000001192093
  1934. Sound87.Playing = true
  1935. Sound87.RollOffMode = Enum.RollOffMode.Linear
  1936. Sound87.SoundId = "rbxassetid://459170477"
  1937. Sound87.Volume = 8
  1938. UnionOperation88.Parent = Model63
  1939. UnionOperation88.CFrame = CFrame.new(238.30835, 227.437744, -6.20638275, -0.999578953, 0.0290145539, -0.000376083568, 0.0289597735, 0.998337626, 0.0498331301, 0.00182134425, 0.0498012528, -0.998757541)
  1940. UnionOperation88.Orientation = Vector3.new(-2.8599999, -179.979996, 1.65999997)
  1941. UnionOperation88.Position = Vector3.new(238.30835, 227.437744, -6.20638275)
  1942. UnionOperation88.Rotation = Vector3.new(-177.139999, -0.0199999996, -178.339996)
  1943. UnionOperation88.Color = Color3.new(1, 0, 0)
  1944. UnionOperation88.Size = Vector3.new(0.731566668, 2.22208261, 2.22208357)
  1945. UnionOperation88.BrickColor = BrickColor.new("Really red")
  1946. UnionOperation88.Material = Enum.Material.Neon
  1947. UnionOperation88.brickColor = BrickColor.new("Really red")
  1948. UnionOperation88.UsePartColor = true
  1949. Part89.Name = "Shatter"
  1950. Part89.Parent = Model63
  1951. Part89.CFrame = CFrame.new(-2.87608433, 233.831253, -5.82238388, 0.000479114155, -0.999585629, -0.0287835505, -0.049765408, 0.0287240595, -0.998347759, 0.998760819, 0.00191074784, -0.0497310162)
  1952. Part89.Orientation = Vector3.new(86.7099991, -149.940002, -60.0099983)
  1953. Part89.Position = Vector3.new(-2.87608433, 233.831253, -5.82238388)
  1954. Part89.Rotation = Vector3.new(92.8499985, -1.64999998, 89.9700012)
  1955. Part89.Color = Color3.new(1, 0, 0)
  1956. Part89.Transparency = 1
  1957. Part89.Size = Vector3.new(5.67866373, 84.2662811, 3.03685927)
  1958. Part89.BackSurface = Enum.SurfaceType.Weld
  1959. Part89.BottomSurface = Enum.SurfaceType.Weld
  1960. Part89.BrickColor = BrickColor.new("Really red")
  1961. Part89.CanCollide = false
  1962. Part89.FrontSurface = Enum.SurfaceType.Weld
  1963. Part89.LeftSurface = Enum.SurfaceType.Weld
  1964. Part89.Material = Enum.Material.Neon
  1965. Part89.Reflectance = 0.5
  1966. Part89.RightSurface = Enum.SurfaceType.Weld
  1967. Part89.TopSurface = Enum.SurfaceType.Weld
  1968. Part89.brickColor = BrickColor.new("Really red")
  1969. Part89.FormFactor = Enum.FormFactor.Symmetric
  1970. Part89.formFactor = Enum.FormFactor.Symmetric
  1971. Script90.Name = "Fade"
  1972. Script90.Parent = Part89
  1973. table.insert(cors,sandbox(Script90,function()
  1974. bin = script.Parent
  1975.  
  1976. function activate(hit)
  1977.     bin.Transparency = 0.2
  1978.     wait(0.01)
  1979.     bin.Transparency = 0.3
  1980.     wait(0.01)
  1981.     bin.Transparency = 0.4
  1982.     wait(0.01)
  1983.     bin.Transparency = 0.5
  1984.     wait(0.01)
  1985.     bin.Transparency = 0.6
  1986.     wait(0.01)
  1987.     bin.Transparency = 0.7
  1988.     wait(0.01)
  1989.     bin.Transparency = 0.8
  1990.     wait(0.01)
  1991.     bin.Transparency = 0.9
  1992.     wait(0.01)
  1993.     bin.Transparency = 1
  1994. end
  1995. script.Parent.Touched:connect(activate)
  1996.  
  1997.  
  1998. end))
  1999. CylinderMesh91.Parent = Part89
  2000. CylinderMesh91.Offset = Vector3.new(0, 150, 0)
  2001. CylinderMesh91.Scale = Vector3.new(1, 10.5, 1)
  2002. Script92.Parent = Part89
  2003. table.insert(cors,sandbox(Script92,function()
  2004. function onTouched(hit)
  2005.     script.Parent.Fire:play()
  2006. end
  2007. script.Parent.Touched:connect(onTouched)
  2008. end))
  2009. Sound93.Name = "Fire"
  2010. Sound93.Parent = Part89
  2011. Sound93.EmitterSize = 1000
  2012. Sound93.MinDistance = 1000
  2013. Sound93.Pitch = 0.60000002384186
  2014. Sound93.PlaybackSpeed = 0.60000002384186
  2015. Sound93.SoundId = "http://www.roblox.com/asset?id=2248511"
  2016. Sound93.Volume = 5
  2017. Script94.Name = "Lava Script"
  2018. Script94.Parent = Part89
  2019. table.insert(cors,sandbox(Script94,function()
  2020. function onTouched(part)
  2021. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  2022. part.Parent.Torso:BreakJoints()
  2023. end
  2024. end
  2025.  
  2026. script.Parent.Touched:connect(onTouched)
  2027. end))
  2028. Script95.Parent = Model63
  2029. table.insert(cors,sandbox(Script95,function()
  2030. game.Lighting.TimeOfDay = "00:00:00"
  2031. end))
  2032. Script96.Parent = Model63
  2033. table.insert(cors,sandbox(Script96,function()
  2034. --Leonlai Fog Script. :D
  2035.  
  2036. game.Lighting.FogStart = 10
  2037. game.Lighting.FogEnd = 2000
  2038. game.Lighting.FogColor = Color3.new(0.4,0,0)
  2039. game.Lighting.TimeOfDay = "00:00"
  2040. end))
  2041. Part97.Name = "Shatter"
  2042. Part97.Parent = Model0
  2043. Part97.CFrame = CFrame.new(266.052429, 167.548935, -2.44083023, -0.00011265956, -1, 9.69858229e-05, 7.37018127e-05, 9.6977521e-05, 1, -1, 0.000112666705, 7.36908842e-05)
  2044. Part97.Orientation = Vector3.new(-90, 90.0099945, 0)
  2045. Part97.Position = Vector3.new(266.052429, 167.548935, -2.44083023)
  2046. Part97.Rotation = Vector3.new(-90, 0.00999999978, 90.0099945)
  2047. Part97.Color = Color3.new(1, 0, 0)
  2048. Part97.Size = Vector3.new(3.53000164, 2.98000002, 22.7300014)
  2049. Part97.Anchored = true
  2050. Part97.BackSurface = Enum.SurfaceType.Weld
  2051. Part97.BottomSurface = Enum.SurfaceType.Weld
  2052. Part97.BrickColor = BrickColor.new("Really red")
  2053. Part97.CanCollide = false
  2054. Part97.CustomPhysicalProperties = 0.699999988, 0.300000012, 0.200000003, 1, 1
  2055. Part97.FrontSurface = Enum.SurfaceType.Weld
  2056. Part97.LeftSurface = Enum.SurfaceType.Weld
  2057. Part97.Material = Enum.Material.Neon
  2058. Part97.Reflectance = 1
  2059. Part97.RightSurface = Enum.SurfaceType.Weld
  2060. Part97.TopSurface = Enum.SurfaceType.Weld
  2061. Part97.brickColor = BrickColor.new("Really red")
  2062. Part97.FormFactor = Enum.FormFactor.Symmetric
  2063. Part97.formFactor = Enum.FormFactor.Symmetric
  2064. Script98.Name = "PlantScript"
  2065. Script98.Parent = Part97
  2066. table.insert(cors,sandbox(Script98,function()
  2067. local Handle = script.Parent
  2068. if Handle.className == "Part" then
  2069.  
  2070.     local Mesh = Handle:FindFirstChild("Plant Mesh")
  2071.     local scaler = -5
  2072.  
  2073.     Handle.Friction = 1
  2074.     BodyGyro = Instance.new("BodyGyro")
  2075.     BodyGyro.Parent = Handle
  2076.     BodyGyro.cframe = Handle.CFrame
  2077.     BodyGyro.maxTorque = Vector3.new(1000,1000,1000)
  2078.     BodyGyro.P = 1000
  2079.     BodyGyro.D = 50
  2080.  
  2081.     BodyPos = Instance.new("BodyPosition")
  2082.     BodyPos.position = Handle.Position
  2083.     BodyPos.P = 1000
  2084.     BodyPos.D = 500
  2085.     BodyPos.maxForce = Vector3.new(1000,1000,1000)
  2086.  
  2087.     while true do
  2088.  
  2089.         wait(0.00000000000001)
  2090.         BodyPos.Parent = Handle
  2091.         Mesh.Scale = Mesh.Scale + Vector3.new(scaler,scaler,scaler)
  2092.         BodyPos.position = BodyPos.position + Vector3.new(0,0.7,0)
  2093.  
  2094.     end
  2095.  
  2096. end
  2097.  
  2098. end))
  2099. SpecialMesh99.Name = "Plant Mesh"
  2100. SpecialMesh99.Parent = Part97
  2101. SpecialMesh99.MeshType = Enum.MeshType.Sphere
  2102. Script100.Parent = Part97
  2103. table.insert(cors,sandbox(Script100,function()
  2104. while true do
  2105. script.Parent.Transparency = 0
  2106. wait (0.5)
  2107. script.Parent.Transparency = .05
  2108. wait (.1)
  2109. script.Parent.Transparency = .1
  2110. wait (.1)
  2111. script.Parent.Transparency = .15
  2112. wait (.1)
  2113. script.Parent.Transparency = .2
  2114. wait (.1)
  2115. script.Parent.Transparency = .25
  2116. wait (.1)
  2117. script.Parent.Transparency = .3
  2118. wait (.1)
  2119. script.Parent.Transparency = .35
  2120. wait (.1)
  2121. script.Parent.Transparency = .4
  2122. wait (.1)
  2123. script.Parent.Transparency = .45
  2124. wait (.1)
  2125. script.Parent.Transparency = .5
  2126. wait (.1)
  2127. script.Parent.Transparency = .55
  2128. wait (.1)
  2129. script.Parent.Transparency = .6
  2130. wait (.1)
  2131. script.Parent.Transparency = .65
  2132. wait (.1)
  2133. script.Parent.Transparency = .7
  2134. wait (.1)
  2135. script.Parent.Transparency = .75
  2136. wait (.1)
  2137. script.Parent.Transparency = .8
  2138. wait (.1)
  2139. script.Parent.Transparency = .85
  2140. wait (.1)
  2141. script.Parent.Transparency = .9
  2142. wait (.1)
  2143. script.Parent.Transparency = 1.95
  2144. wait (.1)
  2145. script.Parent.CanCollide = false
  2146. wait (100)
  2147. script.Parent.Transparency = .95
  2148. wait (.1)
  2149. script.Parent.Transparency = .90
  2150. wait (.1)
  2151. script.Parent.Transparency = .85
  2152. wait (.1)
  2153. script.Parent.Transparency = .80
  2154. wait (.1)
  2155. script.Parent.Transparency = .75
  2156. wait (.1)
  2157. script.Parent.Transparency = .70
  2158. wait (.1)
  2159. script.Parent.Transparency = .65
  2160. wait (.1)
  2161. script.Parent.Transparency = .60
  2162. wait (.1)
  2163. script.Parent.Transparency = .55
  2164. wait (.1)
  2165. script.Parent.Transparency = .50
  2166. wait (.1)
  2167. script.Parent.Transparency = .45
  2168. wait (.1)
  2169. script.Parent.Transparency = .40
  2170. wait (.1)
  2171. script.Parent.Transparency = .35
  2172. wait (.1)
  2173. script.Parent.Transparency = .30
  2174. wait (.1)
  2175. script.Parent.Transparency = .25
  2176. wait (.1)
  2177. script.Parent.Transparency = .20
  2178. wait (.1)
  2179. script.Parent.Transparency = .15
  2180. wait (.1)
  2181. script.Parent.Transparency = .10
  2182. wait (.1)
  2183. script.Parent.Transparency = .05
  2184. wait (.1)
  2185. script.Parent.Transparency = 0
  2186. wait (.1)
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224. end
  2225.  
  2226. end))
  2227. Sound101.Parent = Part97
  2228. Sound101.EmitterSize = 50000
  2229. Sound101.MinDistance = 50000
  2230. Sound101.Playing = true
  2231. Sound101.RollOffMode = Enum.RollOffMode.Linear
  2232. Sound101.SoundId = "rbxassetid://165969964"
  2233. Sound101.Volume = 10
  2234. Sound102.Parent = Part97
  2235. Sound102.EmitterSize = 50000
  2236. Sound102.MinDistance = 50000
  2237. Sound102.Playing = true
  2238. Sound102.RollOffMode = Enum.RollOffMode.Linear
  2239. Sound102.SoundId = "rbxassetid://264080811"
  2240. Sound102.Volume = 10
  2241. Texture103.Parent = Part97
  2242. Texture103.Texture = "rbxasset://textures/water/normal_21.dds"
  2243. Texture103.Transparency = 0.30000001192093
  2244. Texture103.Color3 = Color3.new(0.666667, 0, 0)
  2245. Texture103.StudsPerTileU = 1000
  2246. Texture103.StudsPerTileV = 1000
  2247. Texture104.Parent = Part97
  2248. Texture104.Texture = "rbxasset://textures/water/normal_21.dds"
  2249. Texture104.Transparency = 0.30000001192093
  2250. Texture104.Face = Enum.NormalId.Back
  2251. Texture104.Color3 = Color3.new(0.666667, 0, 0)
  2252. Texture104.StudsPerTileU = 1000
  2253. Texture104.StudsPerTileV = 1000
  2254. Texture105.Parent = Part97
  2255. Texture105.Texture = "rbxasset://textures/water/normal_21.dds"
  2256. Texture105.Transparency = 0.30000001192093
  2257. Texture105.Face = Enum.NormalId.Left
  2258. Texture105.Color3 = Color3.new(0.666667, 0, 0)
  2259. Texture105.StudsPerTileU = 1000
  2260. Texture105.StudsPerTileV = 1000
  2261. Texture106.Parent = Part97
  2262. Texture106.Texture = "rbxasset://textures/water/normal_21.dds"
  2263. Texture106.Transparency = 0.30000001192093
  2264. Texture106.Face = Enum.NormalId.Right
  2265. Texture106.Color3 = Color3.new(0.666667, 0, 0)
  2266. Texture106.StudsPerTileU = 1000
  2267. Texture106.StudsPerTileV = 1000
  2268. Texture107.Parent = Part97
  2269. Texture107.Texture = "rbxasset://textures/water/normal_21.dds"
  2270. Texture107.Transparency = 0.30000001192093
  2271. Texture107.Face = Enum.NormalId.Top
  2272. Texture107.Color3 = Color3.new(0.666667, 0, 0)
  2273. Texture107.StudsPerTileU = 1000
  2274. Texture107.StudsPerTileV = 1000
  2275. Texture108.Parent = Part97
  2276. Texture108.Texture = "rbxasset://textures/water/normal_21.dds"
  2277. Texture108.Transparency = 0.30000001192093
  2278. Texture108.Face = Enum.NormalId.Bottom
  2279. Texture108.Color3 = Color3.new(0.666667, 0, 0)
  2280. Texture108.StudsPerTileU = 1000
  2281. Texture108.StudsPerTileV = 1000
  2282. Sound109.Parent = Part97
  2283. Sound109.EmitterSize = 3000
  2284. Sound109.MinDistance = 3000
  2285. Sound109.Playing = true
  2286. Sound109.SoundId = "rbxassetid://165969964"
  2287. Sound109.Volume = 10
  2288. Sound110.Parent = Part97
  2289. Sound110.EmitterSize = 2500
  2290. Sound110.MinDistance = 2500
  2291. Sound110.Pitch = 0.30000001192093
  2292. Sound110.PlaybackSpeed = 0.30000001192093
  2293. Sound110.Playing = true
  2294. Sound110.SoundId = "rbxassetid://462606062"
  2295. Sound110.Volume = 10
  2296. Part111.Name = "Shatter"
  2297. Part111.Parent = Model0
  2298. Part111.CFrame = CFrame.new(266.052246, 166.648941, -2.44081497, -0.00011265956, -1, 9.69858229e-05, 7.37018127e-05, 9.6977521e-05, 1, -1, 0.000112666705, 7.36908842e-05)
  2299. Part111.Orientation = Vector3.new(-90, 90.0099945, 0)
  2300. Part111.Position = Vector3.new(266.052246, 166.648941, -2.44081497)
  2301. Part111.Rotation = Vector3.new(-90, 0.00999999978, 90.0099945)
  2302. Part111.Color = Color3.new(1, 0, 0)
  2303. Part111.Size = Vector3.new(3.53000164, 2.98000002, 0.130000323)
  2304. Part111.Anchored = true
  2305. Part111.BackSurface = Enum.SurfaceType.Weld
  2306. Part111.BottomSurface = Enum.SurfaceType.Weld
  2307. Part111.BrickColor = BrickColor.new("Really red")
  2308. Part111.CanCollide = false
  2309. Part111.CustomPhysicalProperties = 0.699999988, 0.300000012, 0.200000003, 1, 1
  2310. Part111.FrontSurface = Enum.SurfaceType.Weld
  2311. Part111.LeftSurface = Enum.SurfaceType.Weld
  2312. Part111.Material = Enum.Material.Neon
  2313. Part111.Reflectance = 1
  2314. Part111.RightSurface = Enum.SurfaceType.Weld
  2315. Part111.TopSurface = Enum.SurfaceType.Weld
  2316. Part111.brickColor = BrickColor.new("Really red")
  2317. Part111.FormFactor = Enum.FormFactor.Symmetric
  2318. Part111.formFactor = Enum.FormFactor.Symmetric
  2319. Script112.Name = "PlantScript"
  2320. Script112.Parent = Part111
  2321. table.insert(cors,sandbox(Script112,function()
  2322. local Handle = script.Parent
  2323. if Handle.className == "Part" then
  2324.  
  2325.     local Mesh = Handle:FindFirstChild("Plant Mesh")
  2326.     local scaler = -15
  2327.  
  2328.     Handle.Friction = 1
  2329.     BodyGyro = Instance.new("BodyGyro")
  2330.     BodyGyro.Parent = Handle
  2331.     BodyGyro.cframe = Handle.CFrame
  2332.     BodyGyro.maxTorque = Vector3.new(1000,1000,1000)
  2333.     BodyGyro.P = 1000
  2334.     BodyGyro.D = 50
  2335.  
  2336.     BodyPos = Instance.new("BodyPosition")
  2337.     BodyPos.position = Handle.Position
  2338.     BodyPos.P = 1000
  2339.     BodyPos.D = 500
  2340.     BodyPos.maxForce = Vector3.new(1000,1000,1000)
  2341.  
  2342.     while true do
  2343.  
  2344.         wait(0.00000000000001)
  2345.         BodyPos.Parent = Handle
  2346.         Mesh.Scale = Mesh.Scale + Vector3.new(scaler,scaler,scaler)
  2347.         BodyPos.position = BodyPos.position + Vector3.new(0,0.7,0)
  2348.  
  2349.     end
  2350.  
  2351. end
  2352.  
  2353. end))
  2354. SpecialMesh113.Name = "Plant Mesh"
  2355. SpecialMesh113.Parent = Part111
  2356. SpecialMesh113.MeshType = Enum.MeshType.Sphere
  2357. Script114.Parent = Part111
  2358. table.insert(cors,sandbox(Script114,function()
  2359. while true do
  2360. script.Parent.Transparency = 0
  2361. wait (1)
  2362. script.Parent.Transparency = .05
  2363. wait (.1)
  2364. script.Parent.Transparency = .1
  2365. wait (.1)
  2366. script.Parent.Transparency = .15
  2367. wait (.1)
  2368. script.Parent.Transparency = .2
  2369. wait (.1)
  2370. script.Parent.Transparency = .25
  2371. wait (.1)
  2372. script.Parent.Transparency = .3
  2373. wait (.1)
  2374. script.Parent.Transparency = .35
  2375. wait (.1)
  2376. script.Parent.Transparency = .4
  2377. wait (.1)
  2378. script.Parent.Transparency = .45
  2379. wait (.1)
  2380. script.Parent.Transparency = .5
  2381. wait (.1)
  2382. script.Parent.Transparency = .55
  2383. wait (.1)
  2384. script.Parent.Transparency = .6
  2385. wait (.1)
  2386. script.Parent.Transparency = .65
  2387. wait (.1)
  2388. script.Parent.Transparency = .7
  2389. wait (.1)
  2390. script.Parent.Transparency = .75
  2391. wait (.1)
  2392. script.Parent.Transparency = .8
  2393. wait (.1)
  2394. script.Parent.Transparency = .85
  2395. wait (.1)
  2396. script.Parent.Transparency = .9
  2397. wait (.1)
  2398. script.Parent.Transparency = 1.95
  2399. wait (.1)
  2400. script.Parent.CanCollide = false
  2401. wait (100)
  2402. script.Parent.Transparency = .95
  2403. wait (.1)
  2404. script.Parent.Transparency = .90
  2405. wait (.1)
  2406. script.Parent.Transparency = .85
  2407. wait (.1)
  2408. script.Parent.Transparency = .80
  2409. wait (.1)
  2410. script.Parent.Transparency = .75
  2411. wait (.1)
  2412. script.Parent.Transparency = .70
  2413. wait (.1)
  2414. script.Parent.Transparency = .65
  2415. wait (.1)
  2416. script.Parent.Transparency = .60
  2417. wait (.1)
  2418. script.Parent.Transparency = .55
  2419. wait (.1)
  2420. script.Parent.Transparency = .50
  2421. wait (.1)
  2422. script.Parent.Transparency = .45
  2423. wait (.1)
  2424. script.Parent.Transparency = .40
  2425. wait (.1)
  2426. script.Parent.Transparency = .35
  2427. wait (.1)
  2428. script.Parent.Transparency = .30
  2429. wait (.1)
  2430. script.Parent.Transparency = .25
  2431. wait (.1)
  2432. script.Parent.Transparency = .20
  2433. wait (.1)
  2434. script.Parent.Transparency = .15
  2435. wait (.1)
  2436. script.Parent.Transparency = .10
  2437. wait (.1)
  2438. script.Parent.Transparency = .05
  2439. wait (.1)
  2440. script.Parent.Transparency = 0
  2441. wait (.1)
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479. end
  2480.  
  2481. end))
  2482. Texture115.Parent = Part111
  2483. Texture115.Texture = "rbxasset://textures/water/normal_21.dds"
  2484. Texture115.Transparency = 0.30000001192093
  2485. Texture115.Color3 = Color3.new(0.666667, 0, 0)
  2486. Texture115.StudsPerTileU = 1000
  2487. Texture115.StudsPerTileV = 1000
  2488. Texture116.Parent = Part111
  2489. Texture116.Texture = "rbxasset://textures/water/normal_21.dds"
  2490. Texture116.Transparency = 0.30000001192093
  2491. Texture116.Face = Enum.NormalId.Back
  2492. Texture116.Color3 = Color3.new(0.666667, 0, 0)
  2493. Texture116.StudsPerTileU = 1000
  2494. Texture116.StudsPerTileV = 1000
  2495. Texture117.Parent = Part111
  2496. Texture117.Texture = "rbxasset://textures/water/normal_21.dds"
  2497. Texture117.Transparency = 0.30000001192093
  2498. Texture117.Face = Enum.NormalId.Left
  2499. Texture117.Color3 = Color3.new(0.666667, 0, 0)
  2500. Texture117.StudsPerTileU = 1000
  2501. Texture117.StudsPerTileV = 1000
  2502. Texture118.Parent = Part111
  2503. Texture118.Texture = "rbxasset://textures/water/normal_21.dds"
  2504. Texture118.Transparency = 0.30000001192093
  2505. Texture118.Face = Enum.NormalId.Right
  2506. Texture118.Color3 = Color3.new(0.666667, 0, 0)
  2507. Texture118.StudsPerTileU = 1000
  2508. Texture118.StudsPerTileV = 1000
  2509. Texture119.Parent = Part111
  2510. Texture119.Texture = "rbxasset://textures/water/normal_21.dds"
  2511. Texture119.Transparency = 0.30000001192093
  2512. Texture119.Face = Enum.NormalId.Top
  2513. Texture119.Color3 = Color3.new(0.666667, 0, 0)
  2514. Texture119.StudsPerTileU = 1000
  2515. Texture119.StudsPerTileV = 1000
  2516. Texture120.Parent = Part111
  2517. Texture120.Texture = "rbxasset://textures/water/normal_21.dds"
  2518. Texture120.Transparency = 0.30000001192093
  2519. Texture120.Face = Enum.NormalId.Bottom
  2520. Texture120.Color3 = Color3.new(0.666667, 0, 0)
  2521. Texture120.StudsPerTileU = 1000
  2522. Texture120.StudsPerTileV = 1000
  2523. Part121.Name = "Sky"
  2524. Part121.Parent = Model0
  2525. Part121.CFrame = CFrame.new(271.080505, 25.8172607, -31.0029831, -1, -8.53250094e-05, -3.61879065e-05, -8.53250167e-05, 1, 2.29678975e-07, 3.61878883e-05, 2.32766723e-07, -1)
  2526. Part121.Orientation = Vector3.new(0, -180, 0)
  2527. Part121.Position = Vector3.new(271.080505, 25.8172607, -31.0029831)
  2528. Part121.Rotation = Vector3.new(-180, 0, 180)
  2529. Part121.Size = Vector3.new(2, 2, 2)
  2530. Part121.Anchored = true
  2531. Part121.Locked = true
  2532. Part121.FormFactor = Enum.FormFactor.Symmetric
  2533. Part121.formFactor = Enum.FormFactor.Symmetric
  2534. SpecialMesh122.Parent = Part121
  2535. SpecialMesh122.MeshId = "http://www.roblox.com/asset/?id=1527559"
  2536. SpecialMesh122.Scale = Vector3.new(-3000, -1500, -3000)
  2537. SpecialMesh122.VertexColor = Vector3.new(0.879999995, 0, 0)
  2538. SpecialMesh122.TextureId = "http://www.roblox.com/asset/?id=1529455"
  2539. SpecialMesh122.MeshType = Enum.MeshType.FileMesh
  2540. Model123.Name = "Blaster"
  2541. Model123.Parent = Model0
  2542. Model124.Name = "Top laser"
  2543. Model124.Parent = Model123
  2544. Part125.Name = "Shatter"
  2545. Part125.Parent = Model124
  2546. Part125.CFrame = CFrame.new(-209.927994, 140.251923, 65.1207047, 5.14824933e-05, -1, 0.000131111578, 0.000206255281, -0.000131100955, -1, 1, 5.1509538e-05, 0.000206248529)
  2547. Part125.Orientation = Vector3.new(90, -90, 0)
  2548. Part125.Position = Vector3.new(-209.927994, 140.251923, 65.1207047)
  2549. Part125.Rotation = Vector3.new(89.9899979, 0.00999999978, 90)
  2550. Part125.Color = Color3.new(1, 0, 0)
  2551. Part125.Transparency = 1
  2552. Part125.Size = Vector3.new(19.677372, 481.386078, 19.4694805)
  2553. Part125.BackSurface = Enum.SurfaceType.Weld
  2554. Part125.BottomSurface = Enum.SurfaceType.Weld
  2555. Part125.BrickColor = BrickColor.new("Really red")
  2556. Part125.CanCollide = false
  2557. Part125.FrontSurface = Enum.SurfaceType.Weld
  2558. Part125.LeftSurface = Enum.SurfaceType.Weld
  2559. Part125.Material = Enum.Material.Neon
  2560. Part125.Reflectance = 0.5
  2561. Part125.RightSurface = Enum.SurfaceType.Weld
  2562. Part125.TopSurface = Enum.SurfaceType.Weld
  2563. Part125.brickColor = BrickColor.new("Really red")
  2564. Part125.FormFactor = Enum.FormFactor.Symmetric
  2565. Part125.formFactor = Enum.FormFactor.Symmetric
  2566. Script126.Name = "Fade"
  2567. Script126.Parent = Part125
  2568. table.insert(cors,sandbox(Script126,function()
  2569. bin = script.Parent
  2570.  
  2571. function activate(hit)
  2572.     bin.Transparency = 0.2
  2573.     wait(0.01)
  2574.     bin.Transparency = 0.3
  2575.     wait(0.01)
  2576.     bin.Transparency = 0.4
  2577.     wait(0.01)
  2578.     bin.Transparency = 0.5
  2579.     wait(0.01)
  2580.     bin.Transparency = 0.6
  2581.     wait(0.01)
  2582.     bin.Transparency = 0.7
  2583.     wait(0.01)
  2584.     bin.Transparency = 0.8
  2585.     wait(0.01)
  2586.     bin.Transparency = 0.9
  2587.     wait(0.01)
  2588.     bin.Transparency = 1
  2589. end
  2590. script.Parent.Touched:connect(activate)
  2591.  
  2592.  
  2593. end))
  2594. CylinderMesh127.Parent = Part125
  2595. CylinderMesh127.Scale = Vector3.new(1, 2, 1)
  2596. Script128.Parent = Part125
  2597. table.insert(cors,sandbox(Script128,function()
  2598. function onTouched(hit)
  2599.     script.Parent.Sound:play()
  2600. end
  2601. script.Parent.Touched:connect(onTouched)
  2602. end))
  2603. Script129.Name = "Lava Script"
  2604. Script129.Parent = Part125
  2605. table.insert(cors,sandbox(Script129,function()
  2606. function onTouched(part)
  2607. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  2608. part.Parent.Torso:BreakJoints()
  2609. end
  2610. end
  2611.  
  2612. script.Parent.Touched:connect(onTouched)
  2613. end))
  2614. Sound130.Parent = Part125
  2615. Sound130.EmitterSize = 1000
  2616. Sound130.MinDistance = 1000
  2617. Sound130.SoundId = "rbxassetid://245537790"
  2618. Sound130.Volume = 5
  2619. UnionOperation131.Name = "Head"
  2620. UnionOperation131.Parent = Model123
  2621. UnionOperation131.CFrame = CFrame.new(276.505615, 160.19072, 64.6878738, -1.80344014e-05, 0.707137406, -0.707076192, 1.35542832e-05, 0.707076192, 0.707137406, 1, 3.16888872e-06, -2.23364368e-05)
  2622. UnionOperation131.Orientation = Vector3.new(-45, -90, 0)
  2623. UnionOperation131.Position = Vector3.new(276.505615, 160.19072, 64.6878738)
  2624. UnionOperation131.Rotation = Vector3.new(-90, -45, -90)
  2625. UnionOperation131.Color = Color3.new(0.639216, 0.635294, 0.647059)
  2626. UnionOperation131.Size = Vector3.new(32.5082893, 56.5730247, 53.7166595)
  2627. UnionOperation131.Anchored = true
  2628. UnionOperation131.BrickColor = BrickColor.new("Medium stone grey")
  2629. UnionOperation131.CanCollide = false
  2630. UnionOperation131.brickColor = BrickColor.new("Medium stone grey")
  2631. UnionOperation131.UsePartColor = true
  2632. UnionOperation132.Name = "Head"
  2633. UnionOperation132.Parent = Model123
  2634. UnionOperation132.CFrame = CFrame.new(298.768677, 145.652023, 69.7866287, -0.000111436362, 0.258685172, -0.965961695, 0.000496955938, 0.965961695, 0.258685052, 0.999999881, -0.000451213506, -0.000236198364)
  2635. UnionOperation132.Orientation = Vector3.new(-14.9899998, -90.0099945, 0.0299999993)
  2636. UnionOperation132.Position = Vector3.new(298.768677, 145.652023, 69.7866287)
  2637. UnionOperation132.Rotation = Vector3.new(-90.0499954, -75.0100021, -90.0199966)
  2638. UnionOperation132.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  2639. UnionOperation132.Transparency = 1
  2640. UnionOperation132.Size = Vector3.new(4.89833546, 4.32207441, 6.2466197)
  2641. UnionOperation132.BrickColor = BrickColor.new("Really black")
  2642. UnionOperation132.CanCollide = false
  2643. UnionOperation132.Material = Enum.Material.Cobblestone
  2644. UnionOperation132.brickColor = BrickColor.new("Really black")
  2645. UnionOperation132.UsePartColor = true
  2646. BodyPosition133.Parent = UnionOperation132
  2647. BodyPosition133.Position = Vector3.new(0, 200, 0)
  2648. BodyPosition133.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  2649. BodyPosition133.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  2650. BodyPosition133.position = Vector3.new(0, 200, 0)
  2651. ParticleEmitter134.Name = "Fire"
  2652. ParticleEmitter134.Parent = UnionOperation132
  2653. ParticleEmitter134.Speed = NumberRange.new(100, 100)
  2654. ParticleEmitter134.Rotation = NumberRange.new(-45, -45)
  2655. ParticleEmitter134.Color = ColorSequence.new(Color3.new(0.666667, 0, 0),Color3.new(1, 0, 0))
  2656. ParticleEmitter134.LightEmission = 1
  2657. ParticleEmitter134.Texture = "http://www.roblox.com/asset/?id=241936182"
  2658. ParticleEmitter134.Transparency = NumberSequence.new(0,0.28749996423721,1)
  2659. ParticleEmitter134.ZOffset = 1
  2660. ParticleEmitter134.Size = NumberSequence.new(10,0)
  2661. ParticleEmitter134.EmissionDirection = Enum.NormalId.Front
  2662. ParticleEmitter134.Lifetime = NumberRange.new(0.60000002384186, 0.60000002384186)
  2663. ParticleEmitter134.LockedToPart = true
  2664. ParticleEmitter134.Rate = 250
  2665. ParticleEmitter134.SpreadAngle = Vector2.new(50, 50)
  2666. ParticleEmitter134.VelocitySpread = 50
  2667. UnionOperation135.Name = "Jaws"
  2668. UnionOperation135.Parent = Model123
  2669. UnionOperation135.CFrame = CFrame.new(267.765869, 144.297729, 64.7221909, -1.81461492e-05, 4.86373538e-05, -1, 1.35393748e-05, 1, 4.86371064e-05, 1, -1.35384926e-05, -1.81468076e-05)
  2670. UnionOperation135.Orientation = Vector3.new(0, -90, 0)
  2671. UnionOperation135.Position = Vector3.new(267.765869, 144.297729, 64.7221909)
  2672. UnionOperation135.Rotation = Vector3.new(0, -90, 0)
  2673. UnionOperation135.Color = Color3.new(0.639216, 0.635294, 0.647059)
  2674. UnionOperation135.Size = Vector3.new(46.4771423, 52.6358223, 53.1223793)
  2675. UnionOperation135.Anchored = true
  2676. UnionOperation135.BrickColor = BrickColor.new("Medium stone grey")
  2677. UnionOperation135.CanCollide = false
  2678. UnionOperation135.brickColor = BrickColor.new("Medium stone grey")
  2679. UnionOperation135.UsePartColor = true
  2680. Part136.Parent = Model123
  2681. Part136.CFrame = CFrame.new(298.517029, 144.009369, 67.1627731, 4.17202064e-05, 0.000191151965, 1, -7.77918976e-05, 1, -0.00019114872, -1, -7.77839232e-05, 4.17350784e-05)
  2682. Part136.Orientation = Vector3.new(0.00999999978, 90, 0)
  2683. Part136.Position = Vector3.new(298.517029, 144.009369, 67.1627731)
  2684. Part136.Rotation = Vector3.new(0, 90, 0)
  2685. Part136.Color = Color3.new(0, 1, 0)
  2686. Part136.Transparency = 1
  2687. Part136.Size = Vector3.new(5.24247837, 2.53084993, 18.6198387)
  2688. Part136.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2689. Part136.BrickColor = BrickColor.new("Lime green")
  2690. Part136.CanCollide = false
  2691. Part136.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2692. Part136.Material = Enum.Material.Ice
  2693. Part136.brickColor = BrickColor.new("Lime green")
  2694. Part136.FormFactor = Enum.FormFactor.Custom
  2695. Part136.formFactor = Enum.FormFactor.Custom
  2696. Humanoid137.Parent = Part136
  2697. Humanoid137.Health = 0
  2698. Humanoid137.MaxHealth = 0
  2699. Humanoid137.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  2700. Humanoid137.WalkSpeed = 10
  2701. Humanoid137.maxHealth = 0
  2702. Script138.Name = "Vaccine"
  2703. Script138.Parent = Part136
  2704. table.insert(cors,sandbox(Script138,function()
  2705. function spread() -- created by culinwino3000
  2706. local stuff = game.Workspace:GetChildren()
  2707. for i = 1, #stuff do
  2708. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  2709. local clone = script:clone()
  2710. clone.Parent = stuff[i]
  2711. end
  2712. end
  2713. end
  2714.  
  2715. while true do
  2716. wait(.1)
  2717. spread()
  2718. end
  2719.  
  2720. function GetAllItems(mdl)
  2721. local objs = {}
  2722. function Search(obj)
  2723. if obj~=workspace then
  2724. table.insert(objs,obj)
  2725. end
  2726. if #obj:GetChildren() > 0 then
  2727. for i, v in ipairs(obj:GetChildren()) do
  2728. Search(v)
  2729. end
  2730. end
  2731. end
  2732. Search(mdl)
  2733. return objs
  2734. end
  2735.  
  2736.  
  2737.  
  2738. for i, v in ipairs(GetAllItems(workspace)) do
  2739. if v.className == "Script" then
  2740. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  2741. v.Parent = game.Lighting --Just in case it has a removal prevention.
  2742. t = Instance.new("ObjectValue")
  2743. t.Name = "IsAVirus"
  2744. t.Parent = v
  2745. end
  2746. end
  2747. end
  2748.  
  2749. for i, v in ipairs(game.Lighting:GetChildren()) do
  2750. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  2751. v:remove()
  2752. end
  2753. end
  2754.  
  2755.  
  2756. print("Virus debugged! All clean!")
  2757. end))
  2758. Script139.Parent = Part136
  2759. table.insert(cors,sandbox(Script139,function()
  2760. bin = script.Parent
  2761.  
  2762. function move(target)
  2763.     local dir = (target.Position - bin.Position).unit
  2764.     local spawnPos = bin.Position
  2765.     local pos = spawnPos + (dir * 1)
  2766.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  2767.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  2768. end
  2769.  
  2770. function moveTo(target)
  2771.     bin.BodyPosition.position = target.Position
  2772.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  2773. end
  2774.  
  2775. function findNearestTorso(pos)
  2776.     local list = game.Workspace:GetChildren()
  2777.     local torso = nil
  2778.     local dist = 10000000000000000
  2779.     local temp = nil
  2780.     local human = nil
  2781.     local temp2 = nil
  2782.     for x = 1, #list do
  2783.         temp2 = list[x]
  2784.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  2785.             temp = temp2:findFirstChild("Torso")
  2786.             human = temp2:findFirstChild("Humanoid")
  2787.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  2788.                 if (temp.Position - pos).magnitude < dist then
  2789.                     torso = temp
  2790.                     dist = (temp.Position - pos).magnitude
  2791.                 end
  2792.             end
  2793.         end
  2794.     end
  2795.     return torso
  2796. end
  2797.  
  2798. function shoot(pos)
  2799.     dir = (pos - bin.CFrame.p).unit
  2800.     for i = 1, 50 do
  2801.         local ex = Instance.new("Explosion")
  2802.         ex.BlastRadius = 1
  2803.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  2804.         ex.Parent = game.Workspace
  2805.     end
  2806. end
  2807.  
  2808. function shootAt(torso)
  2809.     local dir = (torso.Position - bin.Position).unit
  2810.     local spawnPos = bin.Position
  2811.     local pos = spawnPos + (dir * 1)
  2812.     shoot(pos)
  2813. end
  2814.  
  2815. while true do
  2816.     local torso = findNearestTorso(bin.Position)
  2817.     if torso~=nil then
  2818.         move(torso)
  2819.         moveTo(torso)
  2820.     end
  2821.     wait()
  2822. end
  2823.  
  2824. end))
  2825. Script140.Parent = Part136
  2826. table.insert(cors,sandbox(Script140,function()
  2827. function onTouched(part)
  2828.     local h = part.Parent:findFirstChild("Humanoid")
  2829.     if h~=nil then
  2830.         h.Health = h.Health 100
  2831.         wait(1)
  2832.     end
  2833. end
  2834.  
  2835. script.Parent.Touched:connect(onTouched)
  2836.  
  2837. end))
  2838. NumberValue141.Name = "Speed"
  2839. NumberValue141.Parent = Part136
  2840. NumberValue141.Value = 1000
  2841. BodyGyro142.Parent = Part136
  2842. BodyGyro142.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  2843. BodyGyro142.MaxTorque = Vector3.new(9000, 9000, 9000)
  2844. BodyGyro142.maxTorque = Vector3.new(9000, 9000, 9000)
  2845. BodyGyro142.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  2846. BodyPosition143.Parent = Part136
  2847. BodyPosition143.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  2848. BodyPosition143.MaxForce = Vector3.new(6000, 6000, 6000)
  2849. BodyPosition143.maxForce = Vector3.new(6000, 6000, 6000)
  2850. BodyPosition143.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  2851. Script144.Name = "qPerfectionWeld"
  2852. Script144.Parent = Model123
  2853. table.insert(cors,sandbox(Script144,function()
  2854. -- Created by Quenty (@Quenty, follow me on twitter).
  2855. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  2856. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  2857.  
  2858. --[[ INSTRUCTIONS
  2859. - Place in the model
  2860. - Make sure model is anchored
  2861. - That's it. It will weld the model and all children.
  2862.  
  2863. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2864. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2865. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2866. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2867. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2868. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2869. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2870. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2871.  
  2872. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  2873. ]]
  2874.  
  2875. --[[ DOCUMENTATION
  2876. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  2877. - Will work in PBS servers
  2878. - Will work as long as it starts out with the part anchored
  2879. - Stores the relative CFrame as a CFrame value
  2880. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  2881. - Utilizes a recursive algorith to find all parts in the model
  2882. - Will reweld on script reparent if the script is initially parented to a tool.
  2883. - Welds as fast as possible
  2884. ]]
  2885.  
  2886. -- qPerfectionWeld.lua
  2887. -- Created 10/6/2014
  2888. -- Author: Quenty
  2889. -- Version 1.0.3
  2890.  
  2891. -- Updated 10/14/2014 - Updated to 1.0.1
  2892. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  2893.  
  2894. -- Updated 10/14/2014 - Updated to 1.0.2
  2895. --- Fixed bug fix.
  2896.  
  2897. -- Updated 10/14/2014 - Updated to 1.0.3
  2898. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  2899.  
  2900. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  2901.  
  2902.  
  2903. local function CallOnChildren(Instance, FunctionToCall)
  2904.     -- Calls a function on each of the children of a certain object, using recursion.  
  2905.  
  2906.     FunctionToCall(Instance)
  2907.  
  2908.     for _, Child in next, Instance:GetChildren() do
  2909.         CallOnChildren(Child, FunctionToCall)
  2910.     end
  2911. end
  2912.  
  2913. local function GetNearestParent(Instance, ClassName)
  2914.     -- Returns the nearest parent of a certain class, or returns nil
  2915.  
  2916.     local Ancestor = Instance
  2917.     repeat
  2918.         Ancestor = Ancestor.Parent
  2919.         if Ancestor == nil then
  2920.             return nil
  2921.         end
  2922.     until Ancestor:IsA(ClassName)
  2923.  
  2924.     return Ancestor
  2925. end
  2926.  
  2927. local function GetBricks(StartInstance)
  2928.     local List = {}
  2929.  
  2930.     -- if StartInstance:IsA("BasePart") then
  2931.     --  List[#List+1] = StartInstance
  2932.     -- end
  2933.  
  2934.     CallOnChildren(StartInstance, function(Item)
  2935.         if Item:IsA("BasePart") then
  2936.             List[#List+1] = Item;
  2937.         end
  2938.     end)
  2939.  
  2940.     return List
  2941. end
  2942.  
  2943. local function Modify(Instance, Values)
  2944.     -- Modifies an Instance by using a table.  
  2945.  
  2946.     assert(type(Values) == "table", "Values is not a table");
  2947.  
  2948.     for Index, Value in next, Values do
  2949.         if type(Index) == "number" then
  2950.             Value.Parent = Instance
  2951.         else
  2952.             Instance[Index] = Value
  2953.         end
  2954.     end
  2955.     return Instance
  2956. end
  2957.  
  2958. local function Make(ClassType, Properties)
  2959.     -- Using a syntax hack to create a nice way to Make new items.  
  2960.  
  2961.     return Modify(Instance.new(ClassType), Properties)
  2962. end
  2963.  
  2964. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  2965. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  2966.  
  2967. local function HasWheelJoint(Part)
  2968.     for _, SurfaceName in pairs(Surfaces) do
  2969.         for _, HingSurfaceName in pairs(HingSurfaces) do
  2970.             if Part[SurfaceName].Name == HingSurfaceName then
  2971.                 return true
  2972.             end
  2973.         end
  2974.     end
  2975.    
  2976.     return false
  2977. end
  2978.  
  2979. local function ShouldBreakJoints(Part)
  2980.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  2981.     --  definitely some edge cases.
  2982.  
  2983.     if NEVER_BREAK_JOINTS then
  2984.         return false
  2985.     end
  2986.    
  2987.     if HasWheelJoint(Part) then
  2988.         return false
  2989.     end
  2990.    
  2991.     local Connected = Part:GetConnectedParts()
  2992.    
  2993.     if #Connected == 1 then
  2994.         return false
  2995.     end
  2996.    
  2997.     for _, Item in pairs(Connected) do
  2998.         if HasWheelJoint(Item) then
  2999.             return false
  3000.         elseif not Item:IsDescendantOf(script.Parent) then
  3001.             return false
  3002.         end
  3003.     end
  3004.    
  3005.     return true
  3006. end
  3007.  
  3008. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  3009.     --- Weld's 2 parts together
  3010.     -- @param Part0 The first part
  3011.     -- @param Part1 The second part (Dependent part most of the time).
  3012.     -- @param [JointType] The type of joint. Defaults to weld.
  3013.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  3014.     -- @return The weld created.
  3015.  
  3016.     JointType = JointType or "Weld"
  3017.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  3018.    
  3019.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  3020.     Modify(NewWeld, {
  3021.         Name = "qCFrameWeldThingy";
  3022.         Part0  = Part0;
  3023.         Part1  = Part1;
  3024.         C0     = CFrame.new();--Part0.CFrame:inverse();
  3025.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  3026.         Parent = Part1;
  3027.     })
  3028.  
  3029.     if not RelativeValue then
  3030.         RelativeValue = Make("CFrameValue", {
  3031.             Parent     = Part1;
  3032.             Name       = "qRelativeCFrameWeldValue";
  3033.             Archivable = true;
  3034.             Value      = NewWeld.C1;
  3035.         })
  3036.     end
  3037.  
  3038.     return NewWeld
  3039. end
  3040.  
  3041. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  3042.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  3043.     -- @param MainPart The part to weld the model to (can be in the model).
  3044.     -- @param [JointType] The type of joint. Defaults to weld.
  3045.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  3046.    
  3047.     for _, Part in pairs(Parts) do
  3048.         if ShouldBreakJoints(Part) then
  3049.             Part:BreakJoints()
  3050.         end
  3051.     end
  3052.    
  3053.     for _, Part in pairs(Parts) do
  3054.         if Part ~= MainPart then
  3055.             WeldTogether(MainPart, Part, JointType, MainPart)
  3056.         end
  3057.     end
  3058.  
  3059.     if not DoNotUnanchor then
  3060.         for _, Part in pairs(Parts) do
  3061.             Part.Anchored = false
  3062.         end
  3063.         MainPart.Anchored = false
  3064.     end
  3065. end
  3066.  
  3067. local function PerfectionWeld()
  3068.     local Tool = GetNearestParent(script, "Tool")
  3069.  
  3070.     local Parts = GetBricks(script.Parent)
  3071.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  3072.  
  3073.     if PrimaryPart then
  3074.         WeldParts(Parts, PrimaryPart, "Weld", false)
  3075.     else
  3076.         warn("qWeld - Unable to weld part")
  3077.     end
  3078.    
  3079.     return Tool
  3080. end
  3081.  
  3082. local Tool = PerfectionWeld()
  3083.  
  3084.  
  3085. if Tool and script.ClassName == "Script" then
  3086.     --- Don't bother with local scripts
  3087.  
  3088.     script.Parent.AncestryChanged:connect(function()
  3089.         PerfectionWeld()
  3090.     end)
  3091. end
  3092.  
  3093. -- Created by Quenty (@Quenty, follow me on twitter).
  3094.  
  3095. end))
  3096. UnionOperation145.Parent = Model123
  3097. UnionOperation145.CFrame = CFrame.new(266.689331, 162.804581, 64.4994736, -1.77512757e-05, 0.0870547071, -0.996203601, 1.35543223e-05, 0.996203542, 0.0870547071, 1, -1.19575316e-05, -1.88638533e-05)
  3098. UnionOperation145.Orientation = Vector3.new(-4.98999977, -90, 0)
  3099. UnionOperation145.Position = Vector3.new(266.689331, 162.804581, 64.4994736)
  3100. UnionOperation145.Rotation = Vector3.new(-90.0099945, -85.0099945, -90.0099945)
  3101. UnionOperation145.Color = Color3.new(1, 0, 0)
  3102. UnionOperation145.Size = Vector3.new(20.9885483, 5.03980398, 5.56811333)
  3103. UnionOperation145.Anchored = true
  3104. UnionOperation145.BrickColor = BrickColor.new("Really red")
  3105. UnionOperation145.CanCollide = false
  3106. UnionOperation145.Material = Enum.Material.Neon
  3107. UnionOperation145.brickColor = BrickColor.new("Really red")
  3108. UnionOperation145.UsePartColor = true
  3109. Script146.Parent = UnionOperation145
  3110. table.insert(cors,sandbox(Script146,function()
  3111. while true do
  3112. wait(.000001)
  3113. script.Parent.UsePartColor=true
  3114. wait(.000001)
  3115. script.Parent.UsePartColor=false
  3116. end
  3117. end))
  3118. Model147.Name = "Blaster"
  3119. Model147.Parent = Model0
  3120. Model148.Name = "Top laser"
  3121. Model148.Parent = Model147
  3122. Part149.Name = "Shatter"
  3123. Part149.Parent = Model148
  3124. Part149.CFrame = CFrame.new(-180.065933, 202.950943, -12.9140587, 5.14824933e-05, -1, 0.000131111578, 0.000206255281, -0.000131100955, -1, 1, 5.1509538e-05, 0.000206248529)
  3125. Part149.Orientation = Vector3.new(90, -90, 0)
  3126. Part149.Position = Vector3.new(-180.065933, 202.950943, -12.9140587)
  3127. Part149.Rotation = Vector3.new(89.9899979, 0.00999999978, 90)
  3128. Part149.Color = Color3.new(1, 0, 0)
  3129. Part149.Transparency = 1
  3130. Part149.Size = Vector3.new(19.677372, 481.386078, 19.4694805)
  3131. Part149.BackSurface = Enum.SurfaceType.Weld
  3132. Part149.BottomSurface = Enum.SurfaceType.Weld
  3133. Part149.BrickColor = BrickColor.new("Really red")
  3134. Part149.CanCollide = false
  3135. Part149.FrontSurface = Enum.SurfaceType.Weld
  3136. Part149.LeftSurface = Enum.SurfaceType.Weld
  3137. Part149.Material = Enum.Material.Neon
  3138. Part149.Reflectance = 0.5
  3139. Part149.RightSurface = Enum.SurfaceType.Weld
  3140. Part149.TopSurface = Enum.SurfaceType.Weld
  3141. Part149.brickColor = BrickColor.new("Really red")
  3142. Part149.FormFactor = Enum.FormFactor.Symmetric
  3143. Part149.formFactor = Enum.FormFactor.Symmetric
  3144. Script150.Name = "Fade"
  3145. Script150.Parent = Part149
  3146. table.insert(cors,sandbox(Script150,function()
  3147. bin = script.Parent
  3148.  
  3149. function activate(hit)
  3150.     bin.Transparency = 0.2
  3151.     wait(0.01)
  3152.     bin.Transparency = 0.3
  3153.     wait(0.01)
  3154.     bin.Transparency = 0.4
  3155.     wait(0.01)
  3156.     bin.Transparency = 0.5
  3157.     wait(0.01)
  3158.     bin.Transparency = 0.6
  3159.     wait(0.01)
  3160.     bin.Transparency = 0.7
  3161.     wait(0.01)
  3162.     bin.Transparency = 0.8
  3163.     wait(0.01)
  3164.     bin.Transparency = 0.9
  3165.     wait(0.01)
  3166.     bin.Transparency = 1
  3167. end
  3168. script.Parent.Touched:connect(activate)
  3169.  
  3170.  
  3171. end))
  3172. CylinderMesh151.Parent = Part149
  3173. CylinderMesh151.Scale = Vector3.new(1, 2, 1)
  3174. Script152.Parent = Part149
  3175. table.insert(cors,sandbox(Script152,function()
  3176. function onTouched(hit)
  3177.     script.Parent.Sound:play()
  3178. end
  3179. script.Parent.Touched:connect(onTouched)
  3180. end))
  3181. Script153.Name = "Lava Script"
  3182. Script153.Parent = Part149
  3183. table.insert(cors,sandbox(Script153,function()
  3184. function onTouched(part)
  3185. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  3186. part.Parent.Torso:BreakJoints()
  3187. end
  3188. end
  3189.  
  3190. script.Parent.Touched:connect(onTouched)
  3191. end))
  3192. Sound154.Parent = Part149
  3193. Sound154.EmitterSize = 1000
  3194. Sound154.MinDistance = 1000
  3195. Sound154.SoundId = "rbxassetid://245537790"
  3196. Sound154.Volume = 5
  3197. UnionOperation155.Name = "Head"
  3198. UnionOperation155.Parent = Model147
  3199. UnionOperation155.CFrame = CFrame.new(306.367432, 222.889603, -13.34692, -1.80344014e-05, 0.707137406, -0.707076192, 1.35542832e-05, 0.707076192, 0.707137406, 1, 3.16888872e-06, -2.23364368e-05)
  3200. UnionOperation155.Orientation = Vector3.new(-45, -90, 0)
  3201. UnionOperation155.Position = Vector3.new(306.367432, 222.889603, -13.34692)
  3202. UnionOperation155.Rotation = Vector3.new(-90, -45, -90)
  3203. UnionOperation155.Color = Color3.new(0.639216, 0.635294, 0.647059)
  3204. UnionOperation155.Size = Vector3.new(32.5082893, 56.5730247, 53.7166595)
  3205. UnionOperation155.Anchored = true
  3206. UnionOperation155.BrickColor = BrickColor.new("Medium stone grey")
  3207. UnionOperation155.CanCollide = false
  3208. UnionOperation155.brickColor = BrickColor.new("Medium stone grey")
  3209. UnionOperation155.UsePartColor = true
  3210. UnionOperation156.Name = "Head"
  3211. UnionOperation156.Parent = Model147
  3212. UnionOperation156.CFrame = CFrame.new(328.630493, 208.351089, -8.24817657, -0.000111436362, 0.258685172, -0.965961695, 0.000496955938, 0.965961695, 0.258685052, 0.999999881, -0.000451213506, -0.000236198364)
  3213. UnionOperation156.Orientation = Vector3.new(-14.9899998, -90.0099945, 0.0299999993)
  3214. UnionOperation156.Position = Vector3.new(328.630493, 208.351089, -8.24817657)
  3215. UnionOperation156.Rotation = Vector3.new(-90.0499954, -75.0100021, -90.0199966)
  3216. UnionOperation156.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  3217. UnionOperation156.Transparency = 1
  3218. UnionOperation156.Size = Vector3.new(4.89833546, 4.32207441, 6.2466197)
  3219. UnionOperation156.BrickColor = BrickColor.new("Really black")
  3220. UnionOperation156.CanCollide = false
  3221. UnionOperation156.Material = Enum.Material.Cobblestone
  3222. UnionOperation156.brickColor = BrickColor.new("Really black")
  3223. UnionOperation156.UsePartColor = true
  3224. BodyPosition157.Parent = UnionOperation156
  3225. BodyPosition157.Position = Vector3.new(0, 200, 0)
  3226. BodyPosition157.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  3227. BodyPosition157.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  3228. BodyPosition157.position = Vector3.new(0, 200, 0)
  3229. ParticleEmitter158.Name = "Fire"
  3230. ParticleEmitter158.Parent = UnionOperation156
  3231. ParticleEmitter158.Speed = NumberRange.new(100, 100)
  3232. ParticleEmitter158.Rotation = NumberRange.new(-45, -45)
  3233. ParticleEmitter158.Color = ColorSequence.new(Color3.new(0.666667, 0, 0),Color3.new(1, 0, 0))
  3234. ParticleEmitter158.LightEmission = 1
  3235. ParticleEmitter158.Texture = "http://www.roblox.com/asset/?id=241936182"
  3236. ParticleEmitter158.Transparency = NumberSequence.new(0,0.28749996423721,1)
  3237. ParticleEmitter158.ZOffset = 1
  3238. ParticleEmitter158.Size = NumberSequence.new(10,0)
  3239. ParticleEmitter158.EmissionDirection = Enum.NormalId.Front
  3240. ParticleEmitter158.Lifetime = NumberRange.new(0.60000002384186, 0.60000002384186)
  3241. ParticleEmitter158.LockedToPart = true
  3242. ParticleEmitter158.Rate = 250
  3243. ParticleEmitter158.SpreadAngle = Vector2.new(50, 50)
  3244. ParticleEmitter158.VelocitySpread = 50
  3245. UnionOperation159.Name = "Jaws"
  3246. UnionOperation159.Parent = Model147
  3247. UnionOperation159.CFrame = CFrame.new(297.627686, 206.996765, -13.3126068, -1.81461492e-05, 4.86373538e-05, -1, 1.35393748e-05, 1, 4.86371064e-05, 1, -1.35384926e-05, -1.81468076e-05)
  3248. UnionOperation159.Orientation = Vector3.new(0, -90, 0)
  3249. UnionOperation159.Position = Vector3.new(297.627686, 206.996765, -13.3126068)
  3250. UnionOperation159.Rotation = Vector3.new(0, -90, 0)
  3251. UnionOperation159.Color = Color3.new(0.639216, 0.635294, 0.647059)
  3252. UnionOperation159.Size = Vector3.new(46.4771423, 52.6358223, 53.1223793)
  3253. UnionOperation159.Anchored = true
  3254. UnionOperation159.BrickColor = BrickColor.new("Medium stone grey")
  3255. UnionOperation159.CanCollide = false
  3256. UnionOperation159.brickColor = BrickColor.new("Medium stone grey")
  3257. UnionOperation159.UsePartColor = true
  3258. Part160.Parent = Model147
  3259. Part160.CFrame = CFrame.new(328.378906, 206.708755, -10.8719559, 4.17202064e-05, 0.000191151965, 1, -7.77918976e-05, 1, -0.00019114872, -1, -7.77839232e-05, 4.17350784e-05)
  3260. Part160.Orientation = Vector3.new(0.00999999978, 90, 0)
  3261. Part160.Position = Vector3.new(328.378906, 206.708755, -10.8719559)
  3262. Part160.Rotation = Vector3.new(0, 90, 0)
  3263. Part160.Color = Color3.new(0, 1, 0)
  3264. Part160.Transparency = 1
  3265. Part160.Size = Vector3.new(5.24247837, 2.53084993, 18.6198387)
  3266. Part160.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  3267. Part160.BrickColor = BrickColor.new("Lime green")
  3268. Part160.CanCollide = false
  3269. Part160.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  3270. Part160.Material = Enum.Material.Ice
  3271. Part160.brickColor = BrickColor.new("Lime green")
  3272. Part160.FormFactor = Enum.FormFactor.Custom
  3273. Part160.formFactor = Enum.FormFactor.Custom
  3274. Humanoid161.Parent = Part160
  3275. Humanoid161.Health = 0
  3276. Humanoid161.MaxHealth = 0
  3277. Humanoid161.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  3278. Humanoid161.WalkSpeed = 10
  3279. Humanoid161.maxHealth = 0
  3280. Script162.Name = "Vaccine"
  3281. Script162.Parent = Part160
  3282. table.insert(cors,sandbox(Script162,function()
  3283. function spread() -- created by culinwino3000
  3284. local stuff = game.Workspace:GetChildren()
  3285. for i = 1, #stuff do
  3286. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  3287. local clone = script:clone()
  3288. clone.Parent = stuff[i]
  3289. end
  3290. end
  3291. end
  3292.  
  3293. while true do
  3294. wait(.1)
  3295. spread()
  3296. end
  3297.  
  3298. function GetAllItems(mdl)
  3299. local objs = {}
  3300. function Search(obj)
  3301. if obj~=workspace then
  3302. table.insert(objs,obj)
  3303. end
  3304. if #obj:GetChildren() > 0 then
  3305. for i, v in ipairs(obj:GetChildren()) do
  3306. Search(v)
  3307. end
  3308. end
  3309. end
  3310. Search(mdl)
  3311. return objs
  3312. end
  3313.  
  3314.  
  3315.  
  3316. for i, v in ipairs(GetAllItems(workspace)) do
  3317. if v.className == "Script" then
  3318. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  3319. v.Parent = game.Lighting --Just in case it has a removal prevention.
  3320. t = Instance.new("ObjectValue")
  3321. t.Name = "IsAVirus"
  3322. t.Parent = v
  3323. end
  3324. end
  3325. end
  3326.  
  3327. for i, v in ipairs(game.Lighting:GetChildren()) do
  3328. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  3329. v:remove()
  3330. end
  3331. end
  3332.  
  3333.  
  3334. print("Virus debugged! All clean!")
  3335. end))
  3336. Script163.Parent = Part160
  3337. table.insert(cors,sandbox(Script163,function()
  3338. bin = script.Parent
  3339.  
  3340. function move(target)
  3341.     local dir = (target.Position - bin.Position).unit
  3342.     local spawnPos = bin.Position
  3343.     local pos = spawnPos + (dir * 1)
  3344.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  3345.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  3346. end
  3347.  
  3348. function moveTo(target)
  3349.     bin.BodyPosition.position = target.Position
  3350.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  3351. end
  3352.  
  3353. function findNearestTorso(pos)
  3354.     local list = game.Workspace:GetChildren()
  3355.     local torso = nil
  3356.     local dist = 10000000000000000
  3357.     local temp = nil
  3358.     local human = nil
  3359.     local temp2 = nil
  3360.     for x = 1, #list do
  3361.         temp2 = list[x]
  3362.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  3363.             temp = temp2:findFirstChild("Torso")
  3364.             human = temp2:findFirstChild("Humanoid")
  3365.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  3366.                 if (temp.Position - pos).magnitude < dist then
  3367.                     torso = temp
  3368.                     dist = (temp.Position - pos).magnitude
  3369.                 end
  3370.             end
  3371.         end
  3372.     end
  3373.     return torso
  3374. end
  3375.  
  3376. function shoot(pos)
  3377.     dir = (pos - bin.CFrame.p).unit
  3378.     for i = 1, 50 do
  3379.         local ex = Instance.new("Explosion")
  3380.         ex.BlastRadius = 1
  3381.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  3382.         ex.Parent = game.Workspace
  3383.     end
  3384. end
  3385.  
  3386. function shootAt(torso)
  3387.     local dir = (torso.Position - bin.Position).unit
  3388.     local spawnPos = bin.Position
  3389.     local pos = spawnPos + (dir * 1)
  3390.     shoot(pos)
  3391. end
  3392.  
  3393. while true do
  3394.     local torso = findNearestTorso(bin.Position)
  3395.     if torso~=nil then
  3396.         move(torso)
  3397.         moveTo(torso)
  3398.     end
  3399.     wait()
  3400. end
  3401.  
  3402. end))
  3403. Script164.Parent = Part160
  3404. table.insert(cors,sandbox(Script164,function()
  3405. function onTouched(part)
  3406.     local h = part.Parent:findFirstChild("Humanoid")
  3407.     if h~=nil then
  3408.         h.Health = h.Health 100
  3409.         wait(1)
  3410.     end
  3411. end
  3412.  
  3413. script.Parent.Touched:connect(onTouched)
  3414.  
  3415. end))
  3416. NumberValue165.Name = "Speed"
  3417. NumberValue165.Parent = Part160
  3418. NumberValue165.Value = 3000
  3419. BodyGyro166.Parent = Part160
  3420. BodyGyro166.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  3421. BodyGyro166.MaxTorque = Vector3.new(9000, 9000, 9000)
  3422. BodyGyro166.maxTorque = Vector3.new(9000, 9000, 9000)
  3423. BodyGyro166.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  3424. BodyPosition167.Parent = Part160
  3425. BodyPosition167.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  3426. BodyPosition167.MaxForce = Vector3.new(6000, 6000, 6000)
  3427. BodyPosition167.maxForce = Vector3.new(6000, 6000, 6000)
  3428. BodyPosition167.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  3429. Script168.Name = "qPerfectionWeld"
  3430. Script168.Parent = Model147
  3431. table.insert(cors,sandbox(Script168,function()
  3432. -- Created by Quenty (@Quenty, follow me on twitter).
  3433. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  3434. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  3435.  
  3436. --[[ INSTRUCTIONS
  3437. - Place in the model
  3438. - Make sure model is anchored
  3439. - That's it. It will weld the model and all children.
  3440.  
  3441. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  3442. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  3443. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  3444. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  3445. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  3446. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  3447. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  3448. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  3449.  
  3450. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  3451. ]]
  3452.  
  3453. --[[ DOCUMENTATION
  3454. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  3455. - Will work in PBS servers
  3456. - Will work as long as it starts out with the part anchored
  3457. - Stores the relative CFrame as a CFrame value
  3458. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  3459. - Utilizes a recursive algorith to find all parts in the model
  3460. - Will reweld on script reparent if the script is initially parented to a tool.
  3461. - Welds as fast as possible
  3462. ]]
  3463.  
  3464. -- qPerfectionWeld.lua
  3465. -- Created 10/6/2014
  3466. -- Author: Quenty
  3467. -- Version 1.0.3
  3468.  
  3469. -- Updated 10/14/2014 - Updated to 1.0.1
  3470. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  3471.  
  3472. -- Updated 10/14/2014 - Updated to 1.0.2
  3473. --- Fixed bug fix.
  3474.  
  3475. -- Updated 10/14/2014 - Updated to 1.0.3
  3476. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  3477.  
  3478. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  3479.  
  3480.  
  3481. local function CallOnChildren(Instance, FunctionToCall)
  3482.     -- Calls a function on each of the children of a certain object, using recursion.  
  3483.  
  3484.     FunctionToCall(Instance)
  3485.  
  3486.     for _, Child in next, Instance:GetChildren() do
  3487.         CallOnChildren(Child, FunctionToCall)
  3488.     end
  3489. end
  3490.  
  3491. local function GetNearestParent(Instance, ClassName)
  3492.     -- Returns the nearest parent of a certain class, or returns nil
  3493.  
  3494.     local Ancestor = Instance
  3495.     repeat
  3496.         Ancestor = Ancestor.Parent
  3497.         if Ancestor == nil then
  3498.             return nil
  3499.         end
  3500.     until Ancestor:IsA(ClassName)
  3501.  
  3502.     return Ancestor
  3503. end
  3504.  
  3505. local function GetBricks(StartInstance)
  3506.     local List = {}
  3507.  
  3508.     -- if StartInstance:IsA("BasePart") then
  3509.     --  List[#List+1] = StartInstance
  3510.     -- end
  3511.  
  3512.     CallOnChildren(StartInstance, function(Item)
  3513.         if Item:IsA("BasePart") then
  3514.             List[#List+1] = Item;
  3515.         end
  3516.     end)
  3517.  
  3518.     return List
  3519. end
  3520.  
  3521. local function Modify(Instance, Values)
  3522.     -- Modifies an Instance by using a table.  
  3523.  
  3524.     assert(type(Values) == "table", "Values is not a table");
  3525.  
  3526.     for Index, Value in next, Values do
  3527.         if type(Index) == "number" then
  3528.             Value.Parent = Instance
  3529.         else
  3530.             Instance[Index] = Value
  3531.         end
  3532.     end
  3533.     return Instance
  3534. end
  3535.  
  3536. local function Make(ClassType, Properties)
  3537.     -- Using a syntax hack to create a nice way to Make new items.  
  3538.  
  3539.     return Modify(Instance.new(ClassType), Properties)
  3540. end
  3541.  
  3542. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  3543. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  3544.  
  3545. local function HasWheelJoint(Part)
  3546.     for _, SurfaceName in pairs(Surfaces) do
  3547.         for _, HingSurfaceName in pairs(HingSurfaces) do
  3548.             if Part[SurfaceName].Name == HingSurfaceName then
  3549.                 return true
  3550.             end
  3551.         end
  3552.     end
  3553.    
  3554.     return false
  3555. end
  3556.  
  3557. local function ShouldBreakJoints(Part)
  3558.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  3559.     --  definitely some edge cases.
  3560.  
  3561.     if NEVER_BREAK_JOINTS then
  3562.         return false
  3563.     end
  3564.    
  3565.     if HasWheelJoint(Part) then
  3566.         return false
  3567.     end
  3568.    
  3569.     local Connected = Part:GetConnectedParts()
  3570.    
  3571.     if #Connected == 1 then
  3572.         return false
  3573.     end
  3574.    
  3575.     for _, Item in pairs(Connected) do
  3576.         if HasWheelJoint(Item) then
  3577.             return false
  3578.         elseif not Item:IsDescendantOf(script.Parent) then
  3579.             return false
  3580.         end
  3581.     end
  3582.    
  3583.     return true
  3584. end
  3585.  
  3586. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  3587.     --- Weld's 2 parts together
  3588.     -- @param Part0 The first part
  3589.     -- @param Part1 The second part (Dependent part most of the time).
  3590.     -- @param [JointType] The type of joint. Defaults to weld.
  3591.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  3592.     -- @return The weld created.
  3593.  
  3594.     JointType = JointType or "Weld"
  3595.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  3596.    
  3597.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  3598.     Modify(NewWeld, {
  3599.         Name = "qCFrameWeldThingy";
  3600.         Part0  = Part0;
  3601.         Part1  = Part1;
  3602.         C0     = CFrame.new();--Part0.CFrame:inverse();
  3603.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  3604.         Parent = Part1;
  3605.     })
  3606.  
  3607.     if not RelativeValue then
  3608.         RelativeValue = Make("CFrameValue", {
  3609.             Parent     = Part1;
  3610.             Name       = "qRelativeCFrameWeldValue";
  3611.             Archivable = true;
  3612.             Value      = NewWeld.C1;
  3613.         })
  3614.     end
  3615.  
  3616.     return NewWeld
  3617. end
  3618.  
  3619. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  3620.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  3621.     -- @param MainPart The part to weld the model to (can be in the model).
  3622.     -- @param [JointType] The type of joint. Defaults to weld.
  3623.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  3624.    
  3625.     for _, Part in pairs(Parts) do
  3626.         if ShouldBreakJoints(Part) then
  3627.             Part:BreakJoints()
  3628.         end
  3629.     end
  3630.    
  3631.     for _, Part in pairs(Parts) do
  3632.         if Part ~= MainPart then
  3633.             WeldTogether(MainPart, Part, JointType, MainPart)
  3634.         end
  3635.     end
  3636.  
  3637.     if not DoNotUnanchor then
  3638.         for _, Part in pairs(Parts) do
  3639.             Part.Anchored = false
  3640.         end
  3641.         MainPart.Anchored = false
  3642.     end
  3643. end
  3644.  
  3645. local function PerfectionWeld()
  3646.     local Tool = GetNearestParent(script, "Tool")
  3647.  
  3648.     local Parts = GetBricks(script.Parent)
  3649.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  3650.  
  3651.     if PrimaryPart then
  3652.         WeldParts(Parts, PrimaryPart, "Weld", false)
  3653.     else
  3654.         warn("qWeld - Unable to weld part")
  3655.     end
  3656.    
  3657.     return Tool
  3658. end
  3659.  
  3660. local Tool = PerfectionWeld()
  3661.  
  3662.  
  3663. if Tool and script.ClassName == "Script" then
  3664.     --- Don't bother with local scripts
  3665.  
  3666.     script.Parent.AncestryChanged:connect(function()
  3667.         PerfectionWeld()
  3668.     end)
  3669. end
  3670.  
  3671. -- Created by Quenty (@Quenty, follow me on twitter).
  3672.  
  3673. end))
  3674. UnionOperation169.Parent = Model147
  3675. UnionOperation169.CFrame = CFrame.new(296.551147, 225.503799, -13.5353241, -1.77512757e-05, 0.0870547071, -0.996203601, 1.35543223e-05, 0.996203542, 0.0870547071, 1, -1.19575316e-05, -1.88638533e-05)
  3676. UnionOperation169.Orientation = Vector3.new(-4.98999977, -90, 0)
  3677. UnionOperation169.Position = Vector3.new(296.551147, 225.503799, -13.5353241)
  3678. UnionOperation169.Rotation = Vector3.new(-90.0099945, -85.0099945, -90.0099945)
  3679. UnionOperation169.Color = Color3.new(1, 0, 0)
  3680. UnionOperation169.Size = Vector3.new(20.9885483, 5.03980398, 5.56811333)
  3681. UnionOperation169.Anchored = true
  3682. UnionOperation169.BrickColor = BrickColor.new("Really red")
  3683. UnionOperation169.CanCollide = false
  3684. UnionOperation169.Material = Enum.Material.Neon
  3685. UnionOperation169.brickColor = BrickColor.new("Really red")
  3686. UnionOperation169.UsePartColor = true
  3687. Script170.Parent = UnionOperation169
  3688. table.insert(cors,sandbox(Script170,function()
  3689. while true do
  3690. wait(.000001)
  3691. script.Parent.UsePartColor=true
  3692. wait(.000001)
  3693. script.Parent.UsePartColor=false
  3694. end
  3695. end))
  3696. Model171.Name = "Blaster"
  3697. Model171.Parent = Model0
  3698. Model172.Name = "Top laser"
  3699. Model172.Parent = Model171
  3700. Part173.Name = "Shatter"
  3701. Part173.Parent = Model172
  3702. Part173.CFrame = CFrame.new(-209.934769, 140.224854, -65.9834366, 5.14824933e-05, -1, 0.000131111578, 0.000206255281, -0.000131100955, -1, 1, 5.1509538e-05, 0.000206248529)
  3703. Part173.Orientation = Vector3.new(90, -90, 0)
  3704. Part173.Position = Vector3.new(-209.934769, 140.224854, -65.9834366)
  3705. Part173.Rotation = Vector3.new(89.9899979, 0.00999999978, 90)
  3706. Part173.Color = Color3.new(1, 0, 0)
  3707. Part173.Transparency = 1
  3708. Part173.Size = Vector3.new(19.677372, 481.386078, 19.4694805)
  3709. Part173.BackSurface = Enum.SurfaceType.Weld
  3710. Part173.BottomSurface = Enum.SurfaceType.Weld
  3711. Part173.BrickColor = BrickColor.new("Really red")
  3712. Part173.CanCollide = false
  3713. Part173.FrontSurface = Enum.SurfaceType.Weld
  3714. Part173.LeftSurface = Enum.SurfaceType.Weld
  3715. Part173.Material = Enum.Material.Neon
  3716. Part173.Reflectance = 0.5
  3717. Part173.RightSurface = Enum.SurfaceType.Weld
  3718. Part173.TopSurface = Enum.SurfaceType.Weld
  3719. Part173.brickColor = BrickColor.new("Really red")
  3720. Part173.FormFactor = Enum.FormFactor.Symmetric
  3721. Part173.formFactor = Enum.FormFactor.Symmetric
  3722. Script174.Name = "Fade"
  3723. Script174.Parent = Part173
  3724. table.insert(cors,sandbox(Script174,function()
  3725. bin = script.Parent
  3726.  
  3727. function activate(hit)
  3728.     bin.Transparency = 0.2
  3729.     wait(0.01)
  3730.     bin.Transparency = 0.3
  3731.     wait(0.01)
  3732.     bin.Transparency = 0.4
  3733.     wait(0.01)
  3734.     bin.Transparency = 0.5
  3735.     wait(0.01)
  3736.     bin.Transparency = 0.6
  3737.     wait(0.01)
  3738.     bin.Transparency = 0.7
  3739.     wait(0.01)
  3740.     bin.Transparency = 0.8
  3741.     wait(0.01)
  3742.     bin.Transparency = 0.9
  3743.     wait(0.01)
  3744.     bin.Transparency = 1
  3745. end
  3746. script.Parent.Touched:connect(activate)
  3747.  
  3748.  
  3749. end))
  3750. CylinderMesh175.Parent = Part173
  3751. CylinderMesh175.Scale = Vector3.new(1, 2, 1)
  3752. Script176.Parent = Part173
  3753. table.insert(cors,sandbox(Script176,function()
  3754. function onTouched(hit)
  3755.     script.Parent.Sound:play()
  3756. end
  3757. script.Parent.Touched:connect(onTouched)
  3758. end))
  3759. Script177.Name = "Lava Script"
  3760. Script177.Parent = Part173
  3761. table.insert(cors,sandbox(Script177,function()
  3762. function onTouched(part)
  3763. if part.Parent:FindFirstChild("Humanoid") ~= nil then
  3764. part.Parent.Torso:BreakJoints()
  3765. end
  3766. end
  3767.  
  3768. script.Parent.Touched:connect(onTouched)
  3769. end))
  3770. Sound178.Parent = Part173
  3771. Sound178.EmitterSize = 1000
  3772. Sound178.MinDistance = 1000
  3773. Sound178.SoundId = "rbxassetid://245537790"
  3774. Sound178.Volume = 5
  3775. UnionOperation179.Name = "Head"
  3776. UnionOperation179.Parent = Model171
  3777. UnionOperation179.CFrame = CFrame.new(276.498962, 160.163666, -66.4162674, -1.80344014e-05, 0.707137406, -0.707076192, 1.35542832e-05, 0.707076192, 0.707137406, 1, 3.16888872e-06, -2.23364368e-05)
  3778. UnionOperation179.Orientation = Vector3.new(-45, -90, 0)
  3779. UnionOperation179.Position = Vector3.new(276.498962, 160.163666, -66.4162674)
  3780. UnionOperation179.Rotation = Vector3.new(-90, -45, -90)
  3781. UnionOperation179.Color = Color3.new(0.639216, 0.635294, 0.647059)
  3782. UnionOperation179.Size = Vector3.new(32.5082893, 56.5730247, 53.7166595)
  3783. UnionOperation179.Anchored = true
  3784. UnionOperation179.BrickColor = BrickColor.new("Medium stone grey")
  3785. UnionOperation179.CanCollide = false
  3786. UnionOperation179.brickColor = BrickColor.new("Medium stone grey")
  3787. UnionOperation179.UsePartColor = true
  3788. UnionOperation180.Name = "Head"
  3789. UnionOperation180.Parent = Model171
  3790. UnionOperation180.CFrame = CFrame.new(298.761963, 145.625092, -61.3175888, -0.000111436362, 0.258685172, -0.965961695, 0.000496955938, 0.965961695, 0.258685052, 0.999999881, -0.000451213506, -0.000236198364)
  3791. UnionOperation180.Orientation = Vector3.new(-14.9899998, -90.0099945, 0.0299999993)
  3792. UnionOperation180.Position = Vector3.new(298.761963, 145.625092, -61.3175888)
  3793. UnionOperation180.Rotation = Vector3.new(-90.0499954, -75.0100021, -90.0199966)
  3794. UnionOperation180.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  3795. UnionOperation180.Transparency = 1
  3796. UnionOperation180.Size = Vector3.new(4.89833546, 4.32207441, 6.2466197)
  3797. UnionOperation180.BrickColor = BrickColor.new("Really black")
  3798. UnionOperation180.CanCollide = false
  3799. UnionOperation180.Material = Enum.Material.Cobblestone
  3800. UnionOperation180.brickColor = BrickColor.new("Really black")
  3801. UnionOperation180.UsePartColor = true
  3802. BodyPosition181.Parent = UnionOperation180
  3803. BodyPosition181.Position = Vector3.new(0, 200, 0)
  3804. BodyPosition181.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  3805. BodyPosition181.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  3806. BodyPosition181.position = Vector3.new(0, 200, 0)
  3807. ParticleEmitter182.Name = "Fire"
  3808. ParticleEmitter182.Parent = UnionOperation180
  3809. ParticleEmitter182.Speed = NumberRange.new(100, 100)
  3810. ParticleEmitter182.Rotation = NumberRange.new(-45, -45)
  3811. ParticleEmitter182.Color = ColorSequence.new(Color3.new(0.666667, 0, 0),Color3.new(1, 0, 0))
  3812. ParticleEmitter182.LightEmission = 1
  3813. ParticleEmitter182.Texture = "http://www.roblox.com/asset/?id=241936182"
  3814. ParticleEmitter182.Transparency = NumberSequence.new(0,0.28749996423721,1)
  3815. ParticleEmitter182.ZOffset = 1
  3816. ParticleEmitter182.Size = NumberSequence.new(10,0)
  3817. ParticleEmitter182.EmissionDirection = Enum.NormalId.Front
  3818. ParticleEmitter182.Lifetime = NumberRange.new(0.60000002384186, 0.60000002384186)
  3819. ParticleEmitter182.LockedToPart = true
  3820. ParticleEmitter182.Rate = 250
  3821. ParticleEmitter182.SpreadAngle = Vector2.new(50, 50)
  3822. ParticleEmitter182.VelocitySpread = 50
  3823. UnionOperation183.Name = "Jaws"
  3824. UnionOperation183.Parent = Model171
  3825. UnionOperation183.CFrame = CFrame.new(267.759216, 144.270752, -66.3819885, -1.81461492e-05, 4.86373538e-05, -1, 1.35393748e-05, 1, 4.86371064e-05, 1, -1.35384926e-05, -1.81468076e-05)
  3826. UnionOperation183.Orientation = Vector3.new(0, -90, 0)
  3827. UnionOperation183.Position = Vector3.new(267.759216, 144.270752, -66.3819885)
  3828. UnionOperation183.Rotation = Vector3.new(0, -90, 0)
  3829. UnionOperation183.Color = Color3.new(0.639216, 0.635294, 0.647059)
  3830. UnionOperation183.Size = Vector3.new(46.4771423, 52.6358223, 53.1223793)
  3831. UnionOperation183.Anchored = true
  3832. UnionOperation183.BrickColor = BrickColor.new("Medium stone grey")
  3833. UnionOperation183.CanCollide = false
  3834. UnionOperation183.brickColor = BrickColor.new("Medium stone grey")
  3835. UnionOperation183.UsePartColor = true
  3836. Part184.Parent = Model171
  3837. Part184.CFrame = CFrame.new(298.510315, 143.982391, -63.9413071, 4.17202064e-05, 0.000191151965, 1, -7.77918976e-05, 1, -0.00019114872, -1, -7.77839232e-05, 4.17350784e-05)
  3838. Part184.Orientation = Vector3.new(0.00999999978, 90, 0)
  3839. Part184.Position = Vector3.new(298.510315, 143.982391, -63.9413071)
  3840. Part184.Rotation = Vector3.new(0, 90, 0)
  3841. Part184.Color = Color3.new(0, 1, 0)
  3842. Part184.Transparency = 1
  3843. Part184.Size = Vector3.new(5.24247837, 2.53084993, 18.6198387)
  3844. Part184.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  3845. Part184.BrickColor = BrickColor.new("Lime green")
  3846. Part184.CanCollide = false
  3847. Part184.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  3848. Part184.Material = Enum.Material.Ice
  3849. Part184.brickColor = BrickColor.new("Lime green")
  3850. Part184.FormFactor = Enum.FormFactor.Custom
  3851. Part184.formFactor = Enum.FormFactor.Custom
  3852. Humanoid185.Parent = Part184
  3853. Humanoid185.Health = 0
  3854. Humanoid185.MaxHealth = 0
  3855. Humanoid185.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  3856. Humanoid185.WalkSpeed = 10
  3857. Humanoid185.maxHealth = 0
  3858. Script186.Name = "Vaccine"
  3859. Script186.Parent = Part184
  3860. table.insert(cors,sandbox(Script186,function()
  3861. function spread() -- created by culinwino3000
  3862. local stuff = game.Workspace:GetChildren()
  3863. for i = 1, #stuff do
  3864. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  3865. local clone = script:clone()
  3866. clone.Parent = stuff[i]
  3867. end
  3868. end
  3869. end
  3870.  
  3871. while true do
  3872. wait(.1)
  3873. spread()
  3874. end
  3875.  
  3876. function GetAllItems(mdl)
  3877. local objs = {}
  3878. function Search(obj)
  3879. if obj~=workspace then
  3880. table.insert(objs,obj)
  3881. end
  3882. if #obj:GetChildren() > 0 then
  3883. for i, v in ipairs(obj:GetChildren()) do
  3884. Search(v)
  3885. end
  3886. end
  3887. end
  3888. Search(mdl)
  3889. return objs
  3890. end
  3891.  
  3892.  
  3893.  
  3894. for i, v in ipairs(GetAllItems(workspace)) do
  3895. if v.className == "Script" then
  3896. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  3897. v.Parent = game.Lighting --Just in case it has a removal prevention.
  3898. t = Instance.new("ObjectValue")
  3899. t.Name = "IsAVirus"
  3900. t.Parent = v
  3901. end
  3902. end
  3903. end
  3904.  
  3905. for i, v in ipairs(game.Lighting:GetChildren()) do
  3906. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  3907. v:remove()
  3908. end
  3909. end
  3910.  
  3911.  
  3912. print("Virus debugged! All clean!")
  3913. end))
  3914. Script187.Parent = Part184
  3915. table.insert(cors,sandbox(Script187,function()
  3916. bin = script.Parent
  3917.  
  3918. function move(target)
  3919.     local dir = (target.Position - bin.Position).unit
  3920.     local spawnPos = bin.Position
  3921.     local pos = spawnPos + (dir * 1)
  3922.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  3923.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  3924. end
  3925.  
  3926. function moveTo(target)
  3927.     bin.BodyPosition.position = target.Position
  3928.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  3929. end
  3930.  
  3931. function findNearestTorso(pos)
  3932.     local list = game.Workspace:GetChildren()
  3933.     local torso = nil
  3934.     local dist = 10000000000000000
  3935.     local temp = nil
  3936.     local human = nil
  3937.     local temp2 = nil
  3938.     for x = 1, #list do
  3939.         temp2 = list[x]
  3940.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  3941.             temp = temp2:findFirstChild("Torso")
  3942.             human = temp2:findFirstChild("Humanoid")
  3943.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  3944.                 if (temp.Position - pos).magnitude < dist then
  3945.                     torso = temp
  3946.                     dist = (temp.Position - pos).magnitude
  3947.                 end
  3948.             end
  3949.         end
  3950.     end
  3951.     return torso
  3952. end
  3953.  
  3954. function shoot(pos)
  3955.     dir = (pos - bin.CFrame.p).unit
  3956.     for i = 1, 50 do
  3957.         local ex = Instance.new("Explosion")
  3958.         ex.BlastRadius = 1
  3959.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  3960.         ex.Parent = game.Workspace
  3961.     end
  3962. end
  3963.  
  3964. function shootAt(torso)
  3965.     local dir = (torso.Position - bin.Position).unit
  3966.     local spawnPos = bin.Position
  3967.     local pos = spawnPos + (dir * 1)
  3968.     shoot(pos)
  3969. end
  3970.  
  3971. while true do
  3972.     local torso = findNearestTorso(bin.Position)
  3973.     if torso~=nil then
  3974.         move(torso)
  3975.         moveTo(torso)
  3976.     end
  3977.     wait()
  3978. end
  3979.  
  3980. end))
  3981. Script188.Parent = Part184
  3982. table.insert(cors,sandbox(Script188,function()
  3983. function onTouched(part)
  3984.     local h = part.Parent:findFirstChild("Humanoid")
  3985.     if h~=nil then
  3986.         h.Health = h.Health 100
  3987.         wait(1)
  3988.     end
  3989. end
  3990.  
  3991. script.Parent.Touched:connect(onTouched)
  3992.  
  3993. end))
  3994. NumberValue189.Name = "Speed"
  3995. NumberValue189.Parent = Part184
  3996. NumberValue189.Value = 2000
  3997. BodyGyro190.Parent = Part184
  3998. BodyGyro190.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  3999. BodyGyro190.MaxTorque = Vector3.new(9000, 9000, 9000)
  4000. BodyGyro190.maxTorque = Vector3.new(9000, 9000, 9000)
  4001. BodyGyro190.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  4002. BodyPosition191.Parent = Part184
  4003. BodyPosition191.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  4004. BodyPosition191.MaxForce = Vector3.new(6000, 6000, 6000)
  4005. BodyPosition191.maxForce = Vector3.new(6000, 6000, 6000)
  4006. BodyPosition191.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  4007. Script192.Name = "qPerfectionWeld"
  4008. Script192.Parent = Model171
  4009. table.insert(cors,sandbox(Script192,function()
  4010. -- Created by Quenty (@Quenty, follow me on twitter).
  4011. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  4012. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  4013.  
  4014. --[[ INSTRUCTIONS
  4015. - Place in the model
  4016. - Make sure model is anchored
  4017. - That's it. It will weld the model and all children.
  4018.  
  4019. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4020. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4021. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4022. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4023. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4024. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4025. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4026. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4027.  
  4028. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  4029. ]]
  4030.  
  4031. --[[ DOCUMENTATION
  4032. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  4033. - Will work in PBS servers
  4034. - Will work as long as it starts out with the part anchored
  4035. - Stores the relative CFrame as a CFrame value
  4036. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  4037. - Utilizes a recursive algorith to find all parts in the model
  4038. - Will reweld on script reparent if the script is initially parented to a tool.
  4039. - Welds as fast as possible
  4040. ]]
  4041.  
  4042. -- qPerfectionWeld.lua
  4043. -- Created 10/6/2014
  4044. -- Author: Quenty
  4045. -- Version 1.0.3
  4046.  
  4047. -- Updated 10/14/2014 - Updated to 1.0.1
  4048. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  4049.  
  4050. -- Updated 10/14/2014 - Updated to 1.0.2
  4051. --- Fixed bug fix.
  4052.  
  4053. -- Updated 10/14/2014 - Updated to 1.0.3
  4054. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  4055.  
  4056. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  4057.  
  4058.  
  4059. local function CallOnChildren(Instance, FunctionToCall)
  4060.     -- Calls a function on each of the children of a certain object, using recursion.  
  4061.  
  4062.     FunctionToCall(Instance)
  4063.  
  4064.     for _, Child in next, Instance:GetChildren() do
  4065.         CallOnChildren(Child, FunctionToCall)
  4066.     end
  4067. end
  4068.  
  4069. local function GetNearestParent(Instance, ClassName)
  4070.     -- Returns the nearest parent of a certain class, or returns nil
  4071.  
  4072.     local Ancestor = Instance
  4073.     repeat
  4074.         Ancestor = Ancestor.Parent
  4075.         if Ancestor == nil then
  4076.             return nil
  4077.         end
  4078.     until Ancestor:IsA(ClassName)
  4079.  
  4080.     return Ancestor
  4081. end
  4082.  
  4083. local function GetBricks(StartInstance)
  4084.     local List = {}
  4085.  
  4086.     -- if StartInstance:IsA("BasePart") then
  4087.     --  List[#List+1] = StartInstance
  4088.     -- end
  4089.  
  4090.     CallOnChildren(StartInstance, function(Item)
  4091.         if Item:IsA("BasePart") then
  4092.             List[#List+1] = Item;
  4093.         end
  4094.     end)
  4095.  
  4096.     return List
  4097. end
  4098.  
  4099. local function Modify(Instance, Values)
  4100.     -- Modifies an Instance by using a table.  
  4101.  
  4102.     assert(type(Values) == "table", "Values is not a table");
  4103.  
  4104.     for Index, Value in next, Values do
  4105.         if type(Index) == "number" then
  4106.             Value.Parent = Instance
  4107.         else
  4108.             Instance[Index] = Value
  4109.         end
  4110.     end
  4111.     return Instance
  4112. end
  4113.  
  4114. local function Make(ClassType, Properties)
  4115.     -- Using a syntax hack to create a nice way to Make new items.  
  4116.  
  4117.     return Modify(Instance.new(ClassType), Properties)
  4118. end
  4119.  
  4120. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  4121. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  4122.  
  4123. local function HasWheelJoint(Part)
  4124.     for _, SurfaceName in pairs(Surfaces) do
  4125.         for _, HingSurfaceName in pairs(HingSurfaces) do
  4126.             if Part[SurfaceName].Name == HingSurfaceName then
  4127.                 return true
  4128.             end
  4129.         end
  4130.     end
  4131.    
  4132.     return false
  4133. end
  4134.  
  4135. local function ShouldBreakJoints(Part)
  4136.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  4137.     --  definitely some edge cases.
  4138.  
  4139.     if NEVER_BREAK_JOINTS then
  4140.         return false
  4141.     end
  4142.    
  4143.     if HasWheelJoint(Part) then
  4144.         return false
  4145.     end
  4146.    
  4147.     local Connected = Part:GetConnectedParts()
  4148.    
  4149.     if #Connected == 1 then
  4150.         return false
  4151.     end
  4152.    
  4153.     for _, Item in pairs(Connected) do
  4154.         if HasWheelJoint(Item) then
  4155.             return false
  4156.         elseif not Item:IsDescendantOf(script.Parent) then
  4157.             return false
  4158.         end
  4159.     end
  4160.    
  4161.     return true
  4162. end
  4163.  
  4164. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  4165.     --- Weld's 2 parts together
  4166.     -- @param Part0 The first part
  4167.     -- @param Part1 The second part (Dependent part most of the time).
  4168.     -- @param [JointType] The type of joint. Defaults to weld.
  4169.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  4170.     -- @return The weld created.
  4171.  
  4172.     JointType = JointType or "Weld"
  4173.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  4174.    
  4175.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  4176.     Modify(NewWeld, {
  4177.         Name = "qCFrameWeldThingy";
  4178.         Part0  = Part0;
  4179.         Part1  = Part1;
  4180.         C0     = CFrame.new();--Part0.CFrame:inverse();
  4181.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  4182.         Parent = Part1;
  4183.     })
  4184.  
  4185.     if not RelativeValue then
  4186.         RelativeValue = Make("CFrameValue", {
  4187.             Parent     = Part1;
  4188.             Name       = "qRelativeCFrameWeldValue";
  4189.             Archivable = true;
  4190.             Value      = NewWeld.C1;
  4191.         })
  4192.     end
  4193.  
  4194.     return NewWeld
  4195. end
  4196.  
  4197. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  4198.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  4199.     -- @param MainPart The part to weld the model to (can be in the model).
  4200.     -- @param [JointType] The type of joint. Defaults to weld.
  4201.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  4202.    
  4203.     for _, Part in pairs(Parts) do
  4204.         if ShouldBreakJoints(Part) then
  4205.             Part:BreakJoints()
  4206.         end
  4207.     end
  4208.    
  4209.     for _, Part in pairs(Parts) do
  4210.         if Part ~= MainPart then
  4211.             WeldTogether(MainPart, Part, JointType, MainPart)
  4212.         end
  4213.     end
  4214.  
  4215.     if not DoNotUnanchor then
  4216.         for _, Part in pairs(Parts) do
  4217.             Part.Anchored = false
  4218.         end
  4219.         MainPart.Anchored = false
  4220.     end
  4221. end
  4222.  
  4223. local function PerfectionWeld()
  4224.     local Tool = GetNearestParent(script, "Tool")
  4225.  
  4226.     local Parts = GetBricks(script.Parent)
  4227.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  4228.  
  4229.     if PrimaryPart then
  4230.         WeldParts(Parts, PrimaryPart, "Weld", false)
  4231.     else
  4232.         warn("qWeld - Unable to weld part")
  4233.     end
  4234.    
  4235.     return Tool
  4236. end
  4237.  
  4238. local Tool = PerfectionWeld()
  4239.  
  4240.  
  4241. if Tool and script.ClassName == "Script" then
  4242.     --- Don't bother with local scripts
  4243.  
  4244.     script.Parent.AncestryChanged:connect(function()
  4245.         PerfectionWeld()
  4246.     end)
  4247. end
  4248.  
  4249. -- Created by Quenty (@Quenty, follow me on twitter).
  4250.  
  4251. end))
  4252. UnionOperation193.Parent = Model171
  4253. UnionOperation193.CFrame = CFrame.new(266.682556, 162.777512, -66.6047058, -1.77512757e-05, 0.0870547071, -0.996203601, 1.35543223e-05, 0.996203542, 0.0870547071, 1, -1.19575316e-05, -1.88638533e-05)
  4254. UnionOperation193.Orientation = Vector3.new(-4.98999977, -90, 0)
  4255. UnionOperation193.Position = Vector3.new(266.682556, 162.777512, -66.6047058)
  4256. UnionOperation193.Rotation = Vector3.new(-90.0099945, -85.0099945, -90.0099945)
  4257. UnionOperation193.Color = Color3.new(1, 0, 0)
  4258. UnionOperation193.Size = Vector3.new(20.9885483, 5.03980398, 5.56811333)
  4259. UnionOperation193.Anchored = true
  4260. UnionOperation193.BrickColor = BrickColor.new("Really red")
  4261. UnionOperation193.CanCollide = false
  4262. UnionOperation193.Material = Enum.Material.Neon
  4263. UnionOperation193.brickColor = BrickColor.new("Really red")
  4264. UnionOperation193.UsePartColor = true
  4265. Script194.Parent = UnionOperation193
  4266. table.insert(cors,sandbox(Script194,function()
  4267. while true do
  4268. wait(.000001)
  4269. script.Parent.UsePartColor=true
  4270. wait(.000001)
  4271. script.Parent.UsePartColor=false
  4272. end
  4273. end))
  4274. Model195.Name = "Bone"
  4275. Model195.Parent = Model0
  4276. Part196.Parent = Model195
  4277. Part196.CFrame = CFrame.new(444.633484, 42.3201294, -51.2514801, 7.61404863e-06, -0.765985608, 0.64285785, -2.67270821e-07, -0.64285779, -0.765985608, 1, 5.66043445e-06, -5.09947677e-06)
  4278. Part196.Orientation = Vector3.new(49.9899979, 90, -180)
  4279. Part196.Position = Vector3.new(444.633484, 42.3201294, -51.2514801)
  4280. Part196.Rotation = Vector3.new(90, 40.0099983, 90)
  4281. Part196.Color = Color3.new(0, 1, 0)
  4282. Part196.Transparency = 1
  4283. Part196.Size = Vector3.new(10.7807922, 5.20451689, 38.2904015)
  4284. Part196.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  4285. Part196.BrickColor = BrickColor.new("Lime green")
  4286. Part196.CanCollide = false
  4287. Part196.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  4288. Part196.Material = Enum.Material.Ice
  4289. Part196.brickColor = BrickColor.new("Lime green")
  4290. Part196.FormFactor = Enum.FormFactor.Custom
  4291. Part196.formFactor = Enum.FormFactor.Custom
  4292. Humanoid197.Parent = Part196
  4293. Humanoid197.Health = 0
  4294. Humanoid197.MaxHealth = 0
  4295. Humanoid197.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  4296. Humanoid197.WalkSpeed = 10
  4297. Humanoid197.maxHealth = 0
  4298. Script198.Name = "Vaccine"
  4299. Script198.Parent = Part196
  4300. table.insert(cors,sandbox(Script198,function()
  4301. function spread() -- created by culinwino3000
  4302. local stuff = game.Workspace:GetChildren()
  4303. for i = 1, #stuff do
  4304. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  4305. local clone = script:clone()
  4306. clone.Parent = stuff[i]
  4307. end
  4308. end
  4309. end
  4310.  
  4311. while true do
  4312. wait(.1)
  4313. spread()
  4314. end
  4315.  
  4316. function GetAllItems(mdl)
  4317. local objs = {}
  4318. function Search(obj)
  4319. if obj~=workspace then
  4320. table.insert(objs,obj)
  4321. end
  4322. if #obj:GetChildren() > 0 then
  4323. for i, v in ipairs(obj:GetChildren()) do
  4324. Search(v)
  4325. end
  4326. end
  4327. end
  4328. Search(mdl)
  4329. return objs
  4330. end
  4331.  
  4332.  
  4333.  
  4334. for i, v in ipairs(GetAllItems(workspace)) do
  4335. if v.className == "Script" then
  4336. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  4337. v.Parent = game.Lighting --Just in case it has a removal prevention.
  4338. t = Instance.new("ObjectValue")
  4339. t.Name = "IsAVirus"
  4340. t.Parent = v
  4341. end
  4342. end
  4343. end
  4344.  
  4345. for i, v in ipairs(game.Lighting:GetChildren()) do
  4346. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  4347. v:remove()
  4348. end
  4349. end
  4350.  
  4351.  
  4352. print("Virus debugged! All clean!")
  4353. end))
  4354. Script199.Parent = Part196
  4355. table.insert(cors,sandbox(Script199,function()
  4356. bin = script.Parent
  4357.  
  4358. function move(target)
  4359.     local dir = (target.Position - bin.Position).unit
  4360.     local spawnPos = bin.Position
  4361.     local pos = spawnPos + (dir * 1)
  4362.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  4363.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  4364. end
  4365.  
  4366. function moveTo(target)
  4367.     bin.BodyPosition.position = target.Position
  4368.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  4369. end
  4370.  
  4371. function findNearestTorso(pos)
  4372.     local list = game.Workspace:GetChildren()
  4373.     local torso = nil
  4374.     local dist = 10000000000000000
  4375.     local temp = nil
  4376.     local human = nil
  4377.     local temp2 = nil
  4378.     for x = 1, #list do
  4379.         temp2 = list[x]
  4380.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  4381.             temp = temp2:findFirstChild("Torso")
  4382.             human = temp2:findFirstChild("Humanoid")
  4383.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  4384.                 if (temp.Position - pos).magnitude < dist then
  4385.                     torso = temp
  4386.                     dist = (temp.Position - pos).magnitude
  4387.                 end
  4388.             end
  4389.         end
  4390.     end
  4391.     return torso
  4392. end
  4393.  
  4394. function shoot(pos)
  4395.     dir = (pos - bin.CFrame.p).unit
  4396.     for i = 1, 50 do
  4397.         local ex = Instance.new("Explosion")
  4398.         ex.BlastRadius = 1
  4399.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  4400.         ex.Parent = game.Workspace
  4401.     end
  4402. end
  4403.  
  4404. function shootAt(torso)
  4405.     local dir = (torso.Position - bin.Position).unit
  4406.     local spawnPos = bin.Position
  4407.     local pos = spawnPos + (dir * 1)
  4408.     shoot(pos)
  4409. end
  4410.  
  4411. while true do
  4412.     local torso = findNearestTorso(bin.Position)
  4413.     if torso~=nil then
  4414.         move(torso)
  4415.         moveTo(torso)
  4416.     end
  4417.     wait()
  4418. end
  4419.  
  4420. end))
  4421. Script200.Parent = Part196
  4422. table.insert(cors,sandbox(Script200,function()
  4423. function onTouched(part)
  4424.     local h = part.Parent:findFirstChild("Humanoid")
  4425.     if h~=nil then
  4426.         h.Health = h.Health 100
  4427.         wait(1)
  4428.     end
  4429. end
  4430.  
  4431. script.Parent.Touched:connect(onTouched)
  4432.  
  4433. end))
  4434. NumberValue201.Name = "Speed"
  4435. NumberValue201.Parent = Part196
  4436. NumberValue201.Value = 230
  4437. BodyGyro202.Parent = Part196
  4438. BodyGyro202.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  4439. BodyGyro202.MaxTorque = Vector3.new(9000, 9000, 9000)
  4440. BodyGyro202.maxTorque = Vector3.new(9000, 9000, 9000)
  4441. BodyGyro202.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  4442. BodyPosition203.Parent = Part196
  4443. BodyPosition203.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  4444. BodyPosition203.MaxForce = Vector3.new(6000, 6000, 6000)
  4445. BodyPosition203.maxForce = Vector3.new(6000, 6000, 6000)
  4446. BodyPosition203.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  4447. UnionOperation204.Parent = Model195
  4448. UnionOperation204.CFrame = CFrame.new(310.212097, 202.778717, -49.4455566, 0.64284879, 0.765993178, 3.61879065e-05, -0.765993118, 0.64284879, -2.29677639e-07, -2.34392846e-05, -2.75720413e-05, 1)
  4449. UnionOperation204.Orientation = Vector3.new(0, 0, -50)
  4450. UnionOperation204.Position = Vector3.new(310.212097, 202.778717, -49.4455566)
  4451. UnionOperation204.Rotation = Vector3.new(0, 0, -50)
  4452. UnionOperation204.Color = Color3.new(1, 0, 0)
  4453. UnionOperation204.Size = Vector3.new(69.4595108, 10.037365, 29.4796295)
  4454. UnionOperation204.BrickColor = BrickColor.new("Really red")
  4455. UnionOperation204.CanCollide = false
  4456. UnionOperation204.Material = Enum.Material.Neon
  4457. UnionOperation204.brickColor = BrickColor.new("Really red")
  4458. UnionOperation204.UsePartColor = true
  4459. Script205.Parent = UnionOperation204
  4460. table.insert(cors,sandbox(Script205,function()
  4461. local debounce = false
  4462. local HealthLoss = 10 -- Damage
  4463. function OnTouched(Part)
  4464. if Part.Parent ~= nil then
  4465. if debounce == false and Part.Parent:findFirstChild("Humanoid") ~= nil then
  4466. debounce = true
  4467. Part.Parent:findFirstChild("Humanoid"):TakeDamage(HealthLoss)
  4468. wait(0)
  4469. debounce = false
  4470. end
  4471. end
  4472. end
  4473. script.Parent.Touched:connect(OnTouched)
  4474. end))
  4475. Script206.Name = "qPerfectionWeld"
  4476. Script206.Parent = Model195
  4477. table.insert(cors,sandbox(Script206,function()
  4478. -- Created by Quenty (@Quenty, follow me on twitter).
  4479. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  4480. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  4481.  
  4482. --[[ INSTRUCTIONS
  4483. - Place in the model
  4484. - Make sure model is anchored
  4485. - That's it. It will weld the model and all children.
  4486.  
  4487. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4488. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4489. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4490. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4491. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4492. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4493. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4494. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4495.  
  4496. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  4497. ]]
  4498.  
  4499. --[[ DOCUMENTATION
  4500. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  4501. - Will work in PBS servers
  4502. - Will work as long as it starts out with the part anchored
  4503. - Stores the relative CFrame as a CFrame value
  4504. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  4505. - Utilizes a recursive algorith to find all parts in the model
  4506. - Will reweld on script reparent if the script is initially parented to a tool.
  4507. - Welds as fast as possible
  4508. ]]
  4509.  
  4510. -- qPerfectionWeld.lua
  4511. -- Created 10/6/2014
  4512. -- Author: Quenty
  4513. -- Version 1.0.3
  4514.  
  4515. -- Updated 10/14/2014 - Updated to 1.0.1
  4516. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  4517.  
  4518. -- Updated 10/14/2014 - Updated to 1.0.2
  4519. --- Fixed bug fix.
  4520.  
  4521. -- Updated 10/14/2014 - Updated to 1.0.3
  4522. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  4523.  
  4524. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  4525.  
  4526.  
  4527. local function CallOnChildren(Instance, FunctionToCall)
  4528.     -- Calls a function on each of the children of a certain object, using recursion.  
  4529.  
  4530.     FunctionToCall(Instance)
  4531.  
  4532.     for _, Child in next, Instance:GetChildren() do
  4533.         CallOnChildren(Child, FunctionToCall)
  4534.     end
  4535. end
  4536.  
  4537. local function GetNearestParent(Instance, ClassName)
  4538.     -- Returns the nearest parent of a certain class, or returns nil
  4539.  
  4540.     local Ancestor = Instance
  4541.     repeat
  4542.         Ancestor = Ancestor.Parent
  4543.         if Ancestor == nil then
  4544.             return nil
  4545.         end
  4546.     until Ancestor:IsA(ClassName)
  4547.  
  4548.     return Ancestor
  4549. end
  4550.  
  4551. local function GetBricks(StartInstance)
  4552.     local List = {}
  4553.  
  4554.     -- if StartInstance:IsA("BasePart") then
  4555.     --  List[#List+1] = StartInstance
  4556.     -- end
  4557.  
  4558.     CallOnChildren(StartInstance, function(Item)
  4559.         if Item:IsA("BasePart") then
  4560.             List[#List+1] = Item;
  4561.         end
  4562.     end)
  4563.  
  4564.     return List
  4565. end
  4566.  
  4567. local function Modify(Instance, Values)
  4568.     -- Modifies an Instance by using a table.  
  4569.  
  4570.     assert(type(Values) == "table", "Values is not a table");
  4571.  
  4572.     for Index, Value in next, Values do
  4573.         if type(Index) == "number" then
  4574.             Value.Parent = Instance
  4575.         else
  4576.             Instance[Index] = Value
  4577.         end
  4578.     end
  4579.     return Instance
  4580. end
  4581.  
  4582. local function Make(ClassType, Properties)
  4583.     -- Using a syntax hack to create a nice way to Make new items.  
  4584.  
  4585.     return Modify(Instance.new(ClassType), Properties)
  4586. end
  4587.  
  4588. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  4589. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  4590.  
  4591. local function HasWheelJoint(Part)
  4592.     for _, SurfaceName in pairs(Surfaces) do
  4593.         for _, HingSurfaceName in pairs(HingSurfaces) do
  4594.             if Part[SurfaceName].Name == HingSurfaceName then
  4595.                 return true
  4596.             end
  4597.         end
  4598.     end
  4599.    
  4600.     return false
  4601. end
  4602.  
  4603. local function ShouldBreakJoints(Part)
  4604.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  4605.     --  definitely some edge cases.
  4606.  
  4607.     if NEVER_BREAK_JOINTS then
  4608.         return false
  4609.     end
  4610.    
  4611.     if HasWheelJoint(Part) then
  4612.         return false
  4613.     end
  4614.    
  4615.     local Connected = Part:GetConnectedParts()
  4616.    
  4617.     if #Connected == 1 then
  4618.         return false
  4619.     end
  4620.    
  4621.     for _, Item in pairs(Connected) do
  4622.         if HasWheelJoint(Item) then
  4623.             return false
  4624.         elseif not Item:IsDescendantOf(script.Parent) then
  4625.             return false
  4626.         end
  4627.     end
  4628.    
  4629.     return true
  4630. end
  4631.  
  4632. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  4633.     --- Weld's 2 parts together
  4634.     -- @param Part0 The first part
  4635.     -- @param Part1 The second part (Dependent part most of the time).
  4636.     -- @param [JointType] The type of joint. Defaults to weld.
  4637.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  4638.     -- @return The weld created.
  4639.  
  4640.     JointType = JointType or "Weld"
  4641.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  4642.    
  4643.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  4644.     Modify(NewWeld, {
  4645.         Name = "qCFrameWeldThingy";
  4646.         Part0  = Part0;
  4647.         Part1  = Part1;
  4648.         C0     = CFrame.new();--Part0.CFrame:inverse();
  4649.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  4650.         Parent = Part1;
  4651.     })
  4652.  
  4653.     if not RelativeValue then
  4654.         RelativeValue = Make("CFrameValue", {
  4655.             Parent     = Part1;
  4656.             Name       = "qRelativeCFrameWeldValue";
  4657.             Archivable = true;
  4658.             Value      = NewWeld.C1;
  4659.         })
  4660.     end
  4661.  
  4662.     return NewWeld
  4663. end
  4664.  
  4665. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  4666.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  4667.     -- @param MainPart The part to weld the model to (can be in the model).
  4668.     -- @param [JointType] The type of joint. Defaults to weld.
  4669.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  4670.    
  4671.     for _, Part in pairs(Parts) do
  4672.         if ShouldBreakJoints(Part) then
  4673.             Part:BreakJoints()
  4674.         end
  4675.     end
  4676.    
  4677.     for _, Part in pairs(Parts) do
  4678.         if Part ~= MainPart then
  4679.             WeldTogether(MainPart, Part, JointType, MainPart)
  4680.         end
  4681.     end
  4682.  
  4683.     if not DoNotUnanchor then
  4684.         for _, Part in pairs(Parts) do
  4685.             Part.Anchored = false
  4686.         end
  4687.         MainPart.Anchored = false
  4688.     end
  4689. end
  4690.  
  4691. local function PerfectionWeld()
  4692.     local Tool = GetNearestParent(script, "Tool")
  4693.  
  4694.     local Parts = GetBricks(script.Parent)
  4695.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  4696.  
  4697.     if PrimaryPart then
  4698.         WeldParts(Parts, PrimaryPart, "Weld", false)
  4699.     else
  4700.         warn("qWeld - Unable to weld part")
  4701.     end
  4702.    
  4703.     return Tool
  4704. end
  4705.  
  4706. local Tool = PerfectionWeld()
  4707.  
  4708.  
  4709. if Tool and script.ClassName == "Script" then
  4710.     --- Don't bother with local scripts
  4711.  
  4712.     script.Parent.AncestryChanged:connect(function()
  4713.         PerfectionWeld()
  4714.     end)
  4715. end
  4716.  
  4717. -- Created by Quenty (@Quenty, follow me on twitter).
  4718.  
  4719. end))
  4720. UnionOperation207.Name = "Head"
  4721. UnionOperation207.Parent = Model195
  4722. UnionOperation207.CFrame = CFrame.new(307.984436, 204.175674, -49.8986053, -0.642508924, 0.766278207, -3.59768746e-05, 0.766278148, 0.642508924, -0.000280174136, -0.000191575848, -0.000207582663, -1)
  4723. UnionOperation207.Orientation = Vector3.new(0.0199999996, -180, 50.0200005)
  4724. UnionOperation207.Position = Vector3.new(307.984436, 204.175674, -49.8986053)
  4725. UnionOperation207.Rotation = Vector3.new(179.979996, 0, -129.979996)
  4726. UnionOperation207.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  4727. UnionOperation207.Transparency = 1
  4728. UnionOperation207.Size = Vector3.new(10.0730858, 8.88804531, 12.8457394)
  4729. UnionOperation207.BrickColor = BrickColor.new("Really black")
  4730. UnionOperation207.CanCollide = false
  4731. UnionOperation207.Material = Enum.Material.Cobblestone
  4732. UnionOperation207.brickColor = BrickColor.new("Really black")
  4733. UnionOperation207.UsePartColor = true
  4734. BodyPosition208.Parent = UnionOperation207
  4735. BodyPosition208.Position = Vector3.new(0, 10, 0)
  4736. BodyPosition208.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  4737. BodyPosition208.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  4738. BodyPosition208.position = Vector3.new(0, 10, 0)
  4739. Model209.Name = "Bone"
  4740. Model209.Parent = Model0
  4741. Part210.Parent = Model209
  4742. Part210.CFrame = CFrame.new(444.637085, 42.3201141, 36.1492767, 7.61404863e-06, -0.765985608, 0.64285785, -2.67270821e-07, -0.64285779, -0.765985608, 1, 5.66043445e-06, -5.09947677e-06)
  4743. Part210.Orientation = Vector3.new(49.9899979, 90, -180)
  4744. Part210.Position = Vector3.new(444.637085, 42.3201141, 36.1492767)
  4745. Part210.Rotation = Vector3.new(90, 40.0099983, 90)
  4746. Part210.Color = Color3.new(0, 1, 0)
  4747. Part210.Transparency = 1
  4748. Part210.Size = Vector3.new(10.7807922, 5.20451689, 38.2904015)
  4749. Part210.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  4750. Part210.BrickColor = BrickColor.new("Lime green")
  4751. Part210.CanCollide = false
  4752. Part210.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  4753. Part210.Material = Enum.Material.Ice
  4754. Part210.brickColor = BrickColor.new("Lime green")
  4755. Part210.FormFactor = Enum.FormFactor.Custom
  4756. Part210.formFactor = Enum.FormFactor.Custom
  4757. Humanoid211.Parent = Part210
  4758. Humanoid211.Health = 0
  4759. Humanoid211.MaxHealth = 0
  4760. Humanoid211.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  4761. Humanoid211.WalkSpeed = 10
  4762. Humanoid211.maxHealth = 0
  4763. Script212.Name = "Vaccine"
  4764. Script212.Parent = Part210
  4765. table.insert(cors,sandbox(Script212,function()
  4766. function spread() -- created by culinwino3000
  4767. local stuff = game.Workspace:GetChildren()
  4768. for i = 1, #stuff do
  4769. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  4770. local clone = script:clone()
  4771. clone.Parent = stuff[i]
  4772. end
  4773. end
  4774. end
  4775.  
  4776. while true do
  4777. wait(.1)
  4778. spread()
  4779. end
  4780.  
  4781. function GetAllItems(mdl)
  4782. local objs = {}
  4783. function Search(obj)
  4784. if obj~=workspace then
  4785. table.insert(objs,obj)
  4786. end
  4787. if #obj:GetChildren() > 0 then
  4788. for i, v in ipairs(obj:GetChildren()) do
  4789. Search(v)
  4790. end
  4791. end
  4792. end
  4793. Search(mdl)
  4794. return objs
  4795. end
  4796.  
  4797.  
  4798.  
  4799. for i, v in ipairs(GetAllItems(workspace)) do
  4800. if v.className == "Script" then
  4801. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  4802. v.Parent = game.Lighting --Just in case it has a removal prevention.
  4803. t = Instance.new("ObjectValue")
  4804. t.Name = "IsAVirus"
  4805. t.Parent = v
  4806. end
  4807. end
  4808. end
  4809.  
  4810. for i, v in ipairs(game.Lighting:GetChildren()) do
  4811. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  4812. v:remove()
  4813. end
  4814. end
  4815.  
  4816.  
  4817. print("Virus debugged! All clean!")
  4818. end))
  4819. Script213.Parent = Part210
  4820. table.insert(cors,sandbox(Script213,function()
  4821. bin = script.Parent
  4822.  
  4823. function move(target)
  4824.     local dir = (target.Position - bin.Position).unit
  4825.     local spawnPos = bin.Position
  4826.     local pos = spawnPos + (dir * 1)
  4827.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  4828.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  4829. end
  4830.  
  4831. function moveTo(target)
  4832.     bin.BodyPosition.position = target.Position
  4833.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  4834. end
  4835.  
  4836. function findNearestTorso(pos)
  4837.     local list = game.Workspace:GetChildren()
  4838.     local torso = nil
  4839.     local dist = 10000000000000000
  4840.     local temp = nil
  4841.     local human = nil
  4842.     local temp2 = nil
  4843.     for x = 1, #list do
  4844.         temp2 = list[x]
  4845.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  4846.             temp = temp2:findFirstChild("Torso")
  4847.             human = temp2:findFirstChild("Humanoid")
  4848.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  4849.                 if (temp.Position - pos).magnitude < dist then
  4850.                     torso = temp
  4851.                     dist = (temp.Position - pos).magnitude
  4852.                 end
  4853.             end
  4854.         end
  4855.     end
  4856.     return torso
  4857. end
  4858.  
  4859. function shoot(pos)
  4860.     dir = (pos - bin.CFrame.p).unit
  4861.     for i = 1, 50 do
  4862.         local ex = Instance.new("Explosion")
  4863.         ex.BlastRadius = 1
  4864.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  4865.         ex.Parent = game.Workspace
  4866.     end
  4867. end
  4868.  
  4869. function shootAt(torso)
  4870.     local dir = (torso.Position - bin.Position).unit
  4871.     local spawnPos = bin.Position
  4872.     local pos = spawnPos + (dir * 1)
  4873.     shoot(pos)
  4874. end
  4875.  
  4876. while true do
  4877.     local torso = findNearestTorso(bin.Position)
  4878.     if torso~=nil then
  4879.         move(torso)
  4880.         moveTo(torso)
  4881.     end
  4882.     wait()
  4883. end
  4884.  
  4885. end))
  4886. Script214.Parent = Part210
  4887. table.insert(cors,sandbox(Script214,function()
  4888. function onTouched(part)
  4889.     local h = part.Parent:findFirstChild("Humanoid")
  4890.     if h~=nil then
  4891.         h.Health = h.Health 100
  4892.         wait(1)
  4893.     end
  4894. end
  4895.  
  4896. script.Parent.Touched:connect(onTouched)
  4897.  
  4898. end))
  4899. NumberValue215.Name = "Speed"
  4900. NumberValue215.Parent = Part210
  4901. NumberValue215.Value = 210
  4902. BodyGyro216.Parent = Part210
  4903. BodyGyro216.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  4904. BodyGyro216.MaxTorque = Vector3.new(9000, 9000, 9000)
  4905. BodyGyro216.maxTorque = Vector3.new(9000, 9000, 9000)
  4906. BodyGyro216.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  4907. BodyPosition217.Parent = Part210
  4908. BodyPosition217.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  4909. BodyPosition217.MaxForce = Vector3.new(6000, 6000, 6000)
  4910. BodyPosition217.maxForce = Vector3.new(6000, 6000, 6000)
  4911. BodyPosition217.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  4912. UnionOperation218.Parent = Model209
  4913. UnionOperation218.CFrame = CFrame.new(310.215759, 202.778687, 37.9551392, 0.64284879, 0.765993178, 3.61879065e-05, -0.765993118, 0.64284879, -2.29677639e-07, -2.34392846e-05, -2.75720413e-05, 1)
  4914. UnionOperation218.Orientation = Vector3.new(0, 0, -50)
  4915. UnionOperation218.Position = Vector3.new(310.215759, 202.778687, 37.9551392)
  4916. UnionOperation218.Rotation = Vector3.new(0, 0, -50)
  4917. UnionOperation218.Color = Color3.new(1, 0, 0)
  4918. UnionOperation218.Size = Vector3.new(69.4595108, 10.037365, 29.4796295)
  4919. UnionOperation218.BrickColor = BrickColor.new("Really red")
  4920. UnionOperation218.CanCollide = false
  4921. UnionOperation218.Material = Enum.Material.Neon
  4922. UnionOperation218.brickColor = BrickColor.new("Really red")
  4923. UnionOperation218.UsePartColor = true
  4924. Script219.Parent = UnionOperation218
  4925. table.insert(cors,sandbox(Script219,function()
  4926. local debounce = false
  4927. local HealthLoss = 10 -- Damage
  4928. function OnTouched(Part)
  4929. if Part.Parent ~= nil then
  4930. if debounce == false and Part.Parent:findFirstChild("Humanoid") ~= nil then
  4931. debounce = true
  4932. Part.Parent:findFirstChild("Humanoid"):TakeDamage(HealthLoss)
  4933. wait(0)
  4934. debounce = false
  4935. end
  4936. end
  4937. end
  4938. script.Parent.Touched:connect(OnTouched)
  4939. end))
  4940. Script220.Name = "qPerfectionWeld"
  4941. Script220.Parent = Model209
  4942. table.insert(cors,sandbox(Script220,function()
  4943. -- Created by Quenty (@Quenty, follow me on twitter).
  4944. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  4945. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  4946.  
  4947. --[[ INSTRUCTIONS
  4948. - Place in the model
  4949. - Make sure model is anchored
  4950. - That's it. It will weld the model and all children.
  4951.  
  4952. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4953. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4954. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4955. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4956. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4957. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4958. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4959. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  4960.  
  4961. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  4962. ]]
  4963.  
  4964. --[[ DOCUMENTATION
  4965. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  4966. - Will work in PBS servers
  4967. - Will work as long as it starts out with the part anchored
  4968. - Stores the relative CFrame as a CFrame value
  4969. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  4970. - Utilizes a recursive algorith to find all parts in the model
  4971. - Will reweld on script reparent if the script is initially parented to a tool.
  4972. - Welds as fast as possible
  4973. ]]
  4974.  
  4975. -- qPerfectionWeld.lua
  4976. -- Created 10/6/2014
  4977. -- Author: Quenty
  4978. -- Version 1.0.3
  4979.  
  4980. -- Updated 10/14/2014 - Updated to 1.0.1
  4981. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  4982.  
  4983. -- Updated 10/14/2014 - Updated to 1.0.2
  4984. --- Fixed bug fix.
  4985.  
  4986. -- Updated 10/14/2014 - Updated to 1.0.3
  4987. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  4988.  
  4989. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  4990.  
  4991.  
  4992. local function CallOnChildren(Instance, FunctionToCall)
  4993.     -- Calls a function on each of the children of a certain object, using recursion.  
  4994.  
  4995.     FunctionToCall(Instance)
  4996.  
  4997.     for _, Child in next, Instance:GetChildren() do
  4998.         CallOnChildren(Child, FunctionToCall)
  4999.     end
  5000. end
  5001.  
  5002. local function GetNearestParent(Instance, ClassName)
  5003.     -- Returns the nearest parent of a certain class, or returns nil
  5004.  
  5005.     local Ancestor = Instance
  5006.     repeat
  5007.         Ancestor = Ancestor.Parent
  5008.         if Ancestor == nil then
  5009.             return nil
  5010.         end
  5011.     until Ancestor:IsA(ClassName)
  5012.  
  5013.     return Ancestor
  5014. end
  5015.  
  5016. local function GetBricks(StartInstance)
  5017.     local List = {}
  5018.  
  5019.     -- if StartInstance:IsA("BasePart") then
  5020.     --  List[#List+1] = StartInstance
  5021.     -- end
  5022.  
  5023.     CallOnChildren(StartInstance, function(Item)
  5024.         if Item:IsA("BasePart") then
  5025.             List[#List+1] = Item;
  5026.         end
  5027.     end)
  5028.  
  5029.     return List
  5030. end
  5031.  
  5032. local function Modify(Instance, Values)
  5033.     -- Modifies an Instance by using a table.  
  5034.  
  5035.     assert(type(Values) == "table", "Values is not a table");
  5036.  
  5037.     for Index, Value in next, Values do
  5038.         if type(Index) == "number" then
  5039.             Value.Parent = Instance
  5040.         else
  5041.             Instance[Index] = Value
  5042.         end
  5043.     end
  5044.     return Instance
  5045. end
  5046.  
  5047. local function Make(ClassType, Properties)
  5048.     -- Using a syntax hack to create a nice way to Make new items.  
  5049.  
  5050.     return Modify(Instance.new(ClassType), Properties)
  5051. end
  5052.  
  5053. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  5054. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  5055.  
  5056. local function HasWheelJoint(Part)
  5057.     for _, SurfaceName in pairs(Surfaces) do
  5058.         for _, HingSurfaceName in pairs(HingSurfaces) do
  5059.             if Part[SurfaceName].Name == HingSurfaceName then
  5060.                 return true
  5061.             end
  5062.         end
  5063.     end
  5064.    
  5065.     return false
  5066. end
  5067.  
  5068. local function ShouldBreakJoints(Part)
  5069.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  5070.     --  definitely some edge cases.
  5071.  
  5072.     if NEVER_BREAK_JOINTS then
  5073.         return false
  5074.     end
  5075.    
  5076.     if HasWheelJoint(Part) then
  5077.         return false
  5078.     end
  5079.    
  5080.     local Connected = Part:GetConnectedParts()
  5081.    
  5082.     if #Connected == 1 then
  5083.         return false
  5084.     end
  5085.    
  5086.     for _, Item in pairs(Connected) do
  5087.         if HasWheelJoint(Item) then
  5088.             return false
  5089.         elseif not Item:IsDescendantOf(script.Parent) then
  5090.             return false
  5091.         end
  5092.     end
  5093.    
  5094.     return true
  5095. end
  5096.  
  5097. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  5098.     --- Weld's 2 parts together
  5099.     -- @param Part0 The first part
  5100.     -- @param Part1 The second part (Dependent part most of the time).
  5101.     -- @param [JointType] The type of joint. Defaults to weld.
  5102.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  5103.     -- @return The weld created.
  5104.  
  5105.     JointType = JointType or "Weld"
  5106.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  5107.    
  5108.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  5109.     Modify(NewWeld, {
  5110.         Name = "qCFrameWeldThingy";
  5111.         Part0  = Part0;
  5112.         Part1  = Part1;
  5113.         C0     = CFrame.new();--Part0.CFrame:inverse();
  5114.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  5115.         Parent = Part1;
  5116.     })
  5117.  
  5118.     if not RelativeValue then
  5119.         RelativeValue = Make("CFrameValue", {
  5120.             Parent     = Part1;
  5121.             Name       = "qRelativeCFrameWeldValue";
  5122.             Archivable = true;
  5123.             Value      = NewWeld.C1;
  5124.         })
  5125.     end
  5126.  
  5127.     return NewWeld
  5128. end
  5129.  
  5130. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  5131.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  5132.     -- @param MainPart The part to weld the model to (can be in the model).
  5133.     -- @param [JointType] The type of joint. Defaults to weld.
  5134.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  5135.    
  5136.     for _, Part in pairs(Parts) do
  5137.         if ShouldBreakJoints(Part) then
  5138.             Part:BreakJoints()
  5139.         end
  5140.     end
  5141.    
  5142.     for _, Part in pairs(Parts) do
  5143.         if Part ~= MainPart then
  5144.             WeldTogether(MainPart, Part, JointType, MainPart)
  5145.         end
  5146.     end
  5147.  
  5148.     if not DoNotUnanchor then
  5149.         for _, Part in pairs(Parts) do
  5150.             Part.Anchored = false
  5151.         end
  5152.         MainPart.Anchored = false
  5153.     end
  5154. end
  5155.  
  5156. local function PerfectionWeld()
  5157.     local Tool = GetNearestParent(script, "Tool")
  5158.  
  5159.     local Parts = GetBricks(script.Parent)
  5160.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  5161.  
  5162.     if PrimaryPart then
  5163.         WeldParts(Parts, PrimaryPart, "Weld", false)
  5164.     else
  5165.         warn("qWeld - Unable to weld part")
  5166.     end
  5167.    
  5168.     return Tool
  5169. end
  5170.  
  5171. local Tool = PerfectionWeld()
  5172.  
  5173.  
  5174. if Tool and script.ClassName == "Script" then
  5175.     --- Don't bother with local scripts
  5176.  
  5177.     script.Parent.AncestryChanged:connect(function()
  5178.         PerfectionWeld()
  5179.     end)
  5180. end
  5181.  
  5182. -- Created by Quenty (@Quenty, follow me on twitter).
  5183.  
  5184. end))
  5185. UnionOperation221.Name = "Head"
  5186. UnionOperation221.Parent = Model209
  5187. UnionOperation221.CFrame = CFrame.new(307.988037, 204.175644, 37.5021591, -0.642508924, 0.766278207, -3.59768746e-05, 0.766278148, 0.642508924, -0.000280174136, -0.000191575848, -0.000207582663, -1)
  5188. UnionOperation221.Orientation = Vector3.new(0.0199999996, -180, 50.0200005)
  5189. UnionOperation221.Position = Vector3.new(307.988037, 204.175644, 37.5021591)
  5190. UnionOperation221.Rotation = Vector3.new(179.979996, 0, -129.979996)
  5191. UnionOperation221.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  5192. UnionOperation221.Transparency = 1
  5193. UnionOperation221.Size = Vector3.new(10.0730858, 8.88804531, 12.8457394)
  5194. UnionOperation221.BrickColor = BrickColor.new("Really black")
  5195. UnionOperation221.CanCollide = false
  5196. UnionOperation221.Material = Enum.Material.Cobblestone
  5197. UnionOperation221.brickColor = BrickColor.new("Really black")
  5198. UnionOperation221.UsePartColor = true
  5199. BodyPosition222.Parent = UnionOperation221
  5200. BodyPosition222.Position = Vector3.new(0, 10, 0)
  5201. BodyPosition222.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  5202. BodyPosition222.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  5203. BodyPosition222.position = Vector3.new(0, 10, 0)
  5204. Model223.Name = "Bone"
  5205. Model223.Parent = Model0
  5206. Part224.Parent = Model223
  5207. Part224.CFrame = CFrame.new(339.13147, 168.079651, -37.0154343, 7.61404863e-06, -0.765985608, 0.64285785, -2.67270821e-07, -0.64285779, -0.765985608, 1, 5.66043445e-06, -5.09947677e-06)
  5208. Part224.Orientation = Vector3.new(49.9899979, 90, -180)
  5209. Part224.Position = Vector3.new(339.13147, 168.079651, -37.0154343)
  5210. Part224.Rotation = Vector3.new(90, 40.0099983, 90)
  5211. Part224.Color = Color3.new(0, 1, 0)
  5212. Part224.Transparency = 1
  5213. Part224.Size = Vector3.new(5.79999971, 2.79999804, 20.6000004)
  5214. Part224.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  5215. Part224.BrickColor = BrickColor.new("Lime green")
  5216. Part224.CanCollide = false
  5217. Part224.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  5218. Part224.Material = Enum.Material.Ice
  5219. Part224.brickColor = BrickColor.new("Lime green")
  5220. Part224.FormFactor = Enum.FormFactor.Custom
  5221. Part224.formFactor = Enum.FormFactor.Custom
  5222. Humanoid225.Parent = Part224
  5223. Humanoid225.Health = 0
  5224. Humanoid225.MaxHealth = 0
  5225. Humanoid225.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  5226. Humanoid225.WalkSpeed = 10
  5227. Humanoid225.maxHealth = 0
  5228. Script226.Name = "Vaccine"
  5229. Script226.Parent = Part224
  5230. table.insert(cors,sandbox(Script226,function()
  5231. function spread() -- created by culinwino3000
  5232. local stuff = game.Workspace:GetChildren()
  5233. for i = 1, #stuff do
  5234. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  5235. local clone = script:clone()
  5236. clone.Parent = stuff[i]
  5237. end
  5238. end
  5239. end
  5240.  
  5241. while true do
  5242. wait(.1)
  5243. spread()
  5244. end
  5245.  
  5246. function GetAllItems(mdl)
  5247. local objs = {}
  5248. function Search(obj)
  5249. if obj~=workspace then
  5250. table.insert(objs,obj)
  5251. end
  5252. if #obj:GetChildren() > 0 then
  5253. for i, v in ipairs(obj:GetChildren()) do
  5254. Search(v)
  5255. end
  5256. end
  5257. end
  5258. Search(mdl)
  5259. return objs
  5260. end
  5261.  
  5262.  
  5263.  
  5264. for i, v in ipairs(GetAllItems(workspace)) do
  5265. if v.className == "Script" then
  5266. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  5267. v.Parent = game.Lighting --Just in case it has a removal prevention.
  5268. t = Instance.new("ObjectValue")
  5269. t.Name = "IsAVirus"
  5270. t.Parent = v
  5271. end
  5272. end
  5273. end
  5274.  
  5275. for i, v in ipairs(game.Lighting:GetChildren()) do
  5276. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  5277. v:remove()
  5278. end
  5279. end
  5280.  
  5281.  
  5282. print("Virus debugged! All clean!")
  5283. end))
  5284. Script227.Parent = Part224
  5285. table.insert(cors,sandbox(Script227,function()
  5286. bin = script.Parent
  5287.  
  5288. function move(target)
  5289.     local dir = (target.Position - bin.Position).unit
  5290.     local spawnPos = bin.Position
  5291.     local pos = spawnPos + (dir * 1)
  5292.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  5293.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  5294. end
  5295.  
  5296. function moveTo(target)
  5297.     bin.BodyPosition.position = target.Position
  5298.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  5299. end
  5300.  
  5301. function findNearestTorso(pos)
  5302.     local list = game.Workspace:GetChildren()
  5303.     local torso = nil
  5304.     local dist = 10000000000000000
  5305.     local temp = nil
  5306.     local human = nil
  5307.     local temp2 = nil
  5308.     for x = 1, #list do
  5309.         temp2 = list[x]
  5310.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  5311.             temp = temp2:findFirstChild("Torso")
  5312.             human = temp2:findFirstChild("Humanoid")
  5313.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  5314.                 if (temp.Position - pos).magnitude < dist then
  5315.                     torso = temp
  5316.                     dist = (temp.Position - pos).magnitude
  5317.                 end
  5318.             end
  5319.         end
  5320.     end
  5321.     return torso
  5322. end
  5323.  
  5324. function shoot(pos)
  5325.     dir = (pos - bin.CFrame.p).unit
  5326.     for i = 1, 50 do
  5327.         local ex = Instance.new("Explosion")
  5328.         ex.BlastRadius = 1
  5329.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  5330.         ex.Parent = game.Workspace
  5331.     end
  5332. end
  5333.  
  5334. function shootAt(torso)
  5335.     local dir = (torso.Position - bin.Position).unit
  5336.     local spawnPos = bin.Position
  5337.     local pos = spawnPos + (dir * 1)
  5338.     shoot(pos)
  5339. end
  5340.  
  5341. while true do
  5342.     local torso = findNearestTorso(bin.Position)
  5343.     if torso~=nil then
  5344.         move(torso)
  5345.         moveTo(torso)
  5346.     end
  5347.     wait()
  5348. end
  5349.  
  5350. end))
  5351. Script228.Parent = Part224
  5352. table.insert(cors,sandbox(Script228,function()
  5353. function onTouched(part)
  5354.     local h = part.Parent:findFirstChild("Humanoid")
  5355.     if h~=nil then
  5356.         h.Health = h.Health 100
  5357.         wait(1)
  5358.     end
  5359. end
  5360.  
  5361. script.Parent.Touched:connect(onTouched)
  5362.  
  5363. end))
  5364. NumberValue229.Name = "Speed"
  5365. NumberValue229.Parent = Part224
  5366. NumberValue229.Value = 60
  5367. BodyGyro230.Parent = Part224
  5368. BodyGyro230.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  5369. BodyGyro230.MaxTorque = Vector3.new(9000, 9000, 9000)
  5370. BodyGyro230.maxTorque = Vector3.new(9000, 9000, 9000)
  5371. BodyGyro230.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  5372. BodyPosition231.Parent = Part224
  5373. BodyPosition231.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  5374. BodyPosition231.MaxForce = Vector3.new(6000, 6000, 6000)
  5375. BodyPosition231.maxForce = Vector3.new(6000, 6000, 6000)
  5376. BodyPosition231.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  5377. UnionOperation232.Parent = Model223
  5378. UnionOperation232.CFrame = CFrame.new(266.813599, 254.405853, -36.0438766, 0.64284879, 0.765993178, 3.61879065e-05, -0.765993118, 0.64284879, -2.29677639e-07, -2.34392846e-05, -2.75720413e-05, 1)
  5379. UnionOperation232.Orientation = Vector3.new(0, 0, -50)
  5380. UnionOperation232.Position = Vector3.new(266.813599, 254.405853, -36.0438766)
  5381. UnionOperation232.Rotation = Vector3.new(0, 0, -50)
  5382. UnionOperation232.Color = Color3.new(0.972549, 0.972549, 0.972549)
  5383. UnionOperation232.Size = Vector3.new(37.3687897, 5.40004063, 15.8598595)
  5384. UnionOperation232.Anchored = true
  5385. UnionOperation232.Material = Enum.Material.Marble
  5386. UnionOperation232.UsePartColor = true
  5387. Script233.Parent = UnionOperation232
  5388. table.insert(cors,sandbox(Script233,function()
  5389. local debounce = false
  5390. local HealthLoss = 5 -- Damage
  5391. function OnTouched(Part)
  5392. if Part.Parent ~= nil then
  5393. if debounce == false and Part.Parent:findFirstChild("Humanoid") ~= nil then
  5394. debounce = true
  5395. Part.Parent:findFirstChild("Humanoid"):TakeDamage(HealthLoss)
  5396. wait(0)
  5397. debounce = false
  5398. end
  5399. end
  5400. end
  5401. script.Parent.Touched:connect(OnTouched)
  5402. end))
  5403. Script234.Name = "qPerfectionWeld"
  5404. Script234.Parent = Model223
  5405. table.insert(cors,sandbox(Script234,function()
  5406. -- Created by Quenty (@Quenty, follow me on twitter).
  5407. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  5408. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  5409.  
  5410. --[[ INSTRUCTIONS
  5411. - Place in the model
  5412. - Make sure model is anchored
  5413. - That's it. It will weld the model and all children.
  5414.  
  5415. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5416. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5417. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5418. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5419. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5420. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5421. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5422. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5423.  
  5424. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  5425. ]]
  5426.  
  5427. --[[ DOCUMENTATION
  5428. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  5429. - Will work in PBS servers
  5430. - Will work as long as it starts out with the part anchored
  5431. - Stores the relative CFrame as a CFrame value
  5432. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  5433. - Utilizes a recursive algorith to find all parts in the model
  5434. - Will reweld on script reparent if the script is initially parented to a tool.
  5435. - Welds as fast as possible
  5436. ]]
  5437.  
  5438. -- qPerfectionWeld.lua
  5439. -- Created 10/6/2014
  5440. -- Author: Quenty
  5441. -- Version 1.0.3
  5442.  
  5443. -- Updated 10/14/2014 - Updated to 1.0.1
  5444. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  5445.  
  5446. -- Updated 10/14/2014 - Updated to 1.0.2
  5447. --- Fixed bug fix.
  5448.  
  5449. -- Updated 10/14/2014 - Updated to 1.0.3
  5450. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  5451.  
  5452. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  5453.  
  5454.  
  5455. local function CallOnChildren(Instance, FunctionToCall)
  5456.     -- Calls a function on each of the children of a certain object, using recursion.  
  5457.  
  5458.     FunctionToCall(Instance)
  5459.  
  5460.     for _, Child in next, Instance:GetChildren() do
  5461.         CallOnChildren(Child, FunctionToCall)
  5462.     end
  5463. end
  5464.  
  5465. local function GetNearestParent(Instance, ClassName)
  5466.     -- Returns the nearest parent of a certain class, or returns nil
  5467.  
  5468.     local Ancestor = Instance
  5469.     repeat
  5470.         Ancestor = Ancestor.Parent
  5471.         if Ancestor == nil then
  5472.             return nil
  5473.         end
  5474.     until Ancestor:IsA(ClassName)
  5475.  
  5476.     return Ancestor
  5477. end
  5478.  
  5479. local function GetBricks(StartInstance)
  5480.     local List = {}
  5481.  
  5482.     -- if StartInstance:IsA("BasePart") then
  5483.     --  List[#List+1] = StartInstance
  5484.     -- end
  5485.  
  5486.     CallOnChildren(StartInstance, function(Item)
  5487.         if Item:IsA("BasePart") then
  5488.             List[#List+1] = Item;
  5489.         end
  5490.     end)
  5491.  
  5492.     return List
  5493. end
  5494.  
  5495. local function Modify(Instance, Values)
  5496.     -- Modifies an Instance by using a table.  
  5497.  
  5498.     assert(type(Values) == "table", "Values is not a table");
  5499.  
  5500.     for Index, Value in next, Values do
  5501.         if type(Index) == "number" then
  5502.             Value.Parent = Instance
  5503.         else
  5504.             Instance[Index] = Value
  5505.         end
  5506.     end
  5507.     return Instance
  5508. end
  5509.  
  5510. local function Make(ClassType, Properties)
  5511.     -- Using a syntax hack to create a nice way to Make new items.  
  5512.  
  5513.     return Modify(Instance.new(ClassType), Properties)
  5514. end
  5515.  
  5516. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  5517. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  5518.  
  5519. local function HasWheelJoint(Part)
  5520.     for _, SurfaceName in pairs(Surfaces) do
  5521.         for _, HingSurfaceName in pairs(HingSurfaces) do
  5522.             if Part[SurfaceName].Name == HingSurfaceName then
  5523.                 return true
  5524.             end
  5525.         end
  5526.     end
  5527.    
  5528.     return false
  5529. end
  5530.  
  5531. local function ShouldBreakJoints(Part)
  5532.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  5533.     --  definitely some edge cases.
  5534.  
  5535.     if NEVER_BREAK_JOINTS then
  5536.         return false
  5537.     end
  5538.    
  5539.     if HasWheelJoint(Part) then
  5540.         return false
  5541.     end
  5542.    
  5543.     local Connected = Part:GetConnectedParts()
  5544.    
  5545.     if #Connected == 1 then
  5546.         return false
  5547.     end
  5548.    
  5549.     for _, Item in pairs(Connected) do
  5550.         if HasWheelJoint(Item) then
  5551.             return false
  5552.         elseif not Item:IsDescendantOf(script.Parent) then
  5553.             return false
  5554.         end
  5555.     end
  5556.    
  5557.     return true
  5558. end
  5559.  
  5560. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  5561.     --- Weld's 2 parts together
  5562.     -- @param Part0 The first part
  5563.     -- @param Part1 The second part (Dependent part most of the time).
  5564.     -- @param [JointType] The type of joint. Defaults to weld.
  5565.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  5566.     -- @return The weld created.
  5567.  
  5568.     JointType = JointType or "Weld"
  5569.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  5570.    
  5571.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  5572.     Modify(NewWeld, {
  5573.         Name = "qCFrameWeldThingy";
  5574.         Part0  = Part0;
  5575.         Part1  = Part1;
  5576.         C0     = CFrame.new();--Part0.CFrame:inverse();
  5577.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  5578.         Parent = Part1;
  5579.     })
  5580.  
  5581.     if not RelativeValue then
  5582.         RelativeValue = Make("CFrameValue", {
  5583.             Parent     = Part1;
  5584.             Name       = "qRelativeCFrameWeldValue";
  5585.             Archivable = true;
  5586.             Value      = NewWeld.C1;
  5587.         })
  5588.     end
  5589.  
  5590.     return NewWeld
  5591. end
  5592.  
  5593. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  5594.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  5595.     -- @param MainPart The part to weld the model to (can be in the model).
  5596.     -- @param [JointType] The type of joint. Defaults to weld.
  5597.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  5598.    
  5599.     for _, Part in pairs(Parts) do
  5600.         if ShouldBreakJoints(Part) then
  5601.             Part:BreakJoints()
  5602.         end
  5603.     end
  5604.    
  5605.     for _, Part in pairs(Parts) do
  5606.         if Part ~= MainPart then
  5607.             WeldTogether(MainPart, Part, JointType, MainPart)
  5608.         end
  5609.     end
  5610.  
  5611.     if not DoNotUnanchor then
  5612.         for _, Part in pairs(Parts) do
  5613.             Part.Anchored = false
  5614.         end
  5615.         MainPart.Anchored = false
  5616.     end
  5617. end
  5618.  
  5619. local function PerfectionWeld()
  5620.     local Tool = GetNearestParent(script, "Tool")
  5621.  
  5622.     local Parts = GetBricks(script.Parent)
  5623.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  5624.  
  5625.     if PrimaryPart then
  5626.         WeldParts(Parts, PrimaryPart, "Weld", false)
  5627.     else
  5628.         warn("qWeld - Unable to weld part")
  5629.     end
  5630.    
  5631.     return Tool
  5632. end
  5633.  
  5634. local Tool = PerfectionWeld()
  5635.  
  5636.  
  5637. if Tool and script.ClassName == "Script" then
  5638.     --- Don't bother with local scripts
  5639.  
  5640.     script.Parent.AncestryChanged:connect(function()
  5641.         PerfectionWeld()
  5642.     end)
  5643. end
  5644.  
  5645. -- Created by Quenty (@Quenty, follow me on twitter).
  5646.  
  5647. end))
  5648. UnionOperation235.Name = "Head"
  5649. UnionOperation235.Parent = Model223
  5650. UnionOperation235.CFrame = CFrame.new(265.615173, 255.157394, -36.2876282, -0.642508924, 0.766278207, -3.59768746e-05, 0.766278148, 0.642508924, -0.000280174136, -0.000191575848, -0.000207582663, -1)
  5651. UnionOperation235.Orientation = Vector3.new(0.0199999996, -180, 50.0200005)
  5652. UnionOperation235.Position = Vector3.new(265.615173, 255.157394, -36.2876282)
  5653. UnionOperation235.Rotation = Vector3.new(179.979996, 0, -129.979996)
  5654. UnionOperation235.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  5655. UnionOperation235.Transparency = 1
  5656. UnionOperation235.Size = Vector3.new(5.41925812, 4.78171349, 6.91092873)
  5657. UnionOperation235.BrickColor = BrickColor.new("Really black")
  5658. UnionOperation235.CanCollide = false
  5659. UnionOperation235.Material = Enum.Material.Cobblestone
  5660. UnionOperation235.brickColor = BrickColor.new("Really black")
  5661. UnionOperation235.UsePartColor = true
  5662. BodyPosition236.Parent = UnionOperation235
  5663. BodyPosition236.Position = Vector3.new(0, 5, 0)
  5664. BodyPosition236.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  5665. BodyPosition236.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  5666. BodyPosition236.position = Vector3.new(0, 5, 0)
  5667. Model237.Name = "Bone"
  5668. Model237.Parent = Model0
  5669. Part238.Parent = Model237
  5670. Part238.CFrame = CFrame.new(325.633362, 184.164917, -6.61549377, 7.61404863e-06, -0.765985608, 0.64285785, -2.67270821e-07, -0.64285779, -0.765985608, 1, 5.66043445e-06, -5.09947677e-06)
  5671. Part238.Orientation = Vector3.new(49.9899979, 90, -180)
  5672. Part238.Position = Vector3.new(325.633362, 184.164917, -6.61549377)
  5673. Part238.Rotation = Vector3.new(90, 40.0099983, 90)
  5674. Part238.Color = Color3.new(0, 1, 0)
  5675. Part238.Transparency = 1
  5676. Part238.Size = Vector3.new(5.79999971, 2.79999804, 20.6000004)
  5677. Part238.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  5678. Part238.BrickColor = BrickColor.new("Lime green")
  5679. Part238.CanCollide = false
  5680. Part238.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  5681. Part238.Material = Enum.Material.Ice
  5682. Part238.brickColor = BrickColor.new("Lime green")
  5683. Part238.FormFactor = Enum.FormFactor.Custom
  5684. Part238.formFactor = Enum.FormFactor.Custom
  5685. Humanoid239.Parent = Part238
  5686. Humanoid239.Health = 0
  5687. Humanoid239.MaxHealth = 0
  5688. Humanoid239.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  5689. Humanoid239.WalkSpeed = 10
  5690. Humanoid239.maxHealth = 0
  5691. Script240.Name = "Vaccine"
  5692. Script240.Parent = Part238
  5693. table.insert(cors,sandbox(Script240,function()
  5694. function spread() -- created by culinwino3000
  5695. local stuff = game.Workspace:GetChildren()
  5696. for i = 1, #stuff do
  5697. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  5698. local clone = script:clone()
  5699. clone.Parent = stuff[i]
  5700. end
  5701. end
  5702. end
  5703.  
  5704. while true do
  5705. wait(.1)
  5706. spread()
  5707. end
  5708.  
  5709. function GetAllItems(mdl)
  5710. local objs = {}
  5711. function Search(obj)
  5712. if obj~=workspace then
  5713. table.insert(objs,obj)
  5714. end
  5715. if #obj:GetChildren() > 0 then
  5716. for i, v in ipairs(obj:GetChildren()) do
  5717. Search(v)
  5718. end
  5719. end
  5720. end
  5721. Search(mdl)
  5722. return objs
  5723. end
  5724.  
  5725.  
  5726.  
  5727. for i, v in ipairs(GetAllItems(workspace)) do
  5728. if v.className == "Script" then
  5729. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  5730. v.Parent = game.Lighting --Just in case it has a removal prevention.
  5731. t = Instance.new("ObjectValue")
  5732. t.Name = "IsAVirus"
  5733. t.Parent = v
  5734. end
  5735. end
  5736. end
  5737.  
  5738. for i, v in ipairs(game.Lighting:GetChildren()) do
  5739. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  5740. v:remove()
  5741. end
  5742. end
  5743.  
  5744.  
  5745. print("Virus debugged! All clean!")
  5746. end))
  5747. Script241.Parent = Part238
  5748. table.insert(cors,sandbox(Script241,function()
  5749. bin = script.Parent
  5750.  
  5751. function move(target)
  5752.     local dir = (target.Position - bin.Position).unit
  5753.     local spawnPos = bin.Position
  5754.     local pos = spawnPos + (dir * 1)
  5755.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  5756.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  5757. end
  5758.  
  5759. function moveTo(target)
  5760.     bin.BodyPosition.position = target.Position
  5761.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  5762. end
  5763.  
  5764. function findNearestTorso(pos)
  5765.     local list = game.Workspace:GetChildren()
  5766.     local torso = nil
  5767.     local dist = 10000000000000000
  5768.     local temp = nil
  5769.     local human = nil
  5770.     local temp2 = nil
  5771.     for x = 1, #list do
  5772.         temp2 = list[x]
  5773.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  5774.             temp = temp2:findFirstChild("Torso")
  5775.             human = temp2:findFirstChild("Humanoid")
  5776.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  5777.                 if (temp.Position - pos).magnitude < dist then
  5778.                     torso = temp
  5779.                     dist = (temp.Position - pos).magnitude
  5780.                 end
  5781.             end
  5782.         end
  5783.     end
  5784.     return torso
  5785. end
  5786.  
  5787. function shoot(pos)
  5788.     dir = (pos - bin.CFrame.p).unit
  5789.     for i = 1, 50 do
  5790.         local ex = Instance.new("Explosion")
  5791.         ex.BlastRadius = 1
  5792.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  5793.         ex.Parent = game.Workspace
  5794.     end
  5795. end
  5796.  
  5797. function shootAt(torso)
  5798.     local dir = (torso.Position - bin.Position).unit
  5799.     local spawnPos = bin.Position
  5800.     local pos = spawnPos + (dir * 1)
  5801.     shoot(pos)
  5802. end
  5803.  
  5804. while true do
  5805.     local torso = findNearestTorso(bin.Position)
  5806.     if torso~=nil then
  5807.         move(torso)
  5808.         moveTo(torso)
  5809.     end
  5810.     wait()
  5811. end
  5812.  
  5813. end))
  5814. Script242.Parent = Part238
  5815. table.insert(cors,sandbox(Script242,function()
  5816. function onTouched(part)
  5817.     local h = part.Parent:findFirstChild("Humanoid")
  5818.     if h~=nil then
  5819.         h.Health = h.Health 100
  5820.         wait(1)
  5821.     end
  5822. end
  5823.  
  5824. script.Parent.Touched:connect(onTouched)
  5825.  
  5826. end))
  5827. NumberValue243.Name = "Speed"
  5828. NumberValue243.Parent = Part238
  5829. NumberValue243.Value = 100
  5830. BodyGyro244.Parent = Part238
  5831. BodyGyro244.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  5832. BodyGyro244.MaxTorque = Vector3.new(9000, 9000, 9000)
  5833. BodyGyro244.maxTorque = Vector3.new(9000, 9000, 9000)
  5834. BodyGyro244.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  5835. BodyPosition245.Parent = Part238
  5836. BodyPosition245.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  5837. BodyPosition245.MaxForce = Vector3.new(6000, 6000, 6000)
  5838. BodyPosition245.maxForce = Vector3.new(6000, 6000, 6000)
  5839. BodyPosition245.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  5840. UnionOperation246.Parent = Model237
  5841. UnionOperation246.CFrame = CFrame.new(266.81488, 254.405853, -5.64367294, 0.64284879, 0.765993178, 3.61879065e-05, -0.765993118, 0.64284879, -2.29677639e-07, -2.34392846e-05, -2.75720413e-05, 1)
  5842. UnionOperation246.Orientation = Vector3.new(0, 0, -50)
  5843. UnionOperation246.Position = Vector3.new(266.81488, 254.405853, -5.64367294)
  5844. UnionOperation246.Rotation = Vector3.new(0, 0, -50)
  5845. UnionOperation246.Color = Color3.new(0.972549, 0.972549, 0.972549)
  5846. UnionOperation246.Size = Vector3.new(37.3687897, 5.40004063, 15.8598595)
  5847. UnionOperation246.Anchored = true
  5848. UnionOperation246.Material = Enum.Material.Marble
  5849. UnionOperation246.UsePartColor = true
  5850. Script247.Parent = UnionOperation246
  5851. table.insert(cors,sandbox(Script247,function()
  5852. local debounce = false
  5853. local HealthLoss = 5 -- Damage
  5854. function OnTouched(Part)
  5855. if Part.Parent ~= nil then
  5856. if debounce == false and Part.Parent:findFirstChild("Humanoid") ~= nil then
  5857. debounce = true
  5858. Part.Parent:findFirstChild("Humanoid"):TakeDamage(HealthLoss)
  5859. wait(0)
  5860. debounce = false
  5861. end
  5862. end
  5863. end
  5864. script.Parent.Touched:connect(OnTouched)
  5865. end))
  5866. Script248.Name = "qPerfectionWeld"
  5867. Script248.Parent = Model237
  5868. table.insert(cors,sandbox(Script248,function()
  5869. -- Created by Quenty (@Quenty, follow me on twitter).
  5870. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  5871. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  5872.  
  5873. --[[ INSTRUCTIONS
  5874. - Place in the model
  5875. - Make sure model is anchored
  5876. - That's it. It will weld the model and all children.
  5877.  
  5878. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5879. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5880. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5881. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5882. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5883. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5884. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5885. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  5886.  
  5887. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  5888. ]]
  5889.  
  5890. --[[ DOCUMENTATION
  5891. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  5892. - Will work in PBS servers
  5893. - Will work as long as it starts out with the part anchored
  5894. - Stores the relative CFrame as a CFrame value
  5895. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  5896. - Utilizes a recursive algorith to find all parts in the model
  5897. - Will reweld on script reparent if the script is initially parented to a tool.
  5898. - Welds as fast as possible
  5899. ]]
  5900.  
  5901. -- qPerfectionWeld.lua
  5902. -- Created 10/6/2014
  5903. -- Author: Quenty
  5904. -- Version 1.0.3
  5905.  
  5906. -- Updated 10/14/2014 - Updated to 1.0.1
  5907. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  5908.  
  5909. -- Updated 10/14/2014 - Updated to 1.0.2
  5910. --- Fixed bug fix.
  5911.  
  5912. -- Updated 10/14/2014 - Updated to 1.0.3
  5913. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  5914.  
  5915. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  5916.  
  5917.  
  5918. local function CallOnChildren(Instance, FunctionToCall)
  5919.     -- Calls a function on each of the children of a certain object, using recursion.  
  5920.  
  5921.     FunctionToCall(Instance)
  5922.  
  5923.     for _, Child in next, Instance:GetChildren() do
  5924.         CallOnChildren(Child, FunctionToCall)
  5925.     end
  5926. end
  5927.  
  5928. local function GetNearestParent(Instance, ClassName)
  5929.     -- Returns the nearest parent of a certain class, or returns nil
  5930.  
  5931.     local Ancestor = Instance
  5932.     repeat
  5933.         Ancestor = Ancestor.Parent
  5934.         if Ancestor == nil then
  5935.             return nil
  5936.         end
  5937.     until Ancestor:IsA(ClassName)
  5938.  
  5939.     return Ancestor
  5940. end
  5941.  
  5942. local function GetBricks(StartInstance)
  5943.     local List = {}
  5944.  
  5945.     -- if StartInstance:IsA("BasePart") then
  5946.     --  List[#List+1] = StartInstance
  5947.     -- end
  5948.  
  5949.     CallOnChildren(StartInstance, function(Item)
  5950.         if Item:IsA("BasePart") then
  5951.             List[#List+1] = Item;
  5952.         end
  5953.     end)
  5954.  
  5955.     return List
  5956. end
  5957.  
  5958. local function Modify(Instance, Values)
  5959.     -- Modifies an Instance by using a table.  
  5960.  
  5961.     assert(type(Values) == "table", "Values is not a table");
  5962.  
  5963.     for Index, Value in next, Values do
  5964.         if type(Index) == "number" then
  5965.             Value.Parent = Instance
  5966.         else
  5967.             Instance[Index] = Value
  5968.         end
  5969.     end
  5970.     return Instance
  5971. end
  5972.  
  5973. local function Make(ClassType, Properties)
  5974.     -- Using a syntax hack to create a nice way to Make new items.  
  5975.  
  5976.     return Modify(Instance.new(ClassType), Properties)
  5977. end
  5978.  
  5979. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  5980. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  5981.  
  5982. local function HasWheelJoint(Part)
  5983.     for _, SurfaceName in pairs(Surfaces) do
  5984.         for _, HingSurfaceName in pairs(HingSurfaces) do
  5985.             if Part[SurfaceName].Name == HingSurfaceName then
  5986.                 return true
  5987.             end
  5988.         end
  5989.     end
  5990.    
  5991.     return false
  5992. end
  5993.  
  5994. local function ShouldBreakJoints(Part)
  5995.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  5996.     --  definitely some edge cases.
  5997.  
  5998.     if NEVER_BREAK_JOINTS then
  5999.         return false
  6000.     end
  6001.    
  6002.     if HasWheelJoint(Part) then
  6003.         return false
  6004.     end
  6005.    
  6006.     local Connected = Part:GetConnectedParts()
  6007.    
  6008.     if #Connected == 1 then
  6009.         return false
  6010.     end
  6011.    
  6012.     for _, Item in pairs(Connected) do
  6013.         if HasWheelJoint(Item) then
  6014.             return false
  6015.         elseif not Item:IsDescendantOf(script.Parent) then
  6016.             return false
  6017.         end
  6018.     end
  6019.    
  6020.     return true
  6021. end
  6022.  
  6023. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  6024.     --- Weld's 2 parts together
  6025.     -- @param Part0 The first part
  6026.     -- @param Part1 The second part (Dependent part most of the time).
  6027.     -- @param [JointType] The type of joint. Defaults to weld.
  6028.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  6029.     -- @return The weld created.
  6030.  
  6031.     JointType = JointType or "Weld"
  6032.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  6033.    
  6034.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  6035.     Modify(NewWeld, {
  6036.         Name = "qCFrameWeldThingy";
  6037.         Part0  = Part0;
  6038.         Part1  = Part1;
  6039.         C0     = CFrame.new();--Part0.CFrame:inverse();
  6040.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  6041.         Parent = Part1;
  6042.     })
  6043.  
  6044.     if not RelativeValue then
  6045.         RelativeValue = Make("CFrameValue", {
  6046.             Parent     = Part1;
  6047.             Name       = "qRelativeCFrameWeldValue";
  6048.             Archivable = true;
  6049.             Value      = NewWeld.C1;
  6050.         })
  6051.     end
  6052.  
  6053.     return NewWeld
  6054. end
  6055.  
  6056. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  6057.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  6058.     -- @param MainPart The part to weld the model to (can be in the model).
  6059.     -- @param [JointType] The type of joint. Defaults to weld.
  6060.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  6061.    
  6062.     for _, Part in pairs(Parts) do
  6063.         if ShouldBreakJoints(Part) then
  6064.             Part:BreakJoints()
  6065.         end
  6066.     end
  6067.    
  6068.     for _, Part in pairs(Parts) do
  6069.         if Part ~= MainPart then
  6070.             WeldTogether(MainPart, Part, JointType, MainPart)
  6071.         end
  6072.     end
  6073.  
  6074.     if not DoNotUnanchor then
  6075.         for _, Part in pairs(Parts) do
  6076.             Part.Anchored = false
  6077.         end
  6078.         MainPart.Anchored = false
  6079.     end
  6080. end
  6081.  
  6082. local function PerfectionWeld()
  6083.     local Tool = GetNearestParent(script, "Tool")
  6084.  
  6085.     local Parts = GetBricks(script.Parent)
  6086.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  6087.  
  6088.     if PrimaryPart then
  6089.         WeldParts(Parts, PrimaryPart, "Weld", false)
  6090.     else
  6091.         warn("qWeld - Unable to weld part")
  6092.     end
  6093.    
  6094.     return Tool
  6095. end
  6096.  
  6097. local Tool = PerfectionWeld()
  6098.  
  6099.  
  6100. if Tool and script.ClassName == "Script" then
  6101.     --- Don't bother with local scripts
  6102.  
  6103.     script.Parent.AncestryChanged:connect(function()
  6104.         PerfectionWeld()
  6105.     end)
  6106. end
  6107.  
  6108. -- Created by Quenty (@Quenty, follow me on twitter).
  6109.  
  6110. end))
  6111. UnionOperation249.Name = "Head"
  6112. UnionOperation249.Parent = Model237
  6113. UnionOperation249.CFrame = CFrame.new(265.616455, 255.157394, -5.88742065, -0.642508924, 0.766278207, -3.59768746e-05, 0.766278148, 0.642508924, -0.000280174136, -0.000191575848, -0.000207582663, -1)
  6114. UnionOperation249.Orientation = Vector3.new(0.0199999996, -180, 50.0200005)
  6115. UnionOperation249.Position = Vector3.new(265.616455, 255.157394, -5.88742065)
  6116. UnionOperation249.Rotation = Vector3.new(179.979996, 0, -129.979996)
  6117. UnionOperation249.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  6118. UnionOperation249.Transparency = 1
  6119. UnionOperation249.Size = Vector3.new(5.41925812, 4.78171349, 6.91092873)
  6120. UnionOperation249.BrickColor = BrickColor.new("Really black")
  6121. UnionOperation249.CanCollide = false
  6122. UnionOperation249.Material = Enum.Material.Cobblestone
  6123. UnionOperation249.brickColor = BrickColor.new("Really black")
  6124. UnionOperation249.UsePartColor = true
  6125. BodyPosition250.Parent = UnionOperation249
  6126. BodyPosition250.Position = Vector3.new(0, 5, 0)
  6127. BodyPosition250.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  6128. BodyPosition250.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  6129. BodyPosition250.position = Vector3.new(0, 5, 0)
  6130. Model251.Name = "Bone"
  6131. Model251.Parent = Model0
  6132. Part252.Parent = Model251
  6133. Part252.CFrame = CFrame.new(444.635315, 42.3201218, -7.05111313, 7.61404863e-06, -0.765985608, 0.64285785, -2.67270821e-07, -0.64285779, -0.765985608, 1, 5.66043445e-06, -5.09947677e-06)
  6134. Part252.Orientation = Vector3.new(49.9899979, 90, -180)
  6135. Part252.Position = Vector3.new(444.635315, 42.3201218, -7.05111313)
  6136. Part252.Rotation = Vector3.new(90, 40.0099983, 90)
  6137. Part252.Color = Color3.new(0, 1, 0)
  6138. Part252.Transparency = 1
  6139. Part252.Size = Vector3.new(10.7807922, 5.20451689, 38.2904015)
  6140. Part252.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  6141. Part252.BrickColor = BrickColor.new("Lime green")
  6142. Part252.CanCollide = false
  6143. Part252.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  6144. Part252.Material = Enum.Material.Ice
  6145. Part252.brickColor = BrickColor.new("Lime green")
  6146. Part252.FormFactor = Enum.FormFactor.Custom
  6147. Part252.formFactor = Enum.FormFactor.Custom
  6148. Humanoid253.Parent = Part252
  6149. Humanoid253.Health = 0
  6150. Humanoid253.MaxHealth = 0
  6151. Humanoid253.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  6152. Humanoid253.WalkSpeed = 10
  6153. Humanoid253.maxHealth = 0
  6154. Script254.Name = "Vaccine"
  6155. Script254.Parent = Part252
  6156. table.insert(cors,sandbox(Script254,function()
  6157. function spread() -- created by culinwino3000
  6158. local stuff = game.Workspace:GetChildren()
  6159. for i = 1, #stuff do
  6160. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  6161. local clone = script:clone()
  6162. clone.Parent = stuff[i]
  6163. end
  6164. end
  6165. end
  6166.  
  6167. while true do
  6168. wait(.1)
  6169. spread()
  6170. end
  6171.  
  6172. function GetAllItems(mdl)
  6173. local objs = {}
  6174. function Search(obj)
  6175. if obj~=workspace then
  6176. table.insert(objs,obj)
  6177. end
  6178. if #obj:GetChildren() > 0 then
  6179. for i, v in ipairs(obj:GetChildren()) do
  6180. Search(v)
  6181. end
  6182. end
  6183. end
  6184. Search(mdl)
  6185. return objs
  6186. end
  6187.  
  6188.  
  6189.  
  6190. for i, v in ipairs(GetAllItems(workspace)) do
  6191. if v.className == "Script" then
  6192. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  6193. v.Parent = game.Lighting --Just in case it has a removal prevention.
  6194. t = Instance.new("ObjectValue")
  6195. t.Name = "IsAVirus"
  6196. t.Parent = v
  6197. end
  6198. end
  6199. end
  6200.  
  6201. for i, v in ipairs(game.Lighting:GetChildren()) do
  6202. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  6203. v:remove()
  6204. end
  6205. end
  6206.  
  6207.  
  6208. print("Virus debugged! All clean!")
  6209. end))
  6210. Script255.Parent = Part252
  6211. table.insert(cors,sandbox(Script255,function()
  6212. bin = script.Parent
  6213.  
  6214. function move(target)
  6215.     local dir = (target.Position - bin.Position).unit
  6216.     local spawnPos = bin.Position
  6217.     local pos = spawnPos + (dir * 1)
  6218.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  6219.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  6220. end
  6221.  
  6222. function moveTo(target)
  6223.     bin.BodyPosition.position = target.Position
  6224.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  6225. end
  6226.  
  6227. function findNearestTorso(pos)
  6228.     local list = game.Workspace:GetChildren()
  6229.     local torso = nil
  6230.     local dist = 10000000000000000
  6231.     local temp = nil
  6232.     local human = nil
  6233.     local temp2 = nil
  6234.     for x = 1, #list do
  6235.         temp2 = list[x]
  6236.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  6237.             temp = temp2:findFirstChild("Torso")
  6238.             human = temp2:findFirstChild("Humanoid")
  6239.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  6240.                 if (temp.Position - pos).magnitude < dist then
  6241.                     torso = temp
  6242.                     dist = (temp.Position - pos).magnitude
  6243.                 end
  6244.             end
  6245.         end
  6246.     end
  6247.     return torso
  6248. end
  6249.  
  6250. function shoot(pos)
  6251.     dir = (pos - bin.CFrame.p).unit
  6252.     for i = 1, 50 do
  6253.         local ex = Instance.new("Explosion")
  6254.         ex.BlastRadius = 1
  6255.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  6256.         ex.Parent = game.Workspace
  6257.     end
  6258. end
  6259.  
  6260. function shootAt(torso)
  6261.     local dir = (torso.Position - bin.Position).unit
  6262.     local spawnPos = bin.Position
  6263.     local pos = spawnPos + (dir * 1)
  6264.     shoot(pos)
  6265. end
  6266.  
  6267. while true do
  6268.     local torso = findNearestTorso(bin.Position)
  6269.     if torso~=nil then
  6270.         move(torso)
  6271.         moveTo(torso)
  6272.     end
  6273.     wait()
  6274. end
  6275.  
  6276. end))
  6277. Script256.Parent = Part252
  6278. table.insert(cors,sandbox(Script256,function()
  6279. function onTouched(part)
  6280.     local h = part.Parent:findFirstChild("Humanoid")
  6281.     if h~=nil then
  6282.         h.Health = h.Health 100
  6283.         wait(1)
  6284.     end
  6285. end
  6286.  
  6287. script.Parent.Touched:connect(onTouched)
  6288.  
  6289. end))
  6290. NumberValue257.Name = "Speed"
  6291. NumberValue257.Parent = Part252
  6292. NumberValue257.Value = 250
  6293. BodyGyro258.Parent = Part252
  6294. BodyGyro258.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  6295. BodyGyro258.MaxTorque = Vector3.new(9000, 9000, 9000)
  6296. BodyGyro258.maxTorque = Vector3.new(9000, 9000, 9000)
  6297. BodyGyro258.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  6298. BodyPosition259.Parent = Part252
  6299. BodyPosition259.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  6300. BodyPosition259.MaxForce = Vector3.new(6000, 6000, 6000)
  6301. BodyPosition259.maxForce = Vector3.new(6000, 6000, 6000)
  6302. BodyPosition259.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  6303. UnionOperation260.Parent = Model251
  6304. UnionOperation260.CFrame = CFrame.new(310.213928, 202.778702, -5.24515533, 0.64284879, 0.765993178, 3.61879065e-05, -0.765993118, 0.64284879, -2.29677639e-07, -2.34392846e-05, -2.75720413e-05, 1)
  6305. UnionOperation260.Orientation = Vector3.new(0, 0, -50)
  6306. UnionOperation260.Position = Vector3.new(310.213928, 202.778702, -5.24515533)
  6307. UnionOperation260.Rotation = Vector3.new(0, 0, -50)
  6308. UnionOperation260.Color = Color3.new(1, 0, 0)
  6309. UnionOperation260.Size = Vector3.new(69.4595108, 10.037365, 29.4796295)
  6310. UnionOperation260.BrickColor = BrickColor.new("Really red")
  6311. UnionOperation260.CanCollide = false
  6312. UnionOperation260.Material = Enum.Material.Neon
  6313. UnionOperation260.brickColor = BrickColor.new("Really red")
  6314. UnionOperation260.UsePartColor = true
  6315. Script261.Parent = UnionOperation260
  6316. table.insert(cors,sandbox(Script261,function()
  6317. local debounce = false
  6318. local HealthLoss = 10 -- Damage
  6319. function OnTouched(Part)
  6320. if Part.Parent ~= nil then
  6321. if debounce == false and Part.Parent:findFirstChild("Humanoid") ~= nil then
  6322. debounce = true
  6323. Part.Parent:findFirstChild("Humanoid"):TakeDamage(HealthLoss)
  6324. wait(0)
  6325. debounce = false
  6326. end
  6327. end
  6328. end
  6329. script.Parent.Touched:connect(OnTouched)
  6330. end))
  6331. Script262.Name = "qPerfectionWeld"
  6332. Script262.Parent = Model251
  6333. table.insert(cors,sandbox(Script262,function()
  6334. -- Created by Quenty (@Quenty, follow me on twitter).
  6335. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  6336. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  6337.  
  6338. --[[ INSTRUCTIONS
  6339. - Place in the model
  6340. - Make sure model is anchored
  6341. - That's it. It will weld the model and all children.
  6342.  
  6343. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6344. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6345. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6346. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6347. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6348. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6349. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6350. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6351.  
  6352. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  6353. ]]
  6354.  
  6355. --[[ DOCUMENTATION
  6356. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  6357. - Will work in PBS servers
  6358. - Will work as long as it starts out with the part anchored
  6359. - Stores the relative CFrame as a CFrame value
  6360. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  6361. - Utilizes a recursive algorith to find all parts in the model
  6362. - Will reweld on script reparent if the script is initially parented to a tool.
  6363. - Welds as fast as possible
  6364. ]]
  6365.  
  6366. -- qPerfectionWeld.lua
  6367. -- Created 10/6/2014
  6368. -- Author: Quenty
  6369. -- Version 1.0.3
  6370.  
  6371. -- Updated 10/14/2014 - Updated to 1.0.1
  6372. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  6373.  
  6374. -- Updated 10/14/2014 - Updated to 1.0.2
  6375. --- Fixed bug fix.
  6376.  
  6377. -- Updated 10/14/2014 - Updated to 1.0.3
  6378. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  6379.  
  6380. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  6381.  
  6382.  
  6383. local function CallOnChildren(Instance, FunctionToCall)
  6384.     -- Calls a function on each of the children of a certain object, using recursion.  
  6385.  
  6386.     FunctionToCall(Instance)
  6387.  
  6388.     for _, Child in next, Instance:GetChildren() do
  6389.         CallOnChildren(Child, FunctionToCall)
  6390.     end
  6391. end
  6392.  
  6393. local function GetNearestParent(Instance, ClassName)
  6394.     -- Returns the nearest parent of a certain class, or returns nil
  6395.  
  6396.     local Ancestor = Instance
  6397.     repeat
  6398.         Ancestor = Ancestor.Parent
  6399.         if Ancestor == nil then
  6400.             return nil
  6401.         end
  6402.     until Ancestor:IsA(ClassName)
  6403.  
  6404.     return Ancestor
  6405. end
  6406.  
  6407. local function GetBricks(StartInstance)
  6408.     local List = {}
  6409.  
  6410.     -- if StartInstance:IsA("BasePart") then
  6411.     --  List[#List+1] = StartInstance
  6412.     -- end
  6413.  
  6414.     CallOnChildren(StartInstance, function(Item)
  6415.         if Item:IsA("BasePart") then
  6416.             List[#List+1] = Item;
  6417.         end
  6418.     end)
  6419.  
  6420.     return List
  6421. end
  6422.  
  6423. local function Modify(Instance, Values)
  6424.     -- Modifies an Instance by using a table.  
  6425.  
  6426.     assert(type(Values) == "table", "Values is not a table");
  6427.  
  6428.     for Index, Value in next, Values do
  6429.         if type(Index) == "number" then
  6430.             Value.Parent = Instance
  6431.         else
  6432.             Instance[Index] = Value
  6433.         end
  6434.     end
  6435.     return Instance
  6436. end
  6437.  
  6438. local function Make(ClassType, Properties)
  6439.     -- Using a syntax hack to create a nice way to Make new items.  
  6440.  
  6441.     return Modify(Instance.new(ClassType), Properties)
  6442. end
  6443.  
  6444. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  6445. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  6446.  
  6447. local function HasWheelJoint(Part)
  6448.     for _, SurfaceName in pairs(Surfaces) do
  6449.         for _, HingSurfaceName in pairs(HingSurfaces) do
  6450.             if Part[SurfaceName].Name == HingSurfaceName then
  6451.                 return true
  6452.             end
  6453.         end
  6454.     end
  6455.    
  6456.     return false
  6457. end
  6458.  
  6459. local function ShouldBreakJoints(Part)
  6460.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  6461.     --  definitely some edge cases.
  6462.  
  6463.     if NEVER_BREAK_JOINTS then
  6464.         return false
  6465.     end
  6466.    
  6467.     if HasWheelJoint(Part) then
  6468.         return false
  6469.     end
  6470.    
  6471.     local Connected = Part:GetConnectedParts()
  6472.    
  6473.     if #Connected == 1 then
  6474.         return false
  6475.     end
  6476.    
  6477.     for _, Item in pairs(Connected) do
  6478.         if HasWheelJoint(Item) then
  6479.             return false
  6480.         elseif not Item:IsDescendantOf(script.Parent) then
  6481.             return false
  6482.         end
  6483.     end
  6484.    
  6485.     return true
  6486. end
  6487.  
  6488. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  6489.     --- Weld's 2 parts together
  6490.     -- @param Part0 The first part
  6491.     -- @param Part1 The second part (Dependent part most of the time).
  6492.     -- @param [JointType] The type of joint. Defaults to weld.
  6493.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  6494.     -- @return The weld created.
  6495.  
  6496.     JointType = JointType or "Weld"
  6497.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  6498.    
  6499.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  6500.     Modify(NewWeld, {
  6501.         Name = "qCFrameWeldThingy";
  6502.         Part0  = Part0;
  6503.         Part1  = Part1;
  6504.         C0     = CFrame.new();--Part0.CFrame:inverse();
  6505.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  6506.         Parent = Part1;
  6507.     })
  6508.  
  6509.     if not RelativeValue then
  6510.         RelativeValue = Make("CFrameValue", {
  6511.             Parent     = Part1;
  6512.             Name       = "qRelativeCFrameWeldValue";
  6513.             Archivable = true;
  6514.             Value      = NewWeld.C1;
  6515.         })
  6516.     end
  6517.  
  6518.     return NewWeld
  6519. end
  6520.  
  6521. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  6522.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  6523.     -- @param MainPart The part to weld the model to (can be in the model).
  6524.     -- @param [JointType] The type of joint. Defaults to weld.
  6525.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  6526.    
  6527.     for _, Part in pairs(Parts) do
  6528.         if ShouldBreakJoints(Part) then
  6529.             Part:BreakJoints()
  6530.         end
  6531.     end
  6532.    
  6533.     for _, Part in pairs(Parts) do
  6534.         if Part ~= MainPart then
  6535.             WeldTogether(MainPart, Part, JointType, MainPart)
  6536.         end
  6537.     end
  6538.  
  6539.     if not DoNotUnanchor then
  6540.         for _, Part in pairs(Parts) do
  6541.             Part.Anchored = false
  6542.         end
  6543.         MainPart.Anchored = false
  6544.     end
  6545. end
  6546.  
  6547. local function PerfectionWeld()
  6548.     local Tool = GetNearestParent(script, "Tool")
  6549.  
  6550.     local Parts = GetBricks(script.Parent)
  6551.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  6552.  
  6553.     if PrimaryPart then
  6554.         WeldParts(Parts, PrimaryPart, "Weld", false)
  6555.     else
  6556.         warn("qWeld - Unable to weld part")
  6557.     end
  6558.    
  6559.     return Tool
  6560. end
  6561.  
  6562. local Tool = PerfectionWeld()
  6563.  
  6564.  
  6565. if Tool and script.ClassName == "Script" then
  6566.     --- Don't bother with local scripts
  6567.  
  6568.     script.Parent.AncestryChanged:connect(function()
  6569.         PerfectionWeld()
  6570.     end)
  6571. end
  6572.  
  6573. -- Created by Quenty (@Quenty, follow me on twitter).
  6574.  
  6575. end))
  6576. UnionOperation263.Name = "Head"
  6577. UnionOperation263.Parent = Model251
  6578. UnionOperation263.CFrame = CFrame.new(307.986267, 204.175659, -5.69826508, -0.642508924, 0.766278207, -3.59768746e-05, 0.766278148, 0.642508924, -0.000280174136, -0.000191575848, -0.000207582663, -1)
  6579. UnionOperation263.Orientation = Vector3.new(0.0199999996, -180, 50.0200005)
  6580. UnionOperation263.Position = Vector3.new(307.986267, 204.175659, -5.69826508)
  6581. UnionOperation263.Rotation = Vector3.new(179.979996, 0, -129.979996)
  6582. UnionOperation263.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  6583. UnionOperation263.Transparency = 1
  6584. UnionOperation263.Size = Vector3.new(10.0730858, 8.88804531, 12.8457394)
  6585. UnionOperation263.BrickColor = BrickColor.new("Really black")
  6586. UnionOperation263.CanCollide = false
  6587. UnionOperation263.Material = Enum.Material.Cobblestone
  6588. UnionOperation263.brickColor = BrickColor.new("Really black")
  6589. UnionOperation263.UsePartColor = true
  6590. BodyPosition264.Parent = UnionOperation263
  6591. BodyPosition264.Position = Vector3.new(0, 10, 0)
  6592. BodyPosition264.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  6593. BodyPosition264.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  6594. BodyPosition264.position = Vector3.new(0, 10, 0)
  6595. Model265.Name = "Bone"
  6596. Model265.Parent = Model0
  6597. Part266.Parent = Model265
  6598. Part266.CFrame = CFrame.new(339.135193, 168.07962, 52.9853745, 7.61404863e-06, -0.765985608, 0.64285785, -2.67270821e-07, -0.64285779, -0.765985608, 1, 5.66043445e-06, -5.09947677e-06)
  6599. Part266.Orientation = Vector3.new(49.9899979, 90, -180)
  6600. Part266.Position = Vector3.new(339.135193, 168.07962, 52.9853745)
  6601. Part266.Rotation = Vector3.new(90, 40.0099983, 90)
  6602. Part266.Color = Color3.new(0, 1, 0)
  6603. Part266.Transparency = 1
  6604. Part266.Size = Vector3.new(5.79999971, 2.79999804, 20.6000004)
  6605. Part266.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  6606. Part266.BrickColor = BrickColor.new("Lime green")
  6607. Part266.CanCollide = false
  6608. Part266.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  6609. Part266.Material = Enum.Material.Ice
  6610. Part266.brickColor = BrickColor.new("Lime green")
  6611. Part266.FormFactor = Enum.FormFactor.Custom
  6612. Part266.formFactor = Enum.FormFactor.Custom
  6613. Humanoid267.Parent = Part266
  6614. Humanoid267.Health = 0
  6615. Humanoid267.MaxHealth = 0
  6616. Humanoid267.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  6617. Humanoid267.WalkSpeed = 10
  6618. Humanoid267.maxHealth = 0
  6619. Script268.Name = "Vaccine"
  6620. Script268.Parent = Part266
  6621. table.insert(cors,sandbox(Script268,function()
  6622. function spread() -- created by culinwino3000
  6623. local stuff = game.Workspace:GetChildren()
  6624. for i = 1, #stuff do
  6625. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  6626. local clone = script:clone()
  6627. clone.Parent = stuff[i]
  6628. end
  6629. end
  6630. end
  6631.  
  6632. while true do
  6633. wait(.1)
  6634. spread()
  6635. end
  6636.  
  6637. function GetAllItems(mdl)
  6638. local objs = {}
  6639. function Search(obj)
  6640. if obj~=workspace then
  6641. table.insert(objs,obj)
  6642. end
  6643. if #obj:GetChildren() > 0 then
  6644. for i, v in ipairs(obj:GetChildren()) do
  6645. Search(v)
  6646. end
  6647. end
  6648. end
  6649. Search(mdl)
  6650. return objs
  6651. end
  6652.  
  6653.  
  6654.  
  6655. for i, v in ipairs(GetAllItems(workspace)) do
  6656. if v.className == "Script" then
  6657. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  6658. v.Parent = game.Lighting --Just in case it has a removal prevention.
  6659. t = Instance.new("ObjectValue")
  6660. t.Name = "IsAVirus"
  6661. t.Parent = v
  6662. end
  6663. end
  6664. end
  6665.  
  6666. for i, v in ipairs(game.Lighting:GetChildren()) do
  6667. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  6668. v:remove()
  6669. end
  6670. end
  6671.  
  6672.  
  6673. print("Virus debugged! All clean!")
  6674. end))
  6675. Script269.Parent = Part266
  6676. table.insert(cors,sandbox(Script269,function()
  6677. bin = script.Parent
  6678.  
  6679. function move(target)
  6680.     local dir = (target.Position - bin.Position).unit
  6681.     local spawnPos = bin.Position
  6682.     local pos = spawnPos + (dir * 1)
  6683.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  6684.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  6685. end
  6686.  
  6687. function moveTo(target)
  6688.     bin.BodyPosition.position = target.Position
  6689.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  6690. end
  6691.  
  6692. function findNearestTorso(pos)
  6693.     local list = game.Workspace:GetChildren()
  6694.     local torso = nil
  6695.     local dist = 10000000000000000
  6696.     local temp = nil
  6697.     local human = nil
  6698.     local temp2 = nil
  6699.     for x = 1, #list do
  6700.         temp2 = list[x]
  6701.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  6702.             temp = temp2:findFirstChild("Torso")
  6703.             human = temp2:findFirstChild("Humanoid")
  6704.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  6705.                 if (temp.Position - pos).magnitude < dist then
  6706.                     torso = temp
  6707.                     dist = (temp.Position - pos).magnitude
  6708.                 end
  6709.             end
  6710.         end
  6711.     end
  6712.     return torso
  6713. end
  6714.  
  6715. function shoot(pos)
  6716.     dir = (pos - bin.CFrame.p).unit
  6717.     for i = 1, 50 do
  6718.         local ex = Instance.new("Explosion")
  6719.         ex.BlastRadius = 1
  6720.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  6721.         ex.Parent = game.Workspace
  6722.     end
  6723. end
  6724.  
  6725. function shootAt(torso)
  6726.     local dir = (torso.Position - bin.Position).unit
  6727.     local spawnPos = bin.Position
  6728.     local pos = spawnPos + (dir * 1)
  6729.     shoot(pos)
  6730. end
  6731.  
  6732. while true do
  6733.     local torso = findNearestTorso(bin.Position)
  6734.     if torso~=nil then
  6735.         move(torso)
  6736.         moveTo(torso)
  6737.     end
  6738.     wait()
  6739. end
  6740.  
  6741. end))
  6742. Script270.Parent = Part266
  6743. table.insert(cors,sandbox(Script270,function()
  6744. function onTouched(part)
  6745.     local h = part.Parent:findFirstChild("Humanoid")
  6746.     if h~=nil then
  6747.         h.Health = h.Health 100
  6748.         wait(1)
  6749.     end
  6750. end
  6751.  
  6752. script.Parent.Touched:connect(onTouched)
  6753.  
  6754. end))
  6755. NumberValue271.Name = "Speed"
  6756. NumberValue271.Parent = Part266
  6757. NumberValue271.Value = 120
  6758. BodyGyro272.Parent = Part266
  6759. BodyGyro272.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  6760. BodyGyro272.MaxTorque = Vector3.new(9000, 9000, 9000)
  6761. BodyGyro272.maxTorque = Vector3.new(9000, 9000, 9000)
  6762. BodyGyro272.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  6763. BodyPosition273.Parent = Part266
  6764. BodyPosition273.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  6765. BodyPosition273.MaxForce = Vector3.new(6000, 6000, 6000)
  6766. BodyPosition273.maxForce = Vector3.new(6000, 6000, 6000)
  6767. BodyPosition273.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  6768. UnionOperation274.Parent = Model265
  6769. UnionOperation274.CFrame = CFrame.new(266.817383, 254.405838, 53.9568787, 0.64284879, 0.765993178, 3.61879065e-05, -0.765993118, 0.64284879, -2.29677639e-07, -2.34392846e-05, -2.75720413e-05, 1)
  6770. UnionOperation274.Orientation = Vector3.new(0, 0, -50)
  6771. UnionOperation274.Position = Vector3.new(266.817383, 254.405838, 53.9568787)
  6772. UnionOperation274.Rotation = Vector3.new(0, 0, -50)
  6773. UnionOperation274.Color = Color3.new(0.972549, 0.972549, 0.972549)
  6774. UnionOperation274.Size = Vector3.new(37.3687897, 5.40004063, 15.8598595)
  6775. UnionOperation274.Anchored = true
  6776. UnionOperation274.Material = Enum.Material.Marble
  6777. UnionOperation274.UsePartColor = true
  6778. Script275.Parent = UnionOperation274
  6779. table.insert(cors,sandbox(Script275,function()
  6780. local debounce = false
  6781. local HealthLoss = 5 -- Damage
  6782. function OnTouched(Part)
  6783. if Part.Parent ~= nil then
  6784. if debounce == false and Part.Parent:findFirstChild("Humanoid") ~= nil then
  6785. debounce = true
  6786. Part.Parent:findFirstChild("Humanoid"):TakeDamage(HealthLoss)
  6787. wait(0)
  6788. debounce = false
  6789. end
  6790. end
  6791. end
  6792. script.Parent.Touched:connect(OnTouched)
  6793. end))
  6794. Script276.Name = "qPerfectionWeld"
  6795. Script276.Parent = Model265
  6796. table.insert(cors,sandbox(Script276,function()
  6797. -- Created by Quenty (@Quenty, follow me on twitter).
  6798. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  6799. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  6800.  
  6801. --[[ INSTRUCTIONS
  6802. - Place in the model
  6803. - Make sure model is anchored
  6804. - That's it. It will weld the model and all children.
  6805.  
  6806. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6807. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6808. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6809. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6810. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6811. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6812. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6813. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  6814.  
  6815. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  6816. ]]
  6817.  
  6818. --[[ DOCUMENTATION
  6819. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  6820. - Will work in PBS servers
  6821. - Will work as long as it starts out with the part anchored
  6822. - Stores the relative CFrame as a CFrame value
  6823. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  6824. - Utilizes a recursive algorith to find all parts in the model
  6825. - Will reweld on script reparent if the script is initially parented to a tool.
  6826. - Welds as fast as possible
  6827. ]]
  6828.  
  6829. -- qPerfectionWeld.lua
  6830. -- Created 10/6/2014
  6831. -- Author: Quenty
  6832. -- Version 1.0.3
  6833.  
  6834. -- Updated 10/14/2014 - Updated to 1.0.1
  6835. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  6836.  
  6837. -- Updated 10/14/2014 - Updated to 1.0.2
  6838. --- Fixed bug fix.
  6839.  
  6840. -- Updated 10/14/2014 - Updated to 1.0.3
  6841. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  6842.  
  6843. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  6844.  
  6845.  
  6846. local function CallOnChildren(Instance, FunctionToCall)
  6847.     -- Calls a function on each of the children of a certain object, using recursion.  
  6848.  
  6849.     FunctionToCall(Instance)
  6850.  
  6851.     for _, Child in next, Instance:GetChildren() do
  6852.         CallOnChildren(Child, FunctionToCall)
  6853.     end
  6854. end
  6855.  
  6856. local function GetNearestParent(Instance, ClassName)
  6857.     -- Returns the nearest parent of a certain class, or returns nil
  6858.  
  6859.     local Ancestor = Instance
  6860.     repeat
  6861.         Ancestor = Ancestor.Parent
  6862.         if Ancestor == nil then
  6863.             return nil
  6864.         end
  6865.     until Ancestor:IsA(ClassName)
  6866.  
  6867.     return Ancestor
  6868. end
  6869.  
  6870. local function GetBricks(StartInstance)
  6871.     local List = {}
  6872.  
  6873.     -- if StartInstance:IsA("BasePart") then
  6874.     --  List[#List+1] = StartInstance
  6875.     -- end
  6876.  
  6877.     CallOnChildren(StartInstance, function(Item)
  6878.         if Item:IsA("BasePart") then
  6879.             List[#List+1] = Item;
  6880.         end
  6881.     end)
  6882.  
  6883.     return List
  6884. end
  6885.  
  6886. local function Modify(Instance, Values)
  6887.     -- Modifies an Instance by using a table.  
  6888.  
  6889.     assert(type(Values) == "table", "Values is not a table");
  6890.  
  6891.     for Index, Value in next, Values do
  6892.         if type(Index) == "number" then
  6893.             Value.Parent = Instance
  6894.         else
  6895.             Instance[Index] = Value
  6896.         end
  6897.     end
  6898.     return Instance
  6899. end
  6900.  
  6901. local function Make(ClassType, Properties)
  6902.     -- Using a syntax hack to create a nice way to Make new items.  
  6903.  
  6904.     return Modify(Instance.new(ClassType), Properties)
  6905. end
  6906.  
  6907. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  6908. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  6909.  
  6910. local function HasWheelJoint(Part)
  6911.     for _, SurfaceName in pairs(Surfaces) do
  6912.         for _, HingSurfaceName in pairs(HingSurfaces) do
  6913.             if Part[SurfaceName].Name == HingSurfaceName then
  6914.                 return true
  6915.             end
  6916.         end
  6917.     end
  6918.    
  6919.     return false
  6920. end
  6921.  
  6922. local function ShouldBreakJoints(Part)
  6923.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  6924.     --  definitely some edge cases.
  6925.  
  6926.     if NEVER_BREAK_JOINTS then
  6927.         return false
  6928.     end
  6929.    
  6930.     if HasWheelJoint(Part) then
  6931.         return false
  6932.     end
  6933.    
  6934.     local Connected = Part:GetConnectedParts()
  6935.    
  6936.     if #Connected == 1 then
  6937.         return false
  6938.     end
  6939.    
  6940.     for _, Item in pairs(Connected) do
  6941.         if HasWheelJoint(Item) then
  6942.             return false
  6943.         elseif not Item:IsDescendantOf(script.Parent) then
  6944.             return false
  6945.         end
  6946.     end
  6947.    
  6948.     return true
  6949. end
  6950.  
  6951. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  6952.     --- Weld's 2 parts together
  6953.     -- @param Part0 The first part
  6954.     -- @param Part1 The second part (Dependent part most of the time).
  6955.     -- @param [JointType] The type of joint. Defaults to weld.
  6956.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  6957.     -- @return The weld created.
  6958.  
  6959.     JointType = JointType or "Weld"
  6960.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  6961.    
  6962.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  6963.     Modify(NewWeld, {
  6964.         Name = "qCFrameWeldThingy";
  6965.         Part0  = Part0;
  6966.         Part1  = Part1;
  6967.         C0     = CFrame.new();--Part0.CFrame:inverse();
  6968.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  6969.         Parent = Part1;
  6970.     })
  6971.  
  6972.     if not RelativeValue then
  6973.         RelativeValue = Make("CFrameValue", {
  6974.             Parent     = Part1;
  6975.             Name       = "qRelativeCFrameWeldValue";
  6976.             Archivable = true;
  6977.             Value      = NewWeld.C1;
  6978.         })
  6979.     end
  6980.  
  6981.     return NewWeld
  6982. end
  6983.  
  6984. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  6985.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  6986.     -- @param MainPart The part to weld the model to (can be in the model).
  6987.     -- @param [JointType] The type of joint. Defaults to weld.
  6988.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  6989.    
  6990.     for _, Part in pairs(Parts) do
  6991.         if ShouldBreakJoints(Part) then
  6992.             Part:BreakJoints()
  6993.         end
  6994.     end
  6995.    
  6996.     for _, Part in pairs(Parts) do
  6997.         if Part ~= MainPart then
  6998.             WeldTogether(MainPart, Part, JointType, MainPart)
  6999.         end
  7000.     end
  7001.  
  7002.     if not DoNotUnanchor then
  7003.         for _, Part in pairs(Parts) do
  7004.             Part.Anchored = false
  7005.         end
  7006.         MainPart.Anchored = false
  7007.     end
  7008. end
  7009.  
  7010. local function PerfectionWeld()
  7011.     local Tool = GetNearestParent(script, "Tool")
  7012.  
  7013.     local Parts = GetBricks(script.Parent)
  7014.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  7015.  
  7016.     if PrimaryPart then
  7017.         WeldParts(Parts, PrimaryPart, "Weld", false)
  7018.     else
  7019.         warn("qWeld - Unable to weld part")
  7020.     end
  7021.    
  7022.     return Tool
  7023. end
  7024.  
  7025. local Tool = PerfectionWeld()
  7026.  
  7027.  
  7028. if Tool and script.ClassName == "Script" then
  7029.     --- Don't bother with local scripts
  7030.  
  7031.     script.Parent.AncestryChanged:connect(function()
  7032.         PerfectionWeld()
  7033.     end)
  7034. end
  7035.  
  7036. -- Created by Quenty (@Quenty, follow me on twitter).
  7037.  
  7038. end))
  7039. UnionOperation277.Name = "Head"
  7040. UnionOperation277.Parent = Model265
  7041. UnionOperation277.CFrame = CFrame.new(265.618896, 255.157364, 53.7131805, -0.642508924, 0.766278207, -3.59768746e-05, 0.766278148, 0.642508924, -0.000280174136, -0.000191575848, -0.000207582663, -1)
  7042. UnionOperation277.Orientation = Vector3.new(0.0199999996, -180, 50.0200005)
  7043. UnionOperation277.Position = Vector3.new(265.618896, 255.157364, 53.7131805)
  7044. UnionOperation277.Rotation = Vector3.new(179.979996, 0, -129.979996)
  7045. UnionOperation277.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  7046. UnionOperation277.Transparency = 1
  7047. UnionOperation277.Size = Vector3.new(5.41925812, 4.78171349, 6.91092873)
  7048. UnionOperation277.BrickColor = BrickColor.new("Really black")
  7049. UnionOperation277.CanCollide = false
  7050. UnionOperation277.Material = Enum.Material.Cobblestone
  7051. UnionOperation277.brickColor = BrickColor.new("Really black")
  7052. UnionOperation277.UsePartColor = true
  7053. BodyPosition278.Parent = UnionOperation277
  7054. BodyPosition278.Position = Vector3.new(0, 5, 0)
  7055. BodyPosition278.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  7056. BodyPosition278.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  7057. BodyPosition278.position = Vector3.new(0, 5, 0)
  7058. Model279.Name = "Bone"
  7059. Model279.Parent = Model0
  7060. Part280.Parent = Model279
  7061. Part280.CFrame = CFrame.new(339.130127, 168.079651, -69.2157364, 7.61404863e-06, -0.765985608, 0.64285785, -2.67270821e-07, -0.64285779, -0.765985608, 1, 5.66043445e-06, -5.09947677e-06)
  7062. Part280.Orientation = Vector3.new(49.9899979, 90, -180)
  7063. Part280.Position = Vector3.new(339.130127, 168.079651, -69.2157364)
  7064. Part280.Rotation = Vector3.new(90, 40.0099983, 90)
  7065. Part280.Color = Color3.new(0, 1, 0)
  7066. Part280.Transparency = 1
  7067. Part280.Size = Vector3.new(5.79999971, 2.79999804, 20.6000004)
  7068. Part280.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  7069. Part280.BrickColor = BrickColor.new("Lime green")
  7070. Part280.CanCollide = false
  7071. Part280.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  7072. Part280.Material = Enum.Material.Ice
  7073. Part280.brickColor = BrickColor.new("Lime green")
  7074. Part280.FormFactor = Enum.FormFactor.Custom
  7075. Part280.formFactor = Enum.FormFactor.Custom
  7076. Humanoid281.Parent = Part280
  7077. Humanoid281.Health = 0
  7078. Humanoid281.MaxHealth = 0
  7079. Humanoid281.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  7080. Humanoid281.WalkSpeed = 10
  7081. Humanoid281.maxHealth = 0
  7082. Script282.Name = "Vaccine"
  7083. Script282.Parent = Part280
  7084. table.insert(cors,sandbox(Script282,function()
  7085. function spread() -- created by culinwino3000
  7086. local stuff = game.Workspace:GetChildren()
  7087. for i = 1, #stuff do
  7088. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  7089. local clone = script:clone()
  7090. clone.Parent = stuff[i]
  7091. end
  7092. end
  7093. end
  7094.  
  7095. while true do
  7096. wait(.1)
  7097. spread()
  7098. end
  7099.  
  7100. function GetAllItems(mdl)
  7101. local objs = {}
  7102. function Search(obj)
  7103. if obj~=workspace then
  7104. table.insert(objs,obj)
  7105. end
  7106. if #obj:GetChildren() > 0 then
  7107. for i, v in ipairs(obj:GetChildren()) do
  7108. Search(v)
  7109. end
  7110. end
  7111. end
  7112. Search(mdl)
  7113. return objs
  7114. end
  7115.  
  7116.  
  7117.  
  7118. for i, v in ipairs(GetAllItems(workspace)) do
  7119. if v.className == "Script" then
  7120. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  7121. v.Parent = game.Lighting --Just in case it has a removal prevention.
  7122. t = Instance.new("ObjectValue")
  7123. t.Name = "IsAVirus"
  7124. t.Parent = v
  7125. end
  7126. end
  7127. end
  7128.  
  7129. for i, v in ipairs(game.Lighting:GetChildren()) do
  7130. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  7131. v:remove()
  7132. end
  7133. end
  7134.  
  7135.  
  7136. print("Virus debugged! All clean!")
  7137. end))
  7138. Script283.Parent = Part280
  7139. table.insert(cors,sandbox(Script283,function()
  7140. bin = script.Parent
  7141.  
  7142. function move(target)
  7143.     local dir = (target.Position - bin.Position).unit
  7144.     local spawnPos = bin.Position
  7145.     local pos = spawnPos + (dir * 1)
  7146.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  7147.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  7148. end
  7149.  
  7150. function moveTo(target)
  7151.     bin.BodyPosition.position = target.Position
  7152.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  7153. end
  7154.  
  7155. function findNearestTorso(pos)
  7156.     local list = game.Workspace:GetChildren()
  7157.     local torso = nil
  7158.     local dist = 10000000000000000
  7159.     local temp = nil
  7160.     local human = nil
  7161.     local temp2 = nil
  7162.     for x = 1, #list do
  7163.         temp2 = list[x]
  7164.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  7165.             temp = temp2:findFirstChild("Torso")
  7166.             human = temp2:findFirstChild("Humanoid")
  7167.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  7168.                 if (temp.Position - pos).magnitude < dist then
  7169.                     torso = temp
  7170.                     dist = (temp.Position - pos).magnitude
  7171.                 end
  7172.             end
  7173.         end
  7174.     end
  7175.     return torso
  7176. end
  7177.  
  7178. function shoot(pos)
  7179.     dir = (pos - bin.CFrame.p).unit
  7180.     for i = 1, 50 do
  7181.         local ex = Instance.new("Explosion")
  7182.         ex.BlastRadius = 1
  7183.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  7184.         ex.Parent = game.Workspace
  7185.     end
  7186. end
  7187.  
  7188. function shootAt(torso)
  7189.     local dir = (torso.Position - bin.Position).unit
  7190.     local spawnPos = bin.Position
  7191.     local pos = spawnPos + (dir * 1)
  7192.     shoot(pos)
  7193. end
  7194.  
  7195. while true do
  7196.     local torso = findNearestTorso(bin.Position)
  7197.     if torso~=nil then
  7198.         move(torso)
  7199.         moveTo(torso)
  7200.     end
  7201.     wait()
  7202. end
  7203.  
  7204. end))
  7205. Script284.Parent = Part280
  7206. table.insert(cors,sandbox(Script284,function()
  7207. function onTouched(part)
  7208.     local h = part.Parent:findFirstChild("Humanoid")
  7209.     if h~=nil then
  7210.         h.Health = h.Health 100
  7211.         wait(1)
  7212.     end
  7213. end
  7214.  
  7215. script.Parent.Touched:connect(onTouched)
  7216.  
  7217. end))
  7218. NumberValue285.Name = "Speed"
  7219. NumberValue285.Parent = Part280
  7220. NumberValue285.Value = 110
  7221. BodyGyro286.Parent = Part280
  7222. BodyGyro286.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  7223. BodyGyro286.MaxTorque = Vector3.new(9000, 9000, 9000)
  7224. BodyGyro286.maxTorque = Vector3.new(9000, 9000, 9000)
  7225. BodyGyro286.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  7226. BodyPosition287.Parent = Part280
  7227. BodyPosition287.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  7228. BodyPosition287.MaxForce = Vector3.new(6000, 6000, 6000)
  7229. BodyPosition287.maxForce = Vector3.new(6000, 6000, 6000)
  7230. BodyPosition287.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  7231. UnionOperation288.Parent = Model279
  7232. UnionOperation288.CFrame = CFrame.new(266.812256, 254.405869, -68.2441406, 0.64284879, 0.765993178, 3.61879065e-05, -0.765993118, 0.64284879, -2.29677639e-07, -2.34392846e-05, -2.75720413e-05, 1)
  7233. UnionOperation288.Orientation = Vector3.new(0, 0, -50)
  7234. UnionOperation288.Position = Vector3.new(266.812256, 254.405869, -68.2441406)
  7235. UnionOperation288.Rotation = Vector3.new(0, 0, -50)
  7236. UnionOperation288.Color = Color3.new(0.972549, 0.972549, 0.972549)
  7237. UnionOperation288.Size = Vector3.new(37.3687897, 5.40004063, 15.8598595)
  7238. UnionOperation288.Anchored = true
  7239. UnionOperation288.Material = Enum.Material.Marble
  7240. UnionOperation288.UsePartColor = true
  7241. Script289.Parent = UnionOperation288
  7242. table.insert(cors,sandbox(Script289,function()
  7243. local debounce = false
  7244. local HealthLoss = 5 -- Damage
  7245. function OnTouched(Part)
  7246. if Part.Parent ~= nil then
  7247. if debounce == false and Part.Parent:findFirstChild("Humanoid") ~= nil then
  7248. debounce = true
  7249. Part.Parent:findFirstChild("Humanoid"):TakeDamage(HealthLoss)
  7250. wait(0)
  7251. debounce = false
  7252. end
  7253. end
  7254. end
  7255. script.Parent.Touched:connect(OnTouched)
  7256. end))
  7257. Script290.Name = "qPerfectionWeld"
  7258. Script290.Parent = Model279
  7259. table.insert(cors,sandbox(Script290,function()
  7260. -- Created by Quenty (@Quenty, follow me on twitter).
  7261. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  7262. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  7263.  
  7264. --[[ INSTRUCTIONS
  7265. - Place in the model
  7266. - Make sure model is anchored
  7267. - That's it. It will weld the model and all children.
  7268.  
  7269. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7270. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7271. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7272. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7273. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7274. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7275. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7276. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7277.  
  7278. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  7279. ]]
  7280.  
  7281. --[[ DOCUMENTATION
  7282. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  7283. - Will work in PBS servers
  7284. - Will work as long as it starts out with the part anchored
  7285. - Stores the relative CFrame as a CFrame value
  7286. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  7287. - Utilizes a recursive algorith to find all parts in the model
  7288. - Will reweld on script reparent if the script is initially parented to a tool.
  7289. - Welds as fast as possible
  7290. ]]
  7291.  
  7292. -- qPerfectionWeld.lua
  7293. -- Created 10/6/2014
  7294. -- Author: Quenty
  7295. -- Version 1.0.3
  7296.  
  7297. -- Updated 10/14/2014 - Updated to 1.0.1
  7298. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  7299.  
  7300. -- Updated 10/14/2014 - Updated to 1.0.2
  7301. --- Fixed bug fix.
  7302.  
  7303. -- Updated 10/14/2014 - Updated to 1.0.3
  7304. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  7305.  
  7306. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  7307.  
  7308.  
  7309. local function CallOnChildren(Instance, FunctionToCall)
  7310.     -- Calls a function on each of the children of a certain object, using recursion.  
  7311.  
  7312.     FunctionToCall(Instance)
  7313.  
  7314.     for _, Child in next, Instance:GetChildren() do
  7315.         CallOnChildren(Child, FunctionToCall)
  7316.     end
  7317. end
  7318.  
  7319. local function GetNearestParent(Instance, ClassName)
  7320.     -- Returns the nearest parent of a certain class, or returns nil
  7321.  
  7322.     local Ancestor = Instance
  7323.     repeat
  7324.         Ancestor = Ancestor.Parent
  7325.         if Ancestor == nil then
  7326.             return nil
  7327.         end
  7328.     until Ancestor:IsA(ClassName)
  7329.  
  7330.     return Ancestor
  7331. end
  7332.  
  7333. local function GetBricks(StartInstance)
  7334.     local List = {}
  7335.  
  7336.     -- if StartInstance:IsA("BasePart") then
  7337.     --  List[#List+1] = StartInstance
  7338.     -- end
  7339.  
  7340.     CallOnChildren(StartInstance, function(Item)
  7341.         if Item:IsA("BasePart") then
  7342.             List[#List+1] = Item;
  7343.         end
  7344.     end)
  7345.  
  7346.     return List
  7347. end
  7348.  
  7349. local function Modify(Instance, Values)
  7350.     -- Modifies an Instance by using a table.  
  7351.  
  7352.     assert(type(Values) == "table", "Values is not a table");
  7353.  
  7354.     for Index, Value in next, Values do
  7355.         if type(Index) == "number" then
  7356.             Value.Parent = Instance
  7357.         else
  7358.             Instance[Index] = Value
  7359.         end
  7360.     end
  7361.     return Instance
  7362. end
  7363.  
  7364. local function Make(ClassType, Properties)
  7365.     -- Using a syntax hack to create a nice way to Make new items.  
  7366.  
  7367.     return Modify(Instance.new(ClassType), Properties)
  7368. end
  7369.  
  7370. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  7371. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  7372.  
  7373. local function HasWheelJoint(Part)
  7374.     for _, SurfaceName in pairs(Surfaces) do
  7375.         for _, HingSurfaceName in pairs(HingSurfaces) do
  7376.             if Part[SurfaceName].Name == HingSurfaceName then
  7377.                 return true
  7378.             end
  7379.         end
  7380.     end
  7381.    
  7382.     return false
  7383. end
  7384.  
  7385. local function ShouldBreakJoints(Part)
  7386.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  7387.     --  definitely some edge cases.
  7388.  
  7389.     if NEVER_BREAK_JOINTS then
  7390.         return false
  7391.     end
  7392.    
  7393.     if HasWheelJoint(Part) then
  7394.         return false
  7395.     end
  7396.    
  7397.     local Connected = Part:GetConnectedParts()
  7398.    
  7399.     if #Connected == 1 then
  7400.         return false
  7401.     end
  7402.    
  7403.     for _, Item in pairs(Connected) do
  7404.         if HasWheelJoint(Item) then
  7405.             return false
  7406.         elseif not Item:IsDescendantOf(script.Parent) then
  7407.             return false
  7408.         end
  7409.     end
  7410.    
  7411.     return true
  7412. end
  7413.  
  7414. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  7415.     --- Weld's 2 parts together
  7416.     -- @param Part0 The first part
  7417.     -- @param Part1 The second part (Dependent part most of the time).
  7418.     -- @param [JointType] The type of joint. Defaults to weld.
  7419.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  7420.     -- @return The weld created.
  7421.  
  7422.     JointType = JointType or "Weld"
  7423.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  7424.    
  7425.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  7426.     Modify(NewWeld, {
  7427.         Name = "qCFrameWeldThingy";
  7428.         Part0  = Part0;
  7429.         Part1  = Part1;
  7430.         C0     = CFrame.new();--Part0.CFrame:inverse();
  7431.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  7432.         Parent = Part1;
  7433.     })
  7434.  
  7435.     if not RelativeValue then
  7436.         RelativeValue = Make("CFrameValue", {
  7437.             Parent     = Part1;
  7438.             Name       = "qRelativeCFrameWeldValue";
  7439.             Archivable = true;
  7440.             Value      = NewWeld.C1;
  7441.         })
  7442.     end
  7443.  
  7444.     return NewWeld
  7445. end
  7446.  
  7447. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  7448.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  7449.     -- @param MainPart The part to weld the model to (can be in the model).
  7450.     -- @param [JointType] The type of joint. Defaults to weld.
  7451.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  7452.    
  7453.     for _, Part in pairs(Parts) do
  7454.         if ShouldBreakJoints(Part) then
  7455.             Part:BreakJoints()
  7456.         end
  7457.     end
  7458.    
  7459.     for _, Part in pairs(Parts) do
  7460.         if Part ~= MainPart then
  7461.             WeldTogether(MainPart, Part, JointType, MainPart)
  7462.         end
  7463.     end
  7464.  
  7465.     if not DoNotUnanchor then
  7466.         for _, Part in pairs(Parts) do
  7467.             Part.Anchored = false
  7468.         end
  7469.         MainPart.Anchored = false
  7470.     end
  7471. end
  7472.  
  7473. local function PerfectionWeld()
  7474.     local Tool = GetNearestParent(script, "Tool")
  7475.  
  7476.     local Parts = GetBricks(script.Parent)
  7477.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  7478.  
  7479.     if PrimaryPart then
  7480.         WeldParts(Parts, PrimaryPart, "Weld", false)
  7481.     else
  7482.         warn("qWeld - Unable to weld part")
  7483.     end
  7484.    
  7485.     return Tool
  7486. end
  7487.  
  7488. local Tool = PerfectionWeld()
  7489.  
  7490.  
  7491. if Tool and script.ClassName == "Script" then
  7492.     --- Don't bother with local scripts
  7493.  
  7494.     script.Parent.AncestryChanged:connect(function()
  7495.         PerfectionWeld()
  7496.     end)
  7497. end
  7498.  
  7499. -- Created by Quenty (@Quenty, follow me on twitter).
  7500.  
  7501. end))
  7502. UnionOperation291.Name = "Head"
  7503. UnionOperation291.Parent = Model279
  7504. UnionOperation291.CFrame = CFrame.new(265.613831, 255.157425, -68.4878311, -0.642508924, 0.766278207, -3.59768746e-05, 0.766278148, 0.642508924, -0.000280174136, -0.000191575848, -0.000207582663, -1)
  7505. UnionOperation291.Orientation = Vector3.new(0.0199999996, -180, 50.0200005)
  7506. UnionOperation291.Position = Vector3.new(265.613831, 255.157425, -68.4878311)
  7507. UnionOperation291.Rotation = Vector3.new(179.979996, 0, -129.979996)
  7508. UnionOperation291.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  7509. UnionOperation291.Transparency = 1
  7510. UnionOperation291.Size = Vector3.new(5.41925812, 4.78171349, 6.91092873)
  7511. UnionOperation291.BrickColor = BrickColor.new("Really black")
  7512. UnionOperation291.CanCollide = false
  7513. UnionOperation291.Material = Enum.Material.Cobblestone
  7514. UnionOperation291.brickColor = BrickColor.new("Really black")
  7515. UnionOperation291.UsePartColor = true
  7516. BodyPosition292.Parent = UnionOperation291
  7517. BodyPosition292.Position = Vector3.new(0, 5, 0)
  7518. BodyPosition292.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  7519. BodyPosition292.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  7520. BodyPosition292.position = Vector3.new(0, 5, 0)
  7521. Model293.Name = "Bone"
  7522. Model293.Parent = Model0
  7523. Part294.Parent = Model293
  7524. Part294.CFrame = CFrame.new(335.534058, 172.369431, 20.9850388, 7.61404863e-06, -0.765985608, 0.64285785, -2.67270821e-07, -0.64285779, -0.765985608, 1, 5.66043445e-06, -5.09947677e-06)
  7525. Part294.Orientation = Vector3.new(49.9899979, 90, -180)
  7526. Part294.Position = Vector3.new(335.534058, 172.369431, 20.9850388)
  7527. Part294.Rotation = Vector3.new(90, 40.0099983, 90)
  7528. Part294.Color = Color3.new(0, 1, 0)
  7529. Part294.Transparency = 1
  7530. Part294.Size = Vector3.new(5.79999971, 2.79999804, 20.6000004)
  7531. Part294.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  7532. Part294.BrickColor = BrickColor.new("Lime green")
  7533. Part294.CanCollide = false
  7534. Part294.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  7535. Part294.Material = Enum.Material.Ice
  7536. Part294.brickColor = BrickColor.new("Lime green")
  7537. Part294.FormFactor = Enum.FormFactor.Custom
  7538. Part294.formFactor = Enum.FormFactor.Custom
  7539. Humanoid295.Parent = Part294
  7540. Humanoid295.Health = 0
  7541. Humanoid295.MaxHealth = 0
  7542. Humanoid295.NameOcclusion = Enum.NameOcclusion.NoOcclusion
  7543. Humanoid295.WalkSpeed = 10
  7544. Humanoid295.maxHealth = 0
  7545. Script296.Name = "Vaccine"
  7546. Script296.Parent = Part294
  7547. table.insert(cors,sandbox(Script296,function()
  7548. function spread() -- created by culinwino3000
  7549. local stuff = game.Workspace:GetChildren()
  7550. for i = 1, #stuff do
  7551. if (stuff[i].className ~= "Script") and (stuff[i]:findFirstChild("Vaccine") == nil) and (stuff[i].className ~= "Camera") then
  7552. local clone = script:clone()
  7553. clone.Parent = stuff[i]
  7554. end
  7555. end
  7556. end
  7557.  
  7558. while true do
  7559. wait(.1)
  7560. spread()
  7561. end
  7562.  
  7563. function GetAllItems(mdl)
  7564. local objs = {}
  7565. function Search(obj)
  7566. if obj~=workspace then
  7567. table.insert(objs,obj)
  7568. end
  7569. if #obj:GetChildren() > 0 then
  7570. for i, v in ipairs(obj:GetChildren()) do
  7571. Search(v)
  7572. end
  7573. end
  7574. end
  7575. Search(mdl)
  7576. return objs
  7577. end
  7578.  
  7579.  
  7580.  
  7581. for i, v in ipairs(GetAllItems(workspace)) do
  7582. if v.className == "Script" then
  7583. if v.Name == "Chaotic" or v.Name == "Spreadify" or v.Name == "Virus" or v.Name == "Infected" then
  7584. v.Parent = game.Lighting --Just in case it has a removal prevention.
  7585. t = Instance.new("ObjectValue")
  7586. t.Name = "IsAVirus"
  7587. t.Parent = v
  7588. end
  7589. end
  7590. end
  7591.  
  7592. for i, v in ipairs(game.Lighting:GetChildren()) do
  7593. if v:findFirstChild("IsAVirus") then --Only remove the viruses.
  7594. v:remove()
  7595. end
  7596. end
  7597.  
  7598.  
  7599. print("Virus debugged! All clean!")
  7600. end))
  7601. Script297.Parent = Part294
  7602. table.insert(cors,sandbox(Script297,function()
  7603. bin = script.Parent
  7604.  
  7605. function move(target)
  7606.     local dir = (target.Position - bin.Position).unit
  7607.     local spawnPos = bin.Position
  7608.     local pos = spawnPos + (dir * 1)
  7609.     bin:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
  7610.     bin:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000,9000,9000)
  7611. end
  7612.  
  7613. function moveTo(target)
  7614.     bin.BodyPosition.position = target.Position
  7615.     bin.BodyPosition.maxForce = Vector3.new(10000,10000,10000) * bin.Speed.Value
  7616. end
  7617.  
  7618. function findNearestTorso(pos)
  7619.     local list = game.Workspace:GetChildren()
  7620.     local torso = nil
  7621.     local dist = 10000000000000000
  7622.     local temp = nil
  7623.     local human = nil
  7624.     local temp2 = nil
  7625.     for x = 1, #list do
  7626.         temp2 = list[x]
  7627.         if (temp2.className == "Model") and (temp2 ~= script.Parent) then
  7628.             temp = temp2:findFirstChild("Torso")
  7629.             human = temp2:findFirstChild("Humanoid")
  7630.             if (temp ~= nil) and (human ~= nil) and (human.Health > 0)  then
  7631.                 if (temp.Position - pos).magnitude < dist then
  7632.                     torso = temp
  7633.                     dist = (temp.Position - pos).magnitude
  7634.                 end
  7635.             end
  7636.         end
  7637.     end
  7638.     return torso
  7639. end
  7640.  
  7641. function shoot(pos)
  7642.     dir = (pos - bin.CFrame.p).unit
  7643.     for i = 1, 50 do
  7644.         local ex = Instance.new("Explosion")
  7645.         ex.BlastRadius = 1
  7646.         ex.Position = bin.Position + (dir * 10 * i) + (dir * 7)
  7647.         ex.Parent = game.Workspace
  7648.     end
  7649. end
  7650.  
  7651. function shootAt(torso)
  7652.     local dir = (torso.Position - bin.Position).unit
  7653.     local spawnPos = bin.Position
  7654.     local pos = spawnPos + (dir * 1)
  7655.     shoot(pos)
  7656. end
  7657.  
  7658. while true do
  7659.     local torso = findNearestTorso(bin.Position)
  7660.     if torso~=nil then
  7661.         move(torso)
  7662.         moveTo(torso)
  7663.     end
  7664.     wait()
  7665. end
  7666.  
  7667. end))
  7668. Script298.Parent = Part294
  7669. table.insert(cors,sandbox(Script298,function()
  7670. function onTouched(part)
  7671.     local h = part.Parent:findFirstChild("Humanoid")
  7672.     if h~=nil then
  7673.         h.Health = h.Health 100
  7674.         wait(1)
  7675.     end
  7676. end
  7677.  
  7678. script.Parent.Touched:connect(onTouched)
  7679.  
  7680. end))
  7681. NumberValue299.Name = "Speed"
  7682. NumberValue299.Parent = Part294
  7683. NumberValue299.Value = 80
  7684. BodyGyro300.Parent = Part294
  7685. BodyGyro300.CFrame = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  7686. BodyGyro300.MaxTorque = Vector3.new(9000, 9000, 9000)
  7687. BodyGyro300.maxTorque = Vector3.new(9000, 9000, 9000)
  7688. BodyGyro300.cframe = CFrame.new(45.0327187, 0.927936018, -9.25215626, 0.252255172, 0.0270326007, 0.96728307, -0, 0.999609649, -0.027936032, -0.967660725, 0.00704700872, 0.252156705)
  7689. BodyPosition301.Parent = Part294
  7690. BodyPosition301.Position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  7691. BodyPosition301.MaxForce = Vector3.new(6000, 6000, 6000)
  7692. BodyPosition301.maxForce = Vector3.new(6000, 6000, 6000)
  7693. BodyPosition301.position = Vector3.new(-37.0716858, 3.2991848, -30.6555519)
  7694. UnionOperation302.Parent = Model293
  7695. UnionOperation302.CFrame = CFrame.new(266.815979, 254.405838, 21.9565964, 0.64284879, 0.765993178, 3.61879065e-05, -0.765993118, 0.64284879, -2.29677639e-07, -2.34392846e-05, -2.75720413e-05, 1)
  7696. UnionOperation302.Orientation = Vector3.new(0, 0, -50)
  7697. UnionOperation302.Position = Vector3.new(266.815979, 254.405838, 21.9565964)
  7698. UnionOperation302.Rotation = Vector3.new(0, 0, -50)
  7699. UnionOperation302.Color = Color3.new(0.972549, 0.972549, 0.972549)
  7700. UnionOperation302.Size = Vector3.new(37.3687897, 5.40004063, 15.8598595)
  7701. UnionOperation302.Anchored = true
  7702. UnionOperation302.Material = Enum.Material.Marble
  7703. UnionOperation302.UsePartColor = true
  7704. Script303.Parent = UnionOperation302
  7705. table.insert(cors,sandbox(Script303,function()
  7706. local debounce = false
  7707. local HealthLoss = 5 -- Damage
  7708. function OnTouched(Part)
  7709. if Part.Parent ~= nil then
  7710. if debounce == false and Part.Parent:findFirstChild("Humanoid") ~= nil then
  7711. debounce = true
  7712. Part.Parent:findFirstChild("Humanoid"):TakeDamage(HealthLoss)
  7713. wait(0)
  7714. debounce = false
  7715. end
  7716. end
  7717. end
  7718. script.Parent.Touched:connect(OnTouched)
  7719. end))
  7720. Script304.Name = "qPerfectionWeld"
  7721. Script304.Parent = Model293
  7722. table.insert(cors,sandbox(Script304,function()
  7723. -- Created by Quenty (@Quenty, follow me on twitter).
  7724. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  7725. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  7726.  
  7727. --[[ INSTRUCTIONS
  7728. - Place in the model
  7729. - Make sure model is anchored
  7730. - That's it. It will weld the model and all children.
  7731.  
  7732. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7733. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7734. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7735. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7736. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7737. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7738. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7739. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  7740.  
  7741. This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
  7742. ]]
  7743.  
  7744. --[[ DOCUMENTATION
  7745. - Will work in tools. If ran more than once it will not create more than one weld.  This is especially useful for tools that are dropped and then picked up again.
  7746. - Will work in PBS servers
  7747. - Will work as long as it starts out with the part anchored
  7748. - Stores the relative CFrame as a CFrame value
  7749. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  7750. - Utilizes a recursive algorith to find all parts in the model
  7751. - Will reweld on script reparent if the script is initially parented to a tool.
  7752. - Welds as fast as possible
  7753. ]]
  7754.  
  7755. -- qPerfectionWeld.lua
  7756. -- Created 10/6/2014
  7757. -- Author: Quenty
  7758. -- Version 1.0.3
  7759.  
  7760. -- Updated 10/14/2014 - Updated to 1.0.1
  7761. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  7762.  
  7763. -- Updated 10/14/2014 - Updated to 1.0.2
  7764. --- Fixed bug fix.
  7765.  
  7766. -- Updated 10/14/2014 - Updated to 1.0.3
  7767. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  7768.  
  7769. local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
  7770.  
  7771.  
  7772. local function CallOnChildren(Instance, FunctionToCall)
  7773.     -- Calls a function on each of the children of a certain object, using recursion.  
  7774.  
  7775.     FunctionToCall(Instance)
  7776.  
  7777.     for _, Child in next, Instance:GetChildren() do
  7778.         CallOnChildren(Child, FunctionToCall)
  7779.     end
  7780. end
  7781.  
  7782. local function GetNearestParent(Instance, ClassName)
  7783.     -- Returns the nearest parent of a certain class, or returns nil
  7784.  
  7785.     local Ancestor = Instance
  7786.     repeat
  7787.         Ancestor = Ancestor.Parent
  7788.         if Ancestor == nil then
  7789.             return nil
  7790.         end
  7791.     until Ancestor:IsA(ClassName)
  7792.  
  7793.     return Ancestor
  7794. end
  7795.  
  7796. local function GetBricks(StartInstance)
  7797.     local List = {}
  7798.  
  7799.     -- if StartInstance:IsA("BasePart") then
  7800.     --  List[#List+1] = StartInstance
  7801.     -- end
  7802.  
  7803.     CallOnChildren(StartInstance, function(Item)
  7804.         if Item:IsA("BasePart") then
  7805.             List[#List+1] = Item;
  7806.         end
  7807.     end)
  7808.  
  7809.     return List
  7810. end
  7811.  
  7812. local function Modify(Instance, Values)
  7813.     -- Modifies an Instance by using a table.  
  7814.  
  7815.     assert(type(Values) == "table", "Values is not a table");
  7816.  
  7817.     for Index, Value in next, Values do
  7818.         if type(Index) == "number" then
  7819.             Value.Parent = Instance
  7820.         else
  7821.             Instance[Index] = Value
  7822.         end
  7823.     end
  7824.     return Instance
  7825. end
  7826.  
  7827. local function Make(ClassType, Properties)
  7828.     -- Using a syntax hack to create a nice way to Make new items.  
  7829.  
  7830.     return Modify(Instance.new(ClassType), Properties)
  7831. end
  7832.  
  7833. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  7834. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  7835.  
  7836. local function HasWheelJoint(Part)
  7837.     for _, SurfaceName in pairs(Surfaces) do
  7838.         for _, HingSurfaceName in pairs(HingSurfaces) do
  7839.             if Part[SurfaceName].Name == HingSurfaceName then
  7840.                 return true
  7841.             end
  7842.         end
  7843.     end
  7844.    
  7845.     return false
  7846. end
  7847.  
  7848. local function ShouldBreakJoints(Part)
  7849.     --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  7850.     --  definitely some edge cases.
  7851.  
  7852.     if NEVER_BREAK_JOINTS then
  7853.         return false
  7854.     end
  7855.    
  7856.     if HasWheelJoint(Part) then
  7857.         return false
  7858.     end
  7859.    
  7860.     local Connected = Part:GetConnectedParts()
  7861.    
  7862.     if #Connected == 1 then
  7863.         return false
  7864.     end
  7865.    
  7866.     for _, Item in pairs(Connected) do
  7867.         if HasWheelJoint(Item) then
  7868.             return false
  7869.         elseif not Item:IsDescendantOf(script.Parent) then
  7870.             return false
  7871.         end
  7872.     end
  7873.    
  7874.     return true
  7875. end
  7876.  
  7877. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  7878.     --- Weld's 2 parts together
  7879.     -- @param Part0 The first part
  7880.     -- @param Part1 The second part (Dependent part most of the time).
  7881.     -- @param [JointType] The type of joint. Defaults to weld.
  7882.     -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  7883.     -- @return The weld created.
  7884.  
  7885.     JointType = JointType or "Weld"
  7886.     local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  7887.    
  7888.     local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  7889.     Modify(NewWeld, {
  7890.         Name = "qCFrameWeldThingy";
  7891.         Part0  = Part0;
  7892.         Part1  = Part1;
  7893.         C0     = CFrame.new();--Part0.CFrame:inverse();
  7894.         C1     = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  7895.         Parent = Part1;
  7896.     })
  7897.  
  7898.     if not RelativeValue then
  7899.         RelativeValue = Make("CFrameValue", {
  7900.             Parent     = Part1;
  7901.             Name       = "qRelativeCFrameWeldValue";
  7902.             Archivable = true;
  7903.             Value      = NewWeld.C1;
  7904.         })
  7905.     end
  7906.  
  7907.     return NewWeld
  7908. end
  7909.  
  7910. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  7911.     -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  7912.     -- @param MainPart The part to weld the model to (can be in the model).
  7913.     -- @param [JointType] The type of joint. Defaults to weld.
  7914.     -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  7915.    
  7916.     for _, Part in pairs(Parts) do
  7917.         if ShouldBreakJoints(Part) then
  7918.             Part:BreakJoints()
  7919.         end
  7920.     end
  7921.    
  7922.     for _, Part in pairs(Parts) do
  7923.         if Part ~= MainPart then
  7924.             WeldTogether(MainPart, Part, JointType, MainPart)
  7925.         end
  7926.     end
  7927.  
  7928.     if not DoNotUnanchor then
  7929.         for _, Part in pairs(Parts) do
  7930.             Part.Anchored = false
  7931.         end
  7932.         MainPart.Anchored = false
  7933.     end
  7934. end
  7935.  
  7936. local function PerfectionWeld()
  7937.     local Tool = GetNearestParent(script, "Tool")
  7938.  
  7939.     local Parts = GetBricks(script.Parent)
  7940.     local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool.Handle:IsA("BasePart") and Tool.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
  7941.  
  7942.     if PrimaryPart then
  7943.         WeldParts(Parts, PrimaryPart, "Weld", false)
  7944.     else
  7945.         warn("qWeld - Unable to weld part")
  7946.     end
  7947.    
  7948.     return Tool
  7949. end
  7950.  
  7951. local Tool = PerfectionWeld()
  7952.  
  7953.  
  7954. if Tool and script.ClassName == "Script" then
  7955.     --- Don't bother with local scripts
  7956.  
  7957.     script.Parent.AncestryChanged:connect(function()
  7958.         PerfectionWeld()
  7959.     end)
  7960. end
  7961.  
  7962. -- Created by Quenty (@Quenty, follow me on twitter).
  7963.  
  7964. end))
  7965. UnionOperation305.Name = "Head"
  7966. UnionOperation305.Parent = Model293
  7967. UnionOperation305.CFrame = CFrame.new(265.617554, 255.157379, 21.7128983, -0.642508924, 0.766278207, -3.59768746e-05, 0.766278148, 0.642508924, -0.000280174136, -0.000191575848, -0.000207582663, -1)
  7968. UnionOperation305.Orientation = Vector3.new(0.0199999996, -180, 50.0200005)
  7969. UnionOperation305.Position = Vector3.new(265.617554, 255.157379, 21.7128983)
  7970. UnionOperation305.Rotation = Vector3.new(179.979996, 0, -129.979996)
  7971. UnionOperation305.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  7972. UnionOperation305.Transparency = 1
  7973. UnionOperation305.Size = Vector3.new(5.41925812, 4.78171349, 6.91092873)
  7974. UnionOperation305.BrickColor = BrickColor.new("Really black")
  7975. UnionOperation305.CanCollide = false
  7976. UnionOperation305.Material = Enum.Material.Cobblestone
  7977. UnionOperation305.brickColor = BrickColor.new("Really black")
  7978. UnionOperation305.UsePartColor = true
  7979. BodyPosition306.Parent = UnionOperation305
  7980. BodyPosition306.Position = Vector3.new(0, 5, 0)
  7981. BodyPosition306.MaxForce = Vector3.new(0, 2.09999995e+10, 0)
  7982. BodyPosition306.maxForce = Vector3.new(0, 2.09999995e+10, 0)
  7983. BodyPosition306.position = Vector3.new(0, 5, 0)
  7984. for i,v in pairs(mas:GetChildren()) do
  7985.     v.Parent = workspace
  7986.     pcall(function() v:MakeJoints() end)
  7987. end
  7988. mas:Destroy()
  7989. for i,v in pairs(cors) do
  7990.     spawn(function()
  7991.         pcall(v)
  7992.     end)
  7993. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement