loadstring(game:HttpGet("https://raw.githubusercontent.com/LiarRise/FLN-X/refs/heads/main/README.md"))() local player = game.Players.LocalPlayer local UIS = game:GetService("UserInputService") local animations = { WAVE = "rbxassetid://77304386644418", FLICK = "rbxassetid://88992279344579", SLAM = "rbxassetid://80401959620185", COME = "rbxassetid://80499191946675", OK = "rbxassetid://100188963456227", SMACK = "rbxassetid://109018877712796" } local currentEmote local moveTrack local idleTrack local walkTrack local runTrack -- CHARACTER SETUP local function setup(char) local humanoid = char:WaitForChild("Humanoid") local animator = humanoid:WaitForChild("Animator") local animate = char:FindFirstChild("Animate") if animate then animate.Disabled = true end for _, t in ipairs(humanoid:GetPlayingAnimationTracks()) do t:Stop() end -- IDLE local idleAnim = Instance.new("Animation") idleAnim.AnimationId = "rbxassetid://115339997830808" idleTrack = animator:LoadAnimation(idleAnim) idleTrack.Looped = true -- WALK local walkAnim = Instance.new("Animation") walkAnim.AnimationId = "rbxassetid://126540738694429" walkTrack = animator:LoadAnimation(walkAnim) walkTrack.Looped = true -- RUN local runAnim = Instance.new("Animation") runAnim.AnimationId = "rbxassetid://126540738694429" runTrack = animator:LoadAnimation(runAnim) runTrack.Looped = true local current local function playMove(track) if currentEmote then return end if current == track then return end if current then current:Stop() end current = track current:Play() end humanoid.Running:Connect(function(speed) if speed < 1 then playMove(idleTrack) elseif speed < 16 then playMove(walkTrack) else playMove(runTrack) end end) playMove(idleTrack) end player.CharacterAdded:Connect(setup) if player.Character then setup(player.Character) end -- GUI local old = player.PlayerGui:FindFirstChild("Moveset") if old then old:Destroy() end local gui = Instance.new("ScreenGui") gui.Name = "Moveset" gui.ResetOnSpawn = false gui.Parent = player.PlayerGui local frame = Instance.new("Frame") frame.Size = UDim2.new(0,180,0,160) frame.Position = UDim2.new(1,-200,0.5,-80) frame.BackgroundColor3 = Color3.fromRGB(15,15,15) frame.BorderSizePixel = 2 frame.BorderColor3 = Color3.fromRGB(255,0,0) frame.Active = true frame.Parent = gui Instance.new("UICorner", frame) -- DRAG local dragging, startPos, dragStart frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true startPos = frame.Position dragStart = input.Position end end) UIS.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UIS.InputChanged:Connect(function(input) if dragging then local delta = input.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- EMOTE local function playEmote(id) local char = player.Character if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") if not humanoid then return end if currentEmote then currentEmote:Stop() currentEmote:Destroy() end -- stop movement while emoting if idleTrack then idleTrack:Stop() end if walkTrack then walkTrack:Stop() end if runTrack then runTrack:Stop() end local anim = Instance.new("Animation") anim.AnimationId = id currentEmote = humanoid:LoadAnimation(anim) currentEmote.Priority = Enum.AnimationPriority.Action4 currentEmote.Looped = false currentEmote:Play() currentEmote.Stopped:Connect(function() currentEmote = nil -- resume movement if humanoid.MoveDirection.Magnitude > 0 then if walkTrack then walkTrack:Play() end else if idleTrack then idleTrack:Play() end end end) end -- BUTTONS local buttons = { {"WAVE",10,10}, {"FLICK",10,55}, {"SLAM",10,100}, {"COME",95,10}, {"OK",95,55}, {"SMACK",95,100} } for _, info in ipairs(buttons) do local button = Instance.new("TextButton") button.Size = UDim2.new(0,75,0,40) button.Position = UDim2.new(0,info[2],0,info[3]) button.BackgroundColor3 = Color3.fromRGB(170,0,0) button.TextColor3 = Color3.new(1,1,1) button.TextScaled = true button.Text = info[1] button.Parent = frame Instance.new("UICorner", button) button.MouseButton1Click:Connect(function() playEmote(animations[info[1]]) end) end