Editing A beginner's guide, lesson 1 - The Construction Set Primer
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 288: | Line 288: | ||
Generally, giving a thing a persistent reference is necessary when you want some process to be able to refer to that thing from somewhere else. Specifically, flagging a reference as persistent means that Oblivion will always keep it in memory (it persists.) The advantage to being flagged persistent is that scripts, quests or AI packages can use that reference even when the player is in a different cell. If a script, a quest, or an AI package, will possibly need the thing outside of the cell in which it is given its reference, then that reference needs to be a persistent reference. Oblivion only loads a certain number of cells at a time, and calling upon anything that is not loaded or persisting in memory will cause a crash. The disadvantage to making all references persistent is that the persistent references occupy memory. If 500,000 references that did not need to persist were, in fact, made persistent and each used 4 bytes that would require about 2 MB of memory and a corresponding use of disk space for each save. After all, to persist they must be reloaded upon resumption of the game. | Generally, giving a thing a persistent reference is necessary when you want some process to be able to refer to that thing from somewhere else. Specifically, flagging a reference as persistent means that Oblivion will always keep it in memory (it persists.) The advantage to being flagged persistent is that scripts, quests or AI packages can use that reference even when the player is in a different cell. If a script, a quest, or an AI package, will possibly need the thing outside of the cell in which it is given its reference, then that reference needs to be a persistent reference. Oblivion only loads a certain number of cells at a time, and calling upon anything that is not loaded or persisting in memory will cause a crash. The disadvantage to making all references persistent is that the persistent references occupy memory. If 500,000 references that did not need to persist were, in fact, made persistent and each used 4 bytes that would require about 2 MB of memory and a corresponding use of disk space for each save. After all, to persist they must be reloaded upon resumption of the game. | ||
#Open the cell you wish to add the Persistent Reference to, so you can see it in the [[Render Window]] | #Open the cell you wish to add the Persistent Reference to, so you can see it in the [[Render Window]] | ||
#*Double-click the cell in the [[Cell View Window]] | #*Double-click the cell in the [[Cell View Window]] | ||
#Select the base object from the [[Object Window]] | #Select the base object from the [[Object Window]] | ||
#Drag the base object into the '''Render Window''' | #Drag the base object into the '''Render Window''' | ||
#Double-click the new reference in the '''Render Window''' | #Double-click the new reference in the '''Render Window''' | ||
#Give it a "Reference EditorID" (top bar of the Edit window) | #Give it a "Reference EditorID" (top bar of the Edit window) | ||
#*This is the name you'll use in your scripts, so give it a name you'll remember | #*This is the name you'll use in your scripts, so give it a name you'll remember | ||
#*'''Do not''' start the Reference EditorID name with a number as this will cause you a lot of problems down the road | #*'''Do not''' start the Reference EditorID name with a number as this will cause you a lot of problems down the road | ||
#Flag the object as | #Flag the object as Persistent (top-left of the 6 check-boxes at the bottom) | ||
==== Creating a New Base Object ==== | ==== Creating a New Base Object ==== |