SebbiUltimate Posted September 10, 2023 Share Posted September 10, 2023 (edited) 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 September 10, 2023 by SebbiUltimate Link to comment Share on other sites More sharing options...
Recommended Posts