Fe CADUCUS R6
Key RequiredUniversal

Fe CADUCUS R6

Universal Scriptc80lkiddk4ngc80lkiddk4ng 6.2K views 12.2K executesUpdated Feb 11, 2026
5.0/ 5(7 votes)
70100% Positive
Lua Script•2588 lines (103187 chars)
do
local Accessories = {}
local Aligns = {}
local Attachments = {}
local BindableEvent = nil
local Blacklist = {}
local CFrame = CFrame
local CFrameidentity = CFrame.identity
local CFramelookAt = CFrame.lookAt
local CFramenew = CFrame.new
local Character = nil
local CurrentCamera = nil
local Enum = Enum
local Custom = Enum.CameraType.Custom
local Health = Enum.CoreGuiType.Health
local HumanoidRigType = Enum.HumanoidRigType
local Dead = Enum.HumanoidStateType.Dead
local LockCenter = Enum.MouseBehavior.LockCenter
local MouseButton1 = Enum.UserInputType.MouseButton1
local Exceptions = {}
local game = game
local Clone = game.Clone
local Close = game.Close
local Connect = Close.Connect
local Disconnect = Connect(Close, function() end).Disconnect
local Wait = Close.Wait
local Destroy = game.Destroy
local FindFirstAncestorOfClass = game.FindFirstAncestorOfClass
local FindFirstAncestorWhichIsA = game.FindFirstAncestorWhichIsA
local FindFirstChild = game.FindFirstChild
local FindFirstChildOfClass = game.FindFirstChildOfClass
local Players = FindFirstChildOfClass(game, "Players")
local CreateHumanoidModelFromDescription = Players.CreateHumanoidModelFromDescription
local GetPlayers = Players.GetPlayers
local LocalPlayer = Players.LocalPlayer
local CharacterAdded = LocalPlayer.CharacterAdded
local ConnectDiedSignalBackend = LocalPlayer.ConnectDiedSignalBackend
local Mouse = LocalPlayer:GetMouse()
local Kill = LocalPlayer.Kill
local RunService = FindFirstChildOfClass(game, "RunService")
local PostSimulation = RunService.PostSimulation
local PreRender = RunService.PreRender
local PreSimulation = RunService.PreSimulation
local StarterGui = FindFirstChildOfClass(game, "StarterGui")
local GetCoreGuiEnabled = StarterGui.GetCoreGuiEnabled
local SetCore = StarterGui.SetCore
local SetCoreGuiEnabled = StarterGui.SetCoreGuiEnabled
local Workspace = FindFirstChildOfClass(game, "Workspace")
local FallenPartsDestroyHeight = Workspace.FallenPartsDestroyHeight
local HatDropY = FallenPartsDestroyHeight - 0.7
local FindFirstChildWhichIsA = game.FindFirstChildWhichIsA
local UserInputService = FindFirstChildOfClass(game, "UserInputService")
local InputBegan = UserInputService.InputBegan
local IsMouseButtonPressed = UserInputService.IsMouseButtonPressed
local GetChildren = game.GetChildren
local GetDescendants = game.GetDescendants
local GetPropertyChangedSignal = game.GetPropertyChangedSignal
local CurrentCameraChanged = GetPropertyChangedSignal(Workspace, "CurrentCamera")
local MouseBehaviorChanged = GetPropertyChangedSignal(UserInputService, "MouseBehavior")
local IsA = game.IsA
local IsDescendantOf = game.IsDescendantOf
local Highlights = {}
local Instancenew = Instance.new
local Animation = Instancenew("Animation")
local HumanoidDescription = Instancenew("HumanoidDescription")
local HumanoidModel = CreateHumanoidModelFromDescription(Players, HumanoidDescription, HumanoidRigType.R6)
local R15HumanoidModel = CreateHumanoidModelFromDescription(Players, HumanoidDescription, HumanoidRigType.R15)
local SetAccessories = HumanoidDescription.SetAccessories
local ModelBreakJoints = HumanoidModel.BreakJoints
local Head = HumanoidModel.Head
local BasePartBreakJoints = Head.BreakJoints
local GetJoints = Head.GetJoints
local IsGrounded = Head.IsGrounded
local Humanoid = HumanoidModel.Humanoid
local ApplyDescription = Humanoid.ApplyDescription
local ChangeState = Humanoid.ChangeState
local EquipTool = Humanoid.EquipTool
local GetAppliedDescription = Humanoid.GetAppliedDescription
local GetPlayingAnimationTracks = Humanoid.GetPlayingAnimationTracks
local LoadAnimation = Humanoid.LoadAnimation
local Move = Humanoid.Move
local UnequipTools = Humanoid.UnequipTools
local ScaleTo = HumanoidModel.ScaleTo
local IsFirst = false
local IsHealthEnabled = nil
local IsLockCenter = false
local IsRegistered = false
local IsRunning = false
local LastTime = nil
local math = math
local mathrandom = math.random
local mathsin = math.sin
local nan = 0 / 0
local next = next

local OptionsAccessories = nil
local OptionsApplyDescription = nil
local OptionsBreakJointsDelay = nil
local OptionsClickFling = nil
local OptionsDisableCharacterCollisions = nil
local OptionsDisableHealthBar = nil
local OptionsDisableRigCollisions = nil
local OptionsDefaultFlingOptions = nil
local OptionsHatDrop = nil
local OptionsHideCharacter = nil
local OptionsParentCharacter = nil
local OptionsPermanentDeath = nil
local OptionsRefit = nil
local OptionsRigTransparency = nil
local OptionsSetCameraSubject = nil
local OptionsSetCameraType = nil
local OptionsSetCharacter = nil
local OptionsSetCollisionGroup = nil
local OptionsSimulationRadius = nil
local OptionsTeleportRadius = nil

local osclock = os.clock
local PreRenderConnection = nil
local RBXScriptConnections = {}
local Refitting = false
local replicatesignal = replicatesignal
local Rig = nil
local RigHumanoid = nil
local RigHumanoidRootPart = nil
local sethiddenproperty = sethiddenproperty
local setscriptable = setscriptable
local stringfind = string.find
local table = table
local tableclear = table.clear
local tablefind = table.find
local tableinsert = table.insert
local tableremove = table.remove

local Targets = {}

local task = task
local taskdefer = task.defer
local taskspawn = task.spawn
local taskwait = task.wait
local Time = nil

local Vector3 = Vector3
local Vector3new = Vector3.new
local FlingVelocity = Vector3new(16384, 16384, 16384)
local HatDropLinearVelocity = Vector3new(0, 27, 0)
local Vector3one = Vector3.one
local Vector3xzAxis = Vector3new(1, 0, 1)
local Vector3zero = Vector3.zero
local AntiSleep = Vector3zero

Animation.AnimationId = "rbxassetid://180436148"

Humanoid = nil

Destroy(HumanoidDescription)
HumanoidDescription = nil

local FindFirstChildOfClassAndName = function(Parent, ClassName, Name)
for Index, Child in next, GetChildren(Parent) do
if IsA(Child, ClassName) and Child.Name == Name then
return Child
end
end
end

local GetHandleFromTable = function(Table)
for Index, Child in GetChildren(Character) do
if IsA(Child, "Accoutrement") then
local Handle = FindFirstChildOfClassAndName(Child, "BasePart", "Handle")

if Handle then
local MeshId = nil
local TextureId = nil

if IsA(Handle, "MeshPart") then
MeshId = Handle.MeshId
TextureId = Handle.TextureID
else
local SpecialMesh = FindFirstChildOfClass(Handle, "SpecialMesh")

if SpecialMesh then
MeshId = SpecialMesh.MeshId
TextureId = SpecialMesh.TextureID
end
end

if MeshId then
if stringfind(MeshId, Table.MeshId) and stringfind(TextureId, Table.TextureId) then
return Handle
end
end
end
end
end
end

local NewIndex = function(self, Index, Value)
self[Index] = Value
end

local DescendantAdded = function(Descendant)
if IsA(Descendant, "Accoutrement") and OptionsHatDrop then
if not pcall(NewIndex, Descendant, "BackendAccoutrementState", 0) then
if sethiddenproperty then
sethiddenproperty(Descendant, "BackendAccoutrementState", 0)
elseif setscriptable then
setscriptable(Descendant, "BacekndAccoutrementState", true)
Descendant.BackendAccoutrementState = 0
end
end
elseif IsA(Descendant, "Attachment") then
local Attachment = Attachments[Descendant.Name]

if Attachment then
local Parent = Descendant.Parent

if IsA(Parent, "BasePart") then
local MeshId = nil
local TextureId = nil

if IsA(Parent, "MeshPart") then
MeshId = Parent.MeshId
TextureId = Parent.TextureID
else
local SpecialMesh = FindFirstChildOfClass(Parent, "SpecialMesh")

if SpecialMesh then
MeshId = SpecialMesh.MeshId
TextureId = SpecialMesh.TextureId
end
end

if MeshId then
for Index, Table in next, Accessories do
if Table.MeshId == MeshId and Table.TextureId == TextureId then
local Handle = Table.Handle

tableinsert(Aligns, {
LastPosition = Handle.Position,
Offset = CFrameidentity,
Part0 = Parent,
Part1 = Handle
})

return
end
end

for Index, Table in next, OptionsAccessories do
if stringfind(MeshId, Table.MeshId) and stringfind(TextureId, Table.TextureId) then
local Instance = nil
local TableName = Table.Name
local TableNames = Table.Names

if TableName then
Instance = FindFirstChildOfClassAndName(Rig, "BasePart", TableName)
else
for Index, TableName in next, TableNames do
local Child = FindFirstChildOfClassAndName(Rig, "BasePart", TableName)

if not ( TableNames[Index + 1] and Blacklist[Child] ) then
Instance = Child
break
end
end
end

if Instance then
local Blacklisted = Blacklist[Instance]

if not ( Blacklisted and Blacklisted.MeshId == MeshId and Blacklisted.TextureId == TextureId ) then
tableinsert(Aligns, {
LastPosition = Instance.Position,
Offset = Table.Offset,
Part0 = Parent,
Part1 = Instance
})

Blacklist[Instance] = { MeshId = MeshId, TextureId = TextureId }

return
end
end
end
end

local Accoutrement = FindFirstAncestorWhichIsA(Parent, "Accoutrement")

if Accoutrement and IsA(Accoutrement, "Accoutrement") then
local AccoutrementClone = Clone(Accoutrement)

local HandleClone = FindFirstChildOfClassAndName(AccoutrementClone, "BasePart", "Handle")
HandleClone.Transparency = OptionsRigTransparency

for Index, Descendant in next, GetDescendants(HandleClone) do
if IsA(Descendant, "JointInstance") then
Destroy(Descendant)
end
end

local AccessoryWeld = Instancenew("Weld")
AccessoryWeld.C0 = Descendant.CFrame
AccessoryWeld.C1 = Attachment.CFrame
AccessoryWeld.Name = "AccessoryWeld"
AccessoryWeld.Part0 = HandleClone
AccessoryWeld.Part1 = Attachment.Parent
AccessoryWeld.Parent = HandleClone

AccoutrementClone.Parent = Rig

tableinsert(Accessories, {
Handle = HandleClone,
MeshId = MeshId,
TextureId = TextureId
})
tableinsert(Aligns, {
LastPosition = HandleClone.Position,
Offset = CFrameidentity,
Part0 = Parent,
Part1 = HandleClone
})
end
end
end
end
end
end

local SetCameraSubject = function()
local CameraCFrame = CurrentCamera.CFrame
local Position = RigHumanoidRootPart.CFrame.Position

CurrentCamera.CameraSubject = RigHumanoid
Wait(PreRender)
CurrentCamera.CFrame = CameraCFrame + RigHumanoidRootPart.CFrame.Position - Position
end

local OnCameraSubjectChanged = function()
if CurrentCamera.CameraSubject ~= RigHumanoid then
taskdefer(SetCameraSubject)
end
end

local OnCameraTypeChanged = function()
if CurrentCamera.CameraType ~= Custom then
CurrentCamera.CameraType = Custom
end
end

local OnCurrentCameraChanged = function()
local Camera = Workspace.CurrentCamera

if Camera and OptionsSetCameraSubject then
CurrentCamera = Workspace.CurrentCamera

taskspawn(SetCameraSubject)

OnCameraSubjectChanged()
tableinsert(RBXScriptConnections, Connect(GetPropertyChangedSignal(CurrentCamera, "CameraSubject"), OnCameraSubjectChanged))

if OptionsSetCameraType then
OnCameraTypeChanged()
tableinsert(RBXScriptConnections, Connect(GetPropertyChangedSignal(CurrentCamera, "CameraType"), OnCameraTypeChanged))
end
end
end

local SetCharacter = function()
LocalPlayer.Character = Rig
end

local SetSimulationRadius = function()
LocalPlayer.SimulationRadius = OptionsSimulationRadius
end

local WaitForChildOfClass = function(Parent, ClassName)
local Child = FindFirstChildOfClass(Parent, ClassName)

while not Child do
Wait(Parent.ChildAdded)
Child = FindFirstChildOfClass(Parent, ClassName)
end

return Child
end

local WaitForChildOfClassAndName = function(Parent, ...)
local Child = FindFirstChildOfClassAndName(Parent, ...)

while not Child do
Wait(Parent.ChildAdded)
Child = FindFirstChildOfClassAndName(Parent, ...)
end

return Child
end

local Fling = function(Target, Options)
if Target then
local Highlight = Options.Highlight

if IsA(Target, "Humanoid") then
Target = Target.Parent
end
if IsA(Target, "Model") then
Target = FindFirstChildOfClassAndName(Target, "BasePart", "HumanoidRootPart") or FindFirstChildWhichIsA(Character, "BasePart")
end

if not tablefind(Targets, Target) and IsA(Target, "BasePart") and not Target.Anchored and not IsDescendantOf(Character, Target) and not IsDescendantOf(Rig, Target) then
local Model = FindFirstAncestorOfClass(Target, "Model")

if Model and FindFirstChildOfClass(Model, "Humanoid") then
Target = FindFirstChildOfClassAndName(Model, "BasePart", "HumanoidRootPart") or FindFirstChildWhichIsA(Character, "BasePart") or Target	
else
Model = Target
end

if Highlight then
local HighlightObject = type(Highlight) == "boolean" and Instancenew("Highlight") or Clone(Highlight)
HighlightObject.Adornee = Model
HighlightObject.Parent = Model
Options.HighlightObject = HighlightObject
tableinsert(Highlights, HighlightObject)
end
Targets[Target] = Options
if not OptionsDefaultFlingOptions.HatFling and OptionsPermanentDeath and replicatesignal then
replicatesignal(ConnectDiedSignalBackend)
end
end
end
end

local OnCharacterAdded = function(NewCharacter)

if NewCharacter ~= Rig then
tableclear(Aligns)
tableclear(Blacklist)

Character = NewCharacter

if OptionsSetCameraSubject then
taskspawn(SetCameraSubject)
end

if OptionsSetCharacter then
taskdefer(SetCharacter)
end

if OptionsParentCharacter then
Character.Parent = Rig
end

for Index, Descendant in next, GetDescendants(Character) do
taskspawn(DescendantAdded, Descendant)
end

tableinsert(RBXScriptConnections, Connect(Character.DescendantAdded, DescendantAdded))

Humanoid = WaitForChildOfClass(Character, "Humanoid")
local HumanoidRootPart = WaitForChildOfClassAndName(Character, "BasePart", "HumanoidRootPart")

if IsFirst then
if OptionsApplyDescription and Humanoid then
local AppliedDescription = GetAppliedDescription(Humanoid)
SetAccessories(AppliedDescription, {}, true)
ApplyDescription(RigHumanoid, AppliedDescription)
end

if HumanoidRootPart then
RigHumanoidRootPart.CFrame = HumanoidRootPart.CFrame

if OptionsSetCollisionGroup then
local CollisionGroup = HumanoidRootPart.CollisionGroup

for Index, Descendant in next, GetDescendants(Rig) do
if IsA(Descendant, "BasePart") then
Descendant.CollisionGroup = CollisionGroup
end
end
end
end

IsFirst = false
end

local IsAlive = true

if HumanoidRootPart then
for Target, Options in next, Targets do
if IsDescendantOf(Target, Workspace) then
local FirstPosition = Target.Position
local PredictionFling = Options.PredictionFling
local LastPosition = FirstPosition
local Timeout = osclock() + 1

if HumanoidRootPart then
while IsDescendantOf(Target, Workspace) and osclock() < Timeout do
local DeltaTime = taskwait()
local Position = Target.Position

if ( Position - FirstPosition ).Magnitude > 100 then
break
end

local Offset = Vector3zero

if PredictionFling then
Vector3zero = ( Position - LastPosition ) / DeltaTime * 0.13
end

HumanoidRootPart.AssemblyAngularVelocity = FlingVelocity
HumanoidRootPart.AssemblyLinearVelocity = FlingVelocity

HumanoidRootPart.CFrame = Target.CFrame + Offset
LastPosition = Position
end
end
end

local HighlightObject = Options.HighlightObject

if HighlightObject then
Destroy(HighlightObject)
end

Targets[Target] = nil
end

HumanoidRootPart.AssemblyAngularVelocity = Vector3zero
HumanoidRootPart.AssemblyLinearVelocity = Vector3zero

if OptionsHatDrop then
taskspawn(function()
WaitForChildOfClassAndName(Character, "LocalScript", "Animate").Enabled = false

for Index, AnimationTrack in next, GetPlayingAnimationTracks(Humanoid) do
AnimationTrack:Stop()
end

LoadAnimation(Humanoid, Animation):Play(0)

pcall(NewIndex, Workspace, "FallenPartsDestroyHeight", nan)

local RootPartCFrame = RigHumanoidRootPart.CFrame
RootPartCFrame = CFramenew(RootPartCFrame.X, HatDropY, RootPartCFrame.Z)

while IsAlive do
HumanoidRootPart.AssemblyAngularVelocity = Vector3zero
HumanoidRootPart.AssemblyLinearVelocity = HatDropLinearVelocity
HumanoidRootPart.CFrame = RootPartCFrame

taskwait()
end
end)
elseif OptionsHideCharacter then
local RootPartCFrame = RigHumanoidRootPart.CFrame - Vector3new(0, 45, 0)

taskspawn(function()
while IsAlive do
HumanoidRootPart.AssemblyAngularVelocity = Vector3zero
HumanoidRootPart.AssemblyLinearVelocity = Vector3zero
HumanoidRootPart.CFrame = RootPartCFrame

taskwait()
end
end)
elseif OptionsTeleportRadius then
HumanoidRootPart.CFrame = RigHumanoidRootPart.CFrame + Vector3new(mathrandom(- OptionsTeleportRadius, OptionsTeleportRadius), 0, mathrandom(- OptionsTeleportRadius, OptionsTeleportRadius))
end
end



if OptionsPermanentDeath and replicatesignal then
replicatesignal(ConnectDiedSignalBackend)

taskwait(Players.RespawnTime + 0.1)

Refitting = false
replicatesignal(Kill)
else
taskwait(OptionsBreakJointsDelay)
end

ModelBreakJoints(Character)

if Humanoid then
ChangeState(Humanoid, Dead)
Wait(Humanoid.Died)
end

IsAlive = false

if OptionsHatDrop then
pcall(NewIndex, Workspace, "FallenPartsDestroyHeight", FallenPartsDestroyHeight)
end
end
end

local OnInputBegan = function(InputObject)
if InputObject.UserInputType == MouseButton1 then
local Target = Mouse.Target

local HatFling = OptionsDefaultFlingOptions.HatFling
local ToolFling = OptionsDefaultFlingOptions.ToolFling

if HatFling and OptionsHatDrop then
local Part = type(HatFling) == "table" and GetHandleFromTable(HatFling)

if not Part then
for Index, Child in GetChildren(Character) do
if IsA(Child, "Accoutrement") then
local Handle = FindFirstChildOfClassAndName(Child, "BasePart", "Handle")

if Handle then
Part = Handle
break
end
end
end
end

if Part then
Exceptions[Part] = true

while IsMouseButtonPressed(UserInputService, MouseButton1) do
if Part.ReceiveAge == 0 then
Part.AssemblyAngularVelocity = FlingVelocity
Part.AssemblyLinearVelocity = FlingVelocity
Part.CFrame = Mouse.Hit + AntiSleep
end

taskwait()
end

Exceptions[Part] = false
end
elseif ToolFling then
local Backpack = FindFirstChildOfClass(LocalPlayer, "Backpack")
local Tool = nil

if type(ToolFling) == "string" then
Tool = FindFirstChild(Backpack, ToolFling) or FindFirstChild(Character, ToolFling)
end

if not Tool then
Tool = FindFirstChildOfClass(Backpack, "Tool") or FindFirstChildOfClass(Character, "Tool")
end

if Tool then
local Handle = FindFirstChildOfClassAndName(Tool, "BasePart", "Handle") or FindFirstChildWhichIsA(Tool, "BasePart")

if Handle then
UnequipTools(Humanoid)
taskwait()
EquipTool(Humanoid, Tool)

while IsMouseButtonPressed(UserInputService, MouseButton1) do
if Handle.ReceiveAge == 0 then
Handle.AssemblyAngularVelocity = FlingVelocity
Handle.AssemblyLinearVelocity = FlingVelocity
Handle.CFrame = Mouse.Hit + AntiSleep
end

taskwait()
end

UnequipTools(Humanoid)

Handle.AssemblyAngularVelocity = Vector3zero
Handle.AssemblyLinearVelocity = Vector3zero
Handle.CFrame = RigHumanoidRootPart.CFrame
end
end
else
Fling(Target, OptionsDefaultFlingOptions)
end
end
end

local OnPostSimulation = function()
Time = osclock()
local DeltaTime = Time - LastTime
LastTime = Time

if not OptionsSetCharacter and IsLockCenter then
local Position = RigHumanoidRootPart.Position
RigHumanoidRootPart.CFrame = CFramelookAt(Position, Position + CurrentCamera.CFrame.LookVector * Vector3xzAxis)
end

if OptionsSimulationRadius then
pcall(SetSimulationRadius)
end

AntiSleep = mathsin(Time * 15) * 0.0015 * Vector3one
local Axis = 27 + mathsin(Time)

for Index, Table in next, Aligns do
local Part0 = Table.Part0

if not Exceptions[Part0] then
if Part0.ReceiveAge == 0 then
if IsDescendantOf(Part0, Workspace) and not GetJoints(Part0)[1] and not IsGrounded(Part0) then
local Part1 = Table.Part1

Part0.AssemblyAngularVelocity = Vector3zero

local Position = Part1.Position
local LinearVelocity = ( Position - Table.LastPosition ) / DeltaTime * Axis
Part0.AssemblyLinearVelocity = Vector3new(LinearVelocity.X, Axis, LinearVelocity.Z)
Table.LastPosition = Position

Part0.CFrame = Part1.CFrame * Table.Offset + AntiSleep
end
else
local Frames = Table.Frames or - 1
Frames = Frames + 1
Table.Frames = Frames

if Frames > 15 and OptionsPermanentDeath and OptionsRefit and replicatesignal then
Refitting = false
replicatesignal(ConnectDiedSignalBackend)
end
end
end
end

if not OptionsSetCharacter and Humanoid then
Move(RigHumanoid, Humanoid.MoveDirection)
RigHumanoid.Jump = Humanoid.Jump
end

if IsRegistered then
SetCore(StarterGui, "ResetButtonCallback", BindableEvent)
else
IsRegistered = pcall(SetCore, StarterGui, "ResetButtonCallback", BindableEvent)
end
end

local OnPreRender = function()
local Position = RigHumanoidRootPart.Position
RigHumanoidRootPart.CFrame = CFramelookAt(Position, Position + CurrentCamera.CFrame.LookVector * Vector3xzAxis)

for Index, Table in next, Aligns do
local Part0 = Table.Part0

if Part0.ReceiveAge == 0 and IsDescendantOf(Part0, Workspace) and not GetJoints(Part0)[1] and not IsGrounded(Part0) then
Part0.CFrame = Table.Part1.CFrame * Table.Offset
end
end
end

local OnMouseBehaviorChanged = function()
IsLockCenter = UserInputService.MouseBehavior == LockCenter

if IsLockCenter then
PreRenderConnection = Connect(PreRender, OnPreRender)
tableinsert(RBXScriptConnections, PreRenderConnection)
elseif PreRenderConnection then
Disconnect(PreRenderConnection)
tableremove(RBXScriptConnections, tablefind(RBXScriptConnections, PreRenderConnection))
end
end

local OnPreSimulation = function()
if OptionsDisableCharacterCollisions and Character then
for Index, Descendant in next, GetDescendants(Character) do
if IsA(Descendant, "BasePart") then
Descendant.CanCollide = false
end
end
end
if OptionsDisableRigCollisions then
for Index, Descendant in next, GetChildren(Rig) do
if IsA(Descendant, "BasePart") then
Descendant.CanCollide = false
end
end
end
end

Start = function(Options)
if not IsRunning then
IsFirst = true
IsRunning = true

Options = Options or {}
OptionsAccessories = Options.Accessories or {}
OptionsApplyDescription = Options.ApplyDescription
OptionsBreakJointsDelay = Options.BreakJointsDelay or 0
OptionsClickFling = Options.ClickFling
OptionsDisableCharacterCollisions = Options.DisableCharacterCollisions
OptionsDisableHealthBar = Options.DisableHealthBar
OptionsDisableRigCollisions = Options.DisableRigCollisions
OptionsDefaultFlingOptions = Options.DefaultFlingOptions or {}
OptionsHatDrop = Options.HatDrop
OptionsHideCharacter = Options.HideCharacter
OptionsParentCharacter = Options.ParentCharacter
OptionsPermanentDeath = Options.PermanentDeath
OptionsRefit = Options.Refit
local OptionsRigSize = Options.RigSize
OptionsRigTransparency = Options.RigTransparency or 1
OptionsSetCameraSubject = Options.SetCameraSubject
OptionsSetCameraType = Options.SetCameraType
OptionsSetCharacter = Options.SetCharacter
OptionsSetCollisionGroup = Options.SetCollisionGroup
OptionsSimulationRadius = Options.SimulationRadius
OptionsTeleportRadius = Options.TeleportRadius

if OptionsDisableHealthBar then
IsHealthEnabled = GetCoreGuiEnabled(StarterGui, Health)
SetCoreGuiEnabled(StarterGui, Health, false)
end

BindableEvent = Instancenew("BindableEvent")
tableinsert(RBXScriptConnections, Connect(BindableEvent.Event, Stop))

Rig = Options.R15 and Clone(R15HumanoidModel) or Clone(HumanoidModel)
Rig.Name = "non"
RigHumanoid = Rig.Humanoid
RigHumanoidRootPart = Rig.HumanoidRootPart
Rig.Parent = Workspace

local Wing = Instance.new("Part", Rig)
Wing.Name = "Wing"
Wing.CanCollide = false

for Index, Descendant in next, GetDescendants(Rig) do
if IsA(Descendant, "Attachment") then
Attachments[Descendant.Name] = Descendant
elseif IsA(Descendant, "BasePart") or IsA(Descendant, "Decal") then
Descendant.Transparency = OptionsRigTransparency
end
end

if OptionsRigSize then
ScaleTo(Rig, OptionsRigSize)

RigHumanoid.JumpPower = 50
RigHumanoid.WalkSpeed = 16
end

OnCurrentCameraChanged()
tableinsert(RBXScriptConnections, Connect(CurrentCameraChanged, OnCurrentCameraChanged))

if OptionsClickFling then
tableinsert(RBXScriptConnections, Connect(InputBegan, OnInputBegan))
end

local Character = LocalPlayer.Character

if Character then
OnCharacterAdded(Character)
end

tableinsert(RBXScriptConnections, Connect(CharacterAdded, OnCharacterAdded))

LastTime = osclock()
tableinsert(RBXScriptConnections, Connect(PostSimulation, OnPostSimulation))

if not OptionsSetCharacter then
OnMouseBehaviorChanged()
tableinsert(RBXScriptConnections, Connect(MouseBehaviorChanged, OnMouseBehaviorChanged))
end

if OptionsDisableCharacterCollisions or OptionsDisableRigCollisions then
OnPreSimulation()
tableinsert(RBXScriptConnections, Connect(PreSimulation, OnPreSimulation))
end

return {
BindableEvent = BindableEvent,
Fling = Fling,
Rig = Rig
}
end
end

Stop = function()
if IsRunning then
IsFirst = false
IsRunning = false

for Index, Highlight in Highlights do
Destroy(Highlight)
end

tableclear(Highlights)

for Index, RBXScriptConnection in next, RBXScriptConnections do
Disconnect(RBXScriptConnection)
end

tableclear(RBXScriptConnections)

Destroy(BindableEvent)

if Character.Parent == Rig then
Character.Parent = Workspace
end

if Humanoid then
ChangeState(Humanoid, Dead)
end

Destroy(Rig)

if OptionsPermanentDeath and replicatesignal then
replicatesignal(ConnectDiedSignalBackend)
end

if OptionsDisableHealthBar and not GetCoreGuiEnabled(StarterGui, Health) then
SetCoreGuiEnabled(StarterGui, Health, IsHealthEnabled)
end

if IsRegistered then
pcall(SetCore, StarterGui, "ResetButtonCallback", true)
else
IsRegistered = pcall(SetCore, StarterGui, "ResetButtonCallback", true)
end
end
end
end

Empyrean = Start({
Accessories = {
--{ MeshId = "", Name = "", Offset = CFrame.identity, TextureId = "" },
-- SB Rig
{ MeshId = "125443585075666", Name = "Torso", Offset = CFrame.Angles(0, 3.15, 0), TextureId = "121023324229475" },
{ MeshId = "121342985816617", Name = "Left Arm", Offset = CFrame.Angles(0, 0, 1.57), TextureId = "129264637819824" },
{ MeshId = "121342985816617", Name = "Right Arm", Offset = CFrame.Angles(0, 3.15, 1.57), TextureId = "129264637819824" },
{ MeshId = "83395427313429", Names = { "Left Leg", "Right Leg" }, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "97148121718581" },--18641142410

-- Free Rig
{ MeshId = "4819720316", Name = "Torso", Offset = CFrame.Angles(0, 0, -0.25), TextureId = "4819722776" },
{ MeshId = "3030546036", Name = "Left Arm", Offset = CFrame.Angles(-1.57, 0, 1.57), TextureId = "3033903209" },
{ MeshId = "3030546036", Name = "Right Arm", Offset = CFrame.Angles(-1.57, 0, -1.57), TextureId = "3360978739" },
{ MeshId = "3030546036", Name = "Left Leg", Offset = CFrame.Angles(-1.57, 0, 1.57), TextureId = "3033898741" },
{ MeshId = "3030546036", Name = "Right Leg", Offset = CFrame.Angles(-1.57, 0, -1.57), TextureId = "3409604993" },

-- Prosthetics
{ MeshId = "117554824897780", Name = "Right Leg", Offset = CFrame.Angles(0, -1.57, 0), TextureId = "99077561039115" },
{ MeshId = "123388937940630", Name = "Left Leg", Offset = CFrame.Angles(0, 1.57, 0), TextureId = "99077561039115" },
{ MeshId = "117554824897780", Name = "Right Leg", Offset = CFrame.Angles(0, -1.57, 0), TextureId = "84429400539007" },
{ MeshId = "123388937940630", Name = "Left Leg", Offset = CFrame.Angles(0, 1.57, 0), TextureId = "84429400539007" },

-- Classic Cheap Rig
{ MeshId = "12344206657", Name = "Left Arm", Offset = CFrame.new(0.05, 0.05, -0.075) * CFrame.Angles(-2, 0, 0), TextureId = "12344206675" },
{ MeshId = "12344207333", Name = "Right Arm", Offset = CFrame.new(-0.05, 0.05, -0.075) * CFrame.Angles(-1.95, 0, 0), TextureId = "12344207341" },
{ MeshId = "11159370334", Name = "Left Leg", Offset = CFrame.Angles(1.57, 1.57, 0), TextureId = "11159284657" },
{ MeshId = "11263221350", Name = "Right Leg", Offset = CFrame.Angles(1.57, -1.57, 0), TextureId = "11263219250" },

-- Grey Mesh Rig 
{ MeshId = "127552124837034", Names = {"Torso"}, Offset = CFrame.Angles(0, 0, 0), TextureId = "131014325980101" },--14255556501
{ MeshId = "117287001096396", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 0), TextureId = "120169691545791" },--14255556501
{ MeshId = "121304376791439", Names = { "Left Leg", "Right Leg" }, Offset = CFrame.Angles(0, 0, 0), TextureId = "131014325980101" },--18641142410

-- offsale below
-- Classical Products rig (white/black arms)
{ MeshId = "14241018198", Names = {"Torso"}, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "14251599953" },
{ MeshId = "17374767929", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "17374768001" },
{ MeshId = "17387586286", Names = { "Left Leg", "Right Leg" }, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "17387586304" },
{ MeshId = "14255522247", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "14255543546" },
-- Noob Rig
{ MeshId = "18640899369", Name = "Torso", Offset = CFrame.Angles(0, 0, 0), TextureId = "18640899481" },
{ MeshId = "18640914129", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 0), TextureId = "18640914168" },
{ MeshId = "18640901641", Names = { "Left Leg", "Right Leg"}, Offset = CFrame.Angles(0, 0, 0), TextureId = "18640901676" },
-- request
{ MeshId = "14768666349", Name = "Torso", Offset = CFrame.Angles(0, 0, 0), TextureId = "14768664565" },
{ MeshId = "14768684979", Names = { "Left Arm", "Right Arm"}, Offset = CFrame.Angles(0, 0, 1.57), TextureId = "14768683674" },

{ MeshId = "133430149511748", Name = "Wing", Offset = CFrame.new(4, 0, 1) * CFrame.Angles(0, 0, 0), TextureId = "106380905898254" },

},
ApplyDescription = true,
BreakJointsDelay = 0.251,
ClickFling = false,
DefaultFlingOptions = {
HatFling = false,--{ MeshId="", TextureId = ""},
Highlight = true,
PredictionFling = true,
ToolFling = false,--"Boombox",
},
DisableCharacterCollisions = true,
DisableHealthBar = true,
DisableRigCollisions = true,
HatDrop = false,
HideCharacter = true,
ParentCharacter = true,
PermanentDeath = true,
Refit = true,
RigSize = 1,
RigTransparency = 1,
R15 = false,
SetCameraSubject = true,
SetCameraType = true,
SetCharacter = false,
SetCollisionGroup = true,
SimulationRadius = 2147483647,
TeleportRadius = 45,
})


wait(1 / 60)
Effects = { }
local Player = game.Players.localPlayer
local Mouse = Player:GetMouse()
local Character = workspace.non
local Humanoid = Character.Humanoid
local Head = Character.Head
local RootPart = Character.HumanoidRootPart
local Torso = Character.Torso
local LeftArm = Character["Left Arm"]
local RightArm = Character["Right Arm"]
local LeftLeg = Character["Left Leg"]
local RightLeg = Character["Right Leg"]
local Camera = game.Workspace.CurrentCamera
local RootJoint = RootPart.RootJoint
local Equipped = false
local Attack = false
local Anim = 'Idle'
local Idle = 0
local Combo = 1
local UIS = game:GetService("UserInputService")
local TorsoVelocity = (RootPart.Velocity * Vector3.new(1, 0, 1)).magnitude 
local Velocity = RootPart.Velocity.y
local Sine = 0
local Change = 1
local maincol = Color3.new(0,0,0)
local maincol2 = Torso.Color
local dash = false
humanoid = Humanoid
local taken = {}
local S = setmetatable({},{__index = function(s,i) return game:service(i) end})


local function soundbork(obj)
if obj:IsA("Sound") and obj.Name ~= "aa" then
obj.Looped = false
obj.Pitch = 0
obj.Volume = 0
return
end


local children = obj:GetChildren()
for i = 1, #children do
soundbork(children[i])
end
return
end





local smonk1 = Instance.new("ParticleEmitter",Torso)
smonk1.LightEmission = .5
smonk1.Size = NumberSequence.new(0.2)
smonk1.Texture = "rbxassetid://95648201"
aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 2),NumberSequenceKeypoint.new(.2, 4),NumberSequenceKeypoint.new(.4, 6),NumberSequenceKeypoint.new(.564, 8),NumberSequenceKeypoint.new(.784, 10),NumberSequenceKeypoint.new(1, 10)})
bbb = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1)})
smonk1.Transparency = bbb
smonk1.Size = aaa
smonk1.ZOffset = .5
smonk1.Acceleration = Vector3.new(0, 0, 0)
smonk1.LockedToPart = false
smonk1.EmissionDirection = "Top"
smonk1.Lifetime = NumberRange.new(8, 8)
smonk1.Rate = 2
smonk1.Rotation = NumberRange.new(0, 50)
smonk1.RotSpeed = NumberRange.new(50, 50)
smonk1.Speed = NumberRange.new(0)
smonk1.VelocitySpread = 0
smonk1.LockedToPart = true
smonk1.Enabled=false
local startColor = maincol
local endColor = maincol
local sequence = ColorSequence.new(startColor, endColor)
smonk1.Color = sequence

function Tween(obj,props,time,easing,direction,repeats,backwards)
local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
local tween = game:service'TweenService':Create(obj, info, props)

tween:Play()
end



FELOADLIBRARY = {}
loadstring(game:GetObjects("rbxassetid://5209815302")[1].Source)()
local Create = FELOADLIBRARY.Create

prepareyourself=Instance.new("Sound", Character)
prepareyourself.SoundId = "rbxassetid://1810750535"
prepareyourself.Name = "aa"
prepareyourself.Volume = 3
prepareyourself.Looped = true
prepareyourself:Play()

beet=Instance.new("Sound", Torso)
beet.SoundId = "rbxassetid://826174965"
beet.Name = "aa"
beet.Looped = true
beet.Volume = 1
beet:Play()

humanoid.WalkSpeed = 8
humanoid.JumpPower = 0
humanoid.Animator.Parent = nil
Character.Animate.Parent = nil

local newMotor = function(part0, part1, c0, c1)
local w = Create('Motor'){
Parent = part0,
Part0 = part0,
Part1 = part1,
C0 = c0,
C1 = c1,
}
return w
end


function clerp(a, b, t)
return a:lerp(b, t)
end

RootCF = CFrame.fromEulerAnglesXYZ(-1.57, 0, 3.14)
NeckCF = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)

local RW = newMotor(Torso, RightArm, CFrame.new(1.5, 0, 0), CFrame.new(0, 0, 0)) 
local LW = newMotor(Torso, LeftArm, CFrame.new(-1.5, 0, 0), CFrame.new(0, 0, 0))
local RH = newMotor(Torso, RightLeg, CFrame.new(.5, -2, 0), CFrame.new(0, 0, 0))
local LH = newMotor(Torso, LeftLeg, CFrame.new(-.5, -2, 0), CFrame.new(0, 0, 0))
RootJoint.C1 = CFrame.new(0, 0, 0)
RootJoint.C0 = CFrame.new(0, 0, 0)
Torso.Neck.C1 = CFrame.new(0, 0, 0)
Torso.Neck.C0 = CFrame.new(0, 1.5, 0)

local rarmc1 = RW.C1
local larmc1 = LW.C1
local rlegc1 = RH.C1
local llegc1 = LH.C1

local resetc1 = false

function PlayAnimationFromTable(table, speed, bool)
RootJoint.C0 = clerp(RootJoint.C0, table[1], speed) 
Torso.Neck.C0 = clerp(Torso.Neck.C0, table[2], speed) 
RW.C0 = clerp(RW.C0, table[3], speed) 
LW.C0 = clerp(LW.C0, table[4], speed) 
RH.C0 = clerp(RH.C0, table[5], speed) 
LH.C0 = clerp(LH.C0, table[6], speed) 
if bool == true then
if resetc1 == false then
resetc1 = true
RootJoint.C1 = RootJoint.C1
Torso.Neck.C1 = Torso.Neck.C1
RW.C1 = rarmc1
LW.C1 = larmc1
RH.C1 = rlegc1
LH.C1 = llegc1
end
end
end

ArtificialHB = Create("BindableEvent"){
Parent = Character,
Name = "Heartbeat",
}

Character:WaitForChild("Heartbeat")

frame = 1 / 45
tf = 0
allowframeloss = false
tossremainder = false
lastframe = tick()
Character.Heartbeat:Fire()

game:GetService("RunService").Heartbeat:connect(function(s, p)
tf = tf + s
if tf >= frame then
if allowframeloss then
Character.Heartbeat:Fire()
lastframe = tick()
else
for i = 1, math.floor(tf / frame) do
Character.Heartbeat:Fire()
end
lastframe = tick()
end
if tossremainder then
tf = 0
else
tf = tf - frame * math.floor(tf / frame)
end
end
end)

function swait(num)
if num == 0 or num == nil then
ArtificialHB.Event:wait()
else
for i = 0, num do
ArtificialHB.Event:wait()
end
end
end

local m = Create("Model"){
Parent = Character,
Name = "WeaponModel"
}



function RemoveOutlines(part)
part.TopSurface, part.BottomSurface, part.LeftSurface, part.RightSurface, part.FrontSurface, part.BackSurface = 10, 10, 10, 10, 10, 10
end

CFuncs = {	
Part = {
Create = function(Parent, Material, Reflectance, Transparency, BColor, Name, Size)
local Part = Create("Part"){
Parent = Parent,
Reflectance = Reflectance,
Transparency = Transparency,
CanCollide = false,
Locked = true,
BrickColor = BrickColor.new(tostring(BColor)),
Name = Name,
Size = Size,
Material = Material,
}
RemoveOutlines(Part)
if Size == Vector3.new() then
Part.Size = Vector3.new(0.2, 0.2, 0.2)
else
Part.Size = Size
end
return Part
end;
};

Mesh = {
Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale)
local Msh = Create(Mesh){
Parent = Part,
Offset = OffSet,
Scale = Scale,
}
if Mesh == "SpecialMesh" then
Msh.MeshType = MeshType
Msh.MeshId = MeshId
end
return Msh
end;
};

Weld = {
Create = function(Parent, Part0, Part1, C0, C1)
local Weld = Create("Weld"){
Parent = Parent,
Part0 = Part0,
Part1 = Part1,
C0 = C0,
C1 = C1,
}
return Weld
end;
};

Sound = {
Create = function(id, par, vol, pit) 
local Sound = Create("Sound"){
Volume = vol,
Pitch = pit or 1,
Name = "aa",
SoundId = "rbxassetid://" .. id,
Parent = par or workspace,
}
Sound:play() 
return Sound
end;
};

Decal = {
Create = function(Color, Texture, Transparency, Name, Parent)
local Decal = Create("Decal"){
Color3 = Color,
Texture = "rbxassetid://" .. Texture,
Transparency = Transparency,
Name = Name,
Parent = Parent,
}
return Decal
end;
};

BillboardGui = {
Create = function(Parent, Image, Position, Size)
local BillPar = CFuncs.Part.Create(Parent, "SmoothPlastic", 0, 1, BrickColor.new("Black"), "BillboardGuiPart", Vector3.new(1, 1, 1))
BillPar.CFrame = CFrame.new(Position)
local Bill = Create("BillboardGui"){
Parent = BillPar,
Adornee = BillPar,
Size = UDim2.new(1, 0, 1, 0),
SizeOffset = Vector2.new(Size, Size),
}
local d = Create("ImageLabel", Bill){
Parent = Bill,
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Image = "rbxassetid://" .. Image,
}
return BillPar
end
};

ParticleEmitter = {
Create = function(Parent, Color1, Color2, LightEmission, Size, Texture, Transparency, ZOffset, Accel, Drag, LockedToPart, VelocityInheritance, EmissionDirection, Enabled, LifeTime, Rate, Rotation, RotSpeed, Speed, VelocitySpread)
local Particle = Create("ParticleEmitter"){
Parent = Parent,
Color = ColorSequence.new(Color1, Color2),
LightEmission = LightEmission,
Size = Size,
Texture = Texture,
Transparency = Transparency,
ZOffset = ZOffset,
Acceleration = Accel,
Drag = Drag,
LockedToPart = LockedToPart,
VelocityInheritance = VelocityInheritance,
EmissionDirection = EmissionDirection,
Enabled = Enabled,
Lifetime = LifeTime,
Rate = Rate,
Rotation = Rotation,
RotSpeed = RotSpeed,
Speed = Speed,
VelocitySpread = VelocitySpread,
}
return Particle
end;
};

CreateTemplate = {

};
}

targetted = nil

--[[Credit to CKBackup for his lock-on script.--]]
function LockOn()
if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
TargetSelect(Mouse.Target.Parent)
print("Targeting")
print(Mouse.Target.Parent)
else end
end


function TargetSelect(person)
local dd=coroutine.wrap(function()
if targetted ~= person then
targetted = person
for i = 0,9,1 do
wait(.01)
end
end
end)
dd()
end

function RayCast(Position, Direction, Range, Ignore)
return game:service("Workspace"):FindPartOnRay(Ray.new(Position, Direction.unit * (Range or 999.999)), Ignore) 
end 


FindNearestTorso = function(pos)
local list = (game.Workspace:children())
local torso = nil
local dist = 1000
local temp, human, temp2 = nil, nil, nil
for x = 1, #list do
temp2 = list[x]
if temp2.className == "Model" and temp2.Name ~= Character.Name then
temp = temp2:findFirstChild("Torso")
human = temp2:findFirstChild("Humanoid")
if temp ~= nil and human ~= nil and human.Health > 0 and (temp.Position - pos).magnitude < dist then
local dohit = true
if dohit == true then
torso = temp
dist = (temp.Position - pos).magnitude
end
end
end
end
return torso, dist
end

Laser = function(brickcolor, reflect, cframe, x1, y1, z1, x3, y3, z3, delay)

local prt = CFuncs.Part.Create(EffectModel, "Neon", reflect, 0, brickcolor, "Effect", Vector3.new(0.5, 0.5, 0.5))
prt.Anchored = true
prt.CFrame = cframe
prt.Material = "Neon"
local msh = CFuncs.Mesh.Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 10)
coroutine.resume(coroutine.create(function(Part, Mesh)

for i = 0, 1, delay do
swait()
Part.Transparency = i
Mesh.Scale = Mesh.Scale + Vector3.new(x3, y3, z3)
end
Part.Parent = nil
end
), prt, msh)
end




shoot = function(mouse, aoe , partt, SpreadAmount, multiply)

local SpreadVectors = Vector3.new(math.random(-SpreadAmount, SpreadAmount), math.random(-SpreadAmount, SpreadAmount), math.random(-SpreadAmount, SpreadAmount))
local MainPos = partt.Position
local MainPos2 = mouse.Hit.p + SpreadVectors
local MouseLook = CFrame.new((MainPos + MainPos2) / 2, MainPos2)
local speed = 1000
local num = 1
coroutine.resume(coroutine.create(function()

repeat
swait()
local hit, pos = RayCast(MainPos, MouseLook.lookVector, speed, RootPart.Parent)
local mag = (MainPos - pos).magnitude                                                            
Laser(BrickColor.new(maincol), 0, CFrame.new((MainPos + pos)/2, pos) * CFrame.Angles(1.57, 0, 0), 5, mag * (speed / (speed / 2)), 20, 20, 0, 20, 0.8)
MainPos = MainPos + MouseLook.lookVector * speed
num = num - 1
MouseLook = MouseLook * CFrame.Angles(math.rad(-1), 0, 0)
if hit ~= nil then
num = 0
local refpart = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 1, "Really black", "Effect", Vector3.new())
refpart.Anchored = true
refpart.CFrame = CFrame.new(pos)
game:GetService("Debris"):AddItem(refpart, 2)
end
do
if num <= 0 then
local refpart = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 1, "Really black", "Effect", Vector3.new())
refpart.Anchored = true
refpart.CFrame = CFrame.new(pos)
Effects.Block.Create(BrickColor.new(maincol), refpart.CFrame, 10, 10, 10, 10, 10, 10, .1, 1)
Effects.Break.Create(BrickColor.new(maincol), refpart.CFrame, 2, 10, 2)
if hit ~= nil then
MagnitudeDamage(refpart, aoe, 1.5 * multiply, 1.5 * multiply, 0, "Normal", "231917784", 0)
end
game:GetService("Debris"):AddItem(refpart, 0)
end
end
until num <= 0
end
))
end


Laser2 = function(brickcolor, reflect, cframe, x1, y1, z1, x3, y3, z3, delay)

local prt = CFuncs.Part.Create(EffectModel, "Neon", reflect, 0, brickcolor, "Effect", Vector3.new(0.5, 0.5, 0.5))
prt.Anchored = true
prt.CFrame = cframe
prt.Material = "Neon"
local msh = CFuncs.Mesh.Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 10)
coroutine.resume(coroutine.create(function(Part, Mesh)

for i = 0, 1, delay do
swait()
Part.Transparency = i
Mesh.Scale = Mesh.Scale + Vector3.new(x3, y3, z3)
end
Part.Parent = nil
end
), prt, msh)
end




shoot2 = function(mouse, aoe , partt, SpreadAmount, multiply)

local SpreadVectors = Vector3.new(math.random(-SpreadAmount, SpreadAmount), math.random(-SpreadAmount, SpreadAmount), math.random(-SpreadAmount, SpreadAmount))
local MainPos = partt.Position
local MainPos2 = mouse.Hit.p + SpreadVectors
local MouseLook = CFrame.new((MainPos + MainPos2) / 2, MainPos2)
local speed = 1000
local num = 1
coroutine.resume(coroutine.create(function()

repeat
swait()
local hit, pos = RayCast(MainPos, MouseLook.lookVector, speed, RootPart.Parent)
local mag = (MainPos - pos).magnitude                                                            
Laser2(BrickColor.new(maincol), 0, CFrame.new((MainPos + pos)/2, pos) * CFrame.Angles(1.57, 0, 0), 5, mag * (speed / (speed / 2)), .8, .8, 0, .8, 0.8)
MainPos = MainPos + MouseLook.lookVector * speed
num = num - 1
MouseLook = MouseLook * CFrame.Angles(math.rad(-1), 0, 0)
if hit ~= nil then
num = 0
local refpart = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 1, "Really black", "Effect", Vector3.new())
refpart.Anchored = true
refpart.CFrame = CFrame.new(pos)
game:GetService("Debris"):AddItem(refpart, 2)
end
do
if num <= 0 then
local refpart = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 1, "Really black", "Effect", Vector3.new())
refpart.Anchored = true
refpart.CFrame = CFrame.new(pos)
Effects.Block.Create(BrickColor.new(maincol), refpart.CFrame, 1, 1, 1, 1, 1, 1, .05, 1)
Effects.Break.Create(BrickColor.new(maincol), refpart.CFrame, .5, 3, .5)
if hit ~= nil then
MagnitudeDamage(refpart, aoe, 1.5 * multiply, 1.5 * multiply, 0, "Normal", "231917784", 0)
end
game:GetService("Debris"):AddItem(refpart, 0)
end
end
until num <= 0
end
))
end

function MagnitudeDamage(Part, Magnitude, MinimumDamage, MaximumDamage, KnockBack, Type, HitSound, HitPitch)
for _, c in pairs(workspace:children()) do
local hum = c:findFirstChildOfClass("Humanoid")
if hum ~= nil then
local head = c:findFirstChild("Torso")
if head ~= nil then
local targ = head.Position - Part.Position
local mag = targ.magnitude
if mag <= Magnitude and c.Name ~= Character.Name and c.Name ~= Player.Name then
Empyrean.Fling(hum, {HatFling = false, Highlight = true, PredictionFling = true, ToolFling = false})
Effects.Lightning.Create(Part.Position, head.Position, 2, 5, "Really black", 1, 0, 3)
end
end
end
end
end


EffectModel = Create("Model"){
Parent = Character,
Name = "EffectModel",
}

Effects = {
Block = {
Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay, Type)
local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
prt.Anchored = true
prt.CFrame = cframe
local msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 10)
if Type == 1 or Type == nil then
table.insert(Effects, {
prt,
"Block1",
delay,
x3,
y3,
z3,
msh
})
elseif Type == 2 then
table.insert(Effects, {
prt,
"Block2",
delay,
x3,
y3,
z3,
msh
})
end
end;
};

Cylinder = {
Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new(0.2, 0.2, 0.2))
prt.Anchored = true
prt.CFrame = cframe
local msh = CFuncs.Mesh.Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 2)
table.insert(Effects, {
prt,
"Cylinder",
delay,
x3,
y3,
z3,
msh
})
end;
};

Head = {
Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
prt.Anchored = true
prt.CFrame = cframe
local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Head", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 10)
table.insert(Effects, {
prt,
"Cylinder",
delay,
x3,
y3,
z3,
msh
})
end;
};

Sphere1 = {
Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
local prt = CFuncs.Part.Create(EffectModel, "Glass", 0, 0, brickcolor, "Effect", Vector3.new())
prt.Anchored = true
prt.CFrame = cframe
local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 10)
table.insert(Effects, {
prt,
"Cylinder",
delay,
x3,
y3,
z3,
msh
})
end;
};

Sphere2 = {
Create = function(brickcolor, parent, cframe, x1, y1, z1, x3, y3, z3, delay)
if parent then
local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
prt.Anchored = true
prt.CFrame = cframe
prt.Parent = parent
local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 10)
table.insert(Effects, {
prt,
"Cylinder",
delay,
x3,
y3,
z3,
msh
})
end;
end
};

Elect = {
Create = function(cff, x, y, z)
local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, BrickColor.new(maincol), "Part", Vector3.new(1, 1, 1))
prt.Anchored = true
prt.CFrame = cff * CFrame.new(math.random(-x, x), math.random(-y, y), math.random(-z, z))
prt.CFrame = CFrame.new(prt.Position)
game:GetService("Debris"):AddItem(prt, 2)
local xval = math.random() / 2
local yval = math.random() / 2
local zval = math.random() / 2
local msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(xval, yval, zval))
table.insert(Effects, {
prt,
"Elec",
0.1,
x,
y,
z,
xval,
yval,
zval
})
end;

};

Ring = {
Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new())
prt.Anchored = true
prt.CFrame = cframe
local msh = CFuncs.Mesh.Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 10)
table.insert(Effects, {
prt,
"Cylinder",
delay,
x3,
y3,
z3,
msh
})
end;
};


Wave = {
Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new())
prt.Anchored = true
prt.CFrame = cframe
local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "FileMesh", "rbxassetid://20329976", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 10)
table.insert(Effects, {
prt,
"Cylinder",
delay,
x3,
y3,
z3,
msh
})
end;
};

Break = {
Create = function(brickcolor, cframe, x1, y1, z1)
local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new(0.5, 0.5, 0.5))
prt.Anchored = true
prt.CFrame = cframe * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
local num = math.random(10, 50) / 1000
game:GetService("Debris"):AddItem(prt, 10)
table.insert(Effects, {
prt,
"Shatter",
num,
prt.CFrame,
math.random() - math.random(),
0,
math.random(50, 100) / 100
})
end;
};

Fire = {
Create = function(brickcolor, cframe, x1, y1, z1, delay)
local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
prt.Anchored = true
prt.CFrame = cframe
msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
game:GetService("Debris"):AddItem(prt, 10)
table.insert(Effects, {
prt,
"Fire",
delay,
1,
1,
1,
msh
})
end;
};

FireWave = {
Create = function(brickcolor, cframe, x1, y1, z1)
local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 1, brickcolor, "Effect", Vector3.new())
prt.Anchored = true
prt.CFrame = cframe
msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
local d = Create("Decal"){
Parent = prt,
Texture = "rbxassetid://26356434",
Face = "Top",
}
local d = Create("Decal"){
Parent = prt,
Texture = "rbxassetid://26356434",
Face = "Bottom",
}
game:GetService("Debris"):AddItem(prt, 10)
table.insert(Effects, {
prt,
"FireWave",
1,
30,
math.random(400, 600) / 100,
msh
})
end;
};

Lightning = {
Create = function(p0, p1, tym, ofs, col, th, tra, last)
local magz = (p0 - p1).magnitude
local curpos = p0
local trz = {
-ofs,
ofs
}
for i = 1, tym do
local li = CFuncs.Part.Create(EffectModel, "Neon", 0, tra or 0.4, col, "Ref", Vector3.new(th, th, magz / tym))
local ofz = Vector3.new(trz[math.random(1, 2)], trz[math.random(1, 2)], trz[math.random(1, 2)])
local trolpos = CFrame.new(curpos, p1) * CFrame.new(0, 0, magz / tym).p + ofz
li.Material = "Neon"
if tym == i then
local magz2 = (curpos - p1).magnitude
li.Size = Vector3.new(th, th, magz2)
li.CFrame = CFrame.new(curpos, p1) * CFrame.new(0, 0, -magz2 / 2)
table.insert(Effects, {
li,
"Disappear",
last
})
else
do
do
li.CFrame = CFrame.new(curpos, trolpos) * CFrame.new(0, 0, magz / tym / 2)
curpos = li.CFrame * CFrame.new(0, 0, magz / tym / 2).p
game.Debris:AddItem(li, 10)
table.insert(Effects, {
li,
"Disappear",
last
})
end
end
end
end
end
};

EffectTemplate = {

};
}

--Intro
--[[
CFuncs.Sound.Create("1818153677", Character, 5, 1)
humanoid.WalkSpeed = 0	
Humanoid.AutoRotate = false
if Player.Name ~= "SezHu" then
for i = 0, 10, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, -1.80644357, -0.507104576, 1, 0, 0, 0, 0.087155968, 0.996194661, 0, -0.996194661, 0.087155968) * CFrame.new(0, 0, 0) * CFrame.Angles(0,0,0), 
CFrame.new(0, 1.57219315, -0.165327191, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-20,20)), math.rad(math.random(-20,20)), math.rad(math.random(-20,20))), 
CFrame.new(0.615828335, 1.3200798, -0.837673247, 0.669632733, 0.664489031, -0.331732333, 0.385775059, -0.692879617, -0.60917598, -0.634641349, 0.279950112, -0.720318198) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-20,20)), math.rad(math.random(-20,20)), math.rad(math.random(-20,20))), 
CFrame.new(-0.739693701, 1.31393027, -0.754651427, 0.749911249, -0.603388131, 0.271211922, -0.220070332, -0.614161789, -0.757874966, 0.623860657, 0.508653224, -0.593354702) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-20,20)), math.rad(math.random(-20,20)), math.rad(math.random(-20,20))), 
CFrame.new(0.5, -1.62046599, -0.488587797, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.6686697, -0.494725078, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end

for i = 0, 2, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, -1.80644476, -0.507115483, 1, 0, 0, 0, -0.087155968, 0.996194661, 0, -0.996194661, -0.087155968) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.55874133, -0.098664701, 1, 0, 0, 0, 0.99619478, 0.0871553123, 0, -0.0871553123, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-20,20)), math.rad(math.random(-20,20)), math.rad(math.random(-20,20))), 
CFrame.new(0.615828335, 1.44548559, -0.595717013, 0.669632733, 0.664489031, -0.331732333, 0.490118831, -0.730966151, -0.474838912, -0.558010399, 0.155379415, -0.815157413) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-20,20)), math.rad(math.random(-20,20)), math.rad(math.random(-20,20))), 
CFrame.new(-0.739693701, 1.42501283, -0.515024424, 0.749911249, -0.603388131, 0.271211922, -0.325059503, -0.693158209, -0.643325806, 0.576167881, 0.394277275, -0.715944171) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-20,20)), math.rad(math.random(-20,20)), math.rad(math.random(-20,20))), 
CFrame.new(0.5, -1.51100469, -0.762556732, 1, 0, 0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.55741048, -0.776971221, 1, 0, 0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end

for i = 0, 8, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, -1.80644584, -0.507103682, 1, 0, 0, 0, -0.258818984, 0.965925872, 0, -0.965925872, -0.258818984) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.42364717, -0.0858392715, 1, 0, 0, 0, 0.965925872, 0.258819342, 0, -0.258819342, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(0.615828335, 1.52697062, -0.335661292, 0.669632733, 0.664489031, -0.331732333, 0.579570174, -0.746842504, -0.326074779, -0.464424938, 0.0260881484, -0.885228276) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(-0.739693701, 1.49279666, -0.259749591, 0.749911249, -0.603388131, 0.271211922, -0.420171499, -0.75109303, -0.509230137, 0.510968745, 0.267921865, -0.816779613) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(0.5, -1.35563302, -1.01335466, 1, 0, 0, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.39883053, -1.03560853, 1, 0, 0, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end


for i = 0, 2, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, -1.80644584, -0.507103682, 1, 0, 0, 0, -0.258818984, 0.965925872, 0, -0.965925872, -0.258818984) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.42364717, -0.0858392715, 1, 0, 0, 0, 0.965925872, 0.258819342, 0, -0.258819342, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(0.615828335, 1.52697062, -0.335661292, 0.669632733, 0.664489031, -0.331732333, 0.579570174, -0.746842504, -0.326074779, -0.464424938, 0.0260881484, -0.885228276) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(-0.739693701, 1.49279666, -0.259749591, 0.749911249, -0.603388131, 0.271211922, -0.420171499, -0.75109303, -0.509230137, 0.510968745, 0.267921865, -0.816779613) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(0.5, -1.35563302, -1.01335466, 1, 0, 0, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.39883053, -1.03560853, 1, 0, 0, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end
for i = 0, 6, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, -1.80644357, -0.507104576, 1, 0, 0, 0, 0.087155968, 0.996194661, 0, -0.996194661, 0.087155968) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.63373017, 0.0706499815, 1, 0, 0, 0, 0.965925932, -0.258818567, 0, 0.258818597, 0.965925932) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(0.615828335, 1.3200798, -0.837673247, 0.669632733, 0.664489031, -0.331732333, 0.385775059, -0.692879617, -0.60917598, -0.634641349, 0.279950112, -0.720318198) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(-0.739693701, 1.31393027, -0.754651427, 0.749911249, -0.603388131, 0.271211922, -0.220070332, -0.614161789, -0.757874966, 0.623860657, 0.508653224, -0.593354702) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(0.5, -1.62046599, -0.488587797, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.6686697, -0.494725078, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end


for i = 0, 10, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, -1.80644357, -0.507104576, 1, 0, 0, 0, 0.087155968, 0.996194661, 0, -0.996194661, 0.087155968) * CFrame.new(0, 0, 0) * CFrame.Angles(0,0,0), 
CFrame.new(0, 1.57219315, -0.165327191, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(0.615828335, 1.3200798, -0.837673247, 0.669632733, 0.664489031, -0.331732333, 0.385775059, -0.692879617, -0.60917598, -0.634641349, 0.279950112, -0.720318198) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(-0.739693701, 1.31393027, -0.754651427, 0.749911249, -0.603388131, 0.271211922, -0.220070332, -0.614161789, -0.757874966, 0.623860657, 0.508653224, -0.593354702) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-30,30)), math.rad(math.random(-30,30)), math.rad(math.random(-30,30))), 
CFrame.new(0.5, -1.62046599, -0.488587797, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.6686697, -0.494725078, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end

for i = 0, 1, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(-0, -1.42307341, -0.395170838, 1, 0, 0, 0, 0.965926111, 0.25881803, 0, -0.25881803, 0.965926111) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.5574708, 0.0711615086, 1, 0, -0, 0, 0.906308413, -0.422617137, 0, 0.422617137, 0.906308413) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.47940862, 1.35474229, -0.0792688802, 0.0329260081, -0.0681179985, -0.997133851, 0.0255137086, -0.997292399, 0.0689713135, -0.999132156, -0.0277115256, -0.0310989153) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.42682672, 1.4937793, -0.434564888, -0.987767458, -0.0547382608, -0.146011457, 0.0626192689, -0.996787667, -0.0499334633, -0.142809138, -0.0584657788, 0.98802197) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.35469198, 1.14829361, 1, 0, 0, 0, 0.25881803, 0.965926111, 0, -0.965926111, 0.25881803) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.37694573, 1.19149125, 1, 0, 0, 0, 0.25881803, 0.965926111, 0, -0.965926111, 0.25881803) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end

for i = 0, 20, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(-0, -1.73198283, -0.408192486, 1, 0, 0, 0, 0.965926111, 0.25881803, 0, -0.25881803, 0.965926111) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.52978098, 0.0132061839, 1, 0, 0, 0, 0.965926111, -0.25881803, 0, 0.25881803, 0.965926111) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(30), math.rad(0), math.rad(math.random(-20,20))), 
CFrame.new(1.50245035, -0.135501236, -0.426563323, 0.103369966, -0.0218989942, -0.994401932, -0.260855079, 0.964166582, -0.0483495258, 0.959827721, 0.264392674, 0.0939534009) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-10,10)), math.rad(math.random(-10,10)), math.rad(math.random(-10,10))), 
CFrame.new(-1.50386858, -0.0327540934, -0.608011007, -0.987763107, 0.0418113954, 0.150252879, 0.062630102, 0.988642037, 0.136617646, -0.142834127, 0.144356206, -0.979162872) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-10,10)), math.rad(math.random(-10,10)), math.rad(math.random(-10,10))), 
CFrame.new(0.5, -1.05967855, 1.24081683, 1, 0, 0, 0, 0.25881803, 0.965926111, 0, -0.965926111, 0.25881803) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.08193231, 1.28401434, 1, 0, 0, 0, 0.25881803, 0.965926111, 0, -0.965926111, 0.25881803) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end
end
]]

Humanoid.AutoRotate = true
humanoid.WalkSpeed = 8
WingMain=CFuncs.Part.Create(m,Enum.Material.Plastic,0,1,"Medium stone grey","Wing",Vector3.new(2, 2, 1))
WingMainWeld=CFuncs.Weld.Create(m,Character["Torso"],WingMain,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(-0.081413269, 0.0268063918, 0.0410137177, 1.00000834, -0.00011451864, 0.000338948274, 0.000117048308, 1, 1.29755635e-05, -0.00033910721, -1.32235973e-05, 1))
Wing=CFuncs.Part.Create(m,Enum.Material.Plastic,0,1,"Medium stone grey","Wing",Vector3.new(2, 2, 1))
WingWeld=CFuncs.Weld.Create(m,WingMain,Wing,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(-0.081413269, 0.0268063918, 0.0410137177, 1.00000834, -0.00011451864, 0.000338948274, 0.000117048308, 1, 1.29755635e-05, -0.00033910721, -1.32235973e-05, 1)) 
local WingW = Instance.new("Weld", Character.Wing)
WingW.Part0 = Character.Wing
WingW.Part1 = Wing

function punch1()
Attack = true
CFuncs.Sound.Create("160772554", Torso, 1, .5)
for i = 0, 5, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, 1.25783896, 0.0750579834, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0 + .2 * math.cos(Sine/30), 0), 
CFrame.new(0, 1.5722059, -0.165335715, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.770152092, 1.15917587, -0.772684395, 0.669632077, 0.727706194, -0.14844726, 0.385775059, -0.511604249, -0.767749131, -0.634642065, 0.456842214, -0.62331754) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.29209483, 1.91917002, -0.0983848572, -0.225760028, -0.171030968, 0.959052086, 0.12644501, -0.981284738, -0.145230755, 0.965942144, 0.0884800404, 0.243160874) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.38367569, -0.476289868, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.97375119, -0.383697003, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
Effects.Sphere2.Create(BrickColor.new(maincol), workspace, LeftArm.CFrame * CFrame.new(0,-1,0), 1, 1, 1, 1, 1, 1, .08)
WingWeld.C0 = clerp(WingWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0 - 30 * math.cos(Sine/30)/2)), 0.1)
end
local refpart = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 1, "Really black", "Effect", Vector3.new(2,2,2))
refpart.Anchored = true
refpart.CFrame = RootPart.CFrame * CFrame.new(0,-3,-2)
CFuncs.Sound.Create("161006163", refpart, 1, .5) 
local x = -2
for i = 0, 5, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(-0.16791907, 1.25783801, -0.158113495, 0.500002861, 0.29619804, -0.813796043, 0, 0.939692497, 0.342020661, 0.866023839, -0.171011299, 0.469848901) * CFrame.new(0, 0 + .2 * math.cos(Sine/30), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-6.46886292e-06, 1.62946367, -0.0650552511, 1.00000012, 4.02331352e-06, -6.97374344e-06, -2.74181366e-06, 0.98480773, 0.173648745, 7.53998756e-06, -0.173648715, 0.98480773) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.612076044, 1.2946707, -0.631058097, 0.6696347, 0.727704465, -0.148444876, 0.579569697, -0.637001276, -0.508260369, -0.464422941, 0.254314631, -0.848313451) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.94840646, 0.622272074, -0.543509424, 0.0544967018, 0.675845683, 0.735025764, 0.990212917, -0.131301612, 0.047313042, 0.12848635, 0.725253463, -0.676386535) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.499989152, -1.13731849, -0.920836091, 0.984807372, -6.66826963e-07, -0.173651665, -0.0733877793, 0.906307876, -0.416197658, 0.157382131, 0.422618359, 0.892538369) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.636995614, -1.71154809, -1.03457654, 0.996194661, 0.0871571898, -5.48362732e-06, -0.0868259892, 0.992403746, -0.0871572122, -0.00759088993, 0.0868260115, 0.99619472) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
Effects.Sphere2.Create(BrickColor.new(maincol), workspace, refpart.CFrame, 1, 3, 1, 5, 10, 5, .04)
WingWeld.C0 = clerp(WingWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0 - 30 * math.cos(Sine/30)/2)), 0.1)
refpart.CFrame = refpart.CFrame * CFrame.new(0,0,x)
MagnitudeDamage(refpart, 10, 0, 0, 0, "Normal", " ", 1)
x = x - .01
end
local x = -2
refpart:Destroy()
Torso.Velocity=RootPart.CFrame.lookVector*0
Attack = false
end



function explodeatmouse()
Attack = true
for i = 0, 1, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, 1.25783896, 0.0750579834, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.5722059, -0.165335715, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.770152092, 1.15917587, -0.772684395, 0.669632077, 0.727706194, -0.14844726, 0.385775059, -0.511604249, -0.767749131, -0.634642065, 0.456842214, -0.62331754) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.29209483, 1.91917002, -0.0983848572, -0.225760028, -0.171030968, 0.959052086, 0.12644501, -0.981284738, -0.145230755, 0.965942144, 0.0884800404, 0.243160874) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.38367569, -0.476289868, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.97375119, -0.383697003, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .2, false)
end
local egg = Mouse.Hit
local shur = Instance.new("Part",Character)
local gahd = Instance.new("Sound",shur)
shur.Transparency = 1
shur.Material = "Neon"
shur.BrickColor = BrickColor.new("Royal purple")
shur.Anchored = true
shur.CFrame = Mouse.Hit
shur.Rotation = Vector3.new(0,math.random(-500,500),0)
shur.Size = Vector3.new(1,0.2,1)
shur.CanCollide = false
local dec = Instance.new("Decal",shur)
dec.Texture = "rbxassetid://1208118228"
dec.Face = "Top"
dec.Color3 = Color3.new(0,0,0)
table.insert(Effects, {dec,"Disappear",.01})
local value1 = 1*2.25
local x = 500
CFuncs.Sound.Create("331888777", shur, 10, .9)
for i = 0, 5, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(-0.16791907, 1.25783801, -0.158113495, 0.500002861, 0.29619804, -0.813796043, 0, 0.939692497, 0.342020661, 0.866023839, -0.171011299, 0.469848901) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-6.46886292e-06, 1.62946367, -0.0650552511, 1.00000012, 4.02331352e-06, -6.97374344e-06, -2.74181366e-06, 0.98480773, 0.173648745, 7.53998756e-06, -0.173648715, 0.98480773) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.612076044, 1.2946707, -0.631058097, 0.6696347, 0.727704465, -0.148444876, 0.579569697, -0.637001276, -0.508260369, -0.464422941, 0.254314631, -0.848313451) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.94840646, 0.622272074, -0.543509424, 0.0544967018, 0.675845683, 0.735025764, 0.990212917, -0.131301612, 0.047313042, 0.12848635, 0.725253463, -0.676386535) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.499989152, -1.13731849, -0.920836091, 0.984807372, -6.66826963e-07, -0.173651665, -0.0733877793, 0.906307876, -0.416197658, 0.157382131, 0.422618359, 0.892538369) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.636995614, -1.71154809, -1.03457654, 0.996194661, 0.0871571898, -5.48362732e-06, -0.0868259892, 0.992403746, -0.0871572122, -0.00759088993, 0.0868260115, 0.99619472) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
shur.CFrame = Mouse.Hit
shur.Rotation = Vector3.new(0,x,0)
x = x - 5
shur.Size = shur.Size + Vector3.new(value1,0,value1)
value1 = value1 - 0.015*2.25
end
CFuncs.Sound.Create("919941001", Character, 1, 1)
Effects.Sphere2.Create(BrickColor.new("Smoky grey"), workspace, shur.CFrame, 4, 8, 4, 20, 40, 20, .01)
Effects.Sphere2.Create(BrickColor.new(maincol), workspace, shur.CFrame, 5, 10, 5, 25, 50, 25, .01)
Effects.Wave.Create(BrickColor.new("Smoky grey"), shur.CFrame, 4, .001, 4, 4, .01, 4, .01)
Effects.Wave.Create(BrickColor.new(maincol), shur.CFrame, 4, .001, 4, 5, .01, 5, .01)
for i = 0, 10 do
local refpart = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, "Really black", "Effect", Vector3.new(5,5,5))
refpart.Anchored = false
refpart.CFrame = shur.CFrame * CFrame.new(math.random(-5,5), math.random(0,0),math.random(-5,5))
refpart.CanCollide = true
refpart.Velocity = Vector3.new(math.random(-60,60),math.random(80,150),math.random(-60,60))
game:GetService("Debris"):AddItem(refpart, 2)
table.insert(Effects, {refpart,"Disappear",.01})
local hit, pos = RayCast(shur.Position, (CFrame.new(shur.Position, shur.Position - Vector3.new(0, 1, 0))).lookVector, 10, shur)
if hit ~= nil then
refpart.Material = hit.Material
refpart.BrickColor = BrickColor.new(hit.Color)
CFuncs.Sound.Create("172019967", refpart, 1, 1)
end	
end
dec:Destroy()
shur:Destroy()
MagnitudeDamage(shur, 40, 0, 0, 80, "Normal", " ", 1)
Attack = false
end

local deathrain = false

function armagedd()
Attack = true
deathrain = true
for i = 0, 1, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, 1.25783896, 0.0750579834, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.5722059, -0.165335715, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.770152092, 1.15917587, -0.772684395, 0.669632077, 0.727706194, -0.14844726, 0.385775059, -0.511604249, -0.767749131, -0.634642065, 0.456842214, -0.62331754) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.29209483, 1.91917002, -0.0983848572, -0.225760028, -0.171030968, 0.959052086, 0.12644501, -0.981284738, -0.145230755, 0.965942144, 0.0884800404, 0.243160874) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.38367569, -0.476289868, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.97375119, -0.383697003, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .2, false)
end
local shur = Instance.new("Part",Camera)
shur.CFrame = Mouse.Hit
shur.Anchored = true
shur.CanCollide = false
shur.Transparency = 1
shur.Rotation = Vector3.new(0,500,0)
CFuncs.Sound.Create("331888777", shur, 10, .9)
for i = 0, 2, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, 1.50806487, -0.0493182242, 1, 0, 0, 0, 0.965925872, 0.258818984, 0, -0.258818984, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.57220507, -0.165325716, 1, 0, 0, 0, 0.99619478, -0.0871558785, 0, 0.0871558785, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.770143628, 1.15917659, -0.772669554, 0.669632196, 0.727706075, -0.148447335, 0.385774463, -0.511604011, -0.767749667, -0.634642303, 0.456842661, -0.623317003) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.15002179, 0.770601869, -1.3447417, 0.150704995, -0.239807919, 0.959051669, 0.988570929, 0.0404406041, -0.145231575, -0.00395695865, 0.969977796, 0.243161768) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.38367522, -0.476285875, 1, 0, 0, 0, 0.99619478, -0.0871558785, 0, 0.0871558785, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.97375286, -0.38368547, 1, 0, 0, 0, 0.99619478, -0.0871558785, 0, 0.0871558785, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .2, false)
end
Attack = false
for i = 1, 1 do
local met = Instance.new("Part",workspace)
met.CFrame = shur.CFrame * CFrame.new(math.random(-50,50),300,math.random(-50,50))
met.Anchored = false
met.CanCollide = false
met.Transparency = 0
met.Size = Vector3.new(.1,.1,.1)
met.Material = "Neon"
met.BrickColor = BrickColor.new(maincol)
local mbewm2 = Instance.new("SpecialMesh", met)
mbewm2.MeshType = "Sphere"
mbewm2.Scale = Vector3.new(100,100,100)
local con = met.Touched:connect(function(hit)
if hit ~= met and hit.Name ~= "Effect" and hit.Name ~= "what" then
MagnitudeDamage(met, 30, 0, 0, 20, "Normal", " ", 1)
CFuncs.Sound.Create("239000203", workspace, .5, 1)
Effects.Sphere2.Create(BrickColor.new("Smoky grey"), EffectModel, met.CFrame, 1, 3, 1, 5, 10, 5, .01)
Effects.Sphere2.Create(BrickColor.new(maincol), EffectModel, met.CFrame, 2, 4, 2, 6, 11, 6, .01)

for i = 0, 1 do
local frag = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, "Really black", "Effect", Vector3.new(.1,.1,.1))
frag.Anchored = false
frag.CFrame = met.CFrame * CFrame.new(math.random(-5,5), 10,math.random(-5,5))
frag.CanCollide = false
frag.Velocity = Vector3.new(math.random(-100,100),math.random(80,150),math.random(-100,100))
local flame = Instance.new("Fire",frag)
flame.SecondaryColor = Color3.new(0,0,0)
flame.Color = Color3.new(0,0,0)
flame.Heat = 15
local mbewm2 = Instance.new("SpecialMesh", frag)
mbewm2.MeshType = "Sphere"
mbewm2.Scale = Vector3.new(50,50,50)
local con = frag.Touched:connect(function(hit)
if hit ~= met and hit.Name ~= "Effect" and hit.Name ~= frag then
MagnitudeDamage(frag, 25, 0, 0, 20, "Normal", " ", 1)
CFuncs.Sound.Create("206049428", workspace, .5, 1)
Effects.Sphere2.Create(BrickColor.new("Smoky grey"), EffectModel, frag.CFrame, .5, 2, .5, 3, 5, 3, .03)
Effects.Sphere2.Create(BrickColor.new(maincol), EffectModel, frag.CFrame, .6, 3, .6, 4, 6, 4, .03)
frag:Destroy()
end
end)
met:Destroy()end end end)
Effects.Sphere2.Create(BrickColor.new("Smoky grey"), EffectModel, shur.CFrame, .5, 2, .5, .5, 10, .5, .03)
wait(.5)
end
deathrain = false
shur:Destroy()
end


function obliterate()
Attack = true
Humanoid.WalkSpeed = 0
Humanoid.JumpPower = 0
Humanoid.AutoRotate = false
local refpart = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 1, "Really black", "Effect", Vector3.new())
refpart.Anchored = true
refpart.CFrame = RootPart.CFrame * CFrame.new(0,80,0)
local smonk1 = Instance.new("ParticleEmitter",refpart)
smonk1.LightEmission = .5
smonk1.Size = NumberSequence.new(0.2)
smonk1.Texture = "rbxassetid://382425306"
aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0),NumberSequenceKeypoint.new(.2, 5),NumberSequenceKeypoint.new(.4, 10),NumberSequenceKeypoint.new(.564, 20),NumberSequenceKeypoint.new(.784, 50),NumberSequenceKeypoint.new(1, 100)})
bbb = NumberSequence.new({NumberSequenceKeypoint.new(0, .3), NumberSequenceKeypoint.new(.7, .5), NumberSequenceKeypoint.new(1, 1)})
smonk1.Transparency = bbb
smonk1.Size = aaa
smonk1.ZOffset = .5
smonk1.Acceleration = Vector3.new(0, 0, 0)
smonk1.LockedToPart = false
smonk1.EmissionDirection = "Top"
smonk1.Lifetime = NumberRange.new(3, 3)
smonk1.Rate = 5
smonk1.Rotation = NumberRange.new(0, 50)
smonk1.RotSpeed = NumberRange.new(50, 50)
smonk1.Speed = NumberRange.new(0)
smonk1.VelocitySpread = 0
smonk1.Enabled=true
local startColor = maincol
local endColor = maincol
local sequence2 = ColorSequence.new(startColor, endColor)
smonk1.Color = sequence2
local smonk2 = Instance.new("ParticleEmitter",refpart)
smonk2.LightEmission = .5
smonk2.Size = NumberSequence.new(0.2)
smonk2.Texture = "rbxassetid://95648201"
aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0),NumberSequenceKeypoint.new(.2, 5),NumberSequenceKeypoint.new(.4, 10),NumberSequenceKeypoint.new(.564, 20),NumberSequenceKeypoint.new(.784, 50),NumberSequenceKeypoint.new(1, 100)})
bbb = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1)})
smonk2.Transparency = bbb
smonk2.Size = aaa
smonk2.ZOffset = .5
smonk2.Acceleration = Vector3.new(0, 0, 0)
smonk2.LockedToPart = false
smonk2.EmissionDirection = "Top"
smonk2.Lifetime = NumberRange.new(3, 3)
smonk2.Rate = 5
smonk2.Rotation = NumberRange.new(0, 50)
smonk2.RotSpeed = NumberRange.new(50, 50)
smonk2.Speed = NumberRange.new(0)
smonk2.VelocitySpread = 0
smonk2.Enabled=true
local startColor = maincol
local startColor = maincol
local endColor = maincol
local sequence3 = ColorSequence.new(startColor, endColor)
smonk2.Color = sequence3
CFuncs.Sound.Create("376020049", refpart, 1, 1)
local void = Instance.new("Sound", refpart)
void.Looped = true
void.SoundId = "rbxassetid://565538601"
void:Play()

for i = 0, 8, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, 1.25783896, 0.0750579834, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.5722059, -0.165335715, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.770152092, 1.15917587, -0.772684395, 0.669632077, 0.727706194, -0.14844726, 0.385775059, -0.511604249, -0.767749131, -0.634642065, 0.456842214, -0.62331754) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.29209483, 1.91917002, -0.0983848572, -0.225760028, -0.171030968, 0.959052086, 0.12644501, -0.981284738, -0.145230755, 0.965942144, 0.0884800404, 0.243160874) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.38367569, -0.476289868, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.97375119, -0.383697003, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
Effects.Sphere2.Create(BrickColor.new(maincol), EffectModel, refpart.CFrame, 2, 2, 2, 2, 2, 2, .01)
end
Humanoid.WalkSpeed = 8
Humanoid.JumpPower = 0
Humanoid.AutoRotate = true
Attack = false
for i = 0, 2, 0.1 do
swait()
local startColor = maincol
local endColor = maincol
local sequence2 = ColorSequence.new(startColor, endColor)
smonk1.Color = sequence2
shoot(Mouse,8,refpart,0,7)
Effects.Sphere2.Create(BrickColor.new(maincol), EffectModel, refpart.CFrame, 2, 2, 2, 2, 2, 2, .01)
end
refpart:Destroy()
end



function bring()
Attack = true
Humanoid.JumpPower = 1
Humanoid.AutoRotate = false
Humanoid.WalkSpeed = 0
CFuncs.Sound.Create("299058146", RootPart, 5, 1)
for i = 0, 9, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(-0, -0.0774844885, -0.0541736633, 1, 0, 0, 0, 0.939692736, 0.342019886, 0, -0.342019916, 0.939692736) * CFrame.new(0, 0 + .2 * math.cos(Sine/30), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.6414876, -0.193552464, 1, 0, 0, 0, 0.939692438, 0.342020929, 0, -0.342020959, 0.939692438) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.62857544, -0.00206083059, -0.25739941, -0.00411200058, -0.0845740512, -0.996408761, -0.682358861, 0.728630245, -0.059029337, 0.731005847, 0.679665625, -0.0607059747) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.63951504, -0.025425151, -0.475234687, 0.0133920014, 0.142243981, 0.989741087, 0.646753192, 0.753661752, -0.11706613, -0.762581944, 0.641685903, -0.0819036961) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.49319136, -0.532124996, 1, 0, 0, 0, 0.99619472, 0.0871556401, 0, -0.0871556699, 0.99619472) * CFrame.new(0, 0 - .2 * math.cos(Sine/30), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -2.11923552, 0.210575998, 1, 0, 0, 0, 0.866024256, 0.500002146, 0, -0.500002146, 0.866024256) * CFrame.new(0, 0 - .2 * math.cos(Sine/30), 0) * CFrame.Angles(0, 0, 0), 
}, .03, false)
WingWeld.C0 = clerp(WingWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(30)), 0.1)
end
Effects.Wave.Create(BrickColor.new("Smoky grey"), Torso.CFrame, 3, .001, 3, 3, .01, 3, .05)
CFuncs.Sound.Create("592877506", RootPart, 5, 1)
Humanoid.Jump = true
for i = 0, 3, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, 1.63284409, -0.235706627, 1, 0, 0, 0, 0.76604414, 0.642788053, 0, -0.642788053, 0.76604414) * CFrame.new(0, 0 + .2 * math.cos(Sine/30), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.41601598, 0.037264809, 1, 0, 0, 0, 0.984807849, -0.173648536, 0, 0.173648536, 0.984807849) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.61149979, -0.0398547351, 0.059716776, 0.0984320119, -0.24887298, -0.963521421, 0.144319385, 0.961557448, -0.233622223, 0.984623313, -0.116058946, 0.130565256) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.63550019, -0.0676878393, 0.268953949, -0.0868250281, 0.150387004, 0.984807193, -0.415071696, 0.893190742, -0.172991112, -0.905636191, -0.423785478, -0.0151299238) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.49319172, -0.532124639, 1, 0, 0, 0, 0.996194839, 0.0871559381, 0, -0.0871559381, 0.996194839) * CFrame.new(0, 0 - 1 * math.cos(Sine/30), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -2.11924171, 0.210577607, 1, 0, 0, 0, 0.866025209, 0.500000656, 0, -0.500000596, 0.86602515) * CFrame.new(0, 0 + 1 * math.cos(Sine/30), 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
WingWeld.C0 = clerp(WingWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-50)), 0.1)
Torso.Velocity = Torso.CFrame.upVector*200
end
Humanoid.AutoRotate = true
for i = 0, 2, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, 1.78658676, 0.0318150818, 1, 0, 0, 0, 0.965925872, 0.258818984, 0, -0.258818984, 0.965925872) * CFrame.new(0, 0 + .2 * math.cos(Sine/20), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.56547379, -3.30805779e-06, 1, 0, 0, 0, 0.99619478, 0.0871555507, 0, -0.0871555805, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.57282138, -0.0133092105, -0.178220585, 0.159491047, -0.214918017, -0.963521123, -0.109468222, 0.966145396, -0.233623564, 0.981111348, 0.142735809, 0.130564839) * CFrame.new(0, .2 - .1 * math.cos(Sine/20), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.62371719, 0.0323515683, -0.108368635, 0.0301549919, 0.171015948, 0.984806716, 0.25616771, 0.951026499, -0.172993779, -0.966161847, 0.257492334, -0.0151305683) * CFrame.new(0, .2 - .1 * math.cos(Sine/20), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.94789934, -0.437906563, 1, 0, 0, 0, 0.99619478, 0.0871555507, 0, -0.0871555805, 0.99619478) * CFrame.new(0, 0 + .1 * math.cos(Sine/20), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.26627839, -0.317767948, 1, 0, 0, 0, 1.00000012, 3.14414501e-06, 0, -3.14414501e-06, 1.00000012) * CFrame.new(0, 0 - .1 * math.cos(Sine/20), 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
WingWeld.C0 = clerp(WingWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10 - 40 * math.cos(Sine/20)/2)), 0.1)
end

for i = 0, 2, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(-1.5999575e-08, 1.44234729, 0.183013797, 1, -3.69464352e-08, -7.92319526e-08, 0, 0.906307876, -0.422617942, 8.74227766e-08, 0.422617942, 0.906307876) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.63241386, -0.347857296, 1, 0, 0, 0, 0.866025388, 0.499999881, -0, -0.499999881, 0.866025388) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.98610222, 0.463692427, -0.267273933, 0.08378198, -0.979906499, 0.181008324, 0.975164294, 0.0432518646, -0.217218786, 0.205025166, 0.194711864, 0.959193349) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.95457983, 0.565388799, -0.316161066, 0.00718499674, 0.98882252, -0.148924112, -0.995118618, -0.00758796558, -0.0983929336, -0.098423183, 0.1489041, 0.983941317) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.40934074, -0.485016495, 1, 0, -0, 0, 0.99619472, 0.0871556699, -0, -0.0871556401, 0.99619472) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -2.02685142, -0.436531007, 1, 0, -0, 0, 0.999999881, 0, -0, 0, 0.999999881) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end
Effects.Wave.Create(BrickColor.new("Smoky grey"), Torso.CFrame, 3, .001, 3, 3, .01, 3, .02)
Effects.Wave.Create(BrickColor.new(maincol), Torso.CFrame, 3, .001, 3, 4, .01, 4, .02)
CFuncs.Sound.Create("157498544", Character, 1, 1)
Humanoid.AutoRotate = false
local hit = nil
while hit == nil do
swait()
local hit, pos = RayCast(RootPart.Position, (CFrame.new(RootPart.Position, RootPart.Position - Vector3.new(0, 1, 0))).lookVector, 10, Character)
PlayAnimationFromTable({
CFrame.new(-1.5999575e-08, 1.44234729, 0.183013797, 1, -3.69464352e-08, -7.92319526e-08, 0, 0.906307876, -0.422617942, 8.74227766e-08, 0.422617942, 0.906307876) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.63241386, -0.347857296, 1, 0, 0, 0, 0.866025388, 0.499999881, -0, -0.499999881, 0.866025388) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.98610222, 0.463692427, -0.267273933, 0.08378198, -0.979906499, 0.181008324, 0.975164294, 0.0432518646, -0.217218786, 0.205025166, 0.194711864, 0.959193349) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.95457983, 0.565388799, -0.316161066, 0.00718499674, 0.98882252, -0.148924112, -0.995118618, -0.00758796558, -0.0983929336, -0.098423183, 0.1489041, 0.983941317) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.40934074, -0.485016495, 1, 0, -0, 0, 0.99619472, 0.0871556699, -0, -0.0871556401, 0.99619472) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -2.02685142, -0.436531007, 1, 0, -0, 0, 0.999999881, 0, -0, 0, 0.999999881) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
Torso.Velocity = Torso.CFrame.upVector*-200
if hit ~= nil then
break
end
end
Humanoid.JumpPower = 0
for i = 0, .1, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(-0, -1.05290782, -0.0541787446, 1, 0, 0, 0, 0.64278698, 0.766044974, 0, -0.766044974, 0.64278698) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.5934242, -0.176076397, 1, 0, 0, 0, 0.965925694, 0.258819431, 0, -0.258819431, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.50508034, -0.00486692786, -1.10916901, 0.996568024, -0.019198034, 0.0805210844, 0.0782727599, 0.5350824, -0.841166019, -0.0269366801, 0.844581723, 0.534748673) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.81366992, 0.249244243, -0.337208867, 0.0133940047, 0.47217676, 0.881402194, 0.941395521, 0.291164994, -0.170286, -0.337038577, 0.832028806, -0.440605283) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.6015507, -0.464419425, 1, 0, 0, 0, 0.766044974, 0.64278698, 0, -0.64278698, 0.766044974) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -0.554469764, -0.85574472, 1, 0, 0, 0, 0.64278698, -0.766044974, 0, 0.766044974, 0.64278698) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end
for i = 0, 10 do
local refpart = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, "Really black", "Effect", Vector3.new(math.random(1,3),math.random(1,3),math.random(1,3)))
refpart.Anchored = false
refpart.CFrame = RootPart.CFrame * CFrame.new(math.random(-5,5), 10,math.random(-5,5))
refpart.CanCollide = true
refpart.Velocity = Vector3.new(math.random(-60,60),math.random(80,150),math.random(-60,60))
game:GetService("Debris"):AddItem(refpart, 2)
table.insert(Effects, {refpart,"Disappear",.01})
local hit, pos = RayCast(RootPart.Position, (CFrame.new(RootPart.Position, RootPart.Position - Vector3.new(0, 1, 0))).lookVector, 10, shur)
if hit ~= nil then
refpart.Material = hit.Material
refpart.BrickColor = BrickColor.new(hit.Color)
end	
end
MagnitudeDamage(Torso, 50, 0, 0, 0, "Normal", " ", 1)
Effects.Sphere2.Create(BrickColor.new("Smoky grey"), workspace, RootPart.CFrame, 4, 8, 4, 20, 40, 20, .03)
Effects.Sphere2.Create(BrickColor.new(maincol), workspace, RootPart.CFrame, 5, 10, 5, 25, 50, 25, .03)
Effects.Wave.Create(BrickColor.new("Smoky grey"), RootPart.CFrame*CFrame.new(0,-2,0), 4, .001, 4, 4, .01, 4, .03)
Effects.Wave.Create(BrickColor.new(maincol), RootPart.CFrame*CFrame.new(0,-2,0), 4, .001, 4, 5, .01, 5, .03)
CFuncs.Sound.Create("638744427", Character, 5, 1)
CFuncs.Sound.Create("765590102", RootPart, 5, 1)
Torso.Velocity = Torso.CFrame.upVector*0
for i = 0, 5, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(-0, -1.05290782, -0.0541787446, 1, 0, 0, 0, 0.64278698, 0.766044974, 0, -0.766044974, 0.64278698) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.5934242, -0.176076397, 1, 0, 0, 0, 0.965925694, 0.258819431, 0, -0.258819431, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.50508034, -0.00486692786, -1.10916901, 0.996568024, -0.019198034, 0.0805210844, 0.0782727599, 0.5350824, -0.841166019, -0.0269366801, 0.844581723, 0.534748673) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.81366992, 0.249244243, -0.337208867, 0.0133940047, 0.47217676, 0.881402194, 0.941395521, 0.291164994, -0.170286, -0.337038577, 0.832028806, -0.440605283) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.6015507, -0.464419425, 1, 0, 0, 0, 0.766044974, 0.64278698, 0, -0.64278698, 0.766044974) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -0.554469764, -0.85574472, 1, 0, 0, 0, 0.64278698, -0.766044974, 0, 0.766044974, 0.64278698) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end
Humanoid.WalkSpeed = 8
Humanoid.AutoRotate = true
Attack = false
end

function warp2self()
Attack = true
for i = 0, 1, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, 1.50806487, -0.0493182242, 1, 0, 0, 0, 0.965925872, 0.258818984, 0, -0.258818984, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.57220507, -0.165325716, 1, 0, 0, 0, 0.99619478, -0.0871558785, 0, 0.0871558785, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.770143628, 1.15917659, -0.772669554, 0.669632196, 0.727706075, -0.148447335, 0.385774463, -0.511604011, -0.767749667, -0.634642303, 0.456842661, -0.623317003) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.15002179, 0.770601869, -1.3447417, 0.150704995, -0.239807919, 0.959051669, 0.988570929, 0.0404406041, -0.145231575, -0.00395695865, 0.969977796, 0.243161768) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.38367522, -0.476285875, 1, 0, 0, 0, 0.99619478, -0.0871558785, 0, 0.0871558785, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.97375286, -0.38368547, 1, 0, 0, 0, 0.99619478, -0.0871558785, 0, 0.0871558785, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end
for i = 0, 3, 0.1 do
swait()
PlayAnimationFromTable({
CFrame.new(0, 1.25783896, 0.0750579834, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.5722059, -0.165335715, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.770152092, 1.15917587, -0.772684395, 0.669632077, 0.727706194, -0.14844726, 0.385775059, -0.511604249, -0.767749131, -0.634642065, 0.456842214, -0.62331754) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.29209483, 1.91917002, -0.0983848572, -0.225760028, -0.171030968, 0.959052086, 0.12644501, -0.981284738, -0.145230755, 0.965942144, 0.0884800404, 0.243160874) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.38367569, -0.476289868, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.97375119, -0.383697003, 1, 0, -0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end
Attack = false
end


Mouse.Button1Down:connect(function()
if Attack == false and Combo == 1 then
punch1()
Combo = 1
end
end)	


Mouse.KeyDown:connect(function(Key)
Key = Key:lower()
if Attack == false and Key == 'z' and dash == false then
dash = true
elseif Attack == false and Key == 'z' and dash == true then
dash = false
elseif Attack == false and Key == 'c' and dash  == false then
explodeatmouse()
elseif Attack == false and Key == 'v' and dash  == false and deathrain == false then
armagedd()
elseif Attack == false and Key == 'x' and dash  == false then
bring()
elseif Attack == false and Key == 'b' and dash  == false then
obliterate()
elseif Attack == false and Key == 'n' and dash  == false then
warp2self()
end
end)


while true do
swait()
TorsoVelocity = (RootPart.Velocity * Vector3.new(1, 0, 1)).magnitude 
Velocity = RootPart.Velocity.y
Sine = Sine + Change
local hit, pos = RayCast(RootPart.Position, (CFrame.new(RootPart.Position, RootPart.Position - Vector3.new(0, 1, 0))).lookVector, 4, Character)
if RootPart.Velocity.y > 1 and hit == nil then 
Anim = "Jump"
if Attack == false then
Change = 1
PlayAnimationFromTable({
CFrame.new(-0.0142319221, 0.0233184248, 0.0206878185, 1.00000012, 1.49011612e-08, 0, 2.72463048e-08, 0.965925992, 0.258818656, 2.98023224e-08, -0.258818597, 0.965925932) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.0172861218, 1.54588914, -0.00366462767, 0.999084175, 0.00742999092, -0.0421376228, -0.011074245, 0.996153653, -0.0869220346, 0.0413297117, 0.0873090774, 0.995323658) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.54051697, 0.254249156, -0.521965742, 0.890014946, -0.152965426, -0.429505706, -0.32768172, 0.440404594, -0.835864007, 0.317014515, 0.884672523, 0.341842651) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.55745959, 0.112057857, 0.343250573, 0.986049891, 0.113037676, 0.12218184, -0.158506706, 0.861737013, 0.481959641, -0.050808996, -0.49460274, 0.867632747) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.566533923, -1.59700418, -0.481964171, 0.999206185, -0.0385679156, -0.00998616219, 0.0397087261, 0.94381088, 0.328091979, -0.00322881341, -0.328228056, 0.944592893) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.433014154, -1.95977831, 0.0051856637, 1, 0, 0, 0, 0.965925813, 0.258819401, -2.98023224e-08, -0.258819431, 0.965925753) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .1, false)
end
elseif RootPart.Velocity.y < -1 and hit == nil then 
Anim = "Fall"
if Attack == false then
Change = 1
PlayAnimationFromTable({
CFrame.new(-0.0142319212, 0.0233183783, 0.0206877608, 1.00000012, 1.49011612e-08, 2.98023224e-08, 2.72463048e-08, 0.984807968, 0.173647314, 2.98023224e-08, -0.17364724, 0.984807849) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.0154076805, 1.5522356, -0.0916171968, 0.999084175, 0.0180828422, -0.0387787819, -0.00742995739, 0.9658584, 0.258964151, 0.0421376526, -0.258438855, 0.965108156) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(1.44003379, 0.0510732532, -0.418421805, 0.890014946, -0.0760585517, -0.449542671, -0.298804998, 0.647417247, -0.701118112, 0.344367683, 0.75833106, 0.553484201) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.55745959, 0.141547889, 0.332177758, 0.986049891, 0.113037676, 0.12218184, -0.162331849, 0.815350056, 0.555745184, -0.036800772, -0.567826271, 0.822325349) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.573113441, -1.8059541, -0.374102622, 0.999206126, -0.0373207629, 0.0139417946, 0.0392762311, 0.98143959, -0.187706873, -0.00667765737, 0.188105404, 0.982126117) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.433013678, -1.95186841, 0.175973177, 1, 0, 2.98023224e-08, 0, 0.98480773, 0.173648328, 2.98023224e-08, -0.173648328, 0.984807789) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .05, false)
end		
elseif TorsoVelocity < 1 and hit ~= nil then
Anim = "Idle"
if Attack == false then
Change = 1
PlayAnimationFromTable({
CFrame.new(0, 1.37272656, 1.63912773e-06, 1, 0, 0, 0, 0.984807849, 0.173647985, 0, -0.173647985, 0.984807849) * CFrame.new(0, 0 + .2 * math.cos(Sine/30), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.57220602, -0.165335596, 1, 0, 0, 0, 0.99619478, 0.0871558785, 0, -0.0871558785, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(math.random(-20,20)), 0, math.rad(math.random(-20,20))), 
CFrame.new(0.923389256, 1.14993238, -0.616622925, 0.835160017, 0.529595375, -0.148447037, 0.240216389, -0.594018042, -0.76774925, -0.494776666, 0.605533957, -0.623317599) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, math.rad(math.random(-20,20))), 
CFrame.new(-1.59592402, 0.175992578, 0.0587863736, 0, 0.173650011, 0.984807491, 0.0871323273, 0.981062055, -0.172989562, -0.996196866, 0.0858085677, -0.0151305255) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.38367629, -0.476296663, 1, 0, 0, 0, 0.99619478, -0.0871553123, 0, 0.0871553123, 0.99619478) * CFrame.new(0, 0 + .1 * math.cos(Sine/30), 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -1.97375131, -0.383703351, 1, 0, 0, 0, 0.99619478, -0.0871553123, 0, 0.0871553123, 0.99619478) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .05, false)
WingWeld.C0 = clerp(WingWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0 - 30 * math.cos(Sine/30)/2)), 0.1)
end
elseif TorsoVelocity > 2 and hit ~= nil then
Anim = "Walk"
if Attack == false then
PlayAnimationFromTable({
CFrame.new(0, 1.4926281, -0.36127466, 1, 0, 0, 0, 0.64278698, 0.766044974, 0, -0.766044974, 0.64278698) * CFrame.new(0, 0, 0 + .2 * math.cos(Sine/20)) * CFrame.Angles(0, 0, 0), 
CFrame.new(0, 1.56528306, -0.0329420865, 1, 0, 0, 0, 0.939692497, -0.34202078, 0, 0.34202078, 0.939692497) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.811238647, 1.3424753, -0.671978116, 0.795616865, 0.488440514, -0.358357012, 0.314500928, -0.838608742, -0.444774866, -0.51776731, 0.2411668, -0.820826232) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-1.63549292, -0.0676899552, 0.268951952, -0.0868249685, 0.150387108, 0.984807193, -0.415071368, 0.89319092, -0.172991171, -0.905636311, -0.423785239, -0.0151298866) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(0.5, -1.49318743, -0.532121181, 1, 0, 0, 0, 0.99619472, 0.0871558785, 0, -0.0871558785, 0.99619472) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
CFrame.new(-0.5, -2.11923432, 0.210574031, 1, 0, 0, 0, 0.866025209, 0.500000298, 0, -0.500000298, 0.866025209) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
}, .05, false)
WingWeld.C0 = clerp(WingWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-20 + 40 * math.cos(Sine/20)/2)), 0.1)
end
end
if #Effects > 0 then
for e = 1, #Effects do
if Effects[e] ~= nil then
local Thing = Effects[e]
if Thing ~= nil then
local Part = Thing[1]
local Mode = Thing[2]
local Delay = Thing[3]
local IncX = Thing[4]
local IncY = Thing[5]
if Thing[1].Transparency <= 1 then
if Thing[2] == "Block1" then
Thing[1].CFrame = Thing[1].CFrame * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
Mesh = Thing[7]
Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
elseif Thing[2] == "Ice" then
if Thing[6] <= Thing[5] then
Thing[6] = Thing[6] + .05
Thing[1].CFrame = Thing[1].CFrame * CFrame.new(0, .4, 0)
else
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
end
elseif Thing[2] == "Shatter" then
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
Thing[4] = Thing[4] * CFrame.new(0, Thing[7], 0)
Thing[1].CFrame = Thing[4] * CFrame.fromEulerAnglesXYZ(Thing[6], 0, 0)
Thing[6] = Thing[6] + Thing[5]
elseif Thing[2] == "Block2" then
Thing[1].CFrame = Thing[1].CFrame
Mesh = Thing[7]
Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
elseif Thing[2] == "Block3" then
Thing[1].CFrame = Thing[8].CFrame * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
Mesh = Thing[7]
Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
elseif Thing[2] == "Block4" then
Thing[1].CFrame = Thing[8].CFrame * CFrame.new(0, -Thing[7].Scale.Y, 0) * CFrame.fromEulerAnglesXYZ(3.14, 0, 0)
Mesh = Thing[7]
Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
elseif Thing[2] == "Block2Fire" then
Thing[1].CFrame = Thing[1].CFrame * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
Mesh = Thing[7]
Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
if Thing[1].Transparency >= .3 then
Thing[1].BrickColor = BrickColor.new("Bright red")
else
Thing[1].BrickColor = BrickColor.new("Bright yellow")
end
elseif Thing[2] == "Cylinder" then
Mesh = Thing[7]
Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
elseif Thing[2] == "Blood" then
Mesh = Thing[7]
Thing[1].CFrame = Thing[1].CFrame * CFrame.new(0, -.5, 0)
Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
elseif Thing[2] == "Elec" then
Mesh = Thing[10]
Mesh.Scale = Mesh.Scale + Vector3.new(Thing[7], Thing[8], Thing[9])
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
Thing[1].CFrame = Thing[1].CFrame * Thing[11] * CFrame.new(0, 0, .2)
Thing[1].Rotation = Vector3.new(0, 0, 0)
elseif Thing[2] == "Disappear" then
Thing[1].Transparency = Thing[1].Transparency + Thing[3]
end
else
Part.Parent = nil
table.remove(Effects, e)
end
end
end
end
end
if dash == true then
RootPart.Velocity = RootPart.CFrame.lookVector * 100
end
end

Features & Information

(PAID) New RIG = (Arms) https://www.roblox.com/catalog/18885852532/Glitchy-Arm-R6-R https://www.roblox.com/catalog/18885844203/Glitchy-Arm-R6-L (LEGS) https://www.roblox.com/catalog/121830551276315/Prosthetic https://www.roblox.com/catalog/139102413583361/Metal-Arm (HEAD) https://www.roblox.com/catalog/13253275196/Scary-Face (Torso) https://www.roblox.com/catalog/135063217598439/Black-Torso
#MelonScripter

Community Comments (9)

dtri19118dtri19118Feb 11, 2026

impossible

Replying to @dtri19118
c80lkiddk4ngc80lkiddk4ngFeb 12, 2026

@dtri19118 what?

ezrachhornezrachhornMar 4, 2026

Dude, just make the script put on the accessories LIKE ROXOK1dd's FE caducus V2 script

Replying to @ezrachhorn
c00lkiddK1ngsnowc00lkiddK1ngsnowMar 20, 2026

@ezrachhorn no

Replying to @c00lkiddK1ngsnow
ezrachhornezrachhornMar 22, 2026

@c00lkiddK1ngsnow okay

Tvmant363Tvmant363Apr 4, 2026

How do I even use this

pipoytot08pipoytot08Jun 20, 2026

Can this script kill player?

Lobo_23xLobo_23xSep 24, 2026

Is it Fe?

REALCATKINGZREALCATKINGZOct 7, 2026

I need to pays bro.

More Scripts for Universal Scripts