Jump to content

Photo

Follower Clothes Randomizer

clothing follower random

  • Please log in to reply
11 replies to this topic

#1
Staurolite86

Staurolite86

    Regular

  • Members
  • PipPip
  • 54 posts

Hello.

 

Is there a mod that automatically changes my followers' clothes?

 

 

I have this wonderful mod, DMRA complete armor and clothing, along with a 'bouncing boobs' mod. And it's cool to see my followers (Dragonchixx, Raewyn, Tamara, Katzumico Quiao) with these. But their outfit gets 'old' after a while so I have to manually change the clothes/armor in their inventory. By default, they choose the best armor according to their skills on heavy/light armor. That's great but, uhm... I want to see their 'attributes' in different outfits. :wink:



#2
Pellape

Pellape

    Faithful poster

  • Members
  • PipPipPipPip
  • 2,085 posts

What you mean old? Damaged or more immersive?  You can do this easy your self really with my guidance if you want to and if you have Construcion Set installed.

 

  1. You will make a quest for them all, One quest so it does not take game resources as it runs 1 tie every 5 sec, instead of every damn frame.
  2. You will with my guidance make a script with the OBSE command RAND
  3. You will use 2 commands to add and remove the sets. Additem and removeitem. No need for you to own the sets at all, just have a mod that has them and your mod will have the armor mod as requirement.

So what ye think? Does this sound like a good idea and you will also learn something in this process an it is ALWYS good and cool to learn new fun things. For Script commands, peek here:

https://cs.elderscro...st_of_Functions   Do not worry about all functions as it will only be a few we need and I guide you to which but I will not make your mod, I will guide you only.

 

How to use and get started with CS https://cs.elderscrolls.com



#3
Pellape

Pellape

    Faithful poster

  • Members
  • PipPipPipPip
  • 2,085 posts

Bouncing Boobs is a problem in the reality. They will hurt the girl really. That is what I think about when I see the bouncing boobs in game, or rather videos that has them, Pure pain. Before the bra came along, and specially the sport bra, girls that had an active life, like in this case, a warriour or mage that travels a lot, they will use towel like clothes to fixate their boobs or they will have a LOT of agany. Think about this when you get in game and see their boobs. They are in pain for sure.  



#4
Staurolite86

Staurolite86

    Regular

  • Members
  • PipPip
  • 54 posts

-With "it gets old" I mean that I've seen them long enough with the same clothes. I would like them to change their outfits daily, like people of the reality. There's a lot of sexy clothes and armor sets that I would like to see them using.

 

-I guess we could try to create such mod. I've used the construction set once to remove Dragonchixx's annoying bound armor spell. When the spell was active, my game would freeze if I tried to access her inventory, and her head was like... inside of her right shoulder.

 

 

Bouncing Boobs is a problem in the reality. They will hurt the girl really.

 

Yea, right, but it's still 'eye candy' for me. ;)



#5
Pellape

Pellape

    Faithful poster

  • Members
  • PipPipPipPip
  • 2,085 posts

YEA!!!  WHo doesn't like Eye candy??  :D    Still, I prefer them to not bounce.  :D

 

OKi!!!   So what we need to do is make a quest, with a questscript, to keep the Perfromance as high as possible.

 

We need to group up a couple of armor sets, please provide the ObjectID for each armor, set in groups, like:

 

ArmorID01Cuiass

ArmorID01Boots

ArmorID01Gloves

 

ArmorID02Cuiass

ArmorID02Boots

ArmorID02Gloves

 

Go into CS and make a new Quest called StaCMOutfitRandomizerQST or whatever. It must start with Sta as that is your initials right? Everything I create starts mostly with Pek and as this is a quest, end the name of it with QST as we will later use the sam name again but end it differently depending on the type, so we keep all different things in order that makes sense. I bet you use CM, but if you do not, well CM can be common CompanionMod or whatever. Well we start with this. When you provide the list, we make the StaCMOutfitRandomizerSCR, SCR = Script

 

Also, make sure your Companions is set to Persistent and have a ReferenceID as this Quest will be added to Their esp or the armor esp. We can also make this quest stanalone, but then you need to use spells at the chest with armors and also at eah companion and then we do not need you to provide armor ID's nor Companion ID's...   If we use the Companion Mod, you can alway load it with all your armor mods activated. You decide if we make this more common or detailed.  :D



#6
RomanR

RomanR

    Enthusiast

  • Members
  • PipPip
  • 136 posts

If I may, I would rather use a field for it, because with growing number of these sets the handling of variables will be difficult. 

 

Record structure could be for example like this:

"head"

index:  +0 : some id for this set (number or name)

            +1 : number of clothes or armor (3 - following Pellape's example)

"body"

            +2 : ArmorID01Cuirass \

            +3 : ArmorID01Boots    | - again Pellape's example

            +4 : ArmorID01Gloves  /

            ........................................

            +5 begin of head for next set ....

 

Also for easier work it would be needed to implement some "service" functions which adds, finds and removes sets, but in the end it's worth it in my opinion. 


Edited by RomanR, 25 February 2022 - 03:31 PM.


#7
Pellape

Pellape

    Faithful poster

  • Members
  • PipPipPipPip
  • 2,085 posts

Well OBSE made it easy to really work with sets, in arrays. See an array as a spread cheat or sheet or what ever. it is spellled.

 

So we need 5 arrays. Each array will have a index for each set as a set well mostly has 5 pieces and if only has 2 or one, we add an EMptyRef to that slot as an array must have data in any form.. Let me try to explain. For index 1 we have leather:

 

Helm[1] = LeatherHelm

Glove[1] = Leather glove

 

Lets have Iron for index 2

 

Helm[2] = IronHelm

Glove[2] = Iron glove

 

Lets make a variable called: RandomSetINT

 

Short RandomSetINT

 

So we called RND with

 

Set RandomSetINT to rand 1 2

 

So now we get 1 or 2 random....

 

If we have 50 sets, we use:

 

Set RandomSetINT to rand 1 50

 

So then we have a number between 1 to 50

 

Set the TodaysSet if we get the randomNumber 2 with:

 

Let TodaysHelmetREF :=  Helm[RandomSetINT]

Let TofaysGlovesREF := Glove[RandomSetINT]

 

 

Simple as that. We now have a proper database and your companions get proper sets. If you ask me, mixed sets always looks stupid and then it will not make them look fancy, no matter how much their boobs are bouncing    :D  Not if you ask me they will not.  I love mixed sets and some order...    :wink:

 

Arrays and databases rules.  So damn coool...    :wink:

 

SO then we end the code with counting all different stuff they have, removing it and adding it into their closet and grabbing the new gloves and helmet with:

 

Companion01Ref.Additem TodaysHelmetREF 1

Companion01Ref.Additem TodaysGlovesREF 1

 

 

I wrote the most important functions and we get the others in between later on.  What ye think?

 

When I create Empty eferences, I do it 2 ways and the second one is most correct but both works.

 

Set EmptyREF to 0

Let ThisARR[0] := 0

Let ThisARR[1] := EmptyREF

 

Let HelmetRef := ThisARR[0]

What an empty REF looks like is 00000000

So if we use the 0 in ThisARR[0] and put it into HelmetREF, it will end up as 00000000 but it can be used for any type, Short, float, string and references. It is nothing else than just a simple ASCII sign with a value of FF hex, max 256 dec  ;)

 

Using or missusing strings will cause Stringbloats in the OBSE save file, just so you know....  :wink:


Edited by Pellape, 26 February 2022 - 11:16 AM.


#8
RomanR

RomanR

    Enthusiast

  • Members
  • PipPip
  • 136 posts

Well, after all, there is only one question to consider - how to handle sets with different pieces?

 

Setting will be easy - with Pellape's approach you simply set missing parts to 0 in their field index. Regarding equipping them I leave it to Staurolite's choice, if she wants also unequip the pieces from another set or not. 



#9
Pellape

Pellape

    Faithful poster

  • Members
  • PipPipPipPip
  • 2,085 posts
Add ID's so I can put together some code that will be useful. Group them into groups like this:
 
IDHelm1  (can be a hair too)
IDGlove1
IDCuirass1
IDGreaves1
IDBoots1
 
IDHelm2  (can be a hair too)
IDGlove2
IDCuirass2
IDGreaves2
IDBoots2
 
IDHelm3  (can be a hair too)
IDGlove3
IDCuirass3
IDGreaves3
IDBoots3
 
 
The code will start like this:
Scn RomClothRandomizerQSTSCR

; Rom as in RomanR, QST as in a QST script, SCR as in Script

; Declaring the database

Array_Var HelmetARR
Array_Var GloveARR
Array_Var CuirassARR
Array_Var GreavesARR
Array_Var BootsARR

Short RandomArmorSet
Short RandomArmorMAX
Short CurrentHour
Short Turn
Short State

Ref EmptyRef

Begin GameMode

; Initiating the database

	If ( GameHour > 2 )
		Set CurrentHour to GameHour
	Endif
	
	if ( GameHour > 3 && CurrentHour == 2 )
		Set CurrentHour to 3
		Set State to 1
	Endif

	If ( State == 1 )

		Let HelmetARR 	:= ar_Construct Array
		Let GloveARR 	:= ar_Construct Array
		Let CuirassARR 	:= ar_Construct Array
		Let GreavesARR 	:= ar_Construct Array
		Let BootsARR 	:= ar_Construct Array
		Let Companions 	:= ar_Construct Array

		; Lets fill the database with something. Index Must start with 0 and counting up. If you miss a number, the database will be useless and errors will pop up in the console

		Let HelmetARR[0] := 
		

		Let GloveARR[0] :=
		
		
		Let CuirassARR[0] :=
		
		
		Let GloveARR[0] :=
		
		
		let BootsARR[0] :=
		
		

		Set EmptyRef to 0

		Let Companions[0] := EmptyRef
		
		
		Set State to 2
		
	Endif
	
	; Lets randomize the companions
	
	
	If ( State == 2 )
		: Lets check the sizes of the first database and also of the companions Database
		Let RandomArmorMAX := ar_Size CuirassARR
		Set RandomArmorINT to RAND 0 RandomArmorMAX
	Endif
	
That's what I managed to do so far as I now need to take a break.  We take one step in a time.  read through the code and see if it make sense. if you run it in this condition, without adding anything to index 0 will make errors into the console.
 
Adding the Companions is done either with a spell or static, you decide. If you prefer a spell, this script will become more useful, for anyone you add into the database as companions, well add every damn NPC into it as you want really, just shoot them with a Illusion spell we will make later in 5 rows, simple as that.  :D

Edited by Pellape, 26 February 2022 - 03:28 PM.


#10
Pellape

Pellape

    Faithful poster

  • Members
  • PipPipPipPip
  • 2,085 posts
Hopefully the code will only run ones 03:00 to 03:02 each night 2 min in game is 1 second if you use default gametime but it doesn't matter really.    :D

GameHour is a default game vartiable that is a float and by adding the vallue to a short, truncates every decimal. so Gamehour 3.34 will become 3 and 2.78 will become 2

Edited by Pellape, 26 February 2022 - 03:33 PM.






Also tagged with one or more of these keywords: clothing, follower, random

IPB skins by Skinbox
Page loaded in: 4.153 seconds