Guys how can i do a music gui

First step is for you to upload both of those images to Roblox, unless you already have

After that, here’s the script I wrote:

local musicfolder = game.Workspace:WaitForChild("songs") -- place a folder into workspace. Add three UNLOOPED sounds into the folder named "sound1", "sound2", and "sound3". 
-- Set only sound1's isPlaying property to true

local songnumber = musicfolder.song -- insert an intvalue into the folder called "song". Set the value to 1
local button = script.Parent
local songvolume = 0.8 -- replace with the volume you'd like the song to be

local songmuted = false

local function mute()
	for i, v in pairs(musicfolder:GetChildren()) do
		if v.Playing == true then
			v.Playing = false
			songmuted = false
		end
	end
	if songmuted == false then
		for i, v in pairs(musicfolder:GetChildren()) do
			if v:IsA("Sound") then
				v.Volume = 0
			end
		end
		button.Image = "unmuteimageid" -- replace with the imageid
	else
		local songtoplay = musicfolder:FindFirstChild("sound"..songnumber.Value)
		if songtoplay == nil then return end
		songtoplay.Volume = songvolume
		button.Image = "muteimageid"
	end
end


local function changeSong()
	if songnumber.Value == 1 then
		musicfolder.sound2:Play()
		songnumber.Value = 2
	else
		if songnumber.Value == 2 then
			musicfolder.sound3:Play()
			songnumber.Value = 3
		else
			if songnumber.Value == 3 then
				musicfolder.sound1:Play()
				songnumber.Value = 1
			end
		end
	end
end


button.MouseButton1Down:Connect(mute)

musicfolder.sound1.Ended:Connect(changeSong)
musicfolder.sound2.Ended:Connect(changeSong)
musicfolder.sound3.Ended:Connect(changeSong)

It’s pretty scrappy and requires some setup. I think it works, but if not here are some alternative’s could be these systems:

Server Playlist Script not working - Help and Feedback / Scripting Support - Developer Forum | Roblox

My Audio Playlist Script Is Not Working - Help and Feedback / Scripting Support - Developer Forum | Roblox

1 Like

Also this model(it has no viruses I checked):

Lofi PlayList, Vibe music PlayList - Creator Marketplace (roblox.com)

1 Like

Hey this script looks pretty good, but I’m going to recommend some changes if thats ok.

First I want to add a PreloadAsync() as the player will notice the change from the mute to an unmute button if you don’t Preload it. Also I don’t like how the ChangeSound function is set up. So I am gonna change that up a bit. You only allowed for 3 songs, but we can add a couple more lines and make them work for as many songs (saves time from coding more, and is more effective in what it does)

local musicfolder = game.Workspace:WaitForChild("songs") -- place a folder into workspace. Add three UNLOOPED sounds into the folder named "sound1", "sound2", and "sound3". 
-- Set only sound1's isPlaying property to true

local songnumber = musicfolder.song -- insert an intvalue into the folder called "song". Set the value to 1
local button = script.Parent
local songvolume = 0.8 -- replace with the volume you'd like the song to be
local MuteImage, UnMuteImage = "muteimageid", "unmuteimageid"
local songmuted = true

local function PreLoadMuteImages() 
game:GetService("ContentProvider"):PreloadAsync({ MuteImage, UnMuteImage })
print("Done Loading")
end
coroutine.wrap(PreLoadMuteImages)()
local function mute()
	for i, v in pairs(musicfolder:GetChildren()) do
		if v.Playing == true then
			v.Playing = false
			songmuted = false
		end
	end
	if songmuted == false then
		for i, v in pairs(musicfolder:GetChildren()) do
			if v:IsA("Sound") then
				v.Volume = 0
			end
		end
		button.Image = UnMuteImage 
	else
		local songtoplay = musicfolder:FindFirstChild("sound"..songnumber.Value)
		if songtoplay == nil then return end
		songtoplay.Volume = songvolume
		button.Image = MuteImage
	end
end


local function changeSong()
	if musicfolder:FindFirstChild("sound"..songnumber.Value + 1) then
		musicfolder:FindFirstChild("sound"..songnumber.Value + 1):Play()
		songnumber.Value += 1
	else
		musicfolder:FindFirstChild("sound1"):Play()
		songnumber.Value = 1
	end
end


button.MouseButton1Down:Connect(mute)


for i, v in musicfolder:GetChildren() do 
if v:IsA("Sound") then 
v.Ended:Connect(changeSong)
end
end

Other then that, this was a good script!

2 Likes

Thank you, I really appreciate it.

I was wondering how to optimize the code for future expansion of the song selection but your change in that regard fixes the problem.

Also, I’ll do some research into PreloadAsync() so I can start utilizing it in the future. I hope that with these improvements the script could be useful to @Capitain_Lefty.

Have a great day!

1 Like

I don’t know if I did it wrong but it doesn’t work so I’d like to share the script and see if I made a mistake

Also your using the Numbers as the images, and not a rbxassetid format… Throw those numbers, in a image label, it should spilt out a ‘almost link like’ link, and copy that, and insert it into the images. It should look something like rbxassetid://NUMBERSHERE

Learn about this formatting here and here on how its used across the platform on the roblox docs page!

1 Like

First, I recommend applying the changes outlined in @OfficialPogCat’s post: Guys how can i do a music gui - #11 by OfficialPogCat

Secondly, posting the output(or console) when you playtest your game with the music folder visible in explorer could help me see any errors.

1 Like

I noticed that as well, that’s probably the main problem

1 Like

Also local button should = script.Parent, not MouseButton1Click

I don’t know if I did it wrong but it doesn’t work so I’d like to share the script and see if I made a mistake


cupid

It is my bad, add another end on that second image. It should have 2, not one.

Your still using Numbers as the Image Id so make sure you still convert them as seen here in my post above :slight_smile:

1 Like


it’s is correct ?

The images? As far as I’m aware yes. is it not working for you?

Sorry a mistake I made that is visible on line vingt-huit was forgetting to set songmuted to true, so start a new line there which states songmuted = true

it’s not working fort me idk if i did it wrong or it’s just the script don’t work

Can you post an image of the console or output when you test the game?

sure

Is sound1 playing?

and did you make this change? Guys how can i do a music gui - #22 by 700000002

Also, please show a screenshot of the musicfolder in the Explorer.

ye he is playing and no i didn’t make this change