I finally got around to updating this for Legacy v5+. I finished the Breezehome patch and am running into issues with Elysium Estate due to all of the different display activators in the basement. If anyone has suggestions for this base mod please message me on nexus directly. I'm much more likely to see it since I don't have a lot of free time and rarely check these comments.
V2.1 The script now runs automatically. It works great on new games and should work on existing saves in theory, but I haven't had an opportunity to test it so no guarantees.
I'm working on making a patch for the Tundra Homestead, I've got all the storage set up properly but as soon as I started hooking up the displays I ran head-first into a brick wall. I've moved out the mod's activators and placed a static that has this mod's reference set as an enable parent. I read that I need to run the script attached to the LSE_DisplayTrigger, but I have no idea what that means. I can't find any reference of an LSE_DisplayTrigger in the mod nor in any other mods created with this utility. There's some "LSE_DisplayUpdate" quest that has a "LSE_TriggerDisplays" quest but none of the other mods I looked at seem to use it nor any other form of quest. As far as I understand it, there isn't a way to run a script from another script.
Would love some help being pointed in the right direction as I've spent several hours googling and am no closer to understanding how to set up the trigger.
EDIT: Thanks to the help of boojak I figured out that once you've set the enable parent you're all set, it just takes a while (up to 24 hours) for the display to update.
I'm NOT good at creating my own mods. I'm NOT really good at english either (^^') But I've a lot of house with named exposition (lakeview manor as it should be, blackthorn village, some of AE CC mods) so I'd like to create patch for them. Could someone explain me how to do, where to begin, please? I'm a little lost for now ^^" Thank you <3
Is it possible to make a patch with this using xEdit? I'm specifically trying to get the Amethyst Claws in Clockwork to not require adding a crafting recipe for the actual claws like is done here: https://www.nexusmods.com/skyrimspecialedition/mods/47358?tab=posts&BH=0 Alternatively, I could make it use the replicas from Legacy instead of the actual claws, but I don't know how to edit the scripts and I don't want the display to only accept the replicas. There's two scripts, so I would have to edit both of them to both know when they've recieved either real or replica halves and make them give those back after. Edit: I think I can do it with a new value, but I don't know if it'll be consistent across scripts. Maybe equals one for real and two for replica. Edit2: I figured out how to do it, but I need an if-elseif-else statement in order for it to work, and I'm not sure if you can do multiple ifs per statement. Edit3: I think I did it so that it checks for the real claw halves, then ends the statement, then starts a new statement where it looks for the replicas.
Can someone tell me if this will work? clwdbamclawdispactiscript
Spoiler:
Show
Scriptname CLWDBAmClawDispActiScript extends ObjectReference {Script for Amethyst Claw display ACTI in CLW-DB that returns both claw halves and disables display.} MiscObject property DLC2SV01HalfClawLeft auto MiscObject property DLC2SV01HalfClawRight auto objectReference property pAmClawMountActi auto {Ref of the activator to enable.} Bool Property pRunning Auto Hidden {Used to prevent spamming the activator. Default = FALSE} Event OnActivate(ObjectReference akActionRef) if akActionRef == Game.GetPlayer() if pRunning == FALSE pRunning = TRUE
For the record, the storage access component (I didn't check the display component) works fine with v5 except the Ingots and Ore storage, which needs to have a script reference changed in xEdit.
Nice work! We should probably talk about the changes in v5 at some point. Good news is though, player homes can use a copy of the activator from the museum to allow the display to remain synced.
I know the v5 update will probably require a lot of this to change, but I have already had a lower quality version of this laying around for personal use so it wasn't much work to put together a version for other people. Is there a time frame for when v5 will be released for general use?
Neat. I was working on something similar, but the pain of manually converting containers to activators just wasn't worth it. Glad you made a tool to simplify the process.
13 comments
V2.1 The script now runs automatically. It works great on new games and should work on existing saves in theory, but I haven't had an opportunity to test it so no guarantees.
Would love some help being pointed in the right direction as I've spent several hours googling and am no closer to understanding how to set up the trigger.
EDIT: Thanks to the help of boojak I figured out that once you've set the enable parent you're all set, it just takes a while (up to 24 hours) for the display to update.
Thank you <3
Alternatively, I could make it use the replicas from Legacy instead of the actual claws, but I don't know how to edit the scripts and I don't want the display to only accept the replicas. There's two scripts, so I would have to edit both of them to both know when they've recieved either real or replica halves and make them give those back after.
Edit: I think I can do it with a new value, but I don't know if it'll be consistent across scripts. Maybe equals one for real and two for replica.
Edit2: I figured out how to do it, but I need an if-elseif-else statement in order for it to work, and I'm not sure if you can do multiple ifs per statement.
Edit3: I think I did it so that it checks for the real claw halves, then ends the statement, then starts a new statement where it looks for the replicas.
Can someone tell me if this will work?
clwdbamclawdispactiscript
{Script for Amethyst Claw display ACTI in CLW-DB that returns both claw halves and disables display.}
MiscObject property DLC2SV01HalfClawLeft auto
MiscObject property DLC2SV01HalfClawRight auto
objectReference property pAmClawMountActi auto
{Ref of the activator to enable.}
Bool Property pRunning Auto Hidden
{Used to prevent spamming the activator. Default = FALSE}
Event OnActivate(ObjectReference akActionRef)
if akActionRef == Game.GetPlayer()
if pRunning == FALSE
pRunning = TRUE
if RealOrReplica [GLOB:FE038819] = 1
self.BlockActivation(true)
Game.GetPlayer().addItem(DLC2SV01HalfClawLeft, 1)
Game.GetPlayer().addItem(DLC2SV01HalfClawRight, 1)
pAmClawMountActi.enable()
self.disable()
endif
Utility.Wait(1.0)
if RealOrReplica [GLOB:FE038819] = 2
self.BlockActivation(true)
Game.GetPlayer().addItem(DLC2SV01HalfClawLeftREPLICA, 1)
Game.GetPlayer().addItem(DLC2SV01HalfClawRightREPLICA, 1)
pAmClawMountActi.enable()
self.disable()
endif
Utility.Wait(1.0)
self.BlockActivation(false)
pRunning = FALSE
endif
endif
endEvent
clwdbamclawmountactiscript.psc
{Script for Amethyst Claw mount ACTI in CLW-DB that takes both claw halves and enables display.}
Message Property pCLWDBNeedAmClawMsg Auto
MiscObject property DLC2SV01HalfClawLeft auto
MiscObject property DLC2SV01HalfClawRight auto
objectReference property pAmClawDisplayActi auto
{Ref of the activator to enable.}
Bool Property pRunning Auto Hidden
{Used to prevent spamming the activator. Default = FALSE}
Event OnActivate(ObjectReference akActionRef)
if akActionRef == Game.GetPlayer()
if pRunning == FALSE
pRunning = TRUE
self.BlockActivation(true)
if ((Game.GetPlayer().GetItemCount(DLC2SV01HalfClawLeft) >= 1) && (Game.GetPlayer().GetItemCount(DLC2SV01HalfClawRight) >= 1))
Game.GetPlayer().removeItem(DLC2SV01HalfClawLeft, 1)
Game.GetPlayer().removeItem(DLC2SV01HalfClawRight, 1)
pAmClawDisplayActi.enable()
RealOrReplica [GLOB:FE038819] = 1
self.disable()
endif
Utility.Wait(1.0)
if ((Game.GetPlayer().GetItemCount(DLC2SV01HalfClawLeftREPLICA) >= 1) && (Game.GetPlayer().GetItemCount(DLC2SV01HalfClawRightREPLICA) >= 1))
Game.GetPlayer().removeItem(DLC2SV01HalfClawLeftREPLICA, 1)
Game.GetPlayer().removeItem(DLC2SV01HalfClawRightREPLICA, 1)
pAmClawDisplayActi.enable()
RealOrReplica [GLOB:FE038819] = 2
self.disable()
else
pCLWDBNeedAmClawMsg.Show()
endif
Utility.Wait(1.0)
self.BlockActivation(false)
pRunning = FALSE
endif
endif
endEvent
Nice work! We should probably talk about the changes in v5 at some point. Good news is though, player homes can use a copy of the activator from the museum to allow the display to remain synced.