New: Nitro Boost our Discord server and receive full donation perks here on the website! Join the Scripting Helpers Discord Server to learn more! You can also Support on Patreon as always.
Still have questions? Join our Discord server and get real time help.
0

# Pausing Sound on Server does Pause the Sound for players?

Edited 6 days ago

I came across this very annoying bug where I am using RemoteEvents to pause, play, stop, and resume sound on the game, which uses an if statement to separate them. The problem is that once it plays the sound, I am unable to pause or stop it once it is playing. I desperately need help on this as this is very important for me game that everyone hears the same music. If you really need the code, I'll post it on here.

Plus, I would want an answer to this as this will make me know more about lua as to do this is something I don't know yet and I am still learn Lua a bit. I know a lot about lua but I am actually still working with RemoteEvents as it seem that this game I am making seems to need them quite a bit. I also learn better when I am doing projects as well.

The game I am making is a DJ type game so that is why a lot of things are labeled with DJ inside.

Module Script ID: 1 = The Module script the script calls, this module script is quite important for future reference in my code so not many bugs are accidentally created if I forgot anything. This is also suppose to act as a sort of template as well so I could use this single line of code for a lot of different things.

Module Name: DJPlayer

function DJPlayer.MediaPlayer(Mode,TimePos,SoundId)
local Path = game:GetService("SoundService").DJMusic.Music
if SoundId ~= nil then
print(SoundId)
DJPlayer.PlayerId(SoundId)
end
if TimePos ~= nil then
print(TimePos)
Path.TimePosition = TimePos
end
if Mode ~= nil then
if Mode == "Play" then
Path:Play()
return true
elseif Mode == "Stop" then
Path:Stop()
return true
elseif Mode == "Resume" then
Path:Resume()
return true
elseif Mode == "Pause" then
Path:pause()
return true
else
error(Mode .. " is an invalid sound mode")
return false
end
else
return true
end
end


Script ID: 2 = The script where it detects the serverEvent

local Replicate = game:GetService("ReplicatedStorage")
local MediaEvent = Replicate:WaitForChild("MediaPlayer")
local DJPlayer = require(game.ReplicatedStorage.Modules.Game.DJPlayer)

MediaEvent.OnServerEvent:connect(function(Player,Mode,TimePos,SoundId)
DJPlayer.MediaPlayer(Mode,TimePos,SoundId)
end)


LocalScript ID: 3 = The localscript of where the player is using. This is important for whoever the DJ of the game is. I am only going to include parts of what is more important and most other elements I have tested and worked. So only including things that is link to the problem I might have

local MediaEvent = game:GetService("ReplicatedStorage"):WaitForChild("MediaPlayer")

MediaEvent:FireServer("Stop") -- There is actually a inside a MouseButton1Click function.


Edit: I still need help with this as to why it happens.

Edit #2: Just to notify, I still need help us this is a problem I am unsure to help with. If you are a bit confused of what I am asking than please don't hesitate to ask what part you are confused about.

0
Please post the script you're using OhManLolLol 143 — 9d
0
I edited my question and added some code. jonathanpecany100 0 — 9d
0
@OhManLolLol I edited my question and added my code in it. as it might not be necessary but if you really need it than okay. jonathanpecany100 0 — 7d

0
Edited 6 days ago

I have finally fixed my problem and it was quite an easy fix. Just send the data back to allclients and play the sound from there. Don't really know why people couldn't answer that but okay.

I'll add the updated scripts and probably ID's to the scripts from my original answer to help determine the position and change.

Script ID: 2 = The script that will detect the server event and run the client event.

local Replicate = game:GetService("ReplicatedStorage")
local MediaEvent = Replicate:WaitForChild("MediaPlayer")
local Callback = Replicate:WaitForChild("SoundCallback")
local DJPlayer = require(game.ReplicatedStorage.Modules.Game.DJPlayer)

MediaEvent.OnServerEvent:connect(function(Player,Mode,TimePos,SoundId)
DJPlayer.MediaPlayer(Mode,TimePos,SoundId)
Callback:FireAllClients(Mode,TimePos,SoundId)
end)


Local Script ID: 4 = The local script of where it detects the client event.

local Callback = game:GetService("ReplicatedStorage"):WaitForChild("SoundCallback")
local DJPlayer = require(game.ReplicatedStorage.Modules.Game.DJPlayer)

Callback.OnClientEvent:connect(function(Mode,TimePos,SoundId)
DJPlayer.MediaPlayer(Mode,TimePos,SoundId)
end)


To mention again, I only included the scripts that I changed, other scripts that I did not list here stayed the same.