Advertisement
Guest User

Rake

a guest
Sep 27th, 2019
5,974
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 151.87 KB | None | 0 0
  1. local Player = game:GetService("Players").q50i
  2.  
  3. local Mouse,mouse,UserInputService,ContextActionService
  4. do
  5. script.Parent = Player.Character
  6. local CAS = {Actions={}}
  7. local Event = Instance.new("RemoteEvent")
  8. Event.Name = "UserInput_Event"
  9. Event.Parent = Player.Character
  10. local fakeEvent = function()
  11. local t = {_fakeEvent=true}
  12. t.Connect = function(self,f)self.Function=f end
  13. t.connect = t.Connect
  14. return t
  15. end
  16. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  17. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  18. function CAS:BindAction(name,fun,touch,...)
  19. CAS.Actions[name] = {Name=name,Function=fun,Keys={...}}
  20. end
  21. function CAS:UnbindAction(name)
  22. CAS.Actions[name] = nil
  23. end
  24. local function te(self,ev,...)
  25. local t = m[ev]
  26. if t and t._fakeEvent and t.Function then
  27. t.Function(...)
  28. end
  29. end
  30. m.TrigEvent = te
  31. UIS.TrigEvent = te
  32. Event.OnServerEvent:Connect(function(plr,io)
  33. if plr~=Player then return end
  34. if io.isMouse then
  35. m.Target = io.Target
  36. m.Hit = io.Hit
  37. elseif io.UserInputType == Enum.UserInputType.MouseButton1 then
  38. if io.UserInputState == Enum.UserInputState.Begin then
  39. m:TrigEvent("Button1Down")
  40. else
  41. m:TrigEvent("Button1Up")
  42. end
  43. else
  44. for n,t in pairs(CAS.Actions) do
  45. for _,k in pairs(t.Keys) do
  46. if k==io.KeyCode then
  47. t.Function(t.Name,io.UserInputState,io)
  48. end
  49. end
  50. end
  51. if io.UserInputState == Enum.UserInputState.Begin then
  52. m:TrigEvent("KeyDown",io.KeyCode.Name:lower())
  53. UIS:TrigEvent("InputBegan",io,false)
  54. else
  55. m:TrigEvent("KeyUp",io.KeyCode.Name:lower())
  56. UIS:TrigEvent("InputEnded",io,false)
  57. end
  58. end
  59. end)
  60. Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  61. end
  62. local Player = game:GetService("Players").tiptaps2000
  63. local Mouse,mouse,UserInputService,ContextActionService
  64. do
  65. script.Parent = Player.Character
  66. local CAS = {Actions={}}
  67. local Event = Instance.new("RemoteEvent")
  68. Event.Name = "UserInput_Event"
  69. Event.Parent = Player.Character
  70. local fakeEvent = function()
  71. local t = {_fakeEvent=true}
  72. t.Connect = function(self,f)self.Function=f end
  73. t.connect = t.Connect
  74. return t
  75. end
  76. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  77. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  78. function CAS:BindAction(name,fun,touch,...)
  79. CAS.Actions[name] = {Name=name,Function=fun,Keys={...}}
  80. end
  81. function CAS:UnbindAction(name)
  82. CAS.Actions[name] = nil
  83. end
  84. local function te(self,ev,...)
  85. local t = m[ev]
  86. if t and t._fakeEvent and t.Function then
  87. t.Function(...)
  88. end
  89. end
  90. m.TrigEvent = te
  91. UIS.TrigEvent = te
  92. Event.OnServerEvent:Connect(function(plr,io)
  93. if plr~=Player then return end
  94. if io.isMouse then
  95. m.Target = io.Target
  96. m.Hit = io.Hit
  97. elseif io.UserInputType == Enum.UserInputType.MouseButton1 then
  98. if io.UserInputState == Enum.UserInputState.Begin then
  99. m:TrigEvent("Button1Down")
  100. else
  101. m:TrigEvent("Button1Up")
  102. end
  103. else
  104. for n,t in pairs(CAS.Actions) do
  105. for _,k in pairs(t.Keys) do
  106. if k==io.KeyCode then
  107. t.Function(t.Name,io.UserInputState,io)
  108. end
  109. end
  110. end
  111. if io.UserInputState == Enum.UserInputState.Begin then
  112. m:TrigEvent("KeyDown",io.KeyCode.Name:lower())
  113. UIS:TrigEvent("InputBegan",io,false)
  114. else
  115. m:TrigEvent("KeyUp",io.KeyCode.Name:lower())
  116. UIS:TrigEvent("InputEnded",io,false)
  117. end
  118. end
  119. end)
  120. Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  121. end
  122.  
  123. --Converted with ttyyuu12345's model to script plugin v4
  124. function sandbox(var,func)
  125. local env = getfenv(func)
  126. local newenv = setmetatable({},{
  127. __index = function(self,k)
  128. if k=="script" then
  129. return var
  130. else
  131. return env[k]
  132. end
  133. end,
  134. })
  135. setfenv(func,newenv)
  136. return func
  137. end
  138. cors = {}
  139. mas = Instance.new("Model",game:GetService("Lighting"))
  140. Model0 = Instance.new("Model")
  141. Part1 = Instance.new("Part")
  142. Script2 = Instance.new("Script")
  143. Part3 = Instance.new("Part")
  144. Part4 = Instance.new("Part")
  145. Part5 = Instance.new("Part")
  146. ClickDetector6 = Instance.new("ClickDetector")
  147. Sound7 = Instance.new("Sound")
  148. SpecialMesh8 = Instance.new("SpecialMesh")
  149. MeshPart9 = Instance.new("MeshPart")
  150. Texture10 = Instance.new("Texture")
  151. Texture11 = Instance.new("Texture")
  152. Texture12 = Instance.new("Texture")
  153. Texture13 = Instance.new("Texture")
  154. Texture14 = Instance.new("Texture")
  155. Texture15 = Instance.new("Texture")
  156. Part16 = Instance.new("Part")
  157. Part17 = Instance.new("Part")
  158. SpecialMesh18 = Instance.new("SpecialMesh")
  159. Texture19 = Instance.new("Texture")
  160. Texture20 = Instance.new("Texture")
  161. Texture21 = Instance.new("Texture")
  162. Texture22 = Instance.new("Texture")
  163. Texture23 = Instance.new("Texture")
  164. Texture24 = Instance.new("Texture")
  165. Part25 = Instance.new("Part")
  166. SpecialMesh26 = Instance.new("SpecialMesh")
  167. Texture27 = Instance.new("Texture")
  168. Texture28 = Instance.new("Texture")
  169. Texture29 = Instance.new("Texture")
  170. Texture30 = Instance.new("Texture")
  171. Texture31 = Instance.new("Texture")
  172. Texture32 = Instance.new("Texture")
  173. Part33 = Instance.new("Part")
  174. SpecialMesh34 = Instance.new("SpecialMesh")
  175. Script35 = Instance.new("Script")
  176. Decal36 = Instance.new("Decal")
  177. Texture37 = Instance.new("Texture")
  178. Texture38 = Instance.new("Texture")
  179. Texture39 = Instance.new("Texture")
  180. Texture40 = Instance.new("Texture")
  181. Texture41 = Instance.new("Texture")
  182. Texture42 = Instance.new("Texture")
  183. Sound43 = Instance.new("Sound")
  184. Sound44 = Instance.new("Sound")
  185. Sound45 = Instance.new("Sound")
  186. Sound46 = Instance.new("Sound")
  187. Script47 = Instance.new("Script")
  188. Sound48 = Instance.new("Sound")
  189. DistortionSoundEffect49 = Instance.new("DistortionSoundEffect")
  190. Part50 = Instance.new("Part")
  191. SpecialMesh51 = Instance.new("SpecialMesh")
  192. Decal52 = Instance.new("Decal")
  193. Texture53 = Instance.new("Texture")
  194. Texture54 = Instance.new("Texture")
  195. Texture55 = Instance.new("Texture")
  196. Texture56 = Instance.new("Texture")
  197. Texture57 = Instance.new("Texture")
  198. Texture58 = Instance.new("Texture")
  199. Sound59 = Instance.new("Sound")
  200. Sound60 = Instance.new("Sound")
  201. Part61 = Instance.new("Part")
  202. Script62 = Instance.new("Script")
  203. Part63 = Instance.new("Part")
  204. Script64 = Instance.new("Script")
  205. MeshPart65 = Instance.new("MeshPart")
  206. Texture66 = Instance.new("Texture")
  207. Texture67 = Instance.new("Texture")
  208. Texture68 = Instance.new("Texture")
  209. Texture69 = Instance.new("Texture")
  210. Texture70 = Instance.new("Texture")
  211. Texture71 = Instance.new("Texture")
  212. ParticleEmitter72 = Instance.new("ParticleEmitter")
  213. ParticleEmitter73 = Instance.new("ParticleEmitter")
  214. Script74 = Instance.new("Script")
  215. Sound75 = Instance.new("Sound")
  216. Sound76 = Instance.new("Sound")
  217. Motor6D77 = Instance.new("Motor6D")
  218. Motor6D78 = Instance.new("Motor6D")
  219. Motor6D79 = Instance.new("Motor6D")
  220. Motor6D80 = Instance.new("Motor6D")
  221. Motor6D81 = Instance.new("Motor6D")
  222. SpecialMesh82 = Instance.new("SpecialMesh")
  223. Texture83 = Instance.new("Texture")
  224. Part84 = Instance.new("Part")
  225. Part85 = Instance.new("Part")
  226. SpecialMesh86 = Instance.new("SpecialMesh")
  227. Texture87 = Instance.new("Texture")
  228. SpecialMesh88 = Instance.new("SpecialMesh")
  229. MeshPart89 = Instance.new("MeshPart")
  230. Texture90 = Instance.new("Texture")
  231. Texture91 = Instance.new("Texture")
  232. Texture92 = Instance.new("Texture")
  233. Texture93 = Instance.new("Texture")
  234. Texture94 = Instance.new("Texture")
  235. Texture95 = Instance.new("Texture")
  236. Script96 = Instance.new("Script")
  237. Part97 = Instance.new("Part")
  238. Script98 = Instance.new("Script")
  239. SpecialMesh99 = Instance.new("SpecialMesh")
  240. Part100 = Instance.new("Part")
  241. Texture101 = Instance.new("Texture")
  242. SpecialMesh102 = Instance.new("SpecialMesh")
  243. Texture103 = Instance.new("Texture")
  244. Part104 = Instance.new("Part")
  245. Script105 = Instance.new("Script")
  246. SpecialMesh106 = Instance.new("SpecialMesh")
  247. Part107 = Instance.new("Part")
  248. SpecialMesh108 = Instance.new("SpecialMesh")
  249. Texture109 = Instance.new("Texture")
  250. Texture110 = Instance.new("Texture")
  251. Configuration111 = Instance.new("Configuration")
  252. IntValue112 = Instance.new("IntValue")
  253. IntValue113 = Instance.new("IntValue")
  254. IntValue114 = Instance.new("IntValue")
  255. NumberValue115 = Instance.new("NumberValue")
  256. BoolValue116 = Instance.new("BoolValue")
  257. Script117 = Instance.new("Script")
  258. IntValue118 = Instance.new("IntValue")
  259. BoolValue119 = Instance.new("BoolValue")
  260. Script120 = Instance.new("Script")
  261. NumberValue121 = Instance.new("NumberValue")
  262. IntValue122 = Instance.new("IntValue")
  263. NumberValue123 = Instance.new("NumberValue")
  264. Script124 = Instance.new("Script")
  265. Part125 = Instance.new("Part")
  266. Motor6D126 = Instance.new("Motor6D")
  267. Animation127 = Instance.new("Animation")
  268. CharacterMesh128 = Instance.new("CharacterMesh")
  269. CharacterMesh129 = Instance.new("CharacterMesh")
  270. CharacterMesh130 = Instance.new("CharacterMesh")
  271. BoolValue131 = Instance.new("BoolValue")
  272. Part132 = Instance.new("Part")
  273. Script133 = Instance.new("Script")
  274. SpecialMesh134 = Instance.new("SpecialMesh")
  275. MeshPart135 = Instance.new("MeshPart")
  276. Texture136 = Instance.new("Texture")
  277. Texture137 = Instance.new("Texture")
  278. Texture138 = Instance.new("Texture")
  279. Texture139 = Instance.new("Texture")
  280. Texture140 = Instance.new("Texture")
  281. Texture141 = Instance.new("Texture")
  282. Part142 = Instance.new("Part")
  283. SpecialMesh143 = Instance.new("SpecialMesh")
  284. Texture144 = Instance.new("Texture")
  285. Script145 = Instance.new("Script")
  286. Humanoid146 = Instance.new("Humanoid")
  287. Script147 = Instance.new("Script")
  288. StringValue148 = Instance.new("StringValue")
  289. Animation149 = Instance.new("Animation")
  290. StringValue150 = Instance.new("StringValue")
  291. Animation151 = Instance.new("Animation")
  292. StringValue152 = Instance.new("StringValue")
  293. Animation153 = Instance.new("Animation")
  294. NumberValue154 = Instance.new("NumberValue")
  295. Animation155 = Instance.new("Animation")
  296. NumberValue156 = Instance.new("NumberValue")
  297. StringValue157 = Instance.new("StringValue")
  298. Animation158 = Instance.new("Animation")
  299. StringValue159 = Instance.new("StringValue")
  300. Animation160 = Instance.new("Animation")
  301. StringValue161 = Instance.new("StringValue")
  302. Animation162 = Instance.new("Animation")
  303. StringValue163 = Instance.new("StringValue")
  304. Animation164 = Instance.new("Animation")
  305. StringValue165 = Instance.new("StringValue")
  306. Animation166 = Instance.new("Animation")
  307. Script167 = Instance.new("Script")
  308. Script168 = Instance.new("Script")
  309. Script169 = Instance.new("Script")
  310. IntValue170 = Instance.new("IntValue")
  311. Script171 = Instance.new("Script")
  312. LocalScript172 = Instance.new("LocalScript")
  313. ScreenGui173 = Instance.new("ScreenGui")
  314. Frame174 = Instance.new("Frame")
  315. LocalScript175 = Instance.new("LocalScript")
  316. LocalScript176 = Instance.new("LocalScript")
  317. Sound177 = Instance.new("Sound")
  318. Sound178 = Instance.new("Sound")
  319. Sound179 = Instance.new("Sound")
  320. Sound180 = Instance.new("Sound")
  321. Script181 = Instance.new("Script")
  322. Model0.Name = "The_Rake"
  323. Model0.Parent = mas
  324. Model0.PrimaryPart = Part1
  325. Part1.Name = "Head"
  326. Part1.Parent = Model0
  327. Part1.CFrame = CFrame.new(27.6378422, 5.35645008, 5.02940178, 0.0111954138, -2.81288521e-08, -0.999937415, 2.40858863e-05, 1, 2.4153843e-07, 0.999937415, -2.40870795e-05, 0.0111954138)
  328. Part1.Orientation = Vector3.new(0, -89.3600006, 0)
  329. Part1.Position = Vector3.new(27.6378422, 5.35645008, 5.02940178)
  330. Part1.Rotation = Vector3.new(0, -89.3600006, 0)
  331. Part1.Transparency = 1
  332. Part1.Size = Vector3.new(2.27426004, 1.13713002, 1.13713002)
  333. Part1.BackParamA = -99999
  334. Part1.BackParamB = 99999
  335. Part1.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  336. Part1.BottomParamA = -99999
  337. Part1.BottomParamB = 99999
  338. Part1.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  339. Part1.CustomPhysicalProperties = 0.699999988, 2, 0, 1, 1
  340. Part1.FrontParamA = -99999
  341. Part1.FrontParamB = 99999
  342. Part1.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  343. Part1.LeftParamA = -99999
  344. Part1.LeftParamB = 99999
  345. Part1.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  346. Part1.Locked = true
  347. Part1.Material = Enum.Material.SmoothPlastic
  348. Part1.RightParamA = -99999
  349. Part1.RightParamB = 99999
  350. Part1.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  351. Part1.TopParamA = -99999
  352. Part1.TopParamB = 99999
  353. Part1.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  354. Part1.FormFactor = Enum.FormFactor.Symmetric
  355. Part1.formFactor = Enum.FormFactor.Symmetric
  356. Script2.Name = "qPerfectionWeld"
  357. Script2.Parent = Part1
  358. table.insert(cors,sandbox(Script2,function()
  359. -- Created by Quenty (@Quenty, follow me on twitter).
  360. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  361. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  362.  
  363. --[[ INSTRUCTIONS
  364. - Place in the model
  365. - Make sure model is anchored
  366. - That's it. It will weld the model and all children.
  367.  
  368. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  369. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  370. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  371. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  372. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  373. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  374. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  375. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  376.  
  377. 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.
  378. ]]
  379.  
  380. --[[ DOCUMENTATION
  381. - 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.
  382. - Will work in PBS servers
  383. - Will work as long as it starts out with the part anchored
  384. - Stores the relative CFrame as a CFrame value
  385. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  386. - Utilizes a recursive algorith to find all parts in the model
  387. - Will reweld on script reparent if the script is initially parented to a tool.
  388. - Welds as fast as possible
  389. ]]
  390.  
  391. -- qPerfectionWeld.lua
  392. -- Created 10/6/2014
  393. -- Author: Quenty
  394. -- Version 1.0.3
  395.  
  396. -- Updated 10/14/2014 - Updated to 1.0.1
  397. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  398.  
  399. -- Updated 10/14/2014 - Updated to 1.0.2
  400. --- Fixed bug fix.
  401.  
  402. -- Updated 10/14/2014 - Updated to 1.0.3
  403. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  404.  
  405. 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).
  406.  
  407.  
  408. local function CallOnChildren(Instance, FunctionToCall)
  409. -- Calls a function on each of the children of a certain object, using recursion.
  410.  
  411. FunctionToCall(Instance)
  412.  
  413. for _, Child in next, Instance:GetChildren() do
  414. CallOnChildren(Child, FunctionToCall)
  415. end
  416. end
  417.  
  418. local function GetNearestParent(Instance, ClassName)
  419. -- Returns the nearest parent of a certain class, or returns nil
  420.  
  421. local Ancestor = Instance
  422. repeat
  423. Ancestor = Ancestor.Parent
  424. if Ancestor == nil then
  425. return nil
  426. end
  427. until Ancestor:IsA(ClassName)
  428.  
  429. return Ancestor
  430. end
  431.  
  432. local function GetBricks(StartInstance)
  433. local List = {}
  434.  
  435. -- if StartInstance:IsA("BasePart") then
  436. -- List[#List+1] = StartInstance
  437. -- end
  438.  
  439. CallOnChildren(StartInstance, function(Item)
  440. if Item:IsA("BasePart") then
  441. List[#List+1] = Item;
  442. end
  443. end)
  444.  
  445. return List
  446. end
  447.  
  448. local function Modify(Instance, Values)
  449. -- Modifies an Instance by using a table.
  450.  
  451. assert(type(Values) == "table", "Values is not a table");
  452.  
  453. for Index, Value in next, Values do
  454. if type(Index) == "number" then
  455. Value.Parent = Instance
  456. else
  457. Instance[Index] = Value
  458. end
  459. end
  460. return Instance
  461. end
  462.  
  463. local function Make(ClassType, Properties)
  464. -- Using a syntax hack to create a nice way to Make new items.
  465.  
  466. return Modify(Instance.new(ClassType), Properties)
  467. end
  468.  
  469. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  470. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  471.  
  472. local function HasWheelJoint(Part)
  473. for _, SurfaceName in pairs(Surfaces) do
  474. for _, HingSurfaceName in pairs(HingSurfaces) do
  475. if Part[SurfaceName].Name == HingSurfaceName then
  476. return true
  477. end
  478. end
  479. end
  480.  
  481. return false
  482. end
  483.  
  484. local function ShouldBreakJoints(Part)
  485. --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  486. -- definitely some edge cases.
  487.  
  488. if NEVER_BREAK_JOINTS then
  489. return false
  490. end
  491.  
  492. if HasWheelJoint(Part) then
  493. return false
  494. end
  495.  
  496. local Connected = Part:GetConnectedParts()
  497.  
  498. if #Connected == 1 then
  499. return false
  500. end
  501.  
  502. for _, Item in pairs(Connected) do
  503. if HasWheelJoint(Item) then
  504. return false
  505. elseif not Item:IsDescendantOf(script.Parent) then
  506. return false
  507. end
  508. end
  509.  
  510. return true
  511. end
  512.  
  513. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  514. --- Weld's 2 parts together
  515. -- @param Part0 The first part
  516. -- @param Part1 The second part (Dependent part most of the time).
  517. -- @param [JointType] The type of joint. Defaults to weld.
  518. -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  519. -- @return The weld created.
  520.  
  521. JointType = JointType or "Weld"
  522. local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  523.  
  524. local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  525. Modify(NewWeld, {
  526. Name = "qCFrameWeldThingy";
  527. Part0 = Part0;
  528. Part1 = Part1;
  529. C0 = CFrame.new();--Part0.CFrame:inverse();
  530. C1 = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  531. Parent = Part1;
  532. })
  533.  
  534. if not RelativeValue then
  535. RelativeValue = Make("CFrameValue", {
  536. Parent = Part1;
  537. Name = "qRelativeCFrameWeldValue";
  538. Archivable = true;
  539. Value = NewWeld.C1;
  540. })
  541. end
  542.  
  543. return NewWeld
  544. end
  545.  
  546. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  547. -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  548. -- @param MainPart The part to weld the model to (can be in the model).
  549. -- @param [JointType] The type of joint. Defaults to weld.
  550. -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  551.  
  552. for _, Part in pairs(Parts) do
  553. if ShouldBreakJoints(Part) then
  554. Part:BreakJoints()
  555. end
  556. end
  557.  
  558. for _, Part in pairs(Parts) do
  559. if Part ~= MainPart then
  560. WeldTogether(MainPart, Part, JointType, MainPart)
  561. end
  562. end
  563.  
  564. if not DoNotUnanchor then
  565. for _, Part in pairs(Parts) do
  566. Part.Anchored = false
  567. end
  568. MainPart.Anchored = false
  569. end
  570. end
  571.  
  572. local function PerfectionWeld()
  573. local Tool = GetNearestParent(script, "Tool")
  574.  
  575. local Parts = GetBricks(script.Parent)
  576. 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]
  577.  
  578. if PrimaryPart then
  579. WeldParts(Parts, PrimaryPart, "Weld", false)
  580. else
  581. warn("qWeld - Unable to weld part")
  582. end
  583.  
  584. return Tool
  585. end
  586.  
  587. local Tool = PerfectionWeld()
  588.  
  589.  
  590. if Tool and script.ClassName == "Script" then
  591. --- Don't bother with local scripts
  592.  
  593. script.Parent.AncestryChanged:connect(function()
  594. PerfectionWeld()
  595. end)
  596. end
  597.  
  598. -- Created by Quenty (@Quenty, follow me on twitter).
  599.  
  600. end))
  601. Part3.Name = "Eye1Base"
  602. Part3.Parent = Part1
  603. Part3.CFrame = CFrame.new(28.2259808, 5.43628407, 4.75051212, -0.0111787179, -2.14213287e-08, 0.999937534, -2.36090218e-05, 1, -2.42512954e-07, -0.999937534, -2.36102551e-05, -0.0111787179)
  604. Part3.Orientation = Vector3.new(0, 90.6399994, 0)
  605. Part3.Position = Vector3.new(28.2259808, 5.43628407, 4.75051212)
  606. Part3.Rotation = Vector3.new(180, 89.3600006, 180)
  607. Part3.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  608. Part3.Size = Vector3.new(0.318398207, 0.318398207, 0.318398207)
  609. Part3.BottomSurface = Enum.SurfaceType.Smooth
  610. Part3.BrickColor = BrickColor.new("Really black")
  611. Part3.Material = Enum.Material.SmoothPlastic
  612. Part3.TopSurface = Enum.SurfaceType.Smooth
  613. Part3.brickColor = BrickColor.new("Really black")
  614. Part3.Shape = Enum.PartType.Ball
  615. Part4.Name = "Eye2"
  616. Part4.Parent = Part1
  617. Part4.CFrame = CFrame.new(28.3297405, 5.43630791, 5.30373287, -0.0111787179, -2.14213287e-08, 0.999937534, -2.36090218e-05, 1, -2.42512954e-07, -0.999937534, -2.36102551e-05, -0.0111787179)
  618. Part4.Orientation = Vector3.new(0, 90.6399994, 0)
  619. Part4.Position = Vector3.new(28.3297405, 5.43630791, 5.30373287)
  620. Part4.Rotation = Vector3.new(180, 89.3600006, 180)
  621. Part4.Color = Color3.new(0.972549, 0.972549, 0.972549)
  622. Part4.Size = Vector3.new(0.140342042, 0.140342042, 0.140342042)
  623. Part4.BottomSurface = Enum.SurfaceType.Smooth
  624. Part4.BrickColor = BrickColor.new("Institutional white")
  625. Part4.Material = Enum.Material.Neon
  626. Part4.TopSurface = Enum.SurfaceType.Smooth
  627. Part4.brickColor = BrickColor.new("Institutional white")
  628. Part4.Shape = Enum.PartType.Ball
  629. Part5.Name = "Eye2Base"
  630. Part5.Parent = Part1
  631. Part5.CFrame = CFrame.new(28.2236614, 5.43635702, 5.28127193, -0.0111787179, -2.14213287e-08, 0.999937534, -2.36090218e-05, 1, -2.42512954e-07, -0.999937534, -2.36102551e-05, -0.0111787179)
  632. Part5.Orientation = Vector3.new(0, 90.6399994, 0)
  633. Part5.Position = Vector3.new(28.2236614, 5.43635702, 5.28127193)
  634. Part5.Rotation = Vector3.new(180, 89.3600006, 180)
  635. Part5.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  636. Part5.Size = Vector3.new(0.318398207, 0.318398207, 0.318398207)
  637. Part5.BottomSurface = Enum.SurfaceType.Smooth
  638. Part5.BrickColor = BrickColor.new("Really black")
  639. Part5.Material = Enum.Material.SmoothPlastic
  640. Part5.TopSurface = Enum.SurfaceType.Smooth
  641. Part5.brickColor = BrickColor.new("Really black")
  642. Part5.Shape = Enum.PartType.Ball
  643. ClickDetector6.Parent = Part1
  644. ClickDetector6.MaxActivationDistance = 0
  645. Sound7.Name = "RakeStep"
  646. Sound7.Parent = Part1
  647. Sound7.MaxDistance = 100
  648. Sound7.SoundId = "rbxassetid://481147984"
  649. Sound7.Volume = 1.5
  650. SpecialMesh8.Parent = Part1
  651. SpecialMesh8.MeshId = "http://www.roblox.com/asset/?id=17392637"
  652. SpecialMesh8.Scale = Vector3.new(1.13712955, 1.13712955, 1.13712955)
  653. SpecialMesh8.MeshType = Enum.MeshType.FileMesh
  654. MeshPart9.Name = "Head"
  655. MeshPart9.Parent = Part1
  656. MeshPart9.CFrame = CFrame.new(27.6315594, 5.36224508, 5.02455997, 0.0112486593, -2.26687007e-08, -0.999936819, 2.36089982e-05, 1, 2.42916713e-07, 0.999936819, -2.36102333e-05, 0.0112486593)
  657. MeshPart9.Orientation = Vector3.new(0, -89.3600006, 0)
  658. MeshPart9.Position = Vector3.new(27.6315594, 5.36224508, 5.02455997)
  659. MeshPart9.Rotation = Vector3.new(0, -89.3600006, 0)
  660. MeshPart9.Color = Color3.new(0.529412, 0.529412, 0.529412)
  661. MeshPart9.Size = Vector3.new(1.52769995, 1.69193029, 1.70246553)
  662. MeshPart9.BrickColor = BrickColor.new("Silver flip/flop")
  663. MeshPart9.CanCollide = false
  664. MeshPart9.Material = Enum.Material.SmoothPlastic
  665. MeshPart9.brickColor = BrickColor.new("Silver flip/flop")
  666. Texture10.Name = "FrontTexture"
  667. Texture10.Parent = MeshPart9
  668. Texture10.Texture = "rbxassetid://843920074"
  669. Texture10.Transparency = 0.80000001192093
  670. Texture10.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  671. Texture11.Name = "BackTexture"
  672. Texture11.Parent = MeshPart9
  673. Texture11.Texture = "rbxassetid://843920074"
  674. Texture11.Transparency = 0.80000001192093
  675. Texture11.Face = Enum.NormalId.Back
  676. Texture11.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  677. Texture12.Name = "LeftTexture"
  678. Texture12.Parent = MeshPart9
  679. Texture12.Texture = "rbxassetid://843920074"
  680. Texture12.Transparency = 0.80000001192093
  681. Texture12.Face = Enum.NormalId.Left
  682. Texture12.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  683. Texture13.Name = "RightTexture"
  684. Texture13.Parent = MeshPart9
  685. Texture13.Texture = "rbxassetid://843920074"
  686. Texture13.Transparency = 0.80000001192093
  687. Texture13.Face = Enum.NormalId.Right
  688. Texture13.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  689. Texture14.Name = "TopTexture"
  690. Texture14.Parent = MeshPart9
  691. Texture14.Texture = "rbxassetid://843920074"
  692. Texture14.Transparency = 0.80000001192093
  693. Texture14.Face = Enum.NormalId.Top
  694. Texture14.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  695. Texture15.Name = "BottomTexture"
  696. Texture15.Parent = MeshPart9
  697. Texture15.Texture = "rbxassetid://843920074"
  698. Texture15.Transparency = 0.80000001192093
  699. Texture15.Face = Enum.NormalId.Bottom
  700. Texture15.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  701. Part16.Name = "Eye1"
  702. Part16.Parent = Part1
  703. Part16.CFrame = CFrame.new(28.3320599, 5.43632507, 4.72890806, -0.0111787179, -2.14213287e-08, 0.999937534, -2.36090218e-05, 1, -2.42512954e-07, -0.999937534, -2.36102551e-05, -0.0111787179)
  704. Part16.Orientation = Vector3.new(0, 90.6399994, 0)
  705. Part16.Position = Vector3.new(28.3320599, 5.43632507, 4.72890806)
  706. Part16.Rotation = Vector3.new(180, 89.3600006, 180)
  707. Part16.Color = Color3.new(0.972549, 0.972549, 0.972549)
  708. Part16.Size = Vector3.new(0.140342042, 0.140342042, 0.140342042)
  709. Part16.BottomSurface = Enum.SurfaceType.Smooth
  710. Part16.BrickColor = BrickColor.new("Institutional white")
  711. Part16.Material = Enum.Material.Neon
  712. Part16.TopSurface = Enum.SurfaceType.Smooth
  713. Part16.brickColor = BrickColor.new("Institutional white")
  714. Part16.Shape = Enum.PartType.Ball
  715. Part17.Name = "EyebrowL"
  716. Part17.Parent = Part1
  717. Part17.CFrame = CFrame.new(28.3235188, 5.63265705, 4.74245596, 0.330886126, -0.00366110797, 0.943663597, -0.41608116, -0.898106754, 0.142410308, 0.846989274, -0.439762205, -0.298694402)
  718. Part17.Orientation = Vector3.new(-8.18999958, 107.559998, -155.139999)
  719. Part17.Position = Vector3.new(28.3235188, 5.63265705, 4.74245596)
  720. Part17.Rotation = Vector3.new(-154.509995, 70.6800003, 0.629999995)
  721. Part17.Color = Color3.new(0.529412, 0.529412, 0.529412)
  722. Part17.Size = Vector3.new(0.375252992, 0.090970397, 0.0682277977)
  723. Part17.BottomSurface = Enum.SurfaceType.Smooth
  724. Part17.BrickColor = BrickColor.new("Silver flip/flop")
  725. Part17.Material = Enum.Material.SmoothPlastic
  726. Part17.TopSurface = Enum.SurfaceType.Smooth
  727. Part17.brickColor = BrickColor.new("Silver flip/flop")
  728. SpecialMesh18.Parent = Part17
  729. SpecialMesh18.MeshType = Enum.MeshType.Sphere
  730. Texture19.Name = "FrontTexture"
  731. Texture19.Parent = Part17
  732. Texture19.Texture = "rbxassetid://843920074"
  733. Texture19.Transparency = 0.80000001192093
  734. Texture19.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  735. Texture20.Name = "BackTexture"
  736. Texture20.Parent = Part17
  737. Texture20.Texture = "rbxassetid://843920074"
  738. Texture20.Transparency = 0.80000001192093
  739. Texture20.Face = Enum.NormalId.Back
  740. Texture20.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  741. Texture21.Name = "LeftTexture"
  742. Texture21.Parent = Part17
  743. Texture21.Texture = "rbxassetid://843920074"
  744. Texture21.Transparency = 0.80000001192093
  745. Texture21.Face = Enum.NormalId.Left
  746. Texture21.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  747. Texture22.Name = "RightTexture"
  748. Texture22.Parent = Part17
  749. Texture22.Texture = "rbxassetid://843920074"
  750. Texture22.Transparency = 0.80000001192093
  751. Texture22.Face = Enum.NormalId.Right
  752. Texture22.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  753. Texture23.Name = "TopTexture"
  754. Texture23.Parent = Part17
  755. Texture23.Texture = "rbxassetid://843920074"
  756. Texture23.Transparency = 0.80000001192093
  757. Texture23.Face = Enum.NormalId.Top
  758. Texture23.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  759. Texture24.Name = "BottomTexture"
  760. Texture24.Parent = Part17
  761. Texture24.Texture = "rbxassetid://843920074"
  762. Texture24.Transparency = 0.80000001192093
  763. Texture24.Face = Enum.NormalId.Bottom
  764. Texture24.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  765. Part25.Name = "EyebrowR"
  766. Part25.Parent = Part1
  767. Part25.CFrame = CFrame.new(28.3235188, 5.64175892, 5.30678701, 0.336375087, -0.270389229, -0.902076304, -0.410981089, -0.904011548, 0.117718652, -0.847317159, 0.33113867, -0.415211827)
  768. Part25.Orientation = Vector3.new(-6.76000023, -114.720001, -155.550003)
  769. Part25.Position = Vector3.new(28.3235188, 5.64175892, 5.30678701)
  770. Part25.Rotation = Vector3.new(-164.169998, -64.4300003, 38.7900009)
  771. Part25.Color = Color3.new(0.529412, 0.529412, 0.529412)
  772. Part25.Size = Vector3.new(0.375252992, 0.090970397, 0.0682277977)
  773. Part25.BottomSurface = Enum.SurfaceType.Smooth
  774. Part25.BrickColor = BrickColor.new("Silver flip/flop")
  775. Part25.Material = Enum.Material.SmoothPlastic
  776. Part25.TopSurface = Enum.SurfaceType.Smooth
  777. Part25.brickColor = BrickColor.new("Silver flip/flop")
  778. SpecialMesh26.Parent = Part25
  779. SpecialMesh26.MeshType = Enum.MeshType.Sphere
  780. Texture27.Name = "FrontTexture"
  781. Texture27.Parent = Part25
  782. Texture27.Texture = "rbxassetid://843920074"
  783. Texture27.Transparency = 0.80000001192093
  784. Texture27.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  785. Texture28.Name = "BackTexture"
  786. Texture28.Parent = Part25
  787. Texture28.Texture = "rbxassetid://843920074"
  788. Texture28.Transparency = 0.80000001192093
  789. Texture28.Face = Enum.NormalId.Back
  790. Texture28.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  791. Texture29.Name = "LeftTexture"
  792. Texture29.Parent = Part25
  793. Texture29.Texture = "rbxassetid://843920074"
  794. Texture29.Transparency = 0.80000001192093
  795. Texture29.Face = Enum.NormalId.Left
  796. Texture29.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  797. Texture30.Name = "RightTexture"
  798. Texture30.Parent = Part25
  799. Texture30.Texture = "rbxassetid://843920074"
  800. Texture30.Transparency = 0.80000001192093
  801. Texture30.Face = Enum.NormalId.Right
  802. Texture30.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  803. Texture31.Name = "TopTexture"
  804. Texture31.Parent = Part25
  805. Texture31.Texture = "rbxassetid://843920074"
  806. Texture31.Transparency = 0.80000001192093
  807. Texture31.Face = Enum.NormalId.Top
  808. Texture31.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  809. Texture32.Name = "BottomTexture"
  810. Texture32.Parent = Part25
  811. Texture32.Texture = "rbxassetid://843920074"
  812. Texture32.Transparency = 0.80000001192093
  813. Texture32.Face = Enum.NormalId.Bottom
  814. Texture32.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  815. Part33.Name = "Mouth"
  816. Part33.Parent = Part1
  817. Part33.CFrame = CFrame.new(28.2304974, 4.45094919, 5.02370596, -0.011195451, -0.999936938, -0.000999944634, -2.40858826e-05, -0.000999737647, 0.999999523, -0.999937415, 0.0111954696, -1.28918482e-05)
  818. Part33.Orientation = Vector3.new(-89.9400024, -90.7399979, -178.619995)
  819. Part33.Position = Vector3.new(28.2304974, 4.45094919, 5.02370596)
  820. Part33.Rotation = Vector3.new(-90, -0.0599999987, 90.6399994)
  821. Part33.Color = Color3.new(0.529412, 0.529412, 0.529412)
  822. Part33.Size = Vector3.new(0.920000017, 0.800000012, 1.10000002)
  823. Part33.BackParamA = -99999
  824. Part33.BackParamB = 99999
  825. Part33.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  826. Part33.BottomParamA = -99999
  827. Part33.BottomParamB = 99999
  828. Part33.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  829. Part33.BrickColor = BrickColor.new("Silver flip/flop")
  830. Part33.CanCollide = false
  831. Part33.CustomPhysicalProperties = 0.699999988, 2, 0, 1, 1
  832. Part33.FrontParamA = -99999
  833. Part33.FrontParamB = 99999
  834. Part33.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  835. Part33.LeftParamA = -99999
  836. Part33.LeftParamB = 99999
  837. Part33.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  838. Part33.Material = Enum.Material.SmoothPlastic
  839. Part33.RightParamA = -99999
  840. Part33.RightParamB = 99999
  841. Part33.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  842. Part33.TopParamA = -99999
  843. Part33.TopParamB = 99999
  844. Part33.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  845. Part33.brickColor = BrickColor.new("Silver flip/flop")
  846. Part33.FormFactor = Enum.FormFactor.Custom
  847. Part33.formFactor = Enum.FormFactor.Custom
  848. SpecialMesh34.Parent = Part33
  849. SpecialMesh34.Offset = Vector3.new(0, 0, 0.215910837)
  850. SpecialMesh34.MeshType = Enum.MeshType.Sphere
  851. Script35.Name = "MovingMouth"
  852. Script35.Parent = Part33
  853. table.insert(cors,sandbox(Script35,function()
  854. -- Script by XcorrectTheDev
  855.  
  856. while wait(1) do
  857. if script.Parent.Transparency == 1 then
  858. script.Parent.MouthDecal.Transparency = 1
  859. script.Parent.BackTexture.Transparency = 1
  860. script.Parent.FrontTexture.Transparency = 1
  861. script.Parent.LeftTexture.Transparency = 1
  862. script.Parent.RightTexture.Transparency = 1
  863. script.Parent.TopTexture.Transparency = 1
  864. script.Parent.BottomTexture.Transparency = 1
  865. elseif script.Parent.Transparency == 0 then
  866. script.Parent.MouthDecal.Transparency = 0
  867. script.Parent.BackTexture.Transparency = 0.8
  868. script.Parent.FrontTexture.Transparency = 0.8
  869. script.Parent.LeftTexture.Transparency = 0.8
  870. script.Parent.RightTexture.Transparency = 0.8
  871. script.Parent.TopTexture.Transparency = 0.8
  872. script.Parent.BottomTexture.Transparency = 0.8
  873. end
  874. if script.Parent.Parent.Mouth2.Transparency == 0 then
  875. script.Parent.Parent.Mouth2.MouthDecal.Transparency = 0
  876. script.Parent.Parent.Mouth2.BackTexture.Transparency = 0.8
  877. script.Parent.Parent.Mouth2.FrontTexture.Transparency = 0.8
  878. script.Parent.Parent.Mouth2.LeftTexture.Transparency = 0.8
  879. script.Parent.Parent.Mouth2.RightTexture.Transparency = 0.8
  880. script.Parent.Parent.Mouth2.TopTexture.Transparency = 0.8
  881. script.Parent.Parent.Mouth2.BottomTexture.Transparency = 0.8
  882. elseif script.Parent.Parent.Mouth2.Transparency == 1 then
  883. script.Parent.Parent.Mouth2.MouthDecal.Transparency = 1
  884. script.Parent.Parent.Mouth2.BackTexture.Transparency = 1
  885. script.Parent.Parent.Mouth2.FrontTexture.Transparency = 1
  886. script.Parent.Parent.Mouth2.LeftTexture.Transparency = 1
  887. script.Parent.Parent.Mouth2.RightTexture.Transparency = 1
  888. script.Parent.Parent.Mouth2.TopTexture.Transparency = 1
  889. script.Parent.Parent.Mouth2.BottomTexture.Transparency = 1
  890. end
  891. end
  892.  
  893. local Mouth = script.Parent
  894. local MoveDebounce = false
  895.  
  896. spawn(function()
  897. while true do
  898. local RandomMove = math.random(1,2)
  899. if RandomMove == 1 or 2 and MoveDebounce == false then
  900. MoveDebounce = true
  901. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  902. wait(0.05)
  903. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  904. wait(0.05)
  905. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  906. wait(0.05)
  907. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  908. wait(0.05)
  909. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  910. wait(0.05)
  911. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  912. wait(0.05)
  913. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  914. wait(0.05)
  915. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  916. wait(0.5)
  917. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  918. wait(0.05)
  919. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  920. wait(0.05)
  921. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  922. wait(0.05)
  923. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  924. wait(0.05)
  925. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  926. wait(0.05)
  927. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  928. wait(0.05)
  929. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  930. wait(0.05)
  931. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  932. wait(0.5)
  933. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  934. wait(0.05)
  935. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  936. wait(0.05)
  937. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  938. wait(0.05)
  939. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  940. wait(0.05)
  941. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  942. wait(0.05)
  943. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  944. wait(0.05)
  945. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  946. wait(0.05)
  947. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  948. wait(0.5)
  949. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  950. wait(0.05)
  951. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  952. wait(0.05)
  953. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  954. wait(0.05)
  955. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  956. wait(0.05)
  957. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  958. wait(0.05)
  959. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  960. wait(0.05)
  961. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  962. wait(0.05)
  963. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  964. wait(0.5)
  965. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  966. wait(0.05)
  967. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  968. wait(0.05)
  969. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  970. wait(0.05)
  971. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  972. wait(0.05)
  973. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  974. wait(0.05)
  975. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  976. wait(0.05)
  977. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  978. wait(0.05)
  979. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  980. wait(0.5)
  981. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  982. wait(0.05)
  983. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  984. wait(0.05)
  985. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  986. wait(0.05)
  987. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  988. wait(0.05)
  989. Mouth.Size = Vector3.new(0.92, 0.8, 0.8)
  990. wait(0.05)
  991. Mouth.Size = Vector3.new(0.92, 0.8, 0.9)
  992. wait(0.05)
  993. Mouth.Size = Vector3.new(0.92, 0.8, 1)
  994. wait(0.05)
  995. Mouth.Size = Vector3.new(0.92, 0.8, 1.1)
  996. end
  997. wait(math.random(2,4))
  998. MoveDebounce = false
  999. end
  1000. end)
  1001. end))
  1002. Decal36.Name = "MouthDecal"
  1003. Decal36.Parent = Part33
  1004. Decal36.Texture = "rbxassetid://426043350"
  1005. Decal36.Face = Enum.NormalId.Bottom
  1006. Texture37.Name = "BackTexture"
  1007. Texture37.Parent = Part33
  1008. Texture37.Texture = "rbxassetid://843920074"
  1009. Texture37.Transparency = 0.80000001192093
  1010. Texture37.Face = Enum.NormalId.Back
  1011. Texture37.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1012. Texture38.Name = "BottomTexture"
  1013. Texture38.Parent = Part33
  1014. Texture38.Texture = "rbxassetid://843920074"
  1015. Texture38.Transparency = 0.80000001192093
  1016. Texture38.Face = Enum.NormalId.Bottom
  1017. Texture38.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1018. Texture39.Name = "FrontTexture"
  1019. Texture39.Parent = Part33
  1020. Texture39.Texture = "rbxassetid://843920074"
  1021. Texture39.Transparency = 0.80000001192093
  1022. Texture39.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1023. Texture40.Name = "LeftTexture"
  1024. Texture40.Parent = Part33
  1025. Texture40.Texture = "rbxassetid://843920074"
  1026. Texture40.Transparency = 0.80000001192093
  1027. Texture40.Face = Enum.NormalId.Left
  1028. Texture40.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1029. Texture41.Name = "RightTexture"
  1030. Texture41.Parent = Part33
  1031. Texture41.Texture = "rbxassetid://843920074"
  1032. Texture41.Transparency = 0.80000001192093
  1033. Texture41.Face = Enum.NormalId.Right
  1034. Texture41.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1035. Texture42.Name = "TopTexture"
  1036. Texture42.Parent = Part33
  1037. Texture42.Texture = "rbxassetid://843920074"
  1038. Texture42.Transparency = 0.80000001192093
  1039. Texture42.Face = Enum.NormalId.Top
  1040. Texture42.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1041. Sound43.Name = "Found"
  1042. Sound43.Parent = Part1
  1043. Sound43.MaxDistance = 80
  1044. Sound43.SoundId = "rbxassetid://380102473"
  1045. Sound43.Volume = 0
  1046. Sound44.Name = "Static"
  1047. Sound44.Parent = Part1
  1048. Sound44.Looped = true
  1049. Sound44.MaxDistance = 90
  1050. Sound44.Pitch = 1.2000000476837
  1051. Sound44.PlaybackSpeed = 1.2000000476837
  1052. Sound44.SoundId = "rbxassetid://468911141"
  1053. Sound44.Volume = 0
  1054. Sound45.Name = "RakeHurt3"
  1055. Sound45.Parent = Part1
  1056. Sound45.SoundId = "rbxassetid://266272106"
  1057. Sound45.Volume = 3
  1058. Sound46.Name = "RakeScream"
  1059. Sound46.Parent = Part1
  1060. Sound46.Pitch = 0.80000001192093
  1061. Sound46.PlaybackSpeed = 0.80000001192093
  1062. Sound46.SoundId = "rbxassetid://528621365"
  1063. Sound46.Volume = 3.5
  1064. Script47.Name = "ScreamPitch"
  1065. Script47.Parent = Sound46
  1066. table.insert(cors,sandbox(Script47,function()
  1067. -- Script by XcorrectTheDev
  1068.  
  1069. local AlreadyRandom = false
  1070. local PitchSet = false
  1071.  
  1072. while wait() do
  1073. if script.Parent.IsPlaying then
  1074. wait(5)
  1075. local RandomSound = math.random(1,3)
  1076. if RandomSound == 1 or 3 and not AlreadyRandom then
  1077. AlreadyRandom = true
  1078. script.Parent.PlaybackSpeed = math.random(0.8,0.85)
  1079. PitchSet = true
  1080. end
  1081. if RandomSound == 2 and not AlreadyRandom then
  1082. AlreadyRandom = true
  1083. script.Parent.PlaybackSpeed = math.random(0.85,0.8)
  1084. PitchSet = true
  1085. end
  1086. end
  1087. end
  1088.  
  1089. spawn(function()
  1090. while wait() do
  1091. if PitchSet then
  1092. if script.Parent.IsPlaying then
  1093. AlreadyRandom = false
  1094. PitchSet = false
  1095. end
  1096. end
  1097. end
  1098. end)
  1099.  
  1100. end))
  1101. Sound48.Name = "RakeTheme"
  1102. Sound48.Parent = Part1
  1103. Sound48.Looped = true
  1104. Sound48.MaxDistance = inf
  1105. Sound48.Pitch = 1.2000000476837
  1106. Sound48.PlaybackSpeed = 1.2000000476837
  1107. Sound48.SoundId = "rbxassetid://2593956530"
  1108. Sound48.Volume = 0
  1109. DistortionSoundEffect49.Parent = Sound48
  1110. DistortionSoundEffect49.Level = 1
  1111. Part50.Name = "Mouth2"
  1112. Part50.Parent = Part1
  1113. Part50.CFrame = CFrame.new(28.2212811, 4.80859089, 5.02346182, -0.011195451, -0.999936938, -0.000999944634, -2.40858826e-05, -0.000999737647, 0.999999523, -0.999937415, 0.0111954696, -1.28918482e-05)
  1114. Part50.Orientation = Vector3.new(-89.9400024, -90.7399979, -178.619995)
  1115. Part50.Position = Vector3.new(28.2212811, 4.80859089, 5.02346182)
  1116. Part50.Rotation = Vector3.new(-90, -0.0599999987, 90.6399994)
  1117. Part50.Color = Color3.new(0.529412, 0.529412, 0.529412)
  1118. Part50.Transparency = 1
  1119. Part50.Size = Vector3.new(0.920000017, 0.800000012, 0.400000006)
  1120. Part50.BackParamA = -99999
  1121. Part50.BackParamB = 99999
  1122. Part50.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1123. Part50.BottomParamA = -99999
  1124. Part50.BottomParamB = 99999
  1125. Part50.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1126. Part50.BrickColor = BrickColor.new("Silver flip/flop")
  1127. Part50.CanCollide = false
  1128. Part50.CustomPhysicalProperties = 0.699999988, 2, 0, 1, 1
  1129. Part50.FrontParamA = -99999
  1130. Part50.FrontParamB = 99999
  1131. Part50.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1132. Part50.LeftParamA = -99999
  1133. Part50.LeftParamB = 99999
  1134. Part50.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1135. Part50.Material = Enum.Material.SmoothPlastic
  1136. Part50.RightParamA = -99999
  1137. Part50.RightParamB = 99999
  1138. Part50.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1139. Part50.TopParamA = -99999
  1140. Part50.TopParamB = 99999
  1141. Part50.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1142. Part50.brickColor = BrickColor.new("Silver flip/flop")
  1143. Part50.FormFactor = Enum.FormFactor.Custom
  1144. Part50.formFactor = Enum.FormFactor.Custom
  1145. SpecialMesh51.Parent = Part50
  1146. SpecialMesh51.Offset = Vector3.new(0, 0, -0.100000001)
  1147. SpecialMesh51.Scale = Vector3.new(0.949999988, 1, 0.600000024)
  1148. SpecialMesh51.MeshType = Enum.MeshType.Sphere
  1149. Decal52.Name = "MouthDecal"
  1150. Decal52.Parent = Part50
  1151. Decal52.Texture = "rbxassetid://426043350"
  1152. Decal52.Transparency = 1
  1153. Decal52.Face = Enum.NormalId.Bottom
  1154. Texture53.Name = "BackTexture"
  1155. Texture53.Parent = Part50
  1156. Texture53.Texture = "rbxassetid://843920074"
  1157. Texture53.Transparency = 1
  1158. Texture53.Face = Enum.NormalId.Back
  1159. Texture53.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1160. Texture54.Name = "BottomTexture"
  1161. Texture54.Parent = Part50
  1162. Texture54.Texture = "rbxassetid://843920074"
  1163. Texture54.Transparency = 1
  1164. Texture54.Face = Enum.NormalId.Bottom
  1165. Texture54.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1166. Texture55.Name = "FrontTexture"
  1167. Texture55.Parent = Part50
  1168. Texture55.Texture = "rbxassetid://843920074"
  1169. Texture55.Transparency = 1
  1170. Texture55.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1171. Texture56.Name = "LeftTexture"
  1172. Texture56.Parent = Part50
  1173. Texture56.Texture = "rbxassetid://843920074"
  1174. Texture56.Transparency = 1
  1175. Texture56.Face = Enum.NormalId.Left
  1176. Texture56.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1177. Texture57.Name = "RightTexture"
  1178. Texture57.Parent = Part50
  1179. Texture57.Texture = "rbxassetid://843920074"
  1180. Texture57.Transparency = 1
  1181. Texture57.Face = Enum.NormalId.Right
  1182. Texture57.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1183. Texture58.Name = "TopTexture"
  1184. Texture58.Parent = Part50
  1185. Texture58.Texture = "rbxassetid://843920074"
  1186. Texture58.Transparency = 1
  1187. Texture58.Face = Enum.NormalId.Top
  1188. Texture58.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1189. Sound59.Name = "RakeHurt"
  1190. Sound59.Parent = Part1
  1191. Sound59.Pitch = 0.89999997615814
  1192. Sound59.PlaybackSpeed = 0.89999997615814
  1193. Sound59.SoundId = "rbxassetid://266272137"
  1194. Sound59.Volume = 3
  1195. Sound60.Name = "RakeHurt2"
  1196. Sound60.Parent = Part1
  1197. Sound60.SoundId = "rbxassetid://266272124"
  1198. Sound60.Volume = 3
  1199. Part61.Name = "Torso"
  1200. Part61.Parent = Model0
  1201. Part61.CFrame = CFrame.new(27.6378422, 3.65075493, 5.02944279, 0.0111954138, -2.81288521e-08, -0.999937415, 2.40858863e-05, 1, 2.4153843e-07, 0.999937415, -2.40870795e-05, 0.0111954138)
  1202. Part61.Orientation = Vector3.new(0, -89.3600006, 0)
  1203. Part61.Position = Vector3.new(27.6378422, 3.65075493, 5.02944279)
  1204. Part61.Rotation = Vector3.new(0, -89.3600006, 0)
  1205. Part61.Color = Color3.new(0.529412, 0.529412, 0.529412)
  1206. Part61.Size = Vector3.new(2.27426004, 2.27426004, 1.13713002)
  1207. Part61.BackParamA = -99999
  1208. Part61.BackParamB = 99999
  1209. Part61.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1210. Part61.BottomParamA = -99999
  1211. Part61.BottomParamB = 99999
  1212. Part61.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1213. Part61.BrickColor = BrickColor.new("Silver flip/flop")
  1214. Part61.CustomPhysicalProperties = 0.699999988, 2, 0, 1, 1
  1215. Part61.FrontParamA = -99999
  1216. Part61.FrontParamB = 99999
  1217. Part61.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1218. Part61.LeftParamA = -99999
  1219. Part61.LeftParamB = 99999
  1220. Part61.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1221. Part61.Locked = true
  1222. Part61.Material = Enum.Material.SmoothPlastic
  1223. Part61.RightParamA = -99999
  1224. Part61.RightParamB = 99999
  1225. Part61.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1226. Part61.TopParamA = -99999
  1227. Part61.TopParamB = 99999
  1228. Part61.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1229. Part61.brickColor = BrickColor.new("Silver flip/flop")
  1230. Part61.FormFactor = Enum.FormFactor.Symmetric
  1231. Part61.formFactor = Enum.FormFactor.Symmetric
  1232. Script62.Name = "qPerfectionWeld"
  1233. Script62.Parent = Part61
  1234. table.insert(cors,sandbox(Script62,function()
  1235. -- Created by Quenty (@Quenty, follow me on twitter).
  1236. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  1237. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  1238.  
  1239. --[[ INSTRUCTIONS
  1240. - Place in the model
  1241. - Make sure model is anchored
  1242. - That's it. It will weld the model and all children.
  1243.  
  1244. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1245. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1246. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1247. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1248. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1249. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1250. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1251. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1252.  
  1253. 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.
  1254. ]]
  1255.  
  1256. --[[ DOCUMENTATION
  1257. - 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.
  1258. - Will work in PBS servers
  1259. - Will work as long as it starts out with the part anchored
  1260. - Stores the relative CFrame as a CFrame value
  1261. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  1262. - Utilizes a recursive algorith to find all parts in the model
  1263. - Will reweld on script reparent if the script is initially parented to a tool.
  1264. - Welds as fast as possible
  1265. ]]
  1266.  
  1267. -- qPerfectionWeld.lua
  1268. -- Created 10/6/2014
  1269. -- Author: Quenty
  1270. -- Version 1.0.3
  1271.  
  1272. -- Updated 10/14/2014 - Updated to 1.0.1
  1273. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  1274.  
  1275. -- Updated 10/14/2014 - Updated to 1.0.2
  1276. --- Fixed bug fix.
  1277.  
  1278. -- Updated 10/14/2014 - Updated to 1.0.3
  1279. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  1280.  
  1281. 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).
  1282.  
  1283.  
  1284. local function CallOnChildren(Instance, FunctionToCall)
  1285. -- Calls a function on each of the children of a certain object, using recursion.
  1286.  
  1287. FunctionToCall(Instance)
  1288.  
  1289. for _, Child in next, Instance:GetChildren() do
  1290. CallOnChildren(Child, FunctionToCall)
  1291. end
  1292. end
  1293.  
  1294. local function GetNearestParent(Instance, ClassName)
  1295. -- Returns the nearest parent of a certain class, or returns nil
  1296.  
  1297. local Ancestor = Instance
  1298. repeat
  1299. Ancestor = Ancestor.Parent
  1300. if Ancestor == nil then
  1301. return nil
  1302. end
  1303. until Ancestor:IsA(ClassName)
  1304.  
  1305. return Ancestor
  1306. end
  1307.  
  1308. local function GetBricks(StartInstance)
  1309. local List = {}
  1310.  
  1311. -- if StartInstance:IsA("BasePart") then
  1312. -- List[#List+1] = StartInstance
  1313. -- end
  1314.  
  1315. CallOnChildren(StartInstance, function(Item)
  1316. if Item:IsA("BasePart") then
  1317. List[#List+1] = Item;
  1318. end
  1319. end)
  1320.  
  1321. return List
  1322. end
  1323.  
  1324. local function Modify(Instance, Values)
  1325. -- Modifies an Instance by using a table.
  1326.  
  1327. assert(type(Values) == "table", "Values is not a table");
  1328.  
  1329. for Index, Value in next, Values do
  1330. if type(Index) == "number" then
  1331. Value.Parent = Instance
  1332. else
  1333. Instance[Index] = Value
  1334. end
  1335. end
  1336. return Instance
  1337. end
  1338.  
  1339. local function Make(ClassType, Properties)
  1340. -- Using a syntax hack to create a nice way to Make new items.
  1341.  
  1342. return Modify(Instance.new(ClassType), Properties)
  1343. end
  1344.  
  1345. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  1346. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  1347.  
  1348. local function HasWheelJoint(Part)
  1349. for _, SurfaceName in pairs(Surfaces) do
  1350. for _, HingSurfaceName in pairs(HingSurfaces) do
  1351. if Part[SurfaceName].Name == HingSurfaceName then
  1352. return true
  1353. end
  1354. end
  1355. end
  1356.  
  1357. return false
  1358. end
  1359.  
  1360. local function ShouldBreakJoints(Part)
  1361. --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  1362. -- definitely some edge cases.
  1363.  
  1364. if NEVER_BREAK_JOINTS then
  1365. return false
  1366. end
  1367.  
  1368. if HasWheelJoint(Part) then
  1369. return false
  1370. end
  1371.  
  1372. local Connected = Part:GetConnectedParts()
  1373.  
  1374. if #Connected == 1 then
  1375. return false
  1376. end
  1377.  
  1378. for _, Item in pairs(Connected) do
  1379. if HasWheelJoint(Item) then
  1380. return false
  1381. elseif not Item:IsDescendantOf(script.Parent) then
  1382. return false
  1383. end
  1384. end
  1385.  
  1386. return true
  1387. end
  1388.  
  1389. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  1390. --- Weld's 2 parts together
  1391. -- @param Part0 The first part
  1392. -- @param Part1 The second part (Dependent part most of the time).
  1393. -- @param [JointType] The type of joint. Defaults to weld.
  1394. -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  1395. -- @return The weld created.
  1396.  
  1397. JointType = JointType or "Weld"
  1398. local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  1399.  
  1400. local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  1401. Modify(NewWeld, {
  1402. Name = "qCFrameWeldThingy";
  1403. Part0 = Part0;
  1404. Part1 = Part1;
  1405. C0 = CFrame.new();--Part0.CFrame:inverse();
  1406. C1 = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  1407. Parent = Part1;
  1408. })
  1409.  
  1410. if not RelativeValue then
  1411. RelativeValue = Make("CFrameValue", {
  1412. Parent = Part1;
  1413. Name = "qRelativeCFrameWeldValue";
  1414. Archivable = true;
  1415. Value = NewWeld.C1;
  1416. })
  1417. end
  1418.  
  1419. return NewWeld
  1420. end
  1421.  
  1422. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  1423. -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  1424. -- @param MainPart The part to weld the model to (can be in the model).
  1425. -- @param [JointType] The type of joint. Defaults to weld.
  1426. -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  1427.  
  1428. for _, Part in pairs(Parts) do
  1429. if ShouldBreakJoints(Part) then
  1430. Part:BreakJoints()
  1431. end
  1432. end
  1433.  
  1434. for _, Part in pairs(Parts) do
  1435. if Part ~= MainPart then
  1436. WeldTogether(MainPart, Part, JointType, MainPart)
  1437. end
  1438. end
  1439.  
  1440. if not DoNotUnanchor then
  1441. for _, Part in pairs(Parts) do
  1442. Part.Anchored = false
  1443. end
  1444. MainPart.Anchored = false
  1445. end
  1446. end
  1447.  
  1448. local function PerfectionWeld()
  1449. local Tool = GetNearestParent(script, "Tool")
  1450.  
  1451. local Parts = GetBricks(script.Parent)
  1452. 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]
  1453.  
  1454. if PrimaryPart then
  1455. WeldParts(Parts, PrimaryPart, "Weld", false)
  1456. else
  1457. warn("qWeld - Unable to weld part")
  1458. end
  1459.  
  1460. return Tool
  1461. end
  1462.  
  1463. local Tool = PerfectionWeld()
  1464.  
  1465.  
  1466. if Tool and script.ClassName == "Script" then
  1467. --- Don't bother with local scripts
  1468.  
  1469. script.Parent.AncestryChanged:connect(function()
  1470. PerfectionWeld()
  1471. end)
  1472. end
  1473.  
  1474. -- Created by Quenty (@Quenty, follow me on twitter).
  1475.  
  1476. end))
  1477. Part63.Name = "HitBox"
  1478. Part63.Parent = Part61
  1479. Part63.CFrame = CFrame.new(29.2576275, 3.25005198, 5.0433588, 0.00447876239, -7.95334643e-07, 0.999989986, -2.38491066e-05, 1, 9.02157581e-07, -0.999989986, -2.38529065e-05, 0.00447876239)
  1480. Part63.Orientation = Vector3.new(0, 89.7399979, 0)
  1481. Part63.Position = Vector3.new(29.2576275, 3.25005198, 5.0433588)
  1482. Part63.Rotation = Vector3.new(-0.00999999978, 89.7399979, 0.00999999978)
  1483. Part63.Transparency = 1
  1484. Part63.Size = Vector3.new(2, 6.5, 4.30000019)
  1485. Part63.BottomSurface = Enum.SurfaceType.Smooth
  1486. Part63.CanCollide = false
  1487. Part63.Material = Enum.Material.SmoothPlastic
  1488. Part63.TopSurface = Enum.SurfaceType.Smooth
  1489. Script64.Name = "DamageScript"
  1490. Script64.Parent = Part63
  1491. table.insert(cors,sandbox(Script64,function()
  1492. -- Script by XcorrectTheDev
  1493.  
  1494. local Debounce = false
  1495. local Damage = script.Parent.Parent.Parent.Configuration.Damage.Value
  1496.  
  1497. function OnTouched(Hit)
  1498. if Hit.Parent ~= nil then
  1499. if Debounce == false and Hit.Parent:findFirstChildOfClass("Humanoid") ~= nil then
  1500. if Hit.Parent:findFirstChildOfClass("Humanoid").Health > 0 then
  1501. Debounce = true
  1502. local Animation = script.Parent.Parent.Parent:FindFirstChild("Swing")
  1503. local Rake = script.Parent.Parent.Parent:FindFirstChild("NPC")
  1504. local Attack = Rake:LoadAnimation(Animation)
  1505. Attack:Play()
  1506. Attack:AdjustSpeed(2+(math.random()*0.2))
  1507. script.Parent.Parent.Swing.Pitch=1+(math.random()*0.04);
  1508. script.Parent.Parent.Swing:Play()
  1509. wait(0.2)
  1510. Hit.Parent:findFirstChildOfClass("Humanoid"):TakeDamage(Damage)
  1511. script.Parent.Parent.Hit.Pitch=1+(math.random()*0.04);
  1512. script.Parent.Parent.Hit:Play()
  1513. wait(1)
  1514. Debounce = false
  1515. end
  1516. end
  1517. end
  1518. end
  1519.  
  1520. script.Parent.Touched:Connect(OnTouched)
  1521. end))
  1522. MeshPart65.Name = "Bone"
  1523. MeshPart65.Parent = Part61
  1524. MeshPart65.CFrame = CFrame.new(27.6494427, 3.66661906, 5.0251708, 0.0112486593, -2.26687007e-08, -0.999936819, 2.36089982e-05, 1, 2.42916713e-07, 0.999936819, -2.36102333e-05, 0.0112486593)
  1525. MeshPart65.Orientation = Vector3.new(0, -89.3600006, 0)
  1526. MeshPart65.Position = Vector3.new(27.6494427, 3.66661906, 5.0251708)
  1527. MeshPart65.Rotation = Vector3.new(0, -89.3600006, 0)
  1528. MeshPart65.Color = Color3.new(0.529412, 0.529412, 0.529412)
  1529. MeshPart65.Size = Vector3.new(2.1504705, 2.24147558, 1.52392781)
  1530. MeshPart65.BrickColor = BrickColor.new("Silver flip/flop")
  1531. MeshPart65.CanCollide = false
  1532. MeshPart65.Material = Enum.Material.SmoothPlastic
  1533. MeshPart65.brickColor = BrickColor.new("Silver flip/flop")
  1534. Texture66.Name = "BackTexture"
  1535. Texture66.Parent = MeshPart65
  1536. Texture66.Texture = "rbxassetid://843920074"
  1537. Texture66.Transparency = 0.80000001192093
  1538. Texture66.Face = Enum.NormalId.Back
  1539. Texture66.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1540. Texture67.Name = "BottomTexture"
  1541. Texture67.Parent = MeshPart65
  1542. Texture67.Texture = "rbxassetid://843920074"
  1543. Texture67.Transparency = 0.80000001192093
  1544. Texture67.Face = Enum.NormalId.Bottom
  1545. Texture67.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1546. Texture68.Name = "FrontTexture"
  1547. Texture68.Parent = MeshPart65
  1548. Texture68.Texture = "rbxassetid://843920074"
  1549. Texture68.Transparency = 0.80000001192093
  1550. Texture68.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1551. Texture69.Name = "LeftTexture"
  1552. Texture69.Parent = MeshPart65
  1553. Texture69.Texture = "rbxassetid://843920074"
  1554. Texture69.Transparency = 0.80000001192093
  1555. Texture69.Face = Enum.NormalId.Left
  1556. Texture69.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1557. Texture70.Name = "RightTexture"
  1558. Texture70.Parent = MeshPart65
  1559. Texture70.Texture = "rbxassetid://843920074"
  1560. Texture70.Transparency = 0.80000001192093
  1561. Texture70.Face = Enum.NormalId.Right
  1562. Texture70.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1563. Texture71.Name = "TopTexture"
  1564. Texture71.Parent = MeshPart65
  1565. Texture71.Texture = "rbxassetid://843920074"
  1566. Texture71.Transparency = 0.80000001192093
  1567. Texture71.Face = Enum.NormalId.Top
  1568. Texture71.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1569. ParticleEmitter72.Name = "Blood2"
  1570. ParticleEmitter72.Parent = Part61
  1571. ParticleEmitter72.Speed = NumberRange.new(4, 4)
  1572. ParticleEmitter72.Rotation = NumberRange.new(180, 180)
  1573. ParticleEmitter72.Enabled = false
  1574. ParticleEmitter72.LightInfluence = 1
  1575. ParticleEmitter72.Texture = "rbxassetid://247766282"
  1576. ParticleEmitter72.Transparency = NumberSequence.new(0,0.98750001192093)
  1577. ParticleEmitter72.Size = NumberSequence.new(0.43749988079071,1)
  1578. ParticleEmitter72.Drag = 2.5
  1579. ParticleEmitter72.EmissionDirection = Enum.NormalId.Front
  1580. ParticleEmitter72.Lifetime = NumberRange.new(0.5, 0.5)
  1581. ParticleEmitter72.Rate = 30
  1582. ParticleEmitter72.RotSpeed = NumberRange.new(130, 130)
  1583. ParticleEmitter72.SpreadAngle = Vector2.new(40, 40)
  1584. ParticleEmitter72.VelocitySpread = 40
  1585. ParticleEmitter73.Name = "Blood"
  1586. ParticleEmitter73.Parent = Part61
  1587. ParticleEmitter73.Speed = NumberRange.new(4, 4)
  1588. ParticleEmitter73.Rotation = NumberRange.new(180, 180)
  1589. ParticleEmitter73.Color = ColorSequence.new(Color3.new(0.666667, 0, 0),Color3.new(0.666667, 0, 0))
  1590. ParticleEmitter73.Enabled = false
  1591. ParticleEmitter73.LightInfluence = 1
  1592. ParticleEmitter73.Texture = "rbxassetid://247766282"
  1593. ParticleEmitter73.Transparency = NumberSequence.new(0,0.98750001192093)
  1594. ParticleEmitter73.Size = NumberSequence.new(0.12499988079071,0.50000011920929)
  1595. ParticleEmitter73.Drag = 2.5
  1596. ParticleEmitter73.EmissionDirection = Enum.NormalId.Front
  1597. ParticleEmitter73.Lifetime = NumberRange.new(1, 1)
  1598. ParticleEmitter73.Rate = 40
  1599. ParticleEmitter73.RotSpeed = NumberRange.new(130, 130)
  1600. ParticleEmitter73.SpreadAngle = Vector2.new(50, 50)
  1601. ParticleEmitter73.VelocitySpread = 50
  1602. Script74.Name = "Blood"
  1603. Script74.Parent = Part61
  1604. table.insert(cors,sandbox(Script74,function()
  1605. -- Script by XcorrectTheDev
  1606.  
  1607. function Blood()
  1608. script.Parent.Blood.Enabled = true
  1609. script.Parent.Blood2.Enabled = true
  1610. script.Parent.Parent.Head.Eye1 = BrickColor.new("Really black")
  1611. script.Parent.Parent.Head.Eye2 = BrickColor.new("Really black")
  1612. end
  1613. script.Parent.Parent.NPC.Died:Connect(Blood)
  1614. end))
  1615. Sound75.Name = "Swing"
  1616. Sound75.Parent = Part61
  1617. Sound75.MaxDistance = 60
  1618. Sound75.SoundId = "rbxassetid://148196278"
  1619. Sound75.Volume = 4
  1620. Sound76.Name = "Hit"
  1621. Sound76.Parent = Part61
  1622. Sound76.MaxDistance = 150
  1623. Sound76.SoundId = "rbxassetid://266366452"
  1624. Sound76.Volume = 2
  1625. Motor6D77.Name = "Right Shoulder"
  1626. Motor6D77.Parent = Part61
  1627. Motor6D77.MaxVelocity = 0.10000000149012
  1628. Motor6D77.C0 = CFrame.new(1.13713002, 0.568565011, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1629. Motor6D77.C1 = CFrame.new(-0.568565011, 0.568565011, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1630. Motor6D77.Part0 = Part61
  1631. Motor6D77.Part1 = Part132
  1632. Motor6D77.part1 = Part132
  1633. Motor6D78.Name = "Right Hip"
  1634. Motor6D78.Parent = Part61
  1635. Motor6D78.MaxVelocity = 0.10000000149012
  1636. Motor6D78.C0 = CFrame.new(1.13713002, -1.13713002, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1637. Motor6D78.C1 = CFrame.new(0.568565011, 1.13713002, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1638. Motor6D78.Part0 = Part61
  1639. Motor6D78.Part1 = Part104
  1640. Motor6D78.part1 = Part104
  1641. Motor6D79.Name = "Left Hip"
  1642. Motor6D79.Parent = Part61
  1643. Motor6D79.MaxVelocity = 0.10000000149012
  1644. Motor6D79.C0 = CFrame.new(-1.13713002, -1.13713002, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  1645. Motor6D79.C1 = CFrame.new(-0.568565011, 1.13713002, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  1646. Motor6D79.Part0 = Part61
  1647. Motor6D79.Part1 = Part97
  1648. Motor6D79.part1 = Part97
  1649. Motor6D80.Name = "Left Shoulder"
  1650. Motor6D80.Parent = Part61
  1651. Motor6D80.MaxVelocity = 0.10000000149012
  1652. Motor6D80.C0 = CFrame.new(-1.13713002, 0.568565011, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  1653. Motor6D80.C1 = CFrame.new(0.568565011, 0.568565011, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  1654. Motor6D80.Part0 = Part61
  1655. Motor6D80.Part1 = Part84
  1656. Motor6D80.part1 = Part84
  1657. Motor6D81.Name = "Neck"
  1658. Motor6D81.Parent = Part61
  1659. Motor6D81.MaxVelocity = 0.10000000149012
  1660. Motor6D81.C0 = CFrame.new(0, 1.13713002, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  1661. Motor6D81.C1 = CFrame.new(0, -0.568565011, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  1662. Motor6D81.Part0 = Part61
  1663. Motor6D81.Part1 = Part1
  1664. Motor6D81.part1 = Part1
  1665. SpecialMesh82.Parent = Part61
  1666. SpecialMesh82.MeshType = Enum.MeshType.Torso
  1667. Texture83.Name = "MainTexture"
  1668. Texture83.Parent = Part61
  1669. Texture83.Texture = "rbxassetid://843920074"
  1670. Texture83.Transparency = 0.77999997138977
  1671. Texture83.Face = Enum.NormalId.Top
  1672. Texture83.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1673. Texture83.StudsPerTileU = 1
  1674. Texture83.StudsPerTileV = 1
  1675. Part84.Name = "Left Arm"
  1676. Part84.Parent = Model0
  1677. Part84.CFrame = CFrame.new(27.6187458, 3.65071392, 3.32385445, 0.0111954138, -2.81288521e-08, -0.999937415, 2.40858863e-05, 1, 2.4153843e-07, 0.999937415, -2.40870795e-05, 0.0111954138)
  1678. Part84.Orientation = Vector3.new(0, -89.3600006, 0)
  1679. Part84.Position = Vector3.new(27.6187458, 3.65071392, 3.32385445)
  1680. Part84.Rotation = Vector3.new(0, -89.3600006, 0)
  1681. Part84.Color = Color3.new(0.529412, 0.529412, 0.529412)
  1682. Part84.Transparency = 1
  1683. Part84.Size = Vector3.new(1.13713002, 2.27426004, 1.13713002)
  1684. Part84.BackParamA = -99999
  1685. Part84.BackParamB = 99999
  1686. Part84.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1687. Part84.BottomParamA = -99999
  1688. Part84.BottomParamB = 99999
  1689. Part84.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1690. Part84.BrickColor = BrickColor.new("Silver flip/flop")
  1691. Part84.CustomPhysicalProperties = 0.699999988, 2, 0, 1, 1
  1692. Part84.FrontParamA = -99999
  1693. Part84.FrontParamB = 99999
  1694. Part84.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1695. Part84.LeftParamA = -99999
  1696. Part84.LeftParamB = 99999
  1697. Part84.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1698. Part84.Locked = true
  1699. Part84.Material = Enum.Material.SmoothPlastic
  1700. Part84.RightParamA = -99999
  1701. Part84.RightParamB = 99999
  1702. Part84.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1703. Part84.TopParamA = -99999
  1704. Part84.TopParamB = 99999
  1705. Part84.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1706. Part84.brickColor = BrickColor.new("Silver flip/flop")
  1707. Part84.FormFactor = Enum.FormFactor.Symmetric
  1708. Part84.formFactor = Enum.FormFactor.Symmetric
  1709. Part85.Name = "Claw"
  1710. Part85.Parent = Part84
  1711. Part85.CFrame = CFrame.new(27.6123333, 1.28620505, 3.49770093, 0.999935687, 0.0113427639, 4.64679033e-07, -0.000174402885, 0.0153337438, 0.99988246, 0.0113414228, -0.999818087, 0.0153347375)
  1712. Part85.Orientation = Vector3.new(-89.1200027, 0, -0.649999976)
  1713. Part85.Position = Vector3.new(27.6123333, 1.28620505, 3.49770093)
  1714. Part85.Rotation = Vector3.new(-89.1200027, 0, -0.649999976)
  1715. Part85.Color = Color3.new(0.529412, 0.352941, 0.352941)
  1716. Part85.Size = Vector3.new(0.60726434, 0.283949703, 2.4880383)
  1717. Part85.BottomSurface = Enum.SurfaceType.Smooth
  1718. Part85.BrickColor = BrickColor.new("Tawny")
  1719. Part85.CanCollide = false
  1720. Part85.Material = Enum.Material.SmoothPlastic
  1721. Part85.TopSurface = Enum.SurfaceType.Smooth
  1722. Part85.brickColor = BrickColor.new("Tawny")
  1723. Part85.FormFactor = Enum.FormFactor.Custom
  1724. Part85.formFactor = Enum.FormFactor.Custom
  1725. SpecialMesh86.Parent = Part85
  1726. SpecialMesh86.MeshId = "http://www.roblox.com/Asset?ID=105262978"
  1727. SpecialMesh86.Offset = Vector3.new(0, 0, 0.319999993)
  1728. SpecialMesh86.Scale = Vector3.new(0.879999995, 2.5, 1.5)
  1729. SpecialMesh86.MeshType = Enum.MeshType.FileMesh
  1730. Texture87.Name = "MainTexture"
  1731. Texture87.Parent = Part85
  1732. Texture87.Texture = "rbxassetid://843920074"
  1733. Texture87.Transparency = 0.77999997138977
  1734. Texture87.Face = Enum.NormalId.Top
  1735. Texture87.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1736. Texture87.StudsPerTileU = 1
  1737. Texture87.StudsPerTileV = 1
  1738. SpecialMesh88.Parent = Part84
  1739. SpecialMesh88.MeshId = "http://www.roblox.com/asset/?id=36780032"
  1740. SpecialMesh88.Offset = Vector3.new(0, 0.227425963, 0)
  1741. SpecialMesh88.Scale = Vector3.new(1.59198153, 1.36455595, 1.47826862)
  1742. SpecialMesh88.MeshType = Enum.MeshType.FileMesh
  1743. MeshPart89.Name = "Left Arm"
  1744. MeshPart89.Parent = Part84
  1745. MeshPart89.CFrame = CFrame.new(27.6249065, 3.87811589, 3.3183229, 0.0112486593, -2.26687007e-08, -0.999936819, 2.36089982e-05, 1, 2.42916713e-07, 0.999936819, -2.36102333e-05, 0.0112486593)
  1746. MeshPart89.Orientation = Vector3.new(0, -89.3600006, 0)
  1747. MeshPart89.Position = Vector3.new(27.6249065, 3.87811589, 3.3183229)
  1748. MeshPart89.Rotation = Vector3.new(0, -89.3600006, 0)
  1749. MeshPart89.Color = Color3.new(0.529412, 0.529412, 0.529412)
  1750. MeshPart89.Size = Vector3.new(1.31236243, 2.68235159, 0.772853613)
  1751. MeshPart89.BrickColor = BrickColor.new("Silver flip/flop")
  1752. MeshPart89.CanCollide = false
  1753. MeshPart89.Material = Enum.Material.SmoothPlastic
  1754. MeshPart89.brickColor = BrickColor.new("Silver flip/flop")
  1755. Texture90.Name = "BackTexture"
  1756. Texture90.Parent = MeshPart89
  1757. Texture90.Texture = "rbxassetid://843920074"
  1758. Texture90.Transparency = 0.80000001192093
  1759. Texture90.Face = Enum.NormalId.Back
  1760. Texture90.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1761. Texture91.Name = "BottomTexture"
  1762. Texture91.Parent = MeshPart89
  1763. Texture91.Texture = "rbxassetid://843920074"
  1764. Texture91.Transparency = 0.80000001192093
  1765. Texture91.Face = Enum.NormalId.Bottom
  1766. Texture91.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1767. Texture92.Name = "FrontTexture"
  1768. Texture92.Parent = MeshPart89
  1769. Texture92.Texture = "rbxassetid://843920074"
  1770. Texture92.Transparency = 0.80000001192093
  1771. Texture92.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1772. Texture93.Name = "LeftTexture"
  1773. Texture93.Parent = MeshPart89
  1774. Texture93.Texture = "rbxassetid://843920074"
  1775. Texture93.Transparency = 0.80000001192093
  1776. Texture93.Face = Enum.NormalId.Left
  1777. Texture93.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1778. Texture94.Name = "RightTexture"
  1779. Texture94.Parent = MeshPart89
  1780. Texture94.Texture = "rbxassetid://843920074"
  1781. Texture94.Transparency = 0.80000001192093
  1782. Texture94.Face = Enum.NormalId.Right
  1783. Texture94.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1784. Texture95.Name = "TopTexture"
  1785. Texture95.Parent = MeshPart89
  1786. Texture95.Texture = "rbxassetid://843920074"
  1787. Texture95.Transparency = 0.80000001192093
  1788. Texture95.Face = Enum.NormalId.Top
  1789. Texture95.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  1790. Script96.Name = "qPerfectionWeld"
  1791. Script96.Parent = Part84
  1792. table.insert(cors,sandbox(Script96,function()
  1793. -- Created by Quenty (@Quenty, follow me on twitter).
  1794. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  1795. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  1796.  
  1797. --[[ INSTRUCTIONS
  1798. - Place in the model
  1799. - Make sure model is anchored
  1800. - That's it. It will weld the model and all children.
  1801.  
  1802. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1803. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1804. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1805. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1806. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1807. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1808. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1809. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  1810.  
  1811. 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.
  1812. ]]
  1813.  
  1814. --[[ DOCUMENTATION
  1815. - 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.
  1816. - Will work in PBS servers
  1817. - Will work as long as it starts out with the part anchored
  1818. - Stores the relative CFrame as a CFrame value
  1819. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  1820. - Utilizes a recursive algorith to find all parts in the model
  1821. - Will reweld on script reparent if the script is initially parented to a tool.
  1822. - Welds as fast as possible
  1823. ]]
  1824.  
  1825. -- qPerfectionWeld.lua
  1826. -- Created 10/6/2014
  1827. -- Author: Quenty
  1828. -- Version 1.0.3
  1829.  
  1830. -- Updated 10/14/2014 - Updated to 1.0.1
  1831. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  1832.  
  1833. -- Updated 10/14/2014 - Updated to 1.0.2
  1834. --- Fixed bug fix.
  1835.  
  1836. -- Updated 10/14/2014 - Updated to 1.0.3
  1837. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  1838.  
  1839. 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).
  1840.  
  1841.  
  1842. local function CallOnChildren(Instance, FunctionToCall)
  1843. -- Calls a function on each of the children of a certain object, using recursion.
  1844.  
  1845. FunctionToCall(Instance)
  1846.  
  1847. for _, Child in next, Instance:GetChildren() do
  1848. CallOnChildren(Child, FunctionToCall)
  1849. end
  1850. end
  1851.  
  1852. local function GetNearestParent(Instance, ClassName)
  1853. -- Returns the nearest parent of a certain class, or returns nil
  1854.  
  1855. local Ancestor = Instance
  1856. repeat
  1857. Ancestor = Ancestor.Parent
  1858. if Ancestor == nil then
  1859. return nil
  1860. end
  1861. until Ancestor:IsA(ClassName)
  1862.  
  1863. return Ancestor
  1864. end
  1865.  
  1866. local function GetBricks(StartInstance)
  1867. local List = {}
  1868.  
  1869. -- if StartInstance:IsA("BasePart") then
  1870. -- List[#List+1] = StartInstance
  1871. -- end
  1872.  
  1873. CallOnChildren(StartInstance, function(Item)
  1874. if Item:IsA("BasePart") then
  1875. List[#List+1] = Item;
  1876. end
  1877. end)
  1878.  
  1879. return List
  1880. end
  1881.  
  1882. local function Modify(Instance, Values)
  1883. -- Modifies an Instance by using a table.
  1884.  
  1885. assert(type(Values) == "table", "Values is not a table");
  1886.  
  1887. for Index, Value in next, Values do
  1888. if type(Index) == "number" then
  1889. Value.Parent = Instance
  1890. else
  1891. Instance[Index] = Value
  1892. end
  1893. end
  1894. return Instance
  1895. end
  1896.  
  1897. local function Make(ClassType, Properties)
  1898. -- Using a syntax hack to create a nice way to Make new items.
  1899.  
  1900. return Modify(Instance.new(ClassType), Properties)
  1901. end
  1902.  
  1903. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  1904. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  1905.  
  1906. local function HasWheelJoint(Part)
  1907. for _, SurfaceName in pairs(Surfaces) do
  1908. for _, HingSurfaceName in pairs(HingSurfaces) do
  1909. if Part[SurfaceName].Name == HingSurfaceName then
  1910. return true
  1911. end
  1912. end
  1913. end
  1914.  
  1915. return false
  1916. end
  1917.  
  1918. local function ShouldBreakJoints(Part)
  1919. --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  1920. -- definitely some edge cases.
  1921.  
  1922. if NEVER_BREAK_JOINTS then
  1923. return false
  1924. end
  1925.  
  1926. if HasWheelJoint(Part) then
  1927. return false
  1928. end
  1929.  
  1930. local Connected = Part:GetConnectedParts()
  1931.  
  1932. if #Connected == 1 then
  1933. return false
  1934. end
  1935.  
  1936. for _, Item in pairs(Connected) do
  1937. if HasWheelJoint(Item) then
  1938. return false
  1939. elseif not Item:IsDescendantOf(script.Parent) then
  1940. return false
  1941. end
  1942. end
  1943.  
  1944. return true
  1945. end
  1946.  
  1947. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  1948. --- Weld's 2 parts together
  1949. -- @param Part0 The first part
  1950. -- @param Part1 The second part (Dependent part most of the time).
  1951. -- @param [JointType] The type of joint. Defaults to weld.
  1952. -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  1953. -- @return The weld created.
  1954.  
  1955. JointType = JointType or "Weld"
  1956. local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  1957.  
  1958. local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  1959. Modify(NewWeld, {
  1960. Name = "qCFrameWeldThingy";
  1961. Part0 = Part0;
  1962. Part1 = Part1;
  1963. C0 = CFrame.new();--Part0.CFrame:inverse();
  1964. C1 = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  1965. Parent = Part1;
  1966. })
  1967.  
  1968. if not RelativeValue then
  1969. RelativeValue = Make("CFrameValue", {
  1970. Parent = Part1;
  1971. Name = "qRelativeCFrameWeldValue";
  1972. Archivable = true;
  1973. Value = NewWeld.C1;
  1974. })
  1975. end
  1976.  
  1977. return NewWeld
  1978. end
  1979.  
  1980. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  1981. -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  1982. -- @param MainPart The part to weld the model to (can be in the model).
  1983. -- @param [JointType] The type of joint. Defaults to weld.
  1984. -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  1985.  
  1986. for _, Part in pairs(Parts) do
  1987. if ShouldBreakJoints(Part) then
  1988. Part:BreakJoints()
  1989. end
  1990. end
  1991.  
  1992. for _, Part in pairs(Parts) do
  1993. if Part ~= MainPart then
  1994. WeldTogether(MainPart, Part, JointType, MainPart)
  1995. end
  1996. end
  1997.  
  1998. if not DoNotUnanchor then
  1999. for _, Part in pairs(Parts) do
  2000. Part.Anchored = false
  2001. end
  2002. MainPart.Anchored = false
  2003. end
  2004. end
  2005.  
  2006. local function PerfectionWeld()
  2007. local Tool = GetNearestParent(script, "Tool")
  2008.  
  2009. local Parts = GetBricks(script.Parent)
  2010. 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]
  2011.  
  2012. if PrimaryPart then
  2013. WeldParts(Parts, PrimaryPart, "Weld", false)
  2014. else
  2015. warn("qWeld - Unable to weld part")
  2016. end
  2017.  
  2018. return Tool
  2019. end
  2020.  
  2021. local Tool = PerfectionWeld()
  2022.  
  2023.  
  2024. if Tool and script.ClassName == "Script" then
  2025. --- Don't bother with local scripts
  2026.  
  2027. script.Parent.AncestryChanged:connect(function()
  2028. PerfectionWeld()
  2029. end)
  2030. end
  2031.  
  2032. -- Created by Quenty (@Quenty, follow me on twitter).
  2033.  
  2034. end))
  2035. Part97.Name = "Left Leg"
  2036. Part97.Parent = Model0
  2037. Part97.CFrame = CFrame.new(27.6314774, 1.37648129, 4.46096802, 0.0111954138, -2.81288521e-08, -0.999937415, 2.40858863e-05, 1, 2.4153843e-07, 0.999937415, -2.40870795e-05, 0.0111954138)
  2038. Part97.Orientation = Vector3.new(0, -89.3600006, 0)
  2039. Part97.Position = Vector3.new(27.6314774, 1.37648129, 4.46096802)
  2040. Part97.Rotation = Vector3.new(0, -89.3600006, 0)
  2041. Part97.Color = Color3.new(0.529412, 0.529412, 0.529412)
  2042. Part97.Size = Vector3.new(1.13713002, 2.27426004, 1.13713002)
  2043. Part97.BackParamA = -99999
  2044. Part97.BackParamB = 99999
  2045. Part97.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2046. Part97.BottomParamA = -99999
  2047. Part97.BottomParamB = 99999
  2048. Part97.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2049. Part97.BrickColor = BrickColor.new("Silver flip/flop")
  2050. Part97.CustomPhysicalProperties = 0.699999988, 2, 0, 1, 1
  2051. Part97.FrontParamA = -99999
  2052. Part97.FrontParamB = 99999
  2053. Part97.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2054. Part97.LeftParamA = -99999
  2055. Part97.LeftParamB = 99999
  2056. Part97.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2057. Part97.Locked = true
  2058. Part97.Material = Enum.Material.SmoothPlastic
  2059. Part97.RightParamA = -99999
  2060. Part97.RightParamB = 99999
  2061. Part97.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2062. Part97.TopParamA = -99999
  2063. Part97.TopParamB = 99999
  2064. Part97.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2065. Part97.brickColor = BrickColor.new("Silver flip/flop")
  2066. Part97.FormFactor = Enum.FormFactor.Symmetric
  2067. Part97.formFactor = Enum.FormFactor.Symmetric
  2068. Script98.Name = "qPerfectionWeld"
  2069. Script98.Parent = Part97
  2070. table.insert(cors,sandbox(Script98,function()
  2071. -- Created by Quenty (@Quenty, follow me on twitter).
  2072. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  2073. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  2074.  
  2075. --[[ INSTRUCTIONS
  2076. - Place in the model
  2077. - Make sure model is anchored
  2078. - That's it. It will weld the model and all children.
  2079.  
  2080. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2081. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2082. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2083. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2084. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2085. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2086. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2087. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2088.  
  2089. 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.
  2090. ]]
  2091.  
  2092. --[[ DOCUMENTATION
  2093. - 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.
  2094. - Will work in PBS servers
  2095. - Will work as long as it starts out with the part anchored
  2096. - Stores the relative CFrame as a CFrame value
  2097. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  2098. - Utilizes a recursive algorith to find all parts in the model
  2099. - Will reweld on script reparent if the script is initially parented to a tool.
  2100. - Welds as fast as possible
  2101. ]]
  2102.  
  2103. -- qPerfectionWeld.lua
  2104. -- Created 10/6/2014
  2105. -- Author: Quenty
  2106. -- Version 1.0.3
  2107.  
  2108. -- Updated 10/14/2014 - Updated to 1.0.1
  2109. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  2110.  
  2111. -- Updated 10/14/2014 - Updated to 1.0.2
  2112. --- Fixed bug fix.
  2113.  
  2114. -- Updated 10/14/2014 - Updated to 1.0.3
  2115. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  2116.  
  2117. 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).
  2118.  
  2119.  
  2120. local function CallOnChildren(Instance, FunctionToCall)
  2121. -- Calls a function on each of the children of a certain object, using recursion.
  2122.  
  2123. FunctionToCall(Instance)
  2124.  
  2125. for _, Child in next, Instance:GetChildren() do
  2126. CallOnChildren(Child, FunctionToCall)
  2127. end
  2128. end
  2129.  
  2130. local function GetNearestParent(Instance, ClassName)
  2131. -- Returns the nearest parent of a certain class, or returns nil
  2132.  
  2133. local Ancestor = Instance
  2134. repeat
  2135. Ancestor = Ancestor.Parent
  2136. if Ancestor == nil then
  2137. return nil
  2138. end
  2139. until Ancestor:IsA(ClassName)
  2140.  
  2141. return Ancestor
  2142. end
  2143.  
  2144. local function GetBricks(StartInstance)
  2145. local List = {}
  2146.  
  2147. -- if StartInstance:IsA("BasePart") then
  2148. -- List[#List+1] = StartInstance
  2149. -- end
  2150.  
  2151. CallOnChildren(StartInstance, function(Item)
  2152. if Item:IsA("BasePart") then
  2153. List[#List+1] = Item;
  2154. end
  2155. end)
  2156.  
  2157. return List
  2158. end
  2159.  
  2160. local function Modify(Instance, Values)
  2161. -- Modifies an Instance by using a table.
  2162.  
  2163. assert(type(Values) == "table", "Values is not a table");
  2164.  
  2165. for Index, Value in next, Values do
  2166. if type(Index) == "number" then
  2167. Value.Parent = Instance
  2168. else
  2169. Instance[Index] = Value
  2170. end
  2171. end
  2172. return Instance
  2173. end
  2174.  
  2175. local function Make(ClassType, Properties)
  2176. -- Using a syntax hack to create a nice way to Make new items.
  2177.  
  2178. return Modify(Instance.new(ClassType), Properties)
  2179. end
  2180.  
  2181. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  2182. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  2183.  
  2184. local function HasWheelJoint(Part)
  2185. for _, SurfaceName in pairs(Surfaces) do
  2186. for _, HingSurfaceName in pairs(HingSurfaces) do
  2187. if Part[SurfaceName].Name == HingSurfaceName then
  2188. return true
  2189. end
  2190. end
  2191. end
  2192.  
  2193. return false
  2194. end
  2195.  
  2196. local function ShouldBreakJoints(Part)
  2197. --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  2198. -- definitely some edge cases.
  2199.  
  2200. if NEVER_BREAK_JOINTS then
  2201. return false
  2202. end
  2203.  
  2204. if HasWheelJoint(Part) then
  2205. return false
  2206. end
  2207.  
  2208. local Connected = Part:GetConnectedParts()
  2209.  
  2210. if #Connected == 1 then
  2211. return false
  2212. end
  2213.  
  2214. for _, Item in pairs(Connected) do
  2215. if HasWheelJoint(Item) then
  2216. return false
  2217. elseif not Item:IsDescendantOf(script.Parent) then
  2218. return false
  2219. end
  2220. end
  2221.  
  2222. return true
  2223. end
  2224.  
  2225. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  2226. --- Weld's 2 parts together
  2227. -- @param Part0 The first part
  2228. -- @param Part1 The second part (Dependent part most of the time).
  2229. -- @param [JointType] The type of joint. Defaults to weld.
  2230. -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  2231. -- @return The weld created.
  2232.  
  2233. JointType = JointType or "Weld"
  2234. local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  2235.  
  2236. local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  2237. Modify(NewWeld, {
  2238. Name = "qCFrameWeldThingy";
  2239. Part0 = Part0;
  2240. Part1 = Part1;
  2241. C0 = CFrame.new();--Part0.CFrame:inverse();
  2242. C1 = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  2243. Parent = Part1;
  2244. })
  2245.  
  2246. if not RelativeValue then
  2247. RelativeValue = Make("CFrameValue", {
  2248. Parent = Part1;
  2249. Name = "qRelativeCFrameWeldValue";
  2250. Archivable = true;
  2251. Value = NewWeld.C1;
  2252. })
  2253. end
  2254.  
  2255. return NewWeld
  2256. end
  2257.  
  2258. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  2259. -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  2260. -- @param MainPart The part to weld the model to (can be in the model).
  2261. -- @param [JointType] The type of joint. Defaults to weld.
  2262. -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  2263.  
  2264. for _, Part in pairs(Parts) do
  2265. if ShouldBreakJoints(Part) then
  2266. Part:BreakJoints()
  2267. end
  2268. end
  2269.  
  2270. for _, Part in pairs(Parts) do
  2271. if Part ~= MainPart then
  2272. WeldTogether(MainPart, Part, JointType, MainPart)
  2273. end
  2274. end
  2275.  
  2276. if not DoNotUnanchor then
  2277. for _, Part in pairs(Parts) do
  2278. Part.Anchored = false
  2279. end
  2280. MainPart.Anchored = false
  2281. end
  2282. end
  2283.  
  2284. local function PerfectionWeld()
  2285. local Tool = GetNearestParent(script, "Tool")
  2286.  
  2287. local Parts = GetBricks(script.Parent)
  2288. 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]
  2289.  
  2290. if PrimaryPart then
  2291. WeldParts(Parts, PrimaryPart, "Weld", false)
  2292. else
  2293. warn("qWeld - Unable to weld part")
  2294. end
  2295.  
  2296. return Tool
  2297. end
  2298.  
  2299. local Tool = PerfectionWeld()
  2300.  
  2301.  
  2302. if Tool and script.ClassName == "Script" then
  2303. --- Don't bother with local scripts
  2304.  
  2305. script.Parent.AncestryChanged:connect(function()
  2306. PerfectionWeld()
  2307. end)
  2308. end
  2309.  
  2310. -- Created by Quenty (@Quenty, follow me on twitter).
  2311.  
  2312. end))
  2313. SpecialMesh99.Parent = Part97
  2314. SpecialMesh99.MeshType = Enum.MeshType.Brick
  2315. Part100.Name = "Claw"
  2316. Part100.Parent = Part97
  2317. Part100.CFrame = CFrame.new(28.5859699, 0.392975986, 4.51186514, 0.0111787179, -2.14213287e-08, -0.999937534, 2.36090218e-05, 1, 2.42512954e-07, 0.999937534, -2.36102551e-05, 0.0111787179)
  2318. Part100.Orientation = Vector3.new(0, -89.3600006, 0)
  2319. Part100.Position = Vector3.new(28.5859699, 0.392975986, 4.51186514)
  2320. Part100.Rotation = Vector3.new(0, -89.3600006, 0)
  2321. Part100.Color = Color3.new(0.529412, 0.352941, 0.352941)
  2322. Part100.Size = Vector3.new(0.966560483, 0.454851985, 0.852847397)
  2323. Part100.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2324. Part100.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2325. Part100.BrickColor = BrickColor.new("Tawny")
  2326. Part100.CanCollide = false
  2327. Part100.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2328. Part100.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2329. Part100.Material = Enum.Material.SmoothPlastic
  2330. Part100.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2331. Part100.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2332. Part100.brickColor = BrickColor.new("Tawny")
  2333. Part100.FormFactor = Enum.FormFactor.Custom
  2334. Part100.formFactor = Enum.FormFactor.Custom
  2335. Texture101.Name = "MainTexture"
  2336. Texture101.Parent = Part100
  2337. Texture101.Texture = "rbxassetid://843920074"
  2338. Texture101.Transparency = 0.77999997138977
  2339. Texture101.Face = Enum.NormalId.Top
  2340. Texture101.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  2341. Texture101.StudsPerTileU = 1
  2342. Texture101.StudsPerTileV = 1
  2343. SpecialMesh102.Parent = Part100
  2344. SpecialMesh102.MeshId = "http://www.roblox.com/Asset?ID=105262978"
  2345. SpecialMesh102.Scale = Vector3.new(0.800000012, 0.800000012, 0.800000012)
  2346. SpecialMesh102.MeshType = Enum.MeshType.FileMesh
  2347. Texture103.Name = "MainTexture"
  2348. Texture103.Parent = Part97
  2349. Texture103.Texture = "rbxassetid://843920074"
  2350. Texture103.Transparency = 0.77999997138977
  2351. Texture103.Face = Enum.NormalId.Top
  2352. Texture103.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  2353. Texture103.StudsPerTileU = 1
  2354. Texture103.StudsPerTileV = 1
  2355. Part104.Name = "Right Leg"
  2356. Part104.Parent = Model0
  2357. Part104.CFrame = CFrame.new(27.644207, 1.37650847, 5.59802723, 0.0111954138, -2.81288521e-08, -0.999937415, 2.40858863e-05, 1, 2.4153843e-07, 0.999937415, -2.40870795e-05, 0.0111954138)
  2358. Part104.Orientation = Vector3.new(0, -89.3600006, 0)
  2359. Part104.Position = Vector3.new(27.644207, 1.37650847, 5.59802723)
  2360. Part104.Rotation = Vector3.new(0, -89.3600006, 0)
  2361. Part104.Color = Color3.new(0.529412, 0.529412, 0.529412)
  2362. Part104.Size = Vector3.new(1.13713002, 2.27426004, 1.13713002)
  2363. Part104.BackParamA = -99999
  2364. Part104.BackParamB = 99999
  2365. Part104.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2366. Part104.BottomParamA = -99999
  2367. Part104.BottomParamB = 99999
  2368. Part104.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2369. Part104.BrickColor = BrickColor.new("Silver flip/flop")
  2370. Part104.CustomPhysicalProperties = 0.699999988, 2, 0, 1, 1
  2371. Part104.FrontParamA = -99999
  2372. Part104.FrontParamB = 99999
  2373. Part104.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2374. Part104.LeftParamA = -99999
  2375. Part104.LeftParamB = 99999
  2376. Part104.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2377. Part104.Locked = true
  2378. Part104.Material = Enum.Material.SmoothPlastic
  2379. Part104.RightParamA = -99999
  2380. Part104.RightParamB = 99999
  2381. Part104.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2382. Part104.TopParamA = -99999
  2383. Part104.TopParamB = 99999
  2384. Part104.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2385. Part104.brickColor = BrickColor.new("Silver flip/flop")
  2386. Part104.FormFactor = Enum.FormFactor.Symmetric
  2387. Part104.formFactor = Enum.FormFactor.Symmetric
  2388. Script105.Name = "qPerfectionWeld"
  2389. Script105.Parent = Part104
  2390. table.insert(cors,sandbox(Script105,function()
  2391. -- Created by Quenty (@Quenty, follow me on twitter).
  2392. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  2393. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  2394.  
  2395. --[[ INSTRUCTIONS
  2396. - Place in the model
  2397. - Make sure model is anchored
  2398. - That's it. It will weld the model and all children.
  2399.  
  2400. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2401. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2402. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2403. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2404. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2405. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2406. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2407. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2408.  
  2409. 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.
  2410. ]]
  2411.  
  2412. --[[ DOCUMENTATION
  2413. - 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.
  2414. - Will work in PBS servers
  2415. - Will work as long as it starts out with the part anchored
  2416. - Stores the relative CFrame as a CFrame value
  2417. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  2418. - Utilizes a recursive algorith to find all parts in the model
  2419. - Will reweld on script reparent if the script is initially parented to a tool.
  2420. - Welds as fast as possible
  2421. ]]
  2422.  
  2423. -- qPerfectionWeld.lua
  2424. -- Created 10/6/2014
  2425. -- Author: Quenty
  2426. -- Version 1.0.3
  2427.  
  2428. -- Updated 10/14/2014 - Updated to 1.0.1
  2429. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  2430.  
  2431. -- Updated 10/14/2014 - Updated to 1.0.2
  2432. --- Fixed bug fix.
  2433.  
  2434. -- Updated 10/14/2014 - Updated to 1.0.3
  2435. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  2436.  
  2437. 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).
  2438.  
  2439.  
  2440. local function CallOnChildren(Instance, FunctionToCall)
  2441. -- Calls a function on each of the children of a certain object, using recursion.
  2442.  
  2443. FunctionToCall(Instance)
  2444.  
  2445. for _, Child in next, Instance:GetChildren() do
  2446. CallOnChildren(Child, FunctionToCall)
  2447. end
  2448. end
  2449.  
  2450. local function GetNearestParent(Instance, ClassName)
  2451. -- Returns the nearest parent of a certain class, or returns nil
  2452.  
  2453. local Ancestor = Instance
  2454. repeat
  2455. Ancestor = Ancestor.Parent
  2456. if Ancestor == nil then
  2457. return nil
  2458. end
  2459. until Ancestor:IsA(ClassName)
  2460.  
  2461. return Ancestor
  2462. end
  2463.  
  2464. local function GetBricks(StartInstance)
  2465. local List = {}
  2466.  
  2467. -- if StartInstance:IsA("BasePart") then
  2468. -- List[#List+1] = StartInstance
  2469. -- end
  2470.  
  2471. CallOnChildren(StartInstance, function(Item)
  2472. if Item:IsA("BasePart") then
  2473. List[#List+1] = Item;
  2474. end
  2475. end)
  2476.  
  2477. return List
  2478. end
  2479.  
  2480. local function Modify(Instance, Values)
  2481. -- Modifies an Instance by using a table.
  2482.  
  2483. assert(type(Values) == "table", "Values is not a table");
  2484.  
  2485. for Index, Value in next, Values do
  2486. if type(Index) == "number" then
  2487. Value.Parent = Instance
  2488. else
  2489. Instance[Index] = Value
  2490. end
  2491. end
  2492. return Instance
  2493. end
  2494.  
  2495. local function Make(ClassType, Properties)
  2496. -- Using a syntax hack to create a nice way to Make new items.
  2497.  
  2498. return Modify(Instance.new(ClassType), Properties)
  2499. end
  2500.  
  2501. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  2502. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  2503.  
  2504. local function HasWheelJoint(Part)
  2505. for _, SurfaceName in pairs(Surfaces) do
  2506. for _, HingSurfaceName in pairs(HingSurfaces) do
  2507. if Part[SurfaceName].Name == HingSurfaceName then
  2508. return true
  2509. end
  2510. end
  2511. end
  2512.  
  2513. return false
  2514. end
  2515.  
  2516. local function ShouldBreakJoints(Part)
  2517. --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  2518. -- definitely some edge cases.
  2519.  
  2520. if NEVER_BREAK_JOINTS then
  2521. return false
  2522. end
  2523.  
  2524. if HasWheelJoint(Part) then
  2525. return false
  2526. end
  2527.  
  2528. local Connected = Part:GetConnectedParts()
  2529.  
  2530. if #Connected == 1 then
  2531. return false
  2532. end
  2533.  
  2534. for _, Item in pairs(Connected) do
  2535. if HasWheelJoint(Item) then
  2536. return false
  2537. elseif not Item:IsDescendantOf(script.Parent) then
  2538. return false
  2539. end
  2540. end
  2541.  
  2542. return true
  2543. end
  2544.  
  2545. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  2546. --- Weld's 2 parts together
  2547. -- @param Part0 The first part
  2548. -- @param Part1 The second part (Dependent part most of the time).
  2549. -- @param [JointType] The type of joint. Defaults to weld.
  2550. -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  2551. -- @return The weld created.
  2552.  
  2553. JointType = JointType or "Weld"
  2554. local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  2555.  
  2556. local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  2557. Modify(NewWeld, {
  2558. Name = "qCFrameWeldThingy";
  2559. Part0 = Part0;
  2560. Part1 = Part1;
  2561. C0 = CFrame.new();--Part0.CFrame:inverse();
  2562. C1 = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  2563. Parent = Part1;
  2564. })
  2565.  
  2566. if not RelativeValue then
  2567. RelativeValue = Make("CFrameValue", {
  2568. Parent = Part1;
  2569. Name = "qRelativeCFrameWeldValue";
  2570. Archivable = true;
  2571. Value = NewWeld.C1;
  2572. })
  2573. end
  2574.  
  2575. return NewWeld
  2576. end
  2577.  
  2578. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  2579. -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  2580. -- @param MainPart The part to weld the model to (can be in the model).
  2581. -- @param [JointType] The type of joint. Defaults to weld.
  2582. -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  2583.  
  2584. for _, Part in pairs(Parts) do
  2585. if ShouldBreakJoints(Part) then
  2586. Part:BreakJoints()
  2587. end
  2588. end
  2589.  
  2590. for _, Part in pairs(Parts) do
  2591. if Part ~= MainPart then
  2592. WeldTogether(MainPart, Part, JointType, MainPart)
  2593. end
  2594. end
  2595.  
  2596. if not DoNotUnanchor then
  2597. for _, Part in pairs(Parts) do
  2598. Part.Anchored = false
  2599. end
  2600. MainPart.Anchored = false
  2601. end
  2602. end
  2603.  
  2604. local function PerfectionWeld()
  2605. local Tool = GetNearestParent(script, "Tool")
  2606.  
  2607. local Parts = GetBricks(script.Parent)
  2608. 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]
  2609.  
  2610. if PrimaryPart then
  2611. WeldParts(Parts, PrimaryPart, "Weld", false)
  2612. else
  2613. warn("qWeld - Unable to weld part")
  2614. end
  2615.  
  2616. return Tool
  2617. end
  2618.  
  2619. local Tool = PerfectionWeld()
  2620.  
  2621.  
  2622. if Tool and script.ClassName == "Script" then
  2623. --- Don't bother with local scripts
  2624.  
  2625. script.Parent.AncestryChanged:connect(function()
  2626. PerfectionWeld()
  2627. end)
  2628. end
  2629.  
  2630. -- Created by Quenty (@Quenty, follow me on twitter).
  2631.  
  2632. end))
  2633. SpecialMesh106.Parent = Part104
  2634. SpecialMesh106.MeshType = Enum.MeshType.Brick
  2635. Part107.Name = "Claw"
  2636. Part107.Parent = Part104
  2637. Part107.CFrame = CFrame.new(28.5815105, 0.382937014, 5.51271582, 0.0111787179, -2.14213287e-08, -0.999937534, 2.36090218e-05, 1, 2.42512954e-07, 0.999937534, -2.36102551e-05, 0.0111787179)
  2638. Part107.Orientation = Vector3.new(0, -89.3600006, 0)
  2639. Part107.Position = Vector3.new(28.5815105, 0.382937014, 5.51271582)
  2640. Part107.Rotation = Vector3.new(0, -89.3600006, 0)
  2641. Part107.Color = Color3.new(0.529412, 0.352941, 0.352941)
  2642. Part107.Size = Vector3.new(0.966560483, 0.454851985, 0.852847397)
  2643. Part107.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2644. Part107.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2645. Part107.BrickColor = BrickColor.new("Tawny")
  2646. Part107.CanCollide = false
  2647. Part107.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2648. Part107.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2649. Part107.Material = Enum.Material.SmoothPlastic
  2650. Part107.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2651. Part107.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2652. Part107.brickColor = BrickColor.new("Tawny")
  2653. Part107.FormFactor = Enum.FormFactor.Custom
  2654. Part107.formFactor = Enum.FormFactor.Custom
  2655. SpecialMesh108.Parent = Part107
  2656. SpecialMesh108.MeshId = "http://www.roblox.com/Asset?ID=105262978"
  2657. SpecialMesh108.Scale = Vector3.new(0.800000012, 0.800000012, 0.800000012)
  2658. SpecialMesh108.MeshType = Enum.MeshType.FileMesh
  2659. Texture109.Name = "MainTexture"
  2660. Texture109.Parent = Part107
  2661. Texture109.Texture = "rbxassetid://843920074"
  2662. Texture109.Transparency = 0.77999997138977
  2663. Texture109.Face = Enum.NormalId.Top
  2664. Texture109.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  2665. Texture109.StudsPerTileU = 1
  2666. Texture109.StudsPerTileV = 1
  2667. Texture110.Name = "MainTexture"
  2668. Texture110.Parent = Part104
  2669. Texture110.Texture = "rbxassetid://843920074"
  2670. Texture110.Transparency = 0.77999997138977
  2671. Texture110.Face = Enum.NormalId.Top
  2672. Texture110.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  2673. Texture110.StudsPerTileU = 1
  2674. Texture110.StudsPerTileV = 1
  2675. Configuration111.Parent = Model0
  2676. IntValue112.Name = "WalkSpeed"
  2677. IntValue112.Parent = Configuration111
  2678. IntValue112.Value = 12
  2679. IntValue113.Name = "Damage"
  2680. IntValue113.Parent = Configuration111
  2681. IntValue113.Value = 25
  2682. IntValue114.Name = "StunTime"
  2683. IntValue114.Parent = Configuration111
  2684. IntValue114.Value = 3
  2685. NumberValue115.Name = "RakeThemeVolume"
  2686. NumberValue115.Parent = Configuration111
  2687. NumberValue115.Value = 2
  2688. BoolValue116.Name = "AllowToTakeTheModel"
  2689. BoolValue116.Parent = Configuration111
  2690. BoolValue116.Value = true
  2691. Script117.Name = "TakeThisModelScript"
  2692. Script117.Parent = BoolValue116
  2693. table.insert(cors,sandbox(Script117,function()
  2694. --[[Script by XcorrectTheDev
  2695. If you set AllowToTakeTheModel to true that allow the player to-
  2696. click the rake head and get the model ]]
  2697.  
  2698. local Head = script.Parent.Parent.Parent.Head
  2699. local AllowToTakeTheModel = script.Parent.Value
  2700. local ItemID = 2813016734 -- This is this model id
  2701.  
  2702. if AllowToTakeTheModel then -- Check if AllowToTakeTheModel is true
  2703. Head.ClickDetector.MaxActivationDistance = 40
  2704. else -- Else mean if AllowToTakeTheModel is false
  2705. Head.ClickDetector.MaxActivationDistance = 0
  2706. end
  2707.  
  2708. Head.ClickDetector.MouseClick:Connect(function(OnClick) -- Check if player mouse is click the rake head
  2709. game:GetService("MarketplaceService"):PromptPurchase(OnClick,ItemID)
  2710. end)
  2711. end))
  2712. IntValue118.Name = "RunSpeed"
  2713. IntValue118.Parent = Configuration111
  2714. IntValue118.Value = 250
  2715. BoolValue119.Name = "UsedRakeThemeGui"
  2716. BoolValue119.Parent = Configuration111
  2717. Script120.Name = "AutoSet"
  2718. Script120.Parent = BoolValue119
  2719. table.insert(cors,sandbox(Script120,function()
  2720. -- Script by XcorrectTheDev
  2721.  
  2722. local Config = script.Parent.Parent
  2723. local UsedRakeThemeGui = script.Parent.Value
  2724.  
  2725. while wait(2) do
  2726. if UsedRakeThemeGui then
  2727. Config.RakeThemeVolume = 0
  2728. Config.FoundVolume = 0
  2729. Config.StaticSoundVolume = 0
  2730. end
  2731. end
  2732. end))
  2733. NumberValue121.Name = "FoundVolume"
  2734. NumberValue121.Parent = Configuration111
  2735. NumberValue121.Value = 5
  2736. IntValue122.Name = "StunReload"
  2737. IntValue122.Parent = Configuration111
  2738. IntValue122.Value = 5
  2739. NumberValue123.Name = "StaticSoundVolume"
  2740. NumberValue123.Parent = Configuration111
  2741. NumberValue123.Value = 0.25
  2742. Script124.Name = "VolumeSet"
  2743. Script124.Parent = NumberValue123
  2744. table.insert(cors,sandbox(Script124,function()
  2745. -- Script by XcorrectTheDev
  2746.  
  2747. script.Parent.Value = script.Parent.Parent.Parent.Head.Static.Volume
  2748. wait(1)
  2749. if script.Parent.Value > 0 then
  2750. script.Parent.Parent.Parent.Head.Static:Play()
  2751. end
  2752. end))
  2753. Part125.Name = "HumanoidRootPart"
  2754. Part125.Parent = Model0
  2755. Part125.CFrame = CFrame.new(27.6378422, 3.65075493, 5.02944279, 0.0111954138, -2.81288521e-08, -0.999937415, 2.40858863e-05, 1, 2.4153843e-07, 0.999937415, -2.40870795e-05, 0.0111954138)
  2756. Part125.Orientation = Vector3.new(0, -89.3600006, 0)
  2757. Part125.Position = Vector3.new(27.6378422, 3.65075493, 5.02944279)
  2758. Part125.Rotation = Vector3.new(0, -89.3600006, 0)
  2759. Part125.Transparency = 1
  2760. Part125.Size = Vector3.new(2.27426004, 2.27426004, 1.13713002)
  2761. Part125.BackParamA = -99999
  2762. Part125.BackParamB = 99999
  2763. Part125.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2764. Part125.BottomParamA = -99999
  2765. Part125.BottomParamB = 99999
  2766. Part125.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2767. Part125.CustomPhysicalProperties = 0.699999988, 2, 0, 1, 1
  2768. Part125.FrontParamA = -99999
  2769. Part125.FrontParamB = 99999
  2770. Part125.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2771. Part125.LeftParamA = -99999
  2772. Part125.LeftParamB = 99999
  2773. Part125.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2774. Part125.Locked = true
  2775. Part125.Material = Enum.Material.SmoothPlastic
  2776. Part125.RightParamA = -99999
  2777. Part125.RightParamB = 99999
  2778. Part125.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2779. Part125.TopParamA = -99999
  2780. Part125.TopParamB = 99999
  2781. Part125.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2782. Part125.FormFactor = Enum.FormFactor.Symmetric
  2783. Part125.formFactor = Enum.FormFactor.Symmetric
  2784. Motor6D126.Name = "RootJoint"
  2785. Motor6D126.Parent = Part125
  2786. Motor6D126.MaxVelocity = 0.10000000149012
  2787. Motor6D126.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  2788. Motor6D126.C1 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  2789. Motor6D126.Part0 = Part125
  2790. Motor6D126.Part1 = Part61
  2791. Motor6D126.part1 = Part61
  2792. Animation127.Name = "Swing"
  2793. Animation127.Parent = Model0
  2794. Animation127.AnimationId = "rbxassetid://243827693"
  2795. CharacterMesh128.Name = "Torso"
  2796. CharacterMesh128.Parent = Model0
  2797. CharacterMesh128.BodyPart = Enum.BodyPart.Torso
  2798. CharacterMesh128.MeshId = 27111894
  2799. CharacterMesh129.Name = "LeftLeg"
  2800. CharacterMesh129.Parent = Model0
  2801. CharacterMesh129.BodyPart = Enum.BodyPart.LeftLeg
  2802. CharacterMesh129.MeshId = 27111857
  2803. CharacterMesh130.Name = "RightLeg"
  2804. CharacterMesh130.Parent = Model0
  2805. CharacterMesh130.BodyPart = Enum.BodyPart.RightLeg
  2806. CharacterMesh130.MeshId = 27111882
  2807. BoolValue131.Name = "Target"
  2808. BoolValue131.Parent = Model0
  2809. Part132.Name = "Right Arm"
  2810. Part132.Parent = Model0
  2811. Part132.CFrame = CFrame.new(27.6569386, 3.65079594, 6.73503113, 0.0111954138, -2.81288521e-08, -0.999937415, 2.40858863e-05, 1, 2.4153843e-07, 0.999937415, -2.40870795e-05, 0.0111954138)
  2812. Part132.Orientation = Vector3.new(0, -89.3600006, 0)
  2813. Part132.Position = Vector3.new(27.6569386, 3.65079594, 6.73503113)
  2814. Part132.Rotation = Vector3.new(0, -89.3600006, 0)
  2815. Part132.Color = Color3.new(0.529412, 0.529412, 0.529412)
  2816. Part132.Transparency = 1
  2817. Part132.Size = Vector3.new(1.13713002, 2.27426004, 1.13713002)
  2818. Part132.BackParamA = -99999
  2819. Part132.BackParamB = 99999
  2820. Part132.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2821. Part132.BottomParamA = -99999
  2822. Part132.BottomParamB = 99999
  2823. Part132.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2824. Part132.BrickColor = BrickColor.new("Silver flip/flop")
  2825. Part132.CustomPhysicalProperties = 0.699999988, 2, 0, 1, 1
  2826. Part132.FrontParamA = -99999
  2827. Part132.FrontParamB = 99999
  2828. Part132.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2829. Part132.LeftParamA = -99999
  2830. Part132.LeftParamB = 99999
  2831. Part132.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2832. Part132.Locked = true
  2833. Part132.Material = Enum.Material.SmoothPlastic
  2834. Part132.RightParamA = -99999
  2835. Part132.RightParamB = 99999
  2836. Part132.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2837. Part132.TopParamA = -99999
  2838. Part132.TopParamB = 99999
  2839. Part132.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2840. Part132.brickColor = BrickColor.new("Silver flip/flop")
  2841. Part132.FormFactor = Enum.FormFactor.Symmetric
  2842. Part132.formFactor = Enum.FormFactor.Symmetric
  2843. Script133.Name = "qPerfectionWeld"
  2844. Script133.Parent = Part132
  2845. table.insert(cors,sandbox(Script133,function()
  2846. -- Created by Quenty (@Quenty, follow me on twitter).
  2847. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  2848. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  2849.  
  2850. --[[ INSTRUCTIONS
  2851. - Place in the model
  2852. - Make sure model is anchored
  2853. - That's it. It will weld the model and all children.
  2854.  
  2855. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2856. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2857. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  2858. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  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.  
  2864. 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.
  2865. ]]
  2866.  
  2867. --[[ DOCUMENTATION
  2868. - 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.
  2869. - Will work in PBS servers
  2870. - Will work as long as it starts out with the part anchored
  2871. - Stores the relative CFrame as a CFrame value
  2872. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  2873. - Utilizes a recursive algorith to find all parts in the model
  2874. - Will reweld on script reparent if the script is initially parented to a tool.
  2875. - Welds as fast as possible
  2876. ]]
  2877.  
  2878. -- qPerfectionWeld.lua
  2879. -- Created 10/6/2014
  2880. -- Author: Quenty
  2881. -- Version 1.0.3
  2882.  
  2883. -- Updated 10/14/2014 - Updated to 1.0.1
  2884. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  2885.  
  2886. -- Updated 10/14/2014 - Updated to 1.0.2
  2887. --- Fixed bug fix.
  2888.  
  2889. -- Updated 10/14/2014 - Updated to 1.0.3
  2890. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  2891.  
  2892. 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).
  2893.  
  2894.  
  2895. local function CallOnChildren(Instance, FunctionToCall)
  2896. -- Calls a function on each of the children of a certain object, using recursion.
  2897.  
  2898. FunctionToCall(Instance)
  2899.  
  2900. for _, Child in next, Instance:GetChildren() do
  2901. CallOnChildren(Child, FunctionToCall)
  2902. end
  2903. end
  2904.  
  2905. local function GetNearestParent(Instance, ClassName)
  2906. -- Returns the nearest parent of a certain class, or returns nil
  2907.  
  2908. local Ancestor = Instance
  2909. repeat
  2910. Ancestor = Ancestor.Parent
  2911. if Ancestor == nil then
  2912. return nil
  2913. end
  2914. until Ancestor:IsA(ClassName)
  2915.  
  2916. return Ancestor
  2917. end
  2918.  
  2919. local function GetBricks(StartInstance)
  2920. local List = {}
  2921.  
  2922. -- if StartInstance:IsA("BasePart") then
  2923. -- List[#List+1] = StartInstance
  2924. -- end
  2925.  
  2926. CallOnChildren(StartInstance, function(Item)
  2927. if Item:IsA("BasePart") then
  2928. List[#List+1] = Item;
  2929. end
  2930. end)
  2931.  
  2932. return List
  2933. end
  2934.  
  2935. local function Modify(Instance, Values)
  2936. -- Modifies an Instance by using a table.
  2937.  
  2938. assert(type(Values) == "table", "Values is not a table");
  2939.  
  2940. for Index, Value in next, Values do
  2941. if type(Index) == "number" then
  2942. Value.Parent = Instance
  2943. else
  2944. Instance[Index] = Value
  2945. end
  2946. end
  2947. return Instance
  2948. end
  2949.  
  2950. local function Make(ClassType, Properties)
  2951. -- Using a syntax hack to create a nice way to Make new items.
  2952.  
  2953. return Modify(Instance.new(ClassType), Properties)
  2954. end
  2955.  
  2956. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  2957. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  2958.  
  2959. local function HasWheelJoint(Part)
  2960. for _, SurfaceName in pairs(Surfaces) do
  2961. for _, HingSurfaceName in pairs(HingSurfaces) do
  2962. if Part[SurfaceName].Name == HingSurfaceName then
  2963. return true
  2964. end
  2965. end
  2966. end
  2967.  
  2968. return false
  2969. end
  2970.  
  2971. local function ShouldBreakJoints(Part)
  2972. --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  2973. -- definitely some edge cases.
  2974.  
  2975. if NEVER_BREAK_JOINTS then
  2976. return false
  2977. end
  2978.  
  2979. if HasWheelJoint(Part) then
  2980. return false
  2981. end
  2982.  
  2983. local Connected = Part:GetConnectedParts()
  2984.  
  2985. if #Connected == 1 then
  2986. return false
  2987. end
  2988.  
  2989. for _, Item in pairs(Connected) do
  2990. if HasWheelJoint(Item) then
  2991. return false
  2992. elseif not Item:IsDescendantOf(script.Parent) then
  2993. return false
  2994. end
  2995. end
  2996.  
  2997. return true
  2998. end
  2999.  
  3000. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  3001. --- Weld's 2 parts together
  3002. -- @param Part0 The first part
  3003. -- @param Part1 The second part (Dependent part most of the time).
  3004. -- @param [JointType] The type of joint. Defaults to weld.
  3005. -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  3006. -- @return The weld created.
  3007.  
  3008. JointType = JointType or "Weld"
  3009. local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  3010.  
  3011. local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  3012. Modify(NewWeld, {
  3013. Name = "qCFrameWeldThingy";
  3014. Part0 = Part0;
  3015. Part1 = Part1;
  3016. C0 = CFrame.new();--Part0.CFrame:inverse();
  3017. C1 = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  3018. Parent = Part1;
  3019. })
  3020.  
  3021. if not RelativeValue then
  3022. RelativeValue = Make("CFrameValue", {
  3023. Parent = Part1;
  3024. Name = "qRelativeCFrameWeldValue";
  3025. Archivable = true;
  3026. Value = NewWeld.C1;
  3027. })
  3028. end
  3029.  
  3030. return NewWeld
  3031. end
  3032.  
  3033. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  3034. -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  3035. -- @param MainPart The part to weld the model to (can be in the model).
  3036. -- @param [JointType] The type of joint. Defaults to weld.
  3037. -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  3038.  
  3039. for _, Part in pairs(Parts) do
  3040. if ShouldBreakJoints(Part) then
  3041. Part:BreakJoints()
  3042. end
  3043. end
  3044.  
  3045. for _, Part in pairs(Parts) do
  3046. if Part ~= MainPart then
  3047. WeldTogether(MainPart, Part, JointType, MainPart)
  3048. end
  3049. end
  3050.  
  3051. if not DoNotUnanchor then
  3052. for _, Part in pairs(Parts) do
  3053. Part.Anchored = false
  3054. end
  3055. MainPart.Anchored = false
  3056. end
  3057. end
  3058.  
  3059. local function PerfectionWeld()
  3060. local Tool = GetNearestParent(script, "Tool")
  3061.  
  3062. local Parts = GetBricks(script.Parent)
  3063. 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]
  3064.  
  3065. if PrimaryPart then
  3066. WeldParts(Parts, PrimaryPart, "Weld", false)
  3067. else
  3068. warn("qWeld - Unable to weld part")
  3069. end
  3070.  
  3071. return Tool
  3072. end
  3073.  
  3074. local Tool = PerfectionWeld()
  3075.  
  3076.  
  3077. if Tool and script.ClassName == "Script" then
  3078. --- Don't bother with local scripts
  3079.  
  3080. script.Parent.AncestryChanged:connect(function()
  3081. PerfectionWeld()
  3082. end)
  3083. end
  3084.  
  3085. -- Created by Quenty (@Quenty, follow me on twitter).
  3086.  
  3087. end))
  3088. SpecialMesh134.Parent = Part132
  3089. SpecialMesh134.MeshId = "http://www.roblox.com/asset/?id=36780156"
  3090. SpecialMesh134.Offset = Vector3.new(0, 0.227425963, 0)
  3091. SpecialMesh134.Scale = Vector3.new(1.59198153, 1.36455595, 1.47826862)
  3092. SpecialMesh134.MeshType = Enum.MeshType.FileMesh
  3093. MeshPart135.Name = "Right Arm"
  3094. MeshPart135.Parent = Part132
  3095. MeshPart135.CFrame = CFrame.new(27.6562786, 3.87888098, 6.74690485, 0.0112486593, -2.26687007e-08, -0.999936819, 2.36089982e-05, 1, 2.42916713e-07, 0.999936819, -2.36102333e-05, 0.0112486593)
  3096. MeshPart135.Orientation = Vector3.new(0, -89.3600006, 0)
  3097. MeshPart135.Position = Vector3.new(27.6562786, 3.87888098, 6.74690485)
  3098. MeshPart135.Rotation = Vector3.new(0, -89.3600006, 0)
  3099. MeshPart135.Color = Color3.new(0.529412, 0.529412, 0.529412)
  3100. MeshPart135.Size = Vector3.new(1.31224787, 2.6824894, 0.773248374)
  3101. MeshPart135.BrickColor = BrickColor.new("Silver flip/flop")
  3102. MeshPart135.CanCollide = false
  3103. MeshPart135.Material = Enum.Material.SmoothPlastic
  3104. MeshPart135.brickColor = BrickColor.new("Silver flip/flop")
  3105. Texture136.Name = "BackTexture"
  3106. Texture136.Parent = MeshPart135
  3107. Texture136.Texture = "rbxassetid://843920074"
  3108. Texture136.Transparency = 0.80000001192093
  3109. Texture136.Face = Enum.NormalId.Back
  3110. Texture136.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  3111. Texture137.Name = "BottomTexture"
  3112. Texture137.Parent = MeshPart135
  3113. Texture137.Texture = "rbxassetid://843920074"
  3114. Texture137.Transparency = 0.80000001192093
  3115. Texture137.Face = Enum.NormalId.Bottom
  3116. Texture137.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  3117. Texture138.Name = "FrontTexture"
  3118. Texture138.Parent = MeshPart135
  3119. Texture138.Texture = "rbxassetid://843920074"
  3120. Texture138.Transparency = 0.80000001192093
  3121. Texture138.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  3122. Texture139.Name = "LeftTexture"
  3123. Texture139.Parent = MeshPart135
  3124. Texture139.Texture = "rbxassetid://843920074"
  3125. Texture139.Transparency = 0.80000001192093
  3126. Texture139.Face = Enum.NormalId.Left
  3127. Texture139.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  3128. Texture140.Name = "RightTexture"
  3129. Texture140.Parent = MeshPart135
  3130. Texture140.Texture = "rbxassetid://843920074"
  3131. Texture140.Transparency = 0.80000001192093
  3132. Texture140.Face = Enum.NormalId.Right
  3133. Texture140.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  3134. Texture141.Name = "TopTexture"
  3135. Texture141.Parent = MeshPart135
  3136. Texture141.Texture = "rbxassetid://843920074"
  3137. Texture141.Transparency = 0.80000001192093
  3138. Texture141.Face = Enum.NormalId.Top
  3139. Texture141.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  3140. Part142.Name = "Claw"
  3141. Part142.Parent = Part132
  3142. Part142.CFrame = CFrame.new(27.6579876, 1.28634095, 6.54530716, -0.999996543, 0.00261664623, -0.000213970648, -0.000173698325, 0.0153813604, 0.999881744, 0.0026196274, 0.999878407, -0.0153808538)
  3143. Part142.Orientation = Vector3.new(-89.1200027, -179.199997, -0.649999976)
  3144. Part142.Position = Vector3.new(27.6579876, 1.28634095, 6.54530716)
  3145. Part142.Rotation = Vector3.new(-90.8799973, -0.00999999978, -179.850006)
  3146. Part142.Color = Color3.new(0.529412, 0.352941, 0.352941)
  3147. Part142.Size = Vector3.new(0.607227385, 0.284282506, 2.48804021)
  3148. Part142.BottomSurface = Enum.SurfaceType.Smooth
  3149. Part142.BrickColor = BrickColor.new("Tawny")
  3150. Part142.CanCollide = false
  3151. Part142.Material = Enum.Material.SmoothPlastic
  3152. Part142.TopSurface = Enum.SurfaceType.Smooth
  3153. Part142.brickColor = BrickColor.new("Tawny")
  3154. Part142.FormFactor = Enum.FormFactor.Custom
  3155. Part142.formFactor = Enum.FormFactor.Custom
  3156. SpecialMesh143.Parent = Part142
  3157. SpecialMesh143.MeshId = "http://www.roblox.com/Asset?ID=105262978"
  3158. SpecialMesh143.Offset = Vector3.new(0, 0, 0.319999993)
  3159. SpecialMesh143.Scale = Vector3.new(0.879999995, 2.5, 1.5)
  3160. SpecialMesh143.MeshType = Enum.MeshType.FileMesh
  3161. Texture144.Name = "MainTexture"
  3162. Texture144.Parent = Part142
  3163. Texture144.Texture = "rbxassetid://843920074"
  3164. Texture144.Transparency = 0.77999997138977
  3165. Texture144.Face = Enum.NormalId.Top
  3166. Texture144.Color3 = Color3.new(0.639216, 0.635294, 0.647059)
  3167. Texture144.StudsPerTileU = 1
  3168. Texture144.StudsPerTileV = 1
  3169. Script145.Name = "FixAnchored"
  3170. Script145.Parent = Model0
  3171. table.insert(cors,sandbox(Script145,function()
  3172. -- Script by XcorrectTheDev
  3173.  
  3174. while wait(10) do
  3175. script.Parent.NPC.PlatformStand = false
  3176. script.Parent.Torso.Anchored = false
  3177. end
  3178. end))
  3179. Humanoid146.Name = "NPC"
  3180. Humanoid146.Parent = Model0
  3181. Humanoid146.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
  3182. Humanoid146.Health = 2.5000001022962e+34
  3183. Humanoid146.HealthDisplayDistance = 0
  3184. Humanoid146.JumpPower = 80
  3185. Humanoid146.LeftLeg = Part97
  3186. Humanoid146.MaxHealth = 2.5000001022962e+34
  3187. Humanoid146.MaxSlopeAngle = 89.900001525879
  3188. Humanoid146.NameDisplayDistance = 0
  3189. Humanoid146.NameOcclusion = Enum.NameOcclusion.EnemyOcclusion
  3190. Humanoid146.RightLeg = Part104
  3191. Humanoid146.Torso = Part125
  3192. Humanoid146.WalkSpeed = 250
  3193. Humanoid146.maxHealth = 2.5000001022962e+34
  3194. Script147.Name = "Animation"
  3195. Script147.Parent = Model0
  3196. table.insert(cors,sandbox(Script147,function()
  3197. -- Doesn't provide rake animations
  3198.  
  3199. function waitForChild(parent, childName)
  3200. local child = parent:findFirstChild(childName)
  3201. if child then return child end
  3202. while true do
  3203. child = parent.ChildAdded:wait()
  3204. if child.Name == childName then return child end
  3205. end
  3206. end
  3207. local Figure = script.Parent
  3208. local Torso = waitForChild(Figure, "Torso")
  3209. local RightShoulder = waitForChild(Torso, "Right Shoulder")
  3210. local LeftShoulder = waitForChild(Torso, "Left Shoulder")
  3211. local RightHip = waitForChild(Torso, "Right Hip")
  3212. local LeftHip = waitForChild(Torso, "Left Hip")
  3213. local Neck = waitForChild(Torso, "Neck")
  3214. local Humanoid;
  3215. for _,Child in pairs(Figure:GetChildren())do
  3216. if Child and Child.ClassName == "Humanoid"then
  3217. Humanoid = Child;
  3218. end;
  3219. end;
  3220. local pose = "Standing"
  3221. local currentAnim = ""
  3222. local currentAnimInstance = nil
  3223. local currentAnimTrack = nil
  3224. local currentAnimKeyframeHandler = nil
  3225. local currentAnimSpeed = 1.0
  3226. local animTable = {}
  3227. local animNames = {
  3228. idle = {
  3229. { id = "http://www.roblox.com/asset/?id=180435571", weight = 9 },
  3230. { id = "http://www.roblox.com/asset/?id=180435792", weight = 1 }
  3231. },
  3232. walk = {
  3233. { id = "http://www.roblox.com/asset/?id=180426354", weight = 10 }
  3234. },
  3235. run = {
  3236. { id = "http://www.roblox.com/asset/?id=252557606", weight = 20 }
  3237. },
  3238. jump = {
  3239. { id = "http://www.roblox.com/asset/?id=125750702", weight = 10 }
  3240. },
  3241. fall = {
  3242. { id = "http://www.roblox.com/asset/?id=180436148", weight = 10 }
  3243. },
  3244. climb = {
  3245. { id = "http://www.roblox.com/asset/?id=180436334", weight = 10 }
  3246. },
  3247. sit = {
  3248. { id = "http://www.roblox.com/asset/?id=178130996", weight = 10 }
  3249. },
  3250. toolnone = {
  3251. { id = "http://www.roblox.com/asset/?id=182393478", weight = 10 }
  3252. },
  3253. toolslash = {
  3254. { id = "http://www.roblox.com/asset/?id=129967390", weight = 10 }
  3255.  
  3256. },
  3257. toollunge = {
  3258. { id = "http://www.roblox.com/asset/?id=0", weight = 10 }
  3259. },
  3260. wave = {
  3261. { id = "http://www.roblox.com/asset/?id=128777973", weight = 10 }
  3262. },
  3263. point = {
  3264. { id = "http://www.roblox.com/asset/?id=128853357", weight = 10 }
  3265. },
  3266. dance1 = {
  3267. { id = "http://www.roblox.com/asset/?id=182435998", weight = 10 },
  3268. { id = "http://www.roblox.com/asset/?id=182491037", weight = 10 },
  3269. { id = "http://www.roblox.com/asset/?id=182491065", weight = 10 }
  3270. },
  3271. dance2 = {
  3272. { id = "http://www.roblox.com/asset/?id=182436842", weight = 10 },
  3273. { id = "http://www.roblox.com/asset/?id=182491248", weight = 10 },
  3274. { id = "http://www.roblox.com/asset/?id=182491277", weight = 10 }
  3275. },
  3276. dance3 = {
  3277. { id = "http://www.roblox.com/asset/?id=182436935", weight = 10 },
  3278. { id = "http://www.roblox.com/asset/?id=182491368", weight = 10 },
  3279. { id = "http://www.roblox.com/asset/?id=182491423", weight = 10 }
  3280. },
  3281. laugh = {
  3282. { id = "http://www.roblox.com/asset/?id=129423131", weight = 10 }
  3283. },
  3284. cheer = {
  3285. { id = "http://www.roblox.com/asset/?id=129423030", weight = 10 }
  3286. },
  3287. }
  3288. local dances = {"dance1", "dance2", "dance3"}
  3289.  
  3290. local emoteNames = { wave = false, point = false, dance1 = true, dance2 = true, dance3 = true, laugh = false, cheer = false}
  3291.  
  3292. function configureAnimationSet(name, fileList)
  3293. if (animTable[name] ~= nil) then
  3294. for _, connection in pairs(animTable[name].connections) do
  3295. connection:disconnect()
  3296. end
  3297. end
  3298. animTable[name] = {}
  3299. animTable[name].count = 0
  3300. animTable[name].totalWeight = 0
  3301. animTable[name].connections = {}
  3302.  
  3303.  
  3304. local config = script:FindFirstChild(name)
  3305. if (config ~= nil) then
  3306.  
  3307. table.insert(animTable[name].connections, config.ChildAdded:connect(function(child) configureAnimationSet(name, fileList) end))
  3308. table.insert(animTable[name].connections, config.ChildRemoved:connect(function(child) configureAnimationSet(name, fileList) end))
  3309. local idx = 1
  3310. for _, childPart in pairs(config:GetChildren()) do
  3311. if (childPart:IsA("Animation")) then
  3312. table.insert(animTable[name].connections, childPart.Changed:connect(function(property) configureAnimationSet(name, fileList) end))
  3313. animTable[name][idx] = {}
  3314. animTable[name][idx].anim = childPart
  3315. local weightObject = childPart:FindFirstChild("Weight")
  3316. if (weightObject == nil) then
  3317. animTable[name][idx].weight = 1
  3318. else
  3319. animTable[name][idx].weight = weightObject.Value
  3320. end
  3321. animTable[name].count = animTable[name].count + 1
  3322. animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight
  3323.  
  3324. idx = idx + 1
  3325. end
  3326. end
  3327. end
  3328.  
  3329.  
  3330. if (animTable[name].count <= 0) then
  3331. for idx, anim in pairs(fileList) do
  3332. animTable[name][idx] = {}
  3333. animTable[name][idx].anim = Instance.new("Animation")
  3334. animTable[name][idx].anim.Name = name
  3335. animTable[name][idx].anim.AnimationId = anim.id
  3336. animTable[name][idx].weight = anim.weight
  3337. animTable[name].count = animTable[name].count + 1
  3338. animTable[name].totalWeight = animTable[name].totalWeight + anim.weight
  3339.  
  3340. end
  3341. end
  3342. end
  3343.  
  3344.  
  3345. function scriptChildModified(child)
  3346. local fileList = animNames[child.Name]
  3347. if (fileList ~= nil) then
  3348. configureAnimationSet(child.Name, fileList)
  3349. end
  3350. end
  3351.  
  3352. script.ChildAdded:connect(scriptChildModified)
  3353. script.ChildRemoved:connect(scriptChildModified)
  3354.  
  3355.  
  3356. for name, fileList in pairs(animNames) do
  3357. configureAnimationSet(name, fileList)
  3358. end
  3359.  
  3360.  
  3361. local toolAnim = "None"
  3362. local toolAnimTime = 0
  3363.  
  3364. local jumpAnimTime = 0
  3365. local jumpAnimDuration = 0.3
  3366.  
  3367. local toolTransitionTime = 0.1
  3368. local fallTransitionTime = 0.3
  3369. local jumpMaxLimbVelocity = 0.75
  3370.  
  3371.  
  3372.  
  3373. function stopAllAnimations()
  3374. local oldAnim = currentAnim
  3375.  
  3376.  
  3377. if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
  3378. oldAnim = "idle"
  3379. end
  3380.  
  3381. currentAnim = ""
  3382. currentAnimInstance = nil
  3383. if (currentAnimKeyframeHandler ~= nil) then
  3384. currentAnimKeyframeHandler:disconnect()
  3385. end
  3386.  
  3387. if (currentAnimTrack ~= nil) then
  3388. currentAnimTrack:Stop()
  3389. currentAnimTrack:Destroy()
  3390. currentAnimTrack = nil
  3391. end
  3392. return oldAnim
  3393. end
  3394.  
  3395. function setAnimationSpeed(speed)
  3396. if speed ~= currentAnimSpeed then
  3397. currentAnimSpeed = speed
  3398. currentAnimTrack:AdjustSpeed(currentAnimSpeed)
  3399. end
  3400. end
  3401.  
  3402. function keyFrameReachedFunc(frameName)
  3403. if (frameName == "End") then
  3404.  
  3405. local repeatAnim = currentAnim
  3406.  
  3407. if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then
  3408. repeatAnim = "idle"
  3409. end
  3410.  
  3411. local animSpeed = currentAnimSpeed
  3412. playAnimation(repeatAnim, 0.0, Humanoid)
  3413. setAnimationSpeed(animSpeed)
  3414. end
  3415. end
  3416.  
  3417.  
  3418. function playAnimation(animName, transitionTime, humanoid)
  3419.  
  3420. local roll = math.random(1, animTable[animName].totalWeight)
  3421. local origRoll = roll
  3422. local idx = 1
  3423. while (roll > animTable[animName][idx].weight) do
  3424. roll = roll - animTable[animName][idx].weight
  3425. idx = idx + 1
  3426. end
  3427.  
  3428. local anim = animTable[animName][idx].anim
  3429.  
  3430. if (anim ~= currentAnimInstance) then
  3431. if (currentAnimTrack ~= nil) then
  3432. currentAnimTrack:Stop(transitionTime)
  3433. currentAnimTrack:Destroy()
  3434. end
  3435. currentAnimSpeed = 1.0
  3436.  
  3437. currentAnimTrack = humanoid:LoadAnimation(anim)
  3438.  
  3439. currentAnimTrack:Play(transitionTime)
  3440. currentAnim = animName
  3441. currentAnimInstance = anim
  3442.  
  3443. if (currentAnimKeyframeHandler ~= nil) then
  3444. currentAnimKeyframeHandler:disconnect()
  3445. end
  3446. currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
  3447. end
  3448. end
  3449.  
  3450. local toolAnimName = ""
  3451. local toolAnimTrack = nil
  3452. local toolAnimInstance = nil
  3453. local currentToolAnimKeyframeHandler = nil
  3454. function toolKeyFrameReachedFunc(frameName)
  3455. if (frameName == "End") then
  3456.  
  3457. playToolAnimation(toolAnimName, 0.0, Humanoid)
  3458. end
  3459. end
  3460. function playToolAnimation(animName, transitionTime, humanoid)
  3461. local roll = math.random(1, animTable[animName].totalWeight)
  3462. local origRoll = roll
  3463. local idx = 1
  3464. while (roll > animTable[animName][idx].weight) do
  3465. roll = roll - animTable[animName][idx].weight
  3466. idx = idx + 1
  3467. end
  3468.  
  3469. local anim = animTable[animName][idx].anim
  3470. if (toolAnimInstance ~= anim) then
  3471. if (toolAnimTrack ~= nil) then
  3472. toolAnimTrack:Stop()
  3473. toolAnimTrack:Destroy()
  3474. transitionTime = 0
  3475. end
  3476.  
  3477. toolAnimTrack = humanoid:LoadAnimation(anim)
  3478.  
  3479. toolAnimTrack:Play(transitionTime)
  3480. toolAnimName = animName
  3481. toolAnimInstance = anim
  3482. currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
  3483. end
  3484. end
  3485. function stopToolAnimations()
  3486. local oldAnim = toolAnimName
  3487. if (currentToolAnimKeyframeHandler ~= nil) then
  3488. currentToolAnimKeyframeHandler:disconnect()
  3489. end
  3490. toolAnimName = ""
  3491. toolAnimInstance = nil
  3492. if (toolAnimTrack ~= nil) then
  3493. toolAnimTrack:Stop()
  3494. toolAnimTrack:Destroy()
  3495. toolAnimTrack = nil
  3496. end
  3497. return oldAnim
  3498. end
  3499.  
  3500. function onRunning(speed)
  3501. if speed>0.01 then
  3502. if Figure and Humanoid and Humanoid.WalkSpeed<17 then
  3503. playAnimation("walk", 0.1, Humanoid);
  3504. elseif Figure and Humanoid and Humanoid.WalkSpeed>17 then
  3505. playAnimation("run", 0.1, Humanoid);
  3506. end;
  3507. if currentAnimInstance and currentAnimInstance.AnimationId == "http://www.roblox.com/asset/?id=180426354" then
  3508. setAnimationSpeed(speed / 14.5)
  3509. end
  3510. pose = "Running"
  3511. else
  3512. playAnimation("idle", 0.1, Humanoid)
  3513. pose = "Standing"
  3514. end
  3515. end
  3516. function onDied()
  3517. pose = "Dead"
  3518. end
  3519. function onJumping()
  3520. playAnimation("jump", 0.1, Humanoid)
  3521. jumpAnimTime = jumpAnimDuration
  3522. pose = "Jumping"
  3523. end
  3524. function onClimbing(speed)
  3525. playAnimation("climb", 0.1, Humanoid)
  3526. setAnimationSpeed(speed / 12.0)
  3527. pose = "Climbing"
  3528. end
  3529. function onGettingUp()
  3530. pose = "GettingUp"
  3531. end
  3532. function onFreeFall()
  3533. if (jumpAnimTime <= 0) then
  3534. playAnimation("fall", fallTransitionTime, Humanoid)
  3535. end
  3536. pose = "FreeFall"
  3537. end
  3538. function onFallingDown()
  3539. pose = "FallingDown"
  3540. end
  3541. function onSeated()
  3542. pose = "Seated"
  3543. end
  3544. function onPlatformStanding()
  3545. pose = "PlatformStanding"
  3546. end
  3547. function onSwimming(speed)
  3548. if speed>0 then
  3549. pose = "Running"
  3550. else
  3551. pose = "Standing"
  3552. end
  3553. end
  3554.  
  3555. function getTool()
  3556. for _, kid in ipairs(Figure:GetChildren()) do
  3557. if kid.className == "Tool" then return kid end
  3558. end
  3559. return nil
  3560. end
  3561.  
  3562. function getToolAnim(tool)
  3563. for _, c in ipairs(tool:GetChildren()) do
  3564. if c.Name == "toolanim" and c.className == "StringValue" then
  3565. return c
  3566. end
  3567. end
  3568. return nil
  3569. end
  3570.  
  3571. function animateTool()
  3572.  
  3573. if (toolAnim == "None") then
  3574. playToolAnimation("toolnone", toolTransitionTime, Humanoid)
  3575. return
  3576. end
  3577.  
  3578. if (toolAnim == "Slash") then
  3579. playToolAnimation("toolslash", 0, Humanoid)
  3580. return
  3581. end
  3582.  
  3583. if (toolAnim == "Lunge") then
  3584. playToolAnimation("toollunge", 0, Humanoid)
  3585. return
  3586. end
  3587. end
  3588.  
  3589. function moveSit()
  3590. RightShoulder.MaxVelocity = 0.15
  3591. LeftShoulder.MaxVelocity = 0.15
  3592. RightShoulder:SetDesiredAngle(3.14 /2)
  3593. LeftShoulder:SetDesiredAngle(-3.14 /2)
  3594. RightHip:SetDesiredAngle(3.14 /2)
  3595. LeftHip:SetDesiredAngle(-3.14 /2)
  3596. end
  3597.  
  3598. local lastTick = 0
  3599.  
  3600. function move(time)
  3601. local amplitude = 1
  3602. local frequency = 1
  3603. local deltaTime = time - lastTick
  3604. lastTick = time
  3605.  
  3606. local climbFudge = 0
  3607. local setAngles = false
  3608.  
  3609. if (jumpAnimTime > 0) then
  3610. jumpAnimTime = jumpAnimTime - deltaTime
  3611. end
  3612.  
  3613. if (pose == "FreeFall" and jumpAnimTime <= 0) then
  3614. playAnimation("fall", fallTransitionTime, Humanoid)
  3615. elseif (pose == "Seated") then
  3616. playAnimation("sit", 0.5, Humanoid)
  3617. return
  3618. elseif (pose == "Running") then
  3619. if Figure and Humanoid and Humanoid.WalkSpeed<17 then
  3620. playAnimation("walk", 0.1, Humanoid);
  3621. elseif Figure and Humanoid and Humanoid.WalkSpeed>17 then
  3622. playAnimation("run", 0.1, Humanoid);
  3623. end;
  3624. elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then
  3625. stopAllAnimations()
  3626. amplitude = 0.1
  3627. frequency = 1
  3628. setAngles = true
  3629. end
  3630. if (setAngles) then
  3631. local desiredAngle = amplitude * math.sin(time * frequency)
  3632. RightShoulder:SetDesiredAngle(desiredAngle + climbFudge)
  3633. LeftShoulder:SetDesiredAngle(desiredAngle - climbFudge)
  3634. RightHip:SetDesiredAngle(-desiredAngle)
  3635. LeftHip:SetDesiredAngle(-desiredAngle)
  3636. end
  3637.  
  3638. local tool = getTool()
  3639. if tool and tool:FindFirstChild("Handle") then
  3640. local animStringValueObject = getToolAnim(tool)
  3641. if animStringValueObject then
  3642. toolAnim = animStringValueObject.Value
  3643.  
  3644. animStringValueObject.Parent = nil
  3645. toolAnimTime = time + .3
  3646. end
  3647. if time > toolAnimTime then
  3648. toolAnimTime = 0
  3649. toolAnim = "None"
  3650. end
  3651. animateTool()
  3652. else
  3653. stopToolAnimations()
  3654. toolAnim = "None"
  3655. toolAnimInstance = nil
  3656. toolAnimTime = 0
  3657. end
  3658. end
  3659.  
  3660. Humanoid.Died:Connect(onDied)
  3661. Humanoid.Running:Connect(onRunning)
  3662. Humanoid.Jumping:Connect(onJumping)
  3663. Humanoid.Climbing:Connect(onClimbing)
  3664. Humanoid.GettingUp:Connect(onGettingUp)
  3665. Humanoid.FreeFalling:Connect(onFreeFall)
  3666. Humanoid.FallingDown:Connect(onFallingDown)
  3667. Humanoid.Seated:Connect(onSeated)
  3668. Humanoid.PlatformStanding:Connect(onPlatformStanding)
  3669. Humanoid.Swimming:Connect(onSwimming)
  3670. local runService = game:GetService("RunService");
  3671. playAnimation("idle", 0.1, Humanoid)
  3672. pose = "Standing"
  3673. while true do
  3674. local _,time = wait(0)
  3675. move(time)
  3676. end
  3677. end))
  3678. StringValue148.Name = "climb"
  3679. StringValue148.Parent = Script147
  3680. Animation149.Name = "ClimbAnim"
  3681. Animation149.Parent = StringValue148
  3682. Animation149.AnimationId = "http://www.roblox.com/asset/?id=180436334"
  3683. StringValue150.Name = "fall"
  3684. StringValue150.Parent = Script147
  3685. Animation151.Name = "FallAnim"
  3686. Animation151.Parent = StringValue150
  3687. Animation151.AnimationId = "http://www.roblox.com/asset/?id=180436148"
  3688. StringValue152.Name = "idle"
  3689. StringValue152.Parent = Script147
  3690. Animation153.Name = "Animation1"
  3691. Animation153.Parent = StringValue152
  3692. Animation153.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  3693. NumberValue154.Name = "Weight"
  3694. NumberValue154.Parent = Animation153
  3695. NumberValue154.Value = 9
  3696. Animation155.Name = "Animation2"
  3697. Animation155.Parent = StringValue152
  3698. Animation155.AnimationId = "http://www.roblox.com/asset/?id=180435792"
  3699. NumberValue156.Name = "Weight"
  3700. NumberValue156.Parent = Animation155
  3701. NumberValue156.Value = 1
  3702. StringValue157.Name = "jump"
  3703. StringValue157.Parent = Script147
  3704. Animation158.Name = "JumpAnim"
  3705. Animation158.Parent = StringValue157
  3706. Animation158.AnimationId = "http://www.roblox.com/asset/?id=125750702"
  3707. StringValue159.Name = "run"
  3708. StringValue159.Parent = Script147
  3709. Animation160.Name = "RunAnim"
  3710. Animation160.Parent = StringValue159
  3711. Animation160.AnimationId = "http://www.roblox.com/asset/?id=252557606"
  3712. StringValue161.Name = "sit"
  3713. StringValue161.Parent = Script147
  3714. Animation162.Name = "SitAnim"
  3715. Animation162.Parent = StringValue161
  3716. Animation162.AnimationId = "http://www.roblox.com/asset/?id=178130996"
  3717. StringValue163.Name = "toolnone"
  3718. StringValue163.Parent = Script147
  3719. Animation164.Name = "ToolNoneAnim"
  3720. Animation164.Parent = StringValue163
  3721. Animation164.AnimationId = "rbxassetid://0"
  3722. StringValue165.Name = "walk"
  3723. StringValue165.Parent = Script147
  3724. Animation166.Name = "WalkAnim"
  3725. Animation166.Parent = StringValue165
  3726. Animation166.AnimationId = "http://www.roblox.com/asset/?id=180426354"
  3727. Script167.Name = "Credits (ReadMe)"
  3728. Script167.Parent = Model0
  3729. table.insert(cors,sandbox(Script167,function()
  3730. --[[
  3731. CREDITs
  3732.  
  3733. Thanks RVVZ for original base rake model :)
  3734. Model insired by RVVZ
  3735. Animation Scripted by ROBLOX (I'm not sure who is scripted this lol)
  3736. MainScript Scriped by Brutez script fixed by XcorrectTheDev
  3737. Respawn Scriped by Brutez Script Fixed By XcorrectTheDev
  3738. qPerfectionWeld Scripted by Quenty
  3739. Other scripts Scriped by XcorrectTheDev
  3740.  
  3741.  
  3742. ]]
  3743.  
  3744. end))
  3745. Script167.Disabled = true
  3746. Script168.Name = "Respawn"
  3747. Script168.Parent = Model0
  3748. table.insert(cors,sandbox(Script168,function()
  3749. --[[ Script By: Brutez. Script Fixed By XcorrectTheDev ]]--
  3750.  
  3751. local PlayerSpawning=false; -- Change this to true if you want the NPC to spawn like a player, and change this to false if you want the NPC to spawn at it's current position.
  3752. local AdvancedRespawnScript=script;
  3753. repeat wait(0.1) until script and script.Parent and script.Parent.ClassName=="Model";
  3754. local JeffTheKiller=AdvancedRespawnScript.Parent;
  3755. local GameDerbis=game:GetService("Debris");
  3756. local JeffTheKillerHumanoid;
  3757. for _,Child in pairs(JeffTheKiller:GetChildren())do
  3758. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  3759. JeffTheKillerHumanoid=Child;
  3760. end;
  3761. end;
  3762. local Respawndant=JeffTheKiller:Clone();
  3763. if PlayerSpawning then -- LOOK AT LINE: 2.
  3764. coroutine.resume(coroutine.create(function()
  3765. if JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid:FindFirstChild("Status")and not JeffTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns")then
  3766. SpawnModel=Instance.new("Model");
  3767. SpawnModel.Parent=JeffTheKillerHumanoid.Status;
  3768. SpawnModel.Name="AvalibleSpawns";
  3769. else
  3770. SpawnModel=JeffTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns");
  3771. end;
  3772. function FindSpawn(SearchValue)
  3773. local PartsArchivable=SearchValue:GetChildren();
  3774. for AreaSearch=1,#PartsArchivable do
  3775. if PartsArchivable[AreaSearch].className=="SpawnLocation"then
  3776. local PositionValue=Instance.new("Vector3Value",SpawnModel);
  3777. PositionValue.Value=PartsArchivable[AreaSearch].Position;
  3778. PositionValue.Name=PartsArchivable[AreaSearch].Duration;
  3779. end;
  3780. FindSpawn(PartsArchivable[AreaSearch]);
  3781. end;
  3782. end;
  3783. FindSpawn(game:GetService("Workspace"));
  3784. local SpawnChilden=SpawnModel:GetChildren();
  3785. if#SpawnChilden>0 then
  3786. local SpawnItself=SpawnChilden[math.random(1,#SpawnChilden)];
  3787. local RespawningForceField=Instance.new("ForceField");
  3788. RespawningForceField.Parent=JeffTheKiller;
  3789. RespawningForceField.Name="SpawnForceField";
  3790. GameDerbis:AddItem(RespawningForceField,SpawnItself.Name);
  3791. JeffTheKiller:MoveTo(SpawnItself.Value+Vector3.new(0,3.5,0));
  3792. else
  3793. if JeffTheKiller:FindFirstChild("SpawnForceField")then
  3794. JeffTheKiller:FindFirstChild("SpawnForceField"):Destroy();
  3795. end;
  3796. JeffTheKiller:MoveTo(Vector3.new(0,115,0));
  3797. end;
  3798. end));
  3799. end;
  3800. function Respawn()
  3801. wait(10);
  3802. Respawndant.Parent=JeffTheKiller.Parent;
  3803. Respawndant:makeJoints();
  3804. Respawndant:FindFirstChild("Head"):MakeJoints();
  3805. Respawndant:FindFirstChild("Torso"):MakeJoints();
  3806. JeffTheKiller:remove();
  3807. end;
  3808. if AdvancedRespawnScript and JeffTheKiller and JeffTheKillerHumanoid then
  3809. JeffTheKillerHumanoid.Died:Connect(Respawn);
  3810. end;
  3811. end))
  3812. Script169.Name = "Stun"
  3813. Script169.Parent = Model0
  3814. table.insert(cors,sandbox(Script169,function()
  3815. -- Script by XcorrectTheDev
  3816.  
  3817. local AlreadyStun = false
  3818.  
  3819. while wait(0.1) do
  3820. if AlreadyStun then
  3821. script.Parent.NPC.WalkSpeed = 0
  3822. end
  3823. if script.Parent.NPC.Health < 1940 and not AlreadyStun then
  3824. AlreadyStun = true
  3825. script.Parent.MainScript.Disabled = true
  3826. script.Parent.NPC.PlatformStand = true
  3827. script.Parent.Head.Static:Stop()
  3828. wait(0.5)
  3829. local RandomSound = math.random(1,3)
  3830. if RandomSound == 1 then
  3831. script.Parent.Head.RakeHurt:Play()
  3832. end
  3833. if RandomSound == 2 then
  3834. script.Parent.Head.RakeHurt2:Play()
  3835. end
  3836. if RandomSound == 3 then
  3837. script.Parent.Head.RakeHurt3:Play()
  3838. end
  3839. script.Parent:FindFirstChild("Torso"):FindFirstChild("Neck").C0=CFrame.new(0,1,0,-1,0,0,0,0,1,0,1,-0)
  3840. script.GetStuns.Value = script.GetStuns.Value + 1
  3841. script.Parent.Torso.Swing:Stop()
  3842. script.Parent.Torso.HitBox.DamageScript.Disabled = true
  3843. script.Parent.Head.RakeTheme:Stop()
  3844. script.Parent.NPC.WalkSpeed = 0
  3845. wait(script.Parent.Configuration.StunTime.Value)
  3846. print("The rake stun ".. script.GetStuns.Value.. " Times")
  3847. script.Parent.NPC.PlatformStand = false
  3848. script.Parent.Torso.Swing:Stop()
  3849. script.Parent.Torso.HitBox.DamageScript.Disabled = false
  3850. script.Parent.NPC.Health = 2000
  3851. script.Parent.NPC.WalkSpeed = script.Parent.Configuration.WalkSpeed.Value
  3852. script.Parent.MainScript.Disabled = false
  3853. if script.Parent.Configuration.StaticSoundVolume > 0 then
  3854. script.Parent.Head.Static:Play()
  3855. end
  3856. wait(script.Parent.Configuration.StunReload.Value)
  3857. AlreadyStun = false
  3858. end
  3859. end
  3860. end))
  3861. IntValue170.Name = "GetStuns"
  3862. IntValue170.Parent = Script169
  3863. Script171.Name = "Wander"
  3864. Script171.Parent = Model0
  3865. table.insert(cors,sandbox(Script171,function()
  3866. -- Script by XcorrectTheDev
  3867.  
  3868. while true do
  3869. script.Parent.NPC:MoveTo(Vector3.new(math.random(-820, 840),
  3870. 0, math.random(-820, 840)), game.Workspace.Terrain)
  3871. for i= 1,10 do
  3872. wait(0.5)
  3873. script.Parent.Head.RakeStep:Play()
  3874. end
  3875. wait(5)
  3876. end
  3877. end))
  3878. Script171.Disabled = true
  3879. LocalScript172.Name = "RakeTheme (ReadMe)"
  3880. LocalScript172.Parent = Model0
  3881. table.insert(cors,sandbox(LocalScript172,function()
  3882. --[[ Script by XcorrectTheDev
  3883. Put this script in StarterGui (Don't ungroup the gui)
  3884. This script will make screen shake when you near the rake ]]
  3885.  
  3886. repeat
  3887. script.RakeTheme.Parent = script.Parent
  3888. until
  3889. script.Parent:FindFirstChild("RakeTheme")
  3890. script.Parent:FindFirstChild("RakeTheme").Main.Disabled = false
  3891. wait(1)
  3892. script:Destroy()
  3893. end))
  3894. ScreenGui173.Name = "RakeTheme"
  3895. ScreenGui173.Parent = LocalScript172
  3896. ScreenGui173.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  3897. Frame174.Name = "FlashEffect"
  3898. Frame174.Parent = ScreenGui173
  3899. Frame174.Size = UDim2.new(1, 0, 1, 0)
  3900. Frame174.BackgroundColor = BrickColor.new("Institutional white")
  3901. Frame174.BackgroundColor3 = Color3.new(1, 1, 1)
  3902. Frame174.BackgroundTransparency = 1
  3903. Frame174.BorderSizePixel = 0
  3904. LocalScript175.Name = "Main"
  3905. LocalScript175.Parent = ScreenGui173
  3906. table.insert(cors,sandbox(LocalScript175,function()
  3907. -- Script by XcorrectTheDev
  3908.  
  3909. local Character = game.Players.LocalPlayer.Character
  3910. local RakeTheme = script.Parent.Theme
  3911. local NearTheme = script.Parent.GetNear
  3912. local Found = script.Parent.Found
  3913. local FlashEffect = script.Parent.FlashEffect
  3914. local ScreenShake = script.Parent.ScreenShake
  3915. local NightTheme = script.Parent.NightTheme
  3916. local Rake = workspace.The_Rake.HumanoidRootPart
  3917. local Camera = workspace.Camera
  3918. local Debounce1 = false
  3919. local Debounce2 = false
  3920.  
  3921. NightTheme:Play()
  3922.  
  3923. -- Better don't change anything. This script is WIP v.0.2
  3924. -- This screen gui doesn't work if your game has day and night loop
  3925.  
  3926. game:GetService("RunService").RenderStepped:Connect(function()
  3927. if (Rake.Position - Character.HumanoidRootPart.Position).magnitude<70 and Debounce1 == false then
  3928. Debounce1 = true
  3929. NightTheme:Pause()
  3930. Found:Play()
  3931. FlashEffect.BackgroundTransparency = 0.6
  3932. wait(0.4)
  3933. ScreenShake.Disabled = false
  3934. FlashEffect.BackgroundTransparency = 1
  3935. RakeTheme:Play()
  3936. end
  3937. if (Rake.Position - Character.HumanoidRootPart.Position).magnitude>70 and Debounce1 == true then
  3938. Debounce1 = false
  3939. NightTheme:Play()
  3940. ScreenShake.Disabled = true
  3941. FlashEffect.BackgroundTransparency = 1
  3942. RakeTheme:Stop()
  3943. end
  3944. end)
  3945.  
  3946. end))
  3947. LocalScript175.Disabled = true
  3948. LocalScript176.Name = "ScreenShake"
  3949. LocalScript176.Parent = ScreenGui173
  3950. table.insert(cors,sandbox(LocalScript176,function()
  3951. -- Script by XcorrectTheDev
  3952.  
  3953. local Theme = script.Parent.Theme
  3954. local FlashEffect = script.Parent.FlashEffect
  3955. local Camera = workspace.Camera
  3956. local ScreenZoomAmount = 0.025 -- How much screen zoom when music is playing
  3957. local FlashAmount = 0.001 -- How much screen flash when music is playing
  3958. local ScreenAngelsAmount = 0.003 -- How much screen angles change when music is playing
  3959. local StandardFieldOfView = 70 -- Standard FieldOfView on roblox better set it to 70
  3960.  
  3961. game:GetService("RunService").RenderStepped:Connect(function()
  3962. Camera.FieldOfView = StandardFieldOfView - Theme.PlaybackLoudness * ScreenZoomAmount
  3963. FlashEffect.BackgroundTransparency = 1 - Theme.PlaybackLoudness * FlashAmount
  3964. Camera.CFrame = workspace.Camera.CFrame * CFrame.Angles(0,
  3965. 0, math.rad(math.random(- Theme.PlaybackLoudness,
  3966. Theme.PlaybackLoudness) * ScreenAngelsAmount)) + Vector3.new(
  3967. math.rad(math.random( - Theme.PlaybackLoudness * ScreenAngelsAmount,
  3968. Theme.PlaybackLoudness * ScreenAngelsAmount) * ScreenAngelsAmount ),
  3969. math.rad(math.random( - Theme.PlaybackLoudness * ScreenAngelsAmount,
  3970. Theme.PlaybackLoudness * ScreenAngelsAmount) * ScreenAngelsAmount ),
  3971. math.rad(math.random( - Theme.PlaybackLoudness * ScreenAngelsAmount,
  3972. Theme.PlaybackLoudness * ScreenAngelsAmount) * ScreenAngelsAmount )
  3973. )
  3974. end)
  3975.  
  3976. end))
  3977. LocalScript176.Disabled = true
  3978. Sound177.Name = "Theme"
  3979. Sound177.Parent = ScreenGui173
  3980. Sound177.Looped = true
  3981. Sound177.SoundId = "rbxassetid://2593956530"
  3982. Sound177.Volume = 2
  3983. Sound178.Name = "Found"
  3984. Sound178.Parent = ScreenGui173
  3985. Sound178.MaxDistance = 80
  3986. Sound178.SoundId = "rbxassetid://380102473"
  3987. Sound178.Volume = 5
  3988. Sound179.Name = "GetNear"
  3989. Sound179.Parent = ScreenGui173
  3990. Sound179.Looped = true
  3991. Sound179.MaxDistance = 90
  3992. Sound179.Pitch = 1.2000000476837
  3993. Sound179.PlaybackSpeed = 1.2000000476837
  3994. Sound179.SoundId = "rbxassetid://468911141"
  3995. Sound179.Volume = 0
  3996. Sound180.Name = "NightTheme"
  3997. Sound180.Parent = ScreenGui173
  3998. Sound180.Looped = true
  3999. Sound180.SoundId = "rbxassetid://1501996092"
  4000. Sound180.Volume = 0.80000001192093
  4001. Script181.Name = "MainScript"
  4002. Script181.Parent = Model0
  4003. table.insert(cors,sandbox(Script181,function()
  4004. --[[ Script By: Brutez. Script Fixed By XcorrectTheDev ]]--
  4005.  
  4006. local JeffTheKillerScript=script;
  4007. repeat wait(0.1)until JeffTheKillerScript and JeffTheKillerScript.Parent and JeffTheKillerScript.Parent.ClassName=="Model"and JeffTheKillerScript.Parent:FindFirstChild("Head")and JeffTheKillerScript.Parent:FindFirstChild("Torso");
  4008. local JeffTheKiller=JeffTheKillerScript.Parent;
  4009. function raycast(Spos,vec,currentdist)
  4010. local hit2,pos2=game.Workspace:FindPartOnRay(Ray.new(Spos+(vec*.05),vec*currentdist),JeffTheKiller);
  4011. if hit2~=nil and pos2 then
  4012. if hit2.Name=="Handle" and not hit2.CanCollide or string.sub(hit2.Name,1,6)=="Effect"and not hit2.CanCollide then
  4013. local currentdist=currentdist-(pos2-Spos).magnitude;
  4014. return raycast(pos2,vec,currentdist);
  4015. end;
  4016. end;
  4017. return hit2,pos2;
  4018. end;
  4019. function RayCast(Position,Direction,MaxDistance,IgnoreList)
  4020. return game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(Position,Direction.unit*(MaxDistance or 999.999)),IgnoreList);
  4021. end;
  4022. local JeffTheKillerHumanoid;
  4023. for _,Child in pairs(JeffTheKiller:GetChildren())do
  4024. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  4025. JeffTheKillerHumanoid=Child;
  4026. end;
  4027. end;
  4028. local AttackDebounce=false;
  4029. local JeffTheKillerKnife=JeffTheKiller:FindFirstChild("Torso");
  4030. local JeffTheKillerHead=JeffTheKiller:FindFirstChild("Head");
  4031. local JeffTheKillerHumanoidRootPart=JeffTheKiller:FindFirstChild("HumanoidRootPart");
  4032. local WalkDebounce=false;
  4033. local Notice=false;
  4034. local JeffLaughDebounce=false;
  4035. local MusicDebounce=false;
  4036. local NoticeDebounce=false;
  4037. local ChosenMusic;
  4038. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=CFrame.new(0,1,0,-1,0,0,0,0,1,0,1,-0);
  4039. local OriginalC0=JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0;
  4040. function FindNearestBae()
  4041. local NoticeDistance=70000000000000000000000000;
  4042. local TargetMain;
  4043. for _,TargetModel in pairs(game:GetService("Workspace"):GetChildren())do
  4044. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and TargetModel.className=="Model"and TargetModel~=JeffTheKiller and TargetModel.Name~=JeffTheKiller.Name and TargetModel:FindFirstChild("HumanoidRootPart")and TargetModel:FindFirstChild("Head")then
  4045. local TargetPart=TargetModel:FindFirstChild("HumanoidRootPart");
  4046. local FoundHumanoid;
  4047. for _,Child in pairs(TargetModel:GetChildren())do
  4048. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  4049. FoundHumanoid=Child;
  4050. end;
  4051. end;
  4052. if TargetModel and TargetPart and FoundHumanoid and FoundHumanoid.Health~=0 and(TargetPart.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<NoticeDistance then
  4053. TargetMain=TargetPart;
  4054. NoticeDistance=(TargetPart.Position-JeffTheKillerHumanoidRootPart.Position).magnitude;
  4055. local hit,pos=raycast(JeffTheKillerHumanoidRootPart.Position,(TargetPart.Position-JeffTheKillerHumanoidRootPart.Position).unit,500);
  4056. if hit and hit.Parent and hit.Parent.ClassName=="Model"and hit.Parent:FindFirstChild("Head")and hit.Parent:FindFirstChildOfClass("Humanoid") then
  4057. if TargetModel and TargetPart and FoundHumanoid and FoundHumanoid.Health~=0 and(TargetPart.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<8 and not AttackDebounce then
  4058. spawn(function()
  4059. AttackDebounce=true;
  4060. local SwingAnimation=JeffTheKillerHumanoid:LoadAnimation(JeffTheKiller:FindFirstChild("Swing"));
  4061. local SwingChoice=math.random(1,2);
  4062. local HitChoice=math.random(1,3);
  4063. SwingAnimation:Play();
  4064. SwingAnimation:AdjustSpeed(2+(math.random()*0.2));
  4065. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerKnife and JeffTheKillerKnife:FindFirstChild("Swing")then
  4066. local SwingSound=JeffTheKillerKnife:FindFirstChild("Swing");
  4067. SwingSound.Pitch=1+(math.random()*0.04);
  4068. SwingSound:Play();
  4069. end;
  4070. wait(1.2);
  4071. AttackDebounce=false;
  4072. end);
  4073. end;
  4074. end;
  4075. end;
  4076. end;
  4077. end;
  4078. return TargetMain;
  4079. end;
  4080. while wait(0.1)do
  4081. local TargetPoint=JeffTheKillerHumanoid.TargetPoint;
  4082. local Blockage,BlockagePos=RayCast((JeffTheKillerHumanoidRootPart.CFrame+CFrame.new(JeffTheKillerHumanoidRootPart.Position,Vector3.new(TargetPoint.X,JeffTheKillerHumanoidRootPart.Position.Y,TargetPoint.Z)).lookVector*(JeffTheKillerHumanoidRootPart.Size.Z/2)).p,JeffTheKillerHumanoidRootPart.CFrame.lookVector,(JeffTheKillerHumanoidRootPart.Size.Z*2.5),{JeffTheKiller,JeffTheKiller})
  4083. local Jumpable=false;
  4084. if Blockage then
  4085. wait(0.5)
  4086. Jumpable=true;
  4087. if Blockage and Blockage.Parent and Blockage.Parent.ClassName~="Workspace"then
  4088. local BlockageHumanoid;
  4089. for _,Child in pairs(Blockage.Parent:GetChildren())do
  4090. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  4091. BlockageHumanoid=Child;
  4092. Jumpable=false;
  4093. end;
  4094. end;
  4095. if Blockage and Blockage:IsA("Terrain")then
  4096. local CellPos=Blockage:WorldToCellPreferSolid((BlockagePos-Vector3.new(0,2,0)));
  4097. local CellMaterial,CellShape,CellOrientation=Blockage:GetCell(CellPos.X,CellPos.Y,CellPos.Z);
  4098. if CellMaterial==Enum.CellMaterial.Water then
  4099. Jumpable=false;
  4100. end;
  4101. elseif BlockageHumanoid or Blockage.ClassName=="TrussPart"or Blockage.ClassName=="WedgePart"or Blockage.Name=="Handle"and Blockage.Parent.ClassName=="Hat"or Blockage.Name=="Handle"and Blockage.Parent.ClassName=="Tool" or Blockage.Parent.Name=="Humanoid" and Blockage.Parent.Name=="HumanoidRootPart" and Blockage.Parent.ClassName=="Humanoid" then
  4102. Jumpable=false;
  4103. end;
  4104. end;
  4105. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and not JeffTheKillerHumanoid.Sit and Jumpable then
  4106. JeffTheKillerHumanoid.Jump=true;
  4107. end;
  4108. end;
  4109. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHumanoidRootPart and JeffTheKillerHead:FindFirstChild("RakeStep")and (JeffTheKillerHumanoidRootPart.Velocity-Vector3.new(0,JeffTheKillerHumanoidRootPart.Velocity.y,0)).magnitude>=5 and not WalkDebounce and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 then
  4110. spawn(function()
  4111. WalkDebounce=true;
  4112. local FiredRay=Ray.new(JeffTheKillerHumanoidRootPart.Position,Vector3.new(0,-4,0));
  4113. local RayTarget,endPoint=game:GetService("Workspace"):FindPartOnRay(FiredRay,JeffTheKiller);
  4114. if RayTarget then
  4115. local JeffTheKillerHeadFootStepClone=JeffTheKillerHead:FindFirstChild("RakeStep"):Clone();
  4116. JeffTheKillerHeadFootStepClone.Parent=JeffTheKillerHead;
  4117. JeffTheKillerHeadFootStepClone:Play();
  4118. JeffTheKillerHeadFootStepClone:Destroy();
  4119. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and JeffTheKillerHumanoid.WalkSpeed<170 then
  4120. wait(0.4);
  4121. elseif JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and JeffTheKillerHumanoid.WalkSpeed>170 then
  4122. wait(0.15);
  4123. end
  4124. end;
  4125. WalkDebounce=false;
  4126. end);
  4127. end;
  4128. local MainTarget=FindNearestBae();
  4129. local FoundHumanoid;
  4130. if MainTarget then
  4131. for _,Child in pairs(MainTarget.Parent:GetChildren())do
  4132. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  4133. FoundHumanoid=Child;
  4134. end;
  4135. end;
  4136. end;
  4137. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<99999999999999999999 then
  4138. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("RakeTheme")and not JeffTheKillerHead:FindFirstChild("RakeTheme").IsPlaying then
  4139. JeffTheKillerHead:FindFirstChild("RakeTheme").Volume=JeffTheKiller:FindFirstChild("Configuration"):FindFirstChild("RakeThemeVolume").Value;
  4140. JeffTheKillerHead:FindFirstChild("RakeTheme"):Play();
  4141. end;
  4142. elseif JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude>9999999999999999999 then
  4143. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("RakeTheme")and JeffTheKillerHead:FindFirstChild("RakeTheme").IsPlaying then
  4144. if not JeffLaughDebounce then
  4145. spawn(function()
  4146. JeffLaughDebounce=true;
  4147. repeat wait(0.1);if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("RakeTheme")then JeffTheKillerHead:FindFirstChild("RakeTheme").Volume=JeffTheKillerHead:FindFirstChild("RakeTheme").Volume-0.1;else break;end;until JeffTheKillerHead:FindFirstChild("RakeTheme").Volume==0 or JeffTheKillerHead:FindFirstChild("RakeTheme").Volume<0;
  4148. JeffTheKillerHead:FindFirstChild("RakeTheme").Volume=0;
  4149. JeffTheKillerHead:FindFirstChild("RakeTheme"):Stop();
  4150. JeffLaughDebounce=false;
  4151. end);
  4152. end;
  4153. end;
  4154. end;
  4155. if not ChosenMusic and JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<50 then
  4156. local MusicChoice=math.random(1,2);
  4157. if MusicChoice==1 and JeffTheKillerScript and JeffTheKiller and JeffTheKiller:FindFirstChild("Jeff_Scene_Sound1")then
  4158. ChosenMusic=JeffTheKiller:FindFirstChild("Jeff_Scene_Sound1");
  4159. elseif MusicChoice==2 and JeffTheKillerScript and JeffTheKiller and JeffTheKiller:FindFirstChild("Jeff_Scene_Sound2")then
  4160. ChosenMusic=JeffTheKiller:FindFirstChild("Jeff_Scene_Sound2");
  4161. end;
  4162. if JeffTheKillerScript and JeffTheKiller and ChosenMusic and not ChosenMusic.IsPlaying then
  4163. ChosenMusic.Volume=0;
  4164. ChosenMusic:Play();
  4165. end;
  4166. elseif JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude>50 then
  4167. if JeffTheKillerScript and JeffTheKiller and ChosenMusic and ChosenMusic.IsPlaying then
  4168. if not MusicDebounce then
  4169. spawn(function()
  4170. MusicDebounce=true;
  4171. repeat wait(0.1);if JeffTheKillerScript and JeffTheKiller and ChosenMusic then ChosenMusic.Volume=ChosenMusic.Volume-0.01;else break;end;until ChosenMusic.Volume==0 or ChosenMusic.Volume<0;
  4172. if ChosenMusic then
  4173. ChosenMusic.Volume=0;
  4174. ChosenMusic:Stop();
  4175. end;
  4176. ChosenMusic=nil;
  4177. MusicDebounce=false;
  4178. end);
  4179. end;
  4180. end;
  4181. end;
  4182. if not MainTarget and not JeffLaughDebounce then
  4183. spawn(function()
  4184. JeffLaughDebounce=true;
  4185. repeat wait(0.1);if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("RakeTheme")then JeffTheKillerHead:FindFirstChild("RakeTheme").Volume=JeffTheKillerHead:FindFirstChild("RakeTheme").Volume-0.1;else break;end;until JeffTheKillerHead:FindFirstChild("RakeTheme").Volume==0 or JeffTheKillerHead:FindFirstChild("RakeTheme").Volume<0;
  4186. JeffTheKillerHead:FindFirstChild("RakeTheme").Volume=0;
  4187. JeffTheKillerHead:FindFirstChild("RakeTheme"):Stop();
  4188. JeffLaughDebounce=false;
  4189. end);
  4190. end;
  4191. if not MainTarget and not MusicDebounce then
  4192. spawn(function()
  4193. MusicDebounce=true;
  4194. repeat wait(0.1);if JeffTheKillerScript and JeffTheKiller and ChosenMusic then ChosenMusic.Volume=ChosenMusic.Volume-0.01;else break;end;until ChosenMusic.Volume==0 or ChosenMusic.Volume<0;
  4195. if ChosenMusic then
  4196. ChosenMusic.Volume=0;
  4197. ChosenMusic:Stop();
  4198. end;
  4199. ChosenMusic=nil;
  4200. MusicDebounce=false;
  4201. end);
  4202. end;
  4203. if MainTarget then
  4204. Notice=true;
  4205. if Notice and not NoticeDebounce and JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("Found")then
  4206. JeffTheKiller.Target.Value = true;
  4207. JeffTheKillerHead:FindFirstChild("Found").Volume=JeffTheKiller:FindFirstChild("Configuration"):FindFirstChild("FoundVolume").Value;
  4208. JeffTheKillerHead:FindFirstChild("Found"):Play();
  4209. wait(0.4);
  4210. JeffTheKillerHead:FindFirstChild("RakeScream"):Play();
  4211. NoticeDebounce=true;
  4212. end;
  4213. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 then
  4214. if MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude>5 then
  4215. JeffTheKillerHumanoid.WalkSpeed=JeffTheKiller:FindFirstChild("Configuration"):FindFirstChild("RunSpeed").Value;
  4216. elseif MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<5 then
  4217. JeffTheKillerHumanoid.WalkSpeed=2;
  4218. end;
  4219. JeffTheKillerHumanoid:MoveTo(MainTarget.Position+(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).unit*2,game:GetService("Workspace"):FindFirstChild("Terrain"));
  4220. local NeckRotation=(JeffTheKiller:FindFirstChild("Torso").Position.Y-MainTarget.Parent:FindFirstChild("Head").Position.Y)/10;
  4221. if NeckRotation>-1.5 and NeckRotation<1.5 then
  4222. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=OriginalC0*CFrame.fromEulerAnglesXYZ(NeckRotation,0,0);
  4223. end;
  4224. if NeckRotation<-1.5 then
  4225. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=CFrame.new(0,1,0,-1,0,0,0,-0.4,0.1,0,0.1,0.9);
  4226. elseif NeckRotation>1.5 then
  4227. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=CFrame.new(0,1,0,-1,0,0,0,0.1,0.08,0,0.08,-0.2);
  4228. end;
  4229. else
  4230. end;
  4231. else
  4232. Notice=false;
  4233. NoticeDebounce=false;
  4234. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=CFrame.new(0,1,0,-1,0,0,0,0,1,0,1,-0);
  4235. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 then
  4236. JeffTheKillerHumanoid.WalkSpeed=JeffTheKiller:FindFirstChild("Configuration"):FindFirstChild("WalkSpeed").Value;
  4237. JeffTheKiller.Target.Value=false;
  4238. end;
  4239. end;
  4240. spawn(function()
  4241. local AlreadyDo=false;
  4242. while wait(0.1) do
  4243. if JeffTheKiller.Target.Value==false and AlreadyDo==false then
  4244. JeffTheKillerHead.Mouth.Transparency=1;
  4245. JeffTheKillerHead.Mouth2.Transparency=0;
  4246. JeffTheKillerHead.Mouth2.MouthDecal.Transparency=0;
  4247. JeffTheKiller.Wander.Disabled=false;
  4248. AlreadyDo=true;
  4249. wait(5);
  4250. AlreadyDo=false;
  4251. end;
  4252. if JeffTheKiller.Target.Value==true and AlreadyDo==false then
  4253. JeffTheKillerHead.Mouth.Transparency=0;
  4254. JeffTheKillerHead.Mouth2.Transparency=1;
  4255. JeffTheKillerHead.Mouth2.MouthDecal.Transparency=1;
  4256. JeffTheKiller.Wander.Disabled=true;
  4257. AlreadyDo=true;
  4258. wait(5);
  4259. AlreadyDo=false;
  4260. end;
  4261. end;
  4262. end);
  4263. spawn(function()
  4264. while JeffTheKillerHumanoid.Health > 1 do
  4265. wait(1);
  4266. JeffTheKiller:FindFirstChild("Torso").Blood.Enabled = false;
  4267. JeffTheKiller:FindFirstChild("Torso").Blood2.Enabled = false;
  4268. JeffTheKillerHead.Eye1.BrickColor=BrickColor.new("Institutional white");
  4269. JeffTheKillerHead.Eye2.BrickColor=BrickColor.new("Institutional white");
  4270. end;
  4271. end);
  4272. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid then
  4273. JeffTheKillerHumanoid.DisplayDistanceType="None";
  4274. JeffTheKillerHumanoid.HealthDisplayDistance=0;
  4275. JeffTheKillerHumanoid.Name="NPC";
  4276. JeffTheKillerHumanoid.NameDisplayDistance=0;
  4277. JeffTheKillerHumanoid.NameOcclusion="EnemyOcclusion";
  4278. JeffTheKillerHumanoid.AutoJumpEnabled=true;
  4279. JeffTheKillerHumanoid.AutoRotate=true;
  4280. JeffTheKillerHumanoid.MaxHealth=2000;
  4281. JeffTheKillerHumanoid.JumpPower=80;
  4282. JeffTheKillerHumanoid.MaxSlopeAngle=89.9;
  4283. end;
  4284. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and not JeffTheKillerHumanoid.AutoJumpEnabled then
  4285. JeffTheKillerHumanoid.AutoJumpEnabled=true;
  4286. end;
  4287. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and not JeffTheKillerHumanoid.AutoRotate then
  4288. JeffTheKillerHumanoid.AutoRotate=true;
  4289. end;
  4290. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.PlatformStand then
  4291. JeffTheKillerHumanoid.PlatformStand=false;
  4292. end;
  4293. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Sit then
  4294. JeffTheKillerHumanoid.Sit=false;
  4295. end;
  4296. end;
  4297. end))
  4298. for i,v in pairs(mas:GetChildren()) do
  4299. v.Parent = workspace
  4300. pcall(function() v:MakeJoints() end)
  4301. end
  4302. mas:Destroy()
  4303. for i,v in pairs(cors) do
  4304. spawn(function()
  4305. pcall(v)
  4306. end)
  4307. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement