How to quickly detect static resources used from a master fi

Post » Tue Oct 11, 2011 5:56 am

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
Natasha Callaghan
 
Posts: 3523
Joined: Sat Dec 09, 2006 7:44 pm

Post » Tue Oct 11, 2011 2:44 am

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
LuBiE LoU
 
Posts: 3391
Joined: Sun Jun 18, 2006 4:43 pm

Post » Tue Oct 11, 2011 2:22 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
Kelsey Anna Farley
 
Posts: 3433
Joined: Fri Jun 30, 2006 10:33 pm

Post » Tue Oct 11, 2011 12:52 am

Use TES4Files to extract resources that your plugin uses.
User avatar
Stefanny Cardona
 
Posts: 3352
Joined: Tue Dec 19, 2006 8:08 pm

Post » Tue Oct 11, 2011 4:45 am

Use TES4Files to extract resources that your plugin uses.

Is "TES4Files" synonymous to "TES4Edit", or are we talking about different tools here?
User avatar
CORY
 
Posts: 3335
Joined: Sat Oct 13, 2007 9:54 pm

Post » Tue Oct 11, 2011 1:26 pm

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
NAtIVe GOddess
 
Posts: 3348
Joined: Tue Aug 15, 2006 6:46 am

Post » Tue Oct 11, 2011 10:58 am

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
User avatar
C.L.U.T.C.H
 
Posts: 3385
Joined: Tue Aug 14, 2007 6:23 pm

Post » Tue Oct 11, 2011 4:13 am

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
Brandon Bernardi
 
Posts: 3481
Joined: Tue Sep 25, 2007 9:06 am

Post » Tue Oct 11, 2011 4:57 am

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
..xX Vin Xx..
 
Posts: 3531
Joined: Sun Jun 18, 2006 6:33 pm

Post » Tue Oct 11, 2011 6:28 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
Maria Leon
 
Posts: 3413
Joined: Tue Aug 14, 2007 12:39 am


Return to IV - Oblivion