Yes, I am aware of that, which is why I added networkOwnership as stated in the script. Please read this comment I posted here.
I wanted the visualizer to be visible for everyone in Void Script Builder, so I used NetworkOwnership however it only works on unachored parts. Also, what do you mean by “But if you don’t make the first line local part then it will be created in the workspace”? It’s already the first line.
Then other players wouldn’t see it. I don’t think you’re getting my point here. I absolutely know that playbackloudness doesn’t work on the server and rather local, which is why I added NetworkOwnership so all players in the server can see it too.
I heard other people trying this too, but I wasn’t sure if you could change the colour and material with a mesh shape. I’ll try it after the server outage is fixed.
Are you 100% sure that is the case. I made something similar and I didn’t need a local script to get the playback loudness. Also, I believe that this works for normal parts except the sphere
OP: You can change MeshParts with Surface appearance. I am pretty sure ypu can change the Material too.
This time, the size shows as “0.002, 0.002, 0.002”. Possibly the “volume” would’ve changed it. The sphere doesn’t move still. I’ll change it to a mesh type.
What that line is supposed to do is if PlaybackLoudness = 0 then it makes volume = .1 instead of 0.
That makes it so that when you use part.Size = Vector3.new(sound.PlaybackLoudness/5, sound.PlaybackLoudness/5, sound.PlaybackLoudness/5);
it doesn’t allow sound.PlaybackLoudness/5 or 0/5 so it will stop your math issue of dividing 0 by 5 from happening because .1/5 = .02
The line isn’t supposed to change your size by much.
I understand, however, why isn’t the ball not resizing still? I did what you advised me to do, and it’s still staying like that. I’ll send you my script.
local part = Instance.new("Part",game.Workspace)
local mesh = Instance.new("SpecialMesh",part)
local by = Instance.new("BodyVelocity",part)
local sound = Instance.new("Sound",part)
part.Size = Vector3.new(1,1,1)
part.Position = Vector3.new(0, 10, 0)
part.Color = Color3.fromRGB(255, 255, 255)
part.Material = Enum.Material.Neon
part.Anchored = false
part.CanCollide = false
mesh.MeshType = Enum.MeshType.Sphere
part:SetNetworkOwner(nil)
by.MaxForce = Vector3.new(999999999999,999999999999,999999999999)
by.Velocity = Vector3.new(0,0,0)
sound.Name = "Audio"
sound.SoundId = "rbxassetid://280225750"
sound.Looped = true
sound:Play()
volume = sound.PlaybackLoudness + .1
while task.wait() do
part.Size = Vector3.new(volume/5, volume/5, volume/5);
end
I have no clue how Void Script Builder’s script running works, but I’m assuming it runs it in the server side. If you want this to work, you’d have to make it run from the client/LocalScript
The thing is, the server sees the PlaybackLoudness as 0, while the client sees an actual number.
Why? Because if the server could see it, it might be out of sync with all the other’s clients audio, some may be delayed and whatnot. All of the clients’ audio have the possibility of being out of sync, depending on their ping or a small one second delay or their audio is still loading.
So this is why it should be a LocalScript/client sided
It’s probably impossible to achieve this in Void Script Builder, unless the game supports LocalScripts.