RerouteAudio allows to reduce clutter in compiled GameMaker: Studio / GameMaker Studio 2 games by modifying the games to load generated audio files from sub-directories. The process is completely automatic - no additional setup is required
Extract RerouteAudio.exe from the downloaded extension into the project directory, navigate to directory. Optionally copy the executable to an easy-to-find location.
Drag a data.win (VM) or an .exe file (YYC) onto RerouteAudio executable.
Audio files will be organized by following patterns:
Advanced use (via command prompt):
RerouteAudio <path to .win/.exe> "rx1" "rp1" "rx2" "rp2" ...
rx# are regular expressions (global match) to be ran on filenames.
You can use something like https://regexr.com to experiment with them.
rp# are replacement-values. Insert $1, $2, etc. for matched results.
For example, you could do
RerouteAudio D:/test/data.win "^(snd)_(.+)$" "$1/$2"
to move any "snd_some.ogg" to "snd/some.ogg".
Add --preview parameter to preview the actions without changing anything.
RerouteAudio is a ~50KB, .NET 2.0 application. It should run on anything that runs GameMaker and/or GameMaker games themselves. Non-.NET binaries can be compiled upon request.
GameMaker: Studio only dumps all audio files straight into the executable directory on Windows, therefore RerouteAudio works with that (both normal and YYC exports).
GameMaker Studio 2 places [most?] audio assets into a "snd" directory automatically, but RerouteAudio can still be used to organize them better (e.g. split them into "sounds" and "music" directories).
For compatibility reasons, renamed audio paths may not be longer than original paths. Fortunately, however, extensions on audio files are optional, therefore you always have 4 "free" symbols from that. Otherwise, original audio paths depend on resource names, so renaming the sounds in GM will affect how they are named on export.