Quick actions

cmd+k|ctrl+k

Navigation

Languages

IDK

Snippet info

Language

Python

Visibility

public

Author

ur-big-boss

Created

2020-06-21T06:17:04Z

Updated

2020-07-11T10:39:48Z

--https://github.com/Mokiros/roblox-FE-compatibility
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
local Player,game,owner = owner,game
local RealPlayer = Player
do
	print("FE Compatibility code V2 by Mokiros")
	local RealPlayer = RealPlayer
	script.Parent = RealPlayer.Character

	--Fake event to make stuff like Mouse.KeyDown work
	local Disconnect_Function = function(this)
		this[1].Functions[this[2]] = nil
	end
	local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
	local FakeEvent_Metatable = {__index={
		Connect = function(this,f)
			local i = tostring(math.random(0,10000))
			while this.Functions[i] do
				i = tostring(math.random(0,10000))
			end
			this.Functions[i] = f
			return setmetatable({this,i},Disconnect_Metatable)
		end
	}}
	FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
	local function fakeEvent()
		return setmetatable({Functions={}},FakeEvent_Metatable)
	end

	--Creating fake input objects with fake variables
    local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
    FakeMouse.keyUp = FakeMouse.KeyUp
    FakeMouse.keyDown = FakeMouse.KeyDown
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
	end}
	--Merged 2 functions into one by checking amount of arguments
	CAS.UnbindAction = CAS.BindAction

	--This function will trigger the events that have been :Connect()'ed
	local function TriggerEvent(self,ev,...)
		for _,f in pairs(self[ev].Functions) do
			f(...)
		end
	end
	FakeMouse.TriggerEvent = TriggerEvent
	UIS.TriggerEvent = TriggerEvent

	--Client communication
	local Event = Instance.new("RemoteEvent")
	Event.Name = "UserInput_Event"
	Event.OnServerEvent:Connect(function(plr,io)
	    if plr~=RealPlayer then return end
		FakeMouse.Target = io.Target
		FakeMouse.Hit = io.Hit
		if not io.isMouse then
			local b = io.UserInputState == Enum.UserInputState.Begin
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
				return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
			end
			if io.UserInputType == Enum.UserInputType.MouseButton2 then
				return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
			end
			for _,t in pairs(CAS.Actions) do
				for _,k in pairs(t.Keys) do
					if k==io.KeyCode then
						t.Function(t.Name,io.UserInputState,io)
					end
				end
			end
			FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
			UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
	    end
	end)
	Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
	local Mouse = owner:GetMouse()
	local UIS = game:GetService("UserInputService")
	local input = function(io,RobloxHandled)
		if RobloxHandled then return end
		--Since InputObject is a client-side instance, we create and pass table instead
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
	end
	UIS.InputBegan:Connect(input)
	UIS.InputEnded:Connect(input)

	local h,t
	--Give the server mouse data every second frame, but only if the values changed
	--If player is not moving their mouse, client won't fire events
	local HB = game:GetService("RunService").Heartbeat
	while true do
		if h~=Mouse.Hit or t~=Mouse.Target then
			h,t=Mouse.Hit,Mouse.Target
			Event:FireServer({isMouse=true,Target=t,Hit=h})
		end
		--Wait 2 frames
		for i=1,2 do
			HB:Wait()
		end
	end]==],script)

	----Sandboxed game object that allows the usage of client-side methods and services
	--Real game object
	local RealGame = game

	--Metatable for fake service
	local FakeService_Metatable = {
		__index = function(self,k)
			local s = rawget(self,"_RealService")
			if s then
				return typeof(s[k])=="function"
				and function(_,...)return s[k](s,...)end or s[k]
			end
		end,
		__newindex = function(self,k,v)
			local s = rawget(self,"_RealService")
			if s then s[k]=v end
		end
	}
	local function FakeService(t,RealService)
		t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
		return setmetatable(t,FakeService_Metatable)
	end

	--Fake game object
	local FakeGame = {
		GetService = function(self,s)
			return rawget(self,s) or RealGame:GetService(s)
		end,
		Players = FakeService({
			LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
		},"Players"),
		UserInputService = FakeService(UIS,"UserInputService"),
		ContextActionService = FakeService(CAS,"ContextActionService"),
		RunService = FakeService({
			_btrs = {},
			RenderStepped = RealGame:GetService("RunService").Heartbeat,
			BindToRenderStep = function(self,name,_,fun)
				self._btrs[name] = self.Heartbeat:Connect(fun)
			end,
			UnbindFromRenderStep = function(self,name)
				self._btrs[name]:Disconnect()
			end,
		},"RunService")
	}
	rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
	FakeGame.service = FakeGame.GetService
	FakeService(FakeGame,game)
	--Changing owner to fake player object to support owner:GetMouse()
	game,owner = FakeGame,FakeGame.Players.LocalPlayer
end
local plr = game.Players.LocalPlayer
local mouse = plr:GetMouse()
local char = plr.Character
local state = "Idle"
local transformed = false
local mute = false
local canusemoves = true
local particles = true
local run = game:GetService("RunService")
local hum = char:FindFirstChildOfClass("Humanoid")
wait(.5)

--FUNCTIONS
local function sound(parent,id,vol,des)
	local s = Instance.new("Sound",parent)
	s.SoundId = "rbxassetid://"..id
	s.Volume = vol
	s.PlayOnRemove = des
	if des == true then
		s:Play()
	elseif des == false then
		s:Play()
	end
	return s
end 
local function part(parent,col,mat,tran,anch,cancol,size,shad,pos)
	local p = Instance.new("Part",parent)
	p.Color = col
	p.Material = mat
	p.Transparency = tran
	p.Anchored = anch
	p.CanCollide = cancol
	p.Size = size
	p.CastShadow = shad
	p.CFrame = pos
	return p 
end
local function mesh(parent,id,text,scale,shape)
	local m = Instance.new("SpecialMesh",parent)
	if id ~= 0 then
		m.MeshId = "rbxassetid://"..id
	end
	if text ~= 0 then
		m.TextureId = "rbxassetid://"..text
	end
	m.Scale = scale
	m.MeshType = shape
	return m
end
local function dmg(touch,dmg,cd,name)
	func = touch.Touched:Connect(function(hit)
		if hit.Parent:FindFirstChild("Humanoid") then
			if hit.Parent == char then return end
			if hit.Parent:FindFirstChild(name) then return end
			local val = Instance.new("IntValue",hit.Parent)
			val.Name = name
			game.Debris:AddItem(val,cd)
			hit.Parent.Humanoid:TakeDamage(dmg)
		end
	end)
	return func
end
local function cleanup()
	for i,child in pairs(char:GetChildren()) do
		if child.Name == "Particle" then 
			child:Destroy()
		end
	end
end
--END OF FUNCTIONS

--CHARACTER SETTUP
local function cweld(p,p0,p1,c0,c1,n)
	local weld = Instance.new("Weld",p)
	weld.Part0 = p0
	weld.Part1 = p1
	weld.C0 = c0
	weld.C1 = c1
	weld.Name = n
end
char.Animate:Destroy()
cweld(char.HumanoidRootPart,char.HumanoidRootPart,char.Torso,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(0.00900000334, 0, 0, 0.999075651, 0, 0.042986989, 0, 1, 0, -0.042986989, 0, 0.999075651) ,"Torso")
cweld(char.Torso,char.Torso,char.Head,CFrame.new(0, 1.5, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(0, 0, -0.0430000015, 1, 0, 0, 0, 0.996217906, 0.0868901834, 0, -0.0868901834, 0.996217906) ,"Head")
cweld(char.Torso,char.Torso,char["Left Arm"],CFrame.new(-1.5, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(-0.461000025, 0.55400002, -0.138999999, 0.637414873, 0.770431399, -0.0117421225, -0.72914505, 0.59818989, -0.33243987, -0.249098092, 0.220463797, 0.943051398) ,"Left Arm")
cweld(char.Torso,char.Torso,char["Right Arm"],CFrame.new(1.5, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(0.435000002, 0.564999998, -0.197999999, 0.631951034, -0.768613815, 0.0993518978, 0.743860662, 0.565570116, -0.356092572, 0.217507169, 0.298936963, 0.929154098) ,"Right Arm")
cweld(char.Torso,char.Torso,char["Left Leg"],CFrame.new(-0.5, -2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(0, 0, 0, 0.981969237, 0, -0.189040929, 0, 1, 0, 0.189040929, 0, 0.981969237) ,"Left Leg")
cweld(char.Torso,char.Torso,char["Right Leg"],CFrame.new(0.5, -2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(0, 0, 0, 0.987799048, 0, 0.155733824, 0, 1, 0, -0.155733824, 0, 0.987799048) ,"Right Leg")
Instance.new("ForceField",char).Visible = false
local music = sound(char.Torso,385705841,1,false)
music.Looped = true
hum.MaxHealth = "inf"
hum.Health = "inf"
hum.Name = "Hahahahaha"
local function overhead()
	local gui = Instance.new("BillboardGui",char.Head)
	gui.Size = UDim2.new(1,0,1,0)
	gui.ClipsDescendants = false
	gui.ExtentsOffsetWorldSpace = Vector3.new(0,3,0)
	gui.LightInfluence = 0
	local t = Instance.new("TextLabel",gui)
	t.Text = "SANS"
	t.BackgroundTransparency = 1
	t.AnchorPoint = Vector2.new(0.4,0.4)
	t.Size = UDim2.new(5,0,2,0)
	t.Font = Enum.Font.Cartoon
	t.TextStrokeTransparency = 0
	t.TextScaled = true
	t.TextColor3 = Color3.new(0, 255, 255)
	t.TextStrokeColor3 = Color3.new(0, 0, 127)
	coroutine.resume(coroutine.create(function()
		while run.RenderStepped:Wait() do
			repeat wait() t.Rotation = t.Rotation + .4 until t.Rotation >= 10
			wait(.1)
			repeat wait() t.Rotation = t.Rotation - .4 until t.Rotation <= -10
		end
	end))
end
local function bones()
	local model = Instance.new("Model",char)
	model.Name = "Bones"
	local ribs = part(model,Color3.fromRGB(229,228,223),"Sand",1,false,false,Vector3.new(1.651, 0.646, 1.861),true,char.Torso.CFrame)
	mesh(ribs,927005023,0,Vector3.new(6,15,4),"FileMesh")
	cweld(char.Torso,char.Torso,ribs,CFrame.new(-0.00790643692, -0.0141243935, 0.501241684, 0.999074101, 0.0430011079, -0.00162736187, -0.00116837048, -0.010694542, -0.999942541, -0.0430155098, 0.999018192, -0.0106340926),CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"Ribs")
	
	local LBone1 = part(model,Color3.fromRGB(229,228,223),"Sand",1,false,false,Vector3.new(1.493, 0.919, 2.59),true,char.Torso.CFrame)
	LBone1.Name = "LBone1"
	mesh(LBone1,523610338,0,Vector3.new(0.015, 0.015, 0.015),"FileMesh")
	cweld(char.Torso,ribs,LBone1,CFrame.new(-1.16618395, 0.497213364, -0.639540195, 0.199026987, -0.322882175, -0.925275981, -0.796553135, -0.603297353, 0.0391863845, -0.570869148, 0.729232192, -0.377265185),CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"LBone1")
	
	local LBone2 = part(model,Color3.fromRGB(229,228,223),"Sand",1,false,false,Vector3.new(0.518, 1.229, 2.159),true,char.Torso.CFrame)
	LBone1.Name = "LBone2"
	mesh(LBone2,523623357,0,Vector3.new(0.008, 0.008, 0.008),"FileMesh")
	cweld(char.Torso,LBone1,LBone2,CFrame.new(-0.0530033112, 0.803726196, 0.838523865, 0.341374874, 0.938376546, -0.0539709628, 0.182849452, -0.00997671485, 0.983090401, 0.921970367, -0.345470816, -0.17498742),CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"LBone2")

	local LHand = part(model,Color3.fromRGB(229,228,223),"Sand",1,false,false,Vector3.new(0.322, 0.828, 1.612),true,char.Torso.CFrame)
	LHand.Name = "LBoneHand"
	mesh(LHand,523652560,0,Vector3.new(0.008, 0.008, 0.008),"FileMesh")
	cweld(char.Torso,LBone2,LHand,CFrame.new(0.187120438, 0.119449615, 1.7151432, 0.962244809, 0.164886326, 0.216558546, -0.0335276872, 0.861371517, -0.506867826, -0.270112962, 0.48047021, 0.834378541),CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"LBoneHand")

	local RBone1 = part(model,Color3.fromRGB(229,228,223),"Sand",1,false,false,Vector3.new(1.493, 0.919, 2.59),true,char.Torso.CFrame)
	RBone1.Name = "RBone1"
	mesh(RBone1,523610338,0,Vector3.new(0.015, 0.015, 0.015),"FileMesh")
	cweld(char.Torso,ribs,RBone1,CFrame.new(1.23084211, 0.486703873, -0.621464252, -0.415073842, 0.286642849, 0.863452196, 0.623770773, -0.601219833, 0.499444395, 0.662286758, 0.745902479, 0.0707512125),CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"RBone1")
	
	local RBone2 = part(model,Color3.fromRGB(229,228,223),"Sand",1,false,false,Vector3.new(0.518, 1.229, 2.159),true,char.Torso.CFrame)
	RBone2.Name = "RBone2"
	mesh(RBone2,523622115,0,Vector3.new(0.008, 0.008, 0.008),"FileMesh")
	cweld(char.Torso,RBone1,RBone2,CFrame.new(-0.379526138, 0.772985458, 0.828954697, 0.788434148, -0.60477227, 0.112348527, -0.0976656675, 0.0572500527, 0.993571281, -0.607316375, -0.794338107, -0.0139275491),CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"RBone2")

	local RHand = part(model,Color3.fromRGB(229,228,223),"Sand",1,false,false,Vector3.new(0.322, 0.828, 1.612),true,char.Torso.CFrame)
	RHand.Name = "RBonehand"
	mesh(RHand,523653454,0,Vector3.new(0.008, 0.008, 0.008),"FileMesh")
	cweld(char.Torso,RBone2,RHand,CFrame.new(-0.18693161, 0.119625092, 1.71515656, 0.962295592, -0.164773092, -0.216418758, 0.0334875211, 0.861353457, -0.506901324, 0.26993674, 0.480541617, 0.834394515),CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"RBoneHand")

end
overhead()
bones()
--END OF CHARACTER SETTUP

--MOVES
local function teleport()
	local ray = nil
	if transformed == false then
		ray = Ray.new(char.Torso.CFrame.p, (mouse.Hit.p - char.Torso.CFrame.p).unit * 100)
	elseif transformed == true then
		ray = Ray.new(char.Torso.CFrame.p, (mouse.Hit.p - char.Torso.CFrame.p).unit * 500)
	end
	local part, pos = workspace:FindPartOnRay(ray, char, false, true)
	char.HumanoidRootPart.CFrame = CFrame.new(pos.X,pos.Y,pos.Z) * CFrame.new(0,2,0)
	sound(char.Torso,289556450,1,false)
	local function part()
		local p = Instance.new("Part",char)
		local s = math.random(.25,2)
		p.Size = Vector3.new(s,s,s)
		p.BrickColor = BrickColor.new("Baby blue")
		p.Material = Enum.Material.Neon
		p.CanCollide = false
		p.CFrame = char.HumanoidRootPart.CFrame
		p.Orientation = Vector3.new(math.random(-359,359),math.random(-359,359),math.random(-359,359))
		p.Name = "Particle"
		local vel = Instance.new("BodyVelocity",p)
		vel.MaxForce = Vector3.new(1/0,1/0,1/0)
		vel.Velocity = p.CFrame.LookVector * 20 * 2
		coroutine.resume(coroutine.create(function()
			for i = 1,50 do
				if not p then break end
				p.Size = p.Size - Vector3.new(0.05,0.05,0.05)
				wait()
			end
			p:Destroy()
		end))
	end
	for i = 1,35 do
		if particles == false then break end
		part()
	end
end
local function blaster()
	canusemoves = false
	local blaster = part(char,Color3.new(163, 162, 165),"Plastic",1,true,false,Vector3.new(1,1,1),false,char.Torso.CFrame * CFrame.new(10,1,0))
	mesh(blaster,431908407,441975828,Vector3.new(.05,.05,.05),Enum.MeshType.FileMesh)
	sound(char.Torso,422747271,1,false)
	for i = 1,15,.5 do
		blaster.CFrame = blaster.CFrame:Lerp(char.HumanoidRootPart.CFrame * CFrame.Angles(0,math.rad(180),0) * CFrame.new(0,1,5),i/15)
		blaster.Transparency = blaster.Transparency - .1
		wait()
	end
	sound(char.Torso,340722848,1,false)
	local beam = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,blaster.CFrame * CFrame.new(0,-2,3))
	local beamm = mesh(beam,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
	local beam2 = beam:Clone()
	beam2.Transparency = .5
	beam2.Parent = char
	beam2.Color = Color3.fromRGB(0, 168, 168)
	local function part()
		if particles == false then return end
		local p = Instance.new("Part",char)
		local s = math.random(.25,2)
		p.Size = Vector3.new(s,s,s)
		p.BrickColor = BrickColor.new("Baby blue")
		p.Material = Enum.Material.Neon
		p.CanCollide = false
		p.CFrame = blaster.CFrame * CFrame.new(0,-2,3) * CFrame.Angles(0,math.rad(180),0)
		p.Orientation = p.Orientation + Vector3.new(math.random(-15,15),math.random(-15,15),0)
		p.Name = "Particle"
		local vel = Instance.new("BodyVelocity",p)
		vel.MaxForce = Vector3.new(1/0,1/0,1/0)
		vel.Velocity = p.CFrame.LookVector * 20 * 2
		coroutine.resume(coroutine.create(function()
			for i = 1,100 do
				if not p then break end
				p.Size = p.Size - Vector3.new(0.02,0.02,0.02)
				wait()
			end
			p:Destroy()
		end))
	end
	touch = dmg(beam,50,.5,"SmallBlaster")
	for i = 1,10 do
		part()
		beam.CFrame = beam.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-2,55),i/20)
		beam.Size = beam.Size:Lerp(Vector3.new(15,15,100),i/20)
		beam2.CFrame = beam2.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-2,55),i/20)
		beam2.Size = beam2.Size:Lerp(Vector3.new(20,20,100),i/20)
		wait()
	end
	for i = 1,9 do
		beam.Size = beam.Size:Lerp(Vector3.new(0,0,100),i/10)
		beam2.Size = beam2.Size:Lerp(Vector3.new(0,0,100),i/10)
		blaster.CFrame = blaster.CFrame * CFrame.new(0,0,-1)
		blaster.Transparency = blaster.Transparency + .3
		wait()
	end
	touch:Disconnect()
	beam:Destroy()
	beam2:Destroy()
	blaster:Destroy()
	canusemoves = true
end
local function bigblaster()
	canusemoves = false
	local blaster = part(char,Color3.new(163, 162, 165),"Plastic",1,true,false,Vector3.new(1,1,1),false,char.Torso.CFrame * CFrame.new(10,1,0))
	mesh(blaster,431908407,441975828,Vector3.new(.1,.1,.1),Enum.MeshType.FileMesh)
	local s = sound(char.Torso,422747271,1,false)
	coroutine.resume(coroutine.create(function()
		wait(.2)
		s.PlaybackSpeed = .5
	end))
	for i = 1,15,.5 do
		blaster.CFrame = blaster.CFrame:Lerp(char.HumanoidRootPart.CFrame * CFrame.Angles(0,math.rad(180),0) * CFrame.new(0,4,10),i/30)
		blaster.Transparency = blaster.Transparency - .1
		wait()
	end
	local s1 = sound(char.Torso,340722848,1,false)
	s1.PlaybackSpeed = .5
	local beam = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,blaster.CFrame * CFrame.new(0,-5,5))
	local beamm = mesh(beam,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
	local beam2 = beam:Clone()
	beam2.Transparency = .5
	beam2.Parent = char
	beam2.Color = Color3.fromRGB(0, 168, 168)
	local function part()
		local p = Instance.new("Part",char)
		local s = math.random(.25,2)
		p.Size = Vector3.new(s,s,s)
		p.BrickColor = BrickColor.new("Baby blue")
		p.Material = Enum.Material.Neon
		p.CanCollide = false
		p.CFrame = blaster.CFrame * CFrame.new(0,-2,3) * CFrame.Angles(0,math.rad(180),0)
		p.Orientation = p.Orientation + Vector3.new(math.random(-30,30),math.random(-30,30),0)
		p.Name = "Particle"
		local vel = Instance.new("BodyVelocity",p)
		vel.MaxForce = Vector3.new(1/0,1/0,1/0)
		vel.Velocity = p.CFrame.LookVector * 20 * 2
		coroutine.resume(coroutine.create(function()
			for i = 1,100 do
				if not p then break end
				p.Size = p.Size - Vector3.new(0.02,0.02,0.02)
				wait()
			end
			p:Destroy()
		end))
	end
	coroutine.resume(coroutine.create(function()
		for i = 1,20 do
			if particles == false then break end
			part()
		end
	end))
	touch1 = dmg(beam,75,1,"BigBlaster")
	for i = 1,25 do
		beam.CFrame = beam.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-5,160),i/50)
		beam.Size = beam.Size:Lerp(Vector3.new(50,50,300),i/50)
		beam2.CFrame = beam2.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-5,160),i/50)
		beam2.Size = beam2.Size:Lerp(Vector3.new(70,70,300),i/50)
		wait()
	end
	for i = 1,9 do
		beam.Size = beam.Size:Lerp(Vector3.new(0,0,300),i/20)
		beam2.Size = beam2.Size:Lerp(Vector3.new(0,0,300),i/20)
		blaster.CFrame = blaster.CFrame * CFrame.new(0,0,-.5)
		blaster.Transparency = blaster.Transparency + .3
		wait()
	end
	touch1:Disconnect()
	beam:Destroy()
	beam2:Destroy()
	blaster:Destroy()
	canusemoves = true
end
local function doubleblaster()
	canusemoves = false
	local blaster = part(char,Color3.new(163, 162, 165),"Plastic",1,true,false,Vector3.new(1,1,1),false,char.Torso.CFrame * CFrame.new(10,1,0))
	local blaster1 = part(char,Color3.new(163, 162, 165),"Plastic",1,true,false,Vector3.new(1,1,1),false,char.Torso.CFrame * CFrame.new(-10,1,0))
	mesh(blaster,431908407,441975828,Vector3.new(.05,.05,.05),Enum.MeshType.FileMesh)
	mesh(blaster1,431908407,441975828,Vector3.new(.05,.05,.05),Enum.MeshType.FileMesh)
	sound(char.Torso,422747271,1,false)
	for i = 1,15,.5 do
		blaster.CFrame = blaster.CFrame:Lerp(char.HumanoidRootPart.CFrame * CFrame.Angles(0,math.rad(150),0) * CFrame.new(5,1,3),i/15)
		blaster.Transparency = blaster.Transparency - .1
		blaster1.CFrame = blaster1.CFrame:Lerp(char.HumanoidRootPart.CFrame * CFrame.Angles(0,math.rad(-150),0) * CFrame.new(-5,1,3),i/15)
		blaster1.Transparency = blaster1.Transparency - .1
		wait()
	end
	sound(char.Torso,340722848,1,false)
	local beam = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,blaster.CFrame * CFrame.new(0,-2,3))
	mesh(beam,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
	local beam2 = beam:Clone()
	beam2.Transparency = .5
	beam2.Parent = char
	beam2.Color = Color3.fromRGB(0, 168, 168)
	local beam1 = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,blaster1.CFrame * CFrame.new(0,-2,3))
	mesh(beam1,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
	local beam21 = beam1:Clone()
	beam21.Transparency = .5
	beam21.Parent = char
	beam21.Color = Color3.fromRGB(0, 168, 168)
	local function part()
		if particles == false then return end
		local p = Instance.new("Part",char)
		local s = math.random(.25,2)
		p.Size = Vector3.new(s,s,s)
		p.BrickColor = BrickColor.new("Baby blue")
		p.Material = Enum.Material.Neon
		p.CanCollide = false
		p.CFrame = blaster.CFrame * CFrame.new(0,-2,3) * CFrame.Angles(0,math.rad(180),0)
		p.Orientation = p.Orientation + Vector3.new(math.random(-15,15),math.random(-15,15),0)
		p.Name = "Particle"
		local vel = Instance.new("BodyVelocity",p)
		vel.MaxForce = Vector3.new(1/0,1/0,1/0)
		vel.Velocity = p.CFrame.LookVector * 20 * 2
		local p1 = p:Clone()
		p1.CFrame = blaster1.CFrame * CFrame.new(0,-2,3) * CFrame.Angles(0,math.rad(180),0)
		p1.Parent = char
		p1.Orientation = p1.Orientation + Vector3.new(math.random(-15,15),math.random(-15,15),0)
		p1.BodyVelocity.Velocity = p1.CFrame.LookVector * 20 * 2
		coroutine.resume(coroutine.create(function()
			for i = 1,100 do
				if not p or not p1 then break end
				p.Size = p.Size - Vector3.new(0.02,0.02,0.02)
				p1.Size = p1.Size - Vector3.new(0.02,0.02,0.02)
				wait()
			end
			p:Destroy()
			p1:Destroy()
		end))
	end
	touch = dmg(beam,25,1,"SmallBlaster0")
	touch1 = dmg(beam1,25,1,"SmallBlaster1")
	local r = .05
	for i = 1,40 do
		part()
		r = r - 0.001
		beam.CFrame = beam.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-2,55),i/20)
		beam.Size = beam.Size:Lerp(Vector3.new(15,15,100),i/20)
		beam2.CFrame = beam2.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-2,55),i/20)
		beam2.Size = beam2.Size:Lerp(Vector3.new(20,20,100),i/20)
		beam1.CFrame = beam1.CFrame:Lerp(blaster1.CFrame * CFrame.new(0,-2,55),i/20)
		beam1.Size = beam1.Size:Lerp(Vector3.new(15,15,100),i/20)
		beam21.CFrame = beam21.CFrame:Lerp(blaster1.CFrame * CFrame.new(0,-2,55),i/20)
		beam21.Size = beam21.Size:Lerp(Vector3.new(20,20,100),i/20)
		blaster.CFrame = blaster.CFrame * CFrame.fromEulerAnglesXYZ(0,r,0)
		blaster1.CFrame = blaster1.CFrame * CFrame.fromEulerAnglesXYZ(0,-r,0)
		wait()
	end
	for i = 1,9 do
		beam.Size = beam.Size:Lerp(Vector3.new(0,0,100),i/10)
		beam2.Size = beam2.Size:Lerp(Vector3.new(0,0,100),i/10)
		blaster.Transparency = blaster.Transparency + .3
		beam1.Size = beam1.Size:Lerp(Vector3.new(0,0,100),i/10)
		beam21.Size = beam21.Size:Lerp(Vector3.new(0,0,100),i/10)
		blaster1.Transparency = blaster1.Transparency + .3
		wait()
	end
	touch:Disconnect()
	touch1:Disconnect()
	beam:Destroy()
	beam2:Destroy()
	blaster:Destroy()
	beam1:Destroy()
	beam21:Destroy()
	blaster1:Destroy()
	canusemoves = true
end
local function slam()
	canusemoves = false
	hum.WalkSpeed = 0
	hum.JumpPower = 0
	state = "Slam"
	sound(char.Torso,422747271,1,false)
	for i = 1,10 do
		char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, -2.02999997, 0, 0.999975502, 0, 0.00700038671, 0.00022397429, 0.999487996, -0.0319937542, -0.00699680252, 0.0319945365, 0.999463499),i/10)
		char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(-0.0419999994, 0.0559999943, -0.0670000017, 0.998878598, -0.0315804854, 0.0352746546, 0.0234628431, 0.97730118, 0.210551292, -0.0411232598, -0.209487528, 0.976946235),i/10)
		char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(0.135999992, -0.0999999791, -0.0259999633, 0.985586703, -0.16635856, 0.0307203233, 0.169170648, 0.968679905, -0.181770369, 0.000480890274, 0.184347436, 0.982861042),i/10)
		char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(-0.149999991, -0.00700002909, 0.382000029, 0.98718369, 0.14615038, -0.0640985891, -0.146712765, 0.989170492, -0.0041319374, 0.0628005564, 0.0134830177, 0.9979350),i/10)
		char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, -0.152999967, 0.111999989, 0.997798383, 0, -0.0663221478, -0.00359195331, 0.998532295, -0.0540399477, 0.0662248135, 0.0541591868, 0.996333957),i/10)
		char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0169999972, -0.717000008, 0.82100004, 0.998718858, 0.0193810277, -0.0467441007, -0.0180600509, 0.99943012, 0.0285189077, 0.0472701006, -0.0276381224, 0.998499691),i/10)
		char.Torso["LBone1"].C1 = char.Torso["LBone1"].C1:Lerp(CFrame.new(0.0600000024, -0.826000094, -0.479000032, -0.51271683, -0.730166316, -0.45163998, 0.673558295, -0.0158858746, -0.738963425, 0.532391489, -0.683084846, 0.499954641),i/10)
		char.Torso["LBone2"].C1 = char.Torso["LBone2"].C1:Lerp(CFrame.new(-0.876000047, -0.75699991, -0.458000034, 0.136421055, -0.834542632, -0.533786356, 0.746706069, 0.440716326, -0.498195976, 0.65101409, -0.33061704, 0.683281124),i/10)
		char.Torso["LBoneHand"].C1 = char.Torso["LBoneHand"].C1:Lerp(CFrame.new(-0.11399997, -0.562000036, -0.0539999753, 0.981261909, 0.0675828531, -0.18043685, -0.192612544, 0.368530691, -0.909442365, 0.00503376126, 0.927155733, 0.374642432),i/10)
		char.Torso["RBone1"].C1 = char.Torso["RBone1"].C1:Lerp(CFrame.new(0.935000062, -0.461000025, -0.405000031, 0.090554446, 0.62391901, 0.776224971, -0.283739507, 0.763286531, -0.580418348, -0.95461607, -0.167686239, 0.246149689),i/10)
		char.Torso["RBone2"].C1 = char.Torso["RBone2"].C1:Lerp(CFrame.new(1.02900004, 0.07099998, -1.0150001, 0.0177954435, -0.0161824226, 0.999710679, -0.179183334, 0.983630061, 0.0191116855, -0.983654737, -0.179471597, 0.0146044604),i/10)
		char.Torso["RBoneHand"].C1 = char.Torso["RBoneHand"].C1:Lerp(CFrame.new(-0.14200002, -0.545000017, 0.0170000196, 0.0966487899, 0.854167461, -0.510937154, -0.962231338, -0.0510738641, -0.267399102, -0.254499167, 0.517483592, 0.816970527),i/10)
		wait()
	end
	for i = 1,10 do
		char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, 1.05600011, 0, 0.999975502, 0, 0.00700038671, 0.00022397429, 0.999487996, -0.0319937542, -0.00699680252, 0.0319945365, 0.999463499),i/10)
		char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(-0.0419999994, -0.186000004, 0.143000007, 0.998878598, -0.0315804854, 0.0352746546, 0.0447090082, 0.874330401, -0.483267605, -0.0155798597, 0.4843027, 0.87476182),i/10)
		char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(0.135999992, -0.0999999791, -0.630999982, 0.985586703, -0.16635856, 0.0307203233, 0.152120054, 0.792060256, -0.591185272, 0.0740164146, 0.587337494, 0.805950582),i/10)
		char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(-0.149999991, 0.0909999683, -0.65199995, 0.98718369, 0.14615038, -0.0640985891, -0.144474119, 0.64781636, -0.747971416, -0.0677921474, 0.747645676, 0.660628617),i/10)
		char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, -0.805999994, 1.04100001, 0.997798383, 0, -0.0663221478, 0.00416324101, 0.998027802, 0.0626348108, 0.0661913604, -0.0627729967, 0.995830536),i/10)
		char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0169999972, 0.638000011, -0.460999906, 0.998718858, 0.0193810277, -0.0467441007, -0.0471754856, 0.0224370956, -0.998634577, -0.0183057822, 0.999560475, 0.0233226717),i/10)
		char.Torso["LBone1"].C1 = char.Torso["LBone1"].C1:Lerp(CFrame.new(0.513999999, -0.71600008, -0.298000038, 0.629962683, -0.575505137, 0.521479607, 0.770724833, 0.380663067, -0.510958612, 0.0955512822, 0.723802149, 0.683359742),i/10)
		char.Torso["LBone2"].C1 = char.Torso["LBone2"].C1:Lerp(CFrame.new(0.870999932, 0.0630000532, -0.458000004, 0.189471468, 0.80221647, 0.566170752, -0.835029721, -0.171698242, 0.522728384, 0.516551852, -0.571811438, 0.637342691),i/10)
		char.Torso["LBoneHand"].C1 = char.Torso["LBoneHand"].C1:Lerp(CFrame.new(-0.11399997, -0.413000047, -0.0539999753, 0.915430188, -0.391597986, -0.0929440707, 0.298556596, 0.81557703, -0.495679259, 0.269910038, 0.426010758, 0.863518),i/10)
		char.Torso["RBone1"].C1 = char.Torso["RBone1"].C1:Lerp(CFrame.new(0.674000025, -0.461000025, -0.405000031, 0.507013023, -0.676508069, 0.534110904, 0.858998537, 0.345444977, -0.37787503, 0.0711294562, 0.650387943, 0.756264806),i/10)
		char.Torso["RBone2"].C1 = char.Torso["RBone2"].C1:Lerp(CFrame.new(0.864000022, 0.07099998, -0.485000134, 0.358922511, -0.17811951, 0.916214049, 0.430222631, 0.902696013, 0.00695384201, -0.82830137, 0.391680151, 0.400628895),i/10)
		char.Torso["RBoneHand"].C1 = char.Torso["RBoneHand"].C1:Lerp(CFrame.new(0.181000009, -0.261000007, 0.0170000196, 0.823696554, -0.326642811, 0.463495791, 0.506709039, 0.790895104, -0.343119115, -0.254499167, 0.517483592, 0.816970527),i/10)
		wait()
	end
	local z = 15
	local rootpos = char.HumanoidRootPart.CFrame
	local function beams()
		local beam = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,rootpos * CFrame.new(0,-2,z) * CFrame.Angles(0,0,math.rad(180)))
		local beampos = beam.CFrame
		mesh(beam,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
		local beam1 = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,rootpos * CFrame.new(0,-2,-z) * CFrame.Angles(0,0,math.rad(180)))
		local beam1pos = beam1.CFrame
		mesh(beam1,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
		local beam2 = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,rootpos * CFrame.new(z,-2,0) * CFrame.Angles(0,0,math.rad(180)))
		local beam2pos = beam2.CFrame
		mesh(beam2,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
		local beam3 = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,rootpos * CFrame.new(-z,-2,0) * CFrame.Angles(0,0,math.rad(180)))
		local beam3pos = beam3.CFrame
		mesh(beam3,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
		touch = dmg(beam,1/0,.5,"Beam")
		touch1 = dmg(beam1,1/0,.5,"Beam2")
		touch2 = dmg(beam2,1/0,.5,"Beam2")
		touch3 = dmg(beam3,1/0,.5,"Beam3")
		
		local beam0 = part(char,Color3.fromRGB(0, 168, 168),"Neon",0.5,true,false,Vector3.new(0,0,0),false,rootpos * CFrame.new(0,-2,z) * CFrame.Angles(0,0,math.rad(180)))
		mesh(beam0,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
		local beam10 = part(char,Color3.fromRGB(0, 168, 168),"Neon",0.5,true,false,Vector3.new(0,0,0),false,rootpos * CFrame.new(0,-2,-z) * CFrame.Angles(0,0,math.rad(180)))
		mesh(beam10,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
		local beam20 = part(char,Color3.fromRGB(0, 168, 168),"Neon",0.5,true,false,Vector3.new(0,0,0),false,rootpos * CFrame.new(z,-2,0) * CFrame.Angles(0,0,math.rad(180)))
		mesh(beam20,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
		local beam30 = part(char,Color3.fromRGB(0, 168, 168),"Neon",0.5,true,false,Vector3.new(0,0,0),false,rootpos * CFrame.new(-z,-2,0) * CFrame.Angles(0,0,math.rad(180)))
		mesh(beam30,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
		coroutine.resume(coroutine.create(function()
			sound(char.Torso,340722848,1,false)
			for i = 1,10 do
				beam.CFrame = beam.CFrame:Lerp(beampos * CFrame.new(0,-10,0),i/25)
				beam.Size = beam.Size:Lerp(Vector3.new(10,50,10),i/25)
				beam1.CFrame = beam1.CFrame:Lerp(beam1pos * CFrame.new(0,-10,0),i/25)
				beam1.Size = beam1.Size:Lerp(Vector3.new(10,50,10),i/25)
				beam2.CFrame = beam2.CFrame:Lerp(beam2pos * CFrame.new(0,-10,0),i/25)
				beam2.Size = beam2.Size:Lerp(Vector3.new(10,50,10),i/25)
				beam3.CFrame = beam3.CFrame:Lerp(beam3pos * CFrame.new(0,-10,0),i/25)
				beam3.Size = beam3.Size:Lerp(Vector3.new(10,50,10),i/25)
				
				beam0.CFrame = beam0.CFrame:Lerp(beampos * CFrame.new(0,-10,0),i/25)
				beam0.Size = beam0.Size:Lerp(Vector3.new(15,50,15),i/25)
				beam10.CFrame = beam10.CFrame:Lerp(beam1pos * CFrame.new(0,-10,0),i/25)
				beam10.Size = beam10.Size:Lerp(Vector3.new(15,50,15),i/25)
				beam20.CFrame = beam20.CFrame:Lerp(beam2pos * CFrame.new(0,-10,0),i/25)
				beam20.Size = beam20.Size:Lerp(Vector3.new(15,50,15),i/25)
				beam30.CFrame = beam30.CFrame:Lerp(beam3pos * CFrame.new(0,-10,0),i/25)
				beam30.Size = beam30.Size:Lerp(Vector3.new(15,50,15),i/25)
				wait()
			end
			for i = 1,9 do
				beam.Size = beam.Size:Lerp(Vector3.new(0,50,0),i/10)
				beam1.Size = beam1.Size:Lerp(Vector3.new(0,50,0),i/10)
				beam2.Size = beam2.Size:Lerp(Vector3.new(0,50,0),i/10)
				beam3.Size = beam3.Size:Lerp(Vector3.new(0,50,0),i/10)
				
				beam0.Size = beam0.Size:Lerp(Vector3.new(0,50,0),i/10)
				beam10.Size = beam10.Size:Lerp(Vector3.new(0,50,0),i/10)
				beam20.Size = beam20.Size:Lerp(Vector3.new(0,50,0),i/10)
				beam30.Size = beam30.Size:Lerp(Vector3.new(0,50,0),i/10)
				wait()
			end
			beam:Destroy()
			beam1:Destroy()
			beam2:Destroy()
			beam3:Destroy()
			beam0:Destroy()
			beam10:Destroy()
			beam20:Destroy()
			beam30:Destroy()
			touch:Disconnect()
			touch1:Disconnect()
			touch2:Disconnect()
			touch3:Disconnect()
		end))
		wait(.1)
	end
	for i = 1,10 do
		beams()
		z = z + 20
	end
	hum.WalkSpeed = 100
	hum.JumpPower = 50
	state = "TransIdle"
	canusemoves = true
end
local function giantblaster()
	canusemoves = false
	local blaster = part(char,Color3.new(163, 162, 165),"Plastic",1,true,false,Vector3.new(10,10,10),false,char.Torso.CFrame * CFrame.new(10,1,0))
	mesh(blaster,431908407,441975828,Vector3.new(.5,.5,.5),Enum.MeshType.FileMesh)
	local s = sound(char.Torso,422747271,1,false)
	coroutine.resume(coroutine.create(function()
		wait(.2)
		s.PlaybackSpeed = .5
	end))
	for i = 1,15,.5 do
		blaster.CFrame = blaster.CFrame:Lerp(char.HumanoidRootPart.CFrame * CFrame.Angles(0,math.rad(180),0) * CFrame.new(0,50,50),i/50)
		blaster.Transparency = blaster.Transparency - .1
		wait()
	end
	local s1 = sound(char.Torso,340722848,1,false)
	s1.PlaybackSpeed = .3
	local beam = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,blaster.CFrame * CFrame.new(0,-5,5))
	local beamm = mesh(beam,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
	local beam2 = beam:Clone()
	beam2.Transparency = .5
	beam2.Parent = char
	beam2.Color = Color3.fromRGB(0, 168, 168)
	touch1 = dmg(beam,1/0,.5,"BigBlaster")
	for i = 1,5 do
		for i = 1,10,.5 do
			beam.CFrame = beam.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-10,750),i/50)
			beam.Size = beam.Size:Lerp(Vector3.new(1050,1050,1550),i/50)
			beam2.CFrame = beam2.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-10,750),i/50)
			beam2.Size = beam2.Size:Lerp(Vector3.new(1150,1150,1650),i/50)
			wait()
		end
		for i = 1,10,.5 do
			beam.CFrame = beam.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-10,750),i/50)
			beam.Size = beam.Size:Lerp(Vector3.new(1000,1000,1500),i/50)
			beam2.CFrame = beam2.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-10,750),i/50)
			beam2.Size = beam2.Size:Lerp(Vector3.new(1100,1100,1600),i/50)
			wait()
		end
	end
	for i = 1,30 do
		beam.Size = beam.Size:Lerp(Vector3.new(0,0,1500),i/100)
		beam2.Size = beam2.Size:Lerp(Vector3.new(0,0,1500),i/100)
		blaster.Transparency = blaster.Transparency + .2
		wait()
	end
	touch1:Disconnect()
	beam:Destroy()
	beam2:Destroy()
	blaster:Destroy()
	canusemoves = true
end
local function concentratedblaster()
	canusemoves = false
	local blaster = part(char,Color3.new(163, 162, 165),"Plastic",1,true,false,Vector3.new(1,1,1),false,mouse.Hit * CFrame.new(10,1,0))
	mesh(blaster,431908407,441975828,Vector3.new(.05,.05,.05),Enum.MeshType.FileMesh)
	sound(blaster,422747271,1,false)
	
	local ray = Ray.new(mouse.Hit.p, (mouse.Hit.p + CFrame.new(math.random(-5,5),10,math.random(-5,5)).p - mouse.Hit.p).unit * 20)
	local part1, pos = workspace:FindPartOnRay(ray, char, false, true)
	
	local dist = (mouse.Hit.p - pos).magnitude
	for i = 1,25 do
		blaster.CFrame = blaster.CFrame:Lerp(CFrame.new(mouse.Hit.p, pos) * CFrame.new(0,2, -dist),i/15)
		blaster.Transparency = blaster.Transparency - .1
		wait()
	end
	sound(blaster,340722848,1,false)
	local beam = part(char,Color3.fromRGB(248, 248, 248),"Neon",0,true,false,Vector3.new(0,0,0),false,blaster.CFrame * CFrame.new(0,-2,3))
	local beamm = mesh(beam,0,0,Vector3.new(1,1,1),Enum.MeshType.Sphere)
	local beam2 = beam:Clone()
	beam2.Transparency = .5
	beam2.Parent = char
	beam2.Color = Color3.fromRGB(0, 168, 168)
	touch = dmg(beam,1/0,.5,"ConcentratedBlaster")
	local function part()
		if particles == false then return end
		local p = Instance.new("Part",char)
		local s = math.random(.25,2)
		p.Size = Vector3.new(s,s,s)
		p.BrickColor = BrickColor.new("Baby blue")
		p.Material = Enum.Material.Neon
		p.CanCollide = false
		p.CFrame = blaster.CFrame * CFrame.new(0,-2,3) * CFrame.Angles(0,math.rad(180),0)
		p.Orientation = p.Orientation + Vector3.new(math.random(-15,15),math.random(-15,15),0)
		p.Name = "Particle"
		local vel = Instance.new("BodyVelocity",p)
		vel.MaxForce = Vector3.new(1/0,1/0,1/0)
		vel.Velocity = p.CFrame.LookVector * 20 * 2
		coroutine.resume(coroutine.create(function()
			for i = 1,100 do
				if not p then break end
				p.Size = p.Size - Vector3.new(0.02,0.02,0.02)
				wait()
			end
			p:Destroy()
		end))
	end
	for i = 1,3 do
		for i = 1,4,.5 do
			part()
			beam.CFrame = beam.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-2,18),i/10)
			beam.Size = beam.Size:Lerp(Vector3.new(15,15,30),i/10)
			beam2.CFrame = beam2.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-2,18),i/10)
			beam2.Size = beam2.Size:Lerp(Vector3.new(18,18,33),i/10)
			wait()
		end
		for i = 1,4,.5 do
			part()
			beam.CFrame = beam.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-2,18),i/10)
			beam.Size = beam.Size:Lerp(Vector3.new(18,18,33),i/10)
			beam2.CFrame = beam2.CFrame:Lerp(blaster.CFrame * CFrame.new(0,-2,18),i/10)
			beam2.Size = beam2.Size:Lerp(Vector3.new(20,20,35),i/10)
			wait()
		end
	end
	canusemoves = true
	for i = 1,10 do
		beam.Size = beam.Size:Lerp(Vector3.new(0,0,30),i/15)
		beam2.Size = beam2.Size:Lerp(Vector3.new(0,0,30),i/15)
		blaster.CFrame = blaster.CFrame * CFrame.new(0,0,-1)
		blaster.Transparency = blaster.Transparency + .3
		wait()
	end
	touch:Disconnect()
	beam:Destroy()
	beam2:Destroy()
	blaster:Destroy()
end
local function TRANSFORM()
	canusemoves = false
	hum.WalkSpeed = 0
	hum.JumpPower = 0
	if transformed == false then
		state = "Transform"
		for i = 1,5 do --OG POS
			char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(0.056999974, 0.0190000236, -0.0129999965, -0.0194480661, -0.0922357887, 0.995547295, 0.113948643, 0.989043057, 0.0938591808, -0.993296266, 0.115266472, -0.00872481614),i/10)
			char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(0.435000002, 0.828000009, -0.0629999936, 0.459384769, -0.886023879, -0.0626689941, 0.810884595, 0.389536917, 0.436723292, -0.362535417, -0.251441419, 0.897410393),i/10)
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, 0.724000096, 0.0960000008, 0.999075651, 0, 0.042986989, 0.00425668992, 0.99508518, -0.0989312157, -0.0427757166, 0.0990227461, 0.994165361),i/10)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(-0.0579999983, -0.676999986, 1.11199999, 0.999884725, 0, -0.0151847899, 0.000831930898, 0.998498261, 0.0547808409, 0.0151619865, -0.0547871292, 0.998383224),i/10)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0139999986, 0.308000028, -0.466999888, 0.999874413, -0.00486472622, -0.0150835691, -0.00970396399, 0.56454742, -0.82534337, 0.0125304833, 0.825386167, 0.564429104),i/10)
			char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(0, -0.192000002, 0.197999999, 1, 0, 0, 0, 0.885983765, -0.463716388, 0, 0.463716388, 0.885983765),i/10)
			wait()
		end
		char.Head.BillboardGui.TextLabel.TextScaled = false
		char.Head.BillboardGui.TextLabel.TextWrapped = false
		char.Head.BillboardGui.TextLabel.TextSize = 75
		local function dia(t,w)
			for i = 1,#t do
				sound(char.Torso,2469886818,1,true)
				char.Head.BillboardGui.TextLabel.Text = string.sub(t,1,i)
				if w == 0 then
					wait(.05)
				elseif w ~= 0 then
					wait(w)
				end
			end
		end
		music.SoundId = "rbxassetid://2567531741"
		music.TimePosition = 15
		dia(". . .",0.5)
		wait(2)
		dia("Welp. . .",0)
		wait(2)
		dia("I think you have beaten me. . .")
		wait(2)
		dia("But, then again. . .",0)
		wait(2)
		dia("I feel kinda bad for you.",0)
		wait(2)
		dia("You've made me want to use my REAL special attack. .",0)
		wait(2)
		dia("So, here goes nothing. . .",0)
		wait(2)
		dia("Prepare yourself",0.1)
		wait(2)
		sound(char.Torso,367453005,1,true)
		for i,child in pairs(char.Bones:GetChildren()) do
			child.Transparency = 0
		end
		transformed = true
		hum.WalkSpeed = 100
		state = "TransIdle"
		char.Head.BillboardGui.TextLabel.TextScaled = true
		char.Head.BillboardGui.TextLabel.TextWrapped = true
		char.Head.BillboardGui.TextLabel.Text = "ULTRA SANS"
		local inner = part(char,Color3.fromRGB(229, 228, 223),"Neon",0,true,false,Vector3.new(5,5,5),false,char.Torso.CFrame)
		inner.Shape = "Ball"
		for i = 1,10 do
			inner.Size = inner.Size + Vector3.new(.5,.5,.5)
			inner.Transparency = inner.Transparency + .1
			wait()
		end
		hum.JumpPower = 50
		canusemoves = true
	else
		canusemoves = false
		state = "Transform"
		for i = 1,5 do --SAME POS AS OG FOR LERP BETWEEN ANIMS
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, 1.13600016, 0, 0.999975502, 0, 0.00700038671, 0.00022397429, 0.999487996, -0.0319937542, -0.00699680252, 0.0319945365, 0.999463499),i/10)
			char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(0, -0.158000007, 0.287, 0.998878598, -0.0315804854, 0.0352746546, 0.0436943248, 0.901797712, -0.42994374, -0.0182327554, 0.431002855, 0.902166367),i/10)
			char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(),i/10)
			char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(-0.149999991, -0.00700002909, 0.382000029, 0.98718369, 0.14615038, -0.0640985891, -0.146712765, 0.989170492, -0.0041319374, 0.0628005564, 0.0134830177, 0.997935057),i/10)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, 0.259000033, -0.513000011, 0.997798383, 0, -0.0663221478, -0.066080302, 0.0853216946, -0.994159877, 0.00565871783, 0.996353447, 0.0851338506),i/10)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0169999972, 0.338999987, -0.594999969, 0.998718858, 0.0193810277, -0.0467441007, -0.0486966521, 0.11696741, -0.991941214, -0.0137573313, 0.992946684, 0.117761403),i/10)
			char.Torso["LBone1"].C1 = char.Torso["LBone1"].C1:Lerp(CFrame.new(0, -0.324000031, -0.064000003, 1, 0, 0, 0, 0.867727399, -0.49704051, 0, 0.49704051, 0.867727399),i/10)
			char.Torso["LBone2"].C1 = char.Torso["LBone2"].C1:Lerp(CFrame.new(-0.428000003, -1.06699991, -0.169, -0.428981036, -0.898426592, 0.0938345045, 0.748467624, -0.41168049, -0.51991868, 0.505738616, -0.152803123, 0.84904635),i/10)
			char.Torso["LBoneHand"].C1 = char.Torso["LBoneHand"].C1:Lerp(CFrame.new(0.479000002, -0.138000071, -0.179999977, 0.604418039, 0.317792088, 0.730538785, -0.12185283, 0.943081319, -0.309434235, -0.787293196, 0.0980095118, 0.608739197),i/10)
			char.Torso["RBone1"].C1 = char.Torso["RBone1"].C1:Lerp(CFrame.new(0.0670000017, -0.601999998, -0.468000054, 0.0434085429, -0.974861622, -0.218541369, 0.794642568, 0.166272491, -0.583863616, 0.605523646, -0.148317561, 0.781884313),i/10)
			char.Torso["RBone2"].C1 = char.Torso["RBone2"].C1:Lerp(CFrame.new(0, 0.574999988, -0.449000001, 1, 0, 0, 0, 0.905098259, 0.425202429, 0, -0.425202429, 0.905098259),i/10)
			char.Torso["RBoneHand"].C1 = char.Torso["RBoneHand"].C1:Lerp(CFrame.new(-0.331, -0.545000017, -0.233999982, 0.842293561, -0.303380311, -0.445535541, -0.30922851, 0.405049354, -0.860414267, 0.44149667, 0.862493694, 0.247356683),i/10)
			wait()
		end
		local function dia(t,w)
			for i = 1,#t do
				sound(char.Torso,2469886818,1,true)
				char.Head.BillboardGui.TextLabel.Text = string.sub(t,1,i)
				if w == 0 then
					wait(.05)
				elseif w ~= 0 then
					wait(w)
				end
			end
		end
		char.Head.BillboardGui.TextLabel.TextScaled = false
		char.Head.BillboardGui.TextLabel.TextWrapped = false
		char.Head.BillboardGui.TextLabel.TextSize = 75
		dia("Phew. . .",0)
		wait(1)
		dia("Being Ultra Sans is really tiring. .",0)
		wait(1)
		dia("I don't think i can. . .",.1)
		wait(2)
		music.SoundId = "rbxassetid://385705841"
		sound(char.Torso,367453005,1,true)
		for i,child in pairs(char.Bones:GetChildren()) do
			child.Transparency = 1
		end
		transformed = false
		hum.WalkSpeed = 16
		hum.JumpPower = 50
		state = "Idle"
		char.Head.BillboardGui.TextLabel.TextScaled = true
		char.Head.BillboardGui.TextLabel.TextWrapped = true
		char.Head.BillboardGui.TextLabel.Text = "SANS"
		local inner = part(char,Color3.fromRGB(229, 228, 223),"Neon",0,true,false,Vector3.new(5,5,5),false,char.Torso.CFrame)
		inner.Shape = "Ball"
		for i = 1,10 do
			inner.Size = inner.Size + Vector3.new(.5,.5,.5)
			inner.Transparency = inner.Transparency + .1
			wait()
		end
		canusemoves = true
	end
end
local function emote()
	state = "Emoting"
	for i = 1,7 do --SAME POS AS OG FOR LERP BETWEEN ANIMS
		char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, -0.50699985, 0, 0.999975502, 0, 0.00700038671, 0.00022397429, 0.999487996, -0.0319937542, -0.00699680252, 0.0319945365, 0.999463499),i/10)
		char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(-0.0419999994, 0.0300000012, -0.0259999931, 0.998878598, -0.0315804854, 0.0352746546, 0.0307644717, 0.999251783, 0.0234414339, -0.0359885357, -0.0223299563, 0.999102771),i/10)
		char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(0.487999976, 0.465000033, -0.050999999, 0.0038388744, -0.999662161, -0.0257050395, 0.999534369, 0.00461401232, -0.030161269, 0.0302696526, -0.0255772248, 0.99921453),i/10)
		char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(-0.541999996, 0.450999975, 0.00500005484, -0.0211608075, 0.998084068, 0.0581420325, -0.999041736, -0.0188807696, -0.0394893922, -0.0383159667, -0.0589219928, 0.997526944),i/10)
		char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, 0.0399999954, 0.030999992, 0.999828458, -0.00302356249, -0.0182793885, 0.003598287, 0.999497533, 0.031490393, 0.0181749966, -0.031550739, 0.999336958),i/10)
		char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0169999972, 0.0500000045, 0.0320001021, 0.998859048, 0.00838526618, -0.0470130742, -0.00725344848, 0.999681056, 0.0241940971, 0.0472008698, -0.0238254797, 0.998601198),i/10)
		char.Torso["LBone1"].C1 = char.Torso["LBone1"].C1:Lerp(CFrame.new(0.620000005, -0.425000072, -0.11900004, 0.589940667, -0.803473711, -0.0800003707, 0.76222986, 0.586854398, -0.27314353, 0.266412228, 0.100159764, 0.958641112),i/10)
		char.Torso["LBone2"].C1 = char.Torso["LBone2"].C1:Lerp(CFrame.new(-0.0260000825, 0.627000213, -1.69199991, 0.697628796, 0.669468045, -0.255198777, 0.497541755, -0.196391657, 0.844915748, 0.515525222, -0.716409504, -0.470096946),i/10)
		char.Torso["LBoneHand"].C1 = char.Torso["LBoneHand"].C1:Lerp(CFrame.new(0.0870000422, -0.340000033, -0.0809999779, 0.952419043, 0.0340608358, 0.302882433, 0.168925047, 0.768159509, -0.617572069, -0.253697038, 0.639351964, 0.725855887),i/10)
		char.Torso["RBone1"].C1 = char.Torso["RBone1"].C1:Lerp(CFrame.new(0.440000027, -0.461000025, -0.0700000226, 0.696662664, -0.714155197, 0.0681422055, 0.686921179, 0.691441655, 0.223713696, -0.206882864, -0.109044507, 0.972270131),i/10)
		char.Torso["RBone2"].C1 = char.Torso["RBone2"].C1:Lerp(CFrame.new(0.864000022, 0.216999978, -1.18900013, 0.358922511, -0.17811951, 0.916214049, -0.633575499, 0.674327433, 0.379294902, -0.685388088, -0.716628194, 0.129179075),i/10)
		char.Torso["RBoneHand"].C1 = char.Torso["RBoneHand"].C1:Lerp(CFrame.new(-0.201999992, -0.444999993, -0.141999975, 0.822396636, 0.337788969, -0.457779735, -0.564056516, 0.589052677, -0.578668416, 0.074188605, 0.734108567, 0.674966991),i/10)
		wait()
	end
	music:Pause()
	hum.AutoRotate = false
	local song = sound(char.Torso,3956754701,1,false)
	local playing = true
	song.Ended:Connect(function()
		music:Resume()
		playing = false
		hum.AutoRotate = true
		char.HumanoidRootPart.Torso.C0 = CFrame.new(0,0,0)
		if transformed == false then
			state = "Idle"
		else
			state = "TransIdle"
		end
	end)
	while playing == true do
		char.HumanoidRootPart.Torso.C0 = char.HumanoidRootPart.Torso.C0 * CFrame.Angles(0,.1,0)
		wait()
	end
end
--END OF MOVES


--KEYBINDS
mouse.KeyDown:Connect(function(key)
	key = string.lower(key)
	if state == "Transform" then return end
	if canusemoves == false then return end
	if string.byte(key) == 114 then
		teleport()
	elseif string.byte(key) == 49 then
		if transformed == false then
			blaster()
		else
			slam()
		end
	elseif string.byte(key) == 50 then
		if transformed == false then
			bigblaster()
		else
			giantblaster()
		end
	elseif string.byte(key) == 51 then
		if transformed == false then
			doubleblaster()
		else
			concentratedblaster()
		end
	elseif string.byte(key) == 48 then
		TRANSFORM()
	elseif string.byte(key) == 109 then
		mute = not mute
		if mute == true then
			music.Volume = 0
		elseif mute == false then
			music.Volume = 1
		end
	elseif string.byte(key) == 98 then
		if state == "Emoting" then return end
		emote()
	elseif string.byte(key) == 99 then
		cleanup()
	elseif string.byte(key) == 57 then
		particles = not particles
	end
end)
--END OF KEYBINDS


--ANIMATIONS
hum.Running:Connect(function(spd)
	if state == "Transform" or state == "Emoting" then return end
	if spd > 6 then
		if transformed == false then
			state = "Walk"
		else
			state = "TransWalk"
		end
	elseif spd < 6 then
		if transformed == false then
			state = "Idle"
			for i = 1,5 do --SAME POS AS OG FOR LERP BETWEEN ANIMS
				if state ~= "Idle" then break end
				char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(-0.461000025, 0.55400002, -0.138999999, 0.637414873, 0.770431399, -0.0117421225, -0.72914505, 0.59818989, -0.33243987, -0.249098092, 0.220463797, 0.943051398),i/10)
				char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(0.435000002, 0.564999998, -0.197999999, 0.631951034, -0.768613815, 0.0993518978, 0.743860662, 0.565570116, -0.356092572, 0.217507169, 0.298936963, 0.929154098),i/10)
				char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, 0, 0, 0.999075651, 0, 0.042986989, 0, 1, 0, -0.042986989, 0, 0.999075651),i/10)
				char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, 0, 0, 0.981969237, 0, -0.189040929, 0, 1, 0, 0.189040929, 0, 0.981969237),i/10)
				char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0, 0, 0, 0.987799048, 0, 0.155733824, 0, 1, 0, -0.155733824, 0, 0.987799048),i/10)
				char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(0, 0, -0.0430000015, 1, 0, 0, 0, 0.996217906, 0.0868901834, 0, -0.0868901834, 0.996217906),i/10)
				wait()
			end
		else
			state = "TransIdle"
			for i = 1,5 do --SAME POS AS OG FOR LERP BETWEEN ANIMS
				if state ~= "TransIdle" then break end
				char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, -0.694999993, 0, 0.935831666, 0, -0.352447331, 0, 1, 0, 0.352447331, 0, 0.935831666),i/10)
				char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(0, 0, -0.0470000021, 0.932780027, -0.0073428303, 0.360371411, 0.0158635247, 0.999660075, -0.0206921175, -0.360096961, 0.0250179321, 0.932579398),i/10)
				char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(0.0119999945, -0.0989999771, -0.0259999633, 0.953588724, -0.114257872, 0.278592318, 0.169170648, 0.968679905, -0.181770369, -0.249098092, 0.220463797, 0.943051398),i/10)
				char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(-0.138999984, 0.755999982, 0.553000033, 0.549539685, -0.485859394, -0.679666698, 0.78908205, 0.569134772, 0.231160864, 0.274510205, -0.66334486, 0.696144998),i/10)
				char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, 0, 0, 0.831290603, 0, -0.555838168, 0, 1, 0, 0.555838168, 0, 0.831290603),i/10)
				char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0169999972, -0.611999989, 0.600000024, 0.907057285, 0, 0.421007216, 0, 1, 0, -0.421007216, 0, 0.907057285),i/10)
				char.Torso["LBone1"].C1 = char.Torso["LBone1"].C1:Lerp(CFrame.new(0, 0.382999986, -0.064000003, 1, 0, 0, 0, 0.931965172, 0.362547845, 0, -0.362547845, 0.931965172),i/10)
				char.Torso["LBone2"].C1 = char.Torso["LBone2"].C1:Lerp(CFrame.new(0.238000005, -0.0279999971, 0, 0.974120438, 0, 0.226029813, 0, 1, 0, -0.226029813, 0, 0.974120438),i/10)
				char.Torso["LBoneHand"].C1 = char.Torso["LBoneHand"].C1:Lerp(CFrame.new(0.324000001, -0.609000027, -0.231999993, 0.788916826, 0.281206846, 0.546381593, 0.292753607, 0.609765172, -0.736533582, -0.540282786, 0.741019011, 0.398729682),i/10)
				char.Torso["RBone1"].C1 = char.Torso["RBone1"].C1:Lerp(CFrame.new(0.0670000017, 0.465000004, 0, 0.752464771, -0.658632517, 0, 0.497680485, 0.568582654, 0.655002236, -0.431405783, -0.492866099, 0.755626976),i/10)
				char.Torso["RBone2"].C1 = char.Torso["RBone2"].C1:Lerp(CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),i/10)
				char.Torso["RBoneHand"].C1 = char.Torso["RBoneHand"].C1:Lerp(CFrame.new(-0.19600004, -0.592999995, -0.187000006, 0.913164496, -0.311582476, -0.262767971, 0, 0.64468497, -0.764448345, 0.407591254, 0.698067188, 0.588703454),i/10)
				wait()
			end
		end
	end
end)

while run.RenderStepped:Wait() do --MOVEMENT
	if hum.Health ~= hum.MaxHealth then 
		hum.Health = hum.MaxHealth
	end
	if state == "Idle" then
		for i = 1,20,.5 do --ALTER
			if state ~= "Idle" then break end
			char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(-0.262000024, 0.807000041, -0.138999999, 0.637414873, 0.770431399, -0.0117421225, -0.72914505, 0.59818989, -0.33243987, -0.249098092, 0.220463797, 0.943051398),i/100)
			char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(0.221999988, 0.730000019, -0.197999999, 0.631951034, -0.768613815, 0.0993518978, 0.743860662, 0.565570116, -0.356092572, 0.217507169, 0.298936963, 0.929154098),i/100)
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, 0.172999993, 0, 0.999075651, 0, 0.042986989, 0, 1, 0, -0.042986989, 0, 0.999075651),i/100)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, -0.193000004, 0, 0.981969237, 0, -0.189040929, 0, 1, 0, 0.189040929, 0, 0.981969237),i/100)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(00, -0.193000004, 0, 0.987799048, 0, 0.155733824, 0, 1, 0, -0.155733824, 0, 0.987799048),i/100)
			char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(0, 0, -0.0210000016, 1, 0, 0, 0, 0.998942196, -0.0459838733, 0, 0.0459838733, 0.998942196),i/100)
			wait()
		end
		for i = 1,20,.5 do --OG POS
			if state ~= "Idle" then break end
			char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(-0.461000025, 0.55400002, -0.138999999, 0.637414873, 0.770431399, -0.0117421225, -0.72914505, 0.59818989, -0.33243987, -0.249098092, 0.220463797, 0.943051398),i/100)
			char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(0.435000002, 0.564999998, -0.197999999, 0.631951034, -0.768613815, 0.0993518978, 0.743860662, 0.565570116, -0.356092572, 0.217507169, 0.298936963, 0.929154098),i/100)
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, 0, 0, 0.999075651, 0, 0.042986989, 0, 1, 0, -0.042986989, 0, 0.999075651),i/100)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, 0, 0, 0.981969237, 0, -0.189040929, 0, 1, 0, 0.189040929, 0, 0.981969237),i/100)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0, 0, 0, 0.987799048, 0, 0.155733824, 0, 1, 0, -0.155733824, 0, 0.987799048),i/100)
			char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(0, 0, -0.0430000015, 1, 0, 0, 0, 0.996217906, 0.0868901834, 0, -0.0868901834, 0.996217906),i/100)
			wait()
		end
		
	elseif state == "Walk" then
		
		for i = 1,7 do --OG POS
			if state ~= "Walk" then break end
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, 0.074000001, 0, 0.999075651, 0, 0.042986989, 0.00425668992, 0.99508518, -0.0989312157, -0.0427757166, 0.0990227461, 0.994165361),i/10)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(-0.0579999983, -0.319999993, 0.941000044, 0.999884725, 0, -0.0151847899, 0.00213675085, 0.990050018, 0.14070034, 0.0150337014, -0.140716523, 0.989935935),i/10)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0, -0.0829999894, -0.00199995935, 0.999874413, -0.00486472622, -0.0150835691, 0.00464448333, 0.999882519, -0.0146040581, 0.0151528455, 0.0145321339, 0.999779403),i/10)
			wait()
		end
		for i = 1,7 do --ALTER
			if state ~= "Walk" then break end
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, -0.0549999923, 0, 0.999075651, 0, 0.042986989, 0.00425668992, 0.99508518, -0.0989312157, -0.0427757166, 0.0990227461, 0.994165361),i/10)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(-0.0579999983, -0.0370000005, 0.758000016, 0.999884725, 0, -0.0151847899, -0.000212583458, 0.999902129, -0.0139981192, 0.0151833044, 0.0139997695, 0.999786973),i/10)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0139999986, 0.0220000073, -0.254999876, 0.999874413, -0.00486472622, -0.0150835691, 0.000127533451, 0.954164326, -0.299282908, 0.0158481449, 0.299243391, 0.954044878),i/10)
			wait()
		end
		for i = 1,7 do --ALTER2
			if state ~= "Walk" then break end
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, 0.074000001, 0, 0.999075651, 0, 0.042986989, 0.00425668992, 0.99508518, -0.0989312157, -0.0427757166, 0.0990227461, 0.994165361),i/10)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(-0.0579999983, -0.0370000005, -0.00199997425, 0.999884725, 0, -0.0151847899, -0.000212583458, 0.999902129, -0.0139981192, 0.0151833044, 0.0139997695, 0.999786973),i/10)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0, -0.393999994, 1.02200007, 0.999874413, -0.00486472622, -0.0150835691, 0.00583783258, 0.997858047, 0.065154776, 0.0147343017, -0.0652347058, 0.997760952),i/10)
			wait()
		end
		for i = 1,7 do --ALTER3
			if state ~= "Walk" then break end
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, -0.0549999923, 0, 0.999075651, 0, 0.042986989, 0.00425668992, 0.99508518, -0.0989312157, -0.0427757166, 0.0990227461, 0.994165361),i/10)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(-0.0579999983, 0.0530000031, -0.248999968, 0.999884725, 0, -0.0151847899, -0.00427201996, 0.959609628, -0.281302989, 0.0145714711, 0.281335443, 0.959499121),i/10)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.00100000203, -0.0769999921, 0.836000085, 0.999874413, -0.00486472622, -0.0150835691, 0.00442625675, 0.999570429, -0.0289694145, 0.0152180223, 0.0288989693, 0.99946624),i/10)
			wait()
		end
		
	elseif state == "TransIdle" then
		--I should have used variables for the welds shouldn't i
		for i = 1,20,.5 do --ALTER
			if state ~= "TransIdle" then break end
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, -0.492999971, 0, 0.935831666, 0, -0.352447331, 0, 1, 0, 0.352447331, 0, 0.935831666),i/100)
			char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(0, 0, -0.0470000021, 0.932780027, -0.0073428303, 0.360371411, 0.0339076146, 0.997146428, -0.0674483925, -0.358847797, 0.0751338229, 0.930367231),i/100)
			char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(0.0119999945, 0.0840000212, -0.0259999633, 0.953588724, -0.114257872, 0.278592318, 0.169170648, 0.968679905, -0.181770369, -0.249098092, 0.220463797, 0.943051398),i/100)
			char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(-0.138999984, 0.755999982, 0.382000029, 0.549539685, -0.485859394, -0.679666698, 0.78908205, 0.569134772, 0.231160864, 0.274510205, -0.66334486, 0.696144998),i/100)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, 0.178000003, 0, 0.831290603, 0, -0.555838168, 0, 1, 0, 0.555838168, 0, 0.831290603),i/100)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0169999972, -0.263999999, 0.600000024, 0.907057285, 0, 0.421007216, 0, 1, 0, -0.421007216, 0, 0.907057285),i/100)
			char.Torso["LBone1"].C1 = char.Torso["LBone1"].C1:Lerp(CFrame.new(0, 0.382999986, -0.064000003, 1, 0, 0, 0, 0.931965172, 0.362547845, 0, -0.362547845, 0.931965172),i/100)
			char.Torso["LBone2"].C1 = char.Torso["LBone2"].C1:Lerp(CFrame.new(0.238000005, 0.213, 0, 0.974120438, 0, 0.226029813, -0.0473801419, 0.977783144, 0.204194158, -0.221008137, -0.209619001, 0.952478528),i/100)
			char.Torso["LBoneHand"].C1 = char.Torso["LBoneHand"].C1:Lerp(CFrame.new(0.324000001, -0.736000061, -0.404999971, 0.788916826, 0.281206846, 0.546381593, 0.46471715, 0.308726877, -0.8298949, -0.402054876, 0.908631086, 0.112878203),i/100)
			char.Torso["RBone1"].C1 = char.Torso["RBone1"].C1:Lerp(CFrame.new(0.0670000017, 0.305000007, 0, 0.752464771, -0.658632517, 0, 0.57641834, 0.658537865, 0.483807534, -0.318651408, -0.364048123, 0.875174403),i/100)
			char.Torso["RBone2"].C1 = char.Torso["RBone2"].C1:Lerp(CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),i/100)
			char.Torso["RBoneHand"].C1 = char.Torso["RBoneHand"].C1:Lerp(CFrame.new(0.31099999, -0.592999995, -0.187000006, 0.906713843, 0.322403491, 0.27189362, 0, 0.64468497, -0.764448345, -0.421746463, 0.693135917, 0.584544778),i/100)
			wait()
		end
		for i = 1,20,.5 do --OG POS
			if state ~= "TransIdle" then break end
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, -0.694999993, 0, 0.935831666, 0, -0.352447331, 0, 1, 0, 0.352447331, 0, 0.935831666),i/100)
			char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(0, 0, -0.0470000021, 0.932780027, -0.0073428303, 0.360371411, 0.0158635247, 0.999660075, -0.0206921175, -0.360096961, 0.0250179321, 0.932579398),i/100)
			char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(0.0119999945, -0.0989999771, -0.0259999633, 0.953588724, -0.114257872, 0.278592318, 0.169170648, 0.968679905, -0.181770369, -0.249098092, 0.220463797, 0.943051398),i/100)
			char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(-0.138999984, 0.755999982, 0.553000033, 0.549539685, -0.485859394, -0.679666698, 0.78908205, 0.569134772, 0.231160864, 0.274510205, -0.66334486, 0.696144998),i/100)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, 0, 0, 0.831290603, 0, -0.555838168, 0, 1, 0, 0.555838168, 0, 0.831290603),i/100)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0169999972, -0.611999989, 0.600000024, 0.907057285, 0, 0.421007216, 0, 1, 0, -0.421007216, 0, 0.907057285),i/100)
			char.Torso["LBone1"].C1 = char.Torso["LBone1"].C1:Lerp(CFrame.new(0, 0.382999986, -0.064000003, 1, 0, 0, 0, 0.931965172, 0.362547845, 0, -0.362547845, 0.931965172),i/100)
			char.Torso["LBone2"].C1 = char.Torso["LBone2"].C1:Lerp(CFrame.new(0.238000005, -0.0279999971, 0, 0.974120438, 0, 0.226029813, 0, 1, 0, -0.226029813, 0, 0.974120438),i/100)
			char.Torso["LBoneHand"].C1 = char.Torso["LBoneHand"].C1:Lerp(CFrame.new(0.324000001, -0.609000027, -0.231999993, 0.788916826, 0.281206846, 0.546381593, 0.292753607, 0.609765172, -0.736533582, -0.540282786, 0.741019011, 0.398729682),i/100)
			char.Torso["RBone1"].C1 = char.Torso["RBone1"].C1:Lerp(CFrame.new(0.0670000017, 0.465000004, 0, 0.752464771, -0.658632517, 0, 0.497680485, 0.568582654, 0.655002236, -0.431405783, -0.492866099, 0.755626976),i/100)
			char.Torso["RBone2"].C1 = char.Torso["RBone2"].C1:Lerp(CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),i/100)
			char.Torso["RBoneHand"].C1 = char.Torso["RBoneHand"].C1:Lerp(CFrame.new(-0.19600004, -0.592999995, -0.187000006, 0.913164496, -0.311582476, -0.262767971, 0, 0.64468497, -0.764448345, 0.407591254, 0.698067188, 0.588703454),i/100)
			wait()
		end
		
	elseif state == "TransWalk" then
		for i = 1,7 do --ALTER
			if state ~= "TransWalk" then break end
			char.HumanoidRootPart["Torso"].C1 = char.HumanoidRootPart["Torso"].C1:Lerp(CFrame.new(0.00900000334, -0.492999971, 0, 0.999975502, 0, 0.00700038671, 0.0036541482, 0.852950156, -0.521979511, -0.00597098097, 0.521992326, 0.852929235),i/10)
			char.Torso["Head"].C1 = char.Torso["Head"].C1:Lerp(CFrame.new(0, 0, -0.148000002, 0.998878598, -0.0315804854, 0.0352746546, 0.0100686233, 0.869689703, 0.49349612, -0.0462628342, -0.492587507, 0.869032383),i/10)
			char.Torso["Left Arm"].C1 = char.Torso["Left Arm"].C1:Lerp(CFrame.new(0.0119999945, 0.0840000212, -0.0259999633, 0.953588724, -0.114257872, 0.278592318, 0.169170648, 0.968679905, -0.181770369, -0.249098092, 0.220463797, 0.943051398),i/10)
			char.Torso["Right Arm"].C1 = char.Torso["Right Arm"].C1:Lerp(CFrame.new(-0.138999984, 0.755999982, 0.382000029, 0.549539685, -0.485859394, -0.679666698, 0.78908205, 0.569134772, 0.231160864, 0.274510205, -0.66334486, 0.696144998),i/10)
			char.Torso["Left Leg"].C1 = char.Torso["Left Leg"].C1:Lerp(CFrame.new(0, 0.182999998, -0.48300001, 0.997798383, 0, -0.0663221478, -0.0573365204, 0.502606273, -0.862612128, 0.0333339274, 0.864515424, 0.501499772),i/10)
			char.Torso["Right Leg"].C1 = char.Torso["Right Leg"].C1:Lerp(CFrame.new(0.0169999972, -0.256000012, 0.0780000091, 0.925583422, 0.263819486, 0.271467328, -0.0805623382, 0.83799237, -0.539702177, -0.369871557, 0.477669418, 0.796885848),i/10)
			char.Torso["LBone1"].C1 = char.Torso["LBone1"].C1:Lerp(CFrame.new(0, 0.382999986, -0.064000003, 1, 0, 0, 0, 0.931965172, 0.362547845, 0, -0.362547845, 0.931965172),i/10)
			char.Torso["LBone2"].C1 = char.Torso["LBone2"].C1:Lerp(CFrame.new(0.238000005, 0.213, 0, 0.974120438, 0, 0.226029813, -0.0473801419, 0.977783144, 0.204194158, -0.221008137, -0.209619001, 0.952478528),i/10)
			char.Torso["LBoneHand"].C1 = char.Torso["LBoneHand"].C1:Lerp(CFrame.new(0.324000001, -0.736000061, -0.404999971, 0.788916826, 0.281206846, 0.546381593, 0.46471715, 0.308726877, -0.8298949, -0.402054876, 0.908631086, 0.112878203),i/10)
			char.Torso["RBone1"].C1 = char.Torso["RBone1"].C1:Lerp(CFrame.new(0.0670000017, -0.601999998, -0.468000054, 0.0434085429, -0.974861622, -0.218541369, 0.794642568, 0.166272491, -0.583863616, 0.605523646, -0.148317561, 0.781884313),i/10)
			char.Torso["RBone2"].C1 = char.Torso["RBone2"].C1:Lerp(CFrame.new(0, 0.574999988, -0.449000001, 1, 0, 0, 0, 0.862713277, 0.505693376, 0, -0.505693376, 0.862713277),i/10)
			char.Torso["RBoneHand"].C1 = char.Torso["RBoneHand"].C1:Lerp(CFrame.new(-0.129000008, -0.545000017, -0.0429999828, 0.845284462, 0.475916624, -0.242894083, -0.496416003, 0.531333983, -0.686480403, -0.197649539, 0.700847745, 0.685381055),i/10)
			wait()
		end
	end
end
--END OF ANIMATIONS
INFO