Advertisement
lafur

Untitled

May 27th, 2020
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 56.43 KB | None | 0 0
  1. -- Converted using Mokiros's Model to Script plugin
  2. -- Converted string size: 5366
  3. local genv={}
  4. local Scripts = {
  5. function() -- Created by Quenty (@Quenty, follow me on twitter).
  6. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  7. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  8.  
  9. --[[ INSTRUCTIONS
  10. - Place in the model
  11. - Make sure model is anchored
  12. - That's it. It will weld the model and all children.
  13.  
  14. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  15. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  16. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  17. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  18. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  19. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  20. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  21. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  22.  
  23. 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.
  24. ]]
  25.  
  26. --[[ DOCUMENTATION
  27. - 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.
  28. - Will work in PBS servers
  29. - Will work as long as it starts out with the part anchored
  30. - Stores the relative CFrame as a CFrame value
  31. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  32. - Utilizes a recursive algorith to find all parts in the model
  33. - Will reweld on script reparent if the script is initially parented to a tool.
  34. - Welds as fast as possible
  35. ]]
  36.  
  37. -- qPerfectionWeld.lua
  38. -- Created 10/6/2014
  39. -- Author: Quenty
  40. -- Version 1.0.3
  41.  
  42. -- Updated 10/14/2014 - Updated to 1.0.1
  43. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  44.  
  45. -- Updated 10/14/2014 - Updated to 1.0.2
  46. --- Fixed bug fix.
  47.  
  48. -- Updated 10/14/2014 - Updated to 1.0.3
  49. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  50.  
  51. 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).
  52.  
  53.  
  54. local function CallOnChildren(Instance, FunctionToCall)
  55. -- Calls a function on each of the children of a certain object, using recursion.
  56.  
  57. FunctionToCall(Instance)
  58.  
  59. for _, Child in next, Instance:GetChildren() do
  60. CallOnChildren(Child, FunctionToCall)
  61. end
  62. end
  63.  
  64. local function GetNearestParent(Instance, ClassName)
  65. -- Returns the nearest parent of a certain class, or returns nil
  66.  
  67. local Ancestor = Instance
  68. repeat
  69. Ancestor = Ancestor.Parent
  70. if Ancestor == nil then
  71. return nil
  72. end
  73. until Ancestor:IsA(ClassName)
  74.  
  75. return Ancestor
  76. end
  77.  
  78. local function GetBricks(StartInstance)
  79. local List = {}
  80.  
  81. -- if StartInstance:IsA("BasePart") then
  82. -- List[#List+1] = StartInstance
  83. -- end
  84.  
  85. CallOnChildren(StartInstance, function(Item)
  86. if Item:IsA("BasePart") then
  87. List[#List+1] = Item;
  88. end
  89. end)
  90.  
  91. return List
  92. end
  93.  
  94. local function Modify(Instance, Values)
  95. -- Modifies an Instance by using a table.
  96.  
  97. assert(type(Values) == "table", "Values is not a table");
  98.  
  99. for Index, Value in next, Values do
  100. if type(Index) == "number" then
  101. Value.Parent = Instance
  102. else
  103. Instance[Index] = Value
  104. end
  105. end
  106. return Instance
  107. end
  108.  
  109. local function Make(ClassType, Properties)
  110. -- Using a syntax hack to create a nice way to Make new items.
  111.  
  112. return Modify(Instance.new(ClassType), Properties)
  113. end
  114.  
  115. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  116. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  117.  
  118. local function HasWheelJoint(Part)
  119. for _, SurfaceName in pairs(Surfaces) do
  120. for _, HingSurfaceName in pairs(HingSurfaces) do
  121. if Part[SurfaceName].Name == HingSurfaceName then
  122. return true
  123. end
  124. end
  125. end
  126.  
  127. return false
  128. end
  129.  
  130. local function ShouldBreakJoints(Part)
  131. --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  132. -- definitely some edge cases.
  133.  
  134. if NEVER_BREAK_JOINTS then
  135. return false
  136. end
  137.  
  138. if HasWheelJoint(Part) then
  139. return false
  140. end
  141.  
  142. local Connected = Part:GetConnectedParts()
  143.  
  144. if #Connected == 1 then
  145. return false
  146. end
  147.  
  148. for _, Item in pairs(Connected) do
  149. if HasWheelJoint(Item) then
  150. return false
  151. elseif not Item:IsDescendantOf(script.Parent) then
  152. return false
  153. end
  154. end
  155.  
  156. return true
  157. end
  158.  
  159. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  160. --- Weld's 2 parts together
  161. -- @param Part0 The first part
  162. -- @param Part1 The second part (Dependent part most of the time).
  163. -- @param [JointType] The type of joint. Defaults to weld.
  164. -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  165. -- @return The weld created.
  166.  
  167. JointType = JointType or "Weld"
  168. local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  169.  
  170. local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  171. Modify(NewWeld, {
  172. Name = "qCFrameWeldThingy";
  173. Part0 = Part0;
  174. Part1 = Part1;
  175. C0 = CFrame.new();--Part0.CFrame:inverse();
  176. C1 = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  177. Parent = Part1;
  178. })
  179.  
  180. if not RelativeValue then
  181. RelativeValue = Make("CFrameValue", {
  182. Parent = Part1;
  183. Name = "qRelativeCFrameWeldValue";
  184. Archivable = true;
  185. Value = NewWeld.C1;
  186. })
  187. end
  188.  
  189. return NewWeld
  190. end
  191.  
  192. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  193. -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  194. -- @param MainPart The part to weld the model to (can be in the model).
  195. -- @param [JointType] The type of joint. Defaults to weld.
  196. -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  197.  
  198. for _, Part in pairs(Parts) do
  199. if ShouldBreakJoints(Part) then
  200. Part:BreakJoints()
  201. end
  202. end
  203.  
  204. for _, Part in pairs(Parts) do
  205. if Part ~= MainPart then
  206. WeldTogether(MainPart, Part, JointType, MainPart)
  207. end
  208. end
  209.  
  210. if not DoNotUnanchor then
  211. for _, Part in pairs(Parts) do
  212. Part.Anchored = false
  213. end
  214. MainPart.Anchored = false
  215. end
  216. end
  217.  
  218. local function PerfectionWeld()
  219. local Tool = GetNearestParent(script, "Tool")
  220.  
  221. local Parts = GetBricks(script.Parent)
  222. 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]
  223.  
  224. if PrimaryPart then
  225. WeldParts(Parts, PrimaryPart, "Weld", false)
  226. else
  227. warn("qWeld - Unable to weld part")
  228. end
  229.  
  230. return Tool
  231. end
  232.  
  233. local Tool = PerfectionWeld()
  234.  
  235.  
  236. if Tool and script.ClassName == "Script" then
  237. --- Don't bother with local scripts
  238.  
  239. script.Parent.AncestryChanged:connect(function()
  240. PerfectionWeld()
  241. end)
  242. end
  243.  
  244. -- Created by Quenty (@Quenty, follow me on twitter).
  245. end;
  246. function() -- Created by Quenty (@Quenty, follow me on twitter).
  247. -- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
  248. -- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
  249.  
  250. --[[ INSTRUCTIONS
  251. - Place in the model
  252. - Make sure model is anchored
  253. - That's it. It will weld the model and all children.
  254.  
  255. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  256. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  257. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  258. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  259. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  260. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  261. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  262. THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
  263.  
  264. 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.
  265. ]]
  266.  
  267. --[[ DOCUMENTATION
  268. - 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.
  269. - Will work in PBS servers
  270. - Will work as long as it starts out with the part anchored
  271. - Stores the relative CFrame as a CFrame value
  272. - Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
  273. - Utilizes a recursive algorith to find all parts in the model
  274. - Will reweld on script reparent if the script is initially parented to a tool.
  275. - Welds as fast as possible
  276. ]]
  277.  
  278. -- qPerfectionWeld.lua
  279. -- Created 10/6/2014
  280. -- Author: Quenty
  281. -- Version 1.0.3
  282.  
  283. -- Updated 10/14/2014 - Updated to 1.0.1
  284. --- Bug fix with existing ROBLOX welds ? Repro by asimo3089
  285.  
  286. -- Updated 10/14/2014 - Updated to 1.0.2
  287. --- Fixed bug fix.
  288.  
  289. -- Updated 10/14/2014 - Updated to 1.0.3
  290. --- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
  291.  
  292. 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).
  293.  
  294.  
  295. local function CallOnChildren(Instance, FunctionToCall)
  296. -- Calls a function on each of the children of a certain object, using recursion.
  297.  
  298. FunctionToCall(Instance)
  299.  
  300. for _, Child in next, Instance:GetChildren() do
  301. CallOnChildren(Child, FunctionToCall)
  302. end
  303. end
  304.  
  305. local function GetNearestParent(Instance, ClassName)
  306. -- Returns the nearest parent of a certain class, or returns nil
  307.  
  308. local Ancestor = Instance
  309. repeat
  310. Ancestor = Ancestor.Parent
  311. if Ancestor == nil then
  312. return nil
  313. end
  314. until Ancestor:IsA(ClassName)
  315.  
  316. return Ancestor
  317. end
  318.  
  319. local function GetBricks(StartInstance)
  320. local List = {}
  321.  
  322. -- if StartInstance:IsA("BasePart") then
  323. -- List[#List+1] = StartInstance
  324. -- end
  325.  
  326. CallOnChildren(StartInstance, function(Item)
  327. if Item:IsA("BasePart") then
  328. List[#List+1] = Item;
  329. end
  330. end)
  331.  
  332. return List
  333. end
  334.  
  335. local function Modify(Instance, Values)
  336. -- Modifies an Instance by using a table.
  337.  
  338. assert(type(Values) == "table", "Values is not a table");
  339.  
  340. for Index, Value in next, Values do
  341. if type(Index) == "number" then
  342. Value.Parent = Instance
  343. else
  344. Instance[Index] = Value
  345. end
  346. end
  347. return Instance
  348. end
  349.  
  350. local function Make(ClassType, Properties)
  351. -- Using a syntax hack to create a nice way to Make new items.
  352.  
  353. return Modify(Instance.new(ClassType), Properties)
  354. end
  355.  
  356. local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
  357. local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
  358.  
  359. local function HasWheelJoint(Part)
  360. for _, SurfaceName in pairs(Surfaces) do
  361. for _, HingSurfaceName in pairs(HingSurfaces) do
  362. if Part[SurfaceName].Name == HingSurfaceName then
  363. return true
  364. end
  365. end
  366. end
  367.  
  368. return false
  369. end
  370.  
  371. local function ShouldBreakJoints(Part)
  372. --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
  373. -- definitely some edge cases.
  374.  
  375. if NEVER_BREAK_JOINTS then
  376. return false
  377. end
  378.  
  379. if HasWheelJoint(Part) then
  380. return false
  381. end
  382.  
  383. local Connected = Part:GetConnectedParts()
  384.  
  385. if #Connected == 1 then
  386. return false
  387. end
  388.  
  389. for _, Item in pairs(Connected) do
  390. if HasWheelJoint(Item) then
  391. return false
  392. elseif not Item:IsDescendantOf(script.Parent) then
  393. return false
  394. end
  395. end
  396.  
  397. return true
  398. end
  399.  
  400. local function WeldTogether(Part0, Part1, JointType, WeldParent)
  401. --- Weld's 2 parts together
  402. -- @param Part0 The first part
  403. -- @param Part1 The second part (Dependent part most of the time).
  404. -- @param [JointType] The type of joint. Defaults to weld.
  405. -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
  406. -- @return The weld created.
  407.  
  408. JointType = JointType or "Weld"
  409. local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
  410.  
  411. local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
  412. Modify(NewWeld, {
  413. Name = "qCFrameWeldThingy";
  414. Part0 = Part0;
  415. Part1 = Part1;
  416. C0 = CFrame.new();--Part0.CFrame:inverse();
  417. C1 = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
  418. Parent = Part1;
  419. })
  420.  
  421. if not RelativeValue then
  422. RelativeValue = Make("CFrameValue", {
  423. Parent = Part1;
  424. Name = "qRelativeCFrameWeldValue";
  425. Archivable = true;
  426. Value = NewWeld.C1;
  427. })
  428. end
  429.  
  430. return NewWeld
  431. end
  432.  
  433. local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
  434. -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
  435. -- @param MainPart The part to weld the model to (can be in the model).
  436. -- @param [JointType] The type of joint. Defaults to weld.
  437. -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
  438.  
  439. for _, Part in pairs(Parts) do
  440. if ShouldBreakJoints(Part) then
  441. Part:BreakJoints()
  442. end
  443. end
  444.  
  445. for _, Part in pairs(Parts) do
  446. if Part ~= MainPart then
  447. WeldTogether(MainPart, Part, JointType, MainPart)
  448. end
  449. end
  450.  
  451. if not DoNotUnanchor then
  452. for _, Part in pairs(Parts) do
  453. Part.Anchored = false
  454. end
  455. MainPart.Anchored = false
  456. end
  457. end
  458.  
  459. local function PerfectionWeld()
  460. local Tool = GetNearestParent(script, "Tool")
  461.  
  462. local Parts = GetBricks(script.Parent)
  463. 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]
  464.  
  465. if PrimaryPart then
  466. WeldParts(Parts, PrimaryPart, "Weld", false)
  467. else
  468. warn("qWeld - Unable to weld part")
  469. end
  470.  
  471. return Tool
  472. end
  473.  
  474. local Tool = PerfectionWeld()
  475.  
  476.  
  477. if Tool and script.ClassName == "Script" then
  478. --- Don't bother with local scripts
  479.  
  480. script.Parent.AncestryChanged:connect(function()
  481. PerfectionWeld()
  482. end)
  483. end
  484.  
  485. -- Created by Quenty (@Quenty, follow me on twitter).
  486. end;
  487. function() function waitForChild(parent, childName)
  488. local child = parent:findFirstChild(childName)
  489. if child then return child end
  490. while true do
  491. child = parent.ChildAdded:wait()
  492. if child.Name==childName then return child end
  493. end
  494. end
  495. local Figure = script.Parent
  496. local Torso = waitForChild(Figure, "Torso")
  497. local RightShoulder = waitForChild(Torso, "Right Shoulder")
  498. local LeftShoulder = waitForChild(Torso, "Left Shoulder")
  499. local RightHip = waitForChild(Torso, "Right Hip")
  500. local LeftHip = waitForChild(Torso, "Left Hip")
  501. local Neck = waitForChild(Torso, "Neck")
  502. local Humanoid;
  503. for _,Child in pairs(Figure:GetChildren())do
  504. if Child and Child.ClassName=="Humanoid"then
  505. Humanoid=Child;
  506. end;
  507. end;
  508. local pose = "Standing"
  509. local currentAnim = ""
  510. local currentAnimInstance = nil
  511. local currentAnimTrack = nil
  512. local currentAnimKeyframeHandler = nil
  513. local currentAnimSpeed = 1.0
  514. local animTable = {}
  515. local animNames = {
  516. idle = {
  517. { id = "http://www.roblox.com/asset/?id=180435571", weight = 9 },
  518. { id = "http://www.roblox.com/asset/?id=180435792", weight = 1 }
  519. },
  520. walk = {
  521. { id = "http://www.roblox.com/asset/?id=180426354", weight = 10 }
  522. },
  523. run = {
  524. { id = "http://www.roblox.com/asset/?id=252557606", weight = 20 }
  525. },
  526. jump = {
  527. { id = "http://www.roblox.com/asset/?id=125750702", weight = 10 }
  528. },
  529. fall = {
  530. { id = "http://www.roblox.com/asset/?id=180436148", weight = 10 }
  531. },
  532. climb = {
  533. { id = "http://www.roblox.com/asset/?id=180436334", weight = 10 }
  534. },
  535. sit = {
  536. { id = "http://www.roblox.com/asset/?id=178130996", weight = 10 }
  537. },
  538. toolnone = {
  539. { id = "http://www.roblox.com/asset/?id=182393478", weight = 10 }
  540. },
  541. toolslash = {
  542. { id = "http://www.roblox.com/asset/?id=129967390", weight = 10 }
  543. --{ id = "slash.xml", weight = 10 }
  544. },
  545. toollunge = {
  546. { id = "http://www.roblox.com/asset/?id=129967478", weight = 10 }
  547. },
  548. wave = {
  549. { id = "http://www.roblox.com/asset/?id=128777973", weight = 10 }
  550. },
  551. point = {
  552. { id = "http://www.roblox.com/asset/?id=128853357", weight = 10 }
  553. },
  554. dance1 = {
  555. { id = "http://www.roblox.com/asset/?id=182435998", weight = 10 },
  556. { id = "http://www.roblox.com/asset/?id=182491037", weight = 10 },
  557. { id = "http://www.roblox.com/asset/?id=182491065", weight = 10 }
  558. },
  559. dance2 = {
  560. { id = "http://www.roblox.com/asset/?id=182436842", weight = 10 },
  561. { id = "http://www.roblox.com/asset/?id=182491248", weight = 10 },
  562. { id = "http://www.roblox.com/asset/?id=182491277", weight = 10 }
  563. },
  564. dance3 = {
  565. { id = "http://www.roblox.com/asset/?id=182436935", weight = 10 },
  566. { id = "http://www.roblox.com/asset/?id=182491368", weight = 10 },
  567. { id = "http://www.roblox.com/asset/?id=182491423", weight = 10 }
  568. },
  569. laugh = {
  570. { id = "http://www.roblox.com/asset/?id=129423131", weight = 10 }
  571. },
  572. cheer = {
  573. { id = "http://www.roblox.com/asset/?id=129423030", weight = 10 }
  574. },
  575. }
  576. local dances = {"dance1", "dance2", "dance3"}
  577.  
  578. -- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote
  579. local emoteNames = { wave = false, point = false, dance1 = true, dance2 = true, dance3 = true, laugh = false, cheer = false}
  580.  
  581. function configureAnimationSet(name, fileList)
  582. if (animTable[name] ~= nil) then
  583. for _, connection in pairs(animTable[name].connections) do
  584. connection:disconnect()
  585. end
  586. end
  587. animTable[name] = {}
  588. animTable[name].count = 0
  589. animTable[name].totalWeight = 0
  590. animTable[name].connections = {}
  591.  
  592. -- check for config values
  593. local config = script:FindFirstChild(name)
  594. if (config ~= nil) then
  595. --print("Loading anims " .. name)
  596. table.insert(animTable[name].connections, config.ChildAdded:connect(function(child) configureAnimationSet(name, fileList) end))
  597. table.insert(animTable[name].connections, config.ChildRemoved:connect(function(child) configureAnimationSet(name, fileList) end))
  598. local idx = 1
  599. for _, childPart in pairs(config:GetChildren()) do
  600. if (childPart:IsA("Animation")) then
  601. table.insert(animTable[name].connections, childPart.Changed:connect(function(property) configureAnimationSet(name, fileList) end))
  602. animTable[name][idx] = {}
  603. animTable[name][idx].anim = childPart
  604. local weightObject = childPart:FindFirstChild("Weight")
  605. if (weightObject == nil) then
  606. animTable[name][idx].weight = 1
  607. else
  608. animTable[name][idx].weight = weightObject.Value
  609. end
  610. animTable[name].count = animTable[name].count + 1
  611. animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight
  612. --print(name .. " [" .. idx .. "] " .. animTable[name][idx].anim.AnimationId .. " (" .. animTable[name][idx].weight .. ")")
  613. idx = idx + 1
  614. end
  615. end
  616. end
  617.  
  618. -- fallback to defaults
  619. if (animTable[name].count <= 0) then
  620. for idx, anim in pairs(fileList) do
  621. animTable[name][idx] = {}
  622. animTable[name][idx].anim = Instance.new("Animation")
  623. animTable[name][idx].anim.Name = name
  624. animTable[name][idx].anim.AnimationId = anim.id
  625. animTable[name][idx].weight = anim.weight
  626. animTable[name].count = animTable[name].count + 1
  627. animTable[name].totalWeight = animTable[name].totalWeight + anim.weight
  628. --print(name .. " [" .. idx .. "] " .. anim.id .. " (" .. anim.weight .. ")")
  629. end
  630. end
  631. end
  632.  
  633. -- Setup animation objects
  634. function scriptChildModified(child)
  635. local fileList = animNames[child.Name]
  636. if (fileList ~= nil) then
  637. configureAnimationSet(child.Name, fileList)
  638. end
  639. end
  640.  
  641. script.ChildAdded:connect(scriptChildModified)
  642. script.ChildRemoved:connect(scriptChildModified)
  643.  
  644.  
  645. for name, fileList in pairs(animNames) do
  646. configureAnimationSet(name, fileList)
  647. end
  648.  
  649. -- ANIMATION
  650.  
  651. -- declarations
  652. local toolAnim = "None"
  653. local toolAnimTime = 0
  654.  
  655. local jumpAnimTime = 0
  656. local jumpAnimDuration = 0.3
  657.  
  658. local toolTransitionTime = 0.1
  659. local fallTransitionTime = 0.3
  660. local jumpMaxLimbVelocity = 0.75
  661.  
  662. -- functions
  663.  
  664. function stopAllAnimations()
  665. local oldAnim = currentAnim
  666.  
  667. -- return to idle if finishing an emote
  668. if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
  669. oldAnim = "idle"
  670. end
  671.  
  672. currentAnim = ""
  673. currentAnimInstance = nil
  674. if (currentAnimKeyframeHandler ~= nil) then
  675. currentAnimKeyframeHandler:disconnect()
  676. end
  677.  
  678. if (currentAnimTrack ~= nil) then
  679. currentAnimTrack:Stop()
  680. currentAnimTrack:Destroy()
  681. currentAnimTrack = nil
  682. end
  683. return oldAnim
  684. end
  685.  
  686. function setAnimationSpeed(speed)
  687. if speed ~= currentAnimSpeed then
  688. currentAnimSpeed = speed
  689. currentAnimTrack:AdjustSpeed(currentAnimSpeed)
  690. end
  691. end
  692.  
  693. function keyFrameReachedFunc(frameName)
  694. if (frameName == "End") then
  695.  
  696. local repeatAnim = currentAnim
  697. -- return to idle if finishing an emote
  698. if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then
  699. repeatAnim = "idle"
  700. end
  701.  
  702. local animSpeed = currentAnimSpeed
  703. playAnimation(repeatAnim, 0.0, Humanoid)
  704. setAnimationSpeed(animSpeed)
  705. end
  706. end
  707.  
  708. -- Preload animations
  709. function playAnimation(animName, transitionTime, humanoid)
  710.  
  711. local roll = math.random(1, animTable[animName].totalWeight)
  712. local origRoll = roll
  713. local idx = 1
  714. while (roll > animTable[animName][idx].weight) do
  715. roll = roll - animTable[animName][idx].weight
  716. idx = idx + 1
  717. end
  718. --print(animName .. " " .. idx .. " [" .. origRoll .. "]")
  719. local anim = animTable[animName][idx].anim
  720. -- switch animation
  721. if (anim ~= currentAnimInstance) then
  722. if (currentAnimTrack ~= nil) then
  723. currentAnimTrack:Stop(transitionTime)
  724. currentAnimTrack:Destroy()
  725. end
  726. currentAnimSpeed = 1.0
  727. -- load it to the humanoid; get AnimationTrack
  728. currentAnimTrack = humanoid:LoadAnimation(anim)
  729. -- play the animation
  730. currentAnimTrack:Play(transitionTime)
  731. currentAnim = animName
  732. currentAnimInstance = anim
  733. -- set up keyframe name triggers
  734. if (currentAnimKeyframeHandler ~= nil) then
  735. currentAnimKeyframeHandler:disconnect()
  736. end
  737. currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
  738. end
  739. end
  740. -------------------------------------------------------------------------------------------
  741. -------------------------------------------------------------------------------------------
  742. local toolAnimName = ""
  743. local toolAnimTrack = nil
  744. local toolAnimInstance = nil
  745. local currentToolAnimKeyframeHandler = nil
  746. function toolKeyFrameReachedFunc(frameName)
  747. if (frameName == "End") then
  748. --print("Keyframe : ".. frameName)
  749. playToolAnimation(toolAnimName, 0.0, Humanoid)
  750. end
  751. end
  752. function playToolAnimation(animName, transitionTime, humanoid)
  753. local roll = math.random(1, animTable[animName].totalWeight)
  754. local origRoll = roll
  755. local idx = 1
  756. while (roll > animTable[animName][idx].weight) do
  757. roll = roll - animTable[animName][idx].weight
  758. idx = idx + 1
  759. end
  760. --print(animName .. " * " .. idx .. " [" .. origRoll .. "]")
  761. local anim = animTable[animName][idx].anim
  762. if (toolAnimInstance ~= anim) then
  763. if (toolAnimTrack ~= nil) then
  764. toolAnimTrack:Stop()
  765. toolAnimTrack:Destroy()
  766. transitionTime = 0
  767. end
  768. -- load it to the humanoid; get AnimationTrack
  769. toolAnimTrack = humanoid:LoadAnimation(anim)
  770. -- play the animation
  771. toolAnimTrack:Play(transitionTime)
  772. toolAnimName = animName
  773. toolAnimInstance = anim
  774. currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
  775. end
  776. end
  777. function stopToolAnimations()
  778. local oldAnim = toolAnimName
  779. if (currentToolAnimKeyframeHandler ~= nil) then
  780. currentToolAnimKeyframeHandler:disconnect()
  781. end
  782. toolAnimName = ""
  783. toolAnimInstance = nil
  784. if (toolAnimTrack ~= nil) then
  785. toolAnimTrack:Stop()
  786. toolAnimTrack:Destroy()
  787. toolAnimTrack = nil
  788. end
  789. return oldAnim
  790. end
  791. -------------------------------------------------------------------------------------------
  792. -------------------------------------------------------------------------------------------
  793. function onRunning(speed)
  794. if speed>0.01 then
  795. if Figure and Humanoid and Humanoid.WalkSpeed<17 then
  796. playAnimation("walk", 0.1, Humanoid);
  797. elseif Figure and Humanoid and Humanoid.WalkSpeed>17 then
  798. playAnimation("run", 0.1, Humanoid);
  799. end;
  800. if currentAnimInstance and currentAnimInstance.AnimationId == "http://www.roblox.com/asset/?id=180426354" then
  801. setAnimationSpeed(speed / 14.5)
  802. end
  803. pose = "Running"
  804. else
  805. playAnimation("idle", 0.1, Humanoid)
  806. pose = "Standing"
  807. end
  808. end
  809. function onDied()
  810. pose = "Dead"
  811. end
  812. function onJumping()
  813. playAnimation("jump", 0.1, Humanoid)
  814. jumpAnimTime = jumpAnimDuration
  815. pose = "Jumping"
  816. end
  817. function onClimbing(speed)
  818. playAnimation("climb", 0.1, Humanoid)
  819. setAnimationSpeed(speed / 12.0)
  820. pose = "Climbing"
  821. end
  822. function onGettingUp()
  823. pose = "GettingUp"
  824. end
  825. function onFreeFall()
  826. if (jumpAnimTime <= 0) then
  827. playAnimation("fall", fallTransitionTime, Humanoid)
  828. end
  829. pose = "FreeFall"
  830. end
  831. function onFallingDown()
  832. pose = "FallingDown"
  833. end
  834. function onSeated()
  835. pose = "Seated"
  836. end
  837. function onPlatformStanding()
  838. pose = "PlatformStanding"
  839. end
  840. function onSwimming(speed)
  841. if speed>0 then
  842. pose = "Running"
  843. else
  844. pose = "Standing"
  845. end
  846. end
  847.  
  848. function getTool()
  849. for _, kid in ipairs(Figure:GetChildren()) do
  850. if kid.className == "Tool" then return kid end
  851. end
  852. return nil
  853. end
  854.  
  855. function getToolAnim(tool)
  856. for _, c in ipairs(tool:GetChildren()) do
  857. if c.Name == "toolanim" and c.className == "StringValue" then
  858. return c
  859. end
  860. end
  861. return nil
  862. end
  863.  
  864. function animateTool()
  865.  
  866. if (toolAnim == "None") then
  867. playToolAnimation("toolnone", toolTransitionTime, Humanoid)
  868. return
  869. end
  870.  
  871. if (toolAnim == "Slash") then
  872. playToolAnimation("toolslash", 0, Humanoid)
  873. return
  874. end
  875.  
  876. if (toolAnim == "Lunge") then
  877. playToolAnimation("toollunge", 0, Humanoid)
  878. return
  879. end
  880. end
  881.  
  882. function moveSit()
  883. RightShoulder.MaxVelocity = 0.15
  884. LeftShoulder.MaxVelocity = 0.15
  885. RightShoulder:SetDesiredAngle(3.14 /2)
  886. LeftShoulder:SetDesiredAngle(-3.14 /2)
  887. RightHip:SetDesiredAngle(3.14 /2)
  888. LeftHip:SetDesiredAngle(-3.14 /2)
  889. end
  890.  
  891. local lastTick = 0
  892.  
  893. function move(time)
  894. local amplitude = 1
  895. local frequency = 1
  896. local deltaTime = time - lastTick
  897. lastTick = time
  898.  
  899. local climbFudge = 0
  900. local setAngles = false
  901.  
  902. if (jumpAnimTime > 0) then
  903. jumpAnimTime = jumpAnimTime - deltaTime
  904. end
  905.  
  906. if (pose == "FreeFall" and jumpAnimTime <= 0) then
  907. playAnimation("fall", fallTransitionTime, Humanoid)
  908. elseif (pose == "Seated") then
  909. playAnimation("sit", 0.5, Humanoid)
  910. return
  911. elseif (pose == "Running") then
  912. if Figure and Humanoid and Humanoid.WalkSpeed<17 then
  913. playAnimation("walk", 0.1, Humanoid);
  914. elseif Figure and Humanoid and Humanoid.WalkSpeed>17 then
  915. playAnimation("run", 0.1, Humanoid);
  916. end;
  917. elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then
  918. stopAllAnimations()
  919. amplitude = 0.1
  920. frequency = 1
  921. setAngles = true
  922. end
  923. if (setAngles) then
  924. local desiredAngle = amplitude * math.sin(time * frequency)
  925. RightShoulder:SetDesiredAngle(desiredAngle + climbFudge)
  926. LeftShoulder:SetDesiredAngle(desiredAngle - climbFudge)
  927. RightHip:SetDesiredAngle(-desiredAngle)
  928. LeftHip:SetDesiredAngle(-desiredAngle)
  929. end
  930. -- Tool Animation handling
  931. local tool = getTool()
  932. if tool and tool:FindFirstChild("Handle") then
  933. local animStringValueObject = getToolAnim(tool)
  934. if animStringValueObject then
  935. toolAnim = animStringValueObject.Value
  936. -- message recieved, delete StringValue
  937. animStringValueObject.Parent = nil
  938. toolAnimTime = time + .3
  939. end
  940. if time > toolAnimTime then
  941. toolAnimTime = 0
  942. toolAnim = "None"
  943. end
  944. animateTool()
  945. else
  946. stopToolAnimations()
  947. toolAnim = "None"
  948. toolAnimInstance = nil
  949. toolAnimTime = 0
  950. end
  951. end
  952. -- connect events
  953. Humanoid.Died:connect(onDied)
  954. Humanoid.Running:connect(onRunning)
  955. Humanoid.Jumping:connect(onJumping)
  956. Humanoid.Climbing:connect(onClimbing)
  957. Humanoid.GettingUp:connect(onGettingUp)
  958. Humanoid.FreeFalling:connect(onFreeFall)
  959. Humanoid.FallingDown:connect(onFallingDown)
  960. Humanoid.Seated:connect(onSeated)
  961. Humanoid.PlatformStanding:connect(onPlatformStanding)
  962. Humanoid.Swimming:connect(onSwimming)
  963. local runService = game:GetService("RunService");
  964. playAnimation("idle", 0.1, Humanoid)
  965. pose = "Standing"
  966. while Wait(0)do
  967. local _,time=wait(0)
  968. move(time)
  969. end end;
  970. function() --Responsible for regening a player's humanoid's health
  971.  
  972. -- declarations
  973. local Figure = script.Parent
  974. local Head = Figure:WaitForChild("Head")
  975. local Humanoid;
  976. for _,Child in pairs(Figure:GetChildren())do
  977. if Child and Child.ClassName=="Humanoid"then
  978. Humanoid=Child;
  979. end;
  980. end;
  981. local regening = false
  982.  
  983. -- regeneration
  984. function regenHealth()
  985. if regening then return end
  986. regening = true
  987.  
  988. while Humanoid.Health < Humanoid.MaxHealth do
  989. local s = wait(1)
  990. local health = Humanoid.Health
  991. if health~=0 and health < Humanoid.MaxHealth then
  992. local newHealthDelta = 0.01 * s * Humanoid.MaxHealth
  993. health = health + newHealthDelta
  994. Humanoid.Health = math.min(health,Humanoid.MaxHealth)
  995. end
  996. end
  997.  
  998. if Humanoid.Health > Humanoid.MaxHealth then
  999. Humanoid.Health = Humanoid.MaxHealth
  1000. end
  1001.  
  1002. regening = false
  1003. end
  1004.  
  1005. Humanoid.HealthChanged:connect(regenHealth)
  1006. end;
  1007. function() --[[ By: Brutez. ]]--
  1008. local JeffTheKillerScript=script;
  1009. repeat Wait(0)until JeffTheKillerScript and JeffTheKillerScript.Parent and JeffTheKillerScript.Parent.ClassName=="Model"and JeffTheKillerScript.Parent:FindFirstChild("Head")and JeffTheKillerScript.Parent:FindFirstChild("Torso");
  1010. local JeffTheKiller=JeffTheKillerScript.Parent;
  1011. function raycast(Spos,vec,currentdist)
  1012. local hit2,pos2=game.Workspace:FindPartOnRay(Ray.new(Spos+(vec*.05),vec*currentdist),JeffTheKiller);
  1013. if hit2~=nil and pos2 then
  1014. if hit2.Name=="Handle" and not hit2.CanCollide or string.sub(hit2.Name,1,6)=="Effect"and not hit2.CanCollide then
  1015. local currentdist=currentdist-(pos2-Spos).magnitude;
  1016. return raycast(pos2,vec,currentdist);
  1017. end;
  1018. end;
  1019. return hit2,pos2;
  1020. end;
  1021. function RayCast(Position,Direction,MaxDistance,IgnoreList)
  1022. return Game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(Position,Direction.unit*(MaxDistance or 999.999)),IgnoreList);
  1023. end;
  1024. --[[if JeffTheKillerScript and JeffTheKiller and JeffTheKiller:FindFirstChild("Thumbnail")then]]--
  1025. --[[JeffTheKiller:FindFirstChild("Thumbnail"):Destroy();]]--
  1026. --[[end;]]--
  1027. local JeffTheKillerHumanoid;
  1028. for _,Child in pairs(JeffTheKiller:GetChildren())do
  1029. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  1030. JeffTheKillerHumanoid=Child;
  1031. end;
  1032. end;
  1033. local AttackDebounce=false;
  1034. local JeffTheKillerKnife=JeffTheKiller:FindFirstChild("Knife");
  1035. local JeffTheKillerHead=JeffTheKiller:FindFirstChild("Head");
  1036. local JeffTheKillerHumanoidRootPart=JeffTheKiller:FindFirstChild("HumanoidRootPart");
  1037. local WalkDebounce=false;
  1038. local Notice=false;
  1039. local JeffLaughDebounce=false;
  1040. local MusicDebounce=false;
  1041. local NoticeDebounce=false;
  1042. local ChosenMusic;
  1043. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=CFrame.new(0,1,0,-1,0,0,0,0,1,0,1,-0);
  1044. local OriginalC0=JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0;
  1045. function FindNearestBae()
  1046. local NoticeDistance=100;
  1047. local TargetMain;
  1048. for _,TargetModel in pairs(Game:GetService("Workspace"):GetChildren())do
  1049. 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("Torso")and TargetModel:FindFirstChild("Head")then
  1050. local TargetPart=TargetModel:FindFirstChild("Torso");
  1051. local FoundHumanoid;
  1052. for _,Child in pairs(TargetModel:GetChildren())do
  1053. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  1054. FoundHumanoid=Child;
  1055. end;
  1056. end;
  1057. if TargetModel and TargetPart and FoundHumanoid and FoundHumanoid.Health~=0 and(TargetPart.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<NoticeDistance then
  1058. TargetMain=TargetPart;
  1059. NoticeDistance=(TargetPart.Position-JeffTheKillerHumanoidRootPart.Position).magnitude;
  1060. local hit,pos=raycast(JeffTheKillerHumanoidRootPart.Position,(TargetPart.Position-JeffTheKillerHumanoidRootPart.Position).unit,500)
  1061. if hit and hit.Parent and hit.Parent.ClassName=="Model"and hit.Parent:FindFirstChild("Torso")and hit.Parent:FindFirstChild("Head")then
  1062. if TargetModel and TargetPart and FoundHumanoid and FoundHumanoid.Health~=0 and(TargetPart.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<9 and not AttackDebounce then
  1063. Spawn(function()
  1064. AttackDebounce=true;
  1065. local SwingAnimation=JeffTheKillerHumanoid:LoadAnimation(JeffTheKiller:FindFirstChild("Swing"));
  1066. local SwingChoice=math.random(1,2);
  1067. local HitChoice=math.random(1,3);
  1068. SwingAnimation:Play();
  1069. SwingAnimation:AdjustSpeed(1.5+(math.random()*0.1));
  1070. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerKnife and JeffTheKillerKnife:FindFirstChild("Swing")then
  1071. local SwingSound=JeffTheKillerKnife:FindFirstChild("Swing");
  1072. SwingSound.Pitch=1+(math.random()*0.04);
  1073. SwingSound:Play();
  1074. end;
  1075. Wait(0.3);
  1076. if TargetModel and TargetPart and FoundHumanoid and FoundHumanoid.Health~=0 and(TargetPart.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<8 then
  1077. FoundHumanoid:TakeDamage(30);
  1078. if HitChoice==1 and JeffTheKillerScript and JeffTheKiller and JeffTheKillerKnife and JeffTheKillerKnife:FindFirstChild("Hit1")then
  1079. local HitSound=JeffTheKillerKnife:FindFirstChild("Hit1");
  1080. HitSound.Pitch=1+(math.random()*0.04);
  1081. HitSound:Play();
  1082. elseif HitChoice==2 and JeffTheKillerScript and JeffTheKiller and JeffTheKillerKnife and JeffTheKillerKnife:FindFirstChild("Hit2")then
  1083. local HitSound=JeffTheKillerKnife:FindFirstChild("Hit2");
  1084. HitSound.Pitch=1+(math.random()*0.04);
  1085. HitSound:Play();
  1086. elseif HitChoice==3 and JeffTheKillerScript and JeffTheKiller and JeffTheKillerKnife and JeffTheKillerKnife:FindFirstChild("Hit3")then
  1087. local HitSound=JeffTheKillerKnife:FindFirstChild("Hit3");
  1088. HitSound.Pitch=1+(math.random()*0.04);
  1089. HitSound:Play();
  1090. end;
  1091. end;
  1092. Wait(0.1);
  1093. AttackDebounce=false;
  1094. end);
  1095. end;
  1096. end;
  1097. end;
  1098. end;
  1099. end;
  1100. return TargetMain;
  1101. end;
  1102. while Wait(0)do
  1103. local TargetPoint=JeffTheKillerHumanoid.TargetPoint;
  1104. 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})
  1105. local Jumpable=false;
  1106. if Blockage then
  1107. Jumpable=true;
  1108. if Blockage and Blockage.Parent and Blockage.Parent.ClassName~="Workspace"then
  1109. local BlockageHumanoid;
  1110. for _,Child in pairs(Blockage.Parent:GetChildren())do
  1111. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  1112. BlockageHumanoid=Child;
  1113. end;
  1114. end;
  1115. if Blockage and Blockage:IsA("Terrain")then
  1116. local CellPos=Blockage:WorldToCellPreferSolid((BlockagePos-Vector3.new(0,2,0)));
  1117. local CellMaterial,CellShape,CellOrientation=Blockage:GetCell(CellPos.X,CellPos.Y,CellPos.Z);
  1118. if CellMaterial==Enum.CellMaterial.Water then
  1119. Jumpable=false;
  1120. end;
  1121. 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"then
  1122. Jumpable=false;
  1123. end;
  1124. end;
  1125. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and not JeffTheKillerHumanoid.Sit and Jumpable then
  1126. JeffTheKillerHumanoid.Jump=true;
  1127. end;
  1128. end;
  1129. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHumanoidRootPart and JeffTheKillerHead:FindFirstChild("Jeff_Step")and (JeffTheKillerHumanoidRootPart.Velocity-Vector3.new(0,JeffTheKillerHumanoidRootPart.Velocity.y,0)).magnitude>=5 and not WalkDebounce and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 then
  1130. Spawn(function()
  1131. WalkDebounce=true;
  1132. local FiredRay=Ray.new(JeffTheKillerHumanoidRootPart.Position,Vector3.new(0,-4,0));
  1133. local RayTarget,endPoint=Game:GetService("Workspace"):FindPartOnRay(FiredRay,JeffTheKiller);
  1134. if RayTarget then
  1135. local JeffTheKillerHeadFootStepClone=JeffTheKillerHead:FindFirstChild("Jeff_Step"):Clone();
  1136. JeffTheKillerHeadFootStepClone.Parent=JeffTheKillerHead;
  1137. JeffTheKillerHeadFootStepClone:Play();
  1138. JeffTheKillerHeadFootStepClone:Destroy();
  1139. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and JeffTheKillerHumanoid.WalkSpeed<17 then
  1140. Wait(0.4);
  1141. elseif JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and JeffTheKillerHumanoid.WalkSpeed>17 then
  1142. Wait(0.15);
  1143. end
  1144. end;
  1145. WalkDebounce=false;
  1146. end);
  1147. end;
  1148. local MainTarget=FindNearestBae();
  1149. local FoundHumanoid;
  1150. if MainTarget then
  1151. for _,Child in pairs(MainTarget.Parent:GetChildren())do
  1152. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  1153. FoundHumanoid=Child;
  1154. end;
  1155. end;
  1156. end;
  1157. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and MainTarget and MainTarget.Parent and FoundHumanoid and FoundHumanoid.Jump then
  1158. JeffTheKillerHumanoid.Jump=true;
  1159. end;
  1160. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<25 then
  1161. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("Jeff_Laugh")and not JeffTheKillerHead:FindFirstChild("Jeff_Laugh").IsPlaying then
  1162. JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume=1;
  1163. JeffTheKillerHead:FindFirstChild("Jeff_Laugh"):Play();
  1164. end;
  1165. elseif JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 and MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude>25 then
  1166. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("Jeff_Laugh")and JeffTheKillerHead:FindFirstChild("Jeff_Laugh").IsPlaying then
  1167. if not JeffLaughDebounce then
  1168. Spawn(function()
  1169. JeffLaughDebounce=true;
  1170. repeat Wait(0);if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("Jeff_Laugh")then JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume=JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume-0.1;else break;end;until JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume==0 or JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume<0;
  1171. JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume=0;
  1172. JeffTheKillerHead:FindFirstChild("Jeff_Laugh"):Stop();
  1173. JeffLaughDebounce=false;
  1174. end);
  1175. end;
  1176. end;
  1177. end;
  1178. 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
  1179. local MusicChoice=math.random(1,2);
  1180. if MusicChoice==1 and JeffTheKillerScript and JeffTheKiller and JeffTheKiller:FindFirstChild("Jeff_Scene_Sound1")then
  1181. ChosenMusic=JeffTheKiller:FindFirstChild("Jeff_Scene_Sound1");
  1182. elseif MusicChoice==2 and JeffTheKillerScript and JeffTheKiller and JeffTheKiller:FindFirstChild("Jeff_Scene_Sound2")then
  1183. ChosenMusic=JeffTheKiller:FindFirstChild("Jeff_Scene_Sound2");
  1184. end;
  1185. if JeffTheKillerScript and JeffTheKiller and ChosenMusic and not ChosenMusic.IsPlaying then
  1186. ChosenMusic.Volume=0.5;
  1187. ChosenMusic:Play();
  1188. end;
  1189. 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
  1190. if JeffTheKillerScript and JeffTheKiller and ChosenMusic and ChosenMusic.IsPlaying then
  1191. if not MusicDebounce then
  1192. Spawn(function()
  1193. MusicDebounce=true;
  1194. repeat Wait(0);if JeffTheKillerScript and JeffTheKiller and ChosenMusic then ChosenMusic.Volume=ChosenMusic.Volume-0.01;else break;end;until ChosenMusic.Volume==0 or ChosenMusic.Volume<0;
  1195. if ChosenMusic then
  1196. ChosenMusic.Volume=0;
  1197. ChosenMusic:Stop();
  1198. end;
  1199. ChosenMusic=nil;
  1200. MusicDebounce=false;
  1201. end);
  1202. end;
  1203. end;
  1204. end;
  1205. if not MainTarget and not JeffLaughDebounce then
  1206. Spawn(function()
  1207. JeffLaughDebounce=true;
  1208. repeat Wait(0);if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("Jeff_Laugh")then JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume=JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume-0.1;else break;end;until JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume==0 or JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume<0;
  1209. JeffTheKillerHead:FindFirstChild("Jeff_Laugh").Volume=0;
  1210. JeffTheKillerHead:FindFirstChild("Jeff_Laugh"):Stop();
  1211. JeffLaughDebounce=false;
  1212. end);
  1213. end;
  1214. if not MainTarget and not MusicDebounce then
  1215. Spawn(function()
  1216. MusicDebounce=true;
  1217. repeat Wait(0);if JeffTheKillerScript and JeffTheKiller and ChosenMusic then ChosenMusic.Volume=ChosenMusic.Volume-0.01;else break;end;until ChosenMusic.Volume==0 or ChosenMusic.Volume<0;
  1218. if ChosenMusic then
  1219. ChosenMusic.Volume=0;
  1220. ChosenMusic:Stop();
  1221. end;
  1222. ChosenMusic=nil;
  1223. MusicDebounce=false;
  1224. end);
  1225. end;
  1226. if MainTarget then
  1227. Notice=true;
  1228. if Notice and not NoticeDebounce and JeffTheKillerScript and JeffTheKiller and JeffTheKillerHead and JeffTheKillerHead:FindFirstChild("Jeff_Susto2")then
  1229. JeffTheKillerHead:FindFirstChild("Jeff_Susto2"):Play();
  1230. NoticeDebounce=true;
  1231. end
  1232. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 then
  1233. if MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude>5 then
  1234. JeffTheKillerHumanoid.WalkSpeed=30;
  1235. elseif MainTarget and FoundHumanoid and FoundHumanoid.Health~=0 and(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).magnitude<5 then
  1236. JeffTheKillerHumanoid.WalkSpeed=0.004;
  1237. end;
  1238. JeffTheKillerHumanoid:MoveTo(MainTarget.Position+(MainTarget.Position-JeffTheKillerHumanoidRootPart.Position).unit*2,Game:GetService("Workspace"):FindFirstChild("Terrain"));
  1239. local NeckRotation=(JeffTheKiller:FindFirstChild("Torso").Position.Y-MainTarget.Parent:FindFirstChild("Head").Position.Y)/10;
  1240. if NeckRotation>-1.5 and NeckRotation<1.5 then
  1241. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=OriginalC0*CFrame.fromEulerAnglesXYZ(NeckRotation,0,0);
  1242. end;
  1243. if NeckRotation<-1.5 then
  1244. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=CFrame.new(0,1,0,-1,0,0,0,-0.993636549,0.112633869,0,0.112633869,0.993636549);
  1245. elseif NeckRotation>1.5 then
  1246. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=CFrame.new(0,1,0,-1,0,0,0,0.996671617,0.081521146,0,0.081521146,-0.996671617);
  1247. end;
  1248. else
  1249. end;
  1250. else
  1251. Notice=false;
  1252. NoticeDebounce=false;
  1253. JeffTheKiller:FindFirstChild("Torso"):FindFirstChild("Neck").C0=CFrame.new(0,1,0,-1,0,0,0,0,1,0,1,-0);
  1254. local RandomWalk=math.random(1,150);
  1255. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Health~=0 then
  1256. JeffTheKillerHumanoid.WalkSpeed=12;
  1257. if RandomWalk==1 then
  1258. JeffTheKillerHumanoid:MoveTo(Game:GetService("Workspace"):FindFirstChild("Terrain").Position+Vector3.new(math.random(-2048,2048),0,math.random(-2048,2048)),Game:GetService("Workspace"):FindFirstChild("Terrain"));
  1259. end;
  1260. end;
  1261. end;
  1262. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid then
  1263. JeffTheKillerHumanoid.DisplayDistanceType="None";
  1264. JeffTheKillerHumanoid.HealthDisplayDistance=0;
  1265. JeffTheKillerHumanoid.Name="ColdBloodedKiller";
  1266. JeffTheKillerHumanoid.NameDisplayDistance=0;
  1267. JeffTheKillerHumanoid.NameOcclusion="EnemyOcclusion";
  1268. JeffTheKillerHumanoid.AutoJumpEnabled=true;
  1269. JeffTheKillerHumanoid.AutoRotate=true;
  1270. JeffTheKillerHumanoid.MaxHealth=500;
  1271. JeffTheKillerHumanoid.JumpPower=60;
  1272. JeffTheKillerHumanoid.MaxSlopeAngle=89.9;
  1273. end;
  1274. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and not JeffTheKillerHumanoid.AutoJumpEnabled then
  1275. JeffTheKillerHumanoid.AutoJumpEnabled=true;
  1276. end;
  1277. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and not JeffTheKillerHumanoid.AutoRotate then
  1278. JeffTheKillerHumanoid.AutoRotate=true;
  1279. end;
  1280. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.PlatformStand then
  1281. JeffTheKillerHumanoid.PlatformStand=false;
  1282. end;
  1283. if JeffTheKillerScript and JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid.Sit then
  1284. JeffTheKillerHumanoid.Sit=false;
  1285. end;
  1286. end;
  1287. --[[ By: Brutez. ]]-- end;
  1288. function() --[[ By: Brutez, 2/28/2015, 1:34 AM, (UTC-08:00) Pacific Time (US & Canada) ]]--
  1289. 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. ]]--
  1290. local AdvancedRespawnScript=script;
  1291. repeat Wait(0)until script and script.Parent and script.Parent.ClassName=="Model";
  1292. local JeffTheKiller=AdvancedRespawnScript.Parent;
  1293. if AdvancedRespawnScript and JeffTheKiller and JeffTheKiller:FindFirstChild("Thumbnail")then
  1294. JeffTheKiller:FindFirstChild("Thumbnail"):Destroy();
  1295. end;
  1296. local GameDerbis=Game:GetService("Debris");
  1297. local JeffTheKillerHumanoid;
  1298. for _,Child in pairs(JeffTheKiller:GetChildren())do
  1299. if Child and Child.ClassName=="Humanoid"and Child.Health~=0 then
  1300. JeffTheKillerHumanoid=Child;
  1301. end;
  1302. end;
  1303. local Respawndant=JeffTheKiller:Clone();
  1304. if PlayerSpawning then --[[ LOOK AT LINE: 2. ]]--
  1305. coroutine.resume(coroutine.create(function()
  1306. if JeffTheKiller and JeffTheKillerHumanoid and JeffTheKillerHumanoid:FindFirstChild("Status")and not JeffTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns")then
  1307. SpawnModel=Instance.new("Model");
  1308. SpawnModel.Parent=JeffTheKillerHumanoid.Status;
  1309. SpawnModel.Name="AvalibleSpawns";
  1310. else
  1311. SpawnModel=JeffTheKillerHumanoid:FindFirstChild("Status"):FindFirstChild("AvalibleSpawns");
  1312. end;
  1313. function FindSpawn(SearchValue)
  1314. local PartsArchivable=SearchValue:GetChildren();
  1315. for AreaSearch=1,#PartsArchivable do
  1316. if PartsArchivable[AreaSearch].className=="SpawnLocation"then
  1317. local PositionValue=Instance.new("Vector3Value",SpawnModel);
  1318. PositionValue.Value=PartsArchivable[AreaSearch].Position;
  1319. PositionValue.Name=PartsArchivable[AreaSearch].Duration;
  1320. end;
  1321. FindSpawn(PartsArchivable[AreaSearch]);
  1322. end;
  1323. end;
  1324. FindSpawn(Game:GetService("Workspace"));
  1325. local SpawnChilden=SpawnModel:GetChildren();
  1326. if#SpawnChilden>0 then
  1327. local SpawnItself=SpawnChilden[math.random(1,#SpawnChilden)];
  1328. local RespawningForceField=Instance.new("ForceField");
  1329. RespawningForceField.Parent=JeffTheKiller;
  1330. RespawningForceField.Name="SpawnForceField";
  1331. GameDerbis:AddItem(RespawningForceField,SpawnItself.Name);
  1332. JeffTheKiller:MoveTo(SpawnItself.Value+Vector3.new(0,3.5,0));
  1333. else
  1334. if JeffTheKiller:FindFirstChild("SpawnForceField")then
  1335. JeffTheKiller:FindFirstChild("SpawnForceField"):Destroy();
  1336. end;
  1337. JeffTheKiller:MoveTo(Vector3.new(0,115,0));
  1338. end;
  1339. end));
  1340. end;
  1341. function Respawn()
  1342. Wait(5);
  1343. Respawndant.Parent=JeffTheKiller.Parent;
  1344. Respawndant:makeJoints();
  1345. Respawndant:FindFirstChild("Head"):MakeJoints();
  1346. Respawndant:FindFirstChild("Torso"):MakeJoints();
  1347. JeffTheKiller:remove();
  1348. end;
  1349. if AdvancedRespawnScript and JeffTheKiller and JeffTheKillerHumanoid then
  1350. JeffTheKillerHumanoid.Died:connect(Respawn);
  1351. end;
  1352. --[[ By: Brutez, 2/28/2015, 1:34 AM, (UTC-08:00) Pacific Time (US & Canada) ]]-- end;}local ActualScripts = {}
  1353. function s(var)
  1354. local func = table.remove(Scripts,1)
  1355. setfenv(func,setmetatable({script=var,require=fake_require or require,global=genv},{
  1356. __index = getfenv(func),
  1357. }))
  1358. table.insert(ActualScripts,coroutine.wrap(func))
  1359. end
  1360. Decode = function(str,t,props,classes,values,ICList,Model,CurPar,LastIns,split,RemoveAndSplit,InstanceList)
  1361. local tonum,table_remove,inst,parnt,comma,table_foreach = tonumber,table.remove,Instance.new,"Parent",",",
  1362. function(t,f)
  1363. for a,b in pairs(t) do
  1364. f(a,b)
  1365. end
  1366. end
  1367. local Types = {
  1368. Color3 = Color3.new,
  1369. Vector3 = Vector3.new,
  1370. Vector2 = Vector2.new,
  1371. UDim = UDim.new,
  1372. UDim2 = UDim2.new,
  1373. CFrame = CFrame.new,
  1374. Rect = Rect.new,
  1375. NumberRange = NumberRange.new,
  1376. BrickColor = BrickColor.new,
  1377. PhysicalProperties = PhysicalProperties.new,
  1378. NumberSequence = function(...)
  1379. local a = {...}
  1380. local t = {}
  1381. repeat
  1382. t[#t+1] = NumberSequenceKeypoint.new(table_remove(a,1),table_remove(a,1),table_remove(a,1))
  1383. until #a==0
  1384. return NumberSequence.new(t)
  1385. end,
  1386. ColorSequence = function(...)
  1387. local a = {...}
  1388. local t = {}
  1389. repeat
  1390. t[#t+1] = ColorSequenceKeypoint.new(table_remove(a,1),Color3.new(table_remove(a,1),table_remove(a,1),table_remove(a,1)))
  1391. until #a==0
  1392. return ColorSequence.new(t)
  1393. end,
  1394. number = tonumber,
  1395. boolean = function(a)
  1396. return a=="1"
  1397. end
  1398. }
  1399. split = function(str,sep)
  1400. if not str then return end
  1401. local fields = {}
  1402. local ConcatNext = false
  1403. str:gsub(("([^%s]+)"):format(sep),function(c)
  1404. if ConcatNext == true then
  1405. fields[#fields] = fields[#fields]..sep..c
  1406. ConcatNext = false
  1407. else
  1408. fields[#fields+1] = c
  1409. end
  1410. if c:sub(#c)=="\\" then
  1411. c = fields[#fields]
  1412. fields[#fields] = c:sub(1,#c-1)
  1413. ConcatNext = true
  1414. end
  1415. end)
  1416. return fields
  1417. end
  1418. RemoveAndSplit = function(t)
  1419. return split(table_remove(t,1),comma)
  1420. end
  1421. t = split(str,";")
  1422. props = RemoveAndSplit(t)
  1423. classes = RemoveAndSplit(t)
  1424. values = split(table_remove(t,1),'|')
  1425. ICList = RemoveAndSplit(t)
  1426. InstanceList = {}
  1427. Model = inst"Model"
  1428. CurPar = Model
  1429. table_foreach(t,function(ct,c)
  1430. if c=="n" or c=="p" then
  1431. CurPar = c=="n" and LastIns or CurPar[parnt]
  1432. else
  1433. ct = split(c,"|")
  1434. local class = classes[tonum(table_remove(ct,1))]
  1435. if class=="UnionOperation" then
  1436. LastIns = {UsePartColor="1"}
  1437. else
  1438. LastIns = inst(class)
  1439. if LastIns:IsA"Script" then
  1440. s(LastIns)
  1441. elseif LastIns:IsA("ModuleScript") then
  1442. ms(LastIns)
  1443. end
  1444. end
  1445.  
  1446. local function SetProperty(LastIns,p,str,s)
  1447. s = Types[typeof(LastIns[p])]
  1448. if p=="CustomPhysicalProperties" then
  1449. s = PhysicalProperties.new
  1450. end
  1451. if s then
  1452. LastIns[p] = s(unpack(split(str,comma)))
  1453. else
  1454. LastIns[p] = str
  1455. end
  1456. end
  1457.  
  1458. local UnionData
  1459. table_foreach(ct,function(s,p,a,str)
  1460. a = p:find":"
  1461. p,str = props[tonum(p:sub(1,a-1))],values[tonum(p:sub(a+1))]
  1462. if p=="UnionData" then
  1463. UnionData = split(str," ")
  1464. return
  1465. end
  1466. if class=="UnionOperation" then
  1467. LastIns[p] = str
  1468. return
  1469. end
  1470. SetProperty(LastIns,p,str)
  1471. end)
  1472.  
  1473. if UnionData then
  1474. local LI_Data = LastIns
  1475. LastIns = DecodeUnion(UnionData)
  1476. table_foreach(LI_Data,function(p,str)
  1477. SetProperty(LastIns,p,str)
  1478. end)
  1479. end
  1480. table.insert(InstanceList,LastIns)
  1481. LastIns[parnt] = CurPar
  1482. end
  1483. end)
  1484. table_remove(ICList,1)
  1485. table_foreach(ICList,function(a,b)
  1486. b = split(b,">")
  1487. InstanceList[tonum(b[1])][props[tonum(b[2])]] = InstanceList[tonum(b[3])]
  1488. end)
  1489.  
  1490. return Model:GetChildren()
  1491. end
  1492.  
  1493. local Objects = Decode('Name,PrimaryPart,Color,Transparency,Position,Size,TopSurface,Looped,SoundId,Volume,LeftSurface,RightSurface,MaxVelocity,C0,C1,Part0,Part1,Material,Anchored,BottomSurface,MeshType,Orientation,Texture,F'
  1494. ..'ace,CanCollide,AnimationId,Value,DisplayDistanceType,HealthDisplayDistance,NameDisplayDistance,NameOcclusion,Health,MaxHealth,JumpPower,MaxSlopeAngle;Part,Model,Sound,Decal,Motor6D,Script,MeshPart,Spe'
  1495. ..'cialMesh,StringValue,Animation,NumberValue,Humanoid;Part|MonsterDespacitoNPC|Head|0.3843,0.145,0.8196|1|-16.0244,4.5,-46.272|2,1,1|0|Jeff_Laugh|rbxassetid://1564751175|10|Torso|-16.0244,3,-46.272|2,2,'
  1496. ..'1|2|roblox|Right Shoulder|0.1|1,0.5,0,0,0,1,0,1,-0,-1,0,0|-0.5,0.5,0,0,0,1,0,1,-0,-1,0,0|Left Shoulder|-1,0.5,0,0,0,-1,0,1,0,1,0,0|0.5,0.5,0,0,0,-1,0,1,0,1,0,0|Right Hip|1,-1,0,0,0,1,0,1,-0,-1,0,0|0.5'
  1497. ..',1,0,0,0,1,0,1,-0,-1,0,0|Left Hip|-1,-1,0,0,0,-1,0,1,0,1,0,0|-0.5,1,0,0,0,-1,0,1,0,1,0,0|Neck|0,1,0,-1,0,0,0,0,1,0,1,-0|0,-0.5,0,-1,0,0,0,0,1,0,1,-0|qPerfectionWeld|De$p!ciT0|1,1,0|800|-16.1004,3.6027'
  1498. ..',-46.5722|3.0663,3.0663,3.0663|288|-16.5072,4.0745,-47.8904|0.58,0.99,0.57|3|-15.7372,4.0745,-47.8904|0.0666,0.0666,0.0666|272|-16.0901,3.2633,-47.8454|0,0,91.6999|1.6,1.07,0.62|EnhancedCone|0.9725,0.'
  1499. ..'9725,0.9725|1056|-16.1585,3.6442,-48.2854|-85.6501,-22.97,23.02|0.19,0.6199,0.18|blood|0.4|http://www.roblox.com/asset/?id=1927066320|-16.3185,3.5342,-48.2854|1|-16.3185,3.3442,-48.2854|-16.3185,3.084'
  1500. ..'2,-48.2854|-16.1485,2.9542,-48.2854|-15.8985,2.9542,-48.2854|-15.7885,3.3442,-48.2854|-15.7885,3.0842,-48.2854|-15.7885,3.5342,-48.2854|-15.9185,3.6442,-48.2854|0.6999|1,0,0|1040|-16.0885,1.8663,-46.5'
  1501. ..'646|0,180,180|-15.6972,1.4945,-45.2504|-16.5072,1.4945,-45.2504|-16.0824,2.2535,-45.2908|-0.06,178,88.3|-16.0521,2.6374,-44.8491|-85.71,-158.7401,-23.32|-15.886,2.5371,-44.8434|-15.8747,2.3474,-44.843'
  1502. ..'2|-15.8593,2.0878,-44.8429|-16.0212,1.948,-44.8487|-16.2706,1.9332,-44.8574|-16.4035,2.316,-44.8616|-16.3881,2.0565,-44.8614|-16.4147,2.5057,-44.8618|-16.2915,2.6232,-44.8574|Left Arm|-17.5244,3,-46.2'
  1503. ..'72|1,2,1|0|Right Arm|-14.5244,3,-46.272|Left Leg|-16.5244,1,-46.272|880|-16.1002,1.3995,-46.6007|7.2321,2.7791,4.6588|Right Leg|-15.5244,1,-46.272|HumanoidRootPart|RootJoint|0,0,0,-1,0,0,0,0,1,0,1,-0|'
  1504. ..'AnimateSauce|climb|ClimbAnim|http://www.roblox.com/asset/?id=180436334|fall|FallAnim|http://www.roblox.com/asset/?id=180436148|idle|Animation1|http://www.roblox.com/asset/?id=180435571|Weight|9|Animat'
  1505. ..'ion2|http://www.roblox.com/asset/?id=180435792|jump|JumpAnim|http://www.roblox.com/asset/?id=125750702|run|RunAnim|http://www.roblox.com/asset/?id=252557606|sit|SitAnim|http://www.roblox.com/asset/?id'
  1506. ..'=178130996|toolnone|ToolNoneAnim|http://www.roblox.com/asset/?id=182393478|walk|WalkAnim|http://www.roblox.com/asset/?id=180426354|ColdBloodedKiller|500|60|89.9|Status|AvalibleSpawns|Health|JeffTheKil'
  1507. ..'lerMain|Respawn|Swing|rbxassetid://54584713;0,1>2>2,6>16>4,6>17>56,7>16>4,7>17>55,8>16>4,8>17>62,9>16>4,9>17>57,10>16>4,10>17>2,64>16>63,64>17>4;2|1:2;n;1|1:3|3:4|4:5|5:6|6:7|7:8|3:4|3:4;n;3|1:9|8:5|9'
  1508. ..':10|10:11;p;1|1:12|3:4|4:5|5:13|6:14|11:15|12:15|3:4|3:4;n;4|1:16;5|1:17|13:18|14:19|15:20;5|1:21|13:18|14:22|15:23;5|1:24|13:18|14:25|15:26;5|1:27|13:18|14:28|15:29;5|1:30|13:18|14:31|15:32;6|1:33;2|'
  1509. ..'1:34;n;7|3:35|18:36|5:37|6:38|3:35|3:35;n;1|19:5|18:39|5:40|6:41|20:8|7:8;n;8|21:42;p;1|19:5|18:39|5:43|6:41|20:8|7:8;n;8|21:42;p;1|19:5|3:44|18:45|5:46|22:47|6:48|20:8|7:8|3:44|3:44;n;8|21:42;2;n;7|1'
  1510. ..':49|3:50|18:51|5:52|22:53|6:54|3:50|3:50;n;4|1:55|4:56|23:57|24:15;p;7|1:49|3:50|18:51|5:58|22:53|6:54|3:50|3:50;n;4|1:55|23:57|24:59;p;7|1:49|3:50|18:51|5:60|22:53|6:54|3:50|3:50;7|1:49|3:50|18:51|5:'
  1511. ..'61|22:53|6:54|3:50|3:50;7|1:49|3:50|18:51|5:62|22:53|6:54|3:50|3:50;7|1:49|3:50|18:51|5:63|22:53|6:54|3:50|3:50;7|1:49|3:50|18:51|5:64|22:53|6:54|3:50|3:50;7|1:49|3:50|18:51|5:65|22:53|6:54|3:50|3:50;'
  1512. ..'7|1:49|3:50|18:51|5:66|22:53|6:54|3:50|3:50;7|1:49|3:50|18:51|5:67|22:53|6:54|3:50|3:50;p;p;4|1:55|4:68|23:57;4|1:55|4:68|23:57|24:8;p;7|3:69|18:70|5:71|22:72|6:38|3:69|3:69;n;1|19:5|18:39|5:73|6:41|2'
  1513. ..'0:8|7:8;n;8|21:42;p;1|19:5|18:39|5:74|6:41|20:8|7:8;n;8|21:42;p;1|19:5|3:44|18:45|5:75|22:76|6:48|20:8|7:8|3:44|3:44;n;8|21:42;2;n;7|1:49|3:50|18:51|5:77|22:78|6:54|3:50|3:50;7|1:49|3:50|18:51|5:79|22'
  1514. ..':78|6:54|3:50|3:50;7|1:49|3:50|18:51|5:80|22:78|6:54|3:50|3:50;7|1:49|3:50|18:51|5:81|22:78|6:54|3:50|3:50;7|1:49|3:50|18:51|5:82|22:78|6:54|3:50|3:50;7|1:49|3:50|18:51|5:83|22:78|6:54|3:50|3:50;7|1:4'
  1515. ..'9|3:50|18:51|5:84|22:78|6:54|3:50|3:50;7|1:49|3:50|18:51|5:85|22:78|6:54|3:50|3:50;7|1:49|3:50|18:51|5:86|22:78|6:54|3:50|3:50;7|1:49|3:50|18:51|5:87|22:78|6:54|3:50|3:50;p;p;4|1:55|4:68|23:57;4|1:55|'
  1516. ..'4:68|23:57|24:42;p;p;p;1|1:88|3:4|4:5|5:89|6:90|25:91|3:4|3:4;1|1:92|3:4|4:5|5:93|6:90|25:91|3:4|3:4;1|1:94|3:4|4:5|5:95|6:90|25:91|20:8|3:4|3:4;n;6|1:33;7|3:44|18:96|5:97|6:98|3:44|3:44;n;4|1:55|4:68'
  1517. ..'|23:57|24:59;4|1:55|4:68|23:57;p;p;1|1:99|3:4|4:5|5:100|6:90|25:91|20:8|3:4|3:4;1|1:101|4:5|5:13|6:14|25:91|20:8|7:8;n;5|1:102|13:18|14:103|15:103;p;6|1:104;n;9|1:105;n;10|1:106|26:107;p;9|1:108;n;10|'
  1518. ..'1:109|26:110;p;9|1:111;n;10|1:112|26:113;n;11|1:114|27:115;p;10|1:116|26:117;n;11|1:114|27:5;p;p;9|1:118;n;10|1:119|26:120;p;9|1:121;n;10|1:122|26:123;p;9|1:124;n;10|1:125|26:126;p;9|1:127;n;10|1:128|'
  1519. ..'26:129;p;9|1:130;n;10|1:131|26:132;p;p;12|1:133|28:15|29:91|30:91|31:59|32:134|33:134|34:135|35:136;n;2|1:137;n;2|1:138;p;p;6|1:139;6|1:140;6|1:141;10|1:142|26:143;p;')
  1520. for _,Object in pairs(Objects) do
  1521. Object.Parent = script and script.Parent==workspace and script or workspace
  1522. end
  1523. for _,f in pairs(ActualScripts) do f() end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement