local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local player = Players.LocalPlayer local pGui = player:WaitForChild("PlayerGui") local old = pGui:FindFirstChild("OBI MUSIC") if old then old:Destroy() end -- INTRO local intro = Instance.new("ScreenGui") intro.Name = "OBI_INTRO" intro.Parent = pGui local frame = Instance.new("Frame") frame.Size = UDim2.new(1,0,1,0) frame.BackgroundColor3 = Color3.new(0,0,0) frame.Parent = intro local text = Instance.new("TextLabel") text.Size = UDim2.new(1,0,1,0) text.BackgroundTransparency = 1 text.TextColor3 = Color3.new(1,1,1) text.Font = Enum.Font.GothamBold text.TextSize = 18 text.Parent = frame local msg = [[ some songs may not work. music will be shared to all players (if allowed by game). ]] task.spawn(function() for i = 1, #msg do text.Text = string.sub(msg,1,i) task.wait(0.03) end task.wait(2) intro:Destroy() end) -- GUI local gui = Instance.new("ScreenGui") gui.Name = "OBI MUSIC" gui.Parent = pGui local main = Instance.new("Frame") main.Size = UDim2.new(0,400,0,600) main.Position = UDim2.new(0.5,-200,0.2,0) main.BackgroundColor3 = Color3.fromRGB(25,25,25) main.Visible = false main.Parent = gui Instance.new("UICorner", main) -- BUTTON local obi = Instance.new("TextButton") obi.Size = UDim2.new(0,90,0,40) obi.Position = UDim2.new(0,10,0,10) obi.Text = "OBI" obi.Parent = gui task.spawn(function() while true do for i = 0,1,0.01 do obi.BackgroundColor3 = Color3.fromHSV(i,1,1) task.wait(0.02) end end end) obi.MouseButton1Click:Connect(function() main.Visible = not main.Visible end) -- DRAG local drag, dragStart, startPos obi.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then drag = true dragStart = i.Position startPos = obi.Position end end) obi.InputEnded:Connect(function() drag = false end) UIS.InputChanged:Connect(function(i) if drag then local d = i.Position - dragStart obi.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y) end end) -- 🔊 MULTIPLAYER SOUND FIX (IMPORTANT PART) local sound = Instance.new("Sound") sound.Volume = 0.5 sound.Looped = false sound.Parent = workspace -- 🔥 THIS MAKES IT HEARABLE FOR ALL PLAYERS (if allowed) local list = {} local index = 1 local function playSong(l, i) list = l index = i or 1 sound:Stop() sound.SoundId = "rbxassetid://" .. list[index][2] sound:Play() end sound.Ended:Connect(function() index += 1 if list[index] then sound.SoundId = "rbxassetid://" .. list[index][2] sound:Play() end end) -- UI SYSTEM local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1,0,1,0) scroll.BackgroundTransparency = 1 scroll.ScrollBarThickness = 6 scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y scroll.Parent = main local layout = Instance.new("UIListLayout") layout.Parent = scroll local function updateCanvas() scroll.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 30) end layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(updateCanvas) -- SECTION SYSTEM local function makeSection(name, songs) local header = Instance.new("TextButton") header.Size = UDim2.new(0.95,0,0,35) header.Text = "▶ " .. name header.Parent = scroll local rows = {} local open = false for i,s in ipairs(songs) do local r = Instance.new("Frame") r.Size = UDim2.new(0.95,0,0,35) r.Visible = false r.Parent = scroll local b = Instance.new("TextButton") b.Size = UDim2.new(1,0,1,0) b.Text = s[1] b.Parent = r b.MouseButton1Click:Connect(function() playSong(songs,i) end) table.insert(rows,r) end header.MouseButton1Click:Connect(function() open = not open for _,r in ipairs(rows) do r.Visible = open end updateCanvas() end) end -- SONG LISTS makeSection("ENGLISH", { {"Summer",1842690955}, {"Fire",90091311847595}, {"GOLDEN BROWN",128161090984145}, {"LOVE STORY",71000129176680}, {"LOVE STORY 2",1843265162}, {"NO SMOKING",9047105533}, {"MEMORY REBOOT",109513311091519}, {"RYANAUR",345871841}, {"GARDEN",1837140532}, {"TEA ROOMS",1842209774}, }) makeSection("HINDI", { {"Aadat",94103203628909}, {"Mann Mera",88345320570909}, {"Pal Pal",77002121761232}, {"Jhol",121180010622504}, {"Zaroori Tha",90050076108794}, {"Dhun",129981117529204}, {"Haseen",104470188551260}, {"Sasso Ki Mala",120349214701956}, {"RANJHEYA VE",77373466558471}, {"Hai Dil Ye Mera",113792808283128}, {"Rab Kare Tujhko",85476270857623}, }) makeSection("PHONK", { {"CANLIENTE",105492220688862}, {"NODA TROPICA",88663628557954}, {"SOLO SNA NOCHE",126699590518325}, {"FUNK SIGCURO",96028783423401}, {"TRALALELO",138118304933431}, {"TOMA FUNK",129098116998483}, {"GOTH FUNK",140704128008979}, {"BALLERINA",112992401117253}, {"MAMMA MIA",98881456926953}, {"DRIFT PHONK",80709171471864}, }) makeSection("BHOJPURI", { {"HAMARA MARAD",131679833636653}, {"DAR LAGE",128470232274219}, {"MOH LELU",95909411418420}, {"NIMBU KHARBUJA",89700384406008}, {"SEJIYA PAR PIYA",87577798625777}, }) makeSection("PUNJABI", { {"NO VOCAL",1843529971}, {"ANTHEM",95903202203393}, {"AA GAYE OYE",76453914422555}, {"DREAM",1842484656}, {"CHEAT",136891850788169}, }) -- EXTRA CONTROLS (STOP + VOLUME) local stopBtn = Instance.new("TextButton") stopBtn.Size = UDim2.new(0,80,0,30) stopBtn.Position = UDim2.new(0,110,0,10) stopBtn.Text = "STOP" stopBtn.Parent = gui stopBtn.MouseButton1Click:Connect(function() sound:Stop() end) local vol = Instance.new("TextBox") vol.Size = UDim2.new(0,80,0,30) vol.Position = UDim2.new(0,200,0,10) vol.Text = "0.5" vol.Parent = gui vol.FocusLost:Connect(function() local v = tonumber(vol.Text) if v then sound.Volume = math.clamp(v,0,1) end end)