I'm currently working on a GUI that shows the player what song is currently playing. I have gotten a Sound object with a script that keeps changing the song, and it works just fine. And I've also done a GUI in StarterGui that shows everything.
I have a Gui, Frame and TextLabel, inside the TextLabel is a script, that should change the player's GUI based on that property, this is how it looks like:
--\\ VARIABLES
local sound = game.Workspace.Misc.PlaySongs
local playerGui = game.Players.LocalPlayer:WaitForChild("PlayerGui")
local text = playerGui.CurrentSong.Frame.SongName
--// VARIABLES
--\\ CHANGER
if sound.SoundId == 3734646965 then
text.Text = "Buttercup"
elseif sound.SoundId == 1560173003 then
text.Text = "Oh Klahoma"
elseif sound.SoundId == 3524204087 then
text.Text = "Dead Weight"
elseif sound.SoundId == 4664971308 then
text.Text = "Life Could Be A Dream!"
elseif sound.SoundId == 3687583783 then
text.Text = "Lolipop"
elseif sound.SoundId == 4509807932 then
text.Text = "Chill Mix idrk lol"
end
But it doesn't change anything, I've tested it with a print("") as well, for some reason it does not see when the property is changed. Any help would be greatly appreciated! Thanks!

2 comments
I am having the same exact issue as you as well, except when reading the value of a StringValue
I have the answer,i am typing it