I created a script where when you click, it opens a menu with the songs you can play, and when you click a song it plays it and an animation, and when you click stop it should stop the song and animation. When I run a test server with two players, I have them both play a song. Sometimes when I click stop on one player it will stop the other players song or not stop the song at all. Does anyone know why this is happening?
SERVER SCRIPT:
unequipt = game.ReplicatedStorage.Unequpit stopsong = game.ReplicatedStorage.StopSong -------events choosesong = game.ReplicatedStorage.ChooseSong songstopped = game.ReplicatedStorage.songstopped game.Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(character) if player.TeamColor == BrickColor.new("Really red") then f = game.ReplicatedStorage["British Fife"] f:Clone().Parent = player.Backpack player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton1.Text = "The British Grenadiers" ----------sets guis player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton2.Text = "The Girl I Left Behind Me" player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton3.Text = "Lilliburlero" player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton4.Text = "Rule Britannia" end if player.TeamColor == BrickColor.new("Really blue") then f = game.ReplicatedStorage["French Fife"] f:Clone().Parent = player.Backpack player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton1.Text = "La Grenadier" player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton2.Text = "La Charge" player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton3.Text = "La Diane" player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton4.Text = "La Pa Cadence" end end) end) choosesong.OnServerEvent:Connect(function(player,animid,songnumber) song = Instance.new("Sound") if player.TeamColor == BrickColor.new("Really red") then song.Parent = player.Character:FindFirstChild("British Fife").Handle end if player.TeamColor == BrickColor.new("Really blue") then song.Parent = player.Character:FindFirstChild("French Fife").Handle end song.SoundId = "https://www.roblox.com/Asset?ID="..songnumber -----plays song animation = Instance.new("Animation") animation.AnimationId = "https://www.roblox.com/Asset?ID="..animid trackanimation = game.Workspace[player.Name].Humanoid:LoadAnimation(animation) song:Play() trackanimation:Play() player.Character.Humanoid.WalkSpeed = 8 song.Ended:Connect(function() songstopped:FireClient(player) song:Destroy() player.Character.Humanoid.WalkSpeed = 16 end) end) stopsong.OnServerEvent:Connect(function(player) song:Stop() song:Destroy() trackanimation:Stop() player.Character.Humanoid.WalkSpeed = 16 end) unequipt.OnServerEvent:Connect(function(player) ------------when u unequipt song:Stop() song:Destroy() trackanimation:Stop() player.Character.Humanoid.WalkSpeed = 16 end)
LOCAL SCRIPT:
unequipt = game.ReplicatedStorage.Unequpit --remoteevent stopsong = game.ReplicatedStorage.StopSong --remoteevent choosesong = game.ReplicatedStorage.ChooseSong --remoteevent songstopped = game.ReplicatedStorage.songstopped --remoteevent player = game.Players.LocalPlayer script.Parent.Equipped:Connect(function(mouse) --equipted mouse.Button1Down:Connect(function() if player.Character:FindFirstChild("British Fife") then if not player.PlayerGui:WaitForChild("ScreenGui").Stop.Visible and not player.PlayerGui:WaitForChild("ScreenGui").Frame.Visible then player.PlayerGui.ScreenGui.Frame.Visible = true end end end) end) script.Parent.Unequipped:Connect(function() --unequipted unequipt:FireServer() player.PlayerGui:WaitForChild("ScreenGui").Frame.Visible = false player.PlayerGui:WaitForChild("ScreenGui").Stop.Visible = false end) player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton1.MouseButton1Click:Connect(function() choosesong:FireServer(4054455538,4009405494) player.PlayerGui.ScreenGui.Frame.Visible = false player.PlayerGui.ScreenGui.Stop.Visible = true end) player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton2.MouseButton1Click:Connect(function() choosesong:FireServer(04116459147,4115819618) player.PlayerGui.ScreenGui.Frame.Visible = false player.PlayerGui.ScreenGui.Stop.Visible = true -----------songs end) player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton3.MouseButton1Click:Connect(function() choosesong:FireServer(04116482197,4115832422) player.PlayerGui.ScreenGui.Frame.Visible = false player.PlayerGui.ScreenGui.Stop.Visible = true end) player.PlayerGui:WaitForChild("ScreenGui").Frame.TextButton4.MouseButton1Click:Connect(function() choosesong:FireServer(04116506453,4115835480) player.PlayerGui.ScreenGui.Frame.Visible = false player.PlayerGui.ScreenGui.Stop.Visible = true end) script.Parent.Unequipped:Connect(function() -----------unequipt stopsong:FireServer() end) player.PlayerGui:WaitForChild("ScreenGui").Stop.TextButton.MouseButton1Click:Connect(function() ------------stop song stopsong:FireServer() player.PlayerGui:WaitForChild("ScreenGui").Frame.Visible = true player.PlayerGui:WaitForChild("ScreenGui").Stop.Visible = false end) songstopped.OnClientEvent:Connect(function() -------------------------------------when song is stopped player.PlayerGui:WaitForChild("ScreenGui").Stop.Visible = false player.PlayerGui:WaitForChild("ScreenGui").Frame.Visible = true end)