-- Services local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local TweenService = game:GetService("TweenService") local CollectionService = game:GetService("CollectionService") -- Player Setup local LocalPlayer = Players.LocalPlayer local Character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() local Humanoid = Character:WaitForChild("Humanoid") -- Load the UI Library local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/ZeianRussell/Kavo-UI-Library/main/Movable.source.lua"))() -- Create Main UI local Window = Library.CreateLib("Emotes Script", "BloodTheme") local EmotesTab = Window:NewTab("Limited Emotes") local FreeEmotesSection = EmotesTab:NewSection("Free Emotes Script") local CreditsSection = EmotesTab:NewSection("Made By Infinite Studio's") -- Create Toggle Button local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "EmotesScreenGui" ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") ScreenGui.ResetOnSpawn = false local ToggleButton = Instance.new("ImageButton") ToggleButton.Name = "Toggle" ToggleButton.Parent = ScreenGui ToggleButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0) ToggleButton.Position = UDim2.new(0, 0, 0.454706937, 0) ToggleButton.Size = UDim2.new(0, 50, 0, 50) ToggleButton.Image = "rbxassetid://118398967616157" ToggleButton.Draggable = true ToggleButton.MouseButton1Click:Connect(function() Library:ToggleUI() end) local UICorner = Instance.new("UICorner") UICorner.Name = "Corner" UICorner.Parent = ToggleButton -- Helper function to play emote with VFX local function PlayEmoteWithVFX(emoteName, animationId, soundId, vfxSettings) local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") -- Play Animation local animation = Instance.new("Animation") animation.AnimationId = "rbxassetid://" .. tostring(animationId) local animTrack = humanoid:LoadAnimation(animation) animTrack:Play() -- Play Sound if provided if soundId then local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://" .. tostring(soundId) sound.Volume = 2 sound.Parent = character:FindFirstChild("HumanoidRootPart") or character.PrimaryPart sound:Play() end -- Create VFX Bind if vfxSettings then local folder = Instance.new("Folder") folder.Name = "EmoteBind" folder.Parent = character folder:SetAttribute("EmoteProperty", true) local vfxModule = ReplicatedStorage.Emotes.VFX require(vfxModule):MainFunction({ Character = character, vfxName = emoteName, SpecificModule = vfxModule, AnimSent = animationId, RealBind = folder, }) end end -- EMOTE BUTTONS -- Final Stand (Limited) CreditsSection:NewButton("Final Stand", "Limited Emote", function() local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") local animation = Instance.new("Animation") animation.AnimationId = "rbxassetid://113876851900426" humanoid:LoadAnimation(animation):Play() task.delay(0.1, function() local emoteHolder = Instance.new("Accessory") emoteHolder.Name = "#EmoteHolder_" .. math.random(1, 100000) emoteHolder.Parent = character emoteHolder:SetAttribute("EmoteProperty", true) require(ReplicatedStorage.Emotes.VFX):MainFunction({ Character = character, vfxName = "Final Stand", SpecificModule = ReplicatedStorage.Emotes.VFX, AnimSent = 113876851900426, RealBind = emoteHolder, }) end) end) -- Sky Splitter (Limited) CreditsSection:NewButton("Sky Splitter", "Limited Emote", function() local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") local animation = Instance.new("Animation") animation.AnimationId = "rbxassetid://91688492068995" humanoid:LoadAnimation(animation):Play() task.delay(0.1, function() local emoteHolder = Instance.new("Accessory") emoteHolder.Name = "#EmoteHolder_" .. math.random(1, 100000) emoteHolder.Parent = character emoteHolder:SetAttribute("EmoteProperty", true) require(ReplicatedStorage.Emotes.VFX):MainFunction({ Character = character, vfxName = "Sky Splitter", SpecificModule = ReplicatedStorage.Emotes.VFX, AnimSent = 91688492068995, RealBind = emoteHolder, }) end) end) -- Phoenix (Limited) CreditsSection:NewButton("Phoenix", "Limited Emote", function() local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") local animation = Instance.new("Animation") animation.AnimationId = "rbxassetid://120167506788577" humanoid:LoadAnimation(animation):Play() task.delay(0.1, function() local emoteHolder = Instance.new("Accessory") emoteHolder.Name = "#EmoteHolder_" .. math.random(1, 100000) emoteHolder.Parent = character emoteHolder:SetAttribute("EmoteProperty", true) require(ReplicatedStorage.Emotes.VFX):MainFunction({ Character = character, vfxName = "Phoenix", SpecificModule = ReplicatedStorage.Emotes.VFX, AnimSent = 120167506788577, RealBind = emoteHolder, }) end) end) -- World's Finest (Limited) CreditsSection:NewButton("World's Finest", "Limited Emote", function() local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") local animation = Instance.new("Animation") animation.AnimationId = "rbxassetid://112556041832043" humanoid:LoadAnimation(animation):Play() task.delay(0.1, function() local emoteHolder = Instance.new("Accessory") emoteHolder.Name = "#EmoteHolder_" .. math.random(1, 100000) emoteHolder.Parent = character emoteHolder:SetAttribute("EmoteProperty", true) require(ReplicatedStorage.Emotes.VFX):MainFunction({ Character = character, vfxName = "World's Finest", SpecificModule = ReplicatedStorage.Emotes.VFX, AnimSent = 112556041832043, RealBind = emoteHolder, }) end) end) -- Flowing Motions (Limited) CreditsSection:NewButton("Flowing Motions", "Limited Emote", function() local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") local animation = Instance.new("Animation") animation.AnimationId = "rbxassetid://129809823244766" humanoid:LoadAnimation(animation):Play() task.delay(0.1, function() local emoteHolder = Instance.new("Accessory") emoteHolder.Name = "#EmoteHolder_" .. math.random(1, 100000) emoteHolder.Parent = character emoteHolder:SetAttribute("EmoteProperty", true) require(ReplicatedStorage.Emotes.VFX):MainFunction({ Character = character, vfxName = "Flowing Motions", SpecificModule = ReplicatedStorage.Emotes.VFX, AnimSent = 129809823244766, RealBind = emoteHolder, }) end) end) -- Heavenly (Limited) CreditsSection:NewButton("Heavenly", "Limited Emote", function() local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") local animation = Instance.new("Animation") animation.AnimationId = "rbxassetid://84864633198050" humanoid:LoadAnimation(animation):Play() task.delay(0.1, function() local emoteHolder = Instance.new("Accessory") emoteHolder.Name = "#EmoteHolder_" .. math.random(1, 100000) emoteHolder.Parent = character emoteHolder:SetAttribute("EmoteProperty", true) require(ReplicatedStorage.Emotes.VFX):MainFunction({ Character = character, vfxName = "Heavenly", SpecificModule = ReplicatedStorage.Emotes.VFX, AnimSent = 84864633198050, RealBind = emoteHolder, }) end) end) -- Golden Strike (Limited) CreditsSection:NewButton("Golden Strike", "Limited Emote", function() local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") local animation = Instance.new("Animation") animation.AnimationId = "rbxassetid://134337699612206" humanoid:LoadAnimation(animation):Play() task.delay(0.1, function() local emoteHolder = Instance.new("Accessory") emoteHolder.Name = "#EmoteHolder_" .. math.random(1, 100000) emoteHolder.Parent = character emoteHolder:SetAttribute("EmoteProperty", true) require(ReplicatedStorage.Emotes.VFX):MainFunction({ Character = character, vfxName = "Golden Strike", SpecificModule = ReplicatedStorage.Emotes.VFX, AnimSent = 134337699612206, RealBind = emoteHolder, }) end) end) -- Star Chill (Limited) CreditsSection:NewButton("Star Chill", "Limited Emote", function() local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") local cleanupItems = {} local torso = character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso") -- Play intro sound local introSound = Instance.new("Sound") introSound.SoundId = "rbxassetid://1835402168" introSound.Volume = 1 introSound.Parent = torso introSound:Play() table.insert(cleanupItems, introSound) -- Play looping music local music = Instance.new("Sound") music.SoundId = "rbxassetid://1838611838" music.Volume = 0.5 music.Looped = true music.TimePosition = 33 music.Parent = torso music:Play() -- Create freeze folder local freezeFolder = Instance.new("Folder") freezeFolder.Name = "Freeze" freezeFolder:SetAttribute("DontInterrupt", true) freezeFolder:SetAttribute("NoStop", true) freezeFolder:SetAttribute("EmoteProperty", true) freezeFolder.Parent = character table.insert(cleanupItems, freezeFolder) -- Play animations local idleAnim = Instance.new("Animation") idleAnim.AnimationId = "rbxassetid://18897534746" local idleTrack = humanoid:LoadAnimation(idleAnim) idleTrack:Play() local loopAnim = Instance.new("Animation") loopAnim.AnimationId = "rbxassetid://18897538537" local loopTrack idleTrack.Stopped:Connect(function() loopTrack = humanoid:LoadAnimation(loopAnim) loopTrack:Play() end) -- Cleanup after 10 seconds task.delay(10, function() for _, item in pairs(cleanupItems) do if item and item.Parent then item:Destroy() end end if introSound and introSound.Parent then introSound:Stop() introSound:Destroy() end if music and music.Parent then music:Stop() music:Destroy() end if loopTrack then loopTrack:Stop() end end) -- Play outro sound local outroSound = Instance.new("Sound") outroSound.SoundId = "rbxassetid://15443922202" outroSound.Volume = 1 outroSound.Looped = false outroSound.Parent = torso table.insert(cleanupItems, outroSound) end) -- Hunter Pose (Free) FreeEmotesSection:NewButton("Hunter Pose", "Free Emote", function() local character = LocalPlayer.Character if not character then return end local humanoid = character:WaitForChild("Humanoid") local cleanupItems = {} local torso = character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso") -- Play sound local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://117253563855238" sound.Volume = 2 sound.Looped = false sound.Parent = torso sound:Play() -- Play animations local introAnim = Instance.new("Animation") introAnim.AnimationId = "rbxassetid://78615192673057" local introTrack = humanoid:LoadAnimation(introAnim) introTrack:Play() local loopAnim = Instance.new("Animation") loopAnim.AnimationId = "rbxassetid://123794818363362" local loopTrack introTrack.Stopped:Connect(function() loopTrack = humanoid:LoadAnimation(loopAnim) loopTrack:Play() end) -- Cleanup after 10 seconds task.delay(10, function() for _, item in pairs(cleanupItems) do if item and item.Parent then item:Destroy() end end if sound and sound.Parent then sound:Stop() sound:Destroy() end if loopTrack then loopTrack:Stop() end end) end) -- Energy Barrage (Free) FreeEmotesSection:NewButton("Energy Barrage", "Free Emote", function() PlayEmoteWithVFX("Energy Barrage", 101680746241828, 82169026724146, true) end) -- Dragon Combo (Free) FreeEmotesSection:NewButton("Dragon Combo", "Free Emote", function() PlayEmoteWithVFX("Dragon Combo", 136363608783208, 131083520587944, true) end) print("Emotes Script loaded successfully!")