This is just a playlist script with a fov script with it, and I've done changes so that the event/function for the fov script to close after the song ends, but now multiple songs play at the same time.
local musicFolder = workspace.Songs local availableMusic = musicFolder:GetChildren() -- all the songs in a folder local currentTrack = game.ReplicatedStorage.CurrentTrack local CurrentCamera = workspace.CurrentCamera while true do local randomTrack = availableMusic[math.random(1,#availableMusic)] currentTrack.Value = "..." -- displays the song playing in a music player gui wait(2) randomTrack:Play() local connection connection = game:GetService("RunService").RenderStepped:connect(function() local ScreenShakeSettings = { CameraMinFOV = 70, CameraMaxFOV = 80, CameraMaxVolume = 1500 } game:GetService("RunService").RenderStepped:connect(function() local CurrentLoudness = randomTrack.PlaybackLoudness local FOV = ScreenShakeSettings.CameraMinFOV + (ScreenShakeSettings.CameraMaxFOV - ScreenShakeSettings.CameraMinFOV) * (CurrentLoudness / ScreenShakeSettings.CameraMaxVolume) if FOV > 0 and FOV < 130 then CurrentCamera.FieldOfView = FOV end end) currentTrack.Value = randomTrack.Name randomTrack.Ended:Wait() connection:Disconnect() end) end