Mod file directory redirector

The readme file included in the mod says to rename the old dll file to "steam_old.api" rather than "steam_old.dll". Consider tweaking that if you release another version. :)
Thanks for living up to your user tag Corrodias. I've updated the first post with the new read me. Only the read me has changed so no need to re-download if you have downloaded version 1 previously.

I'm thinking of adding some new features:

I will definitely be adding vpp_pc file support.
Is anyone interested on the utility creating a log of file accesses when asked to?
Do you want me to add save file redirection, so you can have profiles? (Although a redirected save file won't save on the Steam cloud).
Do you want plug-in dll support like obse?
 
I'm with Corrodias, we need to extend this to a proper dll to extend functions. Something to say load our own lua on demand... or.. something I thought of that this might be the gateway into... loading our own files on demand. Say allowing the engine to extend its hardcoded loading to go look in assumed stuff first, then if it can't find it tries loose files. Then if not, I guess have a crash handler because we just went belly-up. Adding our own custom xtbls extended off of the others, adding our own custom models/sounds/textures/etc without having to replace...

Wow. Well, I can dream big. But this alone is a big step. Now I can finally sort out stuff. I take it it only works on the one directory provided, and doesn't recursive parse? Meaning you don't have to have any checking for filename collisions across multiple directories I guess...
 
I still haven't figured it out yet - do we need to set it up through Steam first?

I think dll support would be nice. An ideal situation for us modders would be having a dll file that doesn't need to be set up through steam - that way we will be able to include it in our mod releases.

Basically rename steam_api.dll to steam_old.dll, copy my new steam_api.dll file over.

Right click on Saints Row IV in your library view and select properties. In the general tab click on SET LAUNCH OPTIONS...

In the box type -loose: followed by the directory you are placing your mod files in and make sure there is no space between the colon and the directory name.

If you don't type anything in the launch options box it won't do anything. To check that it is working it will create a file called log.txt in the original SRIV directory.

I may add .ini file support so you can easily switch between a list of directories.

Works like a charm. Thank you for this...

No problem.

I'm with Corrodias, we need to extend this to a proper dll to extend functions. Something to say load our own lua on demand... or.. something I thought of that this might be the gateway into... loading our own files on demand. Say allowing the engine to extend its hardcoded loading to go look in assumed stuff first, then if it can't find it tries loose files. Then if not, I guess have a crash handler because we just went belly-up. Adding our own custom xtbls extended off of the others, adding our own custom models/sounds/textures/etc without having to replace...

Wow. Well, I can dream big. But this alone is a big step. Now I can finally sort out stuff. I take it it only works on the one directory provided, and doesn't recursive parse? Meaning you don't have to have any checking for filename collisions across multiple directories I guess...

:eek: What have I started. :confused:

Yes it only works on the one directory at the moment. Once you start using multiple directories making sure you are generating correct asm_pc files will probably be a nightmare. At the moment I'm working on the principle of keep it simple stupid. I can start adding complexity later.
 
I'm with Corrodias, we need to extend this to a proper dll to extend functions. Something to say load our own lua on demand... or.. something I thought of that this might be the gateway into... loading our own files on demand. Say allowing the engine to extend its hardcoded loading to go look in assumed stuff first, then if it can't find it tries loose files. Then if not, I guess have a crash handler because we just went belly-up. Adding our own custom xtbls extended off of the others, adding our own custom models/sounds/textures/etc without having to replace...

Wow. Well, I can dream big. But this alone is a big step. Now I can finally sort out stuff. I take it it only works on the one directory provided, and doesn't recursive parse? Meaning you don't have to have any checking for filename collisions across multiple directories I guess...
We need to be careful that we don't trip over CEG with that though. I did some experiments with a few things like this using SR2...

Basically rename steam_api.dll to steam_old.dll, copy my new steam_api.dll file over.
Yes it only works on the one directory at the moment. Once you start using multiple directories making sure you are generating correct asm_pc files will probably be a nightmare. At the moment I'm working on the principle of keep it simple stupid. I can start adding complexity later.
I'm perfectly happy to extend Stream2Update for this :)
 
We need to be careful that we don't trip over CEG with that though. I did some experiments with a few things like this using SR2...

To be honest I was surprised it worked. I'm using a pretty basic hacking technique and it's probably at the limits of my "hacking" capabilities. The only reason I tried it was that I had drink half a bottle of Jack Daniels Tennessee Honey and I thought what the hell I'll give it a try. The scary thing is I seem to code better when I'm drunk. :confused:

By the way if you need to swap between several different directories you can create a custom desktop short-cut for each one through Steam.

From your library right click Saints Row IV select Create Desktop Shortcut. On your desktop find the short-cut, right click and select properties. In the URL box you'll have steam://rungameid/206420. Add to the end of it //-loose: and then the redirection directory. i.e. steam://rungameid/206420//-loose:test. Then rename the short-cut. Start SRIV by double clicking the short-cut.

You can have as many short-cuts as you like. Just remember to leave SET LAUNCH OPTIONS... box blank if you do this.
 
To be honest I was surprised it worked. I'm using a pretty basic hacking technique and it's probably at the limits of my "hacking" capabilities. The only reason I tried it was that I had drink half a bottle of Jack Daniels Tennessee Honey and I thought what the hell I'll give it a try. The scary thing is I seem to code better when I'm drunk. :confused:

By the way if you need to swap between several different directories you can create a custom desktop short-cut for each one through Steam.

From your library right click Saints Row IV select Create Desktop Shortcut. On your desktop find the short-cut, right click and select properties. In the URL box you'll have steam://rungameid/206420. Add to the end of it //-loose: and then the redirection directory. i.e. steam://rungameid/206420//-loose:test. Then rename the short-cut. Start SRIV by double clicking the short-cut.

You can have as many short-cuts as you like. Just remember to leave SET LAUNCH OPTIONS... box blank if you do this.
Yeah, you used basically the method I used when I was experimenting with doing this with SR2 as part of my newer Powertools (if I ever finish them).

Edit: except I have a tendency to use Microsoft Detours to achieve the actual function redirection.
 
Quick question. Is there any way you could make this work for The Third? I know most of you would rather play Iv, but as I currently do not have IV and only own TT, it would be great if this could work with TT as well.

All you mention in the OP is SRIV, so if it DOES work with TT, could you update the post and readme accordingly?

I did skim through the posts, but I didn't see if someone asked this already, so I apologize if it has already been asked.
 
Back
Top