Jump to content

Carry over items and credits to NG+


SebbiUltimate

Recommended Posts

I'm trying to carry over items and credits to NG+. It seems kinda impossible without Creation Kit.

I found the papyrus script scripts\applyunityactivatorscript.pex in "Starfield - Misc.ba2" and decompiled it.

Here is the source:

PapyrusVersion: 3.12 - 0004 - (TimeData: 0000000064E3D16D)
Script: E:\BuildAgent\work\4c7f7506a0fb268b\Source\Scripts\ApplyUnityActivatorScript.psc
StringTableCount: 53
-------------------------------------------------------
debugFuncCount: 2
debugpropGroupCount: 1
debugStructCount: 0
-------------------------------------------------------
userFlagsCount: 6
	mandatory 5
	collapsedonbase 4
	hidden 0
	collapsedonref 3
	default 2
	conditional 1
-------------------------------------------------------
objectName ApplyUnityActivatorScript extends ReferenceAlias
autoStateName: ""
flags: 0x00000000
-------------------------------------------------------
[-]Struct [count: 0]
-------------------------------------------------------
[-]Guard [count: 0]
-------------------------------------------------------
[-]vars [count: 5]
	00 miscobject Credits 
	01 ReferenceAlias SourceActor 
	02 actorvalue Oxygen 
	03 actorvalue Health 
	04 ReferenceAlias ReceivingActor 
-------------------------------------------------------
[-]properties [count: 5]
	00 miscobject Credits  auto const 
	01 ReferenceAlias SourceActor  auto const 
	02 actorvalue Oxygen  auto const 
	03 actorvalue Health  auto const 
	04 ReferenceAlias ReceivingActor  auto const 
-------------------------------------------------------
[-]state: ""
[-]	 function ApplyUnityCharacter(actor akSourceActor)  
		local.Float ::temp1
		local.Float ::temp3
		local.Int ::temp5
		local.Float ::temp7
		local.None ::nonevar
		local.form ::temp8
		local.form ::temp9
		local.objectreference ::temp10
		local.actor ReceivingActorREF
		local.Int myHealth
		local.Int myOxygen
		local.Int myLevel
		local.Int myCredits
		ReceivingActorREF = ::ReceivingActor_var.GetActorRef()
		::temp1 = akSourceActor.GetValue(::Health_var)
		myHealth = ::temp1 as Int
		::temp3 = akSourceActor.GetValue(::Oxygen_var)
		myOxygen = ::temp3 as Int
		::temp5 = akSourceActor.GetLevel()
		myLevel = ::temp5 as Int
		::temp7 = myHealth as Float
		::nonevar = ReceivingActorREF.SetValue(::Health_var, ::temp7)
		::temp1 = myOxygen as Float
		::nonevar = ReceivingActorREF.SetValue(::Oxygen_var, ::temp1)
		::temp8 = ::Credits_var as form
		myCredits = akSourceActor.GetItemCount(::temp8)
		::temp9 = ::Credits_var as form
		::nonevar = ReceivingActorREF.AddItem(::temp9, myCredits, False)
		::temp10 = ReceivingActorREF as objectreference
		::nonevar = akSourceActor.RemoveAllItems(::temp10, False, False)
	 endFunction

[-]	 function OnActivate(objectreference akActionRef)  
		local.actor ::temp11
		local.None ::nonevar
		::temp11 = ::SourceActor_var.GetActorRef()
		::nonevar = self.ApplyUnityCharacter(::temp11)
	 endFunction

   endState

It seems that the function ApplyUnityCharacter should transfer items and credits from the akSourceActor to the ReceivingActor. Could this be SourceActor = Player Character from old game and ReceivingActor = Character from NG+ ?

I don't know where this script gets executed and if it's possibly bugged. Maybe I need to wait for Creation Kit to see the unity map and where this script is used.

Edited by SebbiUltimate
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...