Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How to complete path when Square Brackets and Double Quotation marks are given?



local sound1 = 532933680
local sound2 = 663850511
local sound3 = 1239252570
local sound4 = 447293921
local sound5 = 656434255
local sound6 = 316677879
local sound7 = 518562191
local sound8 = 233471598
local sound9 = 412765335
local music = script.Parent

while true do
	wait()
	music.SoundId = "rbxassetid://"..sound1
	music:Play()
	game.StarterGui.ScreenGui.Settings["Now Playing"].Song name.Text = 'Song name'
	music.Ended:Wait()
	music.SoundId = "rbxassetid://"..sound2
	music:Play()
	music.Ended:Wait()
	music.SoundId = "rbxassetid://"..sound3
	music:Play()
	music.Ended:Wait()
	music.SoundId = "rbxassetid://"..sound4
	music:Play()
	music.Ended:Wait()
	music.SoundId = "rbxassetid://"..sound5
	music:Play()
	music.Ended:Wait()
	music.SoundId = "rbxassetid://"..sound6
	music:Play()
	music.Ended:Wait()
	music.SoundId = "rbxassetid://"..sound7
	music:Play()
	music.Ended:Wait()
	music.SoundId = "rbxassetid://"..sound8
	music:Play()
	music.Ended:Wait()
	music.SoundId = "rbxassetid://"..sound9
	music:Play()
	music.Ended:Wait()
end

So I want to change the text of a label in Starter Gui with a script in Workspace. The script is the child of a sound.

Code is on top

At line 16 the path has square brackets and double quotation marks. I tried using a '.' to complete the path but it didn't work.

Please help me!!

2 comments

0

You would have to bind your song names to the Ids

0

How?

2 answers

✓ Accepted answer

Use square brackets again.

 game.StarterGui.ScreenGui.Settings["Now Playing"]["Song name"].Text = "Song name"

But to avoid this, since it can be messy, just remove the spaces and name it NowPlaying and SongName.

But this code is far from perfect. Why are you setting the music ID one-by-one when a loop can do this for you.

Have a table contain the IDs, then traverse the table and wait for it to play to go on to the next ID.

local client = game:GetService("Players").LocalPlayer
local song_ids = {
	532933680, 663850511, 1239252570,
	447293921, 656434255, 316677879,
	518562191, 233471598, 412765335
}

local music = script.Parent
local now_playing = client.PlayerGui.ScreenGui.Settings.NowPlaying
local song_name_label = now_playing.SongName -- if renamed to this it works

while true do -- You don't need that wait() call it does nothing useful
	for _, song_id in ipairs(song_ids) do
		music.SoundId = string.format("rbxassetid://%d", song_id)
		music:Play()
		song_name_label.Text = "Song name"
		music.Ended:Wait() -- Will wait for music to end to go onto next
	end
end

I'm not sure where this is parented at, I know it's in a Sound, but where is that sound.

You do not access the player's UI from StarterGui. You access it from their PlayerGui.

3 comments

0

The sound is present in the workspace

0

How do I change the song name at line 16

0

@programmerHere How do I change the song name every time a new song plays at line 16

Use square brackets again.

 game.StarterGui.ScreenGui.Settings["Now Playing"]["Song name"].Text = "Song name"

But to avoid this, since it can be messy, just remove the spaces and name it NowPlaying and SongName.

But this code is far from perfect. Why are you setting the music ID one-by-one when a loop can do this for you.

Have a table contain the IDs, then traverse the table and wait for it to play to go on to the next ID.

local client = game:GetService("Players").LocalPlayer
local song_ids = {
	532933680, 663850511, 1239252570,
	447293921, 656434255, 316677879,
	518562191, 233471598, 412765335
}

local music = script.Parent
local now_playing = client.PlayerGui.ScreenGui.Settings.NowPlaying
local song_name_label = now_playing.SongName -- if renamed to this it works

while true do -- You don't need that wait() call it does nothing useful
	for _, song_id in ipairs(songs) do
		music.SoundId = string.format("rbxassetid://%d", song_id)
		music:Play()
		song_name_label.Text = "Song name"
		music.Ended:Wait() -- Will wait for music to end to go onto next
	end
end

I'm not sure where this is parented at, I know it's in a Sound, but where is that sound.

You do not access the player's UI from StarterGui. You access it from their PlayerGui.

This discussion is preserved as it was. New answers, comments, and votes are closed.