Run it
Copy the script and paste it into your executor.
Players = :()
UserInputService = :()
RunService = :()
CoreGui = :()
StarterGui = :()
LocalPlayer = Players.LocalPlayer
Camera = .CurrentCamera
MaxDistance =
UiHideDistance =
ScriptConnections = {}
State = {
SyncedTarget = ,
CurrentGui = ,
CurrentSelection = ,
AnimationTracks = {},
ConfirmLoop =
}
Highlight = .()
Highlight.FillColor = .(, , )
Highlight.OutlineColor = .(, , )
Highlight.FillTransparency =
Highlight.OutlineTransparency =
BlockedKeywords = {
, , , , , ,
, , , ,
, , ,
}
(title, text)
(()
StarterGui:(, {
Title = title, Text = text, Duration = , Button1 =
})
)
(char)
char
hum = char:()
hum hum.RigType
(enabled)
char = LocalPlayer.Character
char
animate = char:()
animate animate:()
animate.Disabled = enabled
enabled
humanoid = char:()
humanoid
_, track (humanoid:())
track:()
()
ScriptConnections.SyncLoop ScriptConnections.SyncLoop:()
ScriptConnections.InputListener ScriptConnections.InputListener:()
ScriptConnections.DistanceMonitor ScriptConnections.DistanceMonitor:()
()
Highlight.Parent Highlight.Parent =
Highlight:()
State.CurrentGui State.CurrentGui:()
_, track (State.AnimationTracks)
track track:()
.(State.AnimationTracks)
.(State)
.(ScriptConnections)
()
ScriptConnections.DistanceMonitor ScriptConnections.DistanceMonitor:() ScriptConnections.DistanceMonitor =
Highlight.Parent Highlight.Parent =
State.CurrentGui State.CurrentGui:() State.CurrentGui =
State.CurrentSelection =
()
ScriptConnections.SyncLoop ScriptConnections.SyncLoop:() ScriptConnections.SyncLoop =
()
_, track (State.AnimationTracks)
track:()
.(State.AnimationTracks)
State.SyncedTarget =
(descendant)
descendant
descendant:() descendant:()
descendant
descendant.Parent
(descendant.Parent)
(track)
track.Priority == .AnimationPriority.Movement
name = track.Name:()
animName = (track.Animation track.Animation.Name:())
_, keyword (BlockedKeywords)
.(name, keyword) .(animName, keyword)
track.Priority == .AnimationPriority.Idle
name == name == name ==
()
State.SyncedTarget State.SyncedTarget.Parent State.SyncedTarget:()
()
TargetHumanoid = State.SyncedTarget:()
LocalHumanoid = LocalPlayer.Character LocalPlayer.Character:()
LocalHumanoid
TargetAnimator = TargetHumanoid:()
LocalAnimator = LocalHumanoid:()
TargetAnimator LocalAnimator
ActiveTracks = TargetAnimator:()
ActiveIDs = {}
_, TargetTrack (ActiveTracks)
(TargetTrack)
AnimId = TargetTrack.Animation.AnimationId
AnimId #AnimId >
ActiveIDs[AnimId] =
State.AnimationTracks[AnimId]
NewAnim = .()
NewAnim.AnimationId = AnimId
LocalTrack = LocalAnimator:(NewAnim)
LocalTrack.Priority = .AnimationPriority.Action4
LocalTrack:(, , TargetTrack.Speed)
State.AnimationTracks[AnimId] = LocalTrack
LocalTrack = State.AnimationTracks[AnimId]
LocalTrack
LocalTrack.Looped = TargetTrack.Looped
LocalTrack:(TargetTrack.WeightTarget, )
LocalTrack:(TargetTrack.Speed)
LocalTrack.TimePosition = TargetTrack.TimePosition
Id, LocalTrack (State.AnimationTracks)
ActiveIDs[Id]
LocalTrack:()
State.AnimationTracks[Id] =
(TargetModel)
State.CurrentGui State.CurrentGui:()
Gui = .()
Gui.Name =
Gui.Adornee = TargetModel:() TargetModel:()
Gui.Size = .(, , , )
Gui.StudsOffset = .(, , )
Gui.AlwaysOnTop =
Gui.Active =
MainFrame = .()
MainFrame.Size = .(, , , )
MainFrame.BackgroundTransparency =
MainFrame.Parent = Gui
MainPage = .()
MainPage.Name =
MainPage.Size = .(, , , )
MainPage.BackgroundTransparency =
MainPage.Visible =
MainPage.Parent = MainFrame
ConfirmPage = .()
ConfirmPage.Name =
ConfirmPage.Size = .(, , , )
ConfirmPage.BackgroundTransparency =
ConfirmPage.Visible =
ConfirmPage.Parent = MainFrame
MainLayout = .()
MainLayout.FillDirection = .FillDirection.Horizontal
MainLayout.HorizontalAlignment = .HorizontalAlignment.Center
MainLayout.VerticalAlignment = .VerticalAlignment.Center
MainLayout.Padding = .(, )
MainLayout.Parent = MainPage
ConfirmLayout = .()
ConfirmLayout.FillDirection = .FillDirection.Horizontal
ConfirmLayout.HorizontalAlignment = .HorizontalAlignment.Center
ConfirmLayout.VerticalAlignment = .VerticalAlignment.Center
ConfirmLayout.Padding = .(, )
ConfirmLayout.Parent = ConfirmPage
(Parent, Text, Color, SizeX)
Btn = .()
Btn.Text = Text
Btn.Size = .(, SizeX, , )
Btn.BackgroundColor3 = Color
Btn.TextColor3 = .(, , )
Btn.Font = .Font.GothamBold
Btn.TextSize =
Btn.AutoButtonColor =
Btn.Parent = Parent
Corner = .()
Corner.CornerRadius = .(, )
Corner.Parent = Btn
Stroke = .()
Stroke.Thickness =
Stroke.Color = .(, , )
Stroke.ApplyStrokeMode = .ApplyStrokeMode.Border
Stroke.Parent = Btn
Btn
SyncBtn = (MainPage, , .(, , ), )
CloseXBtn = (MainPage, , .(, , ), )
UnsyncBtn = (MainPage, , .(, , ), )
YesBtn = (ConfirmPage, , .(, , ), )
NoBtn = (ConfirmPage, , .(, , ), )
CanClickYes =
State.SyncedTarget == TargetModel SyncBtn.Text =
SyncBtn.MouseButton1Click:(()
State.SyncedTarget == TargetModel
State.SyncedTarget ()
()
State.SyncedTarget = TargetModel
SyncBtn.Text =
ScriptConnections.SyncLoop = RunService.RenderStepped:(SyncLoopStep)
)
UnsyncBtn.MouseButton1Click:(()
State.SyncedTarget
()
SyncBtn.Text =
)
CloseXBtn.MouseButton1Click:(()
MainPage.Visible =
ConfirmPage.Visible =
CanClickYes =
YesBtn.BackgroundColor3 = .(, , )
YesBtn.Text =
Token = ()
State.ConfirmLoop = Token
.(()
i = , , -
State.ConfirmLoop ~= Token Gui.Parent
YesBtn.Text = ..i..
.()
State.ConfirmLoop == Token Gui.Parent ConfirmPage.Visible
YesBtn.Text =
YesBtn.BackgroundColor3 = .(, , )
CanClickYes =
)
)
NoBtn.MouseButton1Click:(()
State.ConfirmLoop =
ConfirmPage.Visible =
MainPage.Visible =
)
YesBtn.MouseButton1Click:(()
CanClickYes ()
)
parent = CoreGui LocalPlayer:()
Gui.Parent = parent
State.CurrentGui = Gui
ScriptConnections.DistanceMonitor = RunService.RenderStepped:(()
MyHRP = LocalPlayer.Character LocalPlayer.Character:()
TargetHRP = TargetModel TargetModel.Parent TargetModel:()
MyHRP TargetHRP
(MyHRP.Position - TargetHRP.Position).Magnitude > UiHideDistance
()
()
)
ScriptConnections.InputListener = UserInputService.InputBegan:((input, gameProcessed)
input.UserInputType == .UserInputType.MouseButton1 gameProcessed
MouseLocation = UserInputService:()
RayOrigin = Camera:(MouseLocation.X, MouseLocation.Y)
RayParams = RaycastParams.()
RayParams.FilterType = .RaycastFilterType.Exclude
RayParams.FilterDescendantsInstances = {LocalPlayer.Character}
Result = :(RayOrigin.Origin, RayOrigin.Direction * , RayParams)
DidSelect =
Result Result.Instance
HitChar = (Result.Instance)
HitChar HitChar ~= LocalPlayer.Character
MyHRP = LocalPlayer.Character LocalPlayer.Character:()
MyHRP (Result.Position - MyHRP.Position).Magnitude <= MaxDistance
LocalRig = (LocalPlayer.Character)
TargetRig = (HitChar)
LocalRig == TargetRig
DidSelect =
State.CurrentSelection ~= HitChar
()
State.CurrentSelection = HitChar
Highlight.Adornee = HitChar
Highlight.Parent = HitChar
(HitChar)
State.CurrentGui ==
()
State.CurrentSelection = HitChar
Highlight.Adornee = HitChar
Highlight.Parent = HitChar
(HitChar)
RigName = (TargetRig == .HumanoidRigType.R6 )
(, ..RigName..)
()
DidSelect ()
)
(, )Click any targets to sync. Can be Humanoid NPCs or Players. Originally by me (Botakkkkk) Features: - Supports R6 & R15 Animations/Emotes. - Close Button with Confirmation. (Note: It will warn you if you in different rigtype like the animation from an NPC is R6, but you're in R15, it will show warning notification) Q: Is it FE? A: IDK, i don't have friends to test the script with me. Q: Is it AI script? A: Yes, i'm just a skidder, idc. Q: Is it Open Source? A: Yes, it is.

Universal