I'm using custom scripts too, to have volume control and 3D sound working easily, as well as automating some layering systems for certain specific combinations of actions.
In my game, different bullets produce different sounds. Different "strength" values for each bullet produce different sounds. Different characters hitting bullets produces different sounds. So whenever a character hits a bullet, I run a single script that just automatically grabs the bullet's strength value, the specific character, and the specific bullet, and plays two sounds simultaneously (for the bullet getting hit and the object hitting the bullet), each with a slightly random pitch depending on the specific values. There's three variations of each sound depending on the bullet's strength, and they're picked automatically depending on all those variables. And the volume for each of these sounds is calculated using the global variables for volume (sfx_volume*master_volume).
Something else I did specifically for character voices, is a scripts that stores the specific instance of the sound in a variable, to know which specific voiceline the character is currently using. If for whatever reason the same character uses the same script once again, the voiceline in that variable gets interrupted so that the character doesn't just throw two voicelines at the same time, while letting other player characters use the same voicelines at the same time (in the case multiple players choose the same characters). Again, this is done automatically by just calling the "play_voiceline" script.
That's basically my idea for everything. Everything I want to do in a semi-complicated manner, I reduce to a script so I can just call it once if I want to play a sound. The script handles everything and I don't have to copy-paste code anywhere. And yes, I have minor sound effects added to character code when it's convenient, but since they sill use one of my sound scripts, they still fall into the same sound system. So everytime I change the system in the script, even those sounds hidden away in weird parts are affected.
Also, very important. If something goes wrong (a specific sound is missing, or something returns the wrong value) the default sound effect in the script is literally just a recording of the sound designer's cat meowing. It's almost impossible to miss even when a lot of other sounds are playing, because nothing else in the game has a similar sound. This means that errors are easy to find, because whenever we hear a cat in-game, we know that we're missing a sound effect or that something's glitching out and not returning the right sound. If you're using a system that dynamically chooses sound files depending on certain variables I definitely recommend this. Even just for placeholders, using ridiculous/annoying sounds is a good idea because then you'll always remember you have to add proper ones later.