local a=game:GetService("RunService")local b=tick()local c=128950974897084 local d=104892432554818 local e=Instance.new('Animation')e.Parent=script.Parent.Parent e.Name='Animation'e.AnimationId="rbxassetid://"..c local f=Instance.new('Animation')f.Parent=script.Parent.Parent f.Name='Animationback'f.AnimationId="rbxassetid://"..d local g=script.Parent.Parent.AnimationController.Animator:LoadAnimation(e)local h=script.Parent.Parent.AnimationController.Animator:LoadAnimation(f)local i=game.Players local j=game.Workspace local k=j:WaitForChild("OsTrains")local l=0 local m=1 local n=0.02 local function o(p,q)local r=-p.CFrame.LookVector local s=p.Position local t=Vector3.new(r.X,r.Y,r.Z).Unit local u=Vector3.new(s.X,s.Y,s.Z)local v=q-u local w=v:Dot(t)local x=u+t*w return x,t end;local function y(q)local z=nil;local A=math.huge;for B,C in pairs(k:GetChildren())do if C:IsA("BasePart")then local D=Vector3.new(q.X-C.Position.X,q.Y-C.Position.Y,q.Z-C.Position.Z).Magnitude;if D<A then A=D;z=C end end end;return z end;local function E(F,G,H,I)I=I or 0.1 local J=F.Position local K=Vector3.new(G.X,G.Y,G.Z)local L=J+(K-J)*I local M=F.CFrame.LookVector local N=Vector3.new(M.X,M.Y,M.Z).Unit local O=(N+H*2).Unit local P=CFrame.new(L,L+O)F.CFrame=P end;local Q=nil;a.Heartbeat:Connect(function(R)local S=tick()local T=R local U=script.Parent local V=y(U.Position)if V then local W,X=o(V,U.Position)if not Q then Q=X end;E(U,W,-X,0.08)Q=-X end;local Y=script.Parent.Parent.Parent.ff1.HumanoidRootPart.Value.ValueTG.Value;if Y<0 then l=math.min(l+n*T*60,m)U.Position=U.Parent.Base.Position;g:Play()g.Priority=Enum.AnimationPriority.Core;g:AdjustSpeed(l*math.abs(Y))elseif Y>0 then l=math.min(l+n*T*60,m)U.Position=U.Parent.Base.Position;h:Play()h.Priority=Enum.AnimationPriority.Core;h:AdjustSpeed(l*math.abs(Y))else l=0;g:Stop()h:Stop()end end)print('Base train by pll0c')