Advertisement
doryna2281337

Untitled

Aug 17th, 2019
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  2. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  3. do
  4. print("FE Compatibility code by Mokiros")
  5. script.Parent = Player.Character
  6.  
  7. --RemoteEvent for communicating
  8. local Event = Instance.new("RemoteEvent")
  9. Event.Name = "UserInput_Event"
  10.  
  11. --Fake event to make stuff like Mouse.KeyDown work
  12. local function fakeEvent()
  13. local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  14. t.connect = t.Connect
  15. return t
  16. end
  17.  
  18. --Creating fake input objects with fake variables
  19. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  20. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  21. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  22. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  23. end}
  24. --Merged 2 functions into one by checking amount of arguments
  25. CAS.UnbindAction = CAS.BindAction
  26.  
  27. --This function will trigger the events that have been :Connect()'ed
  28. local function te(self,ev,...)
  29. local t = m[ev]
  30. if t and t._fakeEvent and t.Function then
  31. t.Function(...)
  32. end
  33. end
  34. m.TrigEvent = te
  35. UIS.TrigEvent = te
  36.  
  37. Event.OnServerEvent:Connect(function(plr,io)
  38. if plr~=Player then return end
  39. if io.isMouse then
  40. m.Target = io.Target
  41. m.Hit = io.Hit
  42. else
  43. local b = io.UserInputState == Enum.UserInputState.Begin
  44. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  45. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  46. end
  47. for _,t in pairs(CAS.Actions) do
  48. for _,k in pairs(t.Keys) do
  49. if k==io.KeyCode then
  50. t.Function(t.Name,io.UserInputState,io)
  51. end
  52. end
  53. end
  54. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  55. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  56. end
  57. end)
  58. Event.Parent = NLS([==[
  59. local Player = owner
  60. local Event = script:WaitForChild("UserInput_Event")
  61.  
  62. local UIS = game:GetService("UserInputService")
  63. local input = function(io,a)
  64. if a then return end
  65. --Since InputObject is a client-side instance, we create and pass table instead
  66. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  67. end
  68. UIS.InputBegan:Connect(input)
  69. UIS.InputEnded:Connect(input)
  70.  
  71. local Mouse = Player:GetMouse()
  72. local h,t
  73. --Give the server mouse data 30 times every second, but only if the values changed
  74. --If player is not moving their mouse, client won't fire events
  75. while wait(1/30) do
  76. if h~=Mouse.Hit or t~=Mouse.Target then
  77. h,t=Mouse.Hit,Mouse.Target
  78. Event:FireServer({isMouse=true,Target=t,Hit=h})
  79. end
  80. end]==],Player.Character)
  81. Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  82. end
  83.  
  84.  
  85. --Converted with ttyyuu12345's model to script plugin v4
  86. function sandbox(var,func)
  87. local env = getfenv(func)
  88. local newenv = setmetatable({},{
  89. __index = function(self,k)
  90. if k=="script" then
  91. return var
  92. else
  93. return env[k]
  94. end
  95. end,
  96. })
  97. setfenv(func,newenv)
  98. return func
  99. end
  100. print("e - kill-teleport, q - oii hate skids")
  101. function swait(num)
  102. if num == 0 or num == nil then
  103. game:service("RunService").Stepped:wait(0)
  104. else
  105. for i = 0, num do
  106. game:service("RunService").Stepped:wait(0)
  107. end
  108. end
  109. end
  110. EffectModel = Instance.new("Model", cha)
  111. Effects = {
  112. Block = {
  113. Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay, Type)
  114. local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new())
  115. prt.Anchored = true
  116. prt.CFrame = cframe
  117. local msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
  118. game:GetService("Debris"):AddItem(prt, 10)
  119. if Type == 1 or Type == nil then
  120. table.insert(Effects, {
  121. prt,
  122. "Block1",
  123. delay,
  124. x3,
  125. y3,
  126. z3,
  127. msh
  128. })
  129. elseif Type == 2 then
  130. table.insert(Effects, {
  131. prt,
  132. "Block2",
  133. delay,
  134. x3,
  135. y3,
  136. z3,
  137. msh
  138. })
  139. else
  140. table.insert(Effects, {
  141. prt,
  142. "Block3",
  143. delay,
  144. x3,
  145. y3,
  146. z3,
  147. msh
  148. })
  149. end
  150. end
  151. },
  152. Sphere = {
  153. Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
  154. local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
  155. prt.Anchored = true
  156. prt.CFrame = cframe
  157. local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
  158. game:GetService("Debris"):AddItem(prt, 10)
  159. table.insert(Effects, {
  160. prt,
  161. "Cylinder",
  162. delay,
  163. x3,
  164. y3,
  165. z3,
  166. msh
  167. })
  168. end
  169. },
  170. Cylinder = {
  171. Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
  172. local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new())
  173. prt.Anchored = true
  174. prt.CFrame = cframe
  175. local msh = CFuncs.Mesh.Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
  176. game:GetService("Debris"):AddItem(prt, 10)
  177. table.insert(Effects, {
  178. prt,
  179. "Cylinder",
  180. delay,
  181. x3,
  182. y3,
  183. z3,
  184. msh
  185. })
  186. end
  187. },
  188. Wave = {
  189. Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
  190. local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
  191. prt.Anchored = true
  192. prt.CFrame = cframe
  193. local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "FileMesh", "rbxassetid://0", Vector3.new(0, 0, 0), Vector3.new(x1 / 60, y1 / 60, z1 / 60))
  194. Cso("158037267", tors, 10, 1)
  195. wait(0,35)
  196. game:GetService("Debris"):AddItem(prt, 10)
  197. table.insert(Effects, {
  198. prt,
  199. "Cylinder",
  200. delay,
  201. x3 / 60,
  202. y3 / 60,
  203. z3 / 60,
  204. msh
  205. })
  206. end
  207. },
  208. Ring = {
  209. Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
  210. local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new())
  211. prt.Anchored = true
  212. prt.CFrame = cframe
  213. local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "FileMesh", "rbxassetid://3270017", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
  214. game:GetService("Debris"):AddItem(prt, 10)
  215. table.insert(Effects, {
  216. prt,
  217. "Cylinder",
  218. delay,
  219. x3,
  220. y3,
  221. z3,
  222. msh
  223. })
  224. end
  225. },
  226. Break = {
  227. Create = function(brickcolor, cframe, x1, y1, z1)
  228. local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new(0.5, 0.5, 0.5))
  229. prt.Anchored = true
  230. prt.CFrame = cframe * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
  231. local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
  232. local num = math.random(10, 50) / 1000
  233. game:GetService("Debris"):AddItem(prt, 10)
  234. table.insert(Effects, {
  235. prt,
  236. "Shatter",
  237. num,
  238. prt.CFrame,
  239. math.random() - math.random(),
  240. 0,
  241. math.random(50, 100) / 100
  242. })
  243. end
  244. },
  245. Spiral = {
  246. Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
  247. local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new())
  248. prt.Anchored = true
  249. prt.CFrame = cframe
  250. local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "FileMesh", "rbxassetid://1051557", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
  251. game:GetService("Debris"):AddItem(prt, 10)
  252. table.insert(Effects, {
  253. prt,
  254. "Cylinder",
  255. delay,
  256. x3,
  257. y3,
  258. z3,
  259. msh
  260. })
  261. end
  262. },
  263. Push = {
  264. Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
  265. local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new())
  266. prt.Anchored = true
  267. prt.CFrame = cframe
  268. local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "FileMesh", "rbxassetid://437347603", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
  269. game:GetService("Debris"):AddItem(prt, 10)
  270. table.insert(Effects, {
  271. prt,
  272. "Cylinder",
  273. delay,
  274. x3,
  275. y3,
  276. z3,
  277. msh
  278. })
  279. end
  280. }
  281. }
  282. CFuncs = {
  283. Part = {
  284. Create = function(Parent, Material, Reflectance, Transparency, BColor, Name, Size)
  285. local Part = Create("Part")({
  286. Parent = Parent,
  287. Reflectance = Reflectance,
  288. Transparency = Transparency,
  289. CanCollide = false,
  290. Locked = true,
  291. BrickColor = BrickColor.new(tostring(BColor)),
  292. Name = Name,
  293. Size = Size,
  294. Material = Material
  295. })
  296. RemoveOutlines(Part)
  297. return Part
  298. end
  299. },
  300. Mesh = {
  301. Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale)
  302. local Msh = Create(Mesh)({
  303. Parent = Part,
  304. Offset = OffSet,
  305. Scale = Scale
  306. })
  307. if Mesh == "SpecialMesh" then
  308. Msh.MeshType = MeshType
  309. Msh.MeshId = MeshId
  310. end
  311. return Msh
  312. end
  313. },
  314. Mesh = {
  315. Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale)
  316. local Msh = Create(Mesh)({
  317. Parent = Part,
  318. Offset = OffSet,
  319. Scale = Scale
  320. })
  321. if Mesh == "SpecialMesh" then
  322. Msh.MeshType = MeshType
  323. Msh.MeshId = MeshId
  324. end
  325. return Msh
  326. end
  327. },
  328. Weld = {
  329. Create = function(Parent, Part0, Part1, C0, C1)
  330. local Weld = Create("Weld")({
  331. Parent = Parent,
  332. Part0 = Part0,
  333. Part1 = Part1,
  334. C0 = C0,
  335. C1 = C1
  336. })
  337. return Weld
  338. end
  339. },
  340. Sound = {
  341. Create = function(id, par, vol, pit)
  342. coroutine.resume(coroutine.create(function()
  343. local S = Create("Sound")({
  344. Volume = vol,
  345. Pitch = pit or 1,
  346. SoundId = id,
  347. Parent = par or workspace
  348. })
  349. wait()
  350. S:play()
  351. game:GetService("Debris"):AddItem(S, 6)
  352. end))
  353. end
  354. },
  355. ParticleEmitter = {
  356. Create = function(Parent, Color1, Color2, LightEmission, Size, Texture, Transparency, ZOffset, Accel, Drag, LockedToPart, VelocityInheritance, EmissionDirection, Enabled, LifeTime, Rate, Rotation, RotSpeed, Speed, VelocitySpread)
  357. local fp = Create("ParticleEmitter")({
  358. Parent = Parent,
  359. Color = ColorSequence.new(Color1, Color2),
  360. LightEmission = LightEmission,
  361. Size = Size,
  362. Texture = Texture,
  363. Transparency = Transparency,
  364. ZOffset = ZOffset,
  365. Acceleration = Accel,
  366. Drag = Drag,
  367. LockedToPart = LockedToPart,
  368. VelocityInheritance = VelocityInheritance,
  369. EmissionDirection = EmissionDirection,
  370. Enabled = Enabled,
  371. Lifetime = LifeTime,
  372. Rate = Rate,
  373. Rotation = Rotation,
  374. RotSpeed = RotSpeed,
  375. Speed = Speed,
  376. VelocitySpread = VelocitySpread
  377. })
  378. return fp
  379. end
  380. }
  381. }
  382. function Cso(ID, PARENT, VOLUME, PITCH)
  383. local NSound = nil
  384. coroutine.resume(coroutine.create(function()
  385. NSound = IT("Sound", PARENT)
  386. NSound.Volume = VOLUME
  387. NSound.Pitch = PITCH
  388. NSound.SoundId = "http://www.roblox.com/asset/?id="..ID
  389. swait()
  390. NSound:play()
  391. game:GetService("Debris"):AddItem(NSound, 50)
  392. end))
  393. return NSound
  394. end
  395. function chafunc(text, color)
  396. local char = owner.Character
  397. local chat = coroutine.wrap(function()
  398. if char:FindFirstChild("TalkingBillBoard") ~= nil then
  399. char:FindFirstChild("TalkingBillBoard"):destroy()
  400. end
  401. local naeeym2 = Instance.new("BillboardGui", char)
  402. naeeym2.Size = UDim2.new(0, 100, 0, 40)
  403. naeeym2.StudsOffset = Vector3.new(0, 3, 0)
  404. naeeym2.Adornee = hed
  405. naeeym2.Name = "TalkingBillBoard"
  406. local tecks2 = Instance.new("TextLabel", naeeym2)
  407. tecks2.BackgroundTransparency = 1
  408. tecks2.BorderSizePixel = 0
  409. tecks2.Text = ""
  410. tecks2.Font = "Fantasy"
  411. tecks2.TextSize = 30
  412. tecks2.TextStrokeTransparency = 0
  413. tecks2.TextColor3 = color
  414. tecks2.TextStrokeColor3 = Color3.new(232, 186, 200)
  415. tecks2.Size = UDim2.new(1, 0, 0.5, 0)
  416. local tecks3 = Instance.new("TextLabel", naeeym2)
  417. tecks3.BackgroundTransparency = 1
  418. tecks3.BorderSizePixel = 0
  419. tecks3.Text = ""
  420. tecks3.Font = "Fantasy"
  421. tecks3.TextSize = 30
  422. tecks3.TextStrokeTransparency = 0
  423. tecks3.TextColor3 = Color3.new(0, 0, 0)
  424. tecks3.TextStrokeColor3 = color
  425. tecks3.Size = UDim2.new(1, 0, 0.5, 0)
  426. coroutine.resume(coroutine.create(function()
  427. while true do
  428. swait(1)
  429. tecks2.Position = UDim2.new(0, math.random(-5, 5), 0, math.random(-5, 5))
  430. tecks3.Position = UDim2.new(0, math.random(-5, 5), 0, math.random(-5, 5))
  431. tecks2.Rotation = math.random(-5, 5)
  432. tecks3.Rotation = math.random(-5, 5)
  433. end
  434. end))
  435. for i = 1, string.len(text) do
  436. tecks2.Text = string.sub(text, 1, i)
  437. tecks3.Text = string.sub(text, 1, i)
  438. swait(1)
  439. end
  440. wait(1)
  441. local randomrot = math.random(1, 2)
  442. if randomrot == 1 then
  443. for i = 1, 50 do
  444. swait()
  445. tecks2.Rotation = tecks2.Rotation - 0.75
  446. tecks2.TextStrokeTransparency = tecks2.TextStrokeTransparency + 0.04
  447. tecks2.TextTransparency = tecks2.TextTransparency + 0.04
  448. tecks3.Rotation = tecks2.Rotation + 0.75
  449. tecks3.TextStrokeTransparency = tecks2.TextStrokeTransparency + 0.04
  450. tecks3.TextTransparency = tecks2.TextTransparency + 0.04
  451. end
  452. elseif randomrot == 2 then
  453. for i = 1, 50 do
  454. swait()
  455. tecks2.Rotation = tecks2.Rotation + 0.75
  456. tecks2.TextStrokeTransparency = tecks2.TextStrokeTransparency + 0.04
  457. tecks2.TextTransparency = tecks2.TextTransparency + 0.04
  458. tecks3.Rotation = tecks2.Rotation - 0.75
  459. tecks3.TextStrokeTransparency = tecks2.TextStrokeTransparency + 0.04
  460. tecks3.TextTransparency = tecks2.TextTransparency + 0.04
  461. end
  462. end
  463. naeeym2:Destroy()
  464. end)
  465. chat()
  466. end
  467.  
  468. cors = {}
  469. mas = Instance.new("Model",game:GetService("Lighting"))
  470. Model0 = Instance.new("Model")
  471. Part1 = Instance.new("Part")
  472. Decal2 = Instance.new("Decal")
  473. Sound3 = Instance.new("Sound")
  474. Sound4 = Instance.new("Sound")
  475. Sound5 = Instance.new("Sound")
  476. Sound6 = Instance.new("Sound")
  477. Sound7 = Instance.new("Sound")
  478. Sound8 = Instance.new("Sound")
  479. Sound9 = Instance.new("Sound")
  480. Sound10 = Instance.new("Sound")
  481. Sound11 = Instance.new("Sound")
  482. CylinderMesh12 = Instance.new("CylinderMesh")
  483. Part13 = Instance.new("Part")
  484. Decal14 = Instance.new("Decal")
  485. Motor6D15 = Instance.new("Motor6D")
  486. Motor6D16 = Instance.new("Motor6D")
  487. Motor6D17 = Instance.new("Motor6D")
  488. Motor6D18 = Instance.new("Motor6D")
  489. Motor6D19 = Instance.new("Motor6D")
  490. Part20 = Instance.new("Part")
  491. Part21 = Instance.new("Part")
  492. Part22 = Instance.new("Part")
  493. Part23 = Instance.new("Part")
  494. Humanoid24 = Instance.new("Humanoid")
  495. Part25 = Instance.new("Part")
  496. Motor6D26 = Instance.new("Motor6D")
  497. Script27 = Instance.new("Script")
  498. LocalScript28 = Instance.new("LocalScript")
  499. LocalScript29 = Instance.new("LocalScript")
  500. StringValue30 = Instance.new("StringValue")
  501. Animation31 = Instance.new("Animation")
  502. NumberValue32 = Instance.new("NumberValue")
  503. Animation33 = Instance.new("Animation")
  504. NumberValue34 = Instance.new("NumberValue")
  505. StringValue35 = Instance.new("StringValue")
  506. Animation36 = Instance.new("Animation")
  507. StringValue37 = Instance.new("StringValue")
  508. Animation38 = Instance.new("Animation")
  509. StringValue39 = Instance.new("StringValue")
  510. Animation40 = Instance.new("Animation")
  511. StringValue41 = Instance.new("StringValue")
  512. Animation42 = Instance.new("Animation")
  513. StringValue43 = Instance.new("StringValue")
  514. Animation44 = Instance.new("Animation")
  515. StringValue45 = Instance.new("StringValue")
  516. Animation46 = Instance.new("Animation")
  517. StringValue47 = Instance.new("StringValue")
  518. Animation48 = Instance.new("Animation")
  519. Script49 = Instance.new("Script")
  520. BodyColors50 = Instance.new("BodyColors")
  521. Model0.Name = "oii"
  522. Model0.Parent = mas
  523. Part1.Name = "Head"
  524. Part1.Parent = Model0
  525. Part1.CFrame = CFrame.new(13.7936363, 4.50001431, -22.1235237, 0.993757904, 0, -0.111558832, 0, 1, 0, 0.111558832, 0, 0.993757904)
  526. Part1.Orientation = Vector3.new(0, -6.40999985, 0)
  527. Part1.Position = Vector3.new(13.7936363, 4.50001431, -22.1235237)
  528. Part1.Rotation = Vector3.new(0, -6.40999985, 0)
  529. Part1.Color = Color3.new(0.803922, 0, 0)
  530. Part1.Velocity = Vector3.new(5.33474325e-42, 0, -4.77520478e-41)
  531. Part1.Size = Vector3.new(2, 1, 1)
  532. Part1.BrickColor = BrickColor.new("Really red")
  533. Part1.Locked = true
  534. Part1.TopSurface = Enum.SurfaceType.Smooth
  535. Part1.brickColor = BrickColor.new("Really red")
  536. Part1.FormFactor = Enum.FormFactor.Symmetric
  537. Part1.formFactor = Enum.FormFactor.Symmetric
  538. Decal2.Name = "face"
  539. Decal2.Parent = Part1
  540. Decal2.Texture = "rbxasset://textures/face.png"
  541. Sound3.Name = "GettingUp"
  542. Sound3.Parent = Part1
  543. Sound3.MaxDistance = 150
  544. Sound3.EmitterSize = 5
  545. Sound3.MinDistance = 5
  546. Sound3.SoundId = "rbxasset://sounds/action_get_up.mp3"
  547. Sound3.Volume = 0.64999997615814
  548. Sound4.Name = "Died"
  549. Sound4.Parent = Part1
  550. Sound4.MaxDistance = 150
  551. Sound4.EmitterSize = 5
  552. Sound4.MinDistance = 5
  553. Sound4.SoundId = "rbxasset://sounds/uuhhh.mp3"
  554. Sound4.Volume = 0.64999997615814
  555. Sound5.Name = "FreeFalling"
  556. Sound5.Parent = Part1
  557. Sound5.Looped = true
  558. Sound5.TimePosition = 0.52838909903676
  559. Sound5.MaxDistance = 150
  560. Sound5.EmitterSize = 5
  561. Sound5.MinDistance = 5
  562. Sound5.SoundId = "rbxasset://sounds/action_falling.mp3"
  563. Sound5.Volume = 0
  564. Sound6.Name = "Jumping"
  565. Sound6.Parent = Part1
  566. Sound6.MaxDistance = 150
  567. Sound6.EmitterSize = 5
  568. Sound6.MinDistance = 5
  569. Sound6.SoundId = "rbxasset://sounds/action_jump.mp3"
  570. Sound6.Volume = 0.64999997615814
  571. Sound7.Name = "Landing"
  572. Sound7.Parent = Part1
  573. Sound7.MaxDistance = 150
  574. Sound7.EmitterSize = 5
  575. Sound7.MinDistance = 5
  576. Sound7.SoundId = "rbxasset://sounds/action_jump_land.mp3"
  577. Sound7.Volume = 1
  578. Sound8.Name = "Splash"
  579. Sound8.Parent = Part1
  580. Sound8.MaxDistance = 150
  581. Sound8.EmitterSize = 5
  582. Sound8.MinDistance = 5
  583. Sound8.SoundId = "rbxasset://sounds/impact_water.mp3"
  584. Sound8.Volume = 0.64999997615814
  585. Sound9.Name = "Running"
  586. Sound9.Parent = Part1
  587. Sound9.Looped = true
  588. Sound9.TimePosition = 1.7229757305085
  589. Sound9.MaxDistance = 150
  590. Sound9.EmitterSize = 5
  591. Sound9.MinDistance = 5
  592. Sound9.Pitch = 1.8500000238419
  593. Sound9.PlaybackSpeed = 1.8500000238419
  594. Sound9.SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3"
  595. Sound9.Volume = 0.64999997615814
  596. Sound10.Name = "Swimming"
  597. Sound10.Parent = Part1
  598. Sound10.Looped = true
  599. Sound10.MaxDistance = 150
  600. Sound10.EmitterSize = 5
  601. Sound10.MinDistance = 5
  602. Sound10.Pitch = 1.6000000238419
  603. Sound10.PlaybackSpeed = 1.6000000238419
  604. Sound10.SoundId = "rbxasset://sounds/action_swim.mp3"
  605. Sound10.Volume = 0.64999997615814
  606. Sound11.Name = "Climbing"
  607. Sound11.Parent = Part1
  608. Sound11.Looped = true
  609. Sound11.MaxDistance = 150
  610. Sound11.EmitterSize = 5
  611. Sound11.MinDistance = 5
  612. Sound11.SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3"
  613. Sound11.Volume = 0.64999997615814
  614. CylinderMesh12.Parent = Part1
  615. CylinderMesh12.Scale = Vector3.new(1.29999995, 1.29999995, 1.29999995)
  616. Part13.Name = "Torso"
  617. Part13.Parent = Model0
  618. Part13.CFrame = CFrame.new(13.7936363, 3.00001407, -22.1235237, 0.993757904, 0, -0.111558832, 0, 1, 0, 0.111558832, 0, 0.993757904)
  619. Part13.Orientation = Vector3.new(0, -6.40999985, 0)
  620. Part13.Position = Vector3.new(13.7936363, 3.00001407, -22.1235237)
  621. Part13.Rotation = Vector3.new(0, -6.40999985, 0)
  622. Part13.Color = Color3.new(1, 1, 0)
  623. Part13.Velocity = Vector3.new(5.33474325e-42, 0, -4.77520478e-41)
  624. Part13.Size = Vector3.new(2, 2, 1)
  625. Part13.BrickColor = BrickColor.new("New Yeller")
  626. Part13.LeftParamA = 0
  627. Part13.LeftParamB = 0
  628. Part13.LeftSurface = Enum.SurfaceType.Weld
  629. Part13.Locked = true
  630. Part13.RightParamA = 0
  631. Part13.RightParamB = 0
  632. Part13.RightSurface = Enum.SurfaceType.Weld
  633. Part13.brickColor = BrickColor.new("New Yeller")
  634. Part13.FormFactor = Enum.FormFactor.Symmetric
  635. Part13.formFactor = Enum.FormFactor.Symmetric
  636. Decal14.Name = "roblox"
  637. Decal14.Parent = Part13
  638. Motor6D15.Name = "Right Shoulder"
  639. Motor6D15.Parent = Part13
  640. Motor6D15.MaxVelocity = 0.10000000149012
  641. Motor6D15.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  642. Motor6D15.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  643. Motor6D15.Part0 = Part13
  644. Motor6D15.Part1 = Part21
  645. Motor6D15.part1 = Part21
  646. Motor6D16.Name = "Left Shoulder"
  647. Motor6D16.Parent = Part13
  648. Motor6D16.MaxVelocity = 0.10000000149012
  649. Motor6D16.C0 = CFrame.new(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  650. Motor6D16.C1 = CFrame.new(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  651. Motor6D16.Part0 = Part13
  652. Motor6D16.Part1 = Part20
  653. Motor6D16.part1 = Part20
  654. Motor6D17.Name = "Right Hip"
  655. Motor6D17.Parent = Part13
  656. Motor6D17.MaxVelocity = 0.10000000149012
  657. Motor6D17.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  658. Motor6D17.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  659. Motor6D17.Part0 = Part13
  660. Motor6D17.Part1 = Part23
  661. Motor6D17.part1 = Part23
  662. Motor6D18.Name = "Left Hip"
  663. Motor6D18.Parent = Part13
  664. Motor6D18.MaxVelocity = 0.10000000149012
  665. Motor6D18.C0 = CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  666. Motor6D18.C1 = CFrame.new(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  667. Motor6D18.Part0 = Part13
  668. Motor6D18.Part1 = Part22
  669. Motor6D18.part1 = Part22
  670. Motor6D19.Name = "Neck"
  671. Motor6D19.Parent = Part13
  672. Motor6D19.MaxVelocity = 0.10000000149012
  673. Motor6D19.C0 = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  674. Motor6D19.C1 = CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  675. Motor6D19.Part0 = Part13
  676. Motor6D19.Part1 = Part1
  677. Motor6D19.part1 = Part1
  678. Part20.Name = "Left Arm"
  679. Part20.Parent = Model0
  680. Part20.CFrame = CFrame.new(12.3029995, 3.00001407, -22.2908611, 0.993757904, 0, -0.111558832, 0, 1, 0, 0.111558832, 0, 0.993757904)
  681. Part20.Orientation = Vector3.new(0, -6.40999985, 0)
  682. Part20.Position = Vector3.new(12.3029995, 3.00001407, -22.2908611)
  683. Part20.Rotation = Vector3.new(0, -6.40999985, 0)
  684. Part20.Color = Color3.new(0.803922, 0, 0)
  685. Part20.Velocity = Vector3.new(5.33474325e-42, 0, -4.77520478e-41)
  686. Part20.Size = Vector3.new(1, 2, 1)
  687. Part20.BrickColor = BrickColor.new("Really red")
  688. Part20.CanCollide = false
  689. Part20.Locked = true
  690. Part20.brickColor = BrickColor.new("Really red")
  691. Part20.FormFactor = Enum.FormFactor.Symmetric
  692. Part20.formFactor = Enum.FormFactor.Symmetric
  693. Part21.Name = "Right Arm"
  694. Part21.Parent = Model0
  695. Part21.CFrame = CFrame.new(15.2842731, 3.00001407, -21.9561863, 0.993757904, 0, -0.111558832, 0, 1, 0, 0.111558832, 0, 0.993757904)
  696. Part21.Orientation = Vector3.new(0, -6.40999985, 0)
  697. Part21.Position = Vector3.new(15.2842731, 3.00001407, -21.9561863)
  698. Part21.Rotation = Vector3.new(0, -6.40999985, 0)
  699. Part21.Color = Color3.new(0.803922, 0, 0)
  700. Part21.Velocity = Vector3.new(5.33474325e-42, 0, -4.77520478e-41)
  701. Part21.Size = Vector3.new(1, 2, 1)
  702. Part21.BrickColor = BrickColor.new("Really red")
  703. Part21.CanCollide = false
  704. Part21.Locked = true
  705. Part21.brickColor = BrickColor.new("Really red")
  706. Part21.FormFactor = Enum.FormFactor.Symmetric
  707. Part21.formFactor = Enum.FormFactor.Symmetric
  708. Part22.Name = "Left Leg"
  709. Part22.Parent = Model0
  710. Part22.CFrame = CFrame.new(13.2967577, 1.00001407, -22.1793022, 0.993757904, 0, -0.111558832, 0, 1, 0, 0.111558832, 0, 0.993757904)
  711. Part22.Orientation = Vector3.new(0, -6.40999985, 0)
  712. Part22.Position = Vector3.new(13.2967577, 1.00001407, -22.1793022)
  713. Part22.Rotation = Vector3.new(0, -6.40999985, 0)
  714. Part22.Color = Color3.new(1, 1, 0)
  715. Part22.Velocity = Vector3.new(5.33474325e-42, 0, -4.77520478e-41)
  716. Part22.Size = Vector3.new(1, 2, 1)
  717. Part22.BottomSurface = Enum.SurfaceType.Smooth
  718. Part22.BrickColor = BrickColor.new("New Yeller")
  719. Part22.CanCollide = false
  720. Part22.Locked = true
  721. Part22.brickColor = BrickColor.new("New Yeller")
  722. Part22.FormFactor = Enum.FormFactor.Symmetric
  723. Part22.formFactor = Enum.FormFactor.Symmetric
  724. Part23.Name = "Right Leg"
  725. Part23.Parent = Model0
  726. Part23.CFrame = CFrame.new(14.2905149, 1.00001407, -22.0677452, 0.993757904, 0, -0.111558832, 0, 1, 0, 0.111558832, 0, 0.993757904)
  727. Part23.Orientation = Vector3.new(0, -6.40999985, 0)
  728. Part23.Position = Vector3.new(14.2905149, 1.00001407, -22.0677452)
  729. Part23.Rotation = Vector3.new(0, -6.40999985, 0)
  730. Part23.Color = Color3.new(1, 1, 0)
  731. Part23.Velocity = Vector3.new(5.33474325e-42, 0, -4.77520478e-41)
  732. Part23.Size = Vector3.new(1, 2, 1)
  733. Part23.BottomSurface = Enum.SurfaceType.Smooth
  734. Part23.BrickColor = BrickColor.new("New Yeller")
  735. Part23.CanCollide = false
  736. Part23.Locked = true
  737. Part23.brickColor = BrickColor.new("New Yeller")
  738. Part23.FormFactor = Enum.FormFactor.Symmetric
  739. Part23.formFactor = Enum.FormFactor.Symmetric
  740. Humanoid24.Parent = Model0
  741. Humanoid24.LeftLeg = Part22
  742. Humanoid24.RightLeg = Part23
  743. Humanoid24.Torso = Part25
  744. Part25.Name = "HumanoidRootPart"
  745. Part25.Parent = Model0
  746. Part25.CFrame = CFrame.new(13.7936363, 3.00001407, -22.1235237, 0.993757904, 0, -0.111558832, 0, 1, 0, 0.111558832, 0, 0.993757904)
  747. Part25.Orientation = Vector3.new(0, -6.40999985, 0)
  748. Part25.Position = Vector3.new(13.7936363, 3.00001407, -22.1235237)
  749. Part25.Rotation = Vector3.new(0, -6.40999985, 0)
  750. Part25.Transparency = 1
  751. Part25.Velocity = Vector3.new(5.33474325e-42, 0, -4.77520478e-41)
  752. Part25.Size = Vector3.new(2, 2, 1)
  753. Part25.BottomSurface = Enum.SurfaceType.Smooth
  754. Part25.CanCollide = false
  755. Part25.LeftParamA = 0
  756. Part25.LeftParamB = 0
  757. Part25.Locked = true
  758. Part25.RightParamA = 0
  759. Part25.RightParamB = 0
  760. Part25.TopSurface = Enum.SurfaceType.Smooth
  761. Part25.FormFactor = Enum.FormFactor.Symmetric
  762. Part25.formFactor = Enum.FormFactor.Symmetric
  763. Motor6D26.Name = "RootJoint"
  764. Motor6D26.Parent = Part25
  765. Motor6D26.MaxVelocity = 0.10000000149012
  766. Motor6D26.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  767. Motor6D26.C1 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  768. Motor6D26.Part0 = Part25
  769. Motor6D26.Part1 = Part13
  770. Motor6D26.part1 = Part13
  771. Script27.Name = "Sound"
  772. Script27.Parent = Model0
  773. table.insert(cors,sandbox(Script27,function()
  774. --[[
  775. Author: @spotco
  776. This script creates sounds which are placed under the character head.
  777. These sounds are used by the "LocalSound" script.
  778.  
  779. To modify this script, copy it to your "StarterPlayer/StarterCharacterScripts" folder keeping the same script name ("Sound").
  780. The default Sound script loaded for every character will then be replaced with your copy of the script.
  781. ]]--
  782.  
  783. function CreateNewSound(name, id, looped, pitch, parent)
  784. local sound = Instance.new("Sound")
  785. sound.SoundId = id
  786. sound.Name = name
  787. sound.archivable = false
  788. sound.Parent = parent
  789. sound.Pitch = pitch
  790. sound.Looped = looped
  791.  
  792. sound.MinDistance = 5
  793. sound.MaxDistance = 150
  794. sound.Volume = 0.65
  795.  
  796. return sound
  797. end
  798.  
  799. local head = script.Parent:FindFirstChild("Head")
  800. if head == nil then
  801. error("Sound script parent has no child Head.")
  802. return
  803. end
  804.  
  805.  
  806. CreateNewSound("GettingUp", "rbxasset://sounds/action_get_up.mp3", false, 1, head)
  807. CreateNewSound("Died", "rbxasset://sounds/uuhhh.mp3", false, 1, head)
  808. CreateNewSound("FreeFalling", "rbxasset://sounds/action_falling.mp3", true, 1, head)
  809. CreateNewSound("Jumping", "rbxasset://sounds/action_jump.mp3", false, 1, head)
  810. CreateNewSound("Landing", "rbxasset://sounds/action_jump_land.mp3", false, 1, head)
  811. CreateNewSound("Splash", "rbxasset://sounds/impact_water.mp3", false, 1, head)
  812. CreateNewSound("Running", "rbxasset://sounds/action_footsteps_plastic.mp3", true, 1.85, head)
  813. CreateNewSound("Swimming", "rbxasset://sounds/action_swim.mp3", true, 1.6, head)
  814. CreateNewSound("Climbing", "rbxasset://sounds/action_footsteps_plastic.mp3", true, 1, head)
  815. end))
  816. LocalScript28.Name = "LocalSound"
  817. LocalScript28.Parent = Script27
  818. table.insert(cors,sandbox(LocalScript28,function()
  819. --[[
  820. Author: @spotco
  821. This script runs locally for the player of the given humanoid.
  822. This script triggers humanoid sound play/pause actions locally.
  823.  
  824. The Playing/TimePosition properties of Sound objects bypass FilteringEnabled, so this triggers the sound
  825. immediately for the player and is replicated to all other players.
  826.  
  827. This script is optimized to reduce network traffic through minimizing the amount of property replication.
  828. ]]--
  829.  
  830. --All sounds are referenced by this ID
  831. local SFX = {
  832. Died = 0;
  833. Running = 1;
  834. Swimming = 2;
  835. Climbing = 3,
  836. Jumping = 4;
  837. GettingUp = 5;
  838. FreeFalling = 6;
  839. FallingDown = 7;
  840. Landing = 8;
  841. Splash = 9;
  842. }
  843.  
  844. local Humanoid = nil
  845. local Head = nil
  846.  
  847. --SFX ID to Sound object
  848. local Sounds = {}
  849.  
  850. do
  851. local Figure = script.Parent.Parent
  852. Head = Figure:WaitForChild("Head")
  853. while not Humanoid do
  854. for _,NewHumanoid in pairs(Figure:GetChildren()) do
  855. if NewHumanoid:IsA("Humanoid") then
  856. Humanoid = NewHumanoid
  857. break
  858. end
  859. end
  860. Figure.ChildAdded:wait()
  861. end
  862.  
  863. Sounds[SFX.Died] = Head:WaitForChild("Died")
  864. Sounds[SFX.Running] = Head:WaitForChild("Running")
  865. Sounds[SFX.Swimming] = Head:WaitForChild("Swimming")
  866. Sounds[SFX.Climbing] = Head:WaitForChild("Climbing")
  867. Sounds[SFX.Jumping] = Head:WaitForChild("Jumping")
  868. Sounds[SFX.GettingUp] = Head:WaitForChild("GettingUp")
  869. Sounds[SFX.FreeFalling] = Head:WaitForChild("FreeFalling")
  870. Sounds[SFX.Landing] = Head:WaitForChild("Landing")
  871. Sounds[SFX.Splash] = Head:WaitForChild("Splash")
  872. end
  873.  
  874. local Util
  875. Util = {
  876.  
  877. --Define linear relationship between (pt1x,pt2x) and (pt2x,pt2y). Evaluate this at x.
  878. YForLineGivenXAndTwoPts = function(x,pt1x,pt1y,pt2x,pt2y)
  879. --(y - y1)/(x - x1) = m
  880. local m = (pt1y - pt2y) / (pt1x - pt2x)
  881. --float b = pt1.y - m * pt1.x;
  882. local b = (pt1y - m * pt1x)
  883. return m * x + b
  884. end;
  885.  
  886. --Clamps the value of "val" between the "min" and "max"
  887. Clamp = function(val,min,max)
  888. return math.min(max,math.max(min,val))
  889. end;
  890.  
  891. --Gets the horizontal (x,z) velocity magnitude of the given part
  892. HorizontalSpeed = function(Head)
  893. local hVel = Head.Velocity + Vector3.new(0,-Head.Velocity.Y,0)
  894. return hVel.magnitude
  895. end;
  896.  
  897. --Gets the vertical (y) velocity magnitude of the given part
  898. VerticalSpeed = function(Head)
  899. return math.abs(Head.Velocity.Y)
  900. end;
  901.  
  902. --Setting Playing/TimePosition values directly result in less network traffic than Play/Pause/Resume/Stop
  903. --If these properties are enabled, use them.
  904. Play = function(sound)
  905. if sound.TimePosition ~= 0 then
  906. sound.TimePosition = 0
  907. end
  908. if not sound.IsPlaying then
  909. sound.Playing = true
  910. end
  911. end;
  912. Pause = function(sound)
  913. if sound.IsPlaying then
  914. sound.Playing = false
  915. end
  916. end;
  917. Resume = function(sound)
  918. if not sound.IsPlaying then
  919. sound.Playing = true
  920. end
  921. end;
  922. Stop = function(sound)
  923. if sound.IsPlaying then
  924. sound.Playing = false
  925. end
  926. if sound.TimePosition ~= 0 then
  927. sound.TimePosition = 0
  928. end
  929. end;
  930. }
  931.  
  932. do
  933. -- List of all active Looped sounds
  934. local playingLoopedSounds = {}
  935.  
  936. -- Last seen Enum.HumanoidStateType
  937. local activeState = nil
  938.  
  939. -- Verify and set that "sound" is in "playingLoopedSounds".
  940. function setSoundInPlayingLoopedSounds(sound)
  941. for i=1, #playingLoopedSounds do
  942. if playingLoopedSounds[i] == sound then
  943. return
  944. end
  945. end
  946. table.insert(playingLoopedSounds,sound)
  947. end
  948.  
  949. -- Stop all active looped sounds except parameter "except". If "except" is not passed, all looped sounds will be stopped.
  950. function stopPlayingLoopedSoundsExcept(except)
  951. for i=#playingLoopedSounds,1,-1 do
  952. if playingLoopedSounds[i] ~= except then
  953. Util.Pause(playingLoopedSounds[i])
  954. table.remove(playingLoopedSounds,i)
  955. end
  956. end
  957. end
  958.  
  959. -- Table of Enum.HumanoidStateType to handling function
  960. local stateUpdateHandler = {
  961. [Enum.HumanoidStateType.Dead] = function()
  962. stopPlayingLoopedSoundsExcept()
  963. local sound = Sounds[SFX.Died]
  964. Util.Play(sound)
  965. end;
  966.  
  967. [Enum.HumanoidStateType.RunningNoPhysics] = function()
  968. stateUpdated(Enum.HumanoidStateType.Running)
  969. end;
  970.  
  971. [Enum.HumanoidStateType.Running] = function()
  972. local sound = Sounds[SFX.Running]
  973. stopPlayingLoopedSoundsExcept(sound)
  974.  
  975. if Util.HorizontalSpeed(Head) > 0.5 then
  976. Util.Resume(sound)
  977. setSoundInPlayingLoopedSounds(sound)
  978. else
  979. stopPlayingLoopedSoundsExcept()
  980. end
  981. end;
  982.  
  983. [Enum.HumanoidStateType.Swimming] = function()
  984. if activeState ~= Enum.HumanoidStateType.Swimming and Util.VerticalSpeed(Head) > 0.1 then
  985. local splashSound = Sounds[SFX.Splash]
  986. splashSound.Volume = Util.Clamp(
  987. Util.YForLineGivenXAndTwoPts(
  988. Util.VerticalSpeed(Head),
  989. 100, 0.28,
  990. 350, 1),
  991. 0,1)
  992. Util.Play(splashSound)
  993. end
  994.  
  995. do
  996. local sound = Sounds[SFX.Swimming]
  997. stopPlayingLoopedSoundsExcept(sound)
  998. Util.Resume(sound)
  999. setSoundInPlayingLoopedSounds(sound)
  1000. end
  1001. end;
  1002.  
  1003. [Enum.HumanoidStateType.Climbing] = function()
  1004. local sound = Sounds[SFX.Climbing]
  1005. if Util.VerticalSpeed(Head) > 0.1 then
  1006. Util.Resume(sound)
  1007. stopPlayingLoopedSoundsExcept(sound)
  1008. else
  1009. stopPlayingLoopedSoundsExcept()
  1010. end
  1011. setSoundInPlayingLoopedSounds(sound)
  1012. end;
  1013.  
  1014. [Enum.HumanoidStateType.Jumping] = function()
  1015. if activeState == Enum.HumanoidStateType.Jumping then
  1016. return
  1017. end
  1018. stopPlayingLoopedSoundsExcept()
  1019. local sound = Sounds[SFX.Jumping]
  1020. Util.Play(sound)
  1021. end;
  1022.  
  1023. [Enum.HumanoidStateType.GettingUp] = function()
  1024. stopPlayingLoopedSoundsExcept()
  1025. local sound = Sounds[SFX.GettingUp]
  1026. Util.Play(sound)
  1027. end;
  1028.  
  1029. [Enum.HumanoidStateType.Freefall] = function()
  1030. if activeState == Enum.HumanoidStateType.Freefall then
  1031. return
  1032. end
  1033. local sound = Sounds[SFX.FreeFalling]
  1034. sound.Volume = 0
  1035. stopPlayingLoopedSoundsExcept()
  1036. end;
  1037.  
  1038. [Enum.HumanoidStateType.FallingDown] = function()
  1039. stopPlayingLoopedSoundsExcept()
  1040. end;
  1041.  
  1042. [Enum.HumanoidStateType.Landed] = function()
  1043. stopPlayingLoopedSoundsExcept()
  1044. if Util.VerticalSpeed(Head) > 75 then
  1045. local landingSound = Sounds[SFX.Landing]
  1046. landingSound.Volume = Util.Clamp(
  1047. Util.YForLineGivenXAndTwoPts(
  1048. Util.VerticalSpeed(Head),
  1049. 50, 0,
  1050. 100, 1),
  1051. 0,1)
  1052. Util.Play(landingSound)
  1053. end
  1054. end;
  1055.  
  1056. [Enum.HumanoidStateType.Seated] = function()
  1057. stopPlayingLoopedSoundsExcept()
  1058. end;
  1059. }
  1060.  
  1061. -- Handle state event fired or OnChange fired
  1062. function stateUpdated(state)
  1063. if stateUpdateHandler[state] ~= nil then
  1064. stateUpdateHandler[state]()
  1065. end
  1066. activeState = state
  1067. end
  1068.  
  1069. Humanoid.Died:connect( function() stateUpdated(Enum.HumanoidStateType.Dead) end)
  1070. Humanoid.Running:connect( function() stateUpdated(Enum.HumanoidStateType.Running) end)
  1071. Humanoid.Swimming:connect( function() stateUpdated(Enum.HumanoidStateType.Swimming) end)
  1072. Humanoid.Climbing:connect( function() stateUpdated(Enum.HumanoidStateType.Climbing) end)
  1073. Humanoid.Jumping:connect( function() stateUpdated(Enum.HumanoidStateType.Jumping) end)
  1074. Humanoid.GettingUp:connect( function() stateUpdated(Enum.HumanoidStateType.GettingUp) end)
  1075. Humanoid.FreeFalling:connect( function() stateUpdated(Enum.HumanoidStateType.Freefall) end)
  1076. Humanoid.FallingDown:connect( function() stateUpdated(Enum.HumanoidStateType.FallingDown) end)
  1077.  
  1078. -- required for proper handling of Landed event
  1079. Humanoid.StateChanged:connect(function(old, new)
  1080. stateUpdated(new)
  1081. end)
  1082.  
  1083.  
  1084. function onUpdate(stepDeltaSeconds, tickSpeedSeconds)
  1085. local stepScale = stepDeltaSeconds / tickSpeedSeconds
  1086. do
  1087. local sound = Sounds[SFX.FreeFalling]
  1088. if activeState == Enum.HumanoidStateType.Freefall then
  1089. if Head.Velocity.Y < 0 and Util.VerticalSpeed(Head) > 75 then
  1090. Util.Resume(sound)
  1091.  
  1092. --Volume takes 1.1 seconds to go from volume 0 to 1
  1093. local ANIMATION_LENGTH_SECONDS = 1.1
  1094.  
  1095. local normalizedIncrement = tickSpeedSeconds / ANIMATION_LENGTH_SECONDS
  1096. sound.Volume = Util.Clamp(sound.Volume + normalizedIncrement * stepScale, 0, 1)
  1097. else
  1098. sound.Volume = 0
  1099. end
  1100. else
  1101. Util.Pause(sound)
  1102. end
  1103. end
  1104.  
  1105. do
  1106. local sound = Sounds[SFX.Running]
  1107. if activeState == Enum.HumanoidStateType.Running then
  1108. if Util.HorizontalSpeed(Head) < 0.5 then
  1109. Util.Pause(sound)
  1110. end
  1111. end
  1112. end
  1113. end
  1114.  
  1115. local lastTick = tick()
  1116. local TICK_SPEED_SECONDS = 0.25
  1117. while true do
  1118. onUpdate(tick() - lastTick,TICK_SPEED_SECONDS)
  1119. lastTick = tick()
  1120. wait(TICK_SPEED_SECONDS)
  1121. end
  1122. end
  1123.  
  1124. end))
  1125. LocalScript29.Name = "Animate"
  1126. LocalScript29.Parent = Model0
  1127. table.insert(cors,sandbox(LocalScript29,function()
  1128. function waitForChild(parent, childName)
  1129. local child = parent:findFirstChild(childName)
  1130. if child then return child end
  1131. while true do
  1132. child = parent.ChildAdded:wait()
  1133. if child.Name==childName then return child end
  1134. end
  1135. end
  1136.  
  1137. local Figure = script.Parent
  1138. local Torso = waitForChild(Figure, "Torso")
  1139. local RightShoulder = waitForChild(Torso, "Right Shoulder")
  1140. local LeftShoulder = waitForChild(Torso, "Left Shoulder")
  1141. local RightHip = waitForChild(Torso, "Right Hip")
  1142. local LeftHip = waitForChild(Torso, "Left Hip")
  1143. local Neck = waitForChild(Torso, "Neck")
  1144. local Humanoid = waitForChild(Figure, "Humanoid")
  1145. local pose = "Standing"
  1146.  
  1147. local currentAnim = ""
  1148. local currentAnimInstance = nil
  1149. local currentAnimTrack = nil
  1150. local currentAnimKeyframeHandler = nil
  1151. local currentAnimSpeed = 1.0
  1152. local animTable = {}
  1153. local animNames = {
  1154. idle = {
  1155. { id = "http://www.roblox.com/asset/?id=180435571", weight = 9 },
  1156. { id = "http://www.roblox.com/asset/?id=180435792", weight = 1 }
  1157. },
  1158. walk = {
  1159. { id = "http://www.roblox.com/asset/?id=180426354", weight = 10 }
  1160. },
  1161. run = {
  1162. { id = "run.xml", weight = 10 }
  1163. },
  1164. jump = {
  1165. { id = "http://www.roblox.com/asset/?id=125750702", weight = 10 }
  1166. },
  1167. fall = {
  1168. { id = "http://www.roblox.com/asset/?id=180436148", weight = 10 }
  1169. },
  1170. climb = {
  1171. { id = "http://www.roblox.com/asset/?id=180436334", weight = 10 }
  1172. },
  1173. sit = {
  1174. { id = "http://www.roblox.com/asset/?id=178130996", weight = 10 }
  1175. },
  1176. toolnone = {
  1177. { id = "http://www.roblox.com/asset/?id=182393478", weight = 10 }
  1178. },
  1179. toolslash = {
  1180. { id = "http://www.roblox.com/asset/?id=129967390", weight = 10 }
  1181. -- { id = "slash.xml", weight = 10 }
  1182. },
  1183. toollunge = {
  1184. { id = "http://www.roblox.com/asset/?id=129967478", weight = 10 }
  1185. },
  1186. wave = {
  1187. { id = "http://www.roblox.com/asset/?id=128777973", weight = 10 }
  1188. },
  1189. point = {
  1190. { id = "http://www.roblox.com/asset/?id=128853357", weight = 10 }
  1191. },
  1192. dance1 = {
  1193. { id = "http://www.roblox.com/asset/?id=182435998", weight = 10 },
  1194. { id = "http://www.roblox.com/asset/?id=182491037", weight = 10 },
  1195. { id = "http://www.roblox.com/asset/?id=182491065", weight = 10 }
  1196. },
  1197. dance2 = {
  1198. { id = "http://www.roblox.com/asset/?id=182436842", weight = 10 },
  1199. { id = "http://www.roblox.com/asset/?id=182491248", weight = 10 },
  1200. { id = "http://www.roblox.com/asset/?id=182491277", weight = 10 }
  1201. },
  1202. dance3 = {
  1203. { id = "http://www.roblox.com/asset/?id=182436935", weight = 10 },
  1204. { id = "http://www.roblox.com/asset/?id=182491368", weight = 10 },
  1205. { id = "http://www.roblox.com/asset/?id=182491423", weight = 10 }
  1206. },
  1207. laugh = {
  1208. { id = "http://www.roblox.com/asset/?id=129423131", weight = 10 }
  1209. },
  1210. cheer = {
  1211. { id = "http://www.roblox.com/asset/?id=129423030", weight = 10 }
  1212. },
  1213. }
  1214. local dances = {"dance1", "dance2", "dance3"}
  1215.  
  1216. -- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote
  1217. local emoteNames = { wave = false, point = false, dance1 = true, dance2 = true, dance3 = true, laugh = false, cheer = false}
  1218.  
  1219. function configureAnimationSet(name, fileList)
  1220. if (animTable[name] ~= nil) then
  1221. for _, connection in pairs(animTable[name].connections) do
  1222. connection:disconnect()
  1223. end
  1224. end
  1225. animTable[name] = {}
  1226. animTable[name].count = 0
  1227. animTable[name].totalWeight = 0
  1228. animTable[name].connections = {}
  1229.  
  1230. -- check for config values
  1231. local config = script:FindFirstChild(name)
  1232. if (config ~= nil) then
  1233. -- print("Loading anims " .. name)
  1234. table.insert(animTable[name].connections, config.ChildAdded:connect(function(child) configureAnimationSet(name, fileList) end))
  1235. table.insert(animTable[name].connections, config.ChildRemoved:connect(function(child) configureAnimationSet(name, fileList) end))
  1236. local idx = 1
  1237. for _, childPart in pairs(config:GetChildren()) do
  1238. if (childPart:IsA("Animation")) then
  1239. table.insert(animTable[name].connections, childPart.Changed:connect(function(property) configureAnimationSet(name, fileList) end))
  1240. animTable[name][idx] = {}
  1241. animTable[name][idx].anim = childPart
  1242. local weightObject = childPart:FindFirstChild("Weight")
  1243. if (weightObject == nil) then
  1244. animTable[name][idx].weight = 1
  1245. else
  1246. animTable[name][idx].weight = weightObject.Value
  1247. end
  1248. animTable[name].count = animTable[name].count + 1
  1249. animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight
  1250. -- print(name .. " [" .. idx .. "] " .. animTable[name][idx].anim.AnimationId .. " (" .. animTable[name][idx].weight .. ")")
  1251. idx = idx + 1
  1252. end
  1253. end
  1254. end
  1255.  
  1256. -- fallback to defaults
  1257. if (animTable[name].count <= 0) then
  1258. for idx, anim in pairs(fileList) do
  1259. animTable[name][idx] = {}
  1260. animTable[name][idx].anim = Instance.new("Animation")
  1261. animTable[name][idx].anim.Name = name
  1262. animTable[name][idx].anim.AnimationId = anim.id
  1263. animTable[name][idx].weight = anim.weight
  1264. animTable[name].count = animTable[name].count + 1
  1265. animTable[name].totalWeight = animTable[name].totalWeight + anim.weight
  1266. -- print(name .. " [" .. idx .. "] " .. anim.id .. " (" .. anim.weight .. ")")
  1267. end
  1268. end
  1269. end
  1270.  
  1271. -- Setup animation objects
  1272.  
  1273. function chatfunc(text, color)
  1274. local cha = Torso
  1275. local chat = coroutine.wrap(function()
  1276. if cha:FindFirstChild("TalkingBillBoard") ~= nil then
  1277. cha:FindFirstChild("TalkingBillBoard"):destroy()
  1278. end
  1279. local naeeym2 = Instance.new("BillboardGui", cha)
  1280. naeeym2.Size = UDim2.new(0, 100, 0, 40)
  1281. naeeym2.StudsOffset = Vector3.new(0, 3, 0)
  1282. naeeym2.Adornee = hed
  1283. naeeym2.Name = "TalkingBillBoard"
  1284. local tecks2 = Instance.new("TextLabel", naeeym2)
  1285. tecks2.BackgroundTransparency = 1
  1286. tecks2.BorderSizePixel = 0
  1287. tecks2.Text = ""
  1288. tecks2.Font = "Fantasy"
  1289. tecks2.TextSize = 30
  1290. tecks2.TextStrokeTransparency = 0
  1291. tecks2.TextColor3 = color
  1292. tecks2.TextStrokeColor3 = Color3.new(232, 186, 200)
  1293. tecks2.Size = UDim2.new(1, 0, 0.5, 0)
  1294. local tecks3 = Instance.new("TextLabel", naeeym2)
  1295. tecks3.BackgroundTransparency = 1
  1296. tecks3.BorderSizePixel = 0
  1297. tecks3.Text = ""
  1298. tecks3.Font = "Fantasy"
  1299. tecks3.TextSize = 30
  1300. tecks3.TextStrokeTransparency = 0
  1301. tecks3.TextColor3 = Color3.new(0, 0, 0)
  1302. tecks3.TextStrokeColor3 = color
  1303. tecks3.Size = UDim2.new(1, 0, 0.5, 0)
  1304. coroutine.resume(coroutine.create(function()
  1305. while true do
  1306. swait(1)
  1307. tecks2.Position = UDim2.new(0, math.random(-5, 5), 0, math.random(-5, 5))
  1308. tecks3.Position = UDim2.new(0, math.random(-5, 5), 0, math.random(-5, 5))
  1309. tecks2.Rotation = math.random(-5, 5)
  1310. tecks3.Rotation = math.random(-5, 5)
  1311. end
  1312. end))
  1313. for i = 1, string.len(text) do
  1314. tecks2.Text = string.sub(text, 1, i)
  1315. tecks3.Text = string.sub(text, 1, i)
  1316. swait(1)
  1317. end
  1318. wait(1)
  1319. local randomrot = math.random(1, 2)
  1320. if randomrot == 1 then
  1321. for i = 1, 50 do
  1322. swait()
  1323. tecks2.Rotation = tecks2.Rotation - 0.75
  1324. tecks2.TextStrokeTransparency = tecks2.TextStrokeTransparency + 0.04
  1325. tecks2.TextTransparency = tecks2.TextTransparency + 0.04
  1326. tecks3.Rotation = tecks2.Rotation + 0.75
  1327. tecks3.TextStrokeTransparency = tecks2.TextStrokeTransparency + 0.04
  1328. tecks3.TextTransparency = tecks2.TextTransparency + 0.04
  1329. end
  1330. elseif randomrot == 2 then
  1331. for i = 1, 50 do
  1332. swait()
  1333. tecks2.Rotation = tecks2.Rotation + 0.75
  1334. tecks2.TextStrokeTransparency = tecks2.TextStrokeTransparency + 0.04
  1335. tecks2.TextTransparency = tecks2.TextTransparency + 0.04
  1336. tecks3.Rotation = tecks2.Rotation - 0.75
  1337. tecks3.TextStrokeTransparency = tecks2.TextStrokeTransparency + 0.04
  1338. tecks3.TextTransparency = tecks2.TextTransparency + 0.04
  1339. end
  1340. end
  1341. naeeym2:Destroy()
  1342. end)
  1343. chat()
  1344. end
  1345.  
  1346. function Eviscerate(dude)
  1347. cam = game.Workspace.CurrentCamera
  1348. CF = CFrame.new
  1349. angles = CFrame.Angles
  1350. attack = false
  1351. Euler = CFrame.fromEulerAnglesXYZ
  1352. Rad = math.rad
  1353. IT = Instance.new
  1354. BrickC = BrickColor.new
  1355. Cos = math.cos
  1356. Acos = math.acos
  1357. Sin = math.sin
  1358. Asin = math.asin
  1359. Abs = math.abs
  1360. Mrandom = math.random
  1361. Floor = math.floor
  1362. if dude.Name ~= cha then
  1363. local bgf = IT("BodyGyro", dude.Head)
  1364. bgf.CFrame = bgf.CFrame * CFrame.fromEulerAnglesXYZ(Rad(-10), 0, 0)
  1365. local val = IT("BoolValue", dude)
  1366. val.Name = "IsHit"
  1367. local ds = coroutine.wrap(function()
  1368. dude:WaitForChild("Head"):BreakJoints()
  1369. wait(0.5)
  1370. target = nil
  1371. coroutine.resume(coroutine.create(function()
  1372. for i, v in pairs(dude:GetChildren()) do
  1373. if v:IsA("Accessory") then
  1374. v:Destroy()
  1375. end
  1376. if v:IsA("Humanoid") then
  1377. v:Destroy()
  1378. end
  1379. if v:IsA("CharacterMesh") then
  1380. v:Destroy()
  1381. end
  1382. if v:IsA("Model") then
  1383. v:Destroy()
  1384. end
  1385. if v:IsA("Part") or v:IsA("MeshPart") then
  1386. for x, o in pairs(v:GetChildren()) do
  1387. if o:IsA("Decal") then
  1388. o:Destroy()
  1389. end
  1390. end
  1391. coroutine.resume(coroutine.create(function()
  1392. v.Material = "Neon"
  1393. v.CanCollide = false
  1394. local PartEmmit1 = IT("ParticleEmitter", v)
  1395. PartEmmit1.LightEmission = 1
  1396. PartEmmit1.Texture = "rbxassetid://0"
  1397. PartEmmit1.Color = ColorSequence.new(maincolor.Color)
  1398. PartEmmit1.Rate = 150
  1399. PartEmmit1.Lifetime = NumberRange.new(1)
  1400. PartEmmit1.Size = NumberSequence.new({
  1401. NumberSequenceKeypoint.new(0, 0.75, 0),
  1402. NumberSequenceKeypoint.new(1, 0, 0)
  1403. })
  1404. PartEmmit1.Transparency = NumberSequence.new({
  1405. NumberSequenceKeypoint.new(0, 0, 0),
  1406. NumberSequenceKeypoint.new(1, 1, 0)
  1407. })
  1408. PartEmmit1.Speed = NumberRange.new(0, 0)
  1409. PartEmmit1.VelocitySpread = 30000
  1410. PartEmmit1.Rotation = NumberRange.new(-500, 500)
  1411. PartEmmit1.RotSpeed = NumberRange.new(-500, 500)
  1412. local BodPoss = IT("BodyPosition", v)
  1413. BodPoss.P = 3000
  1414. BodPoss.D = 1000
  1415. BodPoss.maxForce = Vector3.new(50000000000, 50000000000, 50000000000)
  1416. BodPoss.position = v.Position + Vector3.new(Mrandom(-15, 15), Mrandom(-15, 15), Mrandom(-15, 15))
  1417. v.Color = maincolor.Color
  1418. coroutine.resume(coroutine.create(function()
  1419. for i = 0, 49 do
  1420. swait(1)
  1421. v.Transparency = v.Transparency + 0.08
  1422. end
  1423. wait(0.5)
  1424. PartEmmit1.Enabled = false
  1425. wait(3)
  1426. v:Destroy()
  1427. dude:Destroy()
  1428. end))
  1429. end))
  1430. end
  1431. end
  1432. end))
  1433. end)
  1434. ds()
  1435. end
  1436. end
  1437.  
  1438. function FindNearestHead(Position, Distance, SinglePlayer)
  1439. if SinglePlayer then
  1440. return Distance > (SinglePlayer.Torso.CFrame.p - Position).magnitude
  1441. end
  1442. local List = {}
  1443. for i, v in pairs(workspace:GetChildren()) do
  1444. if v:IsA("Model") and v:findFirstChild("Head") and v ~= cha and Distance >= (v.Head.Position - Position).magnitude then
  1445. table.insert(List, v)
  1446. end
  1447. end
  1448. return List
  1449. end
  1450. function scriptChildModified(child)
  1451. local fileList = animNames[child.Name]
  1452. if (fileList ~= nil) then
  1453. configureAnimationSet(child.Name, fileList)
  1454. end
  1455. end
  1456.  
  1457. script.ChildAdded:connect(scriptChildModified)
  1458. script.ChildRemoved:connect(scriptChildModified)
  1459.  
  1460.  
  1461. for name, fileList in pairs(animNames) do
  1462. configureAnimationSet(name, fileList)
  1463. end
  1464.  
  1465. -- ANIMATION
  1466.  
  1467. -- declarations
  1468. local toolAnim = "None"
  1469. local toolAnimTime = 0
  1470.  
  1471. local jumpAnimTime = 0
  1472. local jumpAnimDuration = 0.3
  1473.  
  1474. local toolTransitionTime = 0.1
  1475. local fallTransitionTime = 0.3
  1476. local jumpMaxLimbVelocity = 0.75
  1477.  
  1478. -- functions
  1479.  
  1480. function stopAllAnimations()
  1481. local oldAnim = currentAnim
  1482.  
  1483. -- return to idle if finishing an emote
  1484. if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
  1485. oldAnim = "idle"
  1486. end
  1487.  
  1488. currentAnim = ""
  1489. currentAnimInstance = nil
  1490. if (currentAnimKeyframeHandler ~= nil) then
  1491. currentAnimKeyframeHandler:disconnect()
  1492. end
  1493.  
  1494. if (currentAnimTrack ~= nil) then
  1495. currentAnimTrack:Stop()
  1496. currentAnimTrack:Destroy()
  1497. currentAnimTrack = nil
  1498. end
  1499. return oldAnim
  1500. end
  1501.  
  1502. function setAnimationSpeed(speed)
  1503. if speed ~= currentAnimSpeed then
  1504. currentAnimSpeed = speed
  1505. currentAnimTrack:AdjustSpeed(currentAnimSpeed)
  1506. end
  1507. end
  1508.  
  1509. function keyFrameReachedFunc(frameName)
  1510. if (frameName == "End") then
  1511.  
  1512. local repeatAnim = currentAnim
  1513. -- return to idle if finishing an emote
  1514. if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then
  1515. repeatAnim = "idle"
  1516. end
  1517.  
  1518. local animSpeed = currentAnimSpeed
  1519. playAnimation(repeatAnim, 0.0, Humanoid)
  1520. setAnimationSpeed(animSpeed)
  1521. end
  1522. end
  1523.  
  1524. -- Preload animations
  1525. function playAnimation(animName, transitionTime, humanoid)
  1526.  
  1527. local roll = math.random(1, animTable[animName].totalWeight)
  1528. local origRoll = roll
  1529. local idx = 1
  1530. while (roll > animTable[animName][idx].weight) do
  1531. roll = roll - animTable[animName][idx].weight
  1532. idx = idx + 1
  1533. end
  1534. -- print(animName .. " " .. idx .. " [" .. origRoll .. "]")
  1535. local anim = animTable[animName][idx].anim
  1536.  
  1537. -- switch animation
  1538. if (anim ~= currentAnimInstance) then
  1539.  
  1540. if (currentAnimTrack ~= nil) then
  1541. currentAnimTrack:Stop(transitionTime)
  1542. currentAnimTrack:Destroy()
  1543. end
  1544.  
  1545. currentAnimSpeed = 1.0
  1546.  
  1547. -- load it to the humanoid; get AnimationTrack
  1548. currentAnimTrack = humanoid:LoadAnimation(anim)
  1549.  
  1550. -- play the animation
  1551. currentAnimTrack:Play(transitionTime)
  1552. currentAnim = animName
  1553. currentAnimInstance = anim
  1554.  
  1555. -- set up keyframe name triggers
  1556. if (currentAnimKeyframeHandler ~= nil) then
  1557. currentAnimKeyframeHandler:disconnect()
  1558. end
  1559. currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
  1560.  
  1561. end
  1562.  
  1563. end
  1564.  
  1565. -------------------------------------------------------------------------------------------
  1566. ----------------------------------------------------------------------------------
  1567. wait()
  1568. Mouse.KeyDown:connect(function(key)
  1569. if key == "e" then
  1570. wait()
  1571. for i, v in pairs(FindNearestHead(mouse.Hit.p, 14.5)) do
  1572. if v:FindFirstChild("Head") then
  1573. Eviscerate(v)
  1574. end
  1575. end
  1576. dist = (Torso.Position - Mouse.Hit.p).magnitude
  1577. if dist <= 10000 then
  1578. Torso.CFrame = CFrame.new(Mouse.Hit.p) + Vector3.new(0,3,0)
  1579. end
  1580. elseif key == "q" then
  1581. chatfunc("", BrickColor.new("Red").Color)
  1582. end
  1583. end)
  1584.  
  1585. ----------------------------------------------------------------------------------
  1586. -------------------------------------------------------------------------------------------
  1587.  
  1588. local toolAnimName = ""
  1589. local toolAnimTrack = nil
  1590. local toolAnimInstance = nil
  1591. local currentToolAnimKeyframeHandler = nil
  1592.  
  1593. function toolKeyFrameReachedFunc(frameName)
  1594. if (frameName == "End") then
  1595. -- print("Keyframe : ".. frameName)
  1596. playToolAnimation(toolAnimName, 0.0, Humanoid)
  1597. end
  1598. end
  1599.  
  1600.  
  1601. function playToolAnimation(animName, transitionTime, humanoid)
  1602.  
  1603. local roll = math.random(1, animTable[animName].totalWeight)
  1604. local origRoll = roll
  1605. local idx = 1
  1606. while (roll > animTable[animName][idx].weight) do
  1607. roll = roll - animTable[animName][idx].weight
  1608. idx = idx + 1
  1609. end
  1610. -- print(animName .. " * " .. idx .. " [" .. origRoll .. "]")
  1611. local anim = animTable[animName][idx].anim
  1612.  
  1613. if (toolAnimInstance ~= anim) then
  1614.  
  1615. if (toolAnimTrack ~= nil) then
  1616. toolAnimTrack:Stop()
  1617. toolAnimTrack:Destroy()
  1618. transitionTime = 0
  1619. end
  1620.  
  1621. -- load it to the humanoid; get AnimationTrack
  1622. toolAnimTrack = humanoid:LoadAnimation(anim)
  1623.  
  1624. -- play the animation
  1625. toolAnimTrack:Play(transitionTime)
  1626. toolAnimName = animName
  1627. toolAnimInstance = anim
  1628.  
  1629. currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
  1630. end
  1631. end
  1632.  
  1633. function stopToolAnimations()
  1634. local oldAnim = toolAnimName
  1635.  
  1636. if (currentToolAnimKeyframeHandler ~= nil) then
  1637. currentToolAnimKeyframeHandler:disconnect()
  1638. end
  1639.  
  1640. toolAnimName = ""
  1641. toolAnimInstance = nil
  1642. if (toolAnimTrack ~= nil) then
  1643. toolAnimTrack:Stop()
  1644. toolAnimTrack:Destroy()
  1645. toolAnimTrack = nil
  1646. end
  1647.  
  1648.  
  1649. return oldAnim
  1650. end
  1651.  
  1652. -------------------------------------------------------------------------------------------
  1653. -------------------------------------------------------------------------------------------
  1654.  
  1655.  
  1656. function onRunning(speed)
  1657. if speed>0.01 then
  1658. playAnimation("walk", 0.1, Humanoid)
  1659. if currentAnimInstance and currentAnimInstance.AnimationId == "http://www.roblox.com/asset/?id=180426354" then
  1660. setAnimationSpeed(speed / 14.5)
  1661. end
  1662. pose = "Running"
  1663. else
  1664. if emoteNames[currentAnim] == nil then
  1665. playAnimation("idle", 0.1, Humanoid)
  1666. pose = "Standing"
  1667. end
  1668. end
  1669. end
  1670.  
  1671. function onDied()
  1672. pose = "Dead"
  1673. end
  1674.  
  1675. function onJumping()
  1676. playAnimation("jump", 0.1, Humanoid)
  1677. jumpAnimTime = jumpAnimDuration
  1678. pose = "Jumping"
  1679. end
  1680.  
  1681. function onClimbing(speed)
  1682. playAnimation("climb", 0.1, Humanoid)
  1683. setAnimationSpeed(speed / 12.0)
  1684. pose = "Climbing"
  1685. end
  1686.  
  1687. function onGettingUp()
  1688. pose = "GettingUp"
  1689. end
  1690.  
  1691. function onFreeFall()
  1692. if (jumpAnimTime <= 0) then
  1693. playAnimation("fall", fallTransitionTime, Humanoid)
  1694. end
  1695. pose = "FreeFall"
  1696. end
  1697.  
  1698. function onFallingDown()
  1699. pose = "FallingDown"
  1700. end
  1701.  
  1702. function onSeated()
  1703. pose = "Seated"
  1704. end
  1705.  
  1706. function onPlatformStanding()
  1707. pose = "PlatformStanding"
  1708. end
  1709.  
  1710. function onSwimming(speed)
  1711. if speed>0 then
  1712. pose = "Running"
  1713. else
  1714. pose = "Standing"
  1715. end
  1716. end
  1717.  
  1718. function getTool()
  1719. for _, kid in ipairs(Figure:GetChildren()) do
  1720. if kid.className == "Tool" then return kid end
  1721. end
  1722. return nil
  1723. end
  1724.  
  1725. function getToolAnim(tool)
  1726. for _, c in ipairs(tool:GetChildren()) do
  1727. if c.Name == "toolanim" and c.className == "StringValue" then
  1728. return c
  1729. end
  1730. end
  1731. return nil
  1732. end
  1733.  
  1734. function animateTool()
  1735.  
  1736. if (toolAnim == "None") then
  1737. playToolAnimation("toolnone", toolTransitionTime, Humanoid)
  1738. return
  1739. end
  1740.  
  1741. if (toolAnim == "Slash") then
  1742. playToolAnimation("toolslash", 0, Humanoid)
  1743. return
  1744. end
  1745.  
  1746. if (toolAnim == "Lunge") then
  1747. playToolAnimation("toollunge", 0, Humanoid)
  1748. return
  1749. end
  1750. end
  1751.  
  1752. function moveSit()
  1753. RightShoulder.MaxVelocity = 0.15
  1754. LeftShoulder.MaxVelocity = 0.15
  1755. RightShoulder:SetDesiredAngle(3.14 /2)
  1756. LeftShoulder:SetDesiredAngle(-3.14 /2)
  1757. RightHip:SetDesiredAngle(3.14 /2)
  1758. LeftHip:SetDesiredAngle(-3.14 /2)
  1759. end
  1760.  
  1761. local lastTick = 0
  1762.  
  1763. function move(time)
  1764. local amplitude = 1
  1765. local frequency = 1
  1766. local deltaTime = time - lastTick
  1767. lastTick = time
  1768.  
  1769. local climbFudge = 0
  1770. local setAngles = false
  1771.  
  1772. if (jumpAnimTime > 0) then
  1773. jumpAnimTime = jumpAnimTime - deltaTime
  1774. end
  1775.  
  1776. if (pose == "FreeFall" and jumpAnimTime <= 0) then
  1777. playAnimation("fall", fallTransitionTime, Humanoid)
  1778. elseif (pose == "Seated") then
  1779. playAnimation("sit", 0.5, Humanoid)
  1780. return
  1781. elseif (pose == "Running") then
  1782. playAnimation("walk", 0.1, Humanoid)
  1783. elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then
  1784. -- print("Wha " .. pose)
  1785. stopAllAnimations()
  1786. amplitude = 0.1
  1787. frequency = 1
  1788. setAngles = true
  1789. end
  1790.  
  1791. if (setAngles) then
  1792. desiredAngle = amplitude * math.sin(time * frequency)
  1793.  
  1794. RightShoulder:SetDesiredAngle(desiredAngle + climbFudge)
  1795. LeftShoulder:SetDesiredAngle(desiredAngle - climbFudge)
  1796. RightHip:SetDesiredAngle(-desiredAngle)
  1797. LeftHip:SetDesiredAngle(-desiredAngle)
  1798. end
  1799.  
  1800. -- Tool Animation handling
  1801. local tool = getTool()
  1802. if tool and tool:FindFirstChild("Handle") then
  1803.  
  1804. animStringValueObject = getToolAnim(tool)
  1805.  
  1806. if animStringValueObject then
  1807. toolAnim = animStringValueObject.Value
  1808. -- message recieved, delete StringValue
  1809. animStringValueObject.Parent = nil
  1810. toolAnimTime = time + .3
  1811. end
  1812.  
  1813. if time > toolAnimTime then
  1814. toolAnimTime = 0
  1815. toolAnim = "None"
  1816. end
  1817.  
  1818. animateTool()
  1819. else
  1820. stopToolAnimations()
  1821. toolAnim = "None"
  1822. toolAnimInstance = nil
  1823. toolAnimTime = 0
  1824. end
  1825. end
  1826.  
  1827. -- connect events
  1828. Humanoid.Died:connect(onDied)
  1829. Humanoid.Running:connect(onRunning)
  1830. Humanoid.Jumping:connect(onJumping)
  1831. Humanoid.Climbing:connect(onClimbing)
  1832. Humanoid.GettingUp:connect(onGettingUp)
  1833. Humanoid.FreeFalling:connect(onFreeFall)
  1834. Humanoid.FallingDown:connect(onFallingDown)
  1835. Humanoid.Seated:connect(onSeated)
  1836. Humanoid.PlatformStanding:connect(onPlatformStanding)
  1837. Humanoid.Swimming:connect(onSwimming)
  1838.  
  1839. -- setup emote chat hook
  1840. owner.Chatted:connect(function(msg)
  1841. local emote = ""
  1842. if msg == "/e dance" then
  1843. emote = dances[math.random(1, #dances)]
  1844. elseif (string.sub(msg, 1, 3) == "/e ") then
  1845. emote = string.sub(msg, 4)
  1846. elseif (string.sub(msg, 1, 7) == "/emote ") then
  1847. emote = string.sub(msg, 8)
  1848. end
  1849.  
  1850. if (pose == "Standing" and emoteNames[emote] ~= nil) then
  1851. playAnimation(emote, 0.1, Humanoid)
  1852. end
  1853.  
  1854. end)
  1855.  
  1856.  
  1857. -- main program
  1858.  
  1859. local runService = game:service("RunService");
  1860.  
  1861. -- initialize to idle
  1862. playAnimation("idle", 0.1, Humanoid)
  1863. pose = "Standing"
  1864.  
  1865. while Figure.Parent~=nil do
  1866. local _, time = wait(0.1)
  1867. move(time)
  1868. end
  1869.  
  1870.  
  1871.  
  1872. end))
  1873. StringValue30.Name = "idle"
  1874. StringValue30.Parent = LocalScript29
  1875. Animation31.Name = "Animation1"
  1876. Animation31.Parent = StringValue30
  1877. Animation31.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  1878. NumberValue32.Name = "Weight"
  1879. NumberValue32.Parent = Animation31
  1880. NumberValue32.Value = 9
  1881. Animation33.Name = "Animation2"
  1882. Animation33.Parent = StringValue30
  1883. Animation33.AnimationId = "http://www.roblox.com/asset/?id=180435792"
  1884. NumberValue34.Name = "Weight"
  1885. NumberValue34.Parent = Animation33
  1886. NumberValue34.Value = 1
  1887. StringValue35.Name = "walk"
  1888. StringValue35.Parent = LocalScript29
  1889. Animation36.Name = "WalkAnim"
  1890. Animation36.Parent = StringValue35
  1891. Animation36.AnimationId = "http://www.roblox.com/asset/?id=180426354"
  1892. StringValue37.Name = "run"
  1893. StringValue37.Parent = LocalScript29
  1894. Animation38.Name = "RunAnim"
  1895. Animation38.Parent = StringValue37
  1896. Animation38.AnimationId = "http://www.roblox.com/asset/?id=180426354"
  1897. StringValue39.Name = "jump"
  1898. StringValue39.Parent = LocalScript29
  1899. Animation40.Name = "JumpAnim"
  1900. Animation40.Parent = StringValue39
  1901. Animation40.AnimationId = "http://www.roblox.com/asset/?id=125750702"
  1902. StringValue41.Name = "climb"
  1903. StringValue41.Parent = LocalScript29
  1904. Animation42.Name = "ClimbAnim"
  1905. Animation42.Parent = StringValue41
  1906. Animation42.AnimationId = "http://www.roblox.com/asset/?id=180436334"
  1907. StringValue43.Name = "toolnone"
  1908. StringValue43.Parent = LocalScript29
  1909. Animation44.Name = "ToolNoneAnim"
  1910. Animation44.Parent = StringValue43
  1911. Animation44.AnimationId = "http://www.roblox.com/asset/?id=182393478"
  1912. StringValue45.Name = "fall"
  1913. StringValue45.Parent = LocalScript29
  1914. Animation46.Name = "FallAnim"
  1915. Animation46.Parent = StringValue45
  1916. Animation46.AnimationId = "http://www.roblox.com/asset/?id=180436148"
  1917. StringValue47.Name = "sit"
  1918. StringValue47.Parent = LocalScript29
  1919. Animation48.Name = "SitAnim"
  1920. Animation48.Parent = StringValue47
  1921. Animation48.AnimationId = "http://www.roblox.com/asset/?id=178130996"
  1922. Script49.Name = "Health"
  1923. Script49.Parent = Model0
  1924. table.insert(cors,sandbox(Script49,function()
  1925. --Responsible for regening a player's humanoid's health
  1926.  
  1927. -- declarations
  1928. local Figure = script.Parent
  1929. local Head = Figure:WaitForChild("Head")
  1930. local Humanoid = Figure:WaitForChild("Humanoid")
  1931. local regening = false
  1932.  
  1933. -- regeneration
  1934. function regenHealth()
  1935. if regening then return end
  1936. regening = true
  1937.  
  1938. while Humanoid.Health < Humanoid.MaxHealth do
  1939. local s = wait(1)
  1940. local health = Humanoid.Health
  1941. if health > 0 and health < Humanoid.MaxHealth then
  1942. local newHealthDelta = 0.01 * s * Humanoid.MaxHealth
  1943. health = health + newHealthDelta
  1944. Humanoid.Health = math.min(health,Humanoid.MaxHealth)
  1945. end
  1946. end
  1947.  
  1948. if Humanoid.Health > Humanoid.MaxHealth then
  1949. Humanoid.Health = Humanoid.MaxHealth
  1950. end
  1951.  
  1952. regening = false
  1953. end
  1954.  
  1955. Humanoid.HealthChanged:connect(regenHealth)
  1956.  
  1957. end))
  1958. BodyColors50.Parent = Model0
  1959. BodyColors50.HeadColor = BrickColor.new("Mid gray")
  1960. BodyColors50.HeadColor3 = Color3.new(0.803922, 0.803922, 0.803922)
  1961. BodyColors50.LeftArmColor = BrickColor.new("Mid gray")
  1962. BodyColors50.LeftArmColor3 = Color3.new(0.803922, 0.803922, 0.803922)
  1963. BodyColors50.LeftLegColor = BrickColor.new("Pastel light blue")
  1964. BodyColors50.LeftLegColor3 = Color3.new(0.686275, 0.866667, 1)
  1965. BodyColors50.RightArmColor = BrickColor.new("Mid gray")
  1966. BodyColors50.RightArmColor3 = Color3.new(0.803922, 0.803922, 0.803922)
  1967. BodyColors50.RightLegColor = BrickColor.new("Pastel light blue")
  1968. BodyColors50.RightLegColor3 = Color3.new(0.686275, 0.866667, 1)
  1969. BodyColors50.TorsoColor = BrickColor.new("Bright green")
  1970. BodyColors50.TorsoColor3 = Color3.new(0.294118, 0.592157, 0.294118)
  1971. for i,v in pairs(mas:GetChildren()) do
  1972. v.Parent = owner.Character
  1973. pcall(function() v:MakeJoints() end)
  1974. end
  1975. mas:Destroy()
  1976. for i,v in pairs(cors) do
  1977. spawn(function()
  1978. pcall(v)
  1979. end)
  1980. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement