Da Feets
Da Feets
-- Converted: By Bluecat
-- Fixed: By Melon
-- USES EMPER'S REANIMATE, MADE BY EMPER
--[[
https://www.roblox.com/catalog/14255556501/Extra-Right-White-Arm
https://www.roblox.com/catalog/14255554762/Extra-Left-White-Arm
https://www.roblox.com/catalog/14768693948/White-Extended-Right-Arm
https://www.roblox.com/catalog/14768701869/White-Extended-Left-Arm
https://www.roblox.com/catalog/14255528083/Torso-Extension
or
https://www.roblox.com/catalog/13779879140/Black-Fluffy-Fur-Body
(ANYTHING CAN BE USED FOR THE TORSO SUCH AS A VEST.)
]]--
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "Melon's (FE) Scripts";
Text = "Have fun!";
Icon = "rbxthumb://type=Asset&id=13446503788&w=150&h=150"})
Duration = 16;
return Instance
end
return Instance
end
local Fling = { }
local Aligns = { }
local Blacklist = { }
local Accessories = { }
local Attachments = { }
tableinsert(Fling, Target)
end
end
end)
return Part
end
return Motor6D
end
tableinsert(Attachments, Attachment)
return Attachment
end
if Character then
Part = FindInstance(Character, "BasePart", "HumanoidRootPart") or
FindInstance(Character, "BasePart", "Head") or FindInstance(Character, "BasePart",
"Torso") or FindInstance(Character, "BasePart", "UpperTorso")
end
if Part then
HumanoidRootPart.CFrame = Part.CFrame
else
local SpawnLocations = { }
local AccessoryTable = {
{ Mesh = "14241018198", Texture = "14251599953", Instance = Torso },
{ Mesh = "14255522247", Texture = "14255543546", Instance = RightArm, CFrame
= CFrameAngles(0, 1.57, 1.57) },
{ Mesh = "14255522247", Texture = "14255543546", Instance = LeftArm, CFrame =
CFrameAngles(0, - 1.57, 1.57) },
{ Mesh = "14768684979", Texture = "14768683674", Instance = RightLeg, CFrame
= CFrameAngles(0, - 1.57, 1.57) },
{ Mesh = "14768684979", Texture = "14768683674", Instance = LeftLeg, CFrame =
CFrameAngles(0, 1.57, 1.57) },
}
CharacterClone.PrimaryPart = Head
CharacterClone.Parent = Workspace
AccessoryWeld.Parent = CloneHandle
Clone.Parent = CharacterClone
tableinsert(Accessories, Clone)
if Instance then
if stringmatch(Mesh.MeshId, Table.Mesh) and
stringmatch(Mesh[Id], Table.Texture) and not tablefind(Blacklist, Instance) then
tableinsert(Blacklist, Instance)
tableinsert(Aligns, { Handle, Instance,
Table.CFrame or CFrameidentity })
return
end
end
end
if Backpack then
Backpack:ClearAllChildren()
end
tableclear(Aligns)
tableclear(Blacklist)
LocalPlayer.Character = CharacterClone
CurrentCamera.CameraSubject = CharacterClone.Head
taskspawn(function()
CurrentCamera:GetPropertyChangedSignal("CFrame"):Wait()
CurrentCamera.CFrame = CurrentCameraCFrame
end)
if BasePart then
local clock = osclock()
while CharacterHumanoidRootPart and BasePart and osclock()
- clock <= 1 and BasePart.AssemblyLinearVelocity.Magnitude <= 60 do
CharacterHumanoidRootPart.AssemblyAngularVelocity =
Velocity
CharacterHumanoidRootPart.AssemblyLinearVelocity =
Velocity
CharacterHumanoidRootPart.CFrame = BasePart.CFrame +
Vector3new(0, - 1, 0)
PostSimulation:Wait()
end
end
end
tableclear(Fling)
if CharacterHumanoidRootPart then
CharacterHumanoidRootPart.AssemblyAngularVelocity = Vector3zero
CharacterHumanoidRootPart.AssemblyLinearVelocity = Vector3zero
CharacterHumanoidRootPart.CFrame =
CFramenew(HumanoidRootPart.Position + Vector3new(mathrandom(- 32, 32), 0,
mathrandom(- 32, 32)))
PostSimulation:Wait()
end
Character:BreakJoints()
Character.DescendantAdded:Connect(DescendantAdded)
end
end
if Magnitude then
local LookVector = Part1CFrame.LookVector * Linear
Part0.AssemblyLinearVelocity = Vector3new(LookVector.X, Linear,
LookVector.Z)
else
Part0.AssemblyLinearVelocity = Vector3new(LinearVelocity.X,
Linear, LinearVelocity.Z)
end
local Connection =
game:FindFirstChildOfClass("RunService").PostSimulation:Connect(function()
local osclock = osclock()
local Axis = 0.004 * mathcos(osclock * 17.5)
if sethiddenproperty then
sethiddenproperty(LocalPlayer, "SimulationRadius", 10000000)
end
BindableEvent.Event:Connect(Event)
CharacterClone:GetPropertyChangedSignal("Parent"):Connect(function()
if not CharacterClone.Parent then
Added:Disconnect()
Connection:Disconnect()
CharacterClone:Destroy()
if BindableEvent then
BindableEvent:Destroy()
end
StarterGui:SetCore("ResetButtonCallback", true)
end
end)
BindableEvent:GetPropertyChangedSignal("Parent"):Connect(Event)
--// INITIALIZATION --
local Plr = Plrs.LocalPlayer
print(Plr)
local Char = Plr.Character
local Hum = Char:FindFirstChildOfClass'Humanoid'
assert(Hum and Hum.RigType==Enum.HumanoidRigType.R6,"You need to have a valid
Humanoid instance! (Exising and R6)")
local Head = Char.Head
local RArm = Char["Right Arm"]
local LArm = Char["Left Arm"]
local RLeg = Char["Right Leg"]
local LLeg = Char["Left Leg"]
local Torso= Char.Torso
local Root = Char.HumanoidRootPart
local NeutralAnims = true
local Attack = false
local legAnims = true
local Mouse = Plr:GetMouse()
local EffectFolder=Instance.new("Folder")
EffectFolder.Name='Effects'
EffectFolder.Parent=Char
local Movement = 10
local Sine = 0;
local Change = 1;
local wsVal = 6
function Weld(part0,part1,c0,c1)
local weld = IN("Weld")
weld.Part0 = part0
weld.Part1 = part1
weld.C0 = c0 or CF.N()
weld.C1 = c1 or CF.N()
weld.Parent = part0
return weld
end
function Mesh(parent,meshtype,meshid,textid,scale,offset)
local part = IN("SpecialMesh")
part.MeshId = meshid or ""
part.TextureId = textid or ""
part.Scale = scale or V3.N(1,1,1)
part.Offset = offset or V3.N(0,0,0)
part.MeshType = meshtype or Enum.MeshType.Sphere
part.Parent = parent
return part
end
function SoundPart(id,pitch,volume,looped,effect,autoPlay,cf)
local soundPart =
Part(EffectFolder,C3.N(1,1,1),Enum.Material.SmoothPlastic,V3.N(.05,.05,.05),cf,true
,false)
soundPart.Transparency=1
local Sound = IN("Sound")
Sound.SoundId = "rbxassetid://".. tostring(id or 0)
Sound.Pitch = pitch or 1
Sound.Volume = volume or 1
Sound.Looped = looped or false
if(autoPlay)then
coroutine.wrap(function()
repeat wait() until Sound.IsLoaded
Sound.Playing = autoPlay or false
end)()
end
if(not looped and effect)then
Sound.Stopped:connect(function()
Sound.Volume = 0
soundPart:destroy()
end)
elseif(effect)then
warn("Sound can't be looped and a sound effect!")
end
Sound.Parent = soundPart
return Sound
end
function Joint(name,part0,part1,c0,c1,type)
local joint = IN(type or "Motor6D")
joint.Part0 = part0
joint.Part1 = part1
joint.C0 = c0 or CF.N()
joint.C1 = c1 or CF.N()
joint.Parent=part0
joint.Name=name or part0.." to "..part1.." "..joint.ClassName
return joint
end
function Animate(joint,c0,alpha,style,dir)
if(style=='Lerp')then
joint.C0 = joint.C0:lerp(c0,alpha)
else
local info = TweenInfo.new(alpha or 1,style or
Enum.EasingStyle.Linear,dir or Enum.EasingDirection.Out,0,false,0)
local tween = S.TweenService:Create(joint,info,{C0=c0})
tween:Play();
return tween;
end
end
function NewInstance(instance,parent,properties)if(properties.Parent)then
properties.Parent=parent end;local new = IN(instance)if(properties)then for
prop,val in next, properties do pcall(function() new[prop]=val
end)end;end;new.Parent=parent;return new;end
function GetAdjacentParts(part)
local function createLargerHitbox(part)
local n = 0.2
local clone = part:Clone()
clone.Transparency = .8
clone.BrickColor = BrickColor.Red()
clone.Size = clone.Size + Vector3.new(n, n, n)
clone.Name = "hitbox"
clone.CFrame = part.CFrame
clone.Anchored=true
clone.CanCollide=true
if (clone:IsA("WedgePart")) then
clone.Size = clone.Size + Vector3.new(0, n, n)
clone.CFrame = part.CFrame * CFrame.new(0, n / 2, -n /2)
end
if (clone:IsA("CornerWedgePart")) then
clone.Size = clone.Size + Vector3.new(n, n, n)
clone.CFrame = part.CFrame * CFrame.new(-n / 2, n / 2, n / 2)
end
clone.Parent = part
return clone
end
return (function()
local adjacent={}
for _,v in next, touchingParts do if(v~=part)then
table.insert(adjacent,v)end;end
return adjacent;
end)()
end
--// CUSTOMIZABLE VARIABLES --
local Music =
Sound(MusicData.Parent,MusicData.ID,MusicData.Pitch,MusicData.Volume,true,false,tru
e)
Music.Name = 'Music'
--// JOINTS --
local RJ = Joint("RootJoint",Root,Torso,CF.N(),CF.N())
local NK = Joint("Neck",Torso,Head,CF.N(0,1.5,0),CF.N())
local LS = Joint("Left Shoulder",Torso,LArm,CF.N(-.5,-2,0),CF.N(0,.5,0))
local RS = Joint("Right Shoulder",Torso,RArm,CF.N(.5,-2,0),CF.N(0,.5,0))
local LH = Joint("Left Hip",Torso,LLeg,CF.N(0,0,0),CF.N(0,0,0))
local RH = Joint("Right Hip",Torso,RLeg,CF.N(0,0,0),CF.N(0,0,0))
--Torso.Anchored = true
--// Artificial HB --
script:WaitForChild("Heartbeat")
local tf = 0
local allowframeloss = false
local tossremainder = false
local lastframe = tick()
local frame = 1/60
ArtificialHB:Fire()
game:GetService("RunService").Heartbeat:connect(function(s, p)
tf = tf + s
if tf >= frame then
if allowframeloss then
script.Heartbeat:Fire()
lastframe = tick()
else
for i = 1, math.floor(tf / frame) do
ArtificialHB: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
pcall(game.Destroy,Char:FindFirstChild'Animate')
pcall(game.Destroy,Hum:FindFirstChild'Animator')
function fakePhysics(elapsed,cframe,velocity,rotation,acceleration)
local pos = cframe.p
local matrix = cframe-pos
return
fromaxisangle(elapsed*rotation)*matrix+pos+elapsed*velocity+elapsed*elapsed*acceler
ation
end
function CastRay(startPos,endPos,range,ignoreList)
local ray = Ray.new(startPos,(endPos-startPos).unit*range)
local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or
{},false,true)
return part,pos,norm,(pos and (startPos-pos).magnitude)
end
function GetTorso(char)
return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or
char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
end
function Projectile(data)
local Size = data.Size or 1;
local Origin = data.Origin or CFrame.new();
local Velocity = data.Velocity or Vector3.new(0,100,0);
local Gravity = data.Gravity or workspace.Gravity;
local Color = data.Color or Color3.new(.7,0,0);
local Lifetime = data.Lifetime or 1;
local Material = data.Material or Enum.Material.Glass;
local ignore = data.Ignorelist or {Char};
local Init = data.Init;
local Update = data.Update;
local HitFunc = data.Hit;
local ShouldCollide = data.BeforeCollision;
local DeleteOnHit = not not data.DeleteOnHit;
local ProjectilePart = data.Projectile or nil;
local Look = data.AimAtPos or false;
local drop = ProjectilePart or
Part(nil,Color,Material,Vector3.new(Size,Size,Size),Origin,true,false)
local StartTravel = tick()
local currCF = data.Origin
if(not ProjectilePart)then
Mesh(drop,Enum.MeshType.Sphere)
drop.Parent=EffectFolder
end
drop.Material = Material
drop.Color = Color
drop.CFrame=Origin
local object=setmetatable({Part=drop},{
__newindex=function(s,i,v)
if(i=='Gravity')then StartTravel = tick() data.Origin = currCF
Origin=currCF data.Gravity = v Gravity=v
elseif(i=='Velocity')then StartTravel = tick() data.Origin =
currCF Origin=currCF data.Velocity = v Velocity=v
elseif(i=='Lifetime')then data.Lifetime = v Lifetime=v
elseif(i=='Ignorelist')then data.Ignorelist = v ignore=v
elseif(i=='DeleteOnHit')then data.DeleteOnHit = v DeleteOnHit=v
else
pcall(function()
drop[i]=v
end)
end
end;
__index=data;
})
if(Init)then
Init(drop)
end
local startTick = tick();
coroutine.wrap(function()
while true do
local elapsed = tick()-startTick
local trElapsed = tick()-StartTravel
if(elapsed>Lifetime)then
drop:destroy();
break
end
local newCF =
fakePhysics(trElapsed,Origin,Velocity,Vector3.new(),Vector3.new(0,-Gravity,0))
local nextCF =
fakePhysics(trElapsed+.05,Origin,Velocity,Vector3.new(),Vector3.new(0,-Gravity,0))
local dist = (drop.Position-newCF.p).magnitude
local hit,pos,norm = CastRay(drop.Position,newCF.p,dist,ignore)
currCF=newCF
local doCollide = hit and (GetTorso(hit.Parent) or
hit.CanCollide) and (not ShouldCollide or ShouldCollide(hit))
if(hit and not doCollide)then table.insert(ignore,hit) end
if(Look)then
drop.CFrame = CFrame.new(newCF.p,nextCF.p)
else
drop.CFrame = CFrame.new(newCF.p)
end
if(Update)then Update(drop,object,elapsed) end
if(doCollide)then
if(DeleteOnHit or not HitFunc)then drop:destroy() end
if(HitFunc)then if(HitFunc(hit,pos,norm,object,drop))then
break end end
end
if(not drop.Parent)then
break
end
swait()
end
end)()
return object
end
function Chat(txt,timer,clr)
if(Head:FindFirstChild'Chattie' and
Head.Chattie:FindFirstChild'Killchat')then
Head.Chattie.Killchat.Value=true
elseif(Head:FindFirstChild'Chattie')then
Head.Chattie:destroy()
end
local nig = V3.N(0,0,0)
local clr = (typeof(clr)=='BrickColor' and clr.Color or typeof(clr)=='Color3'
and clr or C3.N(1,1,1))
local bg = NewInstance("BillboardGui",Head,{
Name='Chattie';
Adornee=Head;
LightInfluence=0;
Size=UDim2.new(4,0,2,0);
})
local dismiss = NewInstance("BoolValue",bg,{
Name='Killchat';
})
bg.StudsOffsetWorldSpace=nig:lerp(nig+V3.N(0,3,0),EasingFunctions.outBack(1-
i,0,1,1,6))
if(dismiss.Value)then break end
swait()
end
local start = tick()
nig=bg.StudsOffsetWorldSpace
repeat swait() until dismiss.Value or tick()-start>=timer
bg.Name='DismissingChat'
for i = 0, 1, .05 do
bg.StudsOffsetWorldSpace=nig:lerp(nig+V3.N(0,2,0),EasingFunctions.linear(i,0,1,1))
text.TextTransparency=i;
text.TextStrokeTransparency=.5+i/2;
swait()
end
bg:destroy()
end)()
end
function ShowDamage(pos,txt,timer,clr)
local nig = typeof(pos)=='Vector3' and CF.N(pos) or pos
local part =
Part(EffectFolder,clr,Enum.Material.SmoothPlastic,V3.N(.05,.05,.05),nig,true,false)
part.Transparency=1
local bg = NewInstance("BillboardGui",part,{
Adornee=part;
LightInfluence=0;
Size=UDim2.new(2,0,1,0);
})
local text = NewInstance("TextLabel",bg,{
BackgroundTransparency=1;
Size=UDim2.new(1,0,1,0);
Font=Enum.Font.Fantasy;
Text=txt;
TextColor3=part.Color;
TextStrokeColor3=C3.N(0,0,0);
TextScaled=true;
TextTransparency=1;
TextStrokeTransparency=1;
})
coroutine.wrap(function()
for i = 1, 0, -.02 do
part.CFrame=nig:lerp(nig+V3.N(0,3,0),EasingFunctions.outBack(1-
i,0,1,1,6))
text.TextTransparency=i;
text.TextTransparency=text.TextTransparency-.02;
text.TextStrokeTransparency=text.TextStrokeTransparency-.01;
swait()
end
local start = tick()
repeat swait() until tick()-start>=timer
local endRot=M.RNG(-25,25)
for i = 0, 1, .02 do
part.CFrame=(nig+V3.N(0,3,0)):lerp(nig+V3.N(0,-
10,0),EasingFunctions.inBack(i,0,1,1,6))
text.TextTransparency=i;
text.TextTransparency=text.TextTransparency+.02;
text.TextStrokeTransparency=text.TextStrokeTransparency+.01;
swait()
end
part:destroy()
end)()
end
function CamshakePlayer(p,settings)
local sh = script:WaitForChild'CamShake':Clone()
local optionFolder = sh:WaitForChild'Options'
for _,v in next, optionFolder:children() do
if(settings[v.Name])then
v.Value=settings[v.Name]
end
end
local originVal;
if(typeof(settings.Origin)=='Vector3')then
originVal=IN("Vector3Value")
elseif(typeof(settings.Origin)=='CFrame')then
originVal=IN("CFrameValue")
elseif(typeof(settings.Origin)=='Instance')then
originVal=IN("ObjectValue")
end
if(originVal)then
originVal.Name = 'Origin'
originVal.Value = settings.Origin
originVal.Parent=optionFolder
end
local parent = p.Character or p:FindFirstChildOfClass'Backpack' or
p:FindFirstChildOfClass'PlayerGui'
if(parent)then
local nig = sh:Clone();
nig.Parent=parent
nig.Disabled=false
S.Debris:AddItem(nig,(settings.Duration or 2)+1)
end
end
function Camshake(settings)
for _,p in next, game:service'Players':players() do
CamshakePlayer(p,settings)
end
end
function Tween(object,properties,time,style,dir,repeats,reverse,delay)
local info = TweenInfo.new(time or 1,style or Enum.EasingStyle.Linear,dir or
Enum.EasingDirection.Out,repeats or 0,reverse or false,delay or 0)
local tween = S.TweenService:Create(object,info,properties)
tween:Play()
return tween;
end
function IsValid(val,type,def)
if(typeof(type)=='string')then
return (typeof(val)==type and val or def)
elseif(typeof(type)=='table')then
for i,v in next, type do
if(typeof(val)==v)then
return val
end
end
end
return def
end
local FXInformation = {}
function EffectFunc(data)
if(typeof(data)=='Instance' and data:IsA'ModuleScript')then
data=require(data)end
assert(typeof(data)=='table',"Expected 'table' calling EffectFunc")
data.Parent=EffectFolder
if(data.BeamEffect)then
return Slash(data)
end
local CSQ,SSQ,TSQ,CFQ;
if(typeof(Color)=='BrickColor')then Color = Color.Color end
if(typeof(EndColor)=='BrickColor')then EndColor = EndColor.Color end
if(typeof(Color)=='ColorSequence')then
CSQ = Color
elseif(typeof(Color)=='Color3' and typeof(EndColor)=='Color3')then
CSQ = ColorSequence.new(Color,EndColor)
elseif(typeof(Color)=='Color3')then
CSQ = ColorSequence.new(Color)
else
CSQ = ColorSequence.new(Color3.new(1,1,1))
end
if(typeof(Transparency)=='NumberSequence')then
TSQ = Transparency
elseif(typeof(Transparency)=='number' and
typeof(EndTransparency)=='number')then
TSQ = NumberSequence.new(Transparency,EndTransparency)
elseif(typeof(Transparency)=='number')then
TSQ = NumberSequence.new(Transparency)
else
TSQ = NumberSequence.new(0,1)
end
local part,mesh;
if(not Part or not Part:IsA'BasePart')then
part = Instance.new("Part")
mesh = Instance.new("SpecialMesh",part)
else
part=Part:Clone();
mesh=part:FindFirstChildOfClass'DataModelMesh'
end
part.Color = CSQ.Keypoints[1].Value
part.Transparency = TSQ.Keypoints[1].Value
part.Size = (not mesh and SSQ.Keypoints[1].Value or Vector3.new(1,1,1))
part.Anchored = true
part.CanCollide = false
part.CFrame = CFQ.Keypoints[1].Value
part.Material = Material
part.Locked = true
part.Parent = EffectFolder
if(mesh)then
mesh.Scale = SSQ.Keypoints[1].Value
mesh.MeshType = Mesh.MeshType or Mesh.Type or Enum.MeshType.Brick
mesh.MeshId = Mesh.MeshId or Mesh.Id or ""
mesh.TextureId = Mesh.TextureId or Mesh.Texture or ""
end
game:service'Debris':AddItem(part,Lifetime*1.5)
table.insert(FXInformation,{
Part=part;
Mesh=mesh;
Lifetime=Lifetime;
Create=tick();
ColorSeq=CSQ;
SizeSeq=SSQ;
TranSeq=TSQ;
CFSeq=CFQ;
ColorPoint=CSQ.Keypoints[1];
SizePoint=SSQ.Keypoints[1];
TranPoint=TSQ.Keypoints[1];
CFPoint=CFQ.Keypoints[1];
Rotation=Rotation;
CurrRot=CFrame.new();
UpdateCF=(typeof(UpdateCF)=='function' and UpdateCF or
typeof(UpdateCF)=='Instance' and UpdateCF:IsA'ModuleScript' and require(UpdateCF)
or nil);
OnUpdate=(typeof(Update)=='function' and Update or
typeof(Update)=='Instance' and Update:IsA'ModuleScript' and require(Update) or nil)
})
end
function GetKeyframe(sequence,currentTime,lifeTime)
local scale = currentTime/lifeTime
for i = 1,#sequence.Keypoints do
local keyframe = sequence.Keypoints[i]
local nframe = sequence.Keypoints[i+1]
if(not nframe or keyframe.Time>=scale and
keyframe.Time<nframe.Time)then
return keyframe
end
end
return sequence.Keypoints[1];
end;
coroutine.wrap(function()
while true do
swait()
local queue={}
for i,dat in next, FXInformation do
local part,mesh,lifetime,created,csq,ssq,tsq,cfq,rot,ucf,upd =
dat.Part,
dat.Mesh,
dat.Lifetime,
dat.Create,
dat.ColorSeq,
dat.SizeSeq,
dat.TranSeq,
dat.CFSeq,
dat.Rotation,
dat.UpdateCF,
dat.OnUpdate;
local current = tick();
local elapsed = tick()-created
local currentcpoint = GetKeyframe(csq,elapsed,lifetime)
local currentspoint = GetKeyframe(ssq,elapsed,lifetime)
local currenttpoint = GetKeyframe(tsq,elapsed,lifetime)
local currentcfpoint = GetKeyframe(cfq,elapsed,lifetime)
if(currentcpoint~=dat.ColorPoint)then
Tween(part,{Color=currentcolor},(currentcpoint.Time-
dat.ColorPoint.Time)*lifetime)
dat.ColorPoint=currentcpoint
end
if(currenttpoint~=dat.TranPoint)then
Tween(part,{Transparency=currenttrans},(currenttpoint.Time-
dat.TranPoint.Time)*lifetime)
dat.TranPoint=currenttpoint
end
if(currentspoint~=dat.SizePoint)then
if(mesh)then
Tween(mesh,{Scale=currentsize},(currentspoint.Time-
dat.SizePoint.Time)*lifetime)
else
Tween(part,{Size=currentsize},(currentspoint.Time-
dat.SizePoint.Time)*lifetime)
end
dat.SizePoint=currentspoint
end
local newRot={0,0,0}
if(rot=='random')then
dat.CurrRot =
CFrame.Angles(math.rad(Random.new():NextInteger(0,360)),math.rad(Random.new():NextI
nteger(0,360)),math.rad(Random.new():NextInteger(0,360)))
elseif(typeof(rot)=='table')then
dat.CurrRot =
dat.CurrRot*CFrame.Angles(math.rad(rot[1]),math.rad(rot[2]),math.rad(rot[3]))
end
if(ucf and typeof(ucf)=='function')then
part.CFrame=ucf(dat)
elseif(#cfq.Keypoints==2)then
part.CFrame=cfq.Keypoints[1].Value:lerp(cfq.Keypoints[2].Value,elapsed/
lifetime)*dat.CurrRot
else
if(currentcfpoint~=dat.CFPoint)then
Tween(part,{CFrame=currentcf},(currentcfpoint.Time-
dat.CFPoint.Time)*lifetime)
dat.CFPoint=currentcfpoint
end
end
if(typeof(upd)=='function')then upd(dat) end
if(not part or not part.Parent)then
table.insert(queue,tostring(i))
end
if(elapsed>=lifetime)then
part:destroy()
end
end
for _,v in next, queue do FXInformation[tonumber(v)]=nil; end
end
end)()
local P =
Part(Parent,Color,Enum.Material.SmoothPlastic,Vector3.new(0,0,0),SCFrame,true,false
)
P.Transparency = 1
local A0 = Instance.new("Attachment")
local A1 = Instance.new("Attachment")
A0.Position = Vector3.new(0,0,Length)
A1.Position = Vector3.new(0,0,-Length)
A0.Parent=P
A1.Parent=P
local Beam = Instance.new("Beam")
Beam.Attachment0=A0
Beam.Attachment1=A1
Beam.FaceCamera=true
Beam.LightInfluence=BeamProperties.LightInfluence or 0
Beam.LightEmission=BeamProperties.LightEmission or 1
for i,v in next, BeamProperties do
pcall(function() Beam[i]=v end)
end
Beam.Color = CSQ
Beam.CurveSize0 = Curve
Beam.CurveSize1 = -Curve
Beam.Width0=Width
Beam.Width1=Width
Beam.Parent=P
local ti = {Lifetime,Style,Direction,0,false,Delay}
Tween(P,{CFrame = SCFrame*Offset},unpack(ti))
Tween(Beam,{Width0=EndWidth,Width1=EndWidth,CurveSize0=EndCurve,CurveSize1=-
EndCurve},unpack(ti))
Tween(A0,{Position=Vector3.new(0,0,EndLength)},unpack(ti))
Tween(A1,{Position=Vector3.new(0,0,-
EndLength)},unpack(ti)).Completed:connect(function() P:destroy() end)
if(FadeAway)then
local part = Instance.new("Part")
part.Transparency = Beam.Transparency.Keypoints[1].Value or 0
Tween(part,{Transparency=1},Lifetime,FadeStyle,FadeDir,0,false,Delay)
repeat swait()
Beam.Transparency=NumberSequence.new(part.Transparency)
until not P.Parent
end
end
local EffectInfo={}
function Effect(data)
local color = data.Color or Color3.new(1,1,1);
local transparency = data.Transparency or {0,1}
local lifetime = data.Lifetime or 1
local cframe = data.CFrame or CFrame.new(0,10,0)
local acceleration = data.Acceleration or Vector3.new(0,0,0)
local endpos = data.EndPos
local rotation = data.Rotation or {0,0,0}
local meshData = data.Mesh or {Type=Enum.MeshType.Brick}
local size = data.Size or Vector3.new(1,1,1)
local material = data.Material or Enum.Material.Neon
local setpart = typeof(data.Part)=='string' and
FXFolder:FindFirstChild(tostring(data.Part)):Clone() or
typeof(data.Part)=='Instance' and data.Part or nil
local endSize = data.EndSize or size
local reverse = data.Reverse or 0
local sizeTween = data.TweenSize and EasingFunctions[data.TweenSize];
local moveTween = data.TweenPos and EasingFunctions[data.TweenPos];
local transTween = data.TweenTrans and EasingFunctions[data.TweenTrans];
local accelTween = data.TweenAccel and EasingFunctions[data.TweenAccel];
if(endSize and typeof(size)=='Vector3')then size={size,endSize} end
if(typeof(size)=='Vector3')then size={size,size}end
if(typeof(transparency)=='number')then
transparency={transparency,transparency} end
if(typeof(color)=='BrickColor')then color=color.Color end
local PM;
part.Material = material
part.CFrame = cframe
part.Color = color
part.Anchored = true
part.CanCollide = false
part.Transparency = transparency[1]
part.Size = (PM and Vector3.new(1,1,1) or size[1])
part.Parent = EffectFolder
coroutine.wrap(function()
while true do
swait()
for i,v in next, EffectInfo do
local
start,lifetime,t0,transTween,sizeTween,moveTween,accelTween,color,transparency,size
,part,mesh,rotation,acceleration,endpos,cframe,reverse,startacc=unpack(v)
local elapsed = tick()-start
local left = elapsed/lifetime
local dt = tick()-t0
t0 = tick()
if(mesh)then
mesh.Scale = size[1]:lerp(size[2],(sizeTween and
sizeTween(elapsed,0,1,lifetime) or left))
else
part.Size = size[1]:lerp(size[2],(sizeTween and
sizeTween(elapsed,0,1,lifetime) or left))
end
part.Transparency = numLerp(transparency[1],transparency[2],
(transTween and transTween(elapsed,0,1,lifetime) or left))
local newRot={0,0,0}
if(rotation=='random')then
newRot={math.rad(Random.new():NextInteger(0,360)),math.rad(Random.new():NextInteger
(0,360)),math.rad(Random.new():NextInteger(0,360))}
elseif(typeof(rotation)=='table')then
local
x,y,z=math.rad(rotation[1]),math.rad(rotation[2]),math.rad(rotation[3])
if(rotation[1]==0)then x=0 end
if(rotation[2]==0)then y=0 end
if(rotation[3]==0)then z=0 end
newRot={x,y,z}
end
local accel=(acceleration*dt)
if(endpos)then
part.CFrame = cframe:lerp(endpos,(moveTween and
moveTween(elapsed,0,1,lifetime) or left))
elseif(accel and (accel.x~=0 or accel.y~=0 or accel.z~=0))then
part.CFrame = part.CFrame*CFrame.Angles(unpack(newRot))+
(accel*accelMult)
elseif(newRot and (newRot[1]~=0 or newRot[2]~=0 or
newRot[3]~=0))then
part.CFrame = part.CFrame*CFrame.Angles(unpack(newRot))
end
if(reverse>0)then
acceleration=acceleration-Vector3.new(
0.05*startacc.x/(reverse/1.5),
0.05*startacc.y/(reverse/1.5),
0.05*startacc.z/(reverse/1.5)
)
end
if(elapsed>lifetime)then
part:destroy()
EffectInfo[i]=nil
else
EffectInfo[i]={start,lifetime,t0,transTween,sizeTween,moveTween,accelTween,color,tr
ansparency,size,part,mesh,rotation,acceleration,endpos,cframe,reverse,startacc}
end
end
end
end)()
function CastRay(startPos,endPos,range,ignoreList)
local ray = Ray.new(startPos,(endPos-startPos).unit*range)
local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or
{Char},false,true)
return part,pos,norm,(pos and (startPos-pos).magnitude)
end
function getRegion(point,range,ignore)
return workspace:FindPartsInRegion3WithIgnoreList(R3(point-V3.N(1,1,1)*range/
2,point+V3.N(1,1,1)*range/2),ignore,100)
end
function DealDamage(data)
local Who = data.Who;
local MinDam = data.MinimumDamage or 15;
local MaxDam = data.MaximumDamage or 30;
local MaxHP = data.MaxHP or 1e5;
local DamageIsPercentage = data.PercentageDamage or true
function AoE(where,range,func)
local hit = {}
for _,v in next, getRegion(where,range,{Char}) do
local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid')
if(hum and not hit[hum])then
hit[hum] = true
func(v.Parent,hum)
end
end
return hit
end
function AoEDamage(where,range,data)
AoE(where,range,function(c,h)
data.Who=c
DealDamage(data)
end)
end
function Knockback(velocity,decay)
return function(w,t)
local BV = IN("BodyVelocity")
BV.P=20000
BV.MaxForce=V3.N(M.H,M.H,M.H)
BV.Velocity=velocity or V3.N(0,25,0)+(Root.CFrame.lookVector*25)
BV.Parent=t
S.Debris:AddItem(BV,decay or .5)
end
end
S.UserInputService.InputBegan:connect(function(io,gpe)
if(gpe or Attack)then return end
end)
while true do
swait()
Sine=Sine+Change
if(not Music or not Music.Parent)then
local tp = (Music and Music.TimePosition)
Music =
Sound(MusicData.Parent,MusicData.ID,MusicData.Pitch,MusicData.Volume,true,false,tru
e)
Music.Name = 'Music'
Music.TimePosition = tp
end
Music.SoundId = "rbxassetid://"..MusicData.ID
Music.Parent = MusicData.Parent
Music.Pitch = MusicData.Pitch
Music.Volume = MusicData.Volume
end
elseif(State=='Jump' or State=='Fall')then
Change=1
end
end
if(NeutralAnims)then
if(State == 'Idle')then
local Alpha = .2
Animate(NK,CF.N(0,1.48,-0.1)*CF.A(M.R(-10 + 10 *
M.S(Sine/15)),M.R(0),M.R(0)),Alpha,'Lerp')
Animate(LS,CF.N(-0.72,-0.83 - 0.2 * M.C(Sine/15),-
0.65)*CF.A(M.R(45.4 - 10 * M.C(Sine/15)),M.R(37.2),M.R(-16)),Alpha,'Lerp')
Animate(LH,CF.N(-1.01,-2.8 - 0.2 * M.C(Sine/15),-
1.74)*CF.A(M.R(20 + 10 * M.C(Sine/15)),M.R(40),M.R(0)),Alpha,'Lerp')
Animate(RJ,CF.N(0,1.24 + 0.2 * M.C(Sine/15),0.07)*CF.A(M.R(-
20),M.R(0),M.R(0)),Alpha,'Lerp')
Animate(RH,CF.N(0.89,-2.77 - 0.2 * M.C(Sine/15),-1.8)*CF.A(M.R(20
+ 10 * M.C(Sine/15)),M.R(-30),M.R(0)),Alpha,'Lerp')
Animate(RS,CF.N(0.68,-0.82 - 0.2 * M.C(Sine/15),-
0.68)*CF.A(M.R(42.8 - 10 * M.C(Sine/15)),M.R(-28),M.R(11.2)),Alpha,'Lerp')
elseif(State == 'Walk')then
local Alpha = .2
-- Im sorry nebby..i can't figure it out ;v;
Animate(NK,CF.N(0,1.5,0)*CF.A(M.R(0 + 10 *
M.C(Sine/2)),M.R(0),M.R(0)),Alpha,'Lerp')
Animate(LS,CF.A(M.R(-(Sine*10)),M.R(0),M.R(0))*CF.N(-0.5,-
1.5,0)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha,'Lerp')
Animate(LH,CF.A(M.R(-(Sine*10)),M.R(0),M.R(0))*CF.N(-0.5,-
3.99,0.01)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha,'Lerp')
Animate(RJ,CF.N(0 - 1 * M.S(Sine/4),0.70 + 5 *
M.C(Sine/2),0)*CF.A(M.R(-30 + 10 * M.S(Sine/4)),M.R(0),M.R(0)),Alpha,'Lerp')
Animate(RH,CF.A(M.R(-(Sine*10) + 180),M.R(0),M.R(0))*CF.N(0.5,-
3.99,0.02)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha,'Lerp')
Animate(RS,CF.A(M.R(-(Sine*10) + 180),M.R(0),M.R(0))*CF.N(0.5,-
1.5,0)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha,'Lerp')
elseif(State == 'Jump')then
local idk = math.min(math.max(Root.Velocity.Y/75,-
M.R(45)),M.R(45))
Animate(NK,CF.N(0,1.45,0.19)*CF.A(M.R(15),M.R(0),M.R(0)),.2,'Lerp')
Animate(LS,CF.N(-0.5,-1.06,-0.45)*CF.A(M.R(-
20),M.R(0),M.R(0)),.2,'Lerp')
Animate(LH,CF.N(-0.5,-3.35,0.61)*CF.A(M.R(-
35),M.R(0),M.R(0)),.2,'Lerp')
Animate(RJ,CF.N(0,1.96,0.39)*CF.A(M.R(15),M.R(0),M.R(0)),.2,'Lerp')
Animate(RH,CF.N(0.5,-3.34,0.61)*CF.A(M.R(-
35),M.R(0),M.R(0)),.2,'Lerp')
Animate(RS,CF.N(0.5,-1.06,-0.45)*CF.A(M.R(-
20),M.R(0),M.R(0)),.2,'Lerp')
elseif(State == 'Fall')then
local idk = math.min(math.max(Root.Velocity.Y/75,-
M.R(45)),M.R(45))
Animate(NK,CF.N(0,1.54,-0.22)*CF.A(M.R(-
15),M.R(0),M.R(0)),.2,'Lerp')
Animate(LS,CF.N(-0.5,-0.76,-
0.86)*CF.A(M.R(45),M.R(0),M.R(0)),.2,'Lerp')
Animate(LH,CF.N(-0.5,-2.58,-
2.34)*CF.A(M.R(30),M.R(0),M.R(0)),.2,'Lerp')
Animate(RJ,CF.N(0,1.91,-0.51)*CF.A(M.R(-
20),M.R(0),M.R(0)),.2,'Lerp')
Animate(RH,CF.N(0.5,-2.58,-
2.33)*CF.A(M.R(30),M.R(0),M.R(0)),.2,'Lerp')
Animate(RS,CF.N(0.5,-0.76,-
0.86)*CF.A(M.R(45),M.R(0),M.R(0)),.2,'Lerp')
end
end
end