Dynamically replicatingcloning actors

Post » Wed Nov 12, 2014 2:34 am

I've always thought that wandering through Skyrim, can seem under-populated, or runnning into the same bandit camp knowing that its only 3 bandits.

Rather than manually add new actors to the game world, which in itself would be a massive undertaking , i wanted to see whether it was possible to dynamically replicate existing actors in the world.

I already had a restarting quest to dynamically increase the health of all actors, so this was my starting point.

This quest cast a magic effect on the alias, when the quest restarted, actors with this magic effect are excluded from being placed in the quest. After several attempts, i managed to get a working prototype, the first working attempt ended up in Attack of the Clones, with cloned actors replicating cloned actors.

This is the script that i ended up using:

Spoiler
 Scriptname DynamicAddAbilityScript Extends ReferenceAlias ReferenceAlias Property AliasRef AutoSpell Property IncreasedHealthSpell AutoBool Property OwningQuest Auto Event OnInit()   RegisterForSingleUpdate(1)EndEvent Event OnUpdate()   Actor QuestAlias = AliasRefGetReference() as Actor       if QuestAlias == True && QuestAlias.Is3DLoaded()          if OwningQuest == True            ActorBase ClonedRef = (AliasRef.GetReference()).GetBaseObject() as ActorBase               debug.trace("1.ClonedRef = "+ClonedRef)                   Form ClonedForm = ClonedRef as Form                     debug.trace("2.ClonedForm = "+ClonedForm)                         QuestAlias.PlaceAtMe(ClonedForm)         endif          UtilityWait(1)            IncreasedHealthSpell.Cast(QuestAlias)      endif EndEvent

This is by no means without issues, as i need to prevent certain actors from being cloned.

I suspect that i may need a script to clean up dead cloned actors. At no point am i thinking of releasing this as a mod.

This is more an attempt at a proof of concept, i do have concerns however whether this will cause issues such as game crashes, corrupted game saves, game save bloat.

I have looked at the SKSE Function TempClone() and whether the method that i am attempting is similar and whether the notes in the TempClone() apply in this situation.

Any opinions would be appreciated

User avatar
Kirsty Collins
 
Posts: 3441
Joined: Tue Sep 19, 2006 11:54 pm

Return to V - Skyrim