Here is the music player:
while true do
if not script.MusicOn.Value then
local Music = game.ServerStorage.Songs:GetChildren()
local RandomMusic = Music[math.random(1, #Music)]:Clone()
RandomMusic.Parent = workspace.CurrentSong
RandomMusic:Play()
script.MusicOn.Value = true
print(RandomMusic.Name)
local musName = Instance.new("StringValue", workspace.CurrentSong)
musName.Value = (RandomMusic.Name)
RandomMusic.Ended:connect(function()
RandomMusic:Destroy()
wait(.1)
script.MusicOn.Value = false
return
end)
end
wait(.1)
end
Here is the GUI updater:
while true do
local Music = game.ServerStorage.Songs:GetChildren()
local GUItext = game.Players.LocalPlayer.PlayerGui.MusGui.song_name.Text
GUItext = workspace.CurrentSong.Value.Value
wait(1)
end

6 comments
Is the GUI Updater a local script or regular script?
I have tried both
Anything from output?
Nope
Why have you done GUItext = workspace.CurrentSong.Value.Value? Why are there 2 values?
uh FE.. You need to get an event to fire that sends the music name to the GUI..