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
Installation:
Extract RerouteAudio.exe from the downloaded extension into the project directory, navigate to directory. Optionally copy the executable to an easy-to-find location.
Simple use:
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.
System requirements:
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.
Supported platforms:
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).
Limitations:
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.
End User Licence Agreement (EULA).