Adjust volume of a custom Boombox tape
I added a custom boombox tape with the help of this guide:
https://docs.ficsit.app/satisfactory-modding/latest/Development/Satisfactory/Audio.html
It works, but music plays at maximum volume and doesn't react to the volume slider. So i set up an audio bus, assigned my songs to this bus, created an RTPC parameter, linked bus' volume to that parameter and created an AK Game Parameter in Unreal for that RTPC. Then in GameWorld Module i used
It works, but music plays at maximum volume and doesn't react to the volume slider. So i set up an audio bus, assigned my songs to this bus, created an RTPC parameter, linked bus' volume to that parameter and created an AK Game Parameter in Unreal for that RTPC. Then in GameWorld Module i used
Bind on BPFunction
on BPW Boom Box Player
widget blueprint and in its PreConstruct
event i subscribed to OnVolumeChanged
event. It works and when i move volume slider i receive float values from 0 to 1.
But now what? How do i send those float values to RTPC? In the guide it simply says "now you can update RTPC using blueprints" and on screenshot (second attached image) it shows SetRTPC
node that accepts some Ak
object. Is Ak
a play event? But i don't manage play events directly, boombox does, i only placed references to my play events in the tape blueprint. And i don't see Set RTPCValue
node, i have Set Global RTPC Value
and Set Actor RTPC Value
. I tried using Set Global RTPC Value
(first attached image), but that didn't work.
What am i doing wrong and what is the proper way to control volume of custom tapes?Audio :: Satisfactory Modding Documentation
This page is a work in progress. Adding sound effects and music via mods can really help bring them to life. Coffee Stain uses the Wwi...


28 Replies
I'm not sure anyone has tried this yet so you may be breaking new ground
I think you need to copy the rpc bus setting value from the base game to your own setting whenever is changes, not just when the slider within the boom box widget itself is adjusted. Or there might be multiple settings affecting the volume. For example, the equipment volume category, and the boom box volume, and that slider you're already using might be a per boombox instance setting?
That's a valid point. Tested it and boombox slider is indeed per boombox instance, so what i was trying to do is not the right way.
Additionally, boombox volume should be affected by audio settings
Effects Volume
> Equipment Volume
> Boombox Volume
. None of which affect modded music by default.
Okay, then i guess i should try adding RTPC voice volume for each individual music track instead of a bus, and then bind to something in the equipable boombox blueprint to be able to access currently playing AK event and adjust RTPC from there.Correct, modded sound does not obey any of the vanilla sliders by default. Both Wwise and stock unreal
I'm not sure I follow exactly what you're saying, but I think you should only need one bus for your mod, code to set that bus volume by combining the settings of the relevant vanilla stuff, then the final stage of the specific boombox instance's slider
Got it working. I couldn't figure out how to set volume of a bus, but setting up
Voice Volume
RTCP on each track has worked for me.
So, here's my solution to adjusting volume of a custom tape:
1. Create Game Parameter in Wwise and set up RTCP Voice Volume
for each audio track.
2. In Unreal use Bind on BPFunction
node to bind to Construct
event of the BPW_BoomBox
widget blueprint.
3. BPW_BoomBox
has a reference to BPW_BoomBox_Player
that has volume controls. Bind event to OnVolumeChanged
of the player - that's where you change the volume.
4. BPW_BoomBox
has a reference to its boombox instance mBoomBox
. Use Set Actor RTCP Value
node to update volume and pass mBoomBox
instance as an actor.
5. You also want to update RTCP value once in Construct
event, otherwise tape will play silently until you adjust the volume slider.

This approach has an issue, though, where after changing Audio Settings (volume of sound effects, equipment, boombox), volume of the custom tape won't update until you touch the volume slider of a boombox or reload a save. Which is not that big of a deal imo.
hmm, I wonder if there is a way to listen for changes to the base game settings, otherwise you could work around it with a timer running in the background or something
@Archengius if I recall correctly you suggested the approach of reading the base game volume settings since we can't reuse the vanilla busses directly. is there a way to subscribe to base game option changes?
Yes, through option system delegates
The same way you subscribe to session settings or AGS
My solution has a multiplayer issue.
In single player it works fine, but in multiplayer other players don't hear modded music until they touch that boombox instance (open boombox's menu and close it). Unequipping into inventory and re-equipping the boombox makes other players 'forget' it and stop hearing its music. Walking away too far from a playing boombox also makes you 'forget' about it, and after coming back you won't hear it play until you touch it again. It only affects songs that have
Voice Volume
linked to an RTCP, songs without volume control always work for all players.
I suspect it's connected to this point i made:
5. You also want to update RTCP value once in Construct event, otherwise tape will play silently until you adjust the volume slider.I suspect that RTCP value defaults to 0 (even though i made sure to make default value 1 in Wwise) and all songs play with volume 0 until you update RTCP with a value from a slider. Here i suggested doing it in
Construct
event of BPW_BoomBox
in order to initialize RTCP, but i guess in multiplayer this event does not fire for other clients?
What can i do to make sure a RTCP initializes on all clients?I can't figure out what object has the appropriate event dispatcher for me to subscribe. Is it
OnGameUserSettingUINeedsUpdate
from FGGameUserSettings
or is there an event specifically for changing volume sliders somewhere?
SubscribeToDynamicOptionUpdate on FGGameUserSettings
volume slider options start with RTPC. prefix
for full names check option IDs in their assets in the modding project
Got it, thank you
Good stuff. Hopefully when we have the structure to allow Wwise files in the starter project we can have an example audio bus following what you've found here
Did the dynamic subscription fix this issue or is that still open?
SubscribeToDynamicOptionUpdate
allowed me to update volume on the fly when dragging sliders in Audio Settings, that is resolved and is working nicely.But the issue with the multiplayer is still open. Events for a Boombox instance seem not to fire on clients that didn't interact with this specific instance. I tried binding on Construct, AudioVolumeChanged, PlaybackStateChanged, etc. - none print to the log of the second player until they open this Boombox's UI. After second player touches the Boombox, the first player can pick it up and any event will now fire for the second player too.
the boombox actor probably isn't considered network relevant by the client player until they interact with it... hmm...
I was told that
Th3Tunes_ONLAP
also has problems with volume and sound location, so it would be interesting to have the solution to this post added to the docsYes, i tested a few mods with music tapes, including ONLAP one. It doesn't even have attenuation set up, music can be heard from anywhere on the map.
So far i wasn't able to find a solution for the multiplayer issue.
I tried getting all instances of the boombox class and setting RTCP there, which works, but the problem is that boomboxes don't know what volume level they are at, widgets know the slider position. I had an idea to create a subsystem that would track the volume of each boombox on the map, but didn't figure out how to do that yet. Networking and replication is tough.
Honestly, I basically made Th3Tunes - ONLAP back in Update 8 just to see if it was possible to use Wwise in mods (it is), but didn't bother to investigate how Wwise or the Boombox work besides the absolute basics
@Co5teL this is the thread with the info I thought might help you! Good luck, would love to know how you go with it! 😄
this is for the tape player ... the boombox
Yes, but this thread and another re Ada's messages both have invaluable info about using the audio systen in general that I thought might help
i need to find where is the audio for the Hazmat suit and delete or swap with another blank sound file. or BETTER might not be the HazmatSuit, might be the RADIATION sound.
You mean the clicking sound of a Geiger counter when you're near a radiation source? I'm not sure if it's possible to do anything with that. Vanilla audio files are not available in the modding project.
It may be possible to replace a sound if you find a Blueprint that uses it and has a slot for an Audiokinetic Play Event (AK Event), and then you replace that play event with a play event of your own. I tried to CDO edit
BP_RadialDamageType_Radiation
and BP_PointDamageType_Radiation
and replace mImpactAudioEvent
but that didn't have any effect. Probably because Geiger clicking is not an "impact SFX" but something else that's being played in C++ and is not available in Blueprints. Or maybe CDO editing is not the right way to do such replacement, i'm not sure.Some day we will get this one goying too.
Wait, no, it did do something. I had an issue with Wwise sound banks or something and sounds just didn't play. Now that it's fixed it works.
However,
mImpactAudioEvent
is still not for Geiger counter sounds, it plays every time you take damage from radiation. But this CDO replacement does work. So if you will find a class that's responsible for playing Geiger clicks, it may be possible to replace it.
Edit: Oh, and it requires an Access Transformer to expose Set
for mImpactAudioEvent
:

if you can realease a mod that stops the geiger sound from radiation and the chirping i would gladly download that.
Hello, I am a beginner trying to develop the Satisfactory mod. I have previously created some Black Myth and Palworld model replacements. I want to use a similar method to package pak files to replace some Satisfactory models, but it doesn't work. Many related tutorials on Chinese online communities seem to be from several years ago. Do you have any new tutorials? thank you.

https://docs.ficsit.app/
Making mods for Satisfactory is quite different from modding other UE games
Also, unless your question is specifically about boombox tapes (or Wwise audio), please create a new thread.
Thank you.