Advertisement
Dark_EccentricYT

Untitled

Feb 27th, 2018 (edited)
3,376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 107.66 KB | None | 0 0
  1. --//====================================================\\--
  2. --|| CREATED BY SHACKLUSTER
  3. --\\====================================================//--
  4.  
  5.  
  6.  
  7. wait(2)
  8.  
  9.  
  10.  
  11. Player = game:GetService("Players").LocalPlayer
  12. PlayerGui = Player.PlayerGui
  13. Cam = workspace.CurrentCamera
  14. Backpack = Player.Backpack
  15. Character = Player.Character
  16. Humanoid = Character.Humanoid
  17. Mouse = Player:GetMouse()
  18. RootPart = Character["HumanoidRootPart"]
  19. Torso = Character["Torso"]
  20. Head = Character["Head"]
  21. RightArm = Character["Right Arm"]
  22. LeftArm = Character["Left Arm"]
  23. RightLeg = Character["Right Leg"]
  24. LeftLeg = Character["Left Leg"]
  25. RootJoint = RootPart["RootJoint"]
  26. Neck = Torso["Neck"]
  27. RightShoulder = Torso["Right Shoulder"]
  28. LeftShoulder = Torso["Left Shoulder"]
  29. RightHip = Torso["Right Hip"]
  30. LeftHip = Torso["Left Hip"]
  31. if Character:FindFirstChild("Shirt") then
  32. Character.Shirt:Destroy()
  33. end
  34. if Character:FindFirstChild("Pants") then
  35. Character.Pants:Destroy()
  36. end
  37. local top = Instance.new("Shirt")
  38. top.ShirtTemplate = "rbxassetid://764022882"
  39. local bottom = Instance.new("Pants")
  40. bottom.PantsTemplate = "rbxassetid://129459076"
  41. top.Parent = Character
  42. bottom.Parent = Character
  43. q = Character:GetChildren()
  44. for u = 1, #q do
  45. if q[u].ClassName == "Accessory" then
  46. q[u]:Destroy()
  47. elseif q[u].ClassName == "CharacterMesh" then
  48. q[u]:Destroy()
  49. end
  50. end
  51. Head.face.Texture = "rbxassetid://1032441660"
  52.  
  53. IT = Instance.new
  54. CF = CFrame.new
  55. VT = Vector3.new
  56. RAD = math.rad
  57. C3 = Color3.new
  58. UD2 = UDim2.new
  59. BRICKC = BrickColor.new
  60. ANGLES = CFrame.Angles
  61. EULER = CFrame.fromEulerAnglesXYZ
  62. COS = math.cos
  63. ACOS = math.acos
  64. SIN = math.sin
  65. ASIN = math.asin
  66. ABS = math.abs
  67. MRANDOM = math.random
  68. FLOOR = math.floor
  69.  
  70. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  71. local NEWMESH = IT(MESH)
  72. if MESH == "SpecialMesh" then
  73. NEWMESH.MeshType = MESHTYPE
  74. if MESHID ~= "nil" and MESHID ~= "" then
  75. NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  76. end
  77. if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  78. NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  79. end
  80. end
  81. NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  82. NEWMESH.Scale = SCALE
  83. NEWMESH.Parent = PARENT
  84. return NEWMESH
  85. end
  86.  
  87. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
  88. local NEWPART = IT("Part")
  89. NEWPART.formFactor = FORMFACTOR
  90. NEWPART.Reflectance = REFLECTANCE
  91. NEWPART.Transparency = TRANSPARENCY
  92. NEWPART.CanCollide = false
  93. NEWPART.Locked = true
  94. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  95. NEWPART.Name = NAME
  96. NEWPART.Size = SIZE
  97. NEWPART.Position = Torso.Position
  98. NEWPART.Material = MATERIAL
  99. NEWPART:BreakJoints()
  100. NEWPART.Parent = PARENT
  101. return NEWPART
  102. end
  103.  
  104.  
  105. --//=================================\\
  106. --|| CUSTOMIZATION
  107. --\\=================================//
  108.  
  109. Class_Name = "Riho"
  110. Weapon_Name = "Wreckage"
  111.  
  112. Custom_Colors = {
  113. Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon.
  114. Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon.
  115.  
  116. Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities.
  117. Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
  118. Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
  119. Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
  120. Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
  121.  
  122. Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
  123. Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
  124. Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
  125. Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
  126. Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
  127. }
  128.  
  129. Mana_Bar_Background_Transparency = 0 --Transparency for the background of the mana bar.
  130. Secondary_Mana_Bar_Background_Transparency = 0 --Transparency for the background of the secondary mana bar.
  131. Health_Bar_Background_Transparency = 0 --Transparency for the background of the health bar.
  132. Stun_Bar_Background_Transparency = 0 --Transparency for the background of the stun bar.
  133. Ability_Background_Transparency = 0 --Transparency for the background of the abilities.
  134. Stat_Background_Transparency = 0 --Transparency for the background of the stats.
  135.  
  136. Player_Size = 1 --Size of the player.
  137. Animation_Speed = 4
  138. Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
  139.  
  140. Enable_Gui = false --Enables or disables the Weapon Gui. Also functions as hiding or showing the Gui.
  141. Enable_Stats = false --Enables or disables stats.
  142. Put_Stats_In_Character = false --Places stats in Character.
  143. Enable_Stagger_Hit = false --Enables or disables staggering when hitting a hitbox of some sort.
  144. Play_Hitbox_Hit_Sound = true --Plays a hit sound when hitting a hitbox of some sort.
  145. Enable_Stagger = false --Enables or disables staggering.
  146. Enable_Stun = false --Enables or disables the stun mechanic.
  147. Enable_Abilities = false --Enables abilites with cooldowns and mana costs.
  148. Enable_Secondary_Bar = false --Enables the secondary mana bar, if true.
  149.  
  150. Start_Equipped = true --Starts the player equipped with their weapon.
  151. Start_Equipped_With_Equipped_Animation = false --Used in conjunction with the above option. Starts your equip animation.
  152. Can_Equip_Or_Unequip = false --Enables or disables the ability to unequip or equip your weapon.
  153. Disable_Animator = true --Disables the Animator in the humanoid.
  154. Disable_Animate = true --Disables the Animate script in the character.
  155. Disable_Moving_Arms = false --Keeps the arms from moving around.
  156. Use_Motors_Instead_Of_Welds = false --Uses motors instead of welds to disable moving arms.
  157. Walkspeed_Depends_On_Movement_Value = false --Walkspeed depends on movement value. Self-explanatory.
  158. Disable_Jump = false --Disables jumping.
  159. Use_HopperBin = false --Uses a hopperbin to do things.
  160.  
  161. Cooldown_1 = 0 --Cooldowns for abilites.
  162. Cooldown_2 = 0
  163. Cooldown_3 = 0
  164. Cooldown_4 = 0
  165. Skill_1_Mana_Cost = 0 --How much mana is required to use the skill.
  166. Skill_2_Mana_Cost = 0
  167. Skill_3_Mana_Cost = 0
  168. Skill_4_Mana_Cost = 0
  169. Max_Mana = 0 --Maximum amount of mana you can have.
  170. Max_Secondary_Mana = 0 --Maximum amount of secondary mana you can have.
  171. Mana_Name = "Mana" --Name for the mana bar.
  172. Secondary_Mana_Name = "Block" --Name for the secondary mana bar.
  173. Max_Stun = 1 --Maximum amount of stun you can have.
  174. Recover_Mana = 0 --How much mana you gain.
  175. Mana_Regen_Mode = "1" --Basically switches from one mana regen system to another.
  176. Secondary_Mana_Regen_Mode = "1" --Basically switches from one secondary mana regen system to another.
  177. Stun_Lose_Mode = "1" --Basically switches from one secondary stun loss system to another.
  178. Recover_Secondary_Mana = 0 --How much secondary mana you gain.
  179. Lose_Stun = 0 --How much stun you lose.
  180. Stun_Wait = 0 --Delay between losing stun.
  181. Mana_Wait = 0 --Delay between gaining mana.
  182. Secondary_Mana_Wait = 0 --Delay between gaining secondary mana.
  183. Menu_Update_Speed = 0 --How fast the Weapon Gui will update.
  184. Constant_Update = false --Removes the delay between updating the Weapon GUI.
  185. Show_Stats = false --Hides or shows stats.
  186. Stat_Offset = 0.74 --For cosmetic purposes. {0.74, 0.78}
  187.  
  188. --//=================================\\
  189. --|| END OF CUSTOMIZATION
  190. --\\=================================//
  191.  
  192. local function weldBetween(a, b)
  193. local weldd = Instance.new("ManualWeld")
  194. weldd.Part0 = a
  195. weldd.Part1 = b
  196. weldd.C0 = CFrame.new()
  197. weldd.C1 = b.CFrame:inverse() * a.CFrame
  198. weldd.Parent = a
  199. return weldd
  200. end
  201.  
  202. function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
  203. local acs = Instance.new("Part")
  204. acs.CanCollide = false
  205. acs.Anchored = false
  206. acs.Size = Vector3.new(0,0,0)
  207. acs.CFrame = attachmentpart.CFrame
  208. acs.Parent = Character
  209. acs.BrickColor = color
  210. local meshs = Instance.new("SpecialMesh")
  211. meshs.MeshId = mesh
  212. meshs.TextureId = texture
  213. meshs.Parent = acs
  214. meshs.Scale = scale
  215. meshs.Offset = offset
  216. weldBetween(attachmentpart,acs)
  217. end
  218.  
  219. function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
  220. if TYPE == "Gem" then
  221. local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
  222. acs.Anchored = false
  223. acs.CanCollide = false
  224. acs.CFrame = PART.CFrame
  225. local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
  226. weldBetween(PART,acs)
  227. elseif TYPE == "Skull" then
  228. local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
  229. acs.Anchored = false
  230. acs.CanCollide = false
  231. acs.CFrame = PART.CFrame
  232. local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
  233. weldBetween(PART,acs)
  234. elseif TYPE == "Eye" then
  235. local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
  236. acs.Anchored = false
  237. acs.CanCollide = false
  238. acs.CFrame = PART.CFrame
  239. local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
  240. weldBetween(PART,acs)
  241. end
  242. end
  243.  
  244. --//=================================\\
  245. --|| USEFUL VALUES
  246. --\\=================================//
  247.  
  248. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  249. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  250. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  251. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  252. local CO1 = 0
  253. local CO2 = 0
  254. local CO3 = 0
  255. local CO4 = 0
  256. local CHANGEDEFENSE = 0
  257. local CHANGEDAMAGE = 0
  258. local CHANGEMOVEMENT = 0
  259. local ANIM = "Idle"
  260. local ATTACK = false
  261. local EQUIPPED = false
  262. local HOLD = false
  263. local COMBO = 1
  264. local LASTPOINT = nil
  265. local BLCF = nil
  266. local SCFR = nil
  267. local STAGGERHITANIM = false
  268. local STAGGERANIM = false
  269. local STUNANIM = false
  270. local CRITCHANCENUMBER = 0
  271. local IDLENUMBER = 0
  272. local DONUMBER = 0
  273. local HANDIDLE = false
  274. local SINE = 0
  275. local CHANGE = 2 / Animation_Speed
  276. local WALKINGANIM = false
  277. local WALK = 0
  278. local DISABLEJUMPING = false
  279. local HASBEENBLOCKED = false
  280. local STUNDELAYNUMBER = 0
  281. local MANADELAYNUMBER = 0
  282. local SECONDARYMANADELAYNUMBER = 0
  283. local ROBLOXIDLEANIMATION = IT("Animation")
  284. ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
  285. ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  286. --ROBLOXIDLEANIMATION.Parent = Humanoid
  287. local WEAPONGUI = IT("ScreenGui", nil)
  288. WEAPONGUI.Name = "Weapon GUI"
  289. local WEAPONTOOL = IT("HopperBin", nil)
  290. WEAPONTOOL.Name = Weapon_Name
  291. local Weapon = IT("Model")
  292. Weapon.Name = Weapon_Name
  293. local Effects = IT("Folder", Weapon)
  294. Effects.Name = "Effects"
  295. local ANIMATOR = Humanoid.Animator
  296. local ANIMATE = Character.Animate
  297. local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
  298. local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
  299. local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
  300. local HITBLOCKSOUNDS = {"199148933", "199148947"}
  301.  
  302. --//=================================\\
  303. --\\=================================//
  304.  
  305. --//=================================\\
  306. --|| STATS
  307. --\\=================================//
  308.  
  309. if Character:FindFirstChild("Stats") ~= nil then
  310. Character:FindFirstChild("Stats").Parent = nil
  311. end
  312.  
  313. local Stats = IT("Folder", nil)
  314. Stats.Name = "Stats"
  315. local ChangeStat = IT("Folder", Stats)
  316. ChangeStat.Name = "ChangeStat"
  317. local Defense = IT("NumberValue", Stats)
  318. Defense.Name = "Defense"
  319. Defense.Value = 1
  320. local Movement = IT("NumberValue", Stats)
  321. Movement.Name = "Movement"
  322. Movement.Value = 1
  323. local Damage = IT("NumberValue", Stats)
  324. Damage.Name = "Damage"
  325. Damage.Value = 1
  326. local Mana = IT("NumberValue", Stats)
  327. Mana.Name = "Mana"
  328. Mana.Value = 0
  329. local SecondaryMana = IT("NumberValue", Stats)
  330. SecondaryMana.Name = "SecondaryMana"
  331. SecondaryMana.Value = 0
  332. local CanCrit = IT("BoolValue", Stats)
  333. CanCrit.Name = "CanCrit"
  334. CanCrit.Value = false
  335. local CritChance = IT("NumberValue", Stats)
  336. CritChance.Name = "CritChance"
  337. CritChance.Value = 20
  338. local CanPenetrateArmor = IT("BoolValue", Stats)
  339. CanPenetrateArmor.Name = "CanPenetrateArmor"
  340. CanPenetrateArmor.Value = false
  341. local AntiTeamKill = IT("BoolValue", Stats)
  342. AntiTeamKill.Name = "AntiTeamKill"
  343. AntiTeamKill.Value = false
  344. local Rooted = IT("BoolValue", Stats)
  345. Rooted.Name = "Rooted"
  346. Rooted.Value = false
  347. local Block = IT("BoolValue", Stats)
  348. Block.Name = "Block"
  349. Block.Value = false
  350. local RecentEnemy = IT("ObjectValue", Stats)
  351. RecentEnemy.Name = "RecentEnemy"
  352. RecentEnemy.Value = nil
  353. local StaggerHit = IT("BoolValue", Stats)
  354. StaggerHit.Name = "StaggerHit"
  355. StaggerHit.Value = false
  356. local Stagger = IT("BoolValue", Stats)
  357. Stagger.Name = "Stagger"
  358. Stagger.Value = false
  359. local Stun = IT("BoolValue", Stats)
  360. Stun.Name = "Stun"
  361. Stun.Value = false
  362. local StunValue = IT("NumberValue", Stats)
  363. StunValue.Name = "StunValue"
  364. StunValue.Value = 0
  365.  
  366. if Enable_Stats == true and Put_Stats_In_Character == true then
  367. Stats.Parent = Character
  368. end
  369.  
  370. --//=================================\\
  371. --\\=================================//
  372.  
  373.  
  374.  
  375.  
  376.  
  377. --//=================================\\
  378. --|| DEBUFFS / BUFFS
  379. --\\=================================//
  380.  
  381. local DEFENSECHANGE1 = IT("NumberValue", ChangeStat)
  382. DEFENSECHANGE1.Name = "ChangeDefense"
  383. DEFENSECHANGE1.Value = 0
  384.  
  385. local MOVEMENTCHANGE1 = IT("NumberValue", nil)
  386. MOVEMENTCHANGE1.Name = "ChangeMovement"
  387. MOVEMENTCHANGE1.Value = 0
  388.  
  389. --//=================================\\
  390. --\\=================================//
  391.  
  392.  
  393.  
  394.  
  395.  
  396. --//=================================\\
  397. --|| SAZERENOS' ARTIFICIAL HEARTBEAT
  398. --\\=================================//
  399.  
  400. ArtificialHB = Instance.new("BindableEvent", script)
  401. ArtificialHB.Name = "ArtificialHB"
  402.  
  403. script:WaitForChild("ArtificialHB")
  404.  
  405. frame = Frame_Speed
  406. tf = 0
  407. allowframeloss = false
  408. tossremainder = false
  409. lastframe = tick()
  410. script.ArtificialHB:Fire()
  411.  
  412. game:GetService("RunService").Heartbeat:connect(function(s, p)
  413. tf = tf + s
  414. if tf >= frame then
  415. if allowframeloss then
  416. script.ArtificialHB:Fire()
  417. lastframe = tick()
  418. else
  419. for i = 1, math.floor(tf / frame) do
  420. script.ArtificialHB:Fire()
  421. end
  422. lastframe = tick()
  423. end
  424. if tossremainder then
  425. tf = 0
  426. else
  427. tf = tf - frame * math.floor(tf / frame)
  428. end
  429. end
  430. end)
  431.  
  432. --//=================================\\
  433. --\\=================================//
  434.  
  435. BC = BrickColor.new
  436. createaccessory(Head,"http://www.roblox.com/asset/?id=13640868","http://www.roblox.com/asset/?id=13640869",Vector3.new(1,1,1),Vector3.new(0,0.5,0),BC(0,0,0))
  437.  
  438.  
  439. --//=================================\\
  440. --|| SOME FUNCTIONS
  441. --\\=================================//
  442.  
  443. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  444. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  445. end
  446.  
  447. function PositiveAngle(NUMBER)
  448. if NUMBER >= 0 then
  449. NUMBER = 0
  450. end
  451. return NUMBER
  452. end
  453.  
  454. function NegativeAngle(NUMBER)
  455. if NUMBER <= 0 then
  456. NUMBER = 0
  457. end
  458. return NUMBER
  459. end
  460.  
  461. function Swait(NUMBER)
  462. if NUMBER == 0 or NUMBER == nil then
  463. ArtificialHB.Event:wait()
  464. else
  465. for i = 1, NUMBER do
  466. ArtificialHB.Event:wait()
  467. end
  468. end
  469. end
  470.  
  471. function QuaternionFromCFrame(cf)
  472. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  473. local trace = m00 + m11 + m22
  474. if trace > 0 then
  475. local s = math.sqrt(1 + trace)
  476. local recip = 0.5 / s
  477. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  478. else
  479. local i = 0
  480. if m11 > m00 then
  481. i = 1
  482. end
  483. if m22 > (i == 0 and m00 or m11) then
  484. i = 2
  485. end
  486. if i == 0 then
  487. local s = math.sqrt(m00 - m11 - m22 + 1)
  488. local recip = 0.5 / s
  489. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  490. elseif i == 1 then
  491. local s = math.sqrt(m11 - m22 - m00 + 1)
  492. local recip = 0.5 / s
  493. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  494. elseif i == 2 then
  495. local s = math.sqrt(m22 - m00 - m11 + 1)
  496. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  497. end
  498. end
  499. end
  500.  
  501. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  502. local xs, ys, zs = x + x, y + y, z + z
  503. local wx, wy, wz = w * xs, w * ys, w * zs
  504. local xx = x * xs
  505. local xy = x * ys
  506. local xz = x * zs
  507. local yy = y * ys
  508. local yz = y * zs
  509. local zz = z * zs
  510. 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))
  511. end
  512.  
  513. function QuaternionSlerp(a, b, t)
  514. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  515. local startInterp, finishInterp;
  516. if cosTheta >= 0.0001 then
  517. if (1 - cosTheta) > 0.0001 then
  518. local theta = ACOS(cosTheta)
  519. local invSinTheta = 1 / SIN(theta)
  520. startInterp = SIN((1 - t) * theta) * invSinTheta
  521. finishInterp = SIN(t * theta) * invSinTheta
  522. else
  523. startInterp = 1 - t
  524. finishInterp = t
  525. end
  526. else
  527. if (1 + cosTheta) > 0.0001 then
  528. local theta = ACOS(-cosTheta)
  529. local invSinTheta = 1 / SIN(theta)
  530. startInterp = SIN((t - 1) * theta) * invSinTheta
  531. finishInterp = SIN(t * theta) * invSinTheta
  532. else
  533. startInterp = t - 1
  534. finishInterp = t
  535. end
  536. end
  537. 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
  538. end
  539.  
  540. function Clerp(a, b, t)
  541. local qa = {QuaternionFromCFrame(a)}
  542. local qb = {QuaternionFromCFrame(b)}
  543. local ax, ay, az = a.x, a.y, a.z
  544. local bx, by, bz = b.x, b.y, b.z
  545. local _t = 1 - t
  546. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  547. end
  548.  
  549. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  550. local frame = IT("Frame")
  551. frame.BackgroundTransparency = TRANSPARENCY
  552. frame.BorderSizePixel = BORDERSIZEPIXEL
  553. frame.Position = POSITION
  554. frame.Size = SIZE
  555. frame.BackgroundColor3 = COLOR
  556. frame.BorderColor3 = BORDERCOLOR
  557. frame.Name = NAME
  558. frame.Parent = PARENT
  559. return frame
  560. end
  561.  
  562. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  563. local label = IT("TextLabel")
  564. label.BackgroundTransparency = 1
  565. label.Size = UD2(1, 0, 1, 0)
  566. label.Position = UD2(0, 0, 0, 0)
  567. label.TextColor3 = C3(255, 255, 255)
  568. label.TextStrokeTransparency = STROKETRANSPARENCY
  569. label.TextTransparency = TRANSPARENCY
  570. label.FontSize = TEXTFONTSIZE
  571. label.Font = TEXTFONT
  572. label.BorderSizePixel = BORDERSIZEPIXEL
  573. label.TextScaled = true
  574. label.Text = TEXT
  575. label.Name = NAME
  576. label.Parent = PARENT
  577. return label
  578. end
  579.  
  580. function NoOutlines(PART)
  581. PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  582. end
  583.  
  584.  
  585. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  586. local NEWWELD = IT(TYPE)
  587. NEWWELD.Part0 = PART0
  588. NEWWELD.Part1 = PART1
  589. NEWWELD.C0 = C0
  590. NEWWELD.C1 = C1
  591. NEWWELD.Parent = PARENT
  592. return NEWWELD
  593. end
  594.  
  595. function CreateSound(ID, PARENT, VOLUME, PITCH)
  596. coroutine.resume(coroutine.create(function()
  597. local NEWSOUND = IT("Sound", PARENT)
  598. NEWSOUND.Volume = VOLUME
  599. NEWSOUND.Pitch = PITCH
  600. NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  601. Swait()
  602. NEWSOUND:play()
  603. game:GetService("Debris"):AddItem(NEWSOUND, 10)
  604. end))
  605. end
  606.  
  607. function CFrameFromTopBack(at, top, back)
  608. local right = top:Cross(back)
  609. 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)
  610. end
  611.  
  612. function Lightning(POSITION1, POSITION2, MULTIPLIERTIME, LIGHTNINGDELAY, OFFSET, BRICKCOLOR, MATERIAL, SIZE, TRANSPARENCY, LASTINGTIME)
  613. local MAGNITUDE = (POSITION1 - POSITION2).magnitude
  614. local CURRENTPOSITION = POSITION1
  615. local LIGHTNINGOFFSET = {-OFFSET, OFFSET}
  616. coroutine.resume(coroutine.create(function()
  617. for i = 1, MULTIPLIERTIME do
  618. local LIGHTNINGPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR,"Effect", VT(SIZE * Player_Size, SIZE * Player_Size, MAGNITUDE / MULTIPLIERTIME))
  619. LIGHTNINGPART.Anchored = true
  620. local LIGHTNINGOFFSET2 = VT(LIGHTNINGOFFSET[MRANDOM(1, 2)], LIGHTNINGOFFSET[MRANDOM(1, 2)], LIGHTNINGOFFSET[MRANDOM(1, 2)])
  621. local LIGHTNINGPOSITION1 = CF(CURRENTPOSITION, POSITION2) * CF(0, 0, MAGNITUDE / MULTIPLIERTIME).p + LIGHTNINGOFFSET2
  622. if MULTIPLIERTIME == i then
  623. local LIGHTNINGMAGNITUDE1 = (CURRENTPOSITION - POSITION2).magnitude
  624. LIGHTNINGPART.Size = VT(SIZE * Player_Size, SIZE * Player_Size, LIGHTNINGMAGNITUDE1)
  625. LIGHTNINGPART.CFrame = CF(CURRENTPOSITION, POSITION2) * CF(0, 0, -LIGHTNINGMAGNITUDE1 / 2)
  626. else
  627. LIGHTNINGPART.CFrame = CF(CURRENTPOSITION, LIGHTNINGPOSITION1) * CF(0, 0, MAGNITUDE / MULTIPLIERTIME / 2)
  628. end
  629. CURRENTPOSITION=LIGHTNINGPART.CFrame * CF(0, 0, MAGNITUDE / MULTIPLIERTIME / 2).p
  630. game.Debris:AddItem(LIGHTNINGPART, LASTINGTIME)
  631. coroutine.resume(coroutine.create(function()
  632. while LIGHTNINGPART.Transparency ~= 1 do
  633. --local StartTransparency = tra
  634. for i=0, 1, LASTINGTIME do
  635. Swait()
  636. LIGHTNINGPART.Transparency = LIGHTNINGPART.Transparency + (0.1 / LASTINGTIME)
  637. end
  638. end
  639. end))
  640. Swait(LIGHTNINGDELAY / Animation_Speed)
  641. end
  642. end))
  643. end
  644.  
  645. function MagicBlock(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  646. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  647. EFFECTPART.Anchored = true
  648. EFFECTPART.CFrame = CFRAME
  649. local EFFECTMESH = CreateMesh("BlockMesh", EFFECTPART, "", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  650. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  651. coroutine.resume(coroutine.create(function(PART, MESH)
  652. for i = 0, 1, delay do
  653. Swait()
  654. PART.CFrame = PART.CFrame * ROTATION
  655. PART.Transparency = i
  656. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  657. end
  658. PART.Parent = nil
  659. end), EFFECTPART, EFFECTMESH)
  660. end
  661.  
  662. function MagicSphere(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  663. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  664. EFFECTPART.Anchored = true
  665. EFFECTPART.CFrame = CFRAME
  666. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "Sphere", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  667. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  668. coroutine.resume(coroutine.create(function(PART, MESH)
  669. for i = 0, 1, delay do
  670. Swait()
  671. PART.CFrame = PART.CFrame * ROTATION
  672. PART.Transparency = i
  673. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  674. end
  675. PART.Parent = nil
  676. end), EFFECTPART, EFFECTMESH)
  677. end
  678.  
  679. function MagicCylinder(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  680. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  681. EFFECTPART.Anchored = true
  682. EFFECTPART.CFrame = CFRAME
  683. local EFFECTMESH = CreateMesh("CylinderMesh", EFFECTPART, "", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  684. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  685. coroutine.resume(coroutine.create(function(PART, MESH)
  686. for i = 0, 1, delay do
  687. Swait()
  688. PART.CFrame = PART.CFrame * ROTATION
  689. PART.Transparency = i
  690. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  691. end
  692. PART.Parent = nil
  693. end), EFFECTPART, EFFECTMESH)
  694. end
  695.  
  696. function MagicHead(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  697. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  698. EFFECTPART.Anchored = true
  699. EFFECTPART.CFrame = CFRAME
  700. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "Head", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  701. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  702. coroutine.resume(coroutine.create(function(PART, MESH)
  703. for i = 0, 1, delay do
  704. Swait()
  705. PART.CFrame = PART.CFrame * ROTATION
  706. PART.Transparency = i
  707. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  708. end
  709. PART.Parent = nil
  710. end), EFFECTPART, EFFECTMESH)
  711. end
  712.  
  713. function MagicRing(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  714. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  715. EFFECTPART.Anchored = true
  716. EFFECTPART.CFrame = CFRAME
  717. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "3270017", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  718. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  719. coroutine.resume(coroutine.create(function(PART, MESH)
  720. for i = 0, 1, delay do
  721. Swait()
  722. PART.CFrame = PART.CFrame * ROTATION
  723. PART.Transparency = i
  724. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  725. end
  726. PART.Parent = nil
  727. end), EFFECTPART, EFFECTMESH)
  728. end
  729.  
  730. function MagicWave(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  731. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  732. EFFECTPART.Anchored = true
  733. EFFECTPART.CFrame = CFRAME
  734. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "20329976", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), VT(0, 0, (-0.1 * Z1)) + (OFFSET * Player_Size))
  735. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  736. coroutine.resume(coroutine.create(function(PART, MESH)
  737. for i = 0, 1, delay do
  738. Swait()
  739. PART.CFrame = PART.CFrame * ROTATION
  740. PART.Transparency = i
  741. MESH.Offset = VT(0, 0, (-0.1 * MESH.Scale.Z))
  742. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  743. end
  744. PART.Parent = nil
  745. end), EFFECTPART, EFFECTMESH)
  746. end
  747.  
  748. function MagicCrystal(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  749. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  750. EFFECTPART.Anchored = true
  751. EFFECTPART.CFrame = CFRAME
  752. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "9756362", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  753. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  754. coroutine.resume(coroutine.create(function(PART, MESH)
  755. for i = 0, 1, delay do
  756. Swait()
  757. PART.CFrame = PART.CFrame * ROTATION
  758. PART.Transparency = i
  759. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  760. end
  761. PART.Parent = nil
  762. end), EFFECTPART, EFFECTMESH)
  763. end
  764.  
  765. function MagicSwirl(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  766. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  767. EFFECTPART.Anchored = true
  768. EFFECTPART.CFrame = CFRAME
  769. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1051557", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  770. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  771. coroutine.resume(coroutine.create(function(PART, MESH)
  772. for i = 0, 1, delay do
  773. Swait()
  774. PART.CFrame = PART.CFrame * ROTATION
  775. PART.Transparency = i
  776. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  777. end
  778. PART.Parent = nil
  779. end), EFFECTPART, EFFECTMESH)
  780. end
  781.  
  782. function MagicSharpCone(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  783. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  784. EFFECTPART.Anchored = true
  785. EFFECTPART.CFrame = CFRAME
  786. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1778999", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  787. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  788. coroutine.resume(coroutine.create(function(PART, MESH)
  789. for i = 0, 1, delay do
  790. Swait()
  791. PART.CFrame = PART.CFrame * ROTATION
  792. PART.Transparency = i
  793. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  794. end
  795. PART.Parent = nil
  796. end), EFFECTPART, EFFECTMESH)
  797. end
  798.  
  799. function MagicFlatCone(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  800. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  801. EFFECTPART.Anchored = true
  802. EFFECTPART.CFrame = CFRAME
  803. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1033714", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  804. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  805. coroutine.resume(coroutine.create(function(PART, MESH)
  806. for i = 0, 1, delay do
  807. Swait()
  808. PART.CFrame = PART.CFrame * ROTATION
  809. PART.Transparency = i
  810. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  811. end
  812. PART.Parent = nil
  813. end), EFFECTPART, EFFECTMESH)
  814. end
  815.  
  816. function MagicSpikedCrown(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  817. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  818. EFFECTPART.Anchored = true
  819. EFFECTPART.CFrame = CFRAME
  820. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1323306", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  821. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  822. coroutine.resume(coroutine.create(function(PART, MESH)
  823. for i = 0, 1, delay do
  824. Swait()
  825. PART.CFrame = PART.CFrame * ROTATION
  826. PART.Transparency = i
  827. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  828. end
  829. PART.Parent = nil
  830. end), EFFECTPART, EFFECTMESH)
  831. end
  832.  
  833. function MagicFlatCrown(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  834. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  835. EFFECTPART.Anchored = true
  836. EFFECTPART.CFrame = CFRAME
  837. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1078075", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  838. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  839. coroutine.resume(coroutine.create(function(PART, MESH)
  840. for i = 0, 1, delay do
  841. Swait()
  842. PART.CFrame = PART.CFrame * ROTATION
  843. PART.Transparency = i
  844. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  845. end
  846. PART.Parent = nil
  847. end), EFFECTPART, EFFECTMESH)
  848. end
  849.  
  850. function MagicSkull(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
  851. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  852. EFFECTPART.Anchored = true
  853. EFFECTPART.CFrame = CFRAME
  854. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "4770583", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
  855. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  856. coroutine.resume(coroutine.create(function(PART, MESH)
  857. for i = 0, 1, delay do
  858. Swait()
  859. PART.CFrame = PART.CFrame * ROTATION
  860. PART.Transparency = i
  861. MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
  862. end
  863. PART.Parent = nil
  864. end), EFFECTPART, EFFECTMESH)
  865. end
  866.  
  867. function ElectricEffect(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X, Y, Z, delay)
  868. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
  869. EFFECTPART.Anchored = true
  870. EFFECTPART.CFrame = CFRAME
  871. local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "4770583", "", VT(X * Player_Size, Y * Player_Size, Z * Player_Size), OFFSET * Player_Size)
  872. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  873. local XVALUE = MRANDOM()
  874. local YVALUE = MRANDOM()
  875. local ZVALUE = MRANDOM()
  876. coroutine.resume(coroutine.create(function(PART, MESH, THEXVALUE, THEYVALUE, THEZVALUE)
  877. for i = 0, 1, delay do
  878. Swait()
  879. PART.CFrame = PART.CFrame * ROTATION
  880. PART.Transparency = i
  881. THEXVALUE = THEXVALUE - 0.1 * (delay * 10)
  882. THEYVALUE = THEYVALUE - 0.1 * (delay * 10)
  883. THEZVALUE = THEZVALUE - 0.1 * (delay * 10)
  884. MESH.Scale = MESH.Scale + VT(THEXVALUE * Player_Size, THEYVALUE * Player_Size, THEZVALUE * Player_Size)
  885. end
  886. PART.Parent = nil
  887. end), EFFECTPART, EFFECTMESH, XVALUE, YVALUE, ZVALUE)
  888. end
  889.  
  890. function TrailEffect(BRICKCOLOR, MATERIAL, CURRENTCFRAME, OLDCFRAME, MESHTYPE, REFLECTANCE, SIZE, ROTATION, X, Y, Z, delay)
  891. local MAGNITUDECFRAME = (CURRENTCFRAME.p - OLDCFRAME.p).magnitude
  892. if MAGNITUDECFRAME > (1 / 100) then
  893. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT(1, MAGNITUDECFRAME, 1))
  894. EFFECTPART.Anchored = true
  895. EFFECTPART.CFrame = CF((CURRENTCFRAME.p + OLDCFRAME.p) / 2, OLDCFRAME.p) * ANGLES(RAD(90), 0, 0)
  896. local THEMESHTYPE = "BlockMesh"
  897. if MESHTYPE == "Cylinder" then
  898. THEMESHTYPE = "CylinderMesh"
  899. end
  900. local EFFECTMESH = CreateMesh(THEMESHTYPE, EFFECTPART, "", "", "", VT(0 + SIZE * Player_Size, 1, 0 + SIZE * Player_Size), VT(0, 0, 0))
  901. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  902. coroutine.resume(coroutine.create(function(PART, MESH)
  903. for i = 0, 1, delay do
  904. Swait()
  905. PART.CFrame = PART.CFrame * ROTATION
  906. PART.Transparency = i
  907. MESH.Scale = MESH.Scale + VT(X * Player_Size, Y * Player_Size, Z * Player_Size)
  908. end
  909. PART.Parent = nil
  910. end), EFFECTPART, EFFECTMESH)
  911. end
  912. end
  913.  
  914. function ClangEffect(BRICKCOLOR, MATERIAL, CFRAME, ANGLE, DURATION, SIZE, POWER, REFLECTANCE, X, Y, Z, delay)
  915. local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 1, BRICKCOLOR, "Effect", VT())
  916. EFFECTPART.Anchored = true
  917. EFFECTPART.CFrame = CFRAME
  918. local EFFECTMESH = CreateMesh("BlockMesh", EFFECTPART, "", "", "", VT(0, 0, 0), VT(0, 0, 0))
  919. game:GetService("Debris"):AddItem(EFFECTPART, 10)
  920. local THELASTPOINT = CFRAME
  921. coroutine.resume(coroutine.create(function(PART)
  922. for i = 1, DURATION do
  923. Swait()
  924. PART.CFrame = PART.CFrame * ANGLES(RAD(ANGLE), 0, 0) * CF(0, POWER * Player_Size, 0)
  925. TrailEffect(BRICKCOLOR, MATERIAL, PART.CFrame, THELASTPOINT, "Cylinder", REFLECTANCE, SIZE * Player_Size, ANGLES(0, 0, 0), X * Player_Size, Y * Player_Size, Z * Player_Size, delay)
  926. THELASTPOINT = PART.CFrame
  927. end
  928. PART.Parent = nil
  929. end), EFFECTPART)
  930. end
  931.  
  932. --local list={}
  933. function Triangle(Color, Material, a, b, c, delay)
  934. local edge1 = (c - a):Dot((b - a).unit)
  935. local edge2 = (a - b):Dot((c - b).unit)
  936. local edge3 = (b - c):Dot((a - c).unit)
  937. if edge1 <= (b - a).magnitude and edge1 >= 0 then
  938. a, b, c=a, b, c
  939. elseif edge2 <= (c - b).magnitude and edge2 >= 0 then
  940. a, b, c=b, c, a
  941. elseif edge3 <= (a - c).magnitude and edge3 >= 0 then
  942. a, b, c=c, a, b
  943. else
  944. assert(false, "unreachable")
  945. end
  946. local len1 = (c - a):Dot((b - a).unit)
  947. local len2 = (b - a).magnitude - len1
  948. local width = (a + (b - a).unit * len1 - c).magnitude
  949. local maincf = CFrameFromTopBack(a, (b - a):Cross(c - b).unit, - (b - a).unit)
  950. if len1 > 1 / 100 then
  951. local sz = VT(0.2, width, len1)
  952. local w1 = CreatePart(3, Effects, Material, 0, 0.5, Color, "Trail", sz)
  953. local sp = CreateMesh("SpecialMesh", w1, "Wedge", "", "", VT(0, 1, 1) * sz / w1.Size, VT(0, 0, 0))
  954. w1.Anchored = true
  955. w1.CFrame = maincf * ANGLES(math.pi, 0, math.pi / 2) * CF(0, width / 2, len1 / 2)
  956. coroutine.resume(coroutine.create(function()
  957. for i = 0.5, 1, delay * (2 / Animation_Speed) do
  958. Swait()
  959. w1.Transparency = i
  960. end
  961. w1.Parent = nil
  962. end))
  963. game:GetService("Debris"):AddItem(w1, 10)
  964. --table.insert(list, w1)
  965. end
  966. if len2 > 1 / 100 then
  967. local sz = VT(0.2, width, len2)
  968. local w2 = CreatePart(3, Effects, Material, 0, 0.5, Color, "Trail", sz)
  969. local sp = CreateMesh("SpecialMesh", w2, "Wedge", "", "", VT(0, 1, 1) * sz / w2.Size, VT(0, 0, 0))
  970. w2.Anchored = true
  971. w2.CFrame = maincf * ANGLES(math.pi, math.pi, -math.pi / 2) * CF(0, width / 2, -len1 - len2 / 2)
  972. coroutine.resume(coroutine.create(function()
  973. for i = 0.5, 1, delay * (2 / Animation_Speed) do
  974. Swait()
  975. w2.Transparency = i
  976. end
  977. w2.Parent = nil
  978. end))
  979. game:GetService("Debris"):AddItem(w2, 10)
  980. --table.insert(list, w2)
  981. end
  982. --return unpack(list)
  983. end
  984.  
  985. --[[Usage:
  986. local Pos = Part
  987. local Offset = Part.CFrame * CF(0, 0, 0)
  988. local Color = "Institutional white"
  989. local Material = "Neon"
  990. local TheDelay = 0.01
  991. local Height = 4
  992. BLCF = Offset
  993. if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
  994. local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
  995. if a then game:GetService("Debris"):AddItem(a, 1) end
  996. if b then game:GetService("Debris"):AddItem(b, 1) end
  997. local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
  998. if a then game:GetService("Debris"):AddItem(a, 1) end
  999. if b then game:GetService("Debris"):AddItem(b, 1) end
  1000. SCFR = BLCF
  1001. elseif not SCFR then
  1002. SCFR = BLCF
  1003. end
  1004. --
  1005. BLCF = nil
  1006. SCFR = nil
  1007. --]]
  1008.  
  1009. --//=================================\\
  1010. --\\=================================//
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016. --//=================================\\
  1017. --|| RESIZE PLAYER
  1018. --\\=================================//
  1019.  
  1020. if Player_Size ~= 1 then
  1021. RootPart.Size = RootPart.Size * Player_Size
  1022. Torso.Size = Torso.Size * Player_Size
  1023. Head.Size = Head.Size * Player_Size
  1024. RightArm.Size = RightArm.Size * Player_Size
  1025. LeftArm.Size = LeftArm.Size * Player_Size
  1026. RightLeg.Size = RightLeg.Size * Player_Size
  1027. LeftLeg.Size = LeftLeg.Size * Player_Size
  1028. RootJoint.Parent = RootPart
  1029. Neck.Parent = Torso
  1030. RightShoulder.Parent = Torso
  1031. LeftShoulder.Parent = Torso
  1032. RightHip.Parent = Torso
  1033. LeftHip.Parent = Torso
  1034.  
  1035. RootJoint.C0 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0))
  1036. RootJoint.C1 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0))
  1037. Neck.C0 = NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0))
  1038. Neck.C1 = CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180))
  1039. RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0
  1040. LeftShoulder.C0 = CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0
  1041. if Disable_Moving_Arms == false then
  1042. RightShoulder.C1 = ANGLES(0, RAD(90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5)
  1043. LeftShoulder.C1 = ANGLES(0, RAD(-90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5)
  1044. else
  1045. RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  1046. LeftShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  1047. end
  1048. 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))
  1049. 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))
  1050. RightHip.C1 = CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
  1051. LeftHip.C1 = CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
  1052. --------------------
  1053. end
  1054.  
  1055.  
  1056. --//=================================\\
  1057. --\\=================================//
  1058.  
  1059.  
  1060.  
  1061.  
  1062. --//=================================\\
  1063. --|| WEAPON CREATION
  1064. --\\=================================//
  1065.  
  1066. if Player_Size ~= 1 then
  1067. for _, v in pairs (Weapon:GetChildren()) do
  1068. if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then
  1069. local p1 = v.Part1
  1070. v.Part1 = nil
  1071. local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components()
  1072. v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12)
  1073. v.Part1 = p1
  1074. elseif v.ClassName == "Part" then
  1075. for _, b in pairs (v:GetChildren()) do
  1076. if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then
  1077. b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size)
  1078. end
  1079. end
  1080. end
  1081. end
  1082. end
  1083.  
  1084. for _, c in pairs(Weapon:GetChildren()) do
  1085. if c.ClassName == "Part" then
  1086. c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  1087. end
  1088. end
  1089.  
  1090. Weapon.Parent = Character
  1091.  
  1092. Humanoid.Died:connect(function()
  1093. ATTACK = true
  1094. end)
  1095.  
  1096. print(Class_Name.." loaded.")
  1097.  
  1098. --//=================================\\
  1099. --\\=================================//
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105. --//=================================\\
  1106. --|| DAMAGE FUNCTIONS
  1107. --\\=================================//
  1108.  
  1109. function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
  1110. local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
  1111. STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
  1112. local BODYGYRO = IT("BodyGyro", STATPART)
  1113. local BODYPOSITION = IT("BodyPosition", STATPART)
  1114. BODYPOSITION.P = 2000
  1115. BODYPOSITION.D = 100
  1116. BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
  1117. if LABELTYPE == "Normal" then
  1118. BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
  1119. elseif LABELTYPE == "Debuff" then
  1120. BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2))
  1121. elseif LABELTYPE == "Interruption" then
  1122. BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2))
  1123. end
  1124. game:GetService("Debris"):AddItem(STATPART ,5)
  1125. local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
  1126. BILLBOARDGUI.Adornee = STATPART
  1127. BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
  1128. BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
  1129. BILLBOARDGUI.AlwaysOnTop = false
  1130. local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
  1131. TEXTLABEL.BackgroundTransparency = 1
  1132. TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
  1133. TEXTLABEL.Text = TEXT
  1134. TEXTLABEL.Font = "SourceSans"
  1135. TEXTLABEL.FontSize="Size42"
  1136. TEXTLABEL.TextColor3 = COLOR
  1137. TEXTLABEL.TextStrokeTransparency = 0
  1138. TEXTLABEL.TextScaled = true
  1139. TEXTLABEL.TextWrapped = true
  1140. coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
  1141. wait(0.2)
  1142. for i=1, 5 do
  1143. wait()
  1144. THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0)
  1145. end
  1146. wait(1.2)
  1147. for i=1, 5 do
  1148. wait()
  1149. THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2
  1150. THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2
  1151. THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0)
  1152. end
  1153. THEPART.Parent = nil
  1154. end),STATPART, BODYPOSITION, TEXTLABEL)
  1155. end
  1156.  
  1157. function IncreaseOrDecreaseStat(LOCATION, STAT, AMOUNT, DURATION, SHOWTHESTAT)
  1158. if LOCATION:FindFirstChild("Stats") ~= nil then
  1159. if LOCATION.Stats:FindFirstChild("Block") ~= nil then
  1160. if LOCATION.Stats:FindFirstChild("Block").Value == true then
  1161. return
  1162. end
  1163. end
  1164. if LOCATION.Stats:FindFirstChild("ChangeStat") ~= nil and LOCATION.Stats:FindFirstChild("Block").Value == false then
  1165. local NewStatChange = IT("NumberValue")
  1166. NewStatChange.Value = AMOUNT
  1167. if STAT == "Defense" then
  1168. NewStatChange.Name = "ChangeDefense"
  1169. elseif STAT == "Damage" then
  1170. NewStatChange.Name = "ChangeDamage"
  1171. elseif STAT == "Movement" then
  1172. NewStatChange.Name = "ChangeMovement"
  1173. end
  1174. if SHOWTHESTAT == true then
  1175. if AMOUNT < 0 then
  1176. StatLabel("Debuff", LOCATION.Head.CFrame * CF(0, 0 + (LOCATION.Head.Size.z - 1), 0), "-"..STAT, C3(1, 1, 1))
  1177. elseif AMOUNT > 0 then
  1178. StatLabel("Debuff", LOCATION.Head.CFrame * CF(0, 0 + (LOCATION.Head.Size.z - 1), 0), "+"..STAT, C3(1, 1, 1))
  1179. end
  1180. end
  1181. if DURATION ~= nil and DURATION ~= 0 then
  1182. local StatDuration = IT("NumberValue")
  1183. StatDuration.Name = "Duration"
  1184. StatDuration.Value = DURATION
  1185. StatDuration.Parent = NewStatChange
  1186. end
  1187. NewStatChange.Parent = LOCATION.Stats:FindFirstChild("ChangeStat")
  1188. end
  1189. end
  1190. end
  1191.  
  1192. --Usage: DamageFunction(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, hit, false, 5, 10, MRANDOM(5, 10), "Normal", Part, 0.5, false, true, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
  1193. function DamageFunction(HITWEAPONSOUND, HITARMORSOUND, HITBLOCKSOUND, HITPLAYERSOUND, HITWEAPONSOUNDPITCH, HITARMORSOUNDPITCH, HITBLOCKSOUNDPITCH, HITPLAYERSOUNDPITCH, HIT, HITEVENWHENDEAD, MINIMUMDAMAGE, MAXIMUMDAMAGE, KNOCKBACK, TYPE, PROPERTY, DELAY, KNOCKBACKTYPE, INCREASESTUN, STAGGER, STAGGERHIT, RANGED, DECREASETHESTAT, DECREASEAMOUNT, DECREASEDURATION, SHOWDECREASEDSTAT)
  1194. if HIT.Parent == nil then
  1195. return
  1196. end
  1197. local HITHUMANOID = HIT.Parent:FindFirstChild("Humanoid")
  1198. for _, v in pairs(HIT.Parent:GetChildren()) do
  1199. if v:IsA("Humanoid") then
  1200. HITHUMANOID = v
  1201. end
  1202. end
  1203. if HIT.Name == "Hitbox" and RANGED ~= true and HIT.Parent ~= Weapon and Enable_Stagger_Hit == true then
  1204. StaggerHit.Value = true
  1205. if Play_Hitbox_Hit_Sound == true then
  1206. if HITWEAPONSOUND ~= "" and HITWEAPONSOUND ~= "nil" then
  1207. CreateSound(HITWEAPONSOUND, HIT, 1, HITWEAPONSOUNDPITCH)
  1208. end
  1209. end
  1210. return
  1211. end
  1212. if HIT.Parent.Parent:FindFirstChild("Torso") ~= nil or HIT.Parent.Parent:FindFirstChild("UpperTorso") ~= nil then
  1213. HITHUMANOID = HIT.Parent.Parent:FindFirstChild("Humanoid")
  1214. end
  1215. if HIT.Parent.ClassName == "Hat" or HIT.ClassName == "Accessory" then
  1216. HIT = HIT.Parent.Parent:FindFirstChild("Head")
  1217. end
  1218. if HITHUMANOID ~= nil and HIT.Parent.Name ~= Character.Name and (HIT.Parent:FindFirstChild("Torso") ~= nil or HIT.Parent:FindFirstChild("UpperTorso") ~= nil) then
  1219. if HIT.Parent:FindFirstChild("DebounceHit") ~= nil then
  1220. if HIT.Parent.DebounceHit.Value == true then
  1221. return
  1222. end
  1223. end
  1224. if AntiTeamKill.Value == true then
  1225. if Player.Neutral == false and game.Players:GetPlayerFromCharacter(HIT.Parent) ~= nil then
  1226. if game.Players:GetPlayerFromCharacter(HIT.Parent).TeamColor == Player.TeamColor then
  1227. return
  1228. end
  1229. end
  1230. end
  1231. if HITEVENWHENDEAD == false then
  1232. if HIT.Parent:FindFirstChild("Humanoid") ~= nil then
  1233. if HIT.Parent:FindFirstChild("Humanoid").Health <= 0 then
  1234. return
  1235. end
  1236. end
  1237. end
  1238. if HIT.Parent:FindFirstChild("Stats") ~= nil then
  1239. if HIT.Parent.Stats:FindFirstChild("StunValue") ~= nil then
  1240. HIT.Parent.Stats:FindFirstChild("StunValue").Value = HIT.Parent.Stats:FindFirstChild("StunValue").Value + INCREASESTUN
  1241. end
  1242. end
  1243. if HIT.Parent:FindFirstChild("Stats") ~= nil then
  1244. if HIT.Parent.Stats:FindFirstChild("Stagger") ~= nil then
  1245. if STAGGER == true and Enable_Stagger == true then
  1246. HIT.Parent.Stats:FindFirstChild("Stagger").Value = true
  1247. end
  1248. end
  1249. end
  1250. if HIT.Parent:FindFirstChild("Stats") ~= nil then
  1251. if HIT.Parent.Stats:FindFirstChild("Block") ~= nil then
  1252. if HIT.Parent.Stats:FindFirstChild("Block").Value == true then
  1253. HASBEENBLOCKED = true
  1254. if HIT.Parent.Stats:FindFirstChild("Block"):FindFirstChild("BlockDebounce") == nil then
  1255. StatLabel("Interruption", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Blocked!", C3(0, 100 / 255, 255 / 255))
  1256. if RANGED ~= true then
  1257. if HITBLOCKSOUND ~= "" and HITBLOCKSOUND ~= "nil" then
  1258. CreateSound(HITBLOCKSOUND, HIT, 1, HITBLOCKSOUNDPITCH)
  1259. end
  1260. end
  1261. local BlockDebounce = IT("BoolValue", HIT.Parent.Stats:FindFirstChild("Block"))
  1262. BlockDebounce.Name = "BlockDebounce"
  1263. BlockDebounce.Value = true
  1264. if RANGED ~= true then
  1265. game:GetService("Debris"):AddItem(BlockDebounce, 0.5)
  1266. else
  1267. game:GetService("Debris"):AddItem(BlockDebounce, 0.1)
  1268. end
  1269. end
  1270. if RANGED ~= true and Enable_Stagger == true then
  1271. HIT.Parent.Stats:FindFirstChild("Block").Value = false
  1272. Stagger.Value = true
  1273. end
  1274. return
  1275. end
  1276. end
  1277. end
  1278. if DECREASETHESTAT ~= nil then
  1279. if HIT.Parent:FindFirstChild("Stats") ~= nil then
  1280. IncreaseOrDecreaseStat(HIT.Parent, DECREASETHESTAT, DECREASEAMOUNT, DECREASEDURATION, SHOWDECREASEDSTAT)
  1281. end
  1282. end
  1283. local DAMAGE = MRANDOM(MINIMUMDAMAGE,MAXIMUMDAMAGE) * Damage.Value
  1284. if HIT.Parent:FindFirstChild("Stats") ~= nil then
  1285. if HIT.Parent.Stats:FindFirstChild("Defense") ~= nil then
  1286. if CanPenetrateArmor.Value == true then
  1287. DAMAGE = DAMAGE
  1288. else
  1289. DAMAGE = DAMAGE / HIT.Parent.Stats:FindFirstChild("Defense").Value
  1290. end
  1291. elseif HIT.Parent.Stats:FindFirstChild("Defense") == nil then
  1292. DAMAGE = DAMAGE
  1293. end
  1294. end
  1295. if CanCrit.Value == true then
  1296. CRITCHANCENUMBER = MRANDOM(1, CritChance.Value)
  1297. if CRITCHANCENUMBER == 1 then
  1298. DAMAGE = DAMAGE * 2
  1299. end
  1300. end
  1301. DAMAGE = math.floor(DAMAGE)
  1302. if HASBEENBLOCKED == false then
  1303. HITHUMANOID.Health = HITHUMANOID.Health - DAMAGE
  1304. end
  1305. if DAMAGE <= 3 and HASBEENBLOCKED == false then
  1306. if STAGGERHIT == true and Enable_Stagger_Hit == true and RANGED ~= true then
  1307. StaggerHit.Value = true
  1308. end
  1309. if HITARMORSOUND ~= "" and HITARMORSOUND ~= "nil" then
  1310. CreateSound(HITARMORSOUND, HIT, 1, HITARMORSOUNDPITCH)
  1311. end
  1312. elseif DAMAGE > 3 and HASBEENBLOCKED == false then
  1313. if HITPLAYERSOUND ~= "" and HITPLAYERSOUND ~= "nil" then
  1314. CreateSound(HITPLAYERSOUND, HIT, 1, HITPLAYERSOUNDPITCH)
  1315. end
  1316. end
  1317. if DAMAGE > 3 and DAMAGE < 20 and HASBEENBLOCKED == false then
  1318. if CanCrit.Value == true and CRITCHANCENUMBER == 1 then
  1319. StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0))
  1320. CreateSound("296102734", HIT, 1, 1)
  1321. else
  1322. StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(255/255, 220/255, 0))
  1323. end
  1324. elseif DAMAGE >= 20 and HASBEENBLOCKED == false then
  1325. if CanCrit.Value == true and CRITCHANCENUMBER == 1 then
  1326. StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0))
  1327. CreateSound("296102734", HIT, 1, 1)
  1328. else
  1329. StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(255/255, 0, 0))
  1330. end
  1331. elseif DAMAGE <= 3 and HASBEENBLOCKED == false then
  1332. if CanCrit.Value == true and CRITCHANCENUMBER == 1 then
  1333. StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0))
  1334. CreateSound("296102734", HIT, 1, 1)
  1335. else
  1336. StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(225/255, 225/255, 225/255))
  1337. end
  1338. end
  1339. if TYPE == "Normal" then
  1340. local vp = IT("BodyVelocity")
  1341. vp.P=500
  1342. vp.maxForce = VT(math.huge, 0, math.huge)
  1343. if KNOCKBACKTYPE == 1 then
  1344. vp.Velocity = PROPERTY.CFrame.lookVector * KNOCKBACK + PROPERTY.Velocity / 1.05
  1345. elseif KNOCKBACKTYPE == 2 then
  1346. vp.Velocity = PROPERTY.CFrame.lookVector * KNOCKBACK
  1347. end
  1348. if KNOCKBACK > 0 and HASBEENBLOCKED == false then
  1349. vp.Parent = HIT--.Parent.Torso
  1350. end
  1351. game:GetService("Debris"):AddItem(vp, 0.5)
  1352. end
  1353. HASBEENBLOCKED = false
  1354. RecentEnemy.Value = HIT.Parent
  1355. local DebounceHit = IT("BoolValue", HIT.Parent)
  1356. DebounceHit.Name = "DebounceHit"
  1357. DebounceHit.Value = true
  1358. game:GetService("Debris"):AddItem(DebounceHit, DELAY)
  1359. end
  1360. end
  1361.  
  1362. --Usage: MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Part, 5, true, 5, 10, MRANDOM(5, 10), "Normal", Part, 0.5, false, true, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
  1363. function MagnitudeDamage(HITWEAPONSOUND, HITARMORSOUND, HITBLOCKSOUND, HITPLAYERSOUND, HITWEAPONSOUNDPITCH, HITARMORSOUNDPITCH, HITBLOCKSOUNDPITCH, HITPLAYERSOUNDPITCH, PART, MAGNITUDE, HITEVENWHENDEAD, MINIMUMDAMAGE, MAXIMUMDAMAGE, KNOCKBACK, TYPE, PROPERTY, DELAY, KNOCKBACKTYPE, INCREASESTUN, STAGGER, STAGGERHIT, RANGED, MAGNITUDEDECREASETHESTAT, MAGNITUDEDECREASEAMOUNT, MAGNITUDEDECREASEDURATION, MAGNITUDESHOWDECREASEDSTAT)
  1364. for _, c in pairs(workspace:GetChildren()) do
  1365. local HUMANOID = c:FindFirstChild("Humanoid")
  1366. local HEAD = nil
  1367. if HUMANOID ~= nil then
  1368. for _, d in pairs(c:GetChildren()) do
  1369. if d.ClassName == "Model" and RANGED ~= true then
  1370. HEAD = d:FindFirstChild("Hitbox")
  1371. if HEAD ~= nil then
  1372. local THEMAGNITUDE = (HEAD.Position - PART.Position).magnitude
  1373. if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then
  1374. if Play_Hitbox_Hit_Sound == true then
  1375. local HitRefpart = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
  1376. HitRefpart.Anchored = true
  1377. HitRefpart.CFrame = CF(HEAD.Position)
  1378. CreateSound(HITWEAPONSOUND, HitRefpart, 1, HITWEAPONSOUNDPITCH)
  1379. end
  1380. if Enable_Stagger_Hit == true then
  1381. StaggerHit.Value = true
  1382. end
  1383. end
  1384. end
  1385. elseif d:IsA"BasePart" then
  1386. HEAD = d
  1387. if HEAD ~= nil then
  1388. local THEMAGNITUDE = (HEAD.Position - PART.Position).magnitude
  1389. if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then
  1390. DamageFunction(HITWEAPONSOUND, HITARMORSOUND, HITBLOCKSOUND, HITPLAYERSOUND, HITWEAPONSOUNDPITCH, HITARMORSOUNDPITCH, HITBLOCKSOUNDPITCH, HITPLAYERSOUNDPITCH, HEAD, HITEVENWHENDEAD, MINIMUMDAMAGE, MAXIMUMDAMAGE, KNOCKBACK, TYPE, PROPERTY, DELAY, KNOCKBACKTYPE, INCREASESTUN, STAGGER, STAGGERHIT, RANGED, MAGNITUDEDECREASETHESTAT, MAGNITUDEDECREASEAMOUNT, MAGNITUDEDECREASEDURATION, MAGNITUDESHOWDECREASEDSTAT)
  1391. end
  1392. end
  1393. end
  1394. end
  1395. end
  1396. end
  1397. end
  1398.  
  1399. --Usage: MagnitudeBuffOrDebuff(Part, 5, "Defense", -0.1, 3, true, true)
  1400. function MagnitudeBuffOrDebuff(PART, MAGNITUDE, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF, APPLYTOOTHERSINSTEAD)
  1401. if Player.Neutral == true then
  1402. IncreaseOrDecreaseStat(Character, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF)
  1403. end
  1404. for _, c in pairs(workspace:GetChildren()) do
  1405. local HUMANOID = c:FindFirstChild("Humanoid")
  1406. local THEHEAD = nil
  1407. if HUMANOID ~= nil then
  1408. if c:FindFirstChild("Torso") ~= nil then
  1409. THEHEAD = c:FindFirstChild("Torso")
  1410. elseif c:FindFirstChild("UpperTorso") ~= nil then
  1411. THEHEAD = c:FindFirstChild("UpperTorso")
  1412. end
  1413. if THEHEAD ~= nil then
  1414. local THEMAGNITUDE = (THEHEAD.Position - PART.Position).magnitude
  1415. print("yes 1")
  1416. if APPLYTOOTHERSINSTEAD == true then
  1417. if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then
  1418. if Player.Neutral == false and game.Players:GetPlayerFromCharacter(THEHEAD.Parent) ~= nil then
  1419. if game.Players:GetPlayerFromCharacter(THEHEAD.Parent).TeamColor == Player.TeamColor then
  1420. IncreaseOrDecreaseStat(THEHEAD.Parent, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF)
  1421. end
  1422. end
  1423. end
  1424. elseif APPLYTOOTHERSINSTEAD == false then
  1425. if THEMAGNITUDE <= (MAGNITUDE * Player_Size) then
  1426. if Player.Neutral == false and game.Players:GetPlayerFromCharacter(THEHEAD.Parent) ~= nil then
  1427. if game.Players:GetPlayerFromCharacter(THEHEAD.Parent).TeamColor == Player.TeamColor then
  1428. IncreaseOrDecreaseStat(THEHEAD.Parent, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF)
  1429. end
  1430. end
  1431. end
  1432. end
  1433. end
  1434. end
  1435. end
  1436. end
  1437.  
  1438. --//=================================\\
  1439. --\\=================================//
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445. --//=================================\\
  1446. --|| WEAPON GUI
  1447. --\\=================================//
  1448.  
  1449. local MANABAR = CreateFrame(WEAPONGUI, Mana_Bar_Background_Transparency, 2, UD2(0.23, 0, 0.82, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_8.r, Custom_Colors.Custom_Color_8.g, Custom_Colors.Custom_Color_8.b), C3(0, 0, 0),"Mana Bar")
  1450. local MANACOVER = CreateFrame(MANABAR, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_5.r, Custom_Colors.Custom_Color_5.g, Custom_Colors.Custom_Color_5.b), C3(0, 0, 0),"Mana Cover")
  1451. local MANATEXT = CreateLabel(MANABAR, Mana_Name.." ["..FLOOR(Mana.Value).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Mana Text")
  1452.  
  1453. local HEALTHBAR = CreateFrame(WEAPONGUI, Health_Bar_Background_Transparency, 2, UD2(0.5, 0, 0.82, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_11.r, Custom_Colors.Custom_Color_11.g, Custom_Colors.Custom_Color_11.b), C3(0, 0, 0), "Health Bar")
  1454. local HEALTHCOVER = CreateFrame(HEALTHBAR, 0, 2,UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_6.r, Custom_Colors.Custom_Color_6.g, Custom_Colors.Custom_Color_6.b), C3(0, 0, 0), "Health Cover")
  1455. local HEALTHTEXT = CreateLabel(HEALTHBAR, "Health ["..FLOOR(Humanoid.Health).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Health Text")
  1456.  
  1457. local STUNFRAME = CreateFrame(nil, Stun_Bar_Background_Transparency, 2, UD2(0.5, 0, 0.78, 0),UD2(0.26, 0, 0, 0),C3(Custom_Colors.Custom_Color_10.r, Custom_Colors.Custom_Color_10.g, Custom_Colors.Custom_Color_10.b), C3(0, 0, 0), "Stun Frame")
  1458. local STUNBAR = CreateFrame(STUNFRAME, 0, 2, UD2(0, 0, 0, 0),UD2(0, 0, 1, 0),C3(Custom_Colors.Custom_Color_7.r, Custom_Colors.Custom_Color_7.g, Custom_Colors.Custom_Color_7.b), C3(0, 0, 0), "Stun Bar")
  1459. local STUNTEXT = CreateLabel(STUNFRAME, "Stun ["..FLOOR(StunValue.Value).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Stun Text")
  1460.  
  1461. local SECONDARYMANABAR = CreateFrame(nil, Secondary_Mana_Bar_Background_Transparency, 2, UD2(0.23, 0, 0.78, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_9.r, Custom_Colors.Custom_Color_9.g, Custom_Colors.Custom_Color_9.b), C3(0, 0, 0),"Secondary Mana Bar")
  1462. local SECONDARYMANACOVER = CreateFrame(SECONDARYMANABAR, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_4.r, Custom_Colors.Custom_Color_4.g, Custom_Colors.Custom_Color_4.b), C3(0, 0, 0),"Secondary Mana Cover")
  1463. local SECONDARYMANATEXT = CreateLabel(SECONDARYMANABAR, Secondary_Mana_Name.." ["..FLOOR(SecondaryMana.Value).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Secondary Mana Text")
  1464.  
  1465. local DEFENSEFRAME = CreateFrame(nil, Stat_Background_Transparency, 2, UD2(0.23, 0, Stat_Offset, 0), UD2(0.075, 0, 0, 0), C3(100 / 255, 100 / 255, 255 / 255), C3(0, 0, 0),"Defense Frame")
  1466. local DEFENSETEXT = CreateLabel(DEFENSEFRAME, "Defense ["..(Defense.Value * 100).."%]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Defense Text")
  1467.  
  1468. local DAMAGEFRAME = CreateFrame(nil, Stat_Background_Transparency, 2, UD2(0.456, 0, Stat_Offset, 0), UD2(0.075, 0, 0, 0), C3(255 / 255, 100 / 255, 100 / 255), C3(0, 0, 0),"Damage Frame")
  1469. local DAMAGETEXT = CreateLabel(DAMAGEFRAME, "Damage ["..(Damage.Value * 100).."%]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Damage Text")
  1470.  
  1471. local MOVEMENTFRAME = CreateFrame(nil, Stat_Background_Transparency, 2, UD2(0.685, 0, Stat_Offset, 0), UD2(0.075, 0, 0, 0), C3(100 / 255, 255 / 255, 100 / 255), C3(0, 0, 0),"Movement Frame")
  1472. local MOVEMENTTEXT = CreateLabel(MOVEMENTFRAME, "Movement ["..(Movement.Value * 100).."%]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Movement Text")
  1473.  
  1474. local SKILL1FRAME = CreateFrame(nil, Ability_Background_Transparency, 2, UD2(0.23, 0, 0.86, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_12.r, Custom_Colors.Custom_Color_12.g, Custom_Colors.Custom_Color_12.b), C3(0, 0, 0), "Skill 1 Frame")
  1475. local SKILL2FRAME = CreateFrame(nil, Ability_Background_Transparency, 2, UD2(0.50, 0, 0.86, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_12.r, Custom_Colors.Custom_Color_12.g, Custom_Colors.Custom_Color_12.b), C3(0, 0, 0), "Skill 2 Frame")
  1476. local SKILL3FRAME = CreateFrame(nil, Ability_Background_Transparency, 2, UD2(0.23, 0, 0.93, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_12.r, Custom_Colors.Custom_Color_12.g, Custom_Colors.Custom_Color_12.b), C3(0, 0, 0), "Skill 3 Frame")
  1477. local SKILL4FRAME = CreateFrame(nil, Ability_Background_Transparency, 2, UD2(0.50, 0, 0.93, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_12.r, Custom_Colors.Custom_Color_12.g, Custom_Colors.Custom_Color_12.b), C3(0, 0, 0), "Skill 4 Frame")
  1478.  
  1479. local SKILL1BAR = CreateFrame(SKILL1FRAME, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_3.r, Custom_Colors.Custom_Color_3.g, Custom_Colors.Custom_Color_3.b), C3(0, 0, 0), "Skill 1 Bar")
  1480. local SKILL2BAR = CreateFrame(SKILL2FRAME, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_3.r, Custom_Colors.Custom_Color_3.g, Custom_Colors.Custom_Color_3.b), C3(0, 0, 0), "Skill 2 Bar")
  1481. local SKILL3BAR = CreateFrame(SKILL3FRAME, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_3.r, Custom_Colors.Custom_Color_3.g, Custom_Colors.Custom_Color_3.b), C3(0, 0, 0), "Skill 3 Bar")
  1482. local SKILL4BAR = CreateFrame(SKILL4FRAME, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_3.r, Custom_Colors.Custom_Color_3.g, Custom_Colors.Custom_Color_3.b), C3(0, 0, 0), "Skill 4 Bar")
  1483.  
  1484. local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Ability 1", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 1")
  1485. local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[X] Ability 2", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 2")
  1486. local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 3")
  1487. local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 4")
  1488.  
  1489. local Gun = CreatePart(3, Weapon, "SmoothPlastic", 0, 0, "Really black", "Handle", VT(0, 0, 0))
  1490. local HandleMesh = CreateMesh("SpecialMesh", Gun, "FileMesh", "72012879", "72012859", VT(2,2,2), VT(0,0, 0))
  1491. local Weld = CreateWeldOrSnapOrMotor("Weld", Gun, RightArm, Gun, CF(0 * Player_Size, -1.6 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0))
  1492.  
  1493. local GunPoint = CreatePart(3, Weapon, "SmoothPlastic", 0, 1, "Really black", "Handle", VT(0, 0, 0))
  1494. local HandleWeld = CreateWeldOrSnapOrMotor("Weld", GunPoint, RightArm, GunPoint, CF(0 * Player_Size, -2.6 * Player_Size, -0.6 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(135)), CF(0, 0, 0))
  1495.  
  1496. if Enable_Gui == true then
  1497. WEAPONGUI.Parent = PlayerGui
  1498. end
  1499.  
  1500. if Enable_Stats == true and Show_Stats == true then
  1501. DEFENSEFRAME.Parent = WEAPONGUI
  1502. DAMAGEFRAME.Parent = WEAPONGUI
  1503. MOVEMENTFRAME.Parent = WEAPONGUI
  1504. end
  1505.  
  1506. if Enable_Secondary_Bar == true then
  1507. SECONDARYMANABAR.Parent = WEAPONGUI
  1508. end
  1509.  
  1510. if Enable_Abilities == true then
  1511. SKILL1FRAME.Parent = WEAPONGUI
  1512. SKILL2FRAME.Parent = WEAPONGUI
  1513. SKILL3FRAME.Parent = WEAPONGUI
  1514. SKILL4FRAME.Parent = WEAPONGUI
  1515. end
  1516.  
  1517. if Enable_Stun == true then
  1518. STUNFRAME.Parent = WEAPONGUI
  1519. end
  1520.  
  1521. function UpdateGUI()
  1522. MANABAR:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1523. MANACOVER:TweenSize(UD2(1 * (Mana.Value / Max_Mana), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1524. MANATEXT.Text = Mana_Name.." ["..FLOOR(Mana.Value).."]"
  1525. HEALTHBAR:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1526. HEALTHCOVER:TweenSize(UD2(1 * (Humanoid.Health / Humanoid.MaxHealth), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1527. HEALTHTEXT.Text = "Health ["..FLOOR(Humanoid.Health).."]"
  1528. if Enable_Abilities == true then
  1529. SKILL1FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1530. SKILL2FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1531. SKILL3FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1532. SKILL4FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1533. SKILL1BAR:TweenSize(UD2(1 * (CO1 / Cooldown_1), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1534. SKILL2BAR:TweenSize(UD2(1 * (CO2 / Cooldown_2), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1535. SKILL3BAR:TweenSize(UD2(1 * (CO3 / Cooldown_3), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1536. SKILL4BAR:TweenSize(UD2(1 * (CO4 / Cooldown_4), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1537. end
  1538. if Enable_Stats == true and Show_Stats == true then
  1539. DEFENSEFRAME:TweenSize(UD2(0.075, 0, 0.03), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1540. DEFENSETEXT.Text = "Defense ["..(Defense.Value * 100).."%]"
  1541. DAMAGEFRAME:TweenSize(UD2(0.075, 0, 0.03), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1542. DAMAGETEXT.Text = "Damage ["..(Damage.Value * 100).."%]"
  1543. MOVEMENTFRAME:TweenSize(UD2(0.075, 0, 0.03), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1544. MOVEMENTTEXT.Text = "Movement ["..(Movement.Value * 100).."%]"
  1545. end
  1546. if Enable_Stun == true then
  1547. STUNFRAME:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1548. STUNBAR:TweenSize(UD2(1 * (StunValue.Value / Max_Stun), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1549. STUNTEXT.Text = "Stun ["..FLOOR(StunValue.Value).."]"
  1550. end
  1551. if Enable_Secondary_Bar == true then
  1552. SECONDARYMANABAR:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1553. SECONDARYMANACOVER:TweenSize(UD2(1 * (SecondaryMana.Value / Max_Secondary_Mana), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
  1554. SECONDARYMANATEXT.Text = Secondary_Mana_Name.." ["..FLOOR(SecondaryMana.Value).."]"
  1555. end
  1556. end
  1557.  
  1558. if Enable_Gui == true then
  1559. UpdateGUI()
  1560. for _, v in pairs (WEAPONGUI:GetChildren()) do
  1561. if v.ClassName == "Frame" then
  1562. for _, b in pairs (v:GetChildren()) do
  1563. if b.ClassName == "TextLabel" then
  1564. coroutine.resume(coroutine.create(function(THETEXTLABEL)
  1565. wait(Menu_Update_Speed)
  1566. for i = 1, 0, -0.1 do
  1567. Swait()
  1568. THETEXTLABEL.TextTransparency = i
  1569. THETEXTLABEL.TextStrokeTransparency = i
  1570. end
  1571. THETEXTLABEL.TextTransparency = 0
  1572. THETEXTLABEL.TextStrokeTransparency = 0
  1573. end), b)
  1574. end
  1575. end
  1576. end
  1577. end
  1578. end
  1579.  
  1580. --//=================================\\
  1581. --\\=================================//
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587. --//=================================\\
  1588. --|| SKILL FUNCTIONS
  1589. --\\=================================//
  1590.  
  1591. function UpdateSkillsAndStuff()
  1592. if Mana_Regen_Mode == "1" then
  1593. if Mana.Value >= Max_Mana then
  1594. Mana.Value = Max_Mana
  1595. elseif Mana.Value < 0 then
  1596. Mana.Value = 0
  1597. else
  1598. if MANADELAYNUMBER <= Mana_Wait then
  1599. MANADELAYNUMBER = MANADELAYNUMBER + 1
  1600. else
  1601. MANADELAYNUMBER = 0
  1602. Mana.Value = Mana.Value + Recover_Mana
  1603. end
  1604. end
  1605. elseif Mana_Regen_Mode == "2" then
  1606. if Mana.Value <= Max_Mana then
  1607. Mana.Value = Mana.Value + (Recover_Mana / 30) / Animation_Speed
  1608. elseif Mana.Value >= Max_Mana then
  1609. Mana.Value = Max_Mana
  1610. elseif Mana.Value < 0 then
  1611. Mana.Value = 0
  1612. end
  1613. end
  1614. if Enable_Secondary_Bar == true then
  1615. if Secondary_Mana_Regen_Mode == "1" then
  1616. if SecondaryMana.Value >= Max_Secondary_Mana then
  1617. SecondaryMana.Value = Max_Secondary_Mana
  1618. elseif SecondaryMana.Value < 0 then
  1619. SecondaryMana.Value = 0
  1620. else
  1621. if SECONDARYMANADELAYNUMBER <= Secondary_Mana_Wait then
  1622. SECONDARYMANADELAYNUMBER = SECONDARYMANADELAYNUMBER + 1
  1623. else
  1624. SECONDARYMANADELAYNUMBER = 0
  1625. SecondaryMana.Value = SecondaryMana.Value + Recover_Secondary_Mana
  1626. end
  1627. end
  1628. elseif Secondary_Mana_Regen_Mode == "2" then
  1629. if SecondaryMana.Value <= Max_Secondary_Mana then
  1630. SecondaryMana.Value = SecondaryMana.Value + (Recover_Secondary_Mana / 30) / Animation_Speed
  1631. elseif SecondaryMana.Value >= Max_Secondary_Mana then
  1632. SecondaryMana.Value = Max_Secondary_Mana
  1633. elseif SecondaryMana.Value < 0 then
  1634. SecondaryMana.Value = 0
  1635. end
  1636. end
  1637. else
  1638. SecondaryMana.Value = 0
  1639. end
  1640. if Enable_Stun == true then
  1641. if Stun_Lose_Mode == "1" then
  1642. if StunValue.Value > Max_Stun then
  1643. StunValue.Value = Max_Stun
  1644. elseif StunValue.Value <= 0 then
  1645. StunValue.Value = 0
  1646. else
  1647. if STUNDELAYNUMBER <= Stun_Wait then
  1648. STUNDELAYNUMBER = STUNDELAYNUMBER + 1
  1649. else
  1650. STUNDELAYNUMBER = 0
  1651. StunValue.Value = StunValue.Value - Lose_Stun
  1652. end
  1653. end
  1654. elseif Stun_Lose_Mode == "2" then
  1655. if StunValue.Value <= Max_Stun and StunValue.Value > 0 then
  1656. StunValue.Value = StunValue.Value - (Lose_Stun / 30) / Animation_Speed
  1657. elseif StunValue.Value > Max_Stun then
  1658. StunValue.Value = Max_Stun
  1659. elseif StunValue.Value <= 0 then
  1660. StunValue.Value = 0
  1661. end
  1662. end
  1663. else
  1664. StunValue.Value = 0
  1665. end
  1666. if Enable_Abilities == true then
  1667. if CO1 <= Cooldown_1 then
  1668. CO1 = CO1 + (1 / 30) / Animation_Speed
  1669. elseif CO1 >= Cooldown_1 then
  1670. CO1 = Cooldown_1
  1671. end
  1672. if CO2 <= Cooldown_2 then
  1673. CO2 = CO2 + (1 / 30) / Animation_Speed
  1674. elseif CO2 >= Cooldown_2 then
  1675. CO2 = Cooldown_2
  1676. end
  1677. if CO3 <= Cooldown_3 then
  1678. CO3 = CO3 + (1 / 30) / Animation_Speed
  1679. elseif CO3 >= Cooldown_3 then
  1680. CO3 = Cooldown_3
  1681. end
  1682. if CO4 <= Cooldown_4 then
  1683. CO4 = CO4 + (1 / 30) / Animation_Speed
  1684. elseif CO4 >= Cooldown_4 then
  1685. CO4 = Cooldown_4
  1686. end
  1687. end
  1688. end
  1689.  
  1690. --//=================================\\
  1691. --\\=================================//
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697. --//=================================\\
  1698. --|| ATTACK FUNCTIONS AND STUFF
  1699. --\\=================================//
  1700.  
  1701. function StaggerHitAnimation()
  1702. ATTACK = true
  1703. if Weapon:FindFirstChild("Hitbox") ~= nil then
  1704. for i = 1, MRANDOM(2, 4) do
  1705. ClangEffect("Bright yellow", "Neon", CF(Weapon:FindFirstChild("Hitbox").Position) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), 20, 5, 0.2, MRANDOM(5, 15) / 10, 0, -0.02, 0, -0.02, 0.1)
  1706. end
  1707. end
  1708. for i = 0, 1, 0.1 / Animation_Speed do
  1709. Swait()
  1710. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-10), RAD(0), RAD(-30)), 0.3 / Animation_Speed)
  1711. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(30)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.3 / Animation_Speed)
  1712. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-30), RAD(0), RAD(60)) * ANGLES(RAD(0), RAD(-30), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
  1713. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-20)) * ANGLES(RAD(0), RAD(20), RAD(0)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
  1714. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.9 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
  1715. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1.1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(10)), 0.3 / Animation_Speed)
  1716. if Stagger.Value == true or Stun.Value == true then
  1717. break
  1718. end
  1719. end
  1720. ATTACK = false
  1721. end
  1722.  
  1723. function StaggerAnimation()
  1724. ATTACK = true
  1725. if Weapon:FindFirstChild("Hitbox") ~= nil then
  1726. for i = 1, MRANDOM(2, 4) do
  1727. ClangEffect("Bright yellow", "Neon", CF(Weapon:FindFirstChild("Hitbox").Position) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), 20, 5, 0.2, MRANDOM(5, 15) / 10, 0, -0.02, 0, -0.02, 0.1)
  1728. end
  1729. end
  1730. DISABLEJUMPING = true
  1731. COMBO = 1
  1732. StatLabel("Interruption", Head.CFrame * CF(0, 0 + (Head.Size.z - 1), 0), "Staggered!", C3(255 / 255, 255 / 255, 0))
  1733. local STAGGERVELOCITY = Instance.new("BodyVelocity",Torso)
  1734. STAGGERVELOCITY.P = 500
  1735. STAGGERVELOCITY.maxForce = VT(math.huge, 0, math.huge)
  1736. if Rooted.Value == false then
  1737. STAGGERVELOCITY.Velocity = RootPart.CFrame.lookVector * -40
  1738. end
  1739. for i = 0, 1, 0.35 / Animation_Speed do
  1740. Swait()
  1741. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
  1742. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(2.5), RAD(0), RAD(20)), 0.3 / Animation_Speed)
  1743. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size,0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(30)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
  1744. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size,0 * Player_Size) * ANGLES(RAD(-7.5), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
  1745. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size,0 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(30)), 0.3 / Animation_Speed)
  1746. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size,0 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(5)), 0.3 / Animation_Speed)
  1747. end
  1748. for i = 0, 1, 0.2 / Animation_Speed do
  1749. Swait()
  1750. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.25 * Player_Size) * ANGLES(RAD(-25), RAD(0), RAD(-20)), 0.4 / Animation_Speed)
  1751. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.4 / Animation_Speed)
  1752. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1753. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-7.5), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1754. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(50)), 0.4 / Animation_Speed)
  1755. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(25)), 0.4 / Animation_Speed)
  1756. end
  1757. STAGGERVELOCITY.Parent = nil
  1758. for i = 1, 50 * Animation_Speed do
  1759. Swait()
  1760. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -1.8 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-20)) * ANGLES(RAD(-5), RAD(-5), RAD(0)), 0.3 / Animation_Speed)
  1761. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(20), RAD(0), RAD(20)) * ANGLES(RAD(0), RAD(5), RAD(0)), 0.3 / Animation_Speed)
  1762. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(20)) * ANGLES(RAD(0), RAD(-20), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
  1763. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(-10)) * ANGLES(RAD(0), RAD(15), RAD(0)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
  1764. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.4 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(70)) * ANGLES(RAD(0), RAD(30), RAD(0)), 0.3 / Animation_Speed)
  1765. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, 0.5 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-10)), 0.3 / Animation_Speed)
  1766. end
  1767. DISABLEJUMPING = false
  1768. ATTACK = false
  1769. end
  1770.  
  1771. function StunAnimation()
  1772. ATTACK = true
  1773. DISABLEJUMPING = true
  1774. COMBO = 1
  1775. StatLabel("Interruption", Head.CFrame * CF(0, 0 + (Head.Size.z - 1), 0), "Stunned!", C3(255 / 255, 255 / 255, 0))
  1776. for i = 0, 1, 0.3 / Animation_Speed do
  1777. Swait()
  1778. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.05 * Player_Size) * ANGLES(RAD(15), RAD(0), RAD(-150)), 0.3 / Animation_Speed)
  1779. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-10), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
  1780. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(30), RAD(0), RAD(40)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
  1781. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-50)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
  1782. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(30)), 0.3 / Animation_Speed)
  1783. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(20)), 0.3 / Animation_Speed)
  1784. end
  1785. for i = 0, 1, 0.3 / Animation_Speed do
  1786. Swait()
  1787. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.05 * Player_Size) * ANGLES(RAD(45), RAD(0), RAD(-180)), 0.4 / Animation_Speed)
  1788. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
  1789. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(30), RAD(0), RAD(40)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1790. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-50)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1791. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(15)), 0.4 / Animation_Speed)
  1792. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(50)), 0.4 / Animation_Speed)
  1793. end
  1794. for i = 0, 1, 0.3 / Animation_Speed do
  1795. Swait()
  1796. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(75), RAD(0), RAD(-180)), 0.4 / Animation_Speed)
  1797. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(-60)), 0.4 / Animation_Speed)
  1798. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20), RAD(0), RAD(70)) * ANGLES(RAD(0), RAD(30), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1799. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-10), RAD(0), RAD(-80)) * ANGLES(RAD(0), RAD(-40), RAD(0)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1800. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(10)), 0.4 / Animation_Speed)
  1801. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(80)), 0.4 / Animation_Speed)
  1802. end
  1803. for i = 1, 70 * Animation_Speed do
  1804. Swait()
  1805. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -2.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-180)), 0.3 / Animation_Speed)
  1806. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.3 / Animation_Speed)
  1807. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(-10), RAD(90)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
  1808. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
  1809. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0.2 * Player_Size) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 0.3 / Animation_Speed)
  1810. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 0.3 / Animation_Speed)
  1811. end
  1812. for i = 0, 1, 0.2 / Animation_Speed do
  1813. Swait()
  1814. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -1.5 * Player_Size) * ANGLES(RAD(20), RAD(0), RAD(100)), 0.4 / Animation_Speed)
  1815. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
  1816. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(-10), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1817. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(80), RAD(0), RAD(20)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1818. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(70)), 0.4 / Animation_Speed)
  1819. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.25 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(20)), 0.4 / Animation_Speed)
  1820. end
  1821. DISABLEJUMPING = false
  1822. ATTACK = false
  1823. end
  1824.  
  1825. function EAbility()
  1826. ATTACK = true
  1827. ATTACK = false
  1828. end
  1829.  
  1830. function Attack1()
  1831. ATTACK = true
  1832. for i=0, 1, 0.1 / Animation_Speed do
  1833. Swait()
  1834. RootPart.CFrame=CFrame.new(RootPart.CFrame.p,Vector3.new(Mouse.Hit.p.X,RootPart.Position.Y,Mouse.Hit.p.Z)) * CFrame.new(0, 0, 0)
  1835. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
  1836. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1837. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(150), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1838. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1839. 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.2 / Animation_Speed)
  1840. 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.2 / Animation_Speed)
  1841. if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
  1842. break
  1843. end
  1844. end
  1845. while true do
  1846. wait(0.01)
  1847. if HOLD == true then
  1848. shoot()
  1849. elseif HOLD == false then
  1850. break
  1851. end
  1852. end
  1853. ATTACK = false
  1854. end
  1855.  
  1856. function shoot()
  1857. ATTACK = true
  1858. for i=0, 1, 0.1 / Animation_Speed do
  1859. Swait()
  1860. RootPart.CFrame=CFrame.new(RootPart.CFrame.p,Vector3.new(Mouse.Hit.p.X,RootPart.Position.Y,Mouse.Hit.p.Z)) * CFrame.new(0, 0, 0)
  1861. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
  1862. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1863. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1864. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1865. 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.2 / Animation_Speed)
  1866. 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.2 / Animation_Speed)
  1867. if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
  1868. break
  1869. end
  1870. end
  1871. CreateSound("930650202", GunPoint, 1.2, MRANDOM(8, 9) / 10)
  1872. ShootFireball(GunPoint.CFrame.p, Mouse.hit.p, 15, 5, 100, 25, 45)
  1873. Disable_Jump = true
  1874. Humanoid.WalkSpeed = 0
  1875. for i = 1, 3 do
  1876. MagicBlock("White", "Neon", GunPoint.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(0, 0, 0), VT(0, 0, 0), 3, 3, 3, 1, 1, 1, 0.1)
  1877. end
  1878. for i=0, 1, 0.1 / Animation_Speed do
  1879. Swait()
  1880. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
  1881. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1882. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1883. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(15), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1884. 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.2 / Animation_Speed)
  1885. 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.2 / Animation_Speed)
  1886. if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
  1887. break
  1888. end
  1889. end
  1890. Disable_Jump = false
  1891. Humanoid.WalkSpeed = 16
  1892. ATTACK = false
  1893. end
  1894.  
  1895. function PointBlank()
  1896. ATTACK = true
  1897. for i=0, 1, 0.1 / Animation_Speed do
  1898. Swait()
  1899. RootPart.CFrame=CFrame.new(RootPart.CFrame.p,Vector3.new(Mouse.Hit.p.X,RootPart.Position.Y,Mouse.Hit.p.Z)) * CFrame.new(0, 0, 0)
  1900. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
  1901. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1902. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(150), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1903. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1904. 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.2 / Animation_Speed)
  1905. 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.2 / Animation_Speed)
  1906. if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
  1907. break
  1908. end
  1909. end
  1910. for i=0, 1, 0.1 / Animation_Speed/2 do
  1911. Swait()
  1912. RootPart.CFrame=CFrame.new(RootPart.CFrame.p,Vector3.new(Mouse.Hit.p.X,RootPart.Position.Y,Mouse.Hit.p.Z)) * CFrame.new(0, 0, 0)
  1913. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
  1914. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1915. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1916. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1917. 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.2 / Animation_Speed)
  1918. 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.2 / Animation_Speed)
  1919. if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
  1920. break
  1921. end
  1922. end
  1923. MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, GunPoint, 12, false, 85, 135, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
  1924. CreateSound("213603013", GunPoint, 5, MRANDOM(8, 9) / 10)
  1925. Disable_Jump = true
  1926. Humanoid.WalkSpeed = 0
  1927. for i = 1, 15 do
  1928. SIZE = MRANDOM(70,200)
  1929. MagicBlock("White", "Neon", GunPoint.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(0, 0, 0), VT(0, 0, 0), SIZE, SIZE, SIZE, 1, 1, 1, 0.1)
  1930. end
  1931. for i=0, 1, 0.1 / Animation_Speed do
  1932. Swait()
  1933. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
  1934. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1935. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  1936. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(15), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  1937. 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.2 / Animation_Speed)
  1938. 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.2 / Animation_Speed)
  1939. if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
  1940. break
  1941. end
  1942. end
  1943. Disable_Jump = false
  1944. Humanoid.WalkSpeed = 16
  1945. ATTACK = false
  1946. end
  1947.  
  1948. function ShootFireball(POSITION1, POSITION2, SPEED, SIZE, DURATION, LOWDAMAGE, HIGHDAMAGE)
  1949. local POS1 = POSITION1
  1950. local POS2 = POSITION2
  1951. local MOUSELOOK = CF((POS1 + POS2) / 2, POS2)
  1952. local FIREBALLSPEED = SPEED * Player_Size
  1953. local FIREBALLDURATION = DURATION
  1954. local FIREBALLCOLORS = {"White", "Pearl", "Magenta"}
  1955. local FIREBALLHITSOUNDS = {"522282998", "527535379", "304448425"}
  1956. coroutine.resume(coroutine.create(function()
  1957. repeat
  1958. Swait()
  1959. local FIREBALLHIT, FIREBALLPOS = Raycast(POS1, MOUSELOOK.lookVector, FIREBALLSPEED, Character)
  1960. POS1 = POS1 + (MOUSELOOK.lookVector * FIREBALLSPEED)
  1961. MagicBlock(FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)], "Neon", CF(POS1) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(0, 0, 0), VT(0, 0, 0), SIZE, SIZE, SIZE, SIZE / -10, SIZE / -10, SIZE / -10, 0.1)
  1962. if FIREBALLHIT ~= nil or FIREBALLDURATION <= 0.1 then
  1963. FIREBALLDURATION = 0
  1964. local FireballHitRefpart = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
  1965. FireballHitRefpart.Anchored = true
  1966. FireballHitRefpart.CFrame = CF(FIREBALLPOS)
  1967. game:GetService("Debris"):AddItem(FireballHitRefpart, 5)
  1968. CreateSound(FIREBALLHITSOUNDS[MRANDOM(1, #FIREBALLHITSOUNDS)], FireballHitRefpart, 1.4, MRANDOM(14, 16) / 10)
  1969. for i = 1, MRANDOM(4, 8) do
  1970. MagicBlock(FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)], "Neon", FireballHitRefpart.CFrame * ANGLES(RAD(MRANDOM(-360, 360)), RAD(MRANDOM(-360, 360)), RAD(MRANDOM(-360, 360))), CF(0, MRANDOM(5, 7) / 10 * Player_Size, 0), VT(0, 0, 0), 5, 5, 5, 0, 0, 0, MRANDOM(3, 5) / 100)
  1971. end
  1972. MagicBlock("White", "Neon", FireballHitRefpart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), SIZE, SIZE, SIZE, SIZE / 3, SIZE / 3, SIZE / 3, 0.05)
  1973. MagicSphere("Magenta", "Neon", FireballHitRefpart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), SIZE * 0.5, SIZE * 0.5, SIZE * 0.5, SIZE / 4, SIZE / 4, SIZE / 4, 0.05)
  1974. MagicBlock("White", "Neon", FireballHitRefpart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), SIZE * 0.25, SIZE * 0.25, SIZE * 0.25, SIZE / 5, SIZE / 5, SIZE / 5, 0.05)
  1975. MagnitudeDamage("", "", "", "", 1, 1, 1, 1, FireballHitRefpart, SIZE / 2, false, LOWDAMAGE, HIGHDAMAGE, 0, "Normal", RootPart, 0, 1, MRANDOM(10, 15), nil, false, true, nil, 0, 0, false)
  1976. else
  1977. FIREBALLDURATION = FIREBALLDURATION - (1 / 30) / Animation_Speed
  1978. end
  1979. until FIREBALLHIT ~= nil or FIREBALLDURATION <= 0
  1980. end))
  1981. end
  1982.  
  1983.  
  1984. --//=================================\\
  1985. --\\=================================//
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991. --//=================================\\
  1992. --|| SET THINGS UP
  1993. --\\=================================//
  1994.  
  1995. if Start_Equipped == true then
  1996. ATTACK = true
  1997. EQUIPPED = true
  1998. if Disable_Animate == true then
  1999. ANIMATE.Parent = nil
  2000. local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
  2001. IDLEANIMATION:Play()
  2002. end
  2003. if Disable_Animator == true then
  2004. ANIMATOR.Parent = nil
  2005. end
  2006. if Disable_Moving_Arms == true then
  2007. RSH = Torso["Right Shoulder"]
  2008. LSH = Torso["Left Shoulder"]
  2009. RSH.Parent = nil
  2010. LSH.Parent = nil
  2011. if Use_Motors_Instead_Of_Welds == true then
  2012. RightShoulder = IT("Motor")
  2013. LeftShoulder = IT("Motor")
  2014. else
  2015. RightShoulder = IT("Weld")
  2016. LeftShoulder = IT("Weld")
  2017. end
  2018. RightShoulder.Name = "Right Shoulder"
  2019. RightShoulder.Part0 = Torso
  2020. RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  2021. RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  2022. RightShoulder.Part1 = Character["Right Arm"]
  2023. RightShoulder.Parent = Torso
  2024. LeftShoulder.Name = "Left Shoulder"
  2025. LeftShoulder.Part0 = Torso
  2026. LeftShoulder.C0=CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  2027. LeftShoulder.C1=CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  2028. LeftShoulder.Part1 = Character["Left Arm"]
  2029. LeftShoulder.Parent = Torso
  2030. RIGHTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
  2031. LEFTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
  2032. end
  2033. if Start_Equipped_With_Equipped_Animation == true then
  2034. Swait()
  2035. end
  2036. ATTACK = false
  2037. end
  2038.  
  2039. --//=================================\\
  2040. --\\=================================//
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046. --//=================================\\
  2047. --|| ASSIGN THINGS TO KEYS
  2048. --\\=================================//
  2049.  
  2050. Humanoid.Changed:connect(function(Jump)
  2051. if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
  2052. Humanoid.Jump = false
  2053. end
  2054. end)
  2055.  
  2056. function MouseDown(Mouse)
  2057. if ATTACK == true or EQUIPPED == false then
  2058. return
  2059. end
  2060. HOLD = true
  2061. Attack1()
  2062. coroutine.resume(coroutine.create(function()
  2063. for i=1, 50 do
  2064. if ATTACK == false then
  2065. Swait()
  2066. end
  2067. end
  2068. if ATTACK == false then
  2069. COMBO = 1
  2070. end
  2071. end))
  2072. end
  2073.  
  2074. function MouseUp(Mouse)
  2075. HOLD = false
  2076. end
  2077.  
  2078. function KeyDown(Key)
  2079. if Key == "f" and Can_Equip_Or_Unequip == true and ATTACK == false then
  2080. ATTACK = true
  2081. COMBO = 1
  2082. if EQUIPPED == false then
  2083. EQUIPPED = true
  2084. if Disable_Animate == true then
  2085. ANIMATE.Parent = nil
  2086. local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
  2087. IDLEANIMATION:Play()
  2088. end
  2089. if Disable_Animator == true then
  2090. ANIMATOR.Parent = nil
  2091. end
  2092. if Disable_Moving_Arms == true then
  2093. RSH = Torso["Right Shoulder"]
  2094. LSH = Torso["Left Shoulder"]
  2095. RSH.Parent = nil
  2096. LSH.Parent = nil
  2097. if Use_Motors_Instead_Of_Welds == true then
  2098. RightShoulder = IT("Motor")
  2099. LeftShoulder = IT("Motor")
  2100. else
  2101. RightShoulder = IT("Weld")
  2102. LeftShoulder = IT("Weld")
  2103. end
  2104. RightShoulder.Name = "Right Shoulder"
  2105. RightShoulder.Part0 = Torso
  2106. RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  2107. RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  2108. RightShoulder.Part1 = Character["Right Arm"]
  2109. RightShoulder.Parent = Torso
  2110. LeftShoulder.Name = "Left Shoulder"
  2111. LeftShoulder.Part0 = Torso
  2112. LeftShoulder.C0=CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  2113. LeftShoulder.C1=CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
  2114. LeftShoulder.Part1 = Character["Left Arm"]
  2115. LeftShoulder.Parent = Torso
  2116. RIGHTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
  2117. LEFTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
  2118. end
  2119. Swait()
  2120. elseif EQUIPPED == true then
  2121. end
  2122. ATTACK = false
  2123. end
  2124. if Key == "e" and EQUIPPED == true and ATTACK == false then
  2125. PointBlank()
  2126. end
  2127. end
  2128.  
  2129. function KeyUp(Key)
  2130. end
  2131.  
  2132. if Use_HopperBin == false then
  2133.  
  2134. Mouse.Button1Down:connect(function(NEWKEY)
  2135. MouseDown(NEWKEY)
  2136. end)
  2137. Mouse.Button1Up:connect(function(NEWKEY)
  2138. MouseUp(NEWKEY)
  2139. end)
  2140. Mouse.KeyDown:connect(function(NEWKEY)
  2141. KeyDown(NEWKEY)
  2142. end)
  2143. Mouse.KeyUp:connect(function(NEWKEY)
  2144. KeyUp(NEWKEY)
  2145. end)
  2146.  
  2147. elseif Use_HopperBin == true then
  2148. WEAPONTOOL.Parent = Backpack
  2149. script.Parent = WEAPONTOOL
  2150. function SelectTool(Mouse)
  2151. Mouse.Button1Down:connect(function()
  2152. MouseDown(Mouse)
  2153. end)
  2154. Mouse.Button1Up:connect(function()
  2155. MouseUp(Mouse)
  2156. end)
  2157. Mouse.KeyDown:connect(KeyDown)
  2158. Mouse.KeyUp:connect(KeyUp)
  2159. end
  2160. function DeselectTool(Mouse)
  2161. end
  2162. WEAPONTOOL.Selected:connect(SelectTool)
  2163. WEAPONTOOL.Deselected:connect(DeselectTool)
  2164. end
  2165.  
  2166. --//=================================\\
  2167. --\\=================================//
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173. --//=================================\\
  2174. --|| WRAP THE WHOLE SCRIPT UP
  2175. --\\=================================//
  2176.  
  2177. while true do
  2178. Swait()
  2179. if Enable_Gui == true then
  2180. UpdateGUI()
  2181. end
  2182. UpdateSkillsAndStuff()
  2183. if Walkspeed_Depends_On_Movement_Value == true then
  2184. if Movement.Value < 0 or StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true or Rooted.Value == true then
  2185. Humanoid.WalkSpeed = 0
  2186. else
  2187. Humanoid.WalkSpeed = 16 * Movement.Value * Player_Size
  2188. end
  2189. end
  2190. if Enable_Stun == true and StunValue.Value >= Max_Stun then
  2191. StunValue.Value = 0
  2192. Stun.Value = true
  2193. end
  2194. if Enable_Stagger_Hit == true then
  2195. if StaggerHit.Value == true and STAGGERHITANIM == false then
  2196. coroutine.resume(coroutine.create(function()
  2197. STAGGERHITANIM = true
  2198. while ATTACK == true do
  2199. Swait()
  2200. end
  2201. StaggerHitAnimation()
  2202. StaggerHit.Value = false
  2203. STAGGERHITANIM = false
  2204. end))
  2205. end
  2206. else
  2207. StaggerHit.Value = false
  2208. end
  2209. if Enable_Stagger == true then
  2210. if Stagger.Value == true and STAGGERANIM == false then
  2211. coroutine.resume(coroutine.create(function()
  2212. STAGGERANIM = true
  2213. while ATTACK == true do
  2214. Swait()
  2215. end
  2216. StaggerAnimation()
  2217. Stagger.Value = false
  2218. STAGGERANIM = false
  2219. end))
  2220. end
  2221. else
  2222. Stagger.Value = false
  2223. end
  2224. if Enable_Stun == true then
  2225. if Stun.Value == true and STUNANIM == false then
  2226. coroutine.resume(coroutine.create(function()
  2227. StunValue.Value = 0
  2228. STUNANIM = true
  2229. while ATTACK == true do
  2230. Swait()
  2231. end
  2232. StunAnimation()
  2233. Stun.Value = false
  2234. STUNANIM = false
  2235. end))
  2236. end
  2237. else
  2238. StunValue.Value = 0
  2239. Stun.Value = false
  2240. end
  2241. if DONUMBER >= .5 then
  2242. HANDIDLE = true
  2243. elseif DONUMBER <= 0 then
  2244. HANDIDLE = false
  2245. end
  2246. if HANDIDLE == false then
  2247. DONUMBER = DONUMBER + 0.003 / Animation_Speed
  2248. else
  2249. DONUMBER = DONUMBER - 0.003 / Animation_Speed
  2250. end
  2251. if ATTACK == false then
  2252. IDLENUMBER = IDLENUMBER + 1
  2253. else
  2254. IDLENUMBER = 0
  2255. end
  2256. if Enable_Stats == true then
  2257. for _, v in pairs (ChangeStat:GetChildren()) do
  2258. if v:FindFirstChild("Duration") ~= nil then
  2259. v:FindFirstChild("Duration").Value = v:FindFirstChild("Duration").Value - (1 / 30) / Animation_Speed
  2260. if v:FindFirstChild("Duration").Value <= 0 then
  2261. v.Parent = nil
  2262. end
  2263. end
  2264. if v.Name == "ChangeDefense" then
  2265. CHANGEDEFENSE = CHANGEDEFENSE + v.Value
  2266. elseif v.Name == "ChangeDamage" then
  2267. CHANGEDAMAGE = CHANGEDAMAGE + v.Value
  2268. elseif v.Name == "ChangeMovement" then
  2269. CHANGEMOVEMENT = CHANGEMOVEMENT + v.Value
  2270. end
  2271. end
  2272. Defense.Value = 1 + (CHANGEDEFENSE)
  2273. if Defense.Value <= 0.01 then
  2274. Defense.Value = 0.01
  2275. end
  2276. Damage.Value = 1 + (CHANGEDAMAGE)
  2277. if Damage.Value <= 0 then
  2278. Damage.Value = 0
  2279. end
  2280. Movement.Value = 1 + (CHANGEMOVEMENT)
  2281. if Movement.Value <= 0 then
  2282. Movement.Value = 0
  2283. end
  2284. CHANGEDEFENSE = 0
  2285. CHANGEDAMAGE = 0
  2286. CHANGEMOVEMENT = 0
  2287. end
  2288. SINE = SINE + CHANGE
  2289. local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
  2290. local TORSOVERTICALVELOCITY = RootPart.Velocity.y
  2291. local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
  2292. local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
  2293. local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
  2294. if ANIM == "Walk" and EQUIPPED == true and TORSOVELOCITY > 1 then
  2295. RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.1 * COS(SINE / (WALKSPEEDVALUE / 2)) * Player_Size) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  2296. Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * 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)
  2297. RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  2298. LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  2299. elseif (ANIM ~= "Walk" and EQUIPPED == true) or (TORSOVELOCITY < 1) then
  2300. RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2301. Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2302. RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2303. LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2304. end
  2305. if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
  2306. ANIM = "Jump"
  2307. if EQUIPPED == true and ATTACK == false then
  2308. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2309. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2310. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
  2311. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
  2312. RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
  2313. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
  2314. end
  2315. elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
  2316. ANIM = "Fall"
  2317. if EQUIPPED == true and ATTACK == false then
  2318. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2319. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2320. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
  2321. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
  2322. 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(20)), 0.2 / Animation_Speed)
  2323. 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(10)), 0.2 / Animation_Speed)
  2324. end
  2325. elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
  2326. ANIM = "Idle"
  2327. if EQUIPPED == true and ATTACK == false then
  2328. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2329. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2330. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.45 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(25), RAD(-15)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  2331. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1 * Player_Size, 0.2 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(25), RAD(0), RAD(55)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  2332. 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.2 / Animation_Speed)
  2333. 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.2 / Animation_Speed)
  2334. end
  2335. elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
  2336. ANIM = "Walk"
  2337. WALK = WALK + 1 / Animation_Speed
  2338. if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then
  2339. WALK = 0
  2340. if WALKINGANIM == true then
  2341. WALKINGANIM = false
  2342. elseif WALKINGANIM == false then
  2343. WALKINGANIM = true
  2344. end
  2345. end
  2346. if EQUIPPED == true and ATTACK == false then
  2347. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2348. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2349. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.45 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(25), RAD(-15)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
  2350. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1 * Player_Size, 0.2 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(25), RAD(0), RAD(55)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
  2351. 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.2 / Animation_Speed)
  2352. 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.2 / Animation_Speed)
  2353. end
  2354. end
  2355.  
  2356. end
  2357.  
  2358. --//=================================\\
  2359. --\\=================================//
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365. --//====================================================\\--
  2366. --|| END OF SCRIPT
  2367. --\\====================================================//--
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement