pinky6225 Posted June 27, 2015 Posted June 27, 2015 Was curious what a script instance is, it shows up in the save game tool and as I've just upgraded a few mods i thought i'd check level 1 character standing in the LAL prision with 167 mods level 81 character standing in falksaar general shop in amber hold 154528 seems a lot, the save is playing fine but as that seems 100k more than a newbie save i was wondering if their is an actual limit i'll eventually reach as well
Guest Posted June 27, 2015 Posted June 27, 2015 The "ScriptInstances" are script that are actually attached to an object (an NPC, a weapon, etc.) They consume memory, yes. But usually only a few KB. And the code for the scripts is not stored for each instance (it is actually the number of "Scripts") An instance of a script may consume further memory to store the local variables (pointers to objects and native variables like Int, Float, Bool.) But also in this case usually it is just a little bit of memory. The scripts that are actually consuming power are the one that are active.
Slorm Posted June 27, 2015 Posted June 27, 2015 @CPU Thank you for explaining that it's something I've wondered about as well. On a separate what exactly are References, I noticed that they creep up as the game progresses but sometime they decrease as well?
yatol Posted June 27, 2015 Posted June 27, 2015 that's your interactions with your load order you pick a flower, it get in the save you do a quest, it get in the save you talk a npc, the dialogs used get in the save you open a coffer, its inventory get in the save (even if you don't pick anything) you get close to a npc and he start moving, he get in the save the 1510 from obis are leveled lists, maybe some perks or others things a anti breaking save measure, that is useless, adding/removing mods can and will break the save obis npc aren't put in the save, if i remove the esp, those leveled lists will try to load npc that are no longer in the load order (result is bandits that don't have heads, and aren't animated)
Elei-Mi-Shill Posted June 27, 2015 Posted June 27, 2015 @CPU Thank you for explaining that it's something I've wondered about as well. On a separate what exactly are References, I noticed that they creep up as the game progresses but sometime they decrease as well? Uhm... it's a little complex to explain what a reference is. Let's say that you have a memory region containing some data and a pointer variable. When the pointer variable actually points to the memory region it "refers to" that memory region and becomes a reference to it. So, besically a reference is a pointer that points to an actual memory region containing data. If we are talking about Oblivion and its scripting, you call reference (or ref) a pointer to an object, being it a Base Object or a World Object. BUT when you talk about a reference in Oblivion scripting you almost always think about the World Object (in Wikipedia you found it as objectRef, or PlayerRef). I don't know if this explanation is enough. If you have questiosn feel free to ask. BTW, there's a relation between a Reference and an Instance The reference (pointer) refers to an instance (actual object in memory).
Guest Posted June 27, 2015 Posted June 27, 2015 @CPU Thank you for explaining that it's something I've wondered about as well. On a separate what exactly are References, I noticed that they creep up as the game progresses but sometime they decrease as well? Uhm... it's a little complex to explain what a reference is. Let's say that you have a memory region containing some data and a pointer variable. When the pointer variable actually points to the memory region it "refers to" that memory region and becomes a reference to it. So, besically a reference is a pointer that points to an actual memory region containing data. If we are talking about Oblivion and its scripting, you call reference (or ref) a pointer to an object, being it a Base Object or a World Object. BUT when you talk about a reference in Oblivion scripting you almost always think about the World Object (in Wikipedia you found it as objectRef, or PlayerRef). I don't know if this explanation is enough. If you have questiosn feel free to ask. BTW, there's a relation between a Reference and an Instance The reference (pointer) refers to an instance (actual object in memory). Hello, the actual "References" you are talking about (Like the Properties) are stored in the ScriptInstance space. And if you look at the numbers of the "References", they are too few to be this. I dug in the savegames, but I was not able to understand the "pointers" (???) for the few references.
Slorm Posted June 27, 2015 Posted June 27, 2015 Uhm... it's a little complex to explain what a reference is. Let's say that you have a memory region containing some data and a pointer variable. When the pointer variable actually points to the memory region it "refers to" that memory region and becomes a reference to it. So, besically a reference is a pointer that points to an actual memory region containing data. Ahh thanks, that makes sense. If I'm understanding correctly it's effectively the same as a pointer that points to a stack position in RAM.
Guest Posted June 27, 2015 Posted June 27, 2015 Uhm... it's a little complex to explain what a reference is. Let's say that you have a memory region containing some data and a pointer variable. When the pointer variable actually points to the memory region it "refers to" that memory region and becomes a reference to it. So, besically a reference is a pointer that points to an actual memory region containing data. Ahh thanks, that makes sense. If I'm understanding correctly it's effectively the same as a pointer that points to a stack position in RAM. Sort of. All pointers for scripting are stored inside the ScriptInstances. A ScriptInstance contains: the pointer to the object holding the script; all the values for all the variables (including pointers to complex objects like Arrays and Actors, and Spells, etc.); all the pointers to the super-scripts (the extended scripts); all references for Properties. The current execution point of the script; the status of the script is any; the events that are registered (not the ModEvents from SKSE, these are stored elsewhere.) It does not contain the actual code; it is in "Scripts" The "Reference" line in the savegame log is for sure some sort of pointer; but I have no idea of what reference is.
Elei-Mi-Shill Posted June 27, 2015 Posted June 27, 2015 @CPU Thank you for explaining that it's something I've wondered about as well. On a separate what exactly are References, I noticed that they creep up as the game progresses but sometime they decrease as well? Uhm... it's a little complex to explain what a reference is. Let's say that you have a memory region containing some data and a pointer variable. When the pointer variable actually points to the memory region it "refers to" that memory region and becomes a reference to it. So, besically a reference is a pointer that points to an actual memory region containing data. If we are talking about Oblivion and its scripting, you call reference (or ref) a pointer to an object, being it a Base Object or a World Object. BUT when you talk about a reference in Oblivion scripting you almost always think about the World Object (in Wikipedia you found it as objectRef, or PlayerRef). I don't know if this explanation is enough. If you have questiosn feel free to ask. BTW, there's a relation between a Reference and an Instance The reference (pointer) refers to an instance (actual object in memory). Hello, the actual "References" you are talking about (Like the Properties) are stored in the ScriptInstance space. And if you look at the numbers of the "References", they are too few to be this. I dug in the savegames, but I was not able to understand the "pointers" (???) for the few references. I can't really answer to you question without seeing the actual data.But I can give you some ints. Every object in Oblivion (and perhaps in Skyrim) has a code associated in the form of MMXXXXXX where MM is the number of the MOD in the MOD order list and XXXXXX is the number of the object inside the mod. in tghe savegame you don't need to save those, unless they are somehow modified (i.e. you move a book inside a room or you open a door). BUT! MM should be the ID of the MOD (8 bits) but if you think it's not the case inside a savegame. Because, if you add a MOD or change the loadorder, this byte will lose its meaning. Therefore, in the savegame you should have some translation table that tells the game which mod that specific ID is referring to. Another consideration is (as you are referring to scripts), that variables in scripts are themselves objects. Therefore, you'll have a list of pointers that references each of those variables. And not just the pointers. You must have also the actual value contained in the variable. I remember some bugs in Oblivion if you delete a variable in a script associated to a quest because of that.
Guest Posted June 27, 2015 Posted June 27, 2015 I can't really answer to you question without seeing the actual data.But I can give you some ints. Every object in Oblivion (and perhaps in Skyrim) has a code associated in the form of MMXXXXXX where MM is the number of the MOD in the MOD order list and XXXXXX is the number of the object inside the mod. in tghe savegame you don't need to save those, unless they are somehow modified (i.e. you move a book inside a room or you open a door). BUT! MM should be the ID of the MOD (8 bits) but if you think it's not the case inside a savegame. Because, if you add a MOD or change the loadorder, this byte will lose its meaning. Therefore, in the savegame you should have some translation table that tells the game which mod that specific ID is referring to. Another consideration is (as you are referring to scripts), that variables in scripts are themselves objects. Therefore, you'll have a list of pointers that references each of those variables. And not just the pointers. You must have also the actual value contained in the variable. I remember some bugs in Oblivion if you delete a variable in a script associated to a quest because of that. You are completely right about the first statement (the ids and the mods.) Both Oblivion and Skyrim are based on the GameBryo architecture. Inside a script, the variables can be: * basic values (boolean, int, float) * Objects as pointers to GameBryo objects (Actors, Quests, etc.) -> Just the ID (or the run id) of the object is stored * Structured objects (only Arrays in my knowledge), the actual array definition is stored, and a pointer to array is stored in the variable The first two are in SriptInstance, the third is in a special area of the save game. Another item is the actual values of the properties associated with a ScriptInstance associated to a world object. Let me be clear: in the very first post, in the tree of "what is in your game" there is a line called "References" with a very small number associated with. Is this "Reference" that I have no idea about what it is. Cheers.
Elei-Mi-Shill Posted June 27, 2015 Posted June 27, 2015 Let me be clear: in the very first post, in the tree of "what is in your game" there is a line called "References" with a very small number associated with. Is this "Reference" that I have no idea about what it is. Cheers. I can try to guess. If you don't change something ingame it's not saved in the save. In example, if you don't open a door, that door is not reported inside the savegame because it's in its initial state. Of course I'm referring to in game objects. it can include also enemies you fight... But you are right... the number is too small to contain those item.
Guest Posted June 27, 2015 Posted June 27, 2015 Probably it will remain a mystery. Until some reverse-engineer will post what they are.
yatol Posted June 28, 2015 Posted June 28, 2015 The "Reference" line in the savegame log is for sure some sort of pointer; but I have no idea of what reference is. probably some stuff that is going on without being rendered 0 at the start of the game 7 when the carriage arrive 0 inside helgen 10 at a random save 76 in the one above have 2 c04glenmorilwitchheadscript in the ref of last save that's the heads to remove werewolf form, old stuff maybe farkas and vilkas want to be cured (they didn't ask anything)
Guest Posted June 28, 2015 Posted June 28, 2015 The "Reference" line in the savegame log is for sure some sort of pointer; but I have no idea of what reference is. probably some stuff that is going on without being rendered 0 at the start of the game 7 when the carriage arrive 0 inside helgen 10 at a random save 76 in the one above have 2 c04glenmorilwitchheadscript in the ref of last save that's the heads to remove werewolf form, old stuff maybe farkas and vilkas want to be cured (they didn't ask anything) I still have no idea about where are they used in the game. Sorry.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.