Shreever Posted July 16, 2017 Share Posted July 16, 2017 I would like for someone to create a mod that makes the player character remove all of their bulky armor before entering Power Armor. It has always bugged me to see my character step into power armor and see bits and pieces sticking out here and there. It doesn't make much sense to jump in wearing a full set of heavy armor. I would like to see a mod menu that allows the player to specify a set (or sets) of clothing to change into before stepping into the power armor. If nothing specified is in your inventory, then it defaults to nude/undies/whatever. A clothes change or simple armor pat-down animation would be great too. If this has already been done, I apologize.(let me know where it is!) I have been looking off and on for months now and have found nothing. Thanks for checking out my request and let me know if you are interested in helping out! Link to comment Share on other sites More sharing options...
jkruse05 Posted July 22, 2017 Share Posted July 22, 2017 Well, there are mods that make you unequip clothes when swimming or using a shower, so it should be possible. I wouldn't know where to start though, personally. Link to comment Share on other sites More sharing options...
ODell22d Posted May 27, 2021 Share Posted May 27, 2021 Yeah I would like to see this as well... Character removes anything heavy only sleepwear or nude upon entering - Lingerie underwear panties bras anything light or nude Link to comment Share on other sites More sharing options...
aurreth Posted May 27, 2021 Share Posted May 27, 2021 PowerArmor Handling Improvements can be configured to remove armor on entering. I do think it's overly generous in what it considers "armor" or not though. Personally I'd rather it only allow skinsuits (vault jumpsuit, BoS uniform) or nude. Unfortunately script sources aren't included so there's no way to look at it and figure out what the criteria is. My guess is some keyword. If I had the source I could create a new keyword and alter the script to look for that, and strip off everything else. Edit: looks like the keyword is usePowerArmorFrame. The vault suit is usePowerArmorFrameVault, the BoS under armor is usePowerArmorFrameBoS. Various other ones along the same line. Six keywords total, but one of those is specific to Ingram. Link to comment Share on other sites More sharing options...
aurreth Posted May 27, 2021 Share Posted May 27, 2021 That is so strange. It looks like what happens when you get into power armor is a race change to PowerArmorRace. Ok, here's the script that handles entering and exiting power armor: ScriptName PowerArmorActivatorScript extends ObjectReference Int Property BatteryLife Auto Int Property MaxBatteryLife Auto SystemPowerArmorScript Property SystemPowerArmorQuest Auto Event OnActivate(ObjectReference akActionRef) If akActionRef == Game.GetPlayer() ;if I'm already in this power armor, step out If Self == (SystemPowerArmorQuest.myPowerArmorRef) SystemPowerArmorQuest.PowerArmorShutDown() --------------------------> Restore Clothing Here ;if I'm not in any power armor, step in ElseIf (SystemPowerArmorQuest.myPowerArmorRef) == None --------------------------> Remove clothing here SystemPowerArmorQuest.PowerArmorStartUp(Self, BatteryLife, MaxBatteryLife) ;if I'm in another suit of power armor, step out, then step in Else SystemPowerArmorQuest.PowerArmorShutDown() SystemPowerArmorQuest.PowerArmorStartUp(Self, BatteryLife, MaxBatteryLife) EndIf EndIf EndEvent ;update battery levels based on current data inside the Power Armor System Function PowerArmorSystemSync(int SystemBatteryLife, int SystemMaxBatteryLife) BatteryLife = SystemBatteryLife MaxBatteryLife = SystemMaxBatteryLife EndFunction Modifying that to remove all clothing when entering should work. If you want to automatically get dressed on exit you have to store what the player is wearing, and re-equip at the indicated spot. Stripping should be, um, Game.GetPlayer().Unequip... ok, not sure lol As usual you can find guidance on unequipping one thing, but not everything. Link to comment Share on other sites More sharing options...
HeyYou Posted May 27, 2021 Share Posted May 27, 2021 That is so strange. It looks like what happens when you get into power armor is a race change to PowerArmorRace. Ok, here's the script that handles entering and exiting power armor: ScriptName PowerArmorActivatorScript extends ObjectReference Int Property BatteryLife Auto Int Property MaxBatteryLife Auto SystemPowerArmorScript Property SystemPowerArmorQuest Auto Event OnActivate(ObjectReference akActionRef) If akActionRef == Game.GetPlayer() ;if I'm already in this power armor, step out If Self == (SystemPowerArmorQuest.myPowerArmorRef) SystemPowerArmorQuest.PowerArmorShutDown() --------------------------> Restore Clothing Here ;if I'm not in any power armor, step in ElseIf (SystemPowerArmorQuest.myPowerArmorRef) == None --------------------------> Remove clothing here SystemPowerArmorQuest.PowerArmorStartUp(Self, BatteryLife, MaxBatteryLife) ;if I'm in another suit of power armor, step out, then step in Else SystemPowerArmorQuest.PowerArmorShutDown() SystemPowerArmorQuest.PowerArmorStartUp(Self, BatteryLife, MaxBatteryLife) EndIf EndIf EndEvent ;update battery levels based on current data inside the Power Armor System Function PowerArmorSystemSync(int SystemBatteryLife, int SystemMaxBatteryLife) BatteryLife = SystemBatteryLife MaxBatteryLife = SystemMaxBatteryLife EndFunction Modifying that to remove all clothing when entering should work. If you want to automatically get dressed on exit you have to store what the player is wearing, and re-equip at the indicated spot. Stripping should be, um, Game.GetPlayer().Unequip... ok, not sure lol As usual you can find guidance on unequipping one thing, but not everything.Would it be possible to remove stuff by what slot they occupy? I am not real familiar with the system, so, don't know if armor is considered some clothing..... (but, you can wear armor with clothing.... so, gotta be some difference there.) Simply unequipping certain items when you step in, storing what they were in some variable, then restoring when you step out. (or, make folks re-equip it when the step out....) Should be able to wear clothes, glasses, bandana.... even in power armor..... but, armor, hats, helmets, etc, would have to come off. Link to comment Share on other sites More sharing options...
aurreth Posted May 27, 2021 Share Posted May 27, 2021 Would it be possible to remove stuff by what slot they occupy? I am not real familiar with the system, so, don't know if armor is considered some clothing..... (but, you can wear armor with clothing.... so, gotta be some difference there.) Simply unequipping certain items when you step in, storing what they were in some variable, then restoring when you step out. (or, make folks re-equip it when the step out....) Should be able to wear clothes, glasses, bandana.... even in power armor..... but, armor, hats, helmets, etc, would have to come off. Yes, it's possible to just remove whatever is equipped in a specific slot, such as removing whatever is in the head slot to get rid of helmets, or the hand slot for gloves. The problem being that the head slot might be glasses instead of a helmet. Theoretically glasses should be in the "eye" slot (the vanilla ones are) but mod authors mess up on slots fairly often. I frequently have to fix mods where the author has slotted things wrong and only half the close show up. Link to comment Share on other sites More sharing options...
LarannKiar Posted May 27, 2021 Share Posted May 27, 2021 (edited) Armors can be easily removed from the player and added to a temporary container by a quest script like this: Scriptname SCRIPTNAME extends Quest Const Keyword Property (isPowerArmorFrame) Auto Const Actor Property PlayerRef Auto Const Keyword Property ObjectTypeArmor Auto Const {Most armors have this keyword.} ObjectReference Property MyContainer Auto Const {Reference of a (persistent) container in the game world. Should be placed in a holding cell.} Event OnQuestInit() RegisterForRemoteEvent(PlayerRef, "OnItemEquipped") EndEvent Event Actor.OnItemEquipped(Actor akSender, Form akBaseObject, ObjectReference akReference) if akSender == PlayerRef && akBaseObject.HasKeyword(isPowerArmorFrame) int iArmorCount = PlayerRef.GetItemCount(ObjectTypeArmor) PlayerRef.RemoveItem(ObjectTypeArmor, iArmorCount, abSilent = true, akOtherContainer = MyContainer) ;removed items can be also added back to the player immediately endif EndEvent To re-add your armors, use the OnItemUnequipped event (this event fires when you exit the armor). EDIT: I totally forgot about the F4SE (actor script) function GetWornItem() in my original post.. Edited May 27, 2021 by LarannKiar Link to comment Share on other sites More sharing options...
Recommended Posts