So, the VM.pk3 has multiple QVMs in it. Each QVM has a specific data tag to it so the the tremded can choose which one that it wants. The tremded would need too be modified to be able to switch between different PK3s. Such uses of this is so that obscure mods and game modes such as tremball can be on a server without having the source code mashed together into some big mess, or having the source code at all!
The .qvm (as well the dynamic library versions of the QVMs when enabled) are located in the vm/
folder, we could add another folder inside that perhaps called mods/
which could have any number of customized named folders (representing “mod names”) which would contain one or more QVM files that would override the corresponding QVM(s) in the top of the vm/
folder when the mod name is specified in a new tremded cvar. This would allow for multiple qvm options to be included in the same pk3 file, or optionally in additional override pk3 files.
Yikes. I’ve seen other mods make a copy of the cgame and game directories, ui and q3_ui can also be copied for adding settings. i.e.
src >
cgame
game
ui
q3_ui
tremball >
cgame
game
ui
q3_ui
The rest is just Makefile magic to piece it all back together. You would still have to switch mods using +set fs_game tremball, but the code separation would be nice.