How to quickly detect static resources used from a master fi

Post » Wed May 02, 2012 11:19 am

[EDIT] My question posted here below turned out to be irrelevant: I was trying to repackage specific SI resources into my own bsa, but I wasn't aware that this would be illegal (so thanks for the hints!).
However, if anyone wants to check or repackage his own or free (i.e. legal) resources, you can use TES4Edit and/or http://www.tesnexus.com/downloads/file.php?id=8489 (please note especially the post from shadeMe below).


[Original Post]
I am trying to get rid of the SI dependency of my mod, and could need some basic help.

Is there a quick way to identify, which static resources of a mod derive from a certain master file's bsa archive?
E.g., is there some functionality in CS, CS Extender, Tes4Gecko, Tes4Edit or alike?

To put my problem in other words:
Currently, my mod declares DLCShiveringIsles.esp as a master, but this is probably not needed: I am only using several static resources (meshes, textures, sounds) from SI's bsa archives. This means that the current SI master file dependency just works as a "dummy" to ensure that the SI bsa files are around, whereas the esp itself is not used at all.

Now I'd like to identify those resources, copy them over to my own mod's bsa, so that I can then remove the master file flag and allow users to play my mod without SI.
The only problem is that those "few" SI resources are somewhat scattered all across my mod (an example of bad design, I admit it), so manual identification might become very tedious!

Any good ideas? :)
User avatar
Silvia Gil
 
Posts: 3433
Joined: Mon Nov 20, 2006 9:31 pm

Post » Wed May 02, 2012 8:16 pm

If you have the GOTY version of the game, Shivering Isles is already built into Oblivion.esm. All editor ids start with either SE or XP to identify when they're from SI. So, don't use DLCShiveringIsles.esp as master file and check if DLCShiveringIsles.esp is loaded and if so call a player function to avoid your mod crashing for people without it. Example:

set SEloaded to ( IsModLoaded "DLCShiveringIsles.esp" )if SEloadedcall yoursefunctionendif
User avatar
Margarita Diaz
 
Posts: 3511
Joined: Sun Aug 12, 2007 2:01 pm

Post » Wed May 02, 2012 5:55 pm

If you have the GOTY version of the game, Shivering Isles is already built into Oblivion.esm. All editor ids start with either SE or XP to identify when they're from SI. So, don't use DLCShiveringIsles.esp as master file and check if DLCShiveringIsles.esp is loaded and if so call a player function to avoid your mod crashing for people without it. Example:

set SEloaded to ( IsModLoaded "DLCShiveringIsles.esp" )if SEloadedcall yoursefunctionendif
Thanks MatH,
yes, I've got the GOTY edition, and I wasn't aware that the esms are already merged, so thanks for that hint.
But I am not sure whether this really covers my problem: It shouldn't matter for my mod whether people are using Oblivion.esm[SI], the regular Oblivion.esm plus Shivering Isles esm, or none of the SI files at all. My main problem isn't related to esm files or to scripts, but only to static resources (meshes and textures, and the paths pointing to them). I need to detect which static resources from SI are used by my mod, so that I can copy them to my own mod's bsa.

Or to be more precise, just an example:
I have placed an Elytra in my mod by copying one of the SI Elytra forms inside CS and giving it a new FormID. This required to have DLCShiveringIsles.esp present only during design time (to be able to actually see the Elytra inside CS), but afterwards, I won't need the SI esp anymore (because I've changed the FormID). But my new form still uses the static resources from the SI bsa archive. So I'll have to copy these files (meshes, textures) into a path within my own mod archive, and then adjust the form's paths accordingly.
This example is trivial, however, because I know that I have used that specific Elytra, and I know that it derives from SI, so it is easy for me to deal with that special case.
But what about the various other static resources (e.g. ruin tilesets or whatever) that I've been reusing from SI without knowing? I need to detect all of them. As I've copied/renamed the FormIDs, I cannot determine them by some "SI" or "XP" prefix anymore. Instead, I need some efficient way to "reengineer" them so that they become a native part of my mod.

In the end, I am afraid I might have no other chance than to search for them manually. But that would be horrible.
So I need some fancy function that scans my mod and produces something like a list of used resources, grouped by the bsa they're read from. Well, maybe I am a bit too optimistic in that vision, but I have some hope that tools like Tes4Gecko, Tes4Edit or the extended CS might provide something ;)

Hope that's clearer now. Maybe I am thinking in a completely wrong way, however...
User avatar
Alyce Argabright
 
Posts: 3403
Joined: Mon Aug 20, 2007 8:11 pm

Post » Wed May 02, 2012 9:28 pm

Use TES4Files to extract resources that your plugin uses.
User avatar
Susan Elizabeth
 
Posts: 3420
Joined: Sat Oct 21, 2006 4:35 pm

Post » Wed May 02, 2012 9:07 pm

Use TES4Files to extract resources that your plugin uses.
Is "TES4Files" synonymous to "TES4Edit", or are we talking about different tools here?
User avatar
{Richies Mommy}
 
Posts: 3398
Joined: Wed Jun 21, 2006 2:40 pm

Post » Wed May 02, 2012 10:55 am

Is "TES4Files" synonymous to "TES4Edit", or are we talking about different tools here?
Different tools - http://www.tesnexus.com/downloads/file.php?id=8489.
User avatar
Kayleigh Williams
 
Posts: 3397
Joined: Wed Aug 23, 2006 10:41 am

Post » Wed May 02, 2012 4:52 pm

Actually there might be another problem here. Since you are using SI content, your mod should require SI, even if it is simple to remove the dependancy. Take note that redistributing resources originally implemented into SI, so that even people who doesn't have SI can actually see those resources in their game is a no no. Some time ago there was a thread concerning this topic, and as far as I remember there was a statement that you shouldn't use resources from DLC's if your mod doesn't require them. That's why Fearsome Magicka is dependant to SI, though it would be relatively easy for me to remove that dependancy.


brucevayne
User avatar
Jason King
 
Posts: 3382
Joined: Tue Jul 17, 2007 2:05 pm

Post » Wed May 02, 2012 6:41 pm

DLCShiveringIsles.esp does nothing apart from load the required resources ingame. Due to the way ESM files work (they can't edit any existing worldspace), Bethesda merged the SI esm to a new, SI enabled Oblivion.esm. Like mentioned TES4Files can help.

However, bear in mind taking resources from the SI BSAs and packing them in your mod is illegal.
User avatar
jeremey wisor
 
Posts: 3458
Joined: Mon Oct 22, 2007 5:30 pm

Post » Wed May 02, 2012 1:08 pm

Actually there might be another problem here. Since you are using SI content, your mor should require SI, even if it is simple to remove the dependancy. Take note that redistributing resources originally implemented into SI, so that even people who doesn't have SI can actually see those resources in their game is a no no. Some time ago there was a thread concerning this topic, and as far as I remember there was a statement that you shouldn't use resources from DLC's if your mod doesn't require them. That's why Fearsome Magicka is dependant to SI, though it would be relatively easy for me to remove that dependancy.
brucevayne
Ok, I think I understand:
It means that extracting and "repackaging" those resources from the SI files would imply that they're made "accessible" to players that don't own the SI extension, and that would be some kind of illegal from Bethesda's point of view. Right?
If so, it's a pity :confused: , but I can see the point.
It means for me that I either have to stick to the SI dependency, or replace all the relevant resources by vanilla or custom-made files.
User avatar
Roy Harris
 
Posts: 3463
Joined: Tue Sep 11, 2007 8:58 pm

Post » Wed May 02, 2012 7:56 am

Ok, I think I understand:
It means that extracting and "repackaging" those resources from the SI files would imply that they're made "accessible" to players that don't own the SI extension, and that would be some kind of illegal from Bethesda's point of view. Right?
If so, it's a pity :confused: , but I can see the point.
It means for me that I either have to stick to the SI dependency, or replace all the relevant resources by vanilla or custom-made files.
That's correct. You can include objects that depend on SI within your mod because all an object in the CS is is essentially a pointer to a model file. However you can't include the actual models, textures or sounds, as that is illegally distributing SI content for people who don't own it.

If a user without SI tries to run a mod with SI content in it, the game will either crash or you'll get a bunch of missing meshes and stuff. Replacing the stuff with vanilla resources might be tricky however.
User avatar
Soku Nyorah
 
Posts: 3413
Joined: Tue Oct 17, 2006 1:25 pm

Post » Wed May 02, 2012 12:56 pm

Well, thanks to all of you for the help! I've edited my original post above to clarify a bit.
@shadeMe: Special thanks for the TES4Files hint. I'd never paid attention to it before. Though it doesn't solve my original problem, it's definitely a very helpful tool!
User avatar
Everardo Montano
 
Posts: 3373
Joined: Mon Dec 03, 2007 4:23 am


Return to IV - Oblivion