local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "YYY Hub Mobile", Icon = nil, LoadingTitle = "YYY Hub Mobile", LoadingSubtitle = "by Vercels Team - Otimizado para Android", Theme = "Default", ToggleUIKeybind = "K", ConfigurationSaving = { Enabled = true, FolderName = "YYYHub_Mobile_Configs", FileName = "YYY_Hub_Mobile_Settings" }, KeySystem = false, }) -- Abas principais local OP = Window:CreateTab("OP", 4483362458) local Farm = Window:CreateTab("Farm", 4483362458) local Combat = Window:CreateTab("Combat", 4483362458) local Mobile = Window:CreateTab("Mobile", 4483362458) -- Variáveis globais local FlyMobileAtivo = false local AimbotAtivo = false local NoclipAtivo = false local AutoFarmAtivo = false -- 🎵 SISTEMA DE ÁUDIO ALL local AudioAll = { Tocando = false, AudioId = "", Loop = false, Sounds = {} } -- 🎵 FUNÇÃO PARA TOCAR ÁUDIO PARA TODOS local function TocarAudioAll(audioId, loop) if not audioId or audioId == "" then Rayfield:Notify({ Title = "❌ Erro no Áudio", Content = "Digite um ID de áudio válido!", Duration = 4, Image = nil }) return end AudioAll.Tocando = true AudioAll.AudioId = audioId AudioAll.Loop = loop -- Limpar sons antigos for _, sound in pairs(AudioAll.Sounds) do if sound then sound:Stop() sound:Destroy() end end AudioAll.Sounds = {} Rayfield:Notify({ Title = "🎵 Áudio All", Content = "Enviando áudio para todos os jogadores!" .. (loop and " (Loop)" or ""), Duration = 5, Image = nil }) -- Criar áudio para cada jogador for _, player in pairs(game.Players:GetPlayers()) do if player.Character then local humanoidRootPart = player.Character:FindFirstChild("HumanoidRootPart") if humanoidRootPart then -- Criar o som local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://" .. audioId sound.Volume = 1 sound.Looped = loop sound.Parent = humanoidRootPart -- Configurar propriedades do som sound.RollOffMinDistance = 0 sound.RollOffMaxDistance = 500 sound.RollOffMode = Enum.RollOffMode.InverseTaper table.insert(AudioAll.Sounds, sound) -- Tocar o som sound:Play() -- Conectar evento para quando o som terminar if not loop then sound.Ended:Connect(function() sound:Destroy() end) end end end end -- Se for loop, criar thread de verificação if loop then spawn(function() while AudioAll.Tocando and AudioAll.Loop do wait(1) -- Verificar se algum jogador novo entrou for _, player in pairs(game.Players:GetPlayers()) do if player.Character and not player.Character:FindFirstChildOfClass("Sound") then local humanoidRootPart = player.Character:FindFirstChild("HumanoidRootPart") if humanoidRootPart then local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://" .. AudioAll.AudioId sound.Volume = 1 sound.Looped = true sound.Parent = humanoidRootPart sound:Play() table.insert(AudioAll.Sounds, sound) end end end end end) end end -- 🎵 FUNÇÃO PARA PARAR ÁUDIO local function PararAudioAll() AudioAll.Tocando = false AudioAll.Loop = false for _, sound in pairs(AudioAll.Sounds) do if sound then sound:Stop() sound:Destroy() end end AudioAll.Sounds = {} Rayfield:Notify({ Title = "⏹️ Áudio Parado", Content = "Todos os áudios foram parados!", Duration = 3, Image = nil }) end -- 🎵 FUNÇÃO PARA TOCAR ÁUDIO NO SERVIDOR (mais eficaz) local function TocarAudioServidor(audioId, loop) if not audioId or audioId == "" then Rayfield:Notify({ Title = "❌ Erro no Áudio", Content = "Digite um ID de áudio válido!", Duration = 4, Image = nil }) return end AudioAll.Tocando = true AudioAll.AudioId = audioId AudioAll.Loop = loop -- Método mais eficaz: criar som no Workspace local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://" .. audioId sound.Volume = 1 sound.Looped = loop sound.Name = "YYYHubAudio" sound.Parent = workspace -- Configurar para ser ouvido em todo o mapa sound.RollOffMinDistance = 0 sound.RollOffMaxDistance = 10000 sound.RollOffMode = Enum.RollOffMode.Linear table.insert(AudioAll.Sounds, sound) sound:Play() Rayfield:Notify({ Title = "🎵 Áudio no Servidor", Content = "Áudio tocando em todo o servidor!" .. (loop and " (Loop)" : ""), Duration = 5, Image = nil }) -- Se não for loop, destruir quando terminar if not loop then sound.Ended:Connect(function() sound:Destroy() end) end end -- === ABA OP === local SectionMain = OP:CreateSection("⚡ Funções Principais") -- 🎵 SEÇÃO ÁUDIO ALL local SectionAudio = OP:CreateSection("🎵 Áudio All") -- Input para ID do áudio local InputAudioId = OP:CreateInput({ Name = "🎵 ID do Áudio", PlaceholderText = "Cole o ID da música aqui...", RemoveTextAfterFocusLost = false, Callback = function(Text) AudioAll.AudioId = Text Rayfield:Notify({ Title = "🎵 ID Definido", Content = "ID do áudio: " .. Text, Duration = 3, Image = nil }) end }) -- Botão Play Once local ButtonPlayAudio = OP:CreateButton({ Name = "▶️ Play Áudio (Uma Vez)", Callback = function() TocarAudioAll(AudioAll.AudioId, false) end }) -- Botão Play Loop local ButtonPlayLoop = OP:CreateButton({ Name = "🔁 Play Áudio (Loop)", Callback = function() TocarAudioAll(AudioAll.AudioId, true) end }) -- Botão Play no Servidor local ButtonPlayServidor = OP:CreateButton({ Name = "🌐 Play no Servidor Todo", Callback = function() TocarAudioServidor(AudioAll.AudioId, true) end }) -- Botão Parar Áudio local ButtonStopAudio = OP:CreateButton({ Name = "⏹️ Parar Todos os Áudios", Callback = PararAudioAll }) -- Dropdown com músicas populares local DropdownMusicas = OP:CreateDropdown({ Name = "🎶 Músicas Populares", Options = { "Rick Roll - 27697743", "Giga Chad - 9047378326", "Megalovania - 27697217", "Among Us Drip - 7110179471", "Sea Shanty - 6467930713", "Never Gonna Give You Up - 27697243" }, CurrentOption = "Rick Roll - 27697743", Callback = function(Option) -- Extrair apenas o ID numérico local audioId = string.match(Option, "%d+") if audioId then AudioAll.AudioId = audioId InputAudioId:Set(audioId) Rayfield:Notify({ Title = "🎵 Música Selecionada", Content = Option, Duration = 3, Image = nil }) end end }) -- Informações sobre áudio local ParagraphAudioInfo = OP:CreateParagraph({ Title = "🎵 Como usar Áudio All", Content = "1. Cole o ID do áudio ou selecione uma música\n2. Clique em Play para tocar uma vez\n3. Clique em Loop para repetir\n4. Use 'Servidor Todo' para maior alcance\n5. Clique em Parar para silenciar" }) -- ... (o resto do código anterior permanece igual - Fly Mobile, Aimbot, etc.) local ToggleFlash = OP:CreateToggle({ Name = "⚡ Flash (Velocidade)", CurrentValue = false, Callback = function(Value) local player = game.Players.LocalPlayer if player and player.Character and player.Character:FindFirstChild("Humanoid") then if Value then player.Character.Humanoid.WalkSpeed = 40 Rayfield:Notify({ Title = "⚡ Flash Ativado", Content = "Velocidade aumentada para 40!", Duration = 3, Image = nil }) else player.Character.Humanoid.WalkSpeed = 16 Rayfield:Notify({ Title = "⚡ Flash Desativado", Content = "Velocidade resetada para 16!", Duration = 3, Image = nil }) end end end }) -- ... (restante das funções mobile do código anterior) -- Notificação de inicialização Rayfield:Notify({ Title = "🎉 YYY Hub Mobile Carregado!", Content = "Novo: Sistema de Áudio All! 🎵\nAgora você pode tocar músicas para todos!", Duration = 6, Image = nil }) -- Carregar configurações Rayfield:LoadConfiguration()