Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

(Long Read) Script Only Plays Server Song, Not Player Picked Song?

Asked by 5 years ago
Edited 5 years ago

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!

Answer this question