Nudrius

God of Sharpshooting

Sep 23rd, 2018
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 156.01 KB | None | 0 0
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,game,owner = owner,game
  4. local RealPlayer = Player
  5. do
  6. print("FE Compatibility code V2 by Mokiros")
  7. local RealPlayer = RealPlayer
  8. script.Parent = RealPlayer.Character
  9.  
  10. --Fake event to make stuff like Mouse.KeyDown work
  11. local Disconnect_Function = function(this)
  12. this[1].Functions[this[2]] = nil
  13. end
  14. local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
  15. local FakeEvent_Metatable = {__index={
  16. Connect = function(this,f)
  17. local i = tostring(math.random(0,10000))
  18. while this.Functions[i] do
  19. i = tostring(math.random(0,10000))
  20. end
  21. this.Functions[i] = f
  22. return setmetatable({this,i},Disconnect_Metatable)
  23. end
  24. }}
  25. FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
  26. local function fakeEvent()
  27. return setmetatable({Functions={}},FakeEvent_Metatable)
  28. end
  29.  
  30. --Creating fake input objects with fake variables
  31. local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  32. FakeMouse.keyUp = FakeMouse.KeyUp
  33. FakeMouse.keyDown = FakeMouse.KeyDown
  34. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  35. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  36. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  37. end}
  38. --Merged 2 functions into one by checking amount of arguments
  39. CAS.UnbindAction = CAS.BindAction
  40.  
  41. --This function will trigger the events that have been :Connect()'ed
  42. local function TriggerEvent(self,ev,...)
  43. for _,f in pairs(self[ev].Functions) do
  44. f(...)
  45. end
  46. end
  47. FakeMouse.TriggerEvent = TriggerEvent
  48. UIS.TriggerEvent = TriggerEvent
  49.  
  50. --Client communication
  51. local Event = Instance.new("RemoteEvent")
  52. Event.Name = "UserInput_Event"
  53. Event.OnServerEvent:Connect(function(plr,io)
  54. if plr~=RealPlayer then return end
  55. FakeMouse.Target = io.Target
  56. FakeMouse.Hit = io.Hit
  57. if not io.isMouse then
  58. local b = io.UserInputState == Enum.UserInputState.Begin
  59. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  60. return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
  61. end
  62. if io.UserInputType == Enum.UserInputType.MouseButton2 then
  63. return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
  64. end
  65. for _,t in pairs(CAS.Actions) do
  66. for _,k in pairs(t.Keys) do
  67. if k==io.KeyCode then
  68. t.Function(t.Name,io.UserInputState,io)
  69. end
  70. end
  71. end
  72. FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  73. UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
  74. end
  75. end)
  76. Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
  77. local Mouse = owner:GetMouse()
  78. local UIS = game:GetService("UserInputService")
  79. local input = function(io,RobloxHandled)
  80. if RobloxHandled then return end
  81. --Since InputObject is a client-side instance, we create and pass table instead
  82. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  83. end
  84. UIS.InputBegan:Connect(input)
  85. UIS.InputEnded:Connect(input)
  86. local h,t
  87. --Give the server mouse data every second frame, but only if the values changed
  88. --If player is not moving their mouse, client won't fire events
  89. local HB = game:GetService("RunService").Heartbeat
  90. while true do
  91. if h~=Mouse.Hit or t~=Mouse.Target then
  92. h,t=Mouse.Hit,Mouse.Target
  93. Event:FireServer({isMouse=true,Target=t,Hit=h})
  94. end
  95. --Wait 2 frames
  96. for i=1,2 do
  97. HB:Wait()
  98. end
  99. end]==],script)
  100.  
  101. ----Sandboxed game object that allows the usage of client-side methods and services
  102. --Real game object
  103. local RealGame = game
  104.  
  105. --Metatable for fake service
  106. local FakeService_Metatable = {
  107. __index = function(self,k)
  108. local s = rawget(self,"_RealService")
  109. if s then
  110. return typeof(s[k])=="function"
  111. and function(_,...)return s[k](s,...)end or s[k]
  112. end
  113. end,
  114. __newindex = function(self,k,v)
  115. local s = rawget(self,"_RealService")
  116. if s then s[k]=v end
  117. end
  118. }
  119. local function FakeService(t,RealService)
  120. t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
  121. return setmetatable(t,FakeService_Metatable)
  122. end
  123.  
  124. --Fake game object
  125. local FakeGame = {
  126. GetService = function(self,s)
  127. return rawget(self,s) or RealGame:GetService(s)
  128. end,
  129. Players = FakeService({
  130. LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
  131. },"Players"),
  132. UserInputService = FakeService(UIS,"UserInputService"),
  133. ContextActionService = FakeService(CAS,"ContextActionService"),
  134. RunService = FakeService({
  135. _btrs = {},
  136. RenderStepped = RealGame:GetService("RunService").Heartbeat,
  137. BindToRenderStep = function(self,name,_,fun)
  138. self._btrs[name] = self.Heartbeat:Connect(fun)
  139. end,
  140. UnbindFromRenderStep = function(self,name)
  141. self._btrs[name]:Disconnect()
  142. end,
  143. },"RunService")
  144. }
  145. rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
  146. FakeGame.service = FakeGame.GetService
  147. FakeService(FakeGame,game)
  148. --Changing owner to fake player object to support owner:GetMouse()
  149. game,owner = FakeGame,FakeGame.Players.LocalPlayer
  150. end
  151.  
  152. Player = owner
  153. Character = Player.Character
  154. local txt = Instance.new("BillboardGui", Character)
  155. txt.Adornee = Character.Head
  156. txt.Name = "_status"
  157. txt.Size = UDim2.new(2, 0, 1.2, 0)
  158. txt.StudsOffset = Vector3.new(-9, 8, 0)
  159. local text = Instance.new("TextLabel", txt)
  160. text.Size = UDim2.new(10, 0, 7, 0)
  161. text.FontSize = "Size24"
  162. text.TextScaled = true
  163. text.TextTransparency = 0
  164. text.BackgroundTransparency = 1
  165. text.TextTransparency = 0
  166. text.TextStrokeTransparency = 0
  167. text.Font = "Antique"
  168. text.TextStrokeColor3 = Color3.new(242, 243, 243)
  169. text.Text = "The Legendary Warden"
  170. script.Name = "Banisher Gun V3 / 1"
  171. --//====================================================\\--
  172. --|| CREATED BY SHACKLUSTER
  173. --\\====================================================//--
  174.  
  175. script:ClearAllChildren()
  176. wait(0.2)
  177.  
  178. Player = game:GetService("Players").LocalPlayer
  179. PlayerGui = Player.PlayerGui
  180. Cam = workspace.CurrentCamera
  181. Backpack = Player.Backpack
  182. Character = Player.Character
  183. Humanoid = Character.Humanoid
  184. Mouse = Player:GetMouse()
  185. RootPart = Character["HumanoidRootPart"]
  186. Torso = Character["Torso"]
  187. Head = Character["Head"]
  188. RightArm = Character["Right Arm"]
  189. LeftArm = Character["Left Arm"]
  190. RightLeg = Character["Right Leg"]
  191. LeftLeg = Character["Left Leg"]
  192. RootJoint = RootPart["RootJoint"]
  193. Neck = Torso["Neck"]
  194. RightShoulder = Torso["Right Shoulder"]
  195. LeftShoulder = Torso["Left Shoulder"]
  196. RightHip = Torso["Right Hip"]
  197. LeftHip = Torso["Left Hip"]
  198. local TIME = 0
  199. local sick = Instance.new("Sound",Torso)
  200.  
  201.  
  202. for i,v in pairs(Character:GetChildren()) do
  203. if v.ClassName == "Shirt" or v.ClassName == "Pants" or v.ClassName == "CharacterMesh" then
  204. v:Destroy()
  205. end
  206. end
  207.  
  208. for i,v in pairs(Character:GetChildren()) do
  209. if v.ClassName == "Accessory" or v.ClassName == "Hat" then
  210. v:Destroy()
  211. end
  212. end
  213.  
  214. local Shirt = Instance.new("Shirt",Character)
  215. local Pants = Instance.new("Pants",Character)
  216. Shirt.ShirtTemplate = "rbxassetid://189496457"
  217. Pants.PantsTemplate = "rbxassetid://189691361"
  218.  
  219. IT = Instance.new
  220. CF = CFrame.new
  221. VT = Vector3.new
  222. RAD = math.rad
  223. C3 = Color3.new
  224. UD2 = UDim2.new
  225. BRICKC = BrickColor.new
  226. ANGLES = CFrame.Angles
  227. EULER = CFrame.fromEulerAnglesXYZ
  228. COS = math.cos
  229. ACOS = math.acos
  230. SIN = math.sin
  231. ASIN = math.asin
  232. ABS = math.abs
  233. MRANDOM = math.random
  234. FLOOR = math.floor
  235.  
  236. Player = game:GetService("Players").LocalPlayer
  237. PlayerGui = Player.PlayerGui
  238. Cam = workspace.CurrentCamera
  239. Backpack = Player.Backpack
  240. Character = Player.Character
  241. Humanoid = Character.Humanoid
  242. Mouse = Player:GetMouse()
  243. RootPart = Character["HumanoidRootPart"]
  244. Torso = Character["Torso"]
  245. Head = Character["Head"]
  246. RightArm = Character["Right Arm"]
  247. LeftArm = Character["Left Arm"]
  248. RightLeg = Character["Right Leg"]
  249. LeftLeg = Character["Left Leg"]
  250. RootJoint = RootPart["RootJoint"]
  251. Neck = Torso["Neck"]
  252. RightShoulder = Torso["Right Shoulder"]
  253. LeftShoulder = Torso["Left Shoulder"]
  254. RightHip = Torso["Right Hip"]
  255. LeftHip = Torso["Left Hip"]
  256. warn("Anti-Death Loaded (edited by promlg112)")
  257.  
  258. IT = Instance.new
  259. CF = CFrame.new
  260. VT = Vector3.new
  261. RAD = math.rad
  262. C3 = Color3.new
  263. UD2 = UDim2.new
  264. BRICKC = BrickColor.new
  265. ANGLES = CFrame.Angles
  266. EULER = CFrame.fromEulerAnglesXYZ
  267. COS = math.cos
  268. ACOS = math.acos
  269. SIN = math.sin
  270. ASIN = math.asin
  271. ABS = math.abs
  272. MRANDOM = math.random
  273. FLOOR = math.floor
  274.  
  275. local Speed = 55
  276. local Rooted = false
  277. local Effects = IT("Folder", Character)
  278. Effects.Name = "Effects"
  279. local UNANCHOR = true
  280. local HITPOS = nil
  281. local HITFLOOR = nil
  282. local LEFTWINGS = {}
  283. local RIGHTWINGS = {}
  284. local BODY = {}
  285.  
  286. for _, c in pairs(Character:GetChildren()) do
  287. if c.ClassName == "Part" then
  288. table.insert(BODY,{c,Character})
  289. for _, q in pairs(c:GetChildren()) do
  290. if q.ClassName == "Motor6D" or q.ClassName == "Weld" or q.ClassName == "ManualWeld" then
  291. table.insert(BODY,{q,c})
  292. end
  293. end
  294. end
  295. end
  296.  
  297. function refit()
  298. Character.Parent = workspace
  299. for e = 1, #BODY do
  300. if BODY[e] ~= nil then
  301. local STUFF = BODY[e]
  302. local PART = STUFF[1]
  303. local PARENT = STUFF[2]
  304. PART.Parent = PARENT
  305. end
  306. end
  307. end
  308.  
  309. Humanoid.HealthChanged:connect(function()
  310. Humanoid.Parent = nil
  311. Humanoid.MaxHealth = "inf"
  312. Humanoid.Health = "inf"
  313. refit()
  314. Humanoid.Parent = Character
  315. end)
  316.  
  317. Humanoid.Died:connect(function()
  318. Humanoid.Parent = nil
  319. Humanoid.MaxHealth = "inf"
  320. Humanoid.Health = "inf"
  321. refit()
  322. Humanoid.Parent = Character
  323. end)
  324. --//=================================\\
  325. --|| CUSTOMIZATION
  326. --\\=================================//
  327.  
  328. Player_Size = 1 --Size of the player.
  329. Animation_Speed = 3
  330. Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
  331.  
  332. local Speed = 16
  333. local Effects2 = {}
  334.  
  335. --//=================================\\
  336. --|| END OF CUSTOMIZATION
  337. --\\=================================//
  338.  
  339. local function weldBetween(a, b)
  340. local weldd = Instance.new("ManualWeld")
  341. weldd.Part0 = a
  342. weldd.Part1 = b
  343. weldd.C0 = CFrame.new()
  344. weldd.C1 = b.CFrame:inverse() * a.CFrame
  345. weldd.Parent = a
  346. return weldd
  347. end
  348. --//=================================\\
  349. --|| PARTICLES N STUFF
  350. --\\=================================//
  351.  
  352. local particleemitter = Instance.new('ParticleEmitter', LeftArm)
  353. particleemitter.VelocitySpread = 350
  354. particleemitter.Lifetime = NumberRange.new(1)
  355. particleemitter.Speed = NumberRange.new(0)
  356. cringememe= {}
  357. for i=0, 19 do
  358. cringememe[#cringememe + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
  359. end
  360. particleemitter.Size = NumberSequence.new(cringememe)
  361. particleemitter.Rate = 20
  362. particleemitter.LockedToPart = true
  363. particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
  364. particleemitter.LightEmission = 1
  365. particleemitter.Texture = "rbxassetid://0"
  366. particleemitter.Color = ColorSequence.new(BrickColor.new("White").Color)
  367.  
  368. local particleemitter = Instance.new('ParticleEmitter', Torso)
  369. particleemitter.VelocitySpread = 250
  370. particleemitter.Lifetime = NumberRange.new(3)
  371. particleemitter.Speed = NumberRange.new(1.5)
  372. youAreATHOT = {}
  373. for i=0, 19 do
  374. youAreATHOT[#youAreATHOT + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
  375. end
  376. particleemitter.Size = NumberSequence.new(youAreATHOT)
  377. particleemitter.Rate = 20
  378. particleemitter.LockedToPart = false
  379. particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
  380. particleemitter.LightEmission = 1
  381. particleemitter.Texture = "rbxassetid://0"
  382. particleemitter.Color = ColorSequence.new(BrickColor.new("White").Color)
  383.  
  384. local particleemitter = Instance.new('ParticleEmitter', RightArm)
  385. particleemitter.VelocitySpread = 350
  386. particleemitter.Lifetime = NumberRange.new(2)
  387. particleemitter.Speed = NumberRange.new(0)
  388. cringememe2= {}
  389. for i=0, 19 do
  390. cringememe2[#cringememe2 + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
  391. end
  392. particleemitter.Size = NumberSequence.new(cringememe2)
  393. particleemitter.Rate = 20
  394. particleemitter.LockedToPart = true
  395. particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
  396. particleemitter.LightEmission = 1
  397. particleemitter.Texture = "rbxassetid://0"
  398. particleemitter.Color = ColorSequence.new(BrickColor.new("White").Color)
  399.  
  400. local particleemitter = Instance.new('ParticleEmitter', RightLeg)
  401. particleemitter.VelocitySpread = 350
  402. particleemitter.Lifetime = NumberRange.new(1)
  403. particleemitter.Speed = NumberRange.new(0)
  404. cringememe3= {}
  405. for i=0, 19 do
  406. cringememe3[#cringememe3 + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
  407. end
  408. particleemitter.Size = NumberSequence.new(cringememe3)
  409. particleemitter.Rate = 30
  410. particleemitter.LockedToPart = true
  411. particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
  412. particleemitter.LightEmission = 1
  413. particleemitter.Texture = "rbxassetid://0"
  414. particleemitter.Color = ColorSequence.new(BrickColor.new("White").Color)
  415.  
  416. local particleemitter = Instance.new('ParticleEmitter', LeftLeg)
  417. particleemitter.VelocitySpread = 350
  418. particleemitter.Lifetime = NumberRange.new(1)
  419. particleemitter.Speed = NumberRange.new(0)
  420. cringememe4= {}
  421. for i=0, 19 do
  422. cringememe4[#cringememe4 + 1] = NumberSequenceKeypoint.new(i/19, math.random(1, 1))
  423. end
  424. particleemitter.Size = NumberSequence.new(cringememe4)
  425. particleemitter.Rate = 30
  426. particleemitter.LockedToPart = true
  427. particleemitter.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.8, 0), NumberSequenceKeypoint.new(1, 1)})
  428. particleemitter.LightEmission = 1
  429. particleemitter.Texture = "rbxassetid://0"
  430. particleemitter.Color = ColorSequence.new(BrickColor.new("White").Color)
  431. --//=================================\\
  432. --|| USEFUL VALUES
  433. --\\=================================//
  434.  
  435. Animation_Speed = 3
  436. Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
  437. local Speed = 35
  438. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  439. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  440. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  441. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  442. local DAMAGEMULTIPLIER = 1
  443. local ANIM = "Idle"
  444. local ATTACK = false
  445. local EQUIPPED = false
  446. local HOLD = false
  447. local COMBO = 1
  448. local Rooted = false
  449. local SINE = 0
  450. local KEYHOLD = false
  451. local CHANGE = 2 / Animation_Speed
  452. local WALKINGANIM = false
  453. local VALUE1 = false
  454. local VALUE2 = false
  455. local ROBLOXIDLEANIMATION = IT("Animation")
  456. ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
  457. ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  458. --ROBLOXIDLEANIMATION.Parent = Humanoid
  459. local WEAPONGUI = IT("ScreenGui", PlayerGui)
  460. WEAPONGUI.Name = "Weapon GUI"
  461. local Effects = IT("Folder", Character)
  462. Effects.Name = "Effects"
  463. local ANIMATOR = Humanoid.Animator
  464. local ANIMATE = Character.Animate
  465. local UNANCHOR = true
  466. local LAUGHS = {834001699,834001752,834001797,834001828}
  467.  
  468. Animation_Speed = 3
  469. local FORCERESET = false
  470. Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
  471. local Speed = 16
  472. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  473. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  474. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  475. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  476. local DAMAGEMULTIPLIER = 1
  477. local ANIM = "Idle"
  478. local ATTACK = false
  479. local EQUIPPED = false
  480. local HOLD = true
  481. local COMBO = 3
  482. local Rooted = false
  483. local SINE = 5
  484. local KEYHOLD = false
  485. local CHANGE = 2 / Animation_Speed
  486. local WALKINGANIM = false
  487. local VALUE1 = false
  488. local VALUE2 = false
  489. local ROBLOXIDLEANIMATION = IT("Animation")
  490. ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
  491. ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  492. --ROBLOXIDLEANIMATION.Parent = Humanoid
  493. local WEAPONGUI = IT("ScreenGui", PlayerGui)
  494. WEAPONGUI.Name = "BanishV4Gui"
  495. local Weapon = IT("Model")
  496. Weapon.Name = "Adds"
  497. local Effects = IT("Folder", Weapon)
  498. Effects.Name = "Effects"
  499. local ANIMATOR = Humanoid.Animator
  500. local ANIMATE = Character:FindFirstChild("Animate")
  501. local UNANCHOR = true
  502. local TOBANISH = {}
  503. script.Parent = PlayerGui
  504.  
  505. --//=================================\\
  506. --\\=================================//
  507.  
  508.  
  509. --//=================================\\
  510. --|| SAZERENOS' ARTIFICIAL HEARTBEAT
  511. --\\=================================//
  512.  
  513. ArtificialHB = Instance.new("BindableEvent", script)
  514. ArtificialHB.Name = "ArtificialHB"
  515.  
  516. script:WaitForChild("ArtificialHB")
  517.  
  518. frame = Frame_Speed
  519. tf = 0
  520. allowframeloss = false
  521. tossremainder = false
  522. lastframe = tick()
  523. script.ArtificialHB:Fire()
  524.  
  525. game:GetService("RunService").Heartbeat:connect(function(s, p)
  526. tf = tf + s
  527. if tf >= frame then
  528. if allowframeloss then
  529. script.ArtificialHB:Fire()
  530. lastframe = tick()
  531. else
  532. for i = 1, math.floor(tf / frame) do
  533. script.ArtificialHB:Fire()
  534. end
  535. lastframe = tick()
  536. end
  537. if tossremainder then
  538. tf = 0
  539. else
  540. tf = tf - frame * math.floor(tf / frame)
  541. end
  542. end
  543. end)
  544.  
  545. --//=================================\\
  546. --\\=================================//
  547.  
  548. --//=================================\\
  549. --|| SOME FUNCTIONS
  550. --\\=================================//
  551. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  552. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  553. end
  554.  
  555. function PositiveAngle(NUMBER)
  556. if NUMBER >= 0 then
  557. NUMBER = 0
  558. end
  559. return NUMBER
  560. end
  561.  
  562. function NegativeAngle(NUMBER)
  563. if NUMBER <= 0 then
  564. NUMBER = 0
  565. end
  566. return NUMBER
  567. end
  568.  
  569. function Swait(NUMBER)
  570. if NUMBER == 0 or NUMBER == nil then
  571. ArtificialHB.Event:wait()
  572. else
  573. for i = 1, NUMBER do
  574. ArtificialHB.Event:wait()
  575. end
  576. end
  577. end
  578.  
  579. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  580. local NEWMESH = IT(MESH)
  581. if MESH == "SpecialMesh" then
  582. NEWMESH.MeshType = MESHTYPE
  583. if MESHID ~= "nil" and MESHID ~= "" then
  584. NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  585. end
  586. if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  587. NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  588. end
  589. end
  590. NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  591. NEWMESH.Scale = SCALE
  592. NEWMESH.Parent = PARENT
  593. return NEWMESH
  594. end
  595.  
  596. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  597. local NEWPART = IT("Part")
  598. NEWPART.formFactor = FORMFACTOR
  599. NEWPART.Reflectance = REFLECTANCE
  600. NEWPART.Transparency = TRANSPARENCY
  601. NEWPART.CanCollide = false
  602. NEWPART.Locked = true
  603. NEWPART.Anchored = true
  604. if ANCHOR == false then
  605. NEWPART.Anchored = false
  606. end
  607. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  608. NEWPART.Name = NAME
  609. NEWPART.Size = SIZE
  610. NEWPART.Position = Torso.Position
  611. NEWPART.Material = MATERIAL
  612. NEWPART:BreakJoints()
  613. NEWPART.Parent = PARENT
  614. return NEWPART
  615. end
  616.  
  617. local function weldBetween(a, b)
  618. local weldd = Instance.new("ManualWeld")
  619. weldd.Part0 = a
  620. weldd.Part1 = b
  621. weldd.C0 = CFrame.new()
  622. weldd.C1 = b.CFrame:inverse() * a.CFrame
  623. weldd.Parent = a
  624. return weldd
  625. end
  626.  
  627.  
  628. function QuaternionFromCFrame(cf)
  629. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  630. local trace = m00 + m11 + m22
  631. if trace > 0 then
  632. local s = math.sqrt(1 + trace)
  633. local recip = 0.5 / s
  634. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  635. else
  636. local i = 0
  637. if m11 > m00 then
  638. i = 1
  639. end
  640. if m22 > (i == 0 and m00 or m11) then
  641. i = 2
  642. end
  643. if i == 0 then
  644. local s = math.sqrt(m00 - m11 - m22 + 1)
  645. local recip = 0.5 / s
  646. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  647. elseif i == 1 then
  648. local s = math.sqrt(m11 - m22 - m00 + 1)
  649. local recip = 0.5 / s
  650. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  651. elseif i == 2 then
  652. local s = math.sqrt(m22 - m00 - m11 + 1)
  653. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  654. end
  655. end
  656. end
  657.  
  658. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  659. local xs, ys, zs = x + x, y + y, z + z
  660. local wx, wy, wz = w * xs, w * ys, w * zs
  661. local xx = x * xs
  662. local xy = x * ys
  663. local xz = x * zs
  664. local yy = y * ys
  665. local yz = y * zs
  666. local zz = z * zs
  667. return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
  668. end
  669.  
  670. function QuaternionSlerp(a, b, t)
  671. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  672. local startInterp, finishInterp;
  673. if cosTheta >= 0.0001 then
  674. if (1 - cosTheta) > 0.0001 then
  675. local theta = ACOS(cosTheta)
  676. local invSinTheta = 1 / SIN(theta)
  677. startInterp = SIN((1 - t) * theta) * invSinTheta
  678. finishInterp = SIN(t * theta) * invSinTheta
  679. else
  680. startInterp = 1 - t
  681. finishInterp = t
  682. end
  683. else
  684. if (1 + cosTheta) > 0.0001 then
  685. local theta = ACOS(-cosTheta)
  686. local invSinTheta = 1 / SIN(theta)
  687. startInterp = SIN((t - 1) * theta) * invSinTheta
  688. finishInterp = SIN(t * theta) * invSinTheta
  689. else
  690. startInterp = t - 1
  691. finishInterp = t
  692. end
  693. end
  694. return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
  695. end
  696.  
  697. function Clerp(a, b, t)
  698. local qa = {QuaternionFromCFrame(a)}
  699. local qb = {QuaternionFromCFrame(b)}
  700. local ax, ay, az = a.x, a.y, a.z
  701. local bx, by, bz = b.x, b.y, b.z
  702. local _t = 1 - t
  703. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  704. end
  705.  
  706. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  707. local frame = IT("Frame")
  708. frame.BackgroundTransparency = TRANSPARENCY
  709. frame.BorderSizePixel = BORDERSIZEPIXEL
  710. frame.Position = POSITION
  711. frame.Size = SIZE
  712. frame.BackgroundColor3 = COLOR
  713. frame.BorderColor3 = BORDERCOLOR
  714. frame.Name = NAME
  715. frame.Parent = PARENT
  716. return frame
  717. end
  718.  
  719. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  720. local label = IT("TextLabel")
  721. label.BackgroundTransparency = 1
  722. label.Size = UD2(1, 0, 1, 0)
  723. label.Position = UD2(0, 0, 0, 0)
  724. label.TextColor3 = TEXTCOLOR
  725. label.TextStrokeTransparency = STROKETRANSPARENCY
  726. label.TextTransparency = TRANSPARENCY
  727. label.FontSize = TEXTFONTSIZE
  728. label.Font = TEXTFONT
  729. label.BorderSizePixel = BORDERSIZEPIXEL
  730. label.TextScaled = false
  731. label.Text = TEXT
  732. label.Name = NAME
  733. label.Parent = PARENT
  734. return label
  735. end
  736.  
  737. function NoOutlines(PART)
  738. PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  739. end
  740.  
  741. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  742. local NEWWELD = IT(TYPE)
  743. NEWWELD.Part0 = PART0
  744. NEWWELD.Part1 = PART1
  745. NEWWELD.C0 = C0
  746. NEWWELD.C1 = C1
  747. NEWWELD.Parent = PARENT
  748. return NEWWELD
  749. end
  750.  
  751. local S = IT("Sound")
  752. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  753. local NEWSOUND = nil
  754. coroutine.resume(coroutine.create(function()
  755. NEWSOUND = S:Clone()
  756. NEWSOUND.Parent = PARENT
  757. NEWSOUND.Volume = VOLUME
  758. NEWSOUND.Pitch = PITCH
  759. NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  760. NEWSOUND:play()
  761. if DOESLOOP == true then
  762. NEWSOUND.Looped = true
  763. else
  764. repeat wait(1) until NEWSOUND.Playing == false
  765. NEWSOUND:remove()
  766. end
  767. end))
  768. return NEWSOUND
  769. end
  770.  
  771.  
  772. local EyeSizes={
  773. NumberSequenceKeypoint.new(0,2,0),
  774. NumberSequenceKeypoint.new(1,0,0)
  775. }
  776. local EyeTrans={
  777. NumberSequenceKeypoint.new(0,0.5,0),
  778. NumberSequenceKeypoint.new(1,1,0)
  779. }
  780. local PE=Instance.new("ParticleEmitter",nil)
  781. PE.LightEmission=.8
  782. PE.Color = ColorSequence.new(BRICKC("Institutional White").Color,BRICKC("Institutional White").Color)
  783. PE.Size=NumberSequence.new(EyeSizes)
  784. PE.Transparency=NumberSequence.new(EyeTrans)
  785. PE.Lifetime=NumberRange.new(0.35,1)
  786. PE.Rotation=NumberRange.new(0,360)
  787. PE.Rate=100
  788. PE.VelocitySpread = 10000
  789. PE.Acceleration = Vector3.new(0,85,0)
  790. PE.Drag = 5
  791. PE.Speed = NumberRange.new(0.1,5)
  792. PE.Texture="http://www.roblox.com/asset/?id=1460745664"
  793. PE.ZOffset = 0.5
  794. PE.Name = "PE"
  795. PE.Enabled = false
  796.  
  797. function Fire(art)
  798. local PARTICLES = PE:Clone()
  799. PARTICLES.Parent = art
  800. PARTICLES.Enabled = true
  801. return PARTICLES
  802. end
  803.  
  804. function CFrameFromTopBack(at, top, back)
  805. local right = top:Cross(back)
  806. return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
  807. end
  808.  
  809. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(242, 243, 243), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  810. function WACKYEFFECT(Table)
  811. local TYPE = (Table.EffectType or "Sphere")
  812. local SIZE = (Table.Size or VT(1,1,1))
  813. local ENDSIZE = (Table.Size2 or VT(0,0,0))
  814. local TRANSPARENCY = (Table.Transparency or 0)
  815. local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  816. local CFRAME = (Table.CFrame or Torso.CFrame)
  817. local MOVEDIRECTION = (Table.MoveToPos or nil)
  818. local ROTATION1 = (Table.RotationX or 0)
  819. local ROTATION2 = (Table.RotationY or 0)
  820. local ROTATION3 = (Table.RotationZ or 0)
  821. local MATERIAL = (Table.Material or "Neon")
  822. local COLOR = (Table.Color or C3(242, 243, 243))
  823. local TIME = (Table.Time or 45)
  824. local SOUNDID = (Table.SoundID or nil)
  825. local SOUNDPITCH = (Table.SoundPitch or nil)
  826. local SOUNDVOLUME = (Table.SoundVolume or nil)
  827. coroutine.resume(coroutine.create(function()
  828. local PLAYSSOUND = false
  829. local SOUND = nil
  830. local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Institutional White"), "Effect", VT(1,1,1), true)
  831. if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  832. PLAYSSOUND = true
  833. SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  834. end
  835. EFFECT.Color = COLOR
  836. local MSH = nil
  837. if TYPE == "Sphere" then
  838. MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  839. elseif TYPE == "Block" or TYPE == "Box" then
  840. MSH = IT("BlockMesh",EFFECT)
  841. MSH.Scale = SIZE
  842. elseif TYPE == "Wave" then
  843. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  844. elseif TYPE == "Ring" then
  845. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  846. elseif TYPE == "Slash" then
  847. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  848. elseif TYPE == "Round Slash" then
  849. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  850. elseif TYPE == "Swirl" then
  851. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  852. elseif TYPE == "Skull" then
  853. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  854. elseif TYPE == "Crystal" then
  855. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  856. end
  857. if MSH ~= nil then
  858. local MOVESPEED = nil
  859. if MOVEDIRECTION ~= nil then
  860. MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  861. end
  862. local GROWTH = SIZE - ENDSIZE
  863. local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  864. if TYPE == "Block" then
  865. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  866. else
  867. EFFECT.CFrame = CFRAME
  868. end
  869. for LOOP = 1, TIME+1 do
  870. Swait()
  871. MSH.Scale = MSH.Scale - GROWTH/TIME
  872. if TYPE == "Wave" then
  873. MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  874. end
  875. EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  876. if TYPE == "Block" then
  877. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  878. else
  879. EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  880. end
  881. if MOVEDIRECTION ~= nil then
  882. local ORI = EFFECT.Orientation
  883. EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  884. EFFECT.Orientation = ORI
  885. end
  886. end
  887. if PLAYSSOUND == false then
  888. EFFECT:remove()
  889. else
  890. repeat wait(1) until SOUND.Playing == false
  891. EFFECT:remove()
  892. end
  893. else
  894. if PLAYSSOUND == false then
  895. EFFECT:remove()
  896. else
  897. repeat Swait() until SOUND.Playing == false
  898. EFFECT:remove()
  899. end
  900. end
  901. end))
  902. end
  903.  
  904. function MakeForm(PART,TYPE)
  905. if TYPE == "Cyl" then
  906. local MSH = IT("CylinderMesh",PART)
  907. elseif TYPE == "Ball" then
  908. local MSH = IT("SpecialMesh",PART)
  909. MSH.MeshType = "Sphere"
  910. elseif TYPE == "Wedge" then
  911. local MSH = IT("SpecialMesh",PART)
  912. MSH.MeshType = "Wedge"
  913. end
  914. end
  915.  
  916. Debris = game:GetService("Debris")
  917.  
  918. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  919. local DIRECTION = CF(StartPos,EndPos).lookVector
  920. return Raycast(StartPos, DIRECTION, Distance, Ignore)
  921. end
  922.  
  923. local HATWELD = nil
  924. function Pose(WhichPose,Speed,Time,Magic,Gyro,Tors)
  925. PLAYMAINANIM = false
  926. if WhichPose == "Cast1" then
  927. for i=0, Time, 0.1 / Animation_Speed do
  928. Swait()
  929. if Magic == true then
  930. WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Institutional White".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  931. end
  932. if Gyro ~= nil and Gyro ~= false then
  933. Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
  934. end
  935. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(35)), Speed / Animation_Speed)
  936. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-35)), Speed / Animation_Speed)
  937. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(125), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  938. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  939. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  940. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  941. end
  942. elseif WhichPose == "Cast2" then
  943. for i=0, Time, 0.1 / Animation_Speed do
  944. Swait()
  945. if Magic == true then
  946. WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Institutional White".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  947. WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = LeftArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Institutional White".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  948. end
  949. if Gyro ~= nil and Gyro ~= false then
  950. Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
  951. end
  952. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  953. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
  954. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(15)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  955. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  956. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  957. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  958. end
  959. elseif WhichPose == "RightArmUp" then
  960. for i=0, Time, 0.1 / Animation_Speed do
  961. Swait()
  962. if Magic == true then
  963. WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Institutional White".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  964. end
  965. if Gyro ~= nil and Gyro ~= false then
  966. Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
  967. end
  968. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(15)), Speed / Animation_Speed)
  969. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-15)), Speed / Animation_Speed)
  970. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.2) * ANGLES(RAD(125), RAD(0), RAD(25)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  971. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  972. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  973. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  974. end
  975. elseif WhichPose == "Taunt" then
  976. for i=0, Time, 0.1 / Animation_Speed do
  977. Swait()
  978. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  979. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
  980. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  981. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  982. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  983. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  984. end
  985. HATWELD.Part0 = RightArm
  986. HATWELD.C0 = CF(0,-1.1,-0.4) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(-20), RAD(0), RAD(0))
  987. CreateSound(137473066,Torso,10,1,false)
  988. for i=0, Time*2, 0.1 / Animation_Speed do
  989. Swait()
  990. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  991. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
  992. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(145), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  993. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(5), RAD(25), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  994. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  995. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  996. end
  997. for i=0, Time, 0.1 / Animation_Speed do
  998. Swait()
  999. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  1000. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), Speed / Animation_Speed)
  1001. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.65, -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  1002. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  1003. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  1004. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  1005. HATWELD.C0 = Clerp(HATWELD.C0, CF(-0.5,-1.2,-0.3) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(35), RAD(0), RAD(35)), Speed / Animation_Speed)
  1006. end
  1007. HATWELD.Part0 = Head
  1008. HATWELD.C0 = CF(0,0.35,0)
  1009. elseif WhichPose == "Prepare key" then
  1010. for i=0, Time, 0.1 / Animation_Speed do
  1011. Swait()
  1012. if Gyro ~= nil and Gyro ~= false then
  1013. Gyro.cframe = CF(RootPart.Position,Tors.Position)
  1014. end
  1015. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(65)), Speed / Animation_Speed)
  1016. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-65)), Speed / Animation_Speed)
  1017. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(65)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  1018. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  1019. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  1020. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  1021. end
  1022. elseif WhichPose == "Turn key" then
  1023. for i=0, Time, 0.1 / Animation_Speed do
  1024. Swait()
  1025. if Gyro ~= nil and Gyro ~= false then
  1026. Gyro.cframe = CF(RootPart.Position,Tors.Position)
  1027. end
  1028. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(75)), Speed / Animation_Speed)
  1029. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-75)), Speed / Animation_Speed)
  1030. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(75)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  1031. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  1032. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  1033. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  1034. end
  1035. end
  1036. PLAYMAINANIM = true
  1037. end
  1038.  
  1039. --Lightning({Color = C3(1,1,1), Start = Torso.Position, End = Mouse.Hit.p, SegmentL = 2, Thickness = 0.1, DoesFade = false, Ignore = Character, MaxDist = 400, Branches = false})
  1040. function Lightning(Table)
  1041. local Color = Table.Color or C3(242, 243, 243)
  1042. local StartPos = Table.Start or Torso.Position
  1043. local EndPos = Table.End or Mouse.Hit.p
  1044. local SegmentLength = Table.SegmentL or 2
  1045. local Thickness = Table.Thickness or 0.1
  1046. local Dissapear = Table.DoesFade or false
  1047. local Parent = Table.Ignore or Character
  1048. local MaxDist = Table.MaxDist or 400
  1049. local Branches = Table.Branches or false
  1050. local HIT,HITPOS = CastProperRay(StartPos, EndPos, MaxDist, Parent)
  1051. local DISTANCE = math.ceil((StartPos - HITPOS).Magnitude/SegmentLength)
  1052. local LIGHTNINGMODEL = IT("Model",Effects)
  1053. LIGHTNINGMODEL.Name = "Lightning"
  1054. local LastBolt = nil
  1055. for E = 1, DISTANCE do
  1056. local ExtraSize = (DISTANCE-E)/15
  1057. local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Institutional White"), "LightningPart"..E, VT(Thickness+ExtraSize,SegmentLength,Thickness+ExtraSize))
  1058. PART.Color = Color
  1059. MakeForm(PART,"Cyl")
  1060. if LastBolt == nil then
  1061. PART.CFrame = CF(StartPos,HITPOS)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  1062. else
  1063. PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,CF(HITPOS)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,SegmentLength/3+(DISTANCE-E)).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  1064. end
  1065. LastBolt = PART
  1066. if Branches == true then
  1067. local CHOICE = MRANDOM(1,7+((DISTANCE-E)*2))
  1068. if CHOICE == 1 then
  1069. local LASTBRANCH = nil
  1070. for i = 1, MRANDOM(2,5) do
  1071. local ExtraSize2 = ((DISTANCE-E)/25)/i
  1072. local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Institutional White"), "Branch"..E.."-"..i, VT(Thickness+ExtraSize2,SegmentLength,Thickness+ExtraSize2))
  1073. PART.Color = Color
  1074. MakeForm(PART,"Cyl")
  1075. if LASTBRANCH == nil then
  1076. PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*7,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  1077. else
  1078. PART.CFrame = CF(LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0).p,LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*3,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  1079. end
  1080. LASTBRANCH = PART
  1081. end
  1082. end
  1083. end
  1084. end
  1085. if Dissapear == true then
  1086. coroutine.resume(coroutine.create(function()
  1087. for i = 1, 10 do
  1088. Swait()
  1089. for _, c in pairs(LIGHTNINGMODEL:GetChildren()) do
  1090. if c.ClassName == "Part" then
  1091. c.Transparency = i/10
  1092. end
  1093. end
  1094. end
  1095. LIGHTNINGMODEL:remove()
  1096. end))
  1097. elseif Dissapear == false then
  1098. Debris:AddItem(LIGHTNINGMODEL,0.1)
  1099. end
  1100. return {End = LastBolt.CFrame*CF(0,0,-LastBolt.Size.Z/2).p,LastBolt = LastBolt,Model = LIGHTNINGMODEL}
  1101. end
  1102.  
  1103. function PositiveAngle(NUMBER)
  1104. if NUMBER >= 0 then
  1105. NUMBER = 0
  1106. end
  1107. return NUMBER
  1108. end
  1109.  
  1110. function NegativeAngle(NUMBER)
  1111. if NUMBER <= 0 then
  1112. NUMBER = 0
  1113. end
  1114. return NUMBER
  1115. end
  1116.  
  1117. function Swait(NUMBER)
  1118. if NUMBER == 0 or NUMBER == nil then
  1119. ArtificialHB.Event:wait()
  1120. else
  1121. for i = 1, NUMBER do
  1122. ArtificialHB.Event:wait()
  1123. end
  1124. end
  1125. end
  1126.  
  1127. function QuaternionFromCFrame(cf)
  1128. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  1129. local trace = m00 + m11 + m22
  1130. if trace > 0 then
  1131. local s = math.sqrt(1 + trace)
  1132. local recip = 0.5 / s
  1133. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  1134. else
  1135. local i = 0
  1136. if m11 > m00 then
  1137. i = 1
  1138. end
  1139. if m22 > (i == 0 and m00 or m11) then
  1140. i = 2
  1141. end
  1142. if i == 0 then
  1143. local s = math.sqrt(m00 - m11 - m22 + 1)
  1144. local recip = 0.5 / s
  1145. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  1146. elseif i == 1 then
  1147. local s = math.sqrt(m11 - m22 - m00 + 1)
  1148. local recip = 0.5 / s
  1149. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  1150. elseif i == 2 then
  1151. local s = math.sqrt(m22 - m00 - m11 + 1)
  1152. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  1153. end
  1154. end
  1155. end
  1156.  
  1157. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  1158. local xs, ys, zs = x + x, y + y, z + z
  1159. local wx, wy, wz = w * xs, w * ys, w * zs
  1160. local xx = x * xs
  1161. local xy = x * ys
  1162. local xz = x * zs
  1163. local yy = y * ys
  1164. local yz = y * zs
  1165. local zz = z * zs
  1166. return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
  1167. end
  1168.  
  1169. function QuaternionSlerp(a, b, t)
  1170. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  1171. local startInterp, finishInterp;
  1172. if cosTheta >= 0.0001 then
  1173. if (1 - cosTheta) > 0.0001 then
  1174. local theta = ACOS(cosTheta)
  1175. local invSinTheta = 1 / SIN(theta)
  1176. startInterp = SIN((1 - t) * theta) * invSinTheta
  1177. finishInterp = SIN(t * theta) * invSinTheta
  1178. else
  1179. startInterp = 1 - t
  1180. finishInterp = t
  1181. end
  1182. else
  1183. if (1 + cosTheta) > 0.0001 then
  1184. local theta = ACOS(-cosTheta)
  1185. local invSinTheta = 1 / SIN(theta)
  1186. startInterp = SIN((t - 1) * theta) * invSinTheta
  1187. finishInterp = SIN(t * theta) * invSinTheta
  1188. else
  1189. startInterp = t - 1
  1190. finishInterp = t
  1191. end
  1192. end
  1193. return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
  1194. end
  1195.  
  1196. function Clerp(a, b, t)
  1197. local qa = {QuaternionFromCFrame(a)}
  1198. local qb = {QuaternionFromCFrame(b)}
  1199. local ax, ay, az = a.x, a.y, a.z
  1200. local bx, by, bz = b.x, b.y, b.z
  1201. local _t = 1 - t
  1202. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  1203. end
  1204.  
  1205. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  1206. local frame = IT("Frame")
  1207. frame.BackgroundTransparency = TRANSPARENCY
  1208. frame.BorderSizePixel = BORDERSIZEPIXEL
  1209. frame.Position = POSITION
  1210. frame.Size = SIZE
  1211. frame.BackgroundColor3 = COLOR
  1212. frame.BorderColor3 = BORDERCOLOR
  1213. frame.Name = NAME
  1214. frame.Parent = PARENT
  1215. return frame
  1216. end
  1217.  
  1218. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  1219. local label = IT("TextLabel")
  1220. label.BackgroundTransparency = 1
  1221. label.Size = UD2(1, 0, 1, 0)
  1222. label.Position = UD2(0, 0, 0, 0)
  1223. label.TextColor3 = TEXTCOLOR
  1224. label.TextStrokeTransparency = STROKETRANSPARENCY
  1225. label.TextTransparency = TRANSPARENCY
  1226. label.FontSize = TEXTFONTSIZE
  1227. label.Font = TEXTFONT
  1228. label.BorderSizePixel = BORDERSIZEPIXEL
  1229. label.TextScaled = false
  1230. label.Text = TEXT
  1231. label.Name = NAME
  1232. label.Parent = PARENT
  1233. return label
  1234. end
  1235.  
  1236. function NoOutlines(PART)
  1237. PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  1238. end
  1239.  
  1240.  
  1241. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  1242. local NEWWELD = IT(TYPE)
  1243. NEWWELD.Part0 = PART0
  1244. NEWWELD.Part1 = PART1
  1245. NEWWELD.C0 = C0
  1246. NEWWELD.C1 = C1
  1247. NEWWELD.Parent = PARENT
  1248. return NEWWELD
  1249. end
  1250.  
  1251. function CreateSound(ID, PARENT, VOLUME, PITCH)
  1252. local NEWSOUND = nil
  1253. coroutine.resume(coroutine.create(function()
  1254. NEWSOUND = IT("Sound", PARENT)
  1255. NEWSOUND.Volume = VOLUME
  1256. NEWSOUND.Pitch = PITCH
  1257. NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  1258. Swait()
  1259. NEWSOUND:play()
  1260. game:GetService("Debris"):AddItem(NEWSOUND, 10)
  1261. end))
  1262. return NEWSOUND
  1263. end
  1264.  
  1265. function CFrameFromTopBack(at, top, back)
  1266. local right = top:Cross(back)
  1267. return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
  1268. end
  1269.  
  1270. function CreateWave(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
  1271. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Institutional White"), "Effect", VT(1,1,1), true)
  1272. local mesh = IT("SpecialMesh",wave)
  1273. mesh.MeshType = "FileMesh"
  1274. mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  1275. mesh.Scale = SIZE
  1276. mesh.Offset = VT(0,0,-SIZE.X/8)
  1277. wave.CFrame = CFRAME
  1278. coroutine.resume(coroutine.create(function(PART)
  1279. for i = 1, WAIT do
  1280. Swait()
  1281. mesh.Scale = mesh.Scale + GROW
  1282. mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  1283. if DOESROT == true then
  1284. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
  1285. end
  1286. wave.Transparency = wave.Transparency + (0.5/WAIT)
  1287. if wave.Transparency > 0.99 then
  1288. wave:remove()
  1289. end
  1290. end
  1291. end))
  1292. end
  1293.  
  1294. function CreateWave2(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
  1295. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Institutional White"), "Effect", VT(1,1,1), true)
  1296. local mesh = IT("SpecialMesh",wave)
  1297. mesh.MeshType = "FileMesh"
  1298. mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  1299. mesh.Scale = SIZE
  1300. --mesh.Offset = VT(0,0,-SIZE.X/8)
  1301. wave.CFrame = CFRAME
  1302. coroutine.resume(coroutine.create(function(PART)
  1303. for i = 1, WAIT do
  1304. Swait()
  1305. mesh.Scale = mesh.Scale + GROW
  1306. --mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  1307. if DOESROT == true then
  1308. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
  1309. end
  1310. wave.Transparency = wave.Transparency + (0.5/WAIT)
  1311. if wave.Transparency > 0.99 then
  1312. wave:remove()
  1313. end
  1314. end
  1315. end))
  1316. end
  1317.  
  1318. function CreateSwirl(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
  1319. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Institutional White"), "Effect", VT(1,1,1), true)
  1320. local mesh = IT("SpecialMesh",wave)
  1321. mesh.MeshType = "FileMesh"
  1322. mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
  1323. mesh.Scale = SIZE
  1324. wave.CFrame = CFRAME
  1325. coroutine.resume(coroutine.create(function(PART)
  1326. for i = 1, WAIT do
  1327. Swait()
  1328. mesh.Scale = mesh.Scale + GROW
  1329. mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  1330. if DOESROT == true then
  1331. wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
  1332. end
  1333. wave.Transparency = wave.Transparency + (0.5/WAIT)
  1334. if wave.Transparency > 0.99 then
  1335. wave:remove()
  1336. end
  1337. end
  1338. end))
  1339. end
  1340.  
  1341.  
  1342. function Slice(SIZE,WAIT,CFRAME,COLOR,GROW)
  1343. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Institutional White"), "Effect", VT(1,1,1), true)
  1344. local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
  1345. wave.CFrame = CFRAME
  1346. coroutine.resume(coroutine.create(function(PART)
  1347. for i = 1, WAIT do
  1348. Swait()
  1349. mesh.Scale = mesh.Scale * GROW
  1350. wave.Transparency = wave.Transparency + (0.5/WAIT)
  1351. if wave.Transparency > 0.99 then
  1352. wave:remove()
  1353. end
  1354. end
  1355. end))
  1356. end
  1357.  
  1358. function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW)
  1359. local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Institutional White"), "Effect", VT(1,1,1), true)
  1360. local mesh = IT("SpecialMesh",wave)
  1361. mesh.MeshType = "Sphere"
  1362. mesh.Scale = SIZE
  1363. mesh.Offset = VT(0,0,0)
  1364. wave.CFrame = CFRAME
  1365. coroutine.resume(coroutine.create(function(PART)
  1366. for i = 1, WAIT do
  1367. Swait()
  1368. mesh.Scale = mesh.Scale + GROW
  1369. wave.Transparency = wave.Transparency + (1/WAIT)
  1370. if wave.Transparency > 0.99 then
  1371. wave:remove()
  1372. end
  1373. end
  1374. end))
  1375. end
  1376.  
  1377. function MakeForm(PART,TYPE)
  1378. if TYPE == "Cyl" then
  1379. local MSH = IT("CylinderMesh",PART)
  1380. elseif TYPE == "Ball" then
  1381. local MSH = IT("SpecialMesh",PART)
  1382. MSH.MeshType = "Sphere"
  1383. elseif TYPE == "Wedge" then
  1384. local MSH = IT("SpecialMesh",PART)
  1385. MSH.MeshType = "Wedge"
  1386. end
  1387. end
  1388.  
  1389. function CreateDebreeRing(FLOOR,POSITION,SIZE,BLOCKSIZE,SWAIT)
  1390. if FLOOR ~= nil then
  1391. coroutine.resume(coroutine.create(function()
  1392. local PART = CreatePart(3, Effects, "Neon", 0, 1, "Institutional White", "DebreeCenter", VT(0,0,0))
  1393. PART.CFrame = CF(POSITION)
  1394. for i = 1, 45 do
  1395. local RingPiece = CreatePart(3, Effects, "Plastic", 0, 0, "Pearl", "DebreePart", BLOCKSIZE)
  1396. RingPiece.Material = FLOOR.Material
  1397. RingPiece.Color = FLOOR.Color
  1398. RingPiece.CFrame = PART.CFrame * ANGLES(RAD(0), RAD(i*8), RAD(0)) * CF(SIZE*4, 0, 0) * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)))
  1399. Debris:AddItem(RingPiece,SWAIT/100)
  1400. end
  1401. PART:remove()
  1402. end))
  1403. end
  1404. end
  1405.  
  1406. function CheckTableForString(Table, String)
  1407. for i, v in pairs(Table) do
  1408. if string.find(string.lower(String), string.lower(v)) then
  1409. return true
  1410. end
  1411. end
  1412. return false
  1413. end
  1414.  
  1415. function CheckIntangible(Hit)
  1416. local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
  1417. if Hit and Hit.Parent then
  1418. if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
  1419. return true
  1420. end
  1421. end
  1422. return false
  1423. end
  1424.  
  1425. Debris = game:GetService("Debris")
  1426.  
  1427. function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
  1428. local Direction = CFrame.new(StartPos, Vec).lookVector
  1429. local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
  1430. local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
  1431. if RayHit and CheckIntangible(RayHit) then
  1432. if DelayIfHit then
  1433. wait()
  1434. end
  1435. RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
  1436. end
  1437. return RayHit, RayPos, RayNormal
  1438. end
  1439.  
  1440. function turnto(position)
  1441. RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  1442. end
  1443.  
  1444. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  1445. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  1446. end
  1447.  
  1448. function PositiveAngle(NUMBER)
  1449. if NUMBER >= 0 then
  1450. NUMBER = 0
  1451. end
  1452. return NUMBER
  1453. end
  1454.  
  1455. function NegativeAngle(NUMBER)
  1456. if NUMBER <= 0 then
  1457. NUMBER = 0
  1458. end
  1459. return NUMBER
  1460. end
  1461.  
  1462. function Swait(NUMBER)
  1463. if NUMBER == 0 or NUMBER == nil then
  1464. ArtificialHB.Event:wait()
  1465. else
  1466. for i = 1, NUMBER do
  1467. ArtificialHB.Event:wait()
  1468. end
  1469. end
  1470. end
  1471.  
  1472. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  1473. local NEWMESH = IT(MESH)
  1474. if MESH == "SpecialMesh" then
  1475. NEWMESH.MeshType = MESHTYPE
  1476. if MESHID ~= "nil" and MESHID ~= "" then
  1477. NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  1478. end
  1479. if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  1480. NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  1481. end
  1482. end
  1483. NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  1484. NEWMESH.Scale = SCALE
  1485. NEWMESH.Parent = PARENT
  1486. return NEWMESH
  1487. end
  1488.  
  1489. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  1490. local NEWPART = IT("Part")
  1491. NEWPART.formFactor = FORMFACTOR
  1492. NEWPART.Reflectance = REFLECTANCE
  1493. NEWPART.Transparency = TRANSPARENCY
  1494. NEWPART.CanCollide = false
  1495. NEWPART.Locked = true
  1496. NEWPART.Anchored = true
  1497. if ANCHOR == false then
  1498. NEWPART.Anchored = false
  1499. end
  1500. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  1501. NEWPART.Name = NAME
  1502. NEWPART.Size = SIZE
  1503. NEWPART.Position = Torso.Position
  1504. NEWPART.Material = MATERIAL
  1505. NEWPART:BreakJoints()
  1506. NEWPART.Parent = PARENT
  1507. return NEWPART
  1508. end
  1509.  
  1510. local function weldBetween(a, b)
  1511. local weldd = IT("Weld")
  1512. weldd.Part0 = a
  1513. weldd.Part1 = b
  1514. weldd.C0 = CF()
  1515. weldd.C1 = b.CFrame:inverse() * a.CFrame
  1516. weldd.Parent = a
  1517. return weldd
  1518. end
  1519.  
  1520.  
  1521. function QuaternionFromCFrame(cf)
  1522. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  1523. local trace = m00 + m11 + m22
  1524. if trace > 0 then
  1525. local s = math.sqrt(1 + trace)
  1526. local recip = 0.5 / s
  1527. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  1528. else
  1529. local i = 0
  1530. if m11 > m00 then
  1531. i = 1
  1532. end
  1533. if m22 > (i == 0 and m00 or m11) then
  1534. i = 2
  1535. end
  1536. if i == 0 then
  1537. local s = math.sqrt(m00 - m11 - m22 + 1)
  1538. local recip = 0.5 / s
  1539. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  1540. elseif i == 1 then
  1541. local s = math.sqrt(m11 - m22 - m00 + 1)
  1542. local recip = 0.5 / s
  1543. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  1544. elseif i == 2 then
  1545. local s = math.sqrt(m22 - m00 - m11 + 1)
  1546. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  1547. end
  1548. end
  1549. end
  1550.  
  1551. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  1552. local xs, ys, zs = x + x, y + y, z + z
  1553. local wx, wy, wz = w * xs, w * ys, w * zs
  1554. local xx = x * xs
  1555. local xy = x * ys
  1556. local xz = x * zs
  1557. local yy = y * ys
  1558. local yz = y * zs
  1559. local zz = z * zs
  1560. return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
  1561. end
  1562.  
  1563. function QuaternionSlerp(a, b, t)
  1564. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  1565. local startInterp, finishInterp;
  1566. if cosTheta >= 0.0001 then
  1567. if (1 - cosTheta) > 0.0001 then
  1568. local theta = ACOS(cosTheta)
  1569. local invSinTheta = 1 / SIN(theta)
  1570. startInterp = SIN((1 - t) * theta) * invSinTheta
  1571. finishInterp = SIN(t * theta) * invSinTheta
  1572. else
  1573. startInterp = 1 - t
  1574. finishInterp = t
  1575. end
  1576. else
  1577. if (1 + cosTheta) > 0.0001 then
  1578. local theta = ACOS(-cosTheta)
  1579. local invSinTheta = 1 / SIN(theta)
  1580. startInterp = SIN((t - 1) * theta) * invSinTheta
  1581. finishInterp = SIN(t * theta) * invSinTheta
  1582. else
  1583. startInterp = t - 1
  1584. finishInterp = t
  1585. end
  1586. end
  1587. return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
  1588. end
  1589.  
  1590. function Clerp(a, b, t)
  1591. local qa = {QuaternionFromCFrame(a)}
  1592. local qb = {QuaternionFromCFrame(b)}
  1593. local ax, ay, az = a.x, a.y, a.z
  1594. local bx, by, bz = b.x, b.y, b.z
  1595. local _t = 1 - t
  1596. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  1597. end
  1598.  
  1599. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  1600. local frame = IT("Frame")
  1601. frame.BackgroundTransparency = TRANSPARENCY
  1602. frame.BorderSizePixel = BORDERSIZEPIXEL
  1603. frame.Position = POSITION
  1604. frame.Size = SIZE
  1605. frame.BackgroundColor3 = COLOR
  1606. frame.BorderColor3 = BORDERCOLOR
  1607. frame.Name = NAME
  1608. frame.Parent = PARENT
  1609. return frame
  1610. end
  1611.  
  1612. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  1613. local label = IT("TextLabel")
  1614. label.BackgroundTransparency = 1
  1615. label.Size = UD2(1, 0, 1, 0)
  1616. label.Position = UD2(0, 0, 0, 0)
  1617. label.TextColor3 = TEXTCOLOR
  1618. label.TextStrokeTransparency = STROKETRANSPARENCY
  1619. label.TextTransparency = TRANSPARENCY
  1620. label.FontSize = TEXTFONTSIZE
  1621. label.Font = TEXTFONT
  1622. label.BorderSizePixel = BORDERSIZEPIXEL
  1623. label.TextScaled = false
  1624. label.Text = TEXT
  1625. label.Name = NAME
  1626. label.Parent = PARENT
  1627. return label
  1628. end
  1629.  
  1630. function NoOutlines(PART)
  1631. PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  1632. end
  1633.  
  1634. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  1635. local NEWWELD = IT(TYPE)
  1636. NEWWELD.Part0 = PART0
  1637. NEWWELD.Part1 = PART1
  1638. NEWWELD.C0 = C0
  1639. NEWWELD.C1 = C1
  1640. NEWWELD.Parent = PARENT
  1641. return NEWWELD
  1642. end
  1643.  
  1644. local S = IT("Sound")
  1645. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  1646. local NEWSOUND = nil
  1647. coroutine.resume(coroutine.create(function()
  1648. NEWSOUND = S:Clone()
  1649. NEWSOUND.Parent = PARENT
  1650. NEWSOUND.Volume = VOLUME
  1651. NEWSOUND.Pitch = PITCH
  1652. NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  1653. NEWSOUND:play()
  1654. if DOESLOOP == true then
  1655. NEWSOUND.Looped = true
  1656. else
  1657. repeat wait(1) until NEWSOUND.Playing == false
  1658. NEWSOUND:remove()
  1659. end
  1660. end))
  1661. return NEWSOUND
  1662. end
  1663.  
  1664. function CFrameFromTopBack(at, top, back)
  1665. local right = top:Cross(back)
  1666. return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
  1667. end
  1668.  
  1669. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(242, 243, 243), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  1670. function WACKYEFFECT(Table)
  1671. local TYPE = (Table.EffectType or "Sphere")
  1672. local SIZE = (Table.Size or VT(1,1,1))
  1673. local ENDSIZE = (Table.Size2 or VT(0,0,0))
  1674. local TRANSPARENCY = (Table.Transparency or 0)
  1675. local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  1676. local CFRAME = (Table.CFrame or Torso.CFrame)
  1677. local MOVEDIRECTION = (Table.MoveToPos or nil)
  1678. local ROTATION1 = (Table.RotationX or 0)
  1679. local ROTATION2 = (Table.RotationY or 0)
  1680. local ROTATION3 = (Table.RotationZ or 0)
  1681. local MATERIAL = (Table.Material or "Neon")
  1682. local COLOR = (Table.Color or C3(242, 243, 243))
  1683. local TIME = (Table.Time or 45)
  1684. local SOUNDID = (Table.SoundID or nil)
  1685. local SOUNDPITCH = (Table.SoundPitch or nil)
  1686. local SOUNDVOLUME = (Table.SoundVolume or nil)
  1687. coroutine.resume(coroutine.create(function()
  1688. local PLAYSSOUND = false
  1689. local SOUND = nil
  1690. local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Institutional White"), "Effect", VT(1,1,1), true)
  1691. if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  1692. PLAYSSOUND = true
  1693. SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  1694. end
  1695. EFFECT.Color = COLOR
  1696. local MSH = nil
  1697. if TYPE == "Sphere" then
  1698. MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  1699. elseif TYPE == "Block" then
  1700. MSH = IT("BlockMesh",EFFECT)
  1701. MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
  1702. elseif TYPE == "Wave" then
  1703. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  1704. elseif TYPE == "Ring" then
  1705. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  1706. elseif TYPE == "Slash" then
  1707. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  1708. elseif TYPE == "Round Slash" then
  1709. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  1710. elseif TYPE == "Swirl" then
  1711. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  1712. elseif TYPE == "Skull" then
  1713. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  1714. elseif TYPE == "Crystal" then
  1715. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  1716. end
  1717. if MSH ~= nil then
  1718. local MOVESPEED = nil
  1719. if MOVEDIRECTION ~= nil then
  1720. MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  1721. end
  1722. local GROWTH = SIZE - ENDSIZE
  1723. local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  1724. if TYPE == "Block" then
  1725. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  1726. else
  1727. EFFECT.CFrame = CFRAME
  1728. end
  1729. for LOOP = 1, TIME+1 do
  1730. Swait()
  1731. MSH.Scale = MSH.Scale - GROWTH/TIME
  1732. if TYPE == "Wave" then
  1733. MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  1734. end
  1735. EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  1736. if TYPE == "Block" then
  1737. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  1738. else
  1739. EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  1740. end
  1741. if MOVEDIRECTION ~= nil then
  1742. local ORI = EFFECT.Orientation
  1743. EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  1744. EFFECT.Orientation = ORI
  1745. end
  1746. end
  1747. if PLAYSSOUND == false then
  1748. EFFECT:remove()
  1749. else
  1750. SOUND.Stopped:Connect(function()
  1751. EFFECT:remove()
  1752. end)
  1753. end
  1754. else
  1755. if PLAYSSOUND == false then
  1756. EFFECT:remove()
  1757. else
  1758. repeat Swait() until SOUND.Playing == false
  1759. EFFECT:remove()
  1760. end
  1761. end
  1762. end))
  1763. end
  1764.  
  1765. function MakeForm(PART,TYPE)
  1766. if TYPE == "Cyl" then
  1767. local MSH = IT("CylinderMesh",PART)
  1768. elseif TYPE == "Ball" then
  1769. local MSH = IT("SpecialMesh",PART)
  1770. MSH.MeshType = "Sphere"
  1771. elseif TYPE == "Wedge" then
  1772. local MSH = IT("SpecialMesh",PART)
  1773. MSH.MeshType = "Wedge"
  1774. end
  1775. end
  1776.  
  1777. Debris = game:GetService("Debris")
  1778.  
  1779. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  1780. local DIRECTION = CF(StartPos,EndPos).lookVector
  1781. return Raycast(StartPos, DIRECTION, Distance, Ignore)
  1782. end
  1783.  
  1784. function turnto(position)
  1785. RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  1786. end
  1787.  
  1788. function SpawnTrail(FROM,TO,BIG)
  1789. local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Institutional White", "Trail", VT(0,0,0))
  1790. MakeForm(TRAIL,"Cyl")
  1791. local DIST = (FROM - TO).Magnitude
  1792. if BIG == true then
  1793. TRAIL.Size = VT(0.5,DIST,0.5)
  1794. else
  1795. TRAIL.Size = VT(0.25,DIST,0.25)
  1796. end
  1797. TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
  1798. coroutine.resume(coroutine.create(function()
  1799. for i = 1, 5 do
  1800. Swait()
  1801. TRAIL.Transparency = TRAIL.Transparency + 0.1
  1802. end
  1803. TRAIL:remove()
  1804. end))
  1805. end
  1806.  
  1807. local asd = Instance.new("ParticleEmitter")
  1808. asd.Color = ColorSequence.new(Color3.new(242, 243, 243
  1809. ), Color3.new(242, 243, 243
  1810. ))
  1811. asd.LightEmission = .1
  1812. asd.Texture = "http://www.roblox.com/asset/?ID=12419554"
  1813. aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.6),NumberSequenceKeypoint.new(1, 2)})
  1814. bbb = NumberSequence.new({NumberSequenceKeypoint.new(0, 1),NumberSequenceKeypoint.new(0.0636, 0), NumberSequenceKeypoint.new(1, 1)})
  1815. asd.Transparency = bbb
  1816. asd.Size = aaa
  1817. asd.ZOffset = .9
  1818. asd.Acceleration = Vector3.new(0, -15, 0)
  1819. asd.LockedToPart = false
  1820. asd.EmissionDirection = "Back"
  1821. asd.Lifetime = NumberRange.new(1, 2)
  1822. asd.Rotation = NumberRange.new(-100, 100)
  1823. asd.RotSpeed = NumberRange.new(-100, 100)
  1824. asd.Speed = NumberRange.new(10)
  1825. asd.Enabled = false
  1826. asd.VelocitySpread = 999
  1827.  
  1828. function getbloody(victim,amount)
  1829. local PART = CreatePart(3, Effects, "Metal", 0, 1, "Institutional White", "Blood", victim.Size)
  1830. PART.CFrame = victim.CFrame
  1831. local HITPLAYERSOUNDS = {"356551938","264486467"}
  1832. Debris:AddItem(PART,5)
  1833. CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
  1834. CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
  1835. CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
  1836. local prtcl = asd:Clone()
  1837. prtcl.Parent = PART
  1838. prtcl:Emit(amount*10)
  1839. end
  1840.  
  1841. local Particle = IT("ParticleEmitter",nil)
  1842. Particle.Enabled = false
  1843. Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(0.3,0.95),NumberSequenceKeypoint.new(1,1)})
  1844. Particle.LightEmission = 0.5
  1845. Particle.Rate = 150
  1846. Particle.ZOffset = 1
  1847. Particle.Rotation = NumberRange.new(-180, 180)
  1848. Particle.RotSpeed = NumberRange.new(-180, 180)
  1849. Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
  1850. Particle.Color = ColorSequence.new(C3(1,0,0),C3(0.4,0,0))
  1851.  
  1852. --ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
  1853. function ParticleEmitter(Table)
  1854. local PRTCL = Particle:Clone()
  1855. local Speed = Table.Speed or 5
  1856. local Drag = Table.Drag or 0
  1857. local Size1 = Table.Size1 or 1
  1858. local Size2 = Table.Size2 or 5
  1859. local Lifetime1 = Table.Lifetime1 or 1
  1860. local Lifetime2 = Table.Lifetime2 or 1.5
  1861. local Parent = Table.Parent or Torso
  1862. local Emit = Table.Emit or 100
  1863. local Offset = Table.Offset or 360
  1864. local Acel = Table.Acel or VT(0,0,0)
  1865. local Enabled = Table.Enabled or false
  1866. PRTCL.Parent = Parent
  1867. PRTCL.Size = NumberSequence.new(Size1,Size2)
  1868. PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
  1869. PRTCL.Speed = NumberRange.new(Speed)
  1870. PRTCL.VelocitySpread = Offset
  1871. PRTCL.Drag = Drag
  1872. PRTCL.Acceleration = Acel
  1873. if Enabled == false then
  1874. PRTCL:Emit(Emit)
  1875. Debris:AddItem(PRTCL,Lifetime2)
  1876. else
  1877. PRTCL.Enabled = true
  1878. end
  1879. return PRTCL
  1880. end
  1881.  
  1882. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  1883. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  1884. end
  1885.  
  1886. function PositiveAngle(NUMBER)
  1887. if NUMBER >= 0 then
  1888. NUMBER = 0
  1889. end
  1890. return NUMBER
  1891. end
  1892.  
  1893. function NegativeAngle(NUMBER)
  1894. if NUMBER <= 0 then
  1895. NUMBER = 0
  1896. end
  1897. return NUMBER
  1898. end
  1899.  
  1900. function Swait(NUMBER)
  1901. if NUMBER == 0 or NUMBER == nil then
  1902. ArtificialHB.Event:wait()
  1903. else
  1904. for i = 1, NUMBER do
  1905. ArtificialHB.Event:wait()
  1906. end
  1907. end
  1908. end
  1909.  
  1910. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  1911. local NEWMESH = IT(MESH)
  1912. if MESH == "SpecialMesh" then
  1913. NEWMESH.MeshType = MESHTYPE
  1914. if MESHID ~= "nil" and MESHID ~= "" then
  1915. NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  1916. end
  1917. if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  1918. NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  1919. end
  1920. end
  1921. NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  1922. NEWMESH.Scale = SCALE
  1923. NEWMESH.Parent = PARENT
  1924. return NEWMESH
  1925. end
  1926.  
  1927. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  1928. local NEWPART = IT("Part")
  1929. NEWPART.formFactor = FORMFACTOR
  1930. NEWPART.Reflectance = REFLECTANCE
  1931. NEWPART.Transparency = TRANSPARENCY
  1932. NEWPART.CanCollide = false
  1933. NEWPART.Locked = true
  1934. NEWPART.Anchored = true
  1935. if ANCHOR == false then
  1936. NEWPART.Anchored = false
  1937. end
  1938. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  1939. NEWPART.Name = NAME
  1940. NEWPART.Size = SIZE
  1941. NEWPART.Position = Torso.Position
  1942. NEWPART.Material = MATERIAL
  1943. NEWPART:BreakJoints()
  1944. NEWPART.Parent = PARENT
  1945. return NEWPART
  1946. end
  1947.  
  1948. local function weldBetween(a, b)
  1949. local weldd = Instance.new("ManualWeld")
  1950. weldd.Part0 = a
  1951. weldd.Part1 = b
  1952. weldd.C0 = CFrame.new()
  1953. weldd.C1 = b.CFrame:inverse() * a.CFrame
  1954. weldd.Parent = a
  1955. return weldd
  1956. end
  1957.  
  1958.  
  1959. function QuaternionFromCFrame(cf)
  1960. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  1961. local trace = m00 + m11 + m22
  1962. if trace > 0 then
  1963. local s = math.sqrt(1 + trace)
  1964. local recip = 0.5 / s
  1965. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  1966. else
  1967. local i = 0
  1968. if m11 > m00 then
  1969. i = 1
  1970. end
  1971. if m22 > (i == 0 and m00 or m11) then
  1972. i = 2
  1973. end
  1974. if i == 0 then
  1975. local s = math.sqrt(m00 - m11 - m22 + 1)
  1976. local recip = 0.5 / s
  1977. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  1978. elseif i == 1 then
  1979. local s = math.sqrt(m11 - m22 - m00 + 1)
  1980. local recip = 0.5 / s
  1981. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  1982. elseif i == 2 then
  1983. local s = math.sqrt(m22 - m00 - m11 + 1)
  1984. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  1985. end
  1986. end
  1987. end
  1988.  
  1989. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  1990. local xs, ys, zs = x + x, y + y, z + z
  1991. local wx, wy, wz = w * xs, w * ys, w * zs
  1992. local xx = x * xs
  1993. local xy = x * ys
  1994. local xz = x * zs
  1995. local yy = y * ys
  1996. local yz = y * zs
  1997. local zz = z * zs
  1998. return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
  1999. end
  2000.  
  2001. function QuaternionSlerp(a, b, t)
  2002. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  2003. local startInterp, finishInterp;
  2004. if cosTheta >= 0.0001 then
  2005. if (1 - cosTheta) > 0.0001 then
  2006. local theta = ACOS(cosTheta)
  2007. local invSinTheta = 1 / SIN(theta)
  2008. startInterp = SIN((1 - t) * theta) * invSinTheta
  2009. finishInterp = SIN(t * theta) * invSinTheta
  2010. else
  2011. startInterp = 1 - t
  2012. finishInterp = t
  2013. end
  2014. else
  2015. if (1 + cosTheta) > 0.0001 then
  2016. local theta = ACOS(-cosTheta)
  2017. local invSinTheta = 1 / SIN(theta)
  2018. startInterp = SIN((t - 1) * theta) * invSinTheta
  2019. finishInterp = SIN(t * theta) * invSinTheta
  2020. else
  2021. startInterp = t - 1
  2022. finishInterp = t
  2023. end
  2024. end
  2025. return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
  2026. end
  2027.  
  2028. function Clerp(a, b, t)
  2029. local qa = {QuaternionFromCFrame(a)}
  2030. local qb = {QuaternionFromCFrame(b)}
  2031. local ax, ay, az = a.x, a.y, a.z
  2032. local bx, by, bz = b.x, b.y, b.z
  2033. local _t = 1 - t
  2034. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  2035. end
  2036.  
  2037. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  2038. local frame = IT("Frame")
  2039. frame.BackgroundTransparency = TRANSPARENCY
  2040. frame.BorderSizePixel = BORDERSIZEPIXEL
  2041. frame.Position = POSITION
  2042. frame.Size = SIZE
  2043. frame.BackgroundColor3 = COLOR
  2044. frame.BorderColor3 = BORDERCOLOR
  2045. frame.Name = NAME
  2046. frame.Parent = PARENT
  2047. return frame
  2048. end
  2049.  
  2050. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  2051. local label = IT("TextLabel")
  2052. label.BackgroundTransparency = 1
  2053. label.Size = UD2(1, 0, 1, 0)
  2054. label.Position = UD2(0, 0, 0, 0)
  2055. label.TextColor3 = TEXTCOLOR
  2056. label.TextStrokeTransparency = STROKETRANSPARENCY
  2057. label.TextTransparency = TRANSPARENCY
  2058. label.FontSize = TEXTFONTSIZE
  2059. label.Font = TEXTFONT
  2060. label.BorderSizePixel = BORDERSIZEPIXEL
  2061. label.TextScaled = false
  2062. label.Text = TEXT
  2063. label.Name = NAME
  2064. label.Parent = PARENT
  2065. return label
  2066. end
  2067.  
  2068. function NoOutlines(PART)
  2069. PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  2070. end
  2071.  
  2072. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  2073. local NEWWELD = IT(TYPE)
  2074. NEWWELD.Part0 = PART0
  2075. NEWWELD.Part1 = PART1
  2076. NEWWELD.C0 = C0
  2077. NEWWELD.C1 = C1
  2078. NEWWELD.Parent = PARENT
  2079. return NEWWELD
  2080. end
  2081.  
  2082. local S = IT("Sound")
  2083. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  2084. local NEWSOUND = nil
  2085. coroutine.resume(coroutine.create(function()
  2086. NEWSOUND = S:Clone()
  2087. NEWSOUND.Parent = PARENT
  2088. NEWSOUND.Volume = VOLUME
  2089. NEWSOUND.Pitch = PITCH
  2090. NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  2091. NEWSOUND:play()
  2092. if DOESLOOP == true then
  2093. NEWSOUND.Looped = true
  2094. else
  2095. repeat wait(1) until NEWSOUND.Playing == false or NEWSOUND.Parent ~= PARENT
  2096. NEWSOUND:remove()
  2097. end
  2098. end))
  2099. return NEWSOUND
  2100. end
  2101.  
  2102. function CFrameFromTopBack(at, top, back)
  2103. local right = top:Cross(back)
  2104. return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
  2105. end
  2106.  
  2107. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  2108. function WACKYEFFECT(Table)
  2109. local TYPE = (Table.EffectType or "Sphere")
  2110. local SIZE = (Table.Size or VT(1,1,1))
  2111. local ENDSIZE = (Table.Size2 or VT(0,0,0))
  2112. local TRANSPARENCY = (Table.Transparency or 0)
  2113. local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  2114. local CFRAME = (Table.CFrame or Torso.CFrame)
  2115. local MOVEDIRECTION = (Table.MoveToPos or nil)
  2116. local ROTATION1 = (Table.RotationX or 0)
  2117. local ROTATION2 = (Table.RotationY or 0)
  2118. local ROTATION3 = (Table.RotationZ or 0)
  2119. local MATERIAL = (Table.Material or "Neon")
  2120. local COLOR = (Table.Color or C3(242, 243, 243))
  2121. local TIME = (Table.Time or 45)
  2122. local SOUNDID = (Table.SoundID or nil)
  2123. local SOUNDPITCH = (Table.SoundPitch or nil)
  2124. local SOUNDVOLUME = (Table.SoundVolume or nil)
  2125. coroutine.resume(coroutine.create(function()
  2126. local PLAYSSOUND = false
  2127. local SOUND = nil
  2128. local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Institutional White"), "Effect", VT(1,1,1), true)
  2129. if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  2130. PLAYSSOUND = true
  2131. SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  2132. end
  2133. EFFECT.Color = COLOR
  2134. local MSH = nil
  2135. if TYPE == "Sphere" then
  2136. MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  2137. elseif TYPE == "Block" then
  2138. MSH = IT("BlockMesh",EFFECT)
  2139. MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
  2140. elseif TYPE == "Wave" then
  2141. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  2142. elseif TYPE == "Ring" then
  2143. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  2144. elseif TYPE == "Slash" then
  2145. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  2146. elseif TYPE == "Round Slash" then
  2147. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  2148. elseif TYPE == "Swirl" then
  2149. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  2150. elseif TYPE == "Skull" then
  2151. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  2152. elseif TYPE == "Crystal" then
  2153. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  2154. end
  2155. if MSH ~= nil then
  2156. local MOVESPEED = nil
  2157. if MOVEDIRECTION ~= nil then
  2158. MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  2159. end
  2160. local GROWTH = SIZE - ENDSIZE
  2161. local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  2162. if TYPE == "Block" then
  2163. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  2164. else
  2165. EFFECT.CFrame = CFRAME
  2166. end
  2167. for LOOP = 1, TIME+1 do
  2168. Swait()
  2169. MSH.Scale = MSH.Scale - GROWTH/TIME
  2170. if TYPE == "Wave" then
  2171. MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  2172. end
  2173. EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  2174. if TYPE == "Block" then
  2175. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  2176. else
  2177. EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  2178. end
  2179. if MOVEDIRECTION ~= nil then
  2180. local ORI = EFFECT.Orientation
  2181. EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  2182. EFFECT.Orientation = ORI
  2183. end
  2184. end
  2185. if PLAYSSOUND == false then
  2186. EFFECT:remove()
  2187. else
  2188. SOUND.Stopped:Connect(function()
  2189. EFFECT:remove()
  2190. end)
  2191. end
  2192. else
  2193. if PLAYSSOUND == false then
  2194. EFFECT:remove()
  2195. else
  2196. repeat Swait() until SOUND.Playing == false
  2197. EFFECT:remove()
  2198. end
  2199. end
  2200. end))
  2201. end
  2202.  
  2203. function MakeForm(PART,TYPE)
  2204. if TYPE == "Cyl" then
  2205. local MSH = IT("CylinderMesh",PART)
  2206. elseif TYPE == "Ball" then
  2207. local MSH = IT("SpecialMesh",PART)
  2208. MSH.MeshType = "Sphere"
  2209. elseif TYPE == "Wedge" then
  2210. local MSH = IT("SpecialMesh",PART)
  2211. MSH.MeshType = "Wedge"
  2212. end
  2213. end
  2214.  
  2215. function SpawnTrail(FROM,TO,BIG)
  2216. local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Institutional White", "Trail", VT(0,0,0))
  2217. MakeForm(TRAIL,"Cyl")
  2218. local DIST = (FROM - TO).Magnitude
  2219. if BIG == true then
  2220. TRAIL.Size = VT(0.5,DIST,0.5)
  2221. else
  2222. TRAIL.Size = VT(0.25,DIST,0.25)
  2223. end
  2224. TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
  2225. coroutine.resume(coroutine.create(function()
  2226. for i = 1, 5 do
  2227. Swait()
  2228. TRAIL.Transparency = TRAIL.Transparency + 0.1
  2229. end
  2230. TRAIL:remove()
  2231. end))
  2232. end
  2233.  
  2234. Debris = game:GetService("Debris")
  2235.  
  2236. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  2237. local DIRECTION = CF(StartPos,EndPos).lookVector
  2238. return Raycast(StartPos, DIRECTION, Distance, Ignore)
  2239. end
  2240.  
  2241. function turnto(position)
  2242. RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  2243. end
  2244.  
  2245. --//=================================\\
  2246. --|| WEAPON CREATION
  2247. --\\=================================//
  2248.  
  2249.  
  2250. local FIST = CreatePart(3, Weapon, "Neon", 0, 0, "Institutional White", "Neon Gauntlet Part", VT(1.01*Player_Size,1.4*Player_Size,1.01*Player_Size),false)
  2251. local weld = CreateWeldOrSnapOrMotor("Weld", FIST, RightArm, FIST, CF(0 * Player_Size, -0.25 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2252. local part = CreatePart(3, Weapon, "Granite", 0, 0, "Institutional White", "Gauntlet Part", VT(1.2*Player_Size,0.3*Player_Size,1.2*Player_Size),false)
  2253. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.6 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2254.  
  2255. local part = CreatePart(3, Weapon, "Granite", 0, 0, "Institutional White", "Gauntlet Part", VT(1.05*Player_Size,0.05*Player_Size,1.05*Player_Size),false)
  2256. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2257. local part = CreatePart(3, Weapon, "Granite", 0, 0, "Institutional White", "Gauntlet Part", VT(1.05*Player_Size,0.05*Player_Size,1.05*Player_Size),false)
  2258. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.2 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2259. local part = CreatePart(3, Weapon, "Granite", 0, 0, "Institutional White", "Gauntlet Part", VT(1.05*Player_Size,0.05*Player_Size,1.05*Player_Size),false)
  2260. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.3 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2261. local part = CreatePart(3, Weapon, "Granite", 0, 0, "Institutional White", "Gauntlet Part", VT(1.05*Player_Size,0.05*Player_Size,1.05*Player_Size),false)
  2262. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2263.  
  2264. local part = CreatePart(3, Weapon, "Granite", 0, 0, "Institutional White", "Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,1.1*Player_Size),false)
  2265. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0 * Player_Size, -0.35 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2266. local part = CreatePart(3, Weapon, "Neon", 0, 0, "Institutional White", "Neon Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,1*Player_Size),false)
  2267. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0.05 * Player_Size, -0.375 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2268. local part = CreatePart(3, Weapon, "Granite", 0, 0, "Institutional White", "Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,0.3*Player_Size),false)
  2269. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0.1 * Player_Size, -0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2270. local part = CreatePart(3, Weapon, "Granite", 0, 0, "Institutional White", "Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,0.3*Player_Size),false)
  2271. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0.1 * Player_Size, -0.4 * Player_Size, 0.33 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2272. local part = CreatePart(3, Weapon, "Granite", 0, 0, "Institutional White", "Gauntlet Part", VT(1.1*Player_Size,0.8*Player_Size,0.3*Player_Size),false)
  2273. local weld = CreateWeldOrSnapOrMotor("Weld", part, FIST, part, CF(0.1 * Player_Size, -0.4 * Player_Size, -0.33 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2274.  
  2275. ParticleEmitter({Speed = 0.2, Drag = 0, Size1 = 0.1, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.5, Parent = Hole, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
  2276. --ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 0.2, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.7, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
  2277.  
  2278. for _, c in pairs(Weapon:GetDescendants()) do
  2279. if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
  2280. c.Material = "Glass"
  2281. c.Color = C3(242, 243, 243
  2282. )
  2283. elseif c.ClassName == "Part" and c.Name == "Eye" then
  2284. c.Color = C3(242, 243, 243)
  2285. c.Material = "Neon"
  2286. end
  2287. end
  2288.  
  2289. Weapon.Parent = Character
  2290. for _, c in pairs(Weapon:GetChildren()) do
  2291. if c.ClassName == "Part" then
  2292. c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  2293. end
  2294. end
  2295.  
  2296. New = function(Object, Parent, Name, Data)
  2297. local Object = Instance.new(Object)
  2298. for Index, Value in pairs(Data or {}) do
  2299. Object[Index] = Value
  2300. end
  2301. Object.Parent = Parent
  2302. Object.Name = Name
  2303. return Object
  2304. end
  2305.  
  2306.  
  2307. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.330000252, 0.660000384, 0.0500000007),CFrame = CFrame.new(-67.6787415, 1.33912802, 93.9772263, 0, 0, -1, 0, 1, 0, 1, 0, 0),})
  2308. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = LeftLeg,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.0127105713, 0.339127064, 0.487541199, 0, 0, 1, 0, 1, 0, -1, 0, 0),})
  2309. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.330000252, 0.660000384, 0.0500000007),CFrame = CFrame.new(-66.6787415, 1.33912802, 93.9772263, 0, 0, -1, 0, 1, 0, 1, 0, 0),})
  2310. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = LeftLeg,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.0127105713, 0.339127064, -0.512458801, 0, 0, 1, 0, 1, 0, -1, 0, 0),})
  2311.  
  2312. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.740000069, 0.140000015, 0.0500000007),CFrame = CFrame.new(-67.6787415, 3.12643075, 92.6921463, -9.31322575e-10, -1.86264515e-09, -0.999999285, 0.777135551, 0.629333496, 9.31322575e-10, 0.6293329, -0.777134895, 0),})
  2313. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0.777135491, 0.629333377, 0, 0.629333377, -0.777135491, -1, 0, 0),C1 = CFrame.new(-0.766067505, 0.138611317, 0.515716553, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
  2314. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(1.12999988, 1.12000012, 0.0500000007),CFrame = CFrame.new(-67.6951752, 3.43133378, 93.991272, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
  2315. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.533157349, 0.443484068, 0.50994873, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
  2316. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.450000018, 0.590000272, 0.0500000007),CFrame = CFrame.new(-67.6951752, 2.60608268, 94.3512573, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
  2317. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.893096924, -0.381786108, 0.509513855, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
  2318. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.330000013, 0.590000272, 0.0500000007),CFrame = CFrame.new(-66.6951752, 2.60608268, 94.2912598, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
  2319. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.817497253, -0.388065577, -0.489402771, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
  2320. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.220000237, 0.660000384, 0.0500000007),CFrame = CFrame.new(-66.6787338, 2.57395577, 93.9222183, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
  2321. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.448242188, -0.420258999, -0.49987793, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
  2322. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(1.07999992, 1.12000012, 0.0500000007),CFrame = CFrame.new(-66.6951752, 3.43133354, 93.9662704, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
  2323. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(0.492546082, 0.437201023, -0.489517212, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
  2324. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.740000069, 0.340000302, 0.0500000007),CFrame = CFrame.new(-66.6787415, 3.2281816, 93.1287689, 0, -9.31322575e-10, -0.999999285, 0, 1, 9.31322575e-10, 0.999999225, 0, 0),})
  2325. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0),C1 = CFrame.new(-0.345108032, 0.234031916, -0.491600037, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
  2326. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(1.0999999, 0.0500000007, 1.00999975),CFrame = CFrame.new(-67.1759109, 3.99574399, 93.9762726, 0, -0.0260759834, -0.999659359, 0, 0.999660075, -0.0260760002, 0.999999225, -2.91038305e-11, -9.31322575e-10),})
  2327. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = Torso,C0 = CFrame.new(0, 0, 0, 0, 0, 1, -0.0260760002, 0.999660015, 0, -0.999660015, -0.0260760002, 0),C1 = CFrame.new(0.510047913, 1.00462079, -0.0125579834, -0.0156119959, -4.38656264e-11, 0.999877751, -0.0062854127, 0.999980271, -9.81397825e-05, -0.999858022, -0.00628618058, -0.0156116877),})
  2328.  
  2329. Corruption = New("Part",Character,"Corruption",{BrickColor = BrickColor.new("Institutional White"),Material = Enum.Material.Neon,FormFactor = Enum.FormFactor.Symmetric,Size = Vector3.new(0.740000069, 0.419999987, 0.870000064),CFrame = CFrame.new(-67.0815201, 2.81366396, 91.9528885, 0, 0, -1, 0.777135491, 0.629333377, 0, 0.629333377, -0.777135491, 0),})
  2330. mot = New("Motor",Corruption,"mot",{Part0 = Corruption,Part1 = LeftArm,C0 = CFrame.new(0, 0, 0, 0, 0.777135491, 0.629333377, 0, 0.629333377, -0.777135491, -1, 0, 0),C1 = CFrame.new(-0.00936126709, -0.184385061, -0.0693511963, 0, 0, 1, 0, 1, 0, -1, 0, 0),})
  2331.  
  2332. local Trail = IT("Trail",Leftbarrel)
  2333. Trail.Attachment0 = A
  2334. Trail.Attachment1 = B
  2335. Trail.Lifetime = 0.2
  2336. Trail.Color = ColorSequence.new(BRICKC"Institutional White".Color)
  2337. Trail.Transparency = NumberSequence.new(0, 1)
  2338. Trail.Enabled = true
  2339.  
  2340. local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.2, Lifetime2 = 1, Parent = RightLeg, Emit = 100, Offset = 360, Enabled = true})
  2341. PRT.LockedToPart = true
  2342. local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.2, Lifetime2 = 1, Parent = LeftLeg, Emit = 100, Offset = 360, Enabled = true})
  2343. PRT.LockedToPart = true
  2344. local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.3, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = true})
  2345. PRT.LockedToPart = true
  2346. local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.2, Lifetime2 = 1, Parent = RightArm, Emit = 100, Offset = 360, Enabled = true})
  2347. PRT.LockedToPart = true
  2348. local PRT = ParticleEmitter({Speed = 3, Drag = 3, Size1 = 1, Size2 = 3, Lifetime1 = 0.2, Lifetime2 = 1, Parent = LeftArm, Emit = 100, Offset = 360, Enabled = true})
  2349. PRT.LockedToPart = true
  2350.  
  2351. local HAT = CreatePart(3, Character, "Neon", 0, 0, "Institutional White", "Tophat", VT(1,1,1),false)
  2352. local Hatweld = CreateWeldOrSnapOrMotor("Weld", Head, Head, HAT, CF(0,1,0), CF(0, 0, 0))
  2353. CreateMesh("SpecialMesh", HAT, "FileMesh", "97094619", "", VT(1,1,1), VT(0,0,0))
  2354. for i = 1, 16 do
  2355. local FACE = CreatePart(3, Character, "Neon", 0, 0+(i-1)/16.2, "Institutional White", "FaceGradient", VT(1.01,0.65,1.01),false)
  2356. FACE.Color = C3(0,0,0)
  2357. Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
  2358. CreateWeldOrSnapOrMotor("Weld", Head, Head, FACE, CF(0,0.45-(i-1)/25,0), CF(0, 0, 0))
  2359. end
  2360. local EYE = CreatePart(3, Character, "Neon", 0, 0, "Institutional White", "Eyeball", VT(0.15,0.15,0.15),false)
  2361. MakeForm(EYE,"Ball")
  2362. CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE, CF(0.15,0.26,-0.55), CF(0, 0, 0))
  2363. local EYE2 = CreatePart(3, Character, "Neon", 0, 0, "Institutional White", "Eyeball", VT(0.15,0.15,0.15),false)
  2364. MakeForm(EYE2,"Ball")
  2365. CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE2, CF(-0.15,0.26,-0.55), CF(0, 0, 0))
  2366.  
  2367. local Particle = IT("ParticleEmitter",nil)
  2368. Particle.Enabled = false
  2369. Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
  2370. Particle.LightEmission = 5
  2371. Particle.Rate = 300
  2372. Particle.ZOffset = 0.2
  2373. Particle.Rotation = NumberRange.new(-180, 180)
  2374. Particle.RotSpeed = NumberRange.new(-180, 180)
  2375. Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
  2376. Particle.Color = ColorSequence.new(C3(1,0,0),C3(0.4,0,0),C3(1,0,0),C3(0,4,0),C3(1,0,0),C3(1,0,0),C3(1,0,0),C3(1,0,0))
  2377.  
  2378. --ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
  2379. function ParticleEmitter(Table)
  2380. local PRTCL = Particle:Clone()
  2381. local Speed = Table.Speed or 5
  2382. local Drag = Table.Drag or 0
  2383. local Size1 = Table.Size1 or 1
  2384. local Size2 = Table.Size2 or 5
  2385. local Lifetime1 = Table.Lifetime1 or 1
  2386. local Lifetime2 = Table.Lifetime2 or 1.5
  2387. local Parent = Table.Parent or Torso
  2388. local Emit = Table.Emit or 100
  2389. local Offset = Table.Offset or 360
  2390. local Acel = Table.Acel or VT(0,0,0)
  2391. local Enabled = Table.Enabled or false
  2392. PRTCL.Parent = Parent
  2393. PRTCL.Size = NumberSequence.new(Size1,Size2)
  2394. PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
  2395. PRTCL.Speed = NumberRange.new(Speed)
  2396. PRTCL.VelocitySpread = Offset
  2397. PRTCL.Drag = Drag
  2398. PRTCL.Acceleration = Acel
  2399. if Enabled == false then
  2400. PRTCL:Emit(Emit)
  2401. Debris:AddItem(PRTCL,Lifetime2)
  2402. else
  2403. PRTCL.Enabled = true
  2404. end
  2405. return PRTCL
  2406. end
  2407.  
  2408. local Handle = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.2,0.6,0.2),false)
  2409. local RightArmGrasp = CreateWeldOrSnapOrMotor("Weld", Handle, RightArm, Handle, CF(0,-1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0.21, 0))
  2410. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.2,0.5,0.2),false)
  2411. MakeForm(Part,"Wedge")
  2412. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.3, 0.2) * ANGLES(RAD(0), RAD(180), RAD(0)), CF(0, 0, 0))
  2413. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.2,0.3,0.2),false)
  2414. MakeForm(Part,"Wedge")
  2415. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(180)), CF(0, 0, 0))
  2416. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.3,0.3,0.3),false)
  2417. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.5, 0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2418. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.3,0.5,0.5),false)
  2419. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2420. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.4,0.4,0.4),false)
  2421. MakeForm(Part,"Cyl")
  2422. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  2423. for i = 1, 8 do
  2424. local Piece = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Eye", VT(0,0.35,0.41),false)
  2425. CreateWeldOrSnapOrMotor("Weld", Handle, Part, Piece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/8)*i), RAD(0)), CF(0, 0, 0))
  2426. end
  2427. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Eye", VT(0.38,0.41,0.38),false)
  2428. MakeForm(Part,"Cyl")
  2429. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  2430. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.37,0.5,0.37),false)
  2431. MakeForm(Part,"Ball")
  2432. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.3) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  2433. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.2,0.7,0.4),false)
  2434. MakeForm(Part,"Wedge")
  2435. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.7, 0.5) * ANGLES(RAD(90), RAD(180), RAD(180)), CF(0, 0, 0))
  2436. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.3,0.4,0.2),false)
  2437. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  2438. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.35,0.35,0.35),false)
  2439. MakeForm(Part,"Cyl")
  2440. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  2441. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.5,0.1,0.5),false)
  2442. MakeForm(Part,"Cyl")
  2443. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  2444. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.5,0.1,0.45),false)
  2445. MakeForm(Part,"Cyl")
  2446. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1.1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  2447. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.2,0.5,0.2),false)
  2448. MakeForm(Part,"Wedge")
  2449. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.55, 0.2) * ANGLES(RAD(-135), RAD(0), RAD(0)), CF(0, -0.3, 0))
  2450. local LASTPART = Handle
  2451. for i = 1, 10 do
  2452. if LASTPART == Handle then
  2453. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.1,0.2,0),false)
  2454. LASTPART = Part
  2455. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.1, 0.2) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  2456. else
  2457. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.1,0.05,0),false)
  2458. CreateWeldOrSnapOrMotor("Weld", Handle, LASTPART, Part, CF(0, 0.025, 0) * ANGLES(RAD(8), RAD(0), RAD(0)), CF(0, -0.025, 0))
  2459. LASTPART = Part
  2460. end
  2461. end
  2462.  
  2463. local Barrel = CreatePart(3, Weapon, "Metal", 0, 0, "Institutional White", "Part", VT(0.15,2,0.15),false)
  2464. MakeForm(Barrel,"Cyl")
  2465. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Barrel, CF(0, -0.6, 1.8) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  2466. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Bright Yellow", "Part", VT(0.25,1,0.25),false)
  2467. MakeForm(Part,"Cyl")
  2468. CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, -0.6, 0), CF(0, 0, 0))
  2469. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Bright Yellow", "Part", VT(0,0.1,0.2),false)
  2470. MakeForm(Part,"Wedge")
  2471. CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, 0.945, 0.1) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0))
  2472. local Hole = CreatePart(3, Weapon, "Metal", 0, 0, "Bright Yellow", "Eye", VT(0.125,0,0.125),false)
  2473. MakeForm(Hole,"Cyl")
  2474. CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Hole, CF(0, 0.98, 0), CF(0, 0, 0))
  2475. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Bright Yellow", "Part", VT(0,0,0),false)
  2476. local GEARWELD = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
  2477. CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.8,0.8,1.5), VT(0,0,0.2))
  2478. local Part = CreatePart(3, Weapon, "Metal", 0, 0.5, "Bright Yellow", "Eye", VT(0,0,0),false)
  2479. local GEARWELD2 = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
  2480. CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.9,0.9,0.3), VT(0,0,0.2))
  2481. coroutine.resume(coroutine.create(function()
  2482. while wait() do
  2483. GEARWELD.C0 = GEARWELD.C0 * ANGLES(RAD(0), RAD(0), RAD(5))
  2484. GEARWELD2.C0 = GEARWELD2.C0 * ANGLES(RAD(0), RAD(0), RAD(-5))
  2485. end
  2486. end))
  2487.  
  2488. ParticleEmitter({Speed = 0.2, Drag = 0, Size1 = 0.7, Size2 = 0, Lifetime1 = 0.7, Lifetime2 = 0.7, Parent = Hole, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
  2489. --ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 10, Size2 = 0, Lifetime1 = 0.8, Lifetime2 = 0.9, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
  2490.  
  2491. for _, c in pairs(Weapon:GetDescendants()) do
  2492. if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
  2493. c.Material = "Glass"
  2494. c.Color = C3(242, 243, 243)
  2495. elseif c.ClassName == "Part" and c.Name == "Eye" then
  2496. c.Color = C3(242, 243, 243)
  2497. c.Material = "Neon"
  2498. end
  2499. end
  2500.  
  2501. Weapon.Parent = Character
  2502. for _, c in pairs(Weapon:GetChildren()) do
  2503. if c.ClassName == "Part" then
  2504. c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  2505. end
  2506. end
  2507.  
  2508. local SKILLTEXTCOLOR = C3(1,0,0)
  2509. local SKILLFONT = "Antique"
  2510. local SKILLTEXTSIZE = 7
  2511.  
  2512. Humanoid.Died:connect(function()
  2513. ATTACK = true
  2514. end)
  2515.  
  2516. local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.1, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
  2517. --[[local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.63, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
  2518. local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.215, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
  2519. local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.525, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
  2520. local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
  2521. ]]
  2522. local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Banisher Bullet", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 1")
  2523. --[[local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Ability 2", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 2")
  2524. local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 3")
  2525. local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 4")
  2526. local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Mercy", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 5")
  2527. ]]
  2528. function printbye(Name)
  2529. local MESSAGES = {"You cannot struggle, ","Your existance is an insult, ","Fade, ","Your existance is not desired, ","You are not permitted here, ","You are not to decide your fate, ","Be gone, ","You are already dead, ","Your live is an anomaly, ","Don't dare to return, ","Why are you resisting, ","You cannot exist here, ","Why are you struggling, ","Your fate was already decided, ","Goodbye, ","You cannot ignore my command, ","You cannot resist my command, ","You already died, "}
  2530. warn(MESSAGES[MRANDOM(1,#MESSAGES)]..Name..".")
  2531. end
  2532.  
  2533. workspace.ChildAdded:connect(function(instance)
  2534. for BANISH = 1, #TOBANISH do
  2535. if TOBANISH[BANISH] ~= nil then
  2536. if instance.Name == TOBANISH[BANISH] then
  2537. coroutine.resume(coroutine.create(function()
  2538. printbye(instance.Name)
  2539. instance:ClearAllChildren()
  2540. Debris:AddItem(instance,0.0005)
  2541. end))
  2542. end
  2543. end
  2544. end
  2545. end)
  2546.  
  2547. function refit()
  2548. Character.Parent = workspace
  2549. for e = 1, #BODY do
  2550. if BODY[e] ~= nil then
  2551. local STUFF = BODY[e]
  2552. local PART = STUFF[1]
  2553. local PARENT = STUFF[2]
  2554. local MATERIAL = STUFF[3]
  2555. local COLOR = STUFF[4]
  2556. local TRANSPARENCY = STUFF[5]
  2557. if PART.ClassName == "Part" and PART ~= RootPart then
  2558. PART.Material = MATERIAL
  2559. PART.Color = COLOR
  2560. PART.Transparency = TRANSPARENCY
  2561. end
  2562. if PART.Parent ~= PARENT then
  2563. Humanoid:remove()
  2564. PART.Parent = PARENT
  2565. Humanoid = IT("Humanoid",Character)
  2566. end
  2567. end
  2568. end
  2569. end
  2570. --//=================================\\
  2571. --|| DAMAGE FUNCTIONS
  2572. --\\=================================//
  2573. function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
  2574. local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Institutional White", "Effect", VT())
  2575. STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
  2576. local BODYGYRO = IT("BodyGyro", STATPART)
  2577. local BODYPOSITION = IT("BodyPosition", STATPART)
  2578. BODYPOSITION.P = 2000
  2579. BODYPOSITION.D = 100
  2580. BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
  2581. BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
  2582. game:GetService("Debris"):AddItem(STATPART ,5)
  2583. local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
  2584. BILLBOARDGUI.Adornee = STATPART
  2585. BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
  2586. BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
  2587. BILLBOARDGUI.AlwaysOnTop = false
  2588. local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
  2589. TEXTLABEL.BackgroundTransparency = 1
  2590. TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
  2591. TEXTLABEL.Text = TEXT
  2592. TEXTLABEL.Font = "SciFi"
  2593. TEXTLABEL.FontSize="Size42"
  2594. TEXTLABEL.TextColor3 = ("255,215,0")
  2595. TEXTLABEL.TextStrokeTransparency = 1
  2596. TEXTLABEL.TextScaled = true
  2597. TEXTLABEL.TextWrapped = true
  2598. coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
  2599. if LABELTYPE == "Normal" then
  2600. for i = 1, 30 do
  2601. Swait()
  2602. STATPART.Position = STATPART.Position + VT(0, (15-i)/10 ,0)
  2603. TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30)
  2604. end
  2605. elseif LABELTYPE == "Debuff" then
  2606. for i = 1, 30 do
  2607. Swait()
  2608. STATPART.Position = STATPART.Position - VT(0, i/10 ,0)
  2609. TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30)
  2610. end
  2611. elseif LABELTYPE == "Shock" then
  2612. local ORIGIN = STATPART.Position
  2613. for i = 1, 30 do
  2614. Swait()
  2615. STATPART.Position = ORIGIN + VT(MRANDOM(-2,2),MRANDOM(-2,2),MRANDOM(-2,2))
  2616. TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30)
  2617. end
  2618. end
  2619. THEPART.Parent = nil
  2620. end),STATPART, BODYPOSITION, TEXTLABEL)
  2621. end
  2622.  
  2623. function StatLabel(CFRAME, TEXT, COLOR)
  2624. local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Institutional White", "Effect", VT())
  2625. STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
  2626. local BODYGYRO = IT("BodyGyro", STATPART)
  2627. game:GetService("Debris"):AddItem(STATPART ,5)
  2628. local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
  2629. BILLBOARDGUI.Adornee = STATPART
  2630. BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
  2631. BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
  2632. BILLBOARDGUI.AlwaysOnTop = false
  2633. local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
  2634. TEXTLABEL.BackgroundTransparency = 1
  2635. TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
  2636. TEXTLABEL.Text = TEXT
  2637. TEXTLABEL.Font = SKILLFONT
  2638. TEXTLABEL.FontSize="Size42"
  2639. TEXTLABEL.TextColor3 = COLOR
  2640. TEXTLABEL.TextStrokeTransparency = 0
  2641. TEXTLABEL.TextScaled = true
  2642. TEXTLABEL.TextWrapped = true
  2643. coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
  2644. for i = 1, 50 do
  2645. Swait()
  2646. STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
  2647. TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
  2648. TEXTLABEL.TextStrokeTransparency = TEXTLABEL.TextTransparency
  2649. end
  2650. THEPART.Parent = nil
  2651. end),STATPART, TEXTLABEL)
  2652. end
  2653.  
  2654. function StatLabel(CFRAME, TEXT, COLOR)
  2655. local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Institutional White", "Effect", VT())
  2656. STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
  2657. local BODYGYRO = IT("BodyGyro", STATPART)
  2658. game:GetService("Debris"):AddItem(STATPART ,5)
  2659. local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
  2660. BILLBOARDGUI.Adornee = STATPART
  2661. BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
  2662. BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
  2663. BILLBOARDGUI.AlwaysOnTop = false
  2664. local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
  2665. TEXTLABEL.BackgroundTransparency = 1
  2666. TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
  2667. TEXTLABEL.Text = TEXT
  2668. TEXTLABEL.Font = SKILLFONT
  2669. TEXTLABEL.FontSize="Size42"
  2670. TEXTLABEL.TextColor3 = COLOR
  2671. TEXTLABEL.TextStrokeTransparency = 0
  2672. TEXTLABEL.TextScaled = true
  2673. TEXTLABEL.TextWrapped = true
  2674. coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
  2675. for i = 1, 50 do
  2676. Swait()
  2677. STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
  2678. TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
  2679. TEXTLABEL.TextStrokeTransparency = TEXTLABEL.TextTransparency
  2680. end
  2681. THEPART.Parent = nil
  2682. end),STATPART, TEXTLABEL)
  2683. end
  2684.  
  2685. function StatLabel(CFRAME, TEXT, COLOR)
  2686. local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Institutional White", "Effect", VT())
  2687. STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
  2688. local BODYGYRO = IT("BodyGyro", STATPART)
  2689. game:GetService("Debris"):AddItem(STATPART ,5)
  2690. local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
  2691. BILLBOARDGUI.Adornee = STATPART
  2692. BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
  2693. BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
  2694. BILLBOARDGUI.AlwaysOnTop = false
  2695. local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
  2696. TEXTLABEL.BackgroundTransparency = 1
  2697. TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
  2698. TEXTLABEL.Text = TEXT
  2699. TEXTLABEL.Font = SKILLFONT
  2700. TEXTLABEL.FontSize="Size42"
  2701. TEXTLABEL.TextColor3 = COLOR
  2702. TEXTLABEL.TextStrokeTransparency = 1
  2703. TEXTLABEL.TextScaled = true
  2704. TEXTLABEL.TextWrapped = true
  2705. coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
  2706. for i = 1, 50 do
  2707. Swait()
  2708. STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
  2709. TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
  2710. end
  2711. THEPART.Parent = nil
  2712. end),STATPART, TEXTLABEL)
  2713. end
  2714. --//=================================\\
  2715. --|| DAMAGING
  2716. --\\=================================//
  2717. function killnearest(position,range,maxstrength,direction)
  2718. for i,v in ipairs(workspace:GetChildren()) do
  2719. local body = v:GetChildren()
  2720. for part = 1, #body do
  2721. if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
  2722. if(body[part].Position - position).Magnitude < range then
  2723. if v.ClassName == "Model" then
  2724. --v:BreakJoints()
  2725. end
  2726. local POS = position
  2727. coroutine.resume(coroutine.create(function()
  2728. body[part].Anchored = true
  2729. body[part].Parent = Effects
  2730. body[part].CanCollide = true
  2731. local SIZE = body[part].Size
  2732. body[part].Material = "Neon"
  2733. CreateSound("952306739", body[part], 2, MRANDOM(7, 12) / 10)
  2734. for i = 1, 75 do
  2735. Swait()
  2736. body[part].Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
  2737. body[part].Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
  2738. end
  2739. coroutine.resume(coroutine.create(function()
  2740. while true do
  2741. Swait()
  2742. body[part].Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
  2743. body[part].Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
  2744. end
  2745. end))
  2746. body[part].Anchored = false
  2747. body[part].Velocity = direction.lookVector*maxstrength
  2748. end))
  2749. end
  2750. end
  2751. end
  2752. if v.ClassName == "Part" then
  2753. if v.Anchored == false and (v.Position - position).Magnitude < range then
  2754. local POS = position
  2755. coroutine.resume(coroutine.create(function()
  2756. v.Anchored = true
  2757. v.Parent = Effects
  2758. local SIZE = v.Size
  2759. v.Material = "Neon"
  2760. CreateSound("952306739", v, 2, MRANDOM(7, 12) / 10)
  2761. for i = 1, 75 do
  2762. Swait()
  2763. v.Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
  2764. v.Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
  2765. end
  2766. coroutine.resume(coroutine.create(function()
  2767. while true do
  2768. Swait()
  2769. v.Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
  2770. v.Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
  2771. end
  2772. end))
  2773. v.Anchored = false
  2774. v.Velocity = direction.lookVector*maxstrength
  2775. end))
  2776. end
  2777. end
  2778. end
  2779. end
  2780.  
  2781. function Kill(Char)
  2782. local NewCharacter = IT("Model",Effects)
  2783. NewCharacter.Name = "Ow im ded ;-;"
  2784. for _, c in pairs(Char:GetDescendants()) do
  2785. if c:IsA("BasePart") and c.Transparency == 0 then
  2786. if c.Parent == Char then
  2787. getbloody(c,5)
  2788. end
  2789. c:BreakJoints()
  2790. c.Material = "Glass"
  2791. c.Color = C3(0.5,0,0)
  2792. c.CanCollide = true
  2793. c.Transparency = 0.3
  2794. if c:FindFirstChildOfClass("SpecialMesh") then
  2795. c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
  2796. end
  2797. if c.Name == "Head" then
  2798. c:ClearAllChildren()
  2799. c.Size = VT(c.Size.Y,c.Size.Y,c.Size.Y)
  2800. end
  2801. if c.ClassName == "MeshPart" then
  2802. c.TextureID = ""
  2803. end
  2804. if c:FindFirstChildOfClass("BodyPosition") then
  2805. c:FindFirstChildOfClass("BodyPosition"):remove()
  2806. end
  2807. if c:FindFirstChildOfClass("ParticleEmitter") then
  2808. c:FindFirstChildOfClass("ParticleEmitter"):remove()
  2809. end
  2810. c.Parent = NewCharacter
  2811. c.Name = "DeadPart"
  2812. c.Velocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))/15
  2813. c.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-15,85),MRANDOM(-45,45))
  2814. end
  2815. end
  2816. Char:remove()
  2817. Debris:AddItem(NewCharacter,5)
  2818. end
  2819.  
  2820. function ApplyAoE(POSITION,RANGE,BRUTAL)
  2821. local CHILDREN = workspace:GetDescendants()
  2822. for index, CHILD in pairs(CHILDREN) do
  2823. if CHILD.ClassName == "Model" and CHILD ~= Character then
  2824. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  2825. if HUM then
  2826. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  2827. if TORSO then
  2828. if (TORSO.Position - POSITION).Magnitude <= RANGE then
  2829. if BRUTAL == true then
  2830. Kill(CHILD)
  2831. else
  2832. CHILD:BreakJoints()
  2833. end
  2834. end
  2835. end
  2836. end
  2837. end
  2838. end
  2839. end
  2840.  
  2841. function Kill(Char)
  2842. local NewCharacter = IT("Model",Effects)
  2843. NewCharacter.Name = "Ow im ded ;-;"
  2844. for _, c in pairs(Char:GetDescendants()) do
  2845. if c:IsA("BasePart") and c.Transparency == 0 then
  2846. if c.Parent == Char then
  2847. getbloody(c,5)
  2848. end
  2849. c:BreakJoints()
  2850. c.Material = "Glass"
  2851. c.Color = C3(0.5,0,0)
  2852. c.CanCollide = true
  2853. c.Transparency = 0.3
  2854. if c:FindFirstChildOfClass("SpecialMesh") then
  2855. c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
  2856. end
  2857. if c.Name == "Head" then
  2858. c:ClearAllChildren()
  2859. c.Size = VT(c.Size.Y,c.Size.Y,c.Size.Y)
  2860. end
  2861. if c.ClassName == "MeshPart" then
  2862. c.TextureID = ""
  2863. end
  2864. if c:FindFirstChildOfClass("BodyPosition") then
  2865. c:FindFirstChildOfClass("BodyPosition"):remove()
  2866. end
  2867. if c:FindFirstChildOfClass("ParticleEmitter") then
  2868. c:FindFirstChildOfClass("ParticleEmitter"):remove()
  2869. end
  2870. c.Parent = NewCharacter
  2871. c.Name = "DeadPart"
  2872. c.Velocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))/15
  2873. c.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-15,85),MRANDOM(-45,45))
  2874. end
  2875. end
  2876. Char:remove()
  2877. Debris:AddItem(NewCharacter,5)
  2878. end
  2879.  
  2880. function ApplyAoE(POSITION,RANGE,BRUTAL)
  2881. local CHILDREN = workspace:GetDescendants()
  2882. for index, CHILD in pairs(CHILDREN) do
  2883. if CHILD.ClassName == "Model" and CHILD ~= Character then
  2884. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  2885. if HUM then
  2886. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  2887. if TORSO then
  2888. if (TORSO.Position - POSITION).Magnitude <= RANGE then
  2889. if BRUTAL == true then
  2890. Kill(CHILD)
  2891. else
  2892. CHILD:BreakJoints()
  2893. end
  2894. end
  2895. end
  2896. end
  2897. end
  2898. end
  2899. end
  2900.  
  2901. function Kill(Char)
  2902. local NewCharacter = IT("Model",Effects)
  2903. NewCharacter.Name = "Ow im ded ;-;"
  2904. for _, c in pairs(Char:GetDescendants()) do
  2905. if c:IsA("BasePart") and c.Transparency == 0 then
  2906. if c.Parent == Char then
  2907. getbloody(c,5)
  2908. end
  2909. c:BreakJoints()
  2910. c.Material = "Glass"
  2911. c.Color = C3(0.5,0,0)
  2912. c.CanCollide = true
  2913. c.Transparency = 0.3
  2914. if c:FindFirstChildOfClass("SpecialMesh") then
  2915. c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
  2916. end
  2917. if c.Name == "Head" then
  2918. c:ClearAllChildren()
  2919. c.Size = VT(c.Size.Y,c.Size.Y,c.Size.Y)
  2920. end
  2921. if c.ClassName == "MeshPart" then
  2922. c.TextureID = ""
  2923. end
  2924. if c:FindFirstChildOfClass("BodyPosition") then
  2925. c:FindFirstChildOfClass("BodyPosition"):remove()
  2926. end
  2927. if c:FindFirstChildOfClass("ParticleEmitter") then
  2928. c:FindFirstChildOfClass("ParticleEmitter"):remove()
  2929. end
  2930. c.Parent = NewCharacter
  2931. c.Name = "DeadPart"
  2932. c.Velocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))/15
  2933. c.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-15,85),MRANDOM(-45,45))
  2934. end
  2935. end
  2936. Char:remove()
  2937. Debris:AddItem(NewCharacter,5)
  2938. end
  2939.  
  2940. function ApplyAoE(POSITION,RANGE,BRUTAL)
  2941. local CHILDREN = workspace:GetDescendants()
  2942. for index, CHILD in pairs(CHILDREN) do
  2943. if CHILD.ClassName == "Model" and CHILD ~= Character then
  2944. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  2945. if HUM then
  2946. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  2947. if TORSO then
  2948. if (TORSO.Position - POSITION).Magnitude <= RANGE then
  2949. if BRUTAL == true then
  2950. Kill(CHILD)
  2951. else
  2952. CHILD:BreakJoints()
  2953. end
  2954. end
  2955. end
  2956. end
  2957. end
  2958. end
  2959. end
  2960.  
  2961. function BulletDetection(FROM,TO,BRUTAL)
  2962. local AIMHIT,AIMPOS,NORMAL = CastProperRay(FROM,TO,2000,Character)
  2963. coroutine.resume(coroutine.create(function()
  2964. if AIMHIT ~= nil then
  2965. if AIMHIT.Parent ~= Character then
  2966. if AIMHIT.Parent:FindFirstChildOfClass("Humanoid") or AIMHIT.Parent.Parent:FindFirstChildOfClass("Humanoid") then
  2967. if AIMHIT.Parent:FindFirstChildOfClass("Humanoid") then
  2968. if BRUTAL == true then
  2969. Kill(AIMHIT.Parent)
  2970. else
  2971. getbloody(AIMHIT,15)
  2972. AIMHIT.Parent:BreakJoints()
  2973. if AIMHIT.Name == "Head" then
  2974. AIMHIT.Name = "HEADSHOT"
  2975. AIMHIT:remove()
  2976. end
  2977. end
  2978. else
  2979. if BRUTAL == true then
  2980. Kill(AIMHIT.Parent.Parent)
  2981. else
  2982. AIMHIT.Parent.Parent:BreakJoints()
  2983. end
  2984. end
  2985. end
  2986. end
  2987. end
  2988. end))
  2989. SpawnTrail(FROM,AIMPOS)
  2990. return AIMHIT,AIMPOS,NORMAL
  2991. end
  2992.  
  2993. function ApplyDamage(Humanoid,Damage,CritRate,CritMultiplier,DoesOneShot)
  2994. coroutine.resume(coroutine.create(function()
  2995. local defence = Instance.new("BoolValue",Humanoid.Parent)
  2996. defence.Name = ("HitBy"..Player.Name)
  2997. game:GetService("Debris"):AddItem(defence, 0.001)
  2998. Damage = Damage * DAMAGEMULTIPLIER
  2999. if Humanoid.Health ~= 0 then
  3000. local CritChance = MRANDOM(1,100)
  3001. if CritChance < CritRate + 1 then
  3002. Damage = Damage*CritMultiplier
  3003. end
  3004. if Damage > Humanoid.Health then
  3005. Damage = math.ceil(Humanoid.Health)
  3006. if Damage == 0 then
  3007. Damage = 0.1
  3008. end
  3009. end
  3010. if DoesOneShot == false then
  3011. for _, c in pairs(Humanoid.Parent:GetChildren()) do
  3012. if c.Name ~= "HumanoidRootPart" and c.Name ~= "Torso" and c.Name ~= "Head" and c.Name ~= "UpperTorso" and c.Name ~= "LowerTorso" then
  3013. if c.ClassName == "Part" or c.ClassName == "MeshPart" then
  3014. if MRANDOM(1,20) == 1 then
  3015. Shatter(c)
  3016. end
  3017. end
  3018. end
  3019. end
  3020. Humanoid.Health = Humanoid.Health - Damage
  3021. if Humanoid.Parent:FindFirstChild("Head") then
  3022. CreateSound(HITPLAYERSOUNDS[MRANDOM(1,#HITPLAYERSOUNDS)], Humanoid.Parent.Head, 5, 1)
  3023. if CritChance < CritRate + 1 then
  3024. StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), "CRIT//"..Damage, C3(1, 0, 0))
  3025. else
  3026. StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), Damage, C3(0, 0, 0))
  3027. end
  3028. end
  3029. elseif DoesOneShot == true then
  3030. --print("["..Humanoid.Parent.Name.."]: One shot!? Really!?!?")
  3031. Humanoid.Parent:BreakJoints()
  3032. if Humanoid.Parent:FindFirstChild("Head") then
  3033. StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), "INF", C3(1, 0, 0))
  3034. end
  3035. for _, c in pairs(Humanoid.Parent:GetChildren()) do
  3036. if c.ClassName == "Part" or c.ClassName == "MeshPart" then
  3037. Shatter(c)
  3038. end
  3039. end
  3040. end
  3041. if Humanoid.Health == 0 then
  3042. --print("["..Humanoid.Parent.Name.."]: It's like stepping on glass, but worse!")
  3043. SpawnSoul(Humanoid)
  3044. for _, c in pairs(Humanoid.Parent:GetChildren()) do
  3045. if c.ClassName == "Part" or c.ClassName == "MeshPart" then
  3046. Shatter(c)
  3047. end
  3048. end
  3049. end
  3050. end
  3051. end))
  3052. end
  3053.  
  3054. function AoEDamage(position,radius,min,max,maxstrength,critrate,critmultiplier,BESERK)
  3055. local dmg = math.random(10000,100000)
  3056. for i,v in ipairs(workspace:GetChildren()) do
  3057. if v:FindFirstChild("HitBy"..Player.Name) == nil then
  3058. local body = v:GetChildren()
  3059. for part = 1, #body do
  3060. if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
  3061. if(body[part].Position - position).Magnitude < radius then
  3062. if v.ClassName == "Model" then
  3063. if v:FindFirstChildOfClass("Humanoid") then
  3064. ApplyDamage(v:FindFirstChildOfClass("Humanoid"),dmg,critrate,critmultiplier,BESERK)
  3065. local bv = Instance.new("BodyVelocity")
  3066. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  3067. bv.velocity = CF(position,body[part].Position).lookVector*maxstrength
  3068. bv.Parent = body[part]
  3069. Debris:AddItem(bv,0.2)
  3070. end
  3071. end
  3072. end
  3073. end
  3074. end
  3075. end
  3076. if v:FindFirstChild("HitBy"..Player.Name) then
  3077. v:FindFirstChild("HitBy"..Player.Name):remove()
  3078. end
  3079. end
  3080. end
  3081.  
  3082. function Banish(Foe)
  3083. if Foe then
  3084. coroutine.resume(coroutine.create(function()
  3085. --if game.Players:FindFirstChild(Foe.Name) then
  3086. table.insert(TOBANISH,Foe.Name)
  3087. printbye(Foe.Name)
  3088. --end
  3089. Foe.Archivable = true
  3090. local CLONE = Foe:Clone()
  3091. Foe:Destroy()
  3092. CLONE.Parent = Effects
  3093. CLONE:BreakJoints()
  3094. local MATERIALS = {"Glass","Neon"}
  3095. for _, c in pairs(CLONE:GetDescendants()) do
  3096. if c:IsA("BasePart") then
  3097. if c.Name == "Torso" or c.Name == "UpperTorso" or c == CLONE.PrimaryPart then
  3098. CreateSound(340722848, c, 10, 1, false)
  3099. end
  3100. c.Anchored = true
  3101. c.Transparency = c.Transparency + 0.2
  3102. c.Material = MATERIALS[MRANDOM(1,2)]
  3103. c.Color = C3(1,0,0)
  3104. if c.ClassName == "MeshPart" then
  3105. c.TextureID = ""
  3106. end
  3107. if c:FindFirstChildOfClass("SpecialMesh") then
  3108. c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
  3109. end
  3110. if c:FindFirstChildOfClass("Decal") then
  3111. c:FindFirstChildOfClass("Decal"):remove()
  3112. end
  3113. c.Name = "Banished"
  3114. c.CanCollide = false
  3115. else
  3116. c:remove()
  3117. end
  3118. end
  3119. local A = false
  3120. for i = 1, 35 do
  3121. if A == false then
  3122. A = true
  3123. elseif A == true then
  3124. A = false
  3125. end
  3126. for _, c in pairs(CLONE:GetDescendants()) do
  3127. if c:IsA("BasePart") then
  3128. c.Anchored = true
  3129. c.Material = MATERIALS[MRANDOM(1,2)]
  3130. c.Transparency = c.Transparency + 0.8/35
  3131. if A == false then
  3132. c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)
  3133. elseif A == true then
  3134. c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)
  3135. end
  3136. end
  3137. end
  3138. Swait()
  3139. end
  3140. CLONE:remove()
  3141. end))
  3142. end
  3143. end
  3144.  
  3145. function ApplyAoE(POSITION,RANGE,ISBANISH)
  3146. local CHILDREN = workspace:GetDescendants()
  3147. for index, CHILD in pairs(CHILDREN) do
  3148. if CHILD.ClassName == "Model" and CHILD ~= Character then
  3149. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  3150. if HUM then
  3151. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  3152. if TORSO then
  3153. if (TORSO.Position - POSITION).Magnitude <= RANGE then
  3154. if ISBANISH == true then
  3155. Banish(CHILD)
  3156. else
  3157. if ISBANISH == "Gravity" then
  3158. HUM.PlatformStand = true
  3159. if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
  3160. local grav = Instance.new("BodyPosition",TORSO)
  3161. grav.D = 15
  3162. grav.P = 20000
  3163. grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
  3164. grav.position = TORSO.Position
  3165. grav.Name = "V3BanishForce"..Player.Name
  3166. else
  3167. TORSO:FindFirstChild("V3BanishForce"..Player.Name).position = TORSO.Position+VT(0,0.3,0)
  3168. TORSO.RotVelocity = VT(MRANDOM(-25,25),MRANDOM(-25,25),MRANDOM(-25,25))
  3169. end
  3170. else
  3171. HUM.PlatformStand = false
  3172. end
  3173. end
  3174. elseif ISBANISH == "Gravity" then
  3175. if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
  3176. TORSO:FindFirstChild("V3BanishForce"..Player.Name):remove()
  3177. HUM.PlatformStand = false
  3178. end
  3179. end
  3180. end
  3181. end
  3182. end
  3183. end
  3184. end
  3185.  
  3186. --//=================================\\
  3187. --|| ATTACK FUNCTIONS AND STUFF
  3188. --\\=================================//
  3189. function FireArc(Part,ToLocation,AmountOfTime,Height,DoesCourontine)
  3190. if DoesCourontine == false then
  3191. local Direction = CF(Part.Position,ToLocation)
  3192. local Distance = (Part.Position - ToLocation).magnitude
  3193. for i = 1, AmountOfTime do
  3194. Swait()
  3195. Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
  3196. Direction = Part.CFrame
  3197. end
  3198. Part:remove()
  3199. elseif DoesCourontine == true then
  3200. coroutine.resume(coroutine.create(function()
  3201. local Direction = CF(Part.Position,ToLocation)
  3202. local Distance = (Part.Position - ToLocation).magnitude
  3203. for i = 1, AmountOfTime do
  3204. Swait()
  3205. Part.CFrame = Direction*CF(0,(AmountOfTime/200)+((AmountOfTime/Height)-((i*2)/Height)),-Distance/AmountOfTime)
  3206. Direction = Part.CFrame
  3207. end
  3208. Part:remove()
  3209. end))
  3210. end
  3211. end
  3212.  
  3213. function Slice(KIND,SIZE,WAIT,CFRAME,COLOR,GROW)
  3214. local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(1,1,1), true)
  3215. local mesh = nil
  3216. if KIND == "Base" then
  3217. mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
  3218. elseif KIND == "Thin" then
  3219. mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662586858", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
  3220. elseif KIND == "Round" then
  3221. mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662585058", "", VT(SIZE/10,0,SIZE/10), VT(0,0,0))
  3222. end
  3223. wave.CFrame = CFRAME
  3224. coroutine.resume(coroutine.create(function(PART)
  3225. for i = 1, WAIT do
  3226. Swait()
  3227. mesh.Scale = mesh.Scale + GROW/10
  3228. wave.Transparency = wave.Transparency + (0.5/WAIT)
  3229. if wave.Transparency > 0.99 then
  3230. wave:remove()
  3231. end
  3232. end
  3233. end))
  3234. end
  3235.  
  3236. function killnearest(position,range,maxstrength)
  3237. for i,v in ipairs(workspace:GetChildren()) do
  3238. local body = v:GetChildren()
  3239. for part = 1, #body do
  3240. if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
  3241. if(body[part].Position - position).Magnitude < range then
  3242. if v.ClassName == "Model" then
  3243. v:BreakJoints()
  3244. end
  3245. --table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
  3246. local bv = Instance.new("BodyVelocity")
  3247. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  3248. bv.velocity = CF(position,body[part].Position).lookVector*maxstrength
  3249. bv.Parent = body[part]
  3250. Debris:AddItem(bv,0.2)
  3251. end
  3252. end
  3253. end
  3254. if v.ClassName == "Part" then
  3255. if v.Anchored == false and (v.Position - position).Magnitude < range then
  3256. --table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
  3257. v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
  3258. end
  3259. end
  3260. end
  3261. end
  3262.  
  3263. function Supernova()
  3264. local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 7 * Player_Size, Character)
  3265. if HITFLOOR ~= nil then
  3266. local HITBODIES = {}
  3267. ATTACK = true
  3268. Rooted = true
  3269. local ABSOLUTE = CreatePart(3, Effects, "Neon", 0, 1, "Institutional White", "Star", VT(0,0,0))
  3270. MakeForm(ABSOLUTE,"Ball")
  3271. CreateSound("429459101", ABSOLUTE, 10, 1)
  3272. for i=0, 4, 0.1 / Animation_Speed do
  3273. Swait()
  3274. ABSOLUTE.Size = ABSOLUTE.Size + VT(0.2,0.2,0.2)
  3275. ABSOLUTE.CFrame = RootPart.CFrame*CF(0,5+(ABSOLUTE.Size.Y/2),0)
  3276. ABSOLUTE.Transparency = ABSOLUTE.Transparency - 0.01
  3277. local CHARGE = CreatePart(3, Effects, "Neon", 0, 0, "Institutional White", "Star", VT(1,1,1))
  3278. MakeForm(CHARGE,"Ball")
  3279. CHARGE.Color = C3(1,0,0)
  3280. CHARGE.CFrame = CF(RootPart.Position) * CF(MRANDOM(-15,15),-6,MRANDOM(-15,15))
  3281. FireArc(CHARGE,ABSOLUTE.Position,45,45,true)
  3282. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(15 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
  3283. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(25), RAD(-15 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
  3284. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 1.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(170), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  3285. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  3286. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3287. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3288. end
  3289. CreateSound("907330103", Head, 10, 1.2)
  3290. for i = 1, 75 do
  3291. Swait()
  3292. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(4 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(15 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
  3293. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(25), RAD(-15 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
  3294. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 1.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(170), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  3295. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  3296. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3297. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3298. end
  3299. coroutine.resume(coroutine.create(function()
  3300. for i = 1, 13 do
  3301. for e = 1, 8 do
  3302. Swait()
  3303. MagicSphere(VT(1,1,1),15,CF(ABSOLUTE.Position)*CF(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45)),C3(255,0,0),VT(0,0,0))
  3304. CreateSwirl(ABSOLUTE.Size/2,15,CF(HITPOS),true,15,BRICKC"Reakky red".Color,VT(i,0.3,i)*2)
  3305. end
  3306. for i = 1, 5 do
  3307. Slice("Round",0,35,CF(ABSOLUTE.Position)*ANGLES(RAD(MRANDOM(-18,18)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-18,18))),C3(1,1,1),VT(i,0,i)/3)
  3308. Slice("Thin",i,55,ABSOLUTE.CFrame * CF(0,-1.1,0) * ANGLES(RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180)),RAD(MRANDOM(-180,180))),C3(255,0,0),VT(0,0,0))
  3309. end
  3310. CreateSwirl(ABSOLUTE.Size/2,25,CF(ABSOLUTE.Position),true,-25,BRICKC"Institutional White".Color,VT(i,i*2,i))
  3311. CreateSwirl(ABSOLUTE.Size/2,55,CF(ABSOLUTE.Position),true,25,C3(255,0,0),VT(i,i*2,i))
  3312. CreateSound("168586621", ABSOLUTE, 4, 0.8)
  3313. CreateSound("201858144", ABSOLUTE, 10, 0.8)
  3314. killnearest(ABSOLUTE.Position,i*18,i)
  3315. ABSOLUTE.Size = ABSOLUTE.Size*0.9
  3316. MagicSphere(ABSOLUTE.Size,25,CF(ABSOLUTE.Position),BRICKC"Institutional White".Color,VT(i,i,i)/1.1)
  3317. MagicSphere(ABSOLUTE.Size,45,CF(ABSOLUTE.Position),C3(255,0,0),VT(i,i,i))
  3318. end
  3319. ABSOLUTE.Transparency = 1
  3320. Debris:AddItem(ABSOLUTE,10)
  3321. end))
  3322. ATTACK = false
  3323. Rooted = false
  3324. end
  3325. end
  3326.  
  3327. function DeathAgreement()
  3328. ATTACK = true
  3329. Rooted = false
  3330. local SPEED = Speed
  3331. Speed = 8
  3332. CreateSound("357202141", RightArm, 10, 1.1)
  3333. for i=0, 0, 0.01 / Animation_Speed do
  3334. Swait()
  3335. turnto(Mouse.Hit.p)
  3336. MagicSphere(VT(1,1,1),15,RightArm.CFrame * CF(MRANDOM(-3,3),MRANDOM(-3,3),MRANDOM(-3,3)),"Institutional White",VT(-1/15,-1/15,-1/15))
  3337. MagicSphere(VT(2,2,2),15,RightArm.CFrame * CF(MRANDOM(-3,3),MRANDOM(-3,3),MRANDOM(-3,3)),"Institutional White",VT(-2/15,-2/15,-2/15))
  3338. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-85)), 0.15 / Animation_Speed)
  3339. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(85)), 0.2 / Animation_Speed)
  3340. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90+(MRANDOM(-45,45)/10)), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 3 / Animation_Speed)
  3341. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-85)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
  3342. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3343. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3344. end
  3345. for i=0, 0, 0.01 / Animation_Speed do
  3346. Swait()
  3347. turnto(Mouse.Hit.p)
  3348. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(65)), 1 / Animation_Speed)
  3349. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(25), RAD(0), RAD(35)), 1 / Animation_Speed)
  3350. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(65)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  3351. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  3352. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  3353. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  3354. end
  3355. local PART = CreatePart(3, Effects, "Neon", 0, 0.8, "Institutional White", "Punch", VT(50,50,50),false)
  3356. PART.CFrame = RootPart.CFrame * CF(0,0,-25)
  3357. PART.Shape = "Ball"
  3358. local bv = Instance.new("BodyVelocity")
  3359. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  3360. bv.velocity = RootPart.CFrame.lookVector*600
  3361. bv.Parent = PART
  3362. bv.Name = "PROJECTILEVELOCITY"
  3363. CreateWave(VT(1,5,1),55,RootPart.CFrame * CF(0,0,-6)*ANGLES(RAD(-90),RAD(0),RAD(0)),true,1,"Institutional White",VT(3,0.2,3))
  3364. CreateSwirl(VT(3,5,3),75,RootPart.CFrame * CF(0,0,-15)*ANGLES(RAD(-90),RAD(0),RAD(0)),true,1,"Institutional White",VT(2.2,0.6,2.2))
  3365. CreateSound("414517163", Effects, 10, MRANDOM(7, 12) / 10)
  3366. coroutine.resume(coroutine.create(function()
  3367. for i = 1, 3 do
  3368. Swait()
  3369. PART.Transparency = PART.Transparency + 0.2/10
  3370. PART.Size = PART.Size + VT(5,5,5)
  3371. killnearest(PART.Position,PART.Size.Y/2+15,100,RootPart.CFrame)
  3372. end
  3373. PART:Destroy()
  3374. end))
  3375. for i=0, 0, 0.01 / Animation_Speed do
  3376. Swait()
  3377. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(15), RAD(0), RAD(95)), 2 / Animation_Speed)
  3378. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(25), RAD(0), RAD(35)), 3 / Animation_Speed)
  3379. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 3 / Animation_Speed)
  3380. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-70), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 3 / Animation_Speed)
  3381. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 3 / Animation_Speed)
  3382. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 3 / Animation_Speed)
  3383. end
  3384. Speed = SPEED
  3385. ATTACK = false
  3386. Rooted = false
  3387. end
  3388.  
  3389. function Morning_Star()
  3390. ATTACK = true
  3391. Rooted = true
  3392. CreateSound(LAUGHS[MRANDOM(1,#LAUGHS)], Torso, 7, 1, false)
  3393. for i=0, 1, 0.1 / Animation_Speed do
  3394. Swait()
  3395. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  3396. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3397. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(0), RAD(0), RAD(-85)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  3398. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.15, -0.5) * ANGLES(RAD(-15), RAD(0), RAD(85)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  3399. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3400. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3401. end
  3402. coroutine.resume(coroutine.create(function()
  3403. local POS = Mouse.Hit.p
  3404. local RAY = CreatePart(3, Effects, "Neon", 0, 0, "Institutional White", "Strike", VT(0,2000,0))
  3405. MakeForm(RAY,"Cyl")
  3406. local SPHERE = CreatePart(3, Effects, "Neon", 0, 0, "Institutional White", "Strike", VT(0,0,0))
  3407. MakeForm(SPHERE,"Ball")
  3408. local SHIELD = CreatePart(3, Effects, "Neon", 0, 0.5, "Institutional White", "Strike", VT(0,0,0))
  3409. MakeForm(SHIELD,"Ball")
  3410. SHIELD.CFrame = CF(POS)
  3411. RAY.CFrame = CF(POS)
  3412. SPHERE.CFrame = CF(POS)
  3413. CreateSound(440145570, SPHERE, 10, 0.8, false)
  3414. CreateSound(415700134, SPHERE, 10, 0.8, false)
  3415. for i = 1, 200 do
  3416. Swait()
  3417. WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(SPHERE.Size.X*1.2,5+(i),SPHERE.Size.X*1.2), Transparency = 0, Transparency2 = 1, CFrame = SPHERE.CFrame*ANGLES(RAD(0), RAD(i), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = i, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  3418. RAY.Size = RAY.Size + VT(0.05,0,0.05)
  3419. SPHERE.Size = SPHERE.Size + VT(2,2,2)
  3420. SHIELD.Size = SPHERE.Size + VT(3,3,3)
  3421. ApplyAoE(SPHERE.Position,SPHERE.Size.X/2,true)
  3422. end
  3423. for i = 1, 45 do
  3424. Swait()
  3425. RAY.Transparency = RAY.Transparency + 1/45
  3426. SPHERE.Transparency = RAY.Transparency
  3427. SHIELD.Transparency = SPHERE.Transparency + 1/45
  3428. end
  3429. RAY:remove()
  3430. SHIELD:remove()
  3431. SPHERE:remove()
  3432. end))
  3433. for i=0, 1, 0.1 / Animation_Speed do
  3434. Swait()
  3435. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
  3436. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3437. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.15) * ANGLES(RAD(65), RAD(-45), RAD(85)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  3438. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.15) * ANGLES(RAD(65), RAD(45), RAD(-85)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  3439. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3440. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  3441. end
  3442. ATTACK = false
  3443. Rooted = false
  3444. end
  3445.  
  3446. function Shot()
  3447. ATTACK = true
  3448. Rooted = false
  3449. for i=0, 0.05, 0.1 / Animation_Speed do
  3450. Swait()
  3451. turnto(Mouse.Hit.p)
  3452. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
  3453. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
  3454. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
  3455. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
  3456. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  3457. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  3458. end
  3459. repeat
  3460. for i=0, 0.05, 0.1 / Animation_Speed do
  3461. Swait()
  3462. turnto(Mouse.Hit.p)
  3463. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
  3464. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
  3465. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
  3466. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
  3467. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  3468. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  3469. end
  3470. local HIT,POS = CastProperRay(Hole.Position, Mouse.Hit.p, 1000, Character)
  3471. SpawnTrail(Hole.Position,POS)
  3472. if HIT ~= nil then
  3473. if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then
  3474. Banish(HIT.Parent)
  3475. end
  3476. end
  3477. WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(1,0,1), Size2 = VT(6,7.5,6), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  3478. WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(1,0,1), Size2 = VT(6,6.5,6), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 904440937, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
  3479. WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(1,0,1), Size2 = VT(6,6.5,6), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
  3480. WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(1,0,1), Size2 = VT(6,6.5,6), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
  3481. for i=0, 0.05, 0.1 / Animation_Speed do
  3482. Swait()
  3483. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
  3484. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.25 / Animation_Speed)
  3485. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(15), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
  3486. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
  3487. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  3488. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  3489. end
  3490. until KEYHOLD == false
  3491. ATTACK = false
  3492. Rooted = false
  3493. end
  3494.  
  3495. function AttackTemplate()
  3496. ATTACK = true
  3497. Rooted = false
  3498. for i=0, 1, 0.1 / Animation_Speed do
  3499. Swait()
  3500. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3501. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3502. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  3503. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
  3504. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3505. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3506. end
  3507. ATTACK = false
  3508. Rooted = false
  3509. end
  3510.  
  3511. --//=================================\\
  3512. --|| ASSIGN THINGS TO KEYS
  3513. --\\=================================//
  3514.  
  3515. function MouseDown(Mouse)
  3516. if ATTACK == false then
  3517. end
  3518. end
  3519.  
  3520. function MouseUp(Mouse)
  3521. HOLD = false
  3522. end
  3523.  
  3524. function KeyDown(Key)
  3525. KEYHOLD = true
  3526. if Key == "z" and ATTACK == false then
  3527. Shot()
  3528. end
  3529.  
  3530. if Key == "q" and ATTACK == false then
  3531. Morning_Star()
  3532. end
  3533.  
  3534. if Key == "f" and ATTACK == false then
  3535. Supernova()
  3536. end
  3537.  
  3538. if Key == "e" and ATTACK == false then
  3539. DeathAgreement()
  3540. end
  3541.  
  3542. if Key == "b" and ATTACK == false then
  3543. end
  3544.  
  3545. if Key == "c" and ATTACK == false then
  3546. end
  3547.  
  3548. if Key == "q" and ATTACK == false then
  3549. end
  3550.  
  3551. if Key == "x" and ATTACK == false then
  3552. end
  3553. end
  3554.  
  3555. function KeyUp(Key)
  3556. KEYHOLD = false
  3557. end
  3558.  
  3559. Mouse.Button1Down:connect(function(NEWKEY)
  3560. MouseDown(NEWKEY)
  3561. end)
  3562. Mouse.Button1Up:connect(function(NEWKEY)
  3563. MouseUp(NEWKEY)
  3564. end)
  3565. Mouse.KeyDown:connect(function(NEWKEY)
  3566. KeyDown(NEWKEY)
  3567. end)
  3568. Mouse.KeyUp:connect(function(NEWKEY)
  3569. KeyUp(NEWKEY)
  3570. end)
  3571.  
  3572. --//=================================\\
  3573. --\\=================================//
  3574.  
  3575.  
  3576. function unanchor()
  3577. if UNANCHOR == true then
  3578. g = Character:GetChildren()
  3579. for i = 1, #g do
  3580. if g[i].ClassName == "Part" then
  3581. g[i].Anchored = false
  3582. end
  3583. end
  3584. end
  3585. end
  3586.  
  3587.  
  3588. --//=================================\\
  3589. --|| WRAP THE WHOLE SCRIPT UP
  3590. --\\=================================//
  3591.  
  3592. Humanoid.Changed:connect(function(Jump)
  3593. if Jump == "Jump" and (Disable_Jump == true) then
  3594. Humanoid.Jump = false
  3595. end
  3596. end)
  3597.  
  3598. local CONNECT = nil
  3599.  
  3600. while true do
  3601. Swait()
  3602. ANIMATE.Parent = nil
  3603. if Character:FindFirstChildOfClass("Humanoid") == nil then
  3604. Humanoid = IT("Humanoid",Character)
  3605. end
  3606. for _,v in next, Humanoid:GetPlayingAnimationTracks() do
  3607. v:Stop();
  3608. end
  3609. SINE = SINE + CHANGE
  3610. local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
  3611. local TORSOVERTICALVELOCITY = RootPart.Velocity.y
  3612. local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
  3613. local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
  3614. if ANIM == "Walk" and TORSOVELOCITY > 1 then
  3615. RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  3616. Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  3617. RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  3618. LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  3619. elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
  3620. RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  3621. Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  3622. RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  3623. LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  3624. end
  3625. if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
  3626. ANIM = "Jump"
  3627. if ATTACK == false then
  3628. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  3629. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  3630. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  3631. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
  3632. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.3) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
  3633. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
  3634. end
  3635. elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
  3636. ANIM = "Fall"
  3637. if ATTACK == false then
  3638. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  3639. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  3640. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  3641. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
  3642. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
  3643. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
  3644. end
  3645. elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
  3646. ANIM = "Idle"
  3647. if ATTACK == false then
  3648. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 0.15 / Animation_Speed)
  3649. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(45)), 0.15 / Animation_Speed)
  3650. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5, -0.5) * ANGLES(RAD(75), RAD(45), RAD(-25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  3651. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
  3652. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3653. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3654. end
  3655. elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
  3656. ANIM = "Walk"
  3657. if ATTACK == false then
  3658. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3659. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 8 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  3660. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.1, -0.4) * ANGLES(RAD(150), RAD(0), RAD(0))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  3661. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 0.35 / Animation_Speed)
  3662. RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
  3663. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
  3664. end
  3665. end
  3666. unanchor()
  3667. Humanoid.MaxHealth = "inf"
  3668. Humanoid.Health = "inf"
  3669. if Rooted == false then
  3670. Disable_Jump = false
  3671. Humanoid.WalkSpeed = Speed
  3672. elseif Rooted == true then
  3673. Disable_Jump = true
  3674. Humanoid.WalkSpeed = 0
  3675. end
  3676. sick.Parent = Torso
  3677. sick:resume()
  3678. sick.Volume = 8.2
  3679. sick.Pitch = 1
  3680. sick.SoundId = "rbxassetid://1329622781"
  3681. sick.Name = "Dead"
  3682. end
  3683.  
  3684. --//=================================\\
  3685. --\\=================================//
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691. --//====================================================\\--
  3692. --|| END OF SCRIPT
  3693. --\\====================================================//--
Add Comment
Please, Sign In to add comment