Advertisement
aweeb

Untitled

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