Sound script changes

That’s a problem in your game.

To avoid exploiters taking abuse of that ability you should set RespectFilteringEnabled to True in the SoundService:

1 Like

That won’t fix it.

The issue with exploiters running the default character sounds is that the current script works by remotes, which exploiters can fire and therefore run the sounds.

It is not related to running local sounds and making them pass to the server at all.

1 Like

Can we expect more changes to sound in the future? Being able to analyze components of a sound like PlaybackLoudness on the server rather than solely on the client and generally having more control over aspects of sound would be an immense upgrade to handling the feature.

2 Likes

Yes

This won’t do anything for the sound core script. Now all character sounds are local, so there is nothing for users to play locally that can be heard on other clients.

Before you go on a rant about being highly against an update, it would be a good idea to carefully re-read the announcement.

You will still be able to hear other players. The new sound LocalScript is listening to the humanoid state changes of other characters and playing sounds on them. Instead of the sound script only doing this for your own character, relying other clients to replicate their own, now it runs against all players.

21 Likes

Can you elaborate on

I’m not sure if StarterPlayerScripts run for all players, or just the character its in.

I looked at this, and started to realize if everything was done locally as said by you.

It would take a lot of lag off the server, allowing it to more efficiently work for everyone…

I feel after reading what you said, it probably is the case, and really helps our gameplay. I’ve retracted my statement because of you, thanks for the info.

EDIT:

Cleared up grammar.

1 Like

This is not released yet.

The LocalScript runs only for the player it is in, but it is doing something like

for _,character in pairs(getAllCharactersInGame()) do
    character.Humanoid.StateChanged:Connect(function(old, new)
        playSoundBasedOnState(character, new)
    end)
end

Previously the sound script only listened to state changes for your own character, but now each client is doing this on their own for all characters in the game

4 Likes

That’s correct - you won’t get the new system if you forked the old one.

4 Likes

Any updates on this? @subcritical

2 Likes

I did this on my game months ago. This was a necessary change. I spent hours arguing that client emulation was a valid method with people who think things need to be 100% server controlled.

2 Likes

Sure.

  1. Insert this script into StarterPlayerScripts:
  2. Insert an empty script named Sound into StarterCharacterScripts.
23 Likes

Are there any planned changes to this system before the expected release date?

None are planned, but I’ll update the thread if there are any changes to the script.

3 Likes

My first question is: What if my characters have no HumanoidRootPart?
What am I supossed to do in that situation?

My second question is: What if I use a really old sound script? (For example, pre-2009)

2 Likes

If it has a humanoid, it must have a HumanoidRootPart. This is universal for all character types.

Humanoids can (kinda) function without a head/torso, but they need a root part.

2 Likes

New script needs a HumanoidRootPart to work.
Existence of a root part is generally a better assumption to make than existence of a head.

You should consider not doing that, but this change won’t affect you.

8 Likes

Love this new change. It makes things look so much more organized and 40% server CPU utilzation change is a huge difference! Are there any other sound updates in process with this one?

2 Likes

When will this be enabled?

1 Like

I’m not seeing the new system while testing in studio. Has it been released yet?

3 Likes

Pushed back 2 days or so to give enough time for QA.
Looking at rolling the new system out tomorrow (Oct 30).

6 Likes

This is LIVE.
Let me know if you run into any issues.

13 Likes