Quote: "I tried using just a sound zone, but that's positional and the music fades after walking a certain distance away. I tried using the script to change the music in a certain zone, but every time I walk in that zone it makes the music start over."
Use an entity, and set it's ALWAYS ACTIVE to YES so the distance won't matter.
Edit the script to only play the music once by going to another state, or use a variable as a flag to note when it has changed.
If the variable=0 then no change and the music action wouldn't happen.
If the variable=1 then the music was playing the other song so we would call the music action.
You would also change the variable back each time the music action happened so the next zone would know to change it again when the player enters.
So, the other zone would act the opposite...
If the variable=1 then no change and the music action wouldn't happen.
If the variable=0 then the music was playing the other song so we would call the music action.
That way, each zone would only change the music if it were playing the other song, which would prevent the reset if that song was already playing.