Load-module module-virtual-source source_name=from_obs master=from_obs.monitor source_properties=scription=From_OBS
Load-module module-null-sink sink_name=from_obs sink_properties=scription="OBS\ monitor\ sink" Load-module module-virtual-sink master=speakers use_volume_sharing=no sink_name=to_obsmon sink_properties=scription="To_OBS\ (Monitored)" Load-module module-virtual-sink master=speakers use_volume_sharing=no sink_name=to_obs sink_properties=scription=To_OBS In my example, my real microphone is called nt5 and my speakers are called something complicated, so I'll just call them speakers here for simplicity. Also a reminder that to kill pulseaudio, you can run pulseaudio -k, and then it will re-read your new default.pa when it restarts (which may be automatic for many configurations).
Note that to test this out, you can paste these into pacmd if you want to test things out. So then this is what you need to put in ~/.config/pulse/default.pa. Instead, we'll have pulseaudio direct both to_obs and to_obsmon to your speakers, and will send the audio output of OBS just to zoom, not to any real devices. So while in an ideal world you would have two audio output streams from OBS, send one to zoom and both to your speakers, we are going to have to approach this differently. The complication here is that the only way to get sound out of OBS is through the monitor device, and there is only one.