Silgrad Tower from the Ashes

Full Version: Dependancies on the main alpha
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
We've had a few ups and downs along the way during the brief history our city has existed. In the beginning, before the game was released, there were fears in the general Elder Scrolls community that we would never be able to use custom models in our mods. If that had turned out to be true, we'd been nipped in the bud... but luckily we found out about the Civ4 NIF exporter, and lately NifSkope has come along and holds great promise.

Then came the problem of working together, as there was no way to merge plugins back then. We tried a little system of making plugins dependant on the alpha .esp, thinking that the alpha and plugins could be loaded together (like it was possible to do with TES3 mods). The isolationist problem put a stop to that system, since a plugin can't affect the same space as another plugin, so if you put a barrel in the exterior city in such a plugin it simply wouldn't turn up in the game.

Then came first TesSnip and then later on TES4 Plugin Utility, both of which can merge .esp's although TES4 P. U. had the added benefit of auto-renaming conflicting form ID's. If two form ID's conflict, only one of the items will turn up in-game. That allowed us to bring in several finished claims, and the current version of the main alpha has four contributions from modders other than myself.

That worked out pretty well, although it still wasn't possible for a plugin to be dependant on the main alpha. It's wanted to be able to have plugins dependant on it so that modders can interact with stuff that's already been added - like setting up AI behavior in the exterior town, for instance making an NPC stroll around town during the afternoons. So I got to thinking that if I made the main alpha an .esm file instead of an .esp then it should be possible for plugins to be dependant on it without the isolationist problem causing trouble. (because a plugin dependant on a plugin didn't work, since stuff wouldn't show up in the town exterior, it wouldn't have been possible for a modder to bugtest stuff s/he set up)

[blockquote]And I think it's safe to say that that part of the equation worked out. Just like a mod like "Oblivion Cats" can put felines in the towns of Cyrodiil, so could a plugin put stuff in the locations of the main alpha. And all was well... or so I thought.[/blockquote]

The problem was instead in the merging process. It turned out that a modder that affected anything related to the main alpha caused their plugin to save a copy of the ID of the affected entry. So if you put a vase in the town exterior, your plugin would keep a record of the town exterior worldspace itself. That shouldn't cause any problems while playing, since obviously mods like "Oblivion Cats" work without a hitch. But because there *are* two records, TES4 Plugin Utility will see that as a conflict and refuse to merge it. :bash:

The glimmer of hope I can see lies in TesSnip. TesSnip's drawback of not renaming form ID's or caring about conflicts could actually be a strength in this case, because it could merge plugins that really don't conflict, but which TES4 P.U. think they do. Conflicting form id's are still a problem, so it would be a shaky alternative at best, and it just feels like keeping plugins un-dependant on the main alpha in the future is the only safe and reliable way to go.

And that's ok, for now. It limits the amount of interaction a modder can set up with the outside world, but I don't mind setting that up on my end if I can. It won't give access to all the models that's been brought in, but perhaps one can make do without them for now. A plugin doesn't really have to be dependant on the main alpha right now.

It might have to soon, though... because I've almost finished setting up the first Redoran neighbourhood in Soluthis, and will soon get on with bringing in interior house models for the exteriors, and then we're pretty much set to open up Redoran claims. But how do you mod a Redoran home if you can't make your plugin dependant on the main alpha, and thus don't have access to the interior model? That, my friends, is the meat of my conundrum.

If you have any ideas on solutions, please, share them! I have an idea myself. Do you guys think it could work?

[title]"Base Plugins"[/title]
The "Base Plugins" would be a collection of .esp files. Each .esp contains just one interior house model list entry, and there would be one base .esp for each interior model. I'd link to the appropriate base .esp in each open claim I posted.

The base plugins wouldn't contain the models themselves; rather, those would ship with the main alpha package. They'd just have the list entry for the model in the construction set, so if the modder has extracted the main alpha package and load up the base .esp, they can drag-n-drop that list entry into an interior cell to get the interior model to show up. The IDs for the list entries would differ from those in the main alpha, but the location of the models would be the same.

Then, when time comes to merge their interior to the main alpha, I'd end up with two list entries for the same interior house model. Perfect - no conflicts reported by TES4 P.U. Then I just select their interior house model, go to "Edit > Search & Replace...", and switch it out with the standard list entry ID. Now, the interior model list entry from the merged plugin is unused, so I just delete it, freeing up that slot for the next plugin that uses the same base plugin.

A modder still wouldn't be able to affect anything outside their hut though, which is a pity. But an intrepid modder can expand the 'base plugin' idea and create new list entry ID's and hook them up to models from the main alpha package, and so would get to use as many custom models as he liked. Within reason! Big Grin Imagine a hundred plugins that each had two hundred list ID's that needed changing... if I spent a minute switching each ID, I'd have to keep at it for close to fourteen days straight, no sleep. Hehe. But a dozen of them, sure, that'd work.

Let the ideas flow! Big Grin


Kudos to sandor for his
great help in these tests.
Didn't you fix the problem by making the file an master file? You said that thas was the problem since Oblivion was a master file and they could make the cat mod.

I have an idea for models though. You just release a pack with the models and no esp. Than modders can make interiors with the models. and release them. I'm not that knowledgable on this so I don't know if that could work but we could test it.

EDIT: oops I reread and learned why there is the problem. WHy don't you just use tesnip if the other thing complains. EDIT 2: I reread again and realized why you can't use tesnip.
Hi Razorwing,

I just now sent the reply, you are waiting for, by PM.

Regs.
I got it, thanks sandor. Smile

black[/hr]

Due to the dependancy problems I would humbly like to ask the modders on our team not to add any additional content in their plugins that are dependant on the main alpha*. If you've already added content that is dependant on the main alpha, please don't worry - sandor and I will do our best to solve the situation without causing you guys and additional work or problems - just please don't add more. =)

* Such as teleportation to the town exterior; AI behaviour outside your cell; dialogue to topics added by the alpha; drag-n-dropping items or list entries from the main alpha.
I've talked a bit with ScripterRon, the creator of the TES4 Plugin Utility, in his thread on ESF.

Quote:Originally posted by Razorwing -here-
Cheers Ron!

Might I ask what your opinion is on the problem we're experiencing over at Silgrad Tower?
Link to the discussion: Dependancies on the main alpha

If a modder writes a plugin which for instance adds a greeting to a quest topic in the main .esp, the TES4 Plugin Utility seems to think there is a conflict when I try to merge them together, and wants to rename the topic stored in the plugin file. The same thing seems to happen if that plugin for instance drops a planter in the town exterior; TES4 P.U. seems to think there is a worldspace in the plugin that's conflicting with the one in the main .esp.

He replied,

Quote:Originally posted by ScripterRon -here-
If you add an info to an existing quest topic, CS puts two records into your plugin: the quest info preceding your topic and then your new info. So, yes, there is a conflict since your plugin now modifies an existing info, even though you made no changes to it. Version 6 of the plugin utility has the capability to remove conflicts, but this works only if the plugin item is identical to the master item. Are you using Version 6 of the utility?

The same is true for worldspace additions since the CS duplicates the WRLD or CELL record. I put in code to handle the WRLD record since you need to preserve it otherwise the CS doesn't properly place the items into the world. I haven't done any work on interior cells, though, so there could be a similar problem in that area. Is this problem occurring in an exterior or interior cell?
[...]
I read your topic over at Silgrad Tower. Having a master file for your world should work and then you merge plugins that sit on top of your master file. I've merged plugins that place items into Tamriel with no problems. It could be that my program has a problem with multiple master files. In theory, it should handle this but I've never had more than one master file up to now Smile

Make sure you have Version 6 of the utility. This will allow you to merge without getting conflict messages (unless you want to see them and then do something about the conflicts).

And finally, I replied:

Quote:Originally posted by Razorwing -here-
ScripterRon: Thanks for the info! I think what happened was that I started out using Version 5 of your utility, which reported the conflicts I mentioned in the other thread and refused to merge them. The other day, when I was going to merge another interior plugin to the city, I first checked your site and saw there was a new version, so now I'm using Version 6.

I spotted the new checkbox options - "Delete Conflicts" and "Delete Duplicate Objects". I merged the latest interiors using those two boxes checked, and I didn't get any errors, but then again I think these plugins didn't have any conflicts so I don't know if the success was indicative. Do I understand you correctly that if I have these options ticked, then the plugins would be merged and the conflicting ID's be melded into one? I.e. if the plugin adds a response for a topic from the main file it's dependant on, then the response from the plugin will in effect be moved to the topic of the main file?

I have another question too. Smile

If we release an .esm file with a version of the city, like we temporarily did some time ago before the problems occured, will it be possible for a modder to make a plugin that is dependant on that .esm file, and then will it be possible to merge that plugin to the .esp file of the city I work with locally?

Because I figured that if that is possible then it would really open up the door for us to mod plugins that are fully integrated into the project. A modder could mod a house and an NPC as they can now, but they could go beyond that, and make their NPC frequent a bar in the city or go to work in another building that have already been merged to the main file, go to the cathedral on sundays, and all sorts of things like that.


Edit 1: Well, merging House #04 (Screaming Helm) and #24 (Vaniken R'i's House) worked without a hitch. I hooked them up and playtested them and everything's fine. Thanks to sandor for putting so much work into primarily House #04 but also House #24, and to X23 and shunoshi for modding them Big Grin


Edit 2: The latest developments in the ESF thread is that... no, we can't make plugins dependant on a main Reich Parkeep .esm (or .esp for that matter). So the impressive work sandor put into sorting out dependancies from the plugins that had been modded as dependant - my fault - is definitely not wasted, on the contrary, it's crucial.

The good news is that ScripterRon might add a "merge-to-master" functionality to a future version of his TES4 Plugin Utility. This is pretty much the same functionality which Bethesda sadly hacked out of the CS, and if and when TES4 P.U. has that functionality the problems should be over! Big Grin Then, finally, plugins can be dependant, and thus grab models that has been imported and set up in the main alpha and just drop them in the world window, or set up AI behaviour in the exterior city, and so on. It's looking bright, folks! =)
Quote:Originally posted by Razorwing
The good news is that ScripterRon might add a "merge-to-master" functionality to a future version of his TES4 Plugin Utility.

That would be great !


I am happy, the merge of rpc04 and rpc24 succeeded, without any problem.
Some hopeful news about the Reich Parkeep Alfa dependancies (after 6 hours of testing and retesting).


I used the TES 4 Plugin Utitlty 8.1 by Ronald W. Hoffman (aka ScripterRon).

I converted the ReichParkeep_Alpha05.6 to a master file.

I used the rpc08 which is ready for merging. I made the file completely depending on the ReichParkeep_Alpha05.6.esm.

Meaning adding doormarkers (linked it to the Reich Parkeep exterior) and placing all the dialogue in the StRPGeneral quest and the Reich Parkeep topics in the StRWRP topic.


Tested the file. All worked perfect.


The next phase.

I merged the file to the master. No errors.

Converted the ReichParkeep_Alpha05.6.esm to ReichParkeep_Alpha05.6.esp (plugin(*)). This to make the file playable
(why, this would be to technical (long story), to post here).

Tomorrow I'll make a new interior with an NPC wandering in town and some other AI. Let's see if I can reproduce the same result.

If so, our team could link their interiors to the exteriors (quests) etc.
This would mean an esm for modding and a esp file for playing (so we would need two sets of files). The esm would be for internal release, only.

Still, a lot of testing is required, and when Razorwing is back, let's see how it develops.

EDIT
I tested the (*) ReichParkeep_Alpha05.6.esp (plugin) file and the Rpc08 (interior) was perfectly merged.
i'm also in kvatch rebuild and they use that technique to, it works fine for us.
Would it work to create a master that holds all the unique ids, so you can all reference the same leveled lists, creatures, unique content, ect?
Thanks dutchman for your reply and info Smile.


--------------------------------------------------[/HR]

Siegfried.

I started out testing the statics, AI and dialogue. Later on, I'll add more stuff like leveled objects etc.


Today more :yes:.
Pages: 1 2 3