Difference between revisions of "Cell Reset"
Some sections rewritten do to new evidences
imported>QQuix (Fixed a typo in the table) |
imported>QQuix (Some sections rewritten do to new evidences) |
||
Line 1: | Line 1: | ||
{{Unfinished}} | {{Unfinished}} | ||
{{TOCright}} | |||
Cells reset to their original setup after a number of hours after the player leaves them, which means that all objects return to their original places, containers return to their original contents etc. | Cells reset to their original setup after a number of hours after the player leaves them, which means that all objects return to their original places, containers return to their original contents etc. | ||
Line 44: | Line 42: | ||
Considering the term ‘Cell Reset’ as the act of removing references from the game, there are actually two ‘Cell Resets`, which we may call | Considering the term ‘Cell Reset’ as the act of removing references from the game, there are actually two ‘Cell Resets`, which we may call ‘External’ and ‘Internal’. | ||
*The External Cell Reset (ECR) occurs when the game is saved after the Cell Reset Hours has expired. At this save, certain references are removed from the game and are not saved in the savegame file. It is called ‘external’ because it is done without the player returning to the cell. Vanilla Leveled List Creatures are examples of references removed by ECR. | *The External Cell Reset (ECR) occurs when the game is saved after the Cell Reset Hours has expired. At this save, certain references are removed from the game and are not saved in the savegame file. It is called ‘external’ because it is done without the player returning to the cell. Vanilla Leveled List Creatures are examples of references removed by ECR. | ||
Line 54: | Line 52: | ||
[[ResetInterior]] also plays a part in this game: it sets the Cell Reset Hours to zero, forcing it to expire, so the next time one of the Cell Resets occur (ECR or ICR), references will be deleted as if the 72 hours have passed. Besides, if the player enters the cell after [[ResetInterior]] is used (ICR), some additional references are deleted (which would not be deleted if [[ResetInterior]] were not used). | [[ResetInterior]] also plays a part in this game: it sets the Cell Reset Hours to zero, forcing it to expire, so the next time one of the Cell Resets occur (ECR or ICR), references will be deleted as if the 72 hours have passed. Besides, if the player enters the cell after [[ResetInterior]] is used (ICR), some additional references are deleted (which would not be deleted if [[ResetInterior]] were not used). But this is only true for cells that have been visited at least once. For hidden cells, see the proper section further down. | ||
==Cell Reset | ==Cell Reset and Actors== | ||
===Visited Interior Cells=== | |||
Considering the two events mentioned above, the ICR event splits into two scenarios, depending on the use of [[ResetInterior]], so there are three distinct scenarios when actors are removed: | |||
*External Cell Reset (ECR) – When the game is saved after the cell expires (either naturally or by [[ResetInterior]]). | |||
*Internal Cell Reset (ICR) – When the player reenters the cell after it expired and [[ResetInterior]] has not been used | |||
*Internal Cell Reset Extended (ICRx) – When the player reenters the cell after [[ResetInterior]] has been used. | |||
The following table resumes what happens in each scenario to actors with various combinations of characteristics | The following table resumes what happens in each scenario to actors with various combinations of characteristics | ||
Line 178: | Line 163: | ||
These are the general rules, which may be overruled depending on the combinations (discussed later on): | These are the general rules, which may be overruled depending on the combinations (discussed later on): | ||
*Quest Item flag - Actors with the “Quest Item” flag checked are never removed, under any circumstance. Period! All considerations | *Quest Item flag - Actors with the “Quest Item” flag checked are never removed from visited interior cells, under any circumstance. Period! All considerations in this section refer to non-Quest-Item actors. | ||
*Essential flag – The Essential flag affects Cell Reset only indirectly: since they do not die, all considerations about dead actors do not apply to Essential actors. | *Essential flag – The Essential flag affects Cell Reset only indirectly: since they do not die, all considerations about dead actors do not apply to Essential actors. | ||
*Respawn flag | *Respawn flag | ||
**Dynamic actors with the Respawn flag on are only removed | **Dynamic actors with the Respawn flag on are only removed by ECR and ICRx. For ‘normal’ cell entries (no [[ResetInterior]]), they are still valid when the player reenters the cell and are not removed with their non-respawn counterparts. | ||
**If not removed, Respawn actors continue in the cell with most of their values unchanged. Scripted actors keep running their scripts with the vars preserved. | **If not removed, Respawn actors continue in the cell with most of their values unchanged. Scripted actors keep running their scripts with the vars preserved. | ||
**The only noticed difference is that dead actors resurrect (standing up and [[GetDead]] returns false), although their Health remains zero. | **The only noticed difference is that dead actors resurrect (standing up and [[GetDead]] returns false), although their Health remains zero. | ||
Line 191: | Line 176: | ||
**Persistence on non-dynamic actors, of course, depends on how the “Persistent reference” flag is set when the actor is created in the Construction Set. | **Persistence on non-dynamic actors, of course, depends on how the “Persistent reference” flag is set when the actor is created in the Construction Set. | ||
**Persistent, dynamic actors are created when a reference is dynamically created based on a Base Object with the “No low level processing” off. | **Persistent, dynamic actors are created when a reference is dynamically created based on a Base Object with the “No low level processing” off. | ||
**Non-persistent, dynamic actors are created when a reference is dynamically created based on a Base Object with the “No low level processing” | **Non-persistent, dynamic actors are created when a reference is dynamically created based on a Base Object with the “No low level processing” on. | ||
*Dead – | *Dead – | ||
Line 210: | Line 195: | ||
*ICR and ICRx remove all dead, non-respawn actors, including the non-dynamic ones. | *ICR and ICRx remove all dead, non-respawn actors, including the non-dynamic ones. | ||
*The only non-dynamic actors removed are the dead, non-respawn actors. As mentioned, they are not actually removed. Their FormIDs are flagged as Deleted ([[IsRefDeleted]] returns true), but are not removed from the game and remains valid ([[IsFormValid] returns true]) | *The only non-dynamic actors removed are the dead, non-respawn actors. As mentioned, they are not actually removed. Their FormIDs are flagged as Deleted ([[IsRefDeleted]] returns true), but are not removed from the game and remains valid ([[IsFormValid]] returns true]) | ||
*Dynamic, non-persistent actors are removed by ECR. Since, sooner or later, everybody saves the game, these actors do not bloat the savegame file (all vanilla leveled list creatures are in this category, as they have the “No low level processing” flag checked and, therefore, spawn as non-persistent ) | *Dynamic, non-persistent actors are removed by ECR. Since, sooner or later, everybody saves the game, these actors do not bloat the savegame file (all vanilla leveled list creatures are in this category, as they have the “No low level processing” flag checked and, therefore, spawn as non-persistent ) | ||
Line 219: | Line 204: | ||
*Respawn actors removed by ECR do not respawn because the removal is done before the player enters the cell, so when the player enters, the references to those actors are already gone. | *Respawn actors removed by ECR do not respawn because the removal is done before the player enters the cell, so when the player enters, the references to those actors are already gone. | ||
===Hidden Cells=== | |||
Hidden cells (aka Dummy Cells) are cells created without a way to go in, where mods keep their things that are not used and should not be available all the time. Mod authors may create them in the CS, place them on hidden cells and move them in and out of the game as needed. Sometimes this is not possible, so mod authors create them dynamically and get rid of them when not needed anymore. | |||
Except for actors, all kinds of [[PlaceAtMe]]'d references can be removed from the game with [[DeleteReference]]. To get rid of [[PlaceAtMe]]'d actors, many modders kill them and move them to hidden cells in the hope that the engine will get rid of them sooner or later. | |||
As explained above, the Cell Reset clock is triggered when the player leaves a cell. What may not be so obvious is that hidden cells will never reset, because the player never goes there in the first place and, therefore, never triggers its clock. | |||
One alternative that has been mentioned in some texts is the use of [[ResetInterior]] on the hidden cell after moving the disposable actor there. This forces the cell to expire and next time the game is saved (ECR), dynamic, non-persistent actors are removed. Problem is that those are exactly the actors that are removed from ANY cell at ECR, so this technique does not help in any way (does not hurt, either, thou). | |||
Dynamic, non-persistent actors are created when the Base Object has the “No low level processing” flag checked. Since these actors do not run [[Script Processing|low level processing]], there is no need to keep then in memory all the time, so the spawn mechanism (PlaceAtMe of Leveled Creature) do not mark then as Persistent. | |||
On the other hand, actors with the “No low level processing” not checked must be in memory all the time, so, when dynamically created, they are flagged as persistent. And they are hard to get rid of. | |||
As seen on the table above, these dynamic, persistent actors are removed only when the player enters an expired cell (ICR). If dead, the normal ICR takes care of it, if not dead, only if [[ResetInterior]] has been used on the cell. | |||
Since the player never enters a hidden cell, it is better not to spawn persistent actors by checking the “No low level processing” flag on actors that will be [[PlaceAtMe]]'d or are in a leveled list. However, if you have to spawn persistent actors, it seems that the only way to get rid of them is to kill them and move them to a cell that the player may enter in the future. | |||
If the hidden cell has no doors, quest item actors are removed with their non-Quest Item counterparts. | |||
===Exterior Cells=== | |||
Cell Reset for exterior cells removes actors with the same rules above with the following differences: | |||
*Ignores Quest Item flag, so quest item actors are removed with their non-Quest Item counterparts. | |||
*Exterior ICR removes Dynamic, Dead, non-Persistent, Respawn actors and they do not respawn. | |||
*Exterior ICR does not remove Dynamic, Dead, Persistent actors. | |||
==Cell Reset x Items== | ==Cell Reset x Items== |