Understanding the new way of handling scripts

Post » Mon Jun 18, 2012 7:30 am

This hit me as a rather unpleasant surprise - Bethesda's changed the way scripts work!
They are now resources to be stored in bsa files rather than in esm/esp files.

And when you make changes in the Creation Kit, it actually changes the ORIGINALS, instead of saving the changes to your esp ..

So, what is the best practice for dealing with this new system?



The couple of threads on this topic suggest making new scripts where possible.
But what if I need to modify an existing script, say because I am modifying an existing quest?

Should I now - every time I am about to make a slight change to a quest - quickly stop, find the file, back it up. Then make the change, compile it?

And this is where I get really lost ... I am uploading my mods to both the nexus and steam workshop.
I also want to be able to work on several mods at the same time.
If I want to work on several mods at the same time that change the same script, I have to swap out the correct version of the file each time????

And as for uploading mods - for the nexus, need to include an archive, say 7z, that contains an esp file and either the pex file in the right subdirectory with my script, or a bsa file that contains it? Which also means the mod cannot simply be deactivated via the normal launcher - either the player has to delete the bsa or pex file or they have to be using Nexus Mod Manager which will do it for them? (If the script is overriding an existing one).

When I go to upload to steam from the Creation Kit, it tries to add the source file to the archive.
Shouldn't it be adding the compiled one???

Finally, does the Creation Kit create a *.bsa file that I can just upload to the nexus immediately after?

Thank you if someone can help me!
User avatar
Cat
 
Posts: 3451
Joined: Mon Dec 18, 2006 5:10 am

Post » Mon Jun 18, 2012 1:20 pm

It all seems rather clunky doesn't it. The fact that there is no way to view, in one place, at all times, all the comprehensive changes you have made in a plugin astounds me .

I have read some things about scripts contained in .bsa not working for others because of how scripts are called or read (sorry i am fuzzy on the details) so you may want to look into that. There are threads on it.
User avatar
Chica Cheve
 
Posts: 3411
Joined: Sun Aug 27, 2006 10:42 pm

Post » Mon Jun 18, 2012 1:50 pm

This hit me as a rather unpleasant surprise - Bethesda's changed the way scripts work!
They are now resources to be stored in bsa files rather than in esm/esp files.

... etc.. Snip

That entire post is how I see it too. I can't seem to comprehend this and have no idea how to even put into words what I'd want to search for.

-Mush-
User avatar
Stephanie Nieves
 
Posts: 3407
Joined: Mon Apr 02, 2007 10:52 pm

Post » Mon Jun 18, 2012 8:22 am

The fact that there is no way to view, in one place, at all times, all the comprehensive changes you have made in a plugin astounds me

Actually, although I had to look it up on the Construction Set wiki, there is:
The File -> Data... menu, where you pick which plugin to load, has a "details" button that will list, albeit in a rather unfriendly format, the entire list of changes recorded in your plugin.
http://cs.elderscrolls.com/index.php/Mod_Cleaning_Tutorial


And I did encounter the bsa problem - the script in a bsa doesn't even work for me! It only works when the compiled script is placed into the Scripts folder.
User avatar
Marine Arrègle
 
Posts: 3423
Joined: Sat Mar 24, 2007 5:19 am

Post » Mon Jun 18, 2012 11:02 am

Simply do not edit default scripts.
Add a second one. Or remove the original completely and add a copy
User avatar
Dalton Greynolds
 
Posts: 3476
Joined: Thu Oct 18, 2007 5:12 pm

Post » Mon Jun 18, 2012 9:18 am

Besides being a clunky tool as mentioned, CK is not exactly a productive tool either.
What would have been a small change becomes a major change.

For example:
Lets say I want to change all MapMarkers in the game. I would expect Papyrus to have a function like: Function ObjectReference[] getReferencesOfType(Type type)
I would then easily be able to fetch all mapmarkers (by supplying a "mapmarker"-type) and perform my operation on them.
But no, the only apparent way to do this is to search for "MapMarker" in the object window, and then getting "Use Info" on it. I'm then presented with a huge list of references which I'm welcome to make my change to one at the time... one by one.
Think I'm gonna pass until this papyrus "language" gets serious. It's extremely limited.
User avatar
Joie Perez
 
Posts: 3410
Joined: Fri Sep 15, 2006 3:25 pm

Post » Mon Jun 18, 2012 3:20 pm

Actually, although I had to look it up on the Construction Set wiki, there is:
The File -> Data... menu, where you pick which plugin to load, has a "details" button that will list, albeit in a rather unfriendly format, the entire list of changes recorded in your plugin.

Yes, I meant to say besides that "tool" - which really can't be left open because it's a dialogue window, only has the functional ability to delete a record, and i suspect only displays saved changes. I can't really even figure out why it's there.
User avatar
He got the
 
Posts: 3399
Joined: Sat Nov 17, 2007 12:19 pm

Post » Mon Jun 18, 2012 9:39 am

Besides being a clunky tool as mentioned, CK is not exactly a productive tool either.
What would have been a small change becomes a major change.

For example:
Lets say I want to change all MapMarkers in the game. I would expect Papyrus to have a function like: Function ObjectReference[] getReferencesOfType(Type type)
I would then easily be able to fetch all mapmarkers (by supplying a "mapmarker"-type) and perform my operation on them.
But no, the only apparent way to do this is to search for "MapMarker" in the object window, and then getting "Use Info" on it. I'm then presented with a huge list of references which I'm welcome to make my change to one at the time... one by one.
Think I'm gonna pass until this papyrus "language" gets serious. It's extremely limited.
i'm not all sure if i'm getting right what you want to do there, but why not create a form list with all the map markers in it and script that?
User avatar
CHangohh BOyy
 
Posts: 3462
Joined: Mon Aug 20, 2007 12:12 pm

Post » Mon Jun 18, 2012 2:06 am

why not create a form list with all the map markers in it ?

Could that be a general workspace method ? Place all the forms that you want to edit in a formlist so that then you just need to call up the form list in the object editor to see and access all your work?

I dont have access to the ck right now to check, but it really bugs me there is no way to see all your changes (except for the useless File>Data>Details)
User avatar
GabiiE Liiziiouz
 
Posts: 3360
Joined: Mon Jan 22, 2007 3:20 am

Post » Mon Jun 18, 2012 12:01 am

Simply do not edit default scripts.
Add a second one. Or remove the original completely and add a copy
Yes, that seems to be best.
But how do I do it when modifying an existing script?
I can make a new one, and change the references to it to point to the new one.

But I am not sure how to do that with a quest. Can i automatically transfer all the aliases and properties to the new script and everything?
EDIT: Trying it out now - and I can't see how to do it. Also, if I try to delete the old script, it warns me that I will lose all my fragments. I would need it to somehow recognise that all the fragments are present in the new script too.


And while I am on the topic, can I somehow:
1. Remove the render window
2. Rename a file, while leaving it as the same "mod" on the Steam Workshop?
User avatar
daniel royle
 
Posts: 3439
Joined: Thu May 17, 2007 8:44 am

Post » Mon Jun 18, 2012 11:41 am

Yes, that seems to be best.
But how do I do it when modifying an existing script?
I can make a new one, and change the references to it to point to the new one.

But I am not sure how to do that with a quest. Can i automatically transfer all the aliases and properties to the new script and everything?
EDIT: Trying it out now - and I can't see how to do it. Also, if I try to delete the old script, it warns me that I will lose all my fragments. I would need it to somehow recognise that all the fragments are present in the new script too.


And while I am on the topic, can I somehow:
1. Remove the render window
2. Rename a file, while leaving it as the same "mod" on the Steam Workshop?

All very good questions. I'm very much interested in how we should handle scripts too. Bumping to attract attention.
User avatar
CHARLODDE
 
Posts: 3408
Joined: Mon Apr 23, 2007 5:33 pm

Post » Mon Jun 18, 2012 3:19 pm

Small update - scripts in bsa's do work for me when it is a NEW script.
So I suspect that I need to solve the problem of how to modify an existing quest by adding a new script.

There's something I need to try ... back soon.
User avatar
Dylan Markese
 
Posts: 3513
Joined: Sat Dec 01, 2007 11:58 am

Post » Mon Jun 18, 2012 8:11 am

YES!
It works, I think I've solved it.

For quests, anyway, in the "Quest Stages" tab, where the fragment is shown - click the advanced tab.
Then click "Rename Script" and type in a new name.

This will create a new script, identical to the current quest script, and switch the quest to use it instead of the old one.
You can then make changes to an existing quest safely, not affecting existing scripts.
It doesn't even delete the original script as far as I can tell - that is, it doesn't ACTUALLY rename, it just creates a new one.

And, again, the bsa worked now that I had a new script, so I believe this is key as well - only new scripts can be added by a bsa, it can't override existing ones.


This method will allow me to easily modify existing quests, and have multiple versions of the quest in different mods that I can work on concurrently.
Is there somewhere noticeable on the wiki this ought to be added?


One more thing: the Creation Kit tries to archive both the source and the compiled scripts into the bsa (presumably just picks up everything it changed while working on the mod). It works fine if you delete the source files form the list before proceeding.


I still have my two other issues, No 2 I would hope to solve before I can release an update for my mod:
And while I am on the topic, can I somehow:
1. Remove the render window
2. Rename a file, while leaving it as the same "mod" on the Steam Workshop?
User avatar
K J S
 
Posts: 3326
Joined: Thu Apr 05, 2007 11:50 am

Post » Mon Jun 18, 2012 12:47 am

And while I am on the topic, can I somehow:
1. Remove the render window
2. Rename a file, while leaving it as the same "mod" on the Steam Workshop?

1. I think not. But why would you wan't to? Simply drag it very small and/or just put other windows over it
2. Renaming an .esp is a very bad idea. The game views it is as a new different plugin and things it added get deleted from the game (So I don't think steam allows it)
User avatar
Robert Garcia
 
Posts: 3323
Joined: Thu Oct 11, 2007 5:26 pm

Post » Sun Jun 17, 2012 11:55 pm

I am still learning the ropes with the scripter, but could extending original scripts be the answer? From what I gathered from the Wiki, this can let you call its functions almost directly, but also allow you to overwrite certain aspects of it. SO the original "quest script" would be the parent and your modifications would be the child.

Although I don't know if this wouldwork on a scale matching that of an entire quest line.
User avatar
Horse gal smithe
 
Posts: 3302
Joined: Wed Jul 05, 2006 9:23 pm

Post » Mon Jun 18, 2012 4:05 am

Semi-off topic but how I can compare what it's like trying to learn or figure this scripting out would be this:

In Morrowind you have "Lincoln Logs" : Pieces fit together a certain way only, but it's simple, insert block onto block. Done. Trying to build a car is really basic. Several logs and some wheels if that.
Move on to say Oblivion and Fallout, you have "Lego's" : Oh wow, now the bricks can fit in different positions and spots, they have various sizes and hey, I can build my car to look really cool now. But again, it's building with pegged blocks now which is a bit more advanced than logs.
Now we have Papyrus, for those with zero scripting ability it's like going from Lego blocks to "here are car parts," build me a car and have it drive from one state to another. And you're over here going, uh but i know nothing about cars either.. (scratches head). lol

That's where my learning curve goes. So yeah, it's confusing as all hell to grasp for me. I can understand If, then, else statements. If this happens, do this. It's easy , quick, it makes sense. When you want to manipulate something, stick a script on that object. and it's done.
Trying to keep track of all the references and what links to what baffles my mind. Then not having the scripts confined within the localized esp, i continually scratch my head.

-Mush-
User avatar
Adrian Powers
 
Posts: 3368
Joined: Fri Oct 26, 2007 4:44 pm

Post » Mon Jun 18, 2012 2:40 am


And while I am on the topic, can I somehow:
1. Remove the render window
2. Rename a file, while leaving it as the same "mod" on the Steam Workshop?

1. I think not. But why would you wan't to? Simply drag it very small and/or just put other windows over it
2. Renaming an .esp is a very bad idea. The game views it is as a new different plugin and things it added get deleted from the game (So I don't think steam allows it)

1. Is there a way to at least unload a cell from rendering? I'm working with only scripts most of the time, but sometimes need to take a look at the world. Then it sits there, rendering it, taking up memory, etc.
2. Okay :( That makes sense. I realise now you're not supposed to put version numbers in esp file names, even on the nexus...
User avatar
matt white
 
Posts: 3444
Joined: Fri Jul 27, 2007 2:43 pm


Return to V - Skyrim