--[[ spotify into roblox also .rbi files don't need to be in a folder because im lazy to reedit the code and i forgot folders (otherwise you could type folder/album.rbi) to delete all songs and covers in your exploits workspace use _G.cleanup() in another script tab before running the script theres a personal customization called getgenv().openimg and it only accepts rbxassetids even getcustomasset or official also im a⁠ss at making guis ]] local gui = Instance.new("ScreenGui") gui.Name = "Rblxify" gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling gui.Parent = game:GetService("CoreGui") local main = Instance.new("Frame", gui) main.Size = UDim2.new(0,610,0,432) main.Position = UDim2.new(0.5,-305,0.5,-216) main.BackgroundColor3 = Color3.fromRGB(255,255,255) main.BorderSizePixel = 0 main.Draggable = true Instance.new("UICorner", main).CornerRadius = UDim.new(0,16) local grad = Instance.new("UIGradient", main) grad.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0,Color3.fromRGB(16,16,16)), ColorSequenceKeypoint.new(1,Color3.fromRGB(35,169,28)) } grad.Rotation = 135 local title = Instance.new("TextLabel", main) title.Size = UDim2.new(0,146,0,58); title.Position = UDim2.new(0,6,0,6) title.BackgroundTransparency = 1; title.Text = "Rblxify"; title.TextColor3 = Color3.new(1,1,1) title.TextScaled = true; title.TextXAlignment = "Left"; title.Font = Enum.Font.GothamBold local titlegrad = Instance.new("UIGradient", title) titlegrad.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0,Color3.fromRGB(16,16,16)), ColorSequenceKeypoint.new(1,Color3.fromRGB(35,169,28)) } titlegrad.Rotation = 130 local album = Instance.new("Frame", main) album.Size = UDim2.new(0,368,0,260); album.Position = UDim2.new(0,196,0,28) album.BackgroundColor3 = Color3.fromRGB(255,255,255) Instance.new("UICorner", album).CornerRadius = UDim.new(0,16) local albumgrad = Instance.new("UIGradient") albumgrad.Parent = album albumgrad.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0,Color3.fromRGB(16,16,16)), ColorSequenceKeypoint.new(1,Color3.fromRGB(35,169,28)) } albumgrad.Rotation = 90 local albumCover = Instance.new("ImageLabel", album) albumCover.Size = UDim2.new(0,128,0,128); albumCover.Position = UDim2.new(0,22,0,16) local list = Instance.new("ScrollingFrame", album) list.Size = UDim2.new(0,180,0,218); list.Position = UDim2.new(0,170,0,22) list.BackgroundColor3 = Color3.fromRGB(119,119,119); list.ScrollBarThickness = 4 Instance.new("UICorner", list).CornerRadius = UDim.new(0,16) local current = Instance.new("Frame", main) current.Size = UDim2.new(0,442,0,86); current.Position = UDim2.new(0,136,0,332) current.BackgroundColor3 = Color3.fromRGB(73,73,73) Instance.new("UICorner", current).CornerRadius = UDim.new(0,12) local cover = Instance.new("ImageLabel", current) cover.Size = UDim2.new(0,70,0,70); cover.Position = UDim2.new(0,6,0,6) local songName = Instance.new("TextLabel", current) songName.Size = UDim2.new(0.8,0,0.3,0); songName.Position = UDim2.new(0,92,0,10) songName.BackgroundTransparency = 1; songName.TextColor3 = Color3.new(1,1,1) songName.TextScaled = true; songName.Text = "Song name" local durBG = Instance.new("Frame", current) durBG.Size = UDim2.new(0.8,0,0,8); durBG.Position = UDim2.new(0,92,0,70) durBG.BackgroundColor3 = Color3.fromRGB(50,50,50) Instance.new("UICorner", durBG).CornerRadius = UDim.new(0,4) local durFill = Instance.new("Frame", durBG) durFill.Size = UDim2.new(0,0,1,0); durFill.BackgroundColor3 = Color3.fromRGB(35,169,28) durFill.BorderSizePixel = 0 Instance.new("UICorner", durFill).CornerRadius = UDim.new(0,4) local durText = Instance.new("TextLabel", current) durText.Size = UDim2.new(0.8,0,0,20); durText.Position = UDim2.new(0,92,0,78) durText.BackgroundTransparency = 1; durText.Text = "0:00 / 0:00" durText.TextColor3 = Color3.new(1,1,1); durText.TextSize = 14 local prev = Instance.new("TextButton", current); prev.Size = UDim2.new(0,28,0,32); prev.Position = UDim2.new(0,100,0,50); prev.BackgroundTransparency = 1; prev.Text = "←"; prev.TextScaled = true; prev.TextColor3 = Color3.new(1,1,1) local playbutton = Instance.new("TextButton", current); playbutton.Size = UDim2.new(0,28,0,32); playbutton.Position = UDim2.new(0,133,0,50); playbutton.BackgroundTransparency = 1; playbutton.Text = "▶️"; playbutton.TextScaled = true; playbutton.TextColor3 = Color3.new(1,1,1) local next = Instance.new("TextButton", current); next.Size = UDim2.new(0,28,0,32); next.Position = UDim2.new(0,170,0,50); next.BackgroundTransparency = 1; next.Text = "→"; next.TextScaled = true; next.TextColor3 = Color3.new(1,1,1) local input = Instance.new("TextBox", main) input.Size = UDim2.new(0,144,0,38); input.Position = UDim2.new(0,10,0,86) input.BackgroundColor3 = Color3.fromRGB(255,255,255); input.PlaceholderText = "album.rbi" local loadBtn = Instance.new("TextButton", main) loadBtn.Size = UDim2.new(0,144,0,38); loadBtn.Position = UDim2.new(0,12,0,154) loadBtn.BackgroundColor3 = Color3.fromRGB(255,255,255); loadBtn.Text = "Stream Album" local close = Instance.new("TextButton", main) close.Size = UDim2.new(0,48,0,48); close.Position = UDim2.new(0,562,0,4) close.BackgroundTransparency = 1; close.Text = "X"; close.TextScaled = true; close.TextColor3 = Color3.new(1,1,1) local openerImg = Instance.new("ImageButton", gui) openerImg.Size = UDim2.new(0,64,0,64); openerImg.Position = UDim2.new(0,226,0,434) openerImg.BackgroundColor3 = Color3.fromRGB(42,106,47) openerImg.Draggable = true Instance.new("UICorner", openerImg).CornerRadius = UDim.new(1,8) Instance.new("UIStroke", openerImg).Color = Color3.fromRGB(74,168,67) -- cleanup function _G.cleanup = function() local deleted = { songs = {}, cov = {} } local files = listfiles("") for _, f in ipairs(files) do local name = f:match("[^/\\]+$") if not name then continue end local lower = name:lower() -- classify and delete if lower:sub(1, 4) == "song" then table.insert(deleted.songs, name) delfile(name) elseif lower:sub(1, 3) == "cov" then table.insert(deleted.cov, name) delfile(name) end end -- print results print("Deleted songs:") for _, f in ipairs(deleted.songs) do print(" • " .. f) end print("\nDeleted covers:") for _, f in ipairs(deleted.cov) do print(" • " .. f) end return deleted end -- logic for ending gracie abrams and blocking her local HttpService = game:GetService("HttpService") local RunService = game:GetService("RunService") local sound = Instance.new("Sound", game.SoundService) sound.Volume = 0.7 local queue = {} local idx = 1 local curFile = nil local curCover = nil local curCoverFile = nil album.Visible = false current.Visible = false local function loadImage(url, imageLabel) if not url or url == "" then imageLabel.Image = "" return end if curCoverFile and isfile(curCoverFile) then spawn(function() pcall(delfile, curCoverFile) end) end -- unique filename every time so script don't get confused local filename = "cov_" .. string.gsub(tostring(tick()), "%.", "") .. ".png" -- download the image local success, imgData = pcall(function() return game:HttpGet(url, true) end) if not success or #imgData < 100 then -- very small like your- ahem = probably failed imageLabel.Image = "" -- leave blank if download failed return end writefile(filename, imgData) curCoverFile = filename imageLabel.Image = getcustomasset(filename) end local function updateDuration() if sound.TimeLength > 0 then local pos = sound.TimePosition local len = sound.TimeLength durFill.Size = UDim2.new(pos/len,0,1,0) durText.Text = string.format("%d:%02d / %d:%02d", pos/60, pos%60, len/60, len%60) end end local function play(i) if not queue[i] then return end idx = i local s = queue[i] curFile = "song_" .. string.gsub(tostring(tick()), "%.", "") .. ".mp3" writefile(curFile, game:HttpGet(s.song, true)) sound.SoundId = getcustomasset(curFile) sound:Play() songName.Text = (s.name or "Unknown") .. "\n" .. (s.artist or "") loadImage(s.cover, cover) playbutton.Text = "▶️" durFill.Size = UDim2.new(0,0,1,0) durText.Text = "0:00 / 0:00" end loadBtn.MouseButton1Click:Connect(function() local f = input.Text if not f:lower():match("%.rbi$") then f = f..".rbi" end if not isfile(f) then input.Text = "Not found!"; return end local data = HttpService:JSONDecode(readfile(f)) queue = data.songs or data album.Visible = true current.Visible = true loadImage(data.albumcover or data.cover or "", albumCover) list:ClearAllChildren() local y = 0 for i,v in ipairs(queue) do local b = Instance.new("TextButton", list) b.Size = UDim2.new(1,-10,0,50); b.Position = UDim2.new(0,5,0,y) b.BackgroundTransparency = 0.9 b.Text = (v.name or "Track "..i)..(v.artist and (" — "..v.artist) or "") b.TextColor3 = Color3.new(1,1,1); b.TextScaled = true b.MouseButton1Click:Connect(function() play(i) end) y = y + 55 end list.CanvasSize = UDim2.new(0,0,0,y) end) playbutton.MouseButton1Click:Connect(function() if sound.IsPlaying then sound:Pause(); playbutton.Text = "▶️" else sound:Resume(); playbutton.Text = "⏸️" end end) prev.MouseButton1Click:Connect(function() if idx > 1 then play(idx-1) end end) next.MouseButton1Click:Connect(function() if idx < #queue then play(idx+1) end end) sound.Ended:Connect(function() if idx < #queue then play(idx+1) else playbutton.Text = "▶️" end end) RunService.Heartbeat:Connect(updateDuration) openerImg.Image = getgenv().openimg or _G.openimg or "" openerImg.MouseButton1Click:Connect(function() main.Visible = true; openerImg.Visible = false end) close.MouseButton1Click:Connect(function() main.Visible = false openerImg.Visible = true end) _G.ln = string.char(109,97,100,101,32,98,121) _G.ladynoire = function(ln) return _G.ln .. string.char(32,108,97,100,121,32,110,111,105,114,101) end