I've spent multiple hours working on a few scripts that are supposed to Play songs from a pending list which users can paste sound Id's into, but if no users have a sound Id ready then the server automatically plays its own sound Id, but whenever I test the game, it only plays the server Id and none of the player's id's? Please Help!
Server Script Located In game.Workspace (Script Is Named "MusicScript"):
local RepStorage = game:GetService("ReplicatedStorage")
local remote = Instance.new("RemoteEvent")
local FirstTime = true
local PendingNumber = 1
local PendingNumber2 = 1
local Pending = {}
remote.Parent = RepStorage
remote.OnServerEvent:Connect(function(player,name,TextboxText)
wait()
if game.Players[""..name..""].leaderstats["Dance Dollars"].Value >= 5 then
game.Players[""..name..""].leaderstats["Dance Dollars"].Value = game.Players[""..name..""].leaderstats["Dance Dollars"].Value - 5
-----------------------Table Insert Here
Pending[PendingNumber] = ""..name..""
local MusicFolder = Instance.new("Folder")
MusicFolder.Name = "MusicFolder"
MusicFolder.Parent = game.Players[""..name..""].PlayerGui
-------------------------------
local SongId = Instance.new("NumberValue")
SongId.Name = "SongId"
SongId.Parent = MusicFolder
SongId.Value = TextboxText
--------------------------------
local Username = Instance.new("StringValue")
Username.Name = "Username"
Username.Parent = MusicFolder
Username.Value = name
----------------------------------------
PendingNumber = PendingNumber + 1
end
end)
------------------------------------------------------------------------------------------------
if FirstTime == true then
FirstTime = false
wait(1)
Pending[PendingNumber] = "Server"
local MusicFolder = Instance.new("Folder")
MusicFolder.Name = "MusicFolder"
MusicFolder.Parent = game.Workspace
local SongId = Instance.new("NumberValue")
SongId.Name = "SongId"
SongId.Parent = MusicFolder
SongId.Value = 143401149
local Username = Instance.new("StringValue")
Username.Name = "Username"
Username.Parent = MusicFolder
Username.Value = "Server"
PendingNumber = PendingNumber + 1
game.Workspace:WaitForChild("MusicGenerator")
MusicFolder.Parent = game.Workspace.MusicGenerator
game.Workspace:WaitForChild("NewSong")
if game.Workspace.NewSong.Value == false then
game.Workspace.NewSong.Value = true
else
game.Workspace.NewSong.Value = false
end
end
-------------------------------------------------------------------------------------------------------
game.Workspace:WaitForChild("NewSong")
game.Workspace.NewSong.Changed:connect(function()
print("TEST")
if Pending[PendingNumber2] == "" then
Pending[PendingNumber2] = "Server"
wait()
Pending[PendingNumber] = "Server"
local MusicFolder = Instance.new("Folder")
MusicFolder.Name = "MusicFolder"
MusicFolder.Parent = game.Workspace
local SongId = Instance.new("NumberValue")
SongId.Name = "SongId"
SongId.Parent = MusicFolder
SongId.Value = 143401149
local Username = Instance.new("StringValue")
Username.Name = "Username"
Username.Parent = MusicFolder
Username.Value = "Server"
PendingNumber = PendingNumber + 1
PendingNumber2 = PendingNumber2 + 1
----------------------------------------------------
end
if Pending[PendingNumber2] == "Server" then
game.Workspace.MusicFolder.Parent = game.Workspace.MusicGenerator
else
game.Players[""..Pending[PendingNumber2]..""].PlayerGui.MusicFolder.Parent = game.Workspace.MusicGenerator
PendingNumber2 = PendingNumber2 + 1
wait()
end
end)
Server Script Located In game.Workspace.MusicGenerator(The Script Is Named "Script" and it is inside of a part named "MusicGenerator"):
while wait() do
local CurrentlyPlaying = script.Parent:WaitForChild("MusicFolder")
local NewSound = Instance.new("Sound", workspace)
NewSound.Parent = script.Parent
NewSound.SoundId = "rbxassetid://"..CurrentlyPlaying.SongId.Value..""
NewSound.Volume = 0
NewSound:Play()
for i = 1,50 do
wait(0.1)
NewSound.Volume = NewSound.Volume + 0.1
end
wait(60)
for i = 1,50 do
wait(0.1)
NewSound.Volume = NewSound.Volume - 0.1
end
NewSound:Destroy()
local NewSong = game.Workspace:WaitForChild("NewSong")
if NewSong.Value == false then
NewSong.Value = true
else
NewSong.Value = false
end
end
This Script Is A Local Script Located In StarterGui.MusicPlayer.MusicPlayer.PlaySound And Is Named "Local Script" (Its Parent, "PlaySound" Is A TextButton):
local remote = game:GetService("ReplicatedStorage"):WaitForChild("RemoteEvent") --wait for remote
script.Parent.MouseButton1Click:Connect(function()
local MusicFolderFound = game.Players.LocalPlayer.PlayerGui:FindFirstChild("MusicFolder")
if not MusicFolderFound then
remote:FireServer(script.Parent.Parent.Parent.Parent.Parent.Name,script.Parent.Parent.TextBox.Text) --send needed data
end
end)
There is a booleanvalue named "NewSong" in game.Workspace
I Don't Know Why It's Not Working, Please Help!
