-- PURSUER | FE MOVESET -- R6 | Delta -- Based on the tested FE animation method local Players=game:GetService("Players") local UIS=game:GetService("UserInputService") local RunService=game:GetService("RunService") local Debris=game:GetService("Debris") local LP=Players.LocalPlayer local A={ Idle="rbxassetid://94895464960972", Walk="rbxassetid://100206079439305", Run="rbxassetid://138660433982140", EnrageStart="rbxassetid://126217710453897", EnrageIdle="rbxassetid://88434331204148", EnrageMove="rbxassetid://95939236092784", Slash="rbxassetid://109667959938617", Behead="rbxassetid://126681776859538", GashingStart="rbxassetid://129976080405072", GashingHit="rbxassetid://81255669374177" } local S={ Swing="rbxassetid://108907358619313", Hit="rbxassetid://88582935528044", EnrageStart="rbxassetid://139926313168788", GashingHit="rbxassetid://110592910502331", GashingSwing="rbxassetid://127793641088496" } local THEMES={ {50,"rbxassetid://87452114563440",1}, {38,"rbxassetid://109532520829464",1}, {27,"rbxassetid://85055674690742",1}, {14,"rbxassetid://137123073496980",1.25} } local char,hum,root local tracks={} local current=nil local special=nil local connection local raging=false local attacking=false local themeSound=nil local themeRunning=false local themeToken=0 local baseSpeed=16 local function stop(t,f) if t and t.IsPlaying then pcall(function()t:Stop(f or .08)end) end end local function stopAll() for _,t in pairs(tracks) do stop(t,.06) end tracks={} stop(special,.05) special=nil current=nil end -- Same animation method as the tested FE script local function loadAnim(h,id) local a=Instance.new("Animation") a.AnimationId=id local ok,t=pcall(function() return h:LoadAnimation(a) end) if not ok or not t then a:Destroy() return nil end table.insert(tracks,t) return t end local function playSpecial(id,loop,speed) if not hum or hum.Health<=0 then return end stop(special,.05) local t=loadAnim(hum,id) if not t then return end t.Priority=Enum.AnimationPriority.Action t.Looped=loop or false special=t pcall(function() t:Play(.05,1,speed or 1) end) return t end local function sound(id,volume) if not root or not id then return end local s=Instance.new("Sound") s.SoundId=id s.Volume=volume or 1 s.Parent=root s:Play() s.Ended:Connect(function() if s then s:Destroy() end end) Debris:AddItem(s,10) end local function locomotion(mode) if not hum or hum.Health<=0 or attacking then return end local id if raging then id=(mode=="Idle") and A.EnrageIdle or A.EnrageMove else id=mode=="Idle" and A.Idle or mode=="Walk" and A.Walk or A.Run end if not id then return end if current and current.Animation and current.Animation.AnimationId==id and current.IsPlaying then return end stop(current,.08) local t=loadAnim(hum,id) if not t then return end t.Priority=Enum.AnimationPriority.Movement t.Looped=true current=t pcall(function() t:Play(.08,1,1) end) end local function updateMovement() if not char or not hum or not root then return end if hum.Health<=0 or attacking then return end local moving=hum.MoveDirection.Magnitude>.05 if not moving then locomotion("Idle") return end local velocity=Vector3.new( root.AssemblyLinearVelocity.X, 0, root.AssemblyLinearVelocity.Z ).Magnitude if raging then locomotion("Run") elseif velocity>baseSpeed+1 then locomotion("Run") elseif velocity<.5 then locomotion("Idle") else locomotion("Walk") end end local function dash(power) if not root then return end local old=root.AssemblyLinearVelocity root.AssemblyLinearVelocity= root.CFrame.LookVector*power+ Vector3.new(0,old.Y,0) task.delay(.12,function() if root and root.Parent then local v=root.AssemblyLinearVelocity root.AssemblyLinearVelocity= Vector3.new(0,v.Y,0) end end) end local function attack(id,snd,dashPower) if not hum or hum.Health<=0 or attacking then return end attacking=true raging=false stop(current,.05) if dashPower then dash(dashPower) end sound(snd,1) local t=playSpecial(id,false,1) if t then t.Stopped:Wait() else task.wait(.7) end attacking=false special=nil updateMovement() end local function gashingWound() if not hum or hum.Health<=0 or attacking then return end attacking=true raging=false stop(current,.05) local target=nil local closest=7 for _,p in ipairs(Players:GetPlayers()) do if p~=LP and p.Character then local r=p.Character:FindFirstChild("HumanoidRootPart") local h=p.Character:FindFirstChildOfClass("Humanoid") if r and h and h.Health>0 and root then local d=(r.Position-root.Position).Magnitude if d0 then closest=math.min( closest, (r.Position-root.Position).Magnitude ) end end end return closest end local function stopThemes() themeToken+=1 themeRunning=false if themeSound then pcall(function() themeSound:Stop() end) themeSound:Destroy() themeSound=nil end end local function startThemes() if themeRunning then return end themeRunning=true themeToken+=1 local token=themeToken task.spawn(function() while token==themeToken do if not char or not hum or hum.Health<=0 then stopThemes() return end if nearestPlayer()>50 then stopThemes() return end for i,data in ipairs(THEMES) do if token~=themeToken then return end if nearestPlayer()>50 then stopThemes() return end local s=Instance.new("Sound") s.SoundId=data[2] s.Volume=data[3] s.Parent=root themeSound=s s:Play() if i==4 then s.TimePosition=1.355 while s.IsPlaying and token==themeToken and nearestPlayer()<=50 do if s.TimePosition>=55.281 then s.TimePosition=1.355 end task.wait(.05) end s:Stop() s:Destroy() themeSound=nil else s.Ended:Wait() if s then s:Destroy() end themeSound=nil end end end end) end local function createGUI() local old=LP.PlayerGui:FindFirstChild("PursuerFE") if old then old:Destroy() end local gui=Instance.new("ScreenGui") gui.Name="PursuerFE" gui.ResetOnSpawn=false gui.Parent=LP.PlayerGui local frame=Instance.new("Frame") frame.Size=UDim2.new(0,310,0,220) frame.Position=UDim2.new(.5,-155,1,-240) frame.BackgroundColor3=Color3.fromRGB(10,12,17) frame.BackgroundTransparency=.08 frame.Parent=gui local corner=Instance.new("UICorner") corner.CornerRadius=UDim.new(0,14) corner.Parent=frame local stroke=Instance.new("UIStroke") stroke.Color=Color3.fromRGB(65,70,85) stroke.Thickness=1 stroke.Parent=frame local title=Instance.new("TextLabel") title.Size=UDim2.new(1,0,0,38) title.BackgroundTransparency=1 title.Text="PURSUER • FE" title.TextColor3=Color3.new(1,1,1) title.TextSize=17 title.Font=Enum.Font.GothamBold title.Parent=frame local function button(text,x,y,callback) local b=Instance.new("TextButton") b.Size=UDim2.new(0,145,0,45) b.Position=UDim2.new(0,x,0,y) b.BackgroundColor3=Color3.fromRGB(22,25,32) b.TextColor3=Color3.new(1,1,1) b.Text=text b.TextSize=14 b.Font=Enum.Font.GothamBold b.AutoButtonColor=true b.Parent=frame local c=Instance.new("UICorner") c.CornerRadius=UDim.new(0,9) c.Parent=b b.MouseButton1Click:Connect(callback) end button("SLASH",10,45,function() attack(A.Slash,S.Swing,28) end) button("BEHEAD",155,45,function() attack(A.Behead,S.Hit,28) end) button("GASHING WOUND [BUGGED RN]",10,100,function() gashingWound() end) button("RAGING PACE",155,100,function() toggleRaging() end) local info=Instance.new("TextLabel") info.Size=UDim2.new(1,-20,0,30) info.Position=UDim2.new(0,10,0,170) info.BackgroundTransparency=1 info.Text="Q / E / R / T also work" info.TextColor3=Color3.fromRGB(160,165,180) info.TextSize=12 info.Font=Enum.Font.Gotham info.Parent=frame end local function setup(c) char=c hum=c:WaitForChild("Humanoid") root=c:WaitForChild("HumanoidRootPart") if connection then connection:Disconnect() connection=nil end stopAll() stopThemes() raging=false attacking=false baseSpeed=hum.WalkSpeed -- Default Animate IDs are also replaced, -- matching the tested FE script structure. task.wait(.25) local an=c:FindFirstChild("Animate") if an then local idle=an:FindFirstChild("idle") local walk=an:FindFirstChild("walk") local run=an:FindFirstChild("run") if idle then for _,v in ipairs(idle:GetChildren()) do if v:IsA("Animation") then v.AnimationId=A.Idle end end end if walk then local v=walk:FindFirstChild("WalkAnim") if v then v.AnimationId=A.Walk end end if run then local v=run:FindFirstChild("RunAnim") if v then v.AnimationId=A.Run end end end connection=RunService.RenderStepped:Connect(function() updateMovement() if not themeRunning and hum.Health>0 and nearestPlayer()<=50 then startThemes() end end) hum.Died:Connect(function() stopAll() stopThemes() raging=false attacking=false end) task.wait(.2) updateMovement() end UIS.InputBegan:Connect(function(input,gp) if gp then return end if input.KeyCode==Enum.KeyCode.Q then attack(A.Slash,S.Swing,28) elseif input.KeyCode==Enum.KeyCode.E then attack(A.Behead,S.Hit,28) elseif input.KeyCode==Enum.KeyCode.R then gashingWound() elseif input.KeyCode==Enum.KeyCode.T then toggleRaging() end end) LP.CharacterAdded:Connect(function(c) task.wait(.5) setup(c) end) setup(LP.Character or LP.CharacterAdded:Wait()) createGUI()