Difference between revisions of "Talk:CreateFullActorCopy"

1,824 bytes added ,  17:58, 16 October 2008
imported>Antares
(→‎CreateFullActorCopy /= PlaceAtMe Discussion: I may have made quite the discovery)
imported>QQuix
Line 97: Line 97:
:::This leads me to the conclusion that such objects are destroyable using the [[ResetInterior]] Function and to so merely requires that you set up a dummy cell, move all the junk there and then Reset the Interior. Can anyone confirm this?
:::This leads me to the conclusion that such objects are destroyable using the [[ResetInterior]] Function and to so merely requires that you set up a dummy cell, move all the junk there and then Reset the Interior. Can anyone confirm this?
:::--[[User:Antares|Antares]] 07:49, 16 October 2008 (EDT)
:::--[[User:Antares|Antares]] 07:49, 16 October 2008 (EDT)
::::In this matter we have to make very clear whether we are talking about Base Records or Reference Records:
::::'''''Reference Records''''' are created every time a dynamic item shows up in the world, either dropped from an inventory or created with PlaceAtMe. These records should be removed when the item is moved back to an inventory, but, under some circumstances, they are not removed and will stay in your savegame forever. OBSE 16 will include a function to remove these records, so future modders can make sure their mods wont cause this kind of bloating.  Note  that the fact that the item disappeared from view and its reference is no longer valid DOES NOT guarantee that its record has been removed from memory.
::::'''''Base Records''''' are created dynamically by CreateFullActorCopy, DuplicateAllItems  and CloneForm (any others??). There is no way to remove them from the game, AFAIK. So every time one of these functions runs, some bytes are added to the game. Any mod that runs these functions as a result of a player action will cause bloating if the player is allowed to do such actions unlimited times. Note that this has nothing to do with PlaceAtMe. PlaceAtMe does not create new Base Records.
::::Now, back to you example: the dropped weapon may be moved to any NPC inventory with “xItem.Activate xNPC 1” and the Reference Record should be destroyed. But there is little you can do about the Base Records created by CreateFullActorCopy. The most effective technique to prevent this bloating is by reusing the Actor/Items (instead of a create-destroy cycle), which requires a rather complex scripting (worth an WIKI article, btw).
::::Disclaimer: half of what I said is theoretical, as I have not reached this phase in my bloating tests.  -  [[User:QQuix|QQuix]] 18:58, 16 October 2008 (EDT)
Anonymous user