variables01-10 on the player

Post » Tue Jun 19, 2012 11:58 am

Does anyone know if its safe to modify the Actor Values variable01, 02, etc. on the player?

The wiki http://www.creationkit.com/Actor_Value
says these values are used by NPCs for various things. Since the player doesn't have to do NPCish tasks, could I modify these with impunity?
User avatar
RAww DInsaww
 
Posts: 3439
Joined: Sun Feb 25, 2007 5:47 pm

Post » Tue Jun 19, 2012 1:49 pm

Wouldn't adding Properties to the player give the same result and be far safer and more compatible?
User avatar
JD FROM HELL
 
Posts: 3473
Joined: Thu Aug 24, 2006 1:54 am

Post » Tue Jun 19, 2012 8:23 am

Undoubtedly for most cases.
What I'm interested in, though, is having access to the players level as an Actor Value Mult in Entry Point perk effects. I could write a simple quest script to track the players level and update the player's variable01 (since there shouldn't be anything else that affects it on the player?).
User avatar
Chloe Botham
 
Posts: 3537
Joined: Wed Aug 30, 2006 12:11 am

Post » Tue Jun 19, 2012 5:21 am

All of them except Variable05 are used in the vanilla game scripts. Idk what for, but you can find them in the .psc source files.
User avatar
CSar L
 
Posts: 3404
Joined: Fri Nov 09, 2007 9:36 pm

Post » Tue Jun 19, 2012 6:32 am

If you want to store data on an http://www.creationkit.com/Actor_Script or other container, I recommend using tokens instead of ActorValues. A token is an unplayable piece of armour, which you can add and remove from an inventory via script, as well as checking the number of a certain type of token in an inventory.

The advantage of this over using a property or a variable is that it is very easily accessible from anywhere, so long as you can get a handle on its container.

The advantage of it over using an ActorValue is that you can have any number of different types of token and you won't have to worry about any compatibility issues.

Cipscis
User avatar
m Gardner
 
Posts: 3510
Joined: Sun Jun 03, 2007 8:08 pm

Post » Mon Jun 18, 2012 10:03 pm

If you want to store data on an http://www.creationkit.com/Actor_Script or other container, I recommend using tokens instead of ActorValues. A token is an unplayable piece of armour, which you can add and remove from an inventory via script, as well as checking the number of a certain type of token in an inventory.

The advantage of this over using a property or a variable is that it is very easily accessible from anywhere, so long as you can get a handle on its container.

The advantage of it over using an ActorValue is that you can have any number of different types of token and you won't have to worry about any compatibility issues.

Cipscis

I hate Tokens as they are nothing but a chore to clean up, and I have run into multitudes of Mods that did this very poorly.

Its easier to use Faction Ranks as they can never lead to save game Bloat as improperly handled Tokens can and they can not be tinkered with by secondary mods running item parsing and doing random things to your tokens.

The worst that can happen with Factions is another mod might be able to lower, raise, remove or add you to it at inappropriate times -> which is going to be rare at best.

Factions can do everything that a Token can except run its own Script.

In the end it comes down to what your comfortable using but I make it a rule to never use a mod that uses Tokens -> to many bad experiences with them.
User avatar
Louise Dennis
 
Posts: 3489
Joined: Fri Mar 02, 2007 9:23 pm

Post » Tue Jun 19, 2012 7:48 am

Well, with tokens you have the ability to add more than one, but faction rank is essentially binary (at least that was the case in FONV because the functions to increase/decrease the faction rank per actor reference did not work).
But I agree, I tend to avoid tokens as well as they used to have weird side-effects.

Anyway, as I understand it the OP wants to use an actor value specifically because it can be used to scale values in perk entry points ("Multiply Actor Value Mult"). It's tempting as this is a really simple way to have dynamic perk values, but I would def. try to find another solution as sooner or later you'll run into trouble with this (mainly because someone else will have the same idea).
An alternative method would be to have several entry points with mutually exclusive conditions. If it's fine to only really need ~10 different values or so that should be fine. Alternatively, see if what you want to accomplish really has to be done with a perk or if there isn't another way.
User avatar
Pumpkin
 
Posts: 3440
Joined: Sun Jun 25, 2006 10:23 am

Post » Tue Jun 19, 2012 1:51 pm

Well, with tokens you have the ability to add more than one, but faction rank is essentially binary (at least that was the case in FONV because the functions to increase/decrease the faction rank per actor reference did not work).
But I agree, I tend to avoid tokens as well as they used to have weird side-effects.

Faction Ranks are not binary and have never been, including in FO3/FO:NV -> you have to create each rank starting at "0" and going up to "255" -> more then enough range to store almost anything you want.

Combined with GetFactionRank(GetPCRank in Morrowind) that exists in every game using Beth's engine from Morrowind to Skyrim you can store and check vs any value you want on a per actor basis.

----

As for the OPs problem I would have to test to see if factions would be usable to condition against a perk.
User avatar
Cesar Gomez
 
Posts: 3344
Joined: Thu Aug 02, 2007 11:06 am

Post » Tue Jun 19, 2012 1:10 pm

All of them except Variable05 are used in the vanilla game scripts. Idk what for, but you can find them in the .psc source files.
I know that they're used in scripts pertaining to NPCs, but what about the player specifically? I can change the player's actor values without touching anything on any NPCs.

If you want to store data on an http://www.creationkit.com/Actor_Script or other container, I recommend using tokens instead of ActorValues. A token is an unplayable piece of armour, which you can add and remove from an inventory via script, as well as checking the number of a certain type of token in an inventory.

The advantage of this over using a property or a variable is that it is very easily accessible from anywhere, so long as you can get a handle on its container.

The advantage of it over using an ActorValue is that you can have any number of different types of token and you won't have to worry about any compatibility issues.

Cipscis

I only want to store data on one Actor, the player. And I want that data to be accessible through the entry point value modifiers. Tokens will not give me that functionality, neither will the faction method (though it is a great idea for other things)

Compatibility would be the main issue assuming nothing else touches these variables on the player and me modding them didn't screw something up.
User avatar
Amy Melissa
 
Posts: 3390
Joined: Fri Jun 23, 2006 2:35 pm

Post » Tue Jun 19, 2012 6:17 am

Well, with tokens you have the ability to add more than one, but faction rank is essentially binary (at least that was the case in FONV because the functions to increase/decrease the faction rank per actor reference did not work).
But I agree, I tend to avoid tokens as well as they used to have weird side-effects.

Anyway, as I understand it the OP wants to use an actor value specifically because it can be used to scale values in perk entry points ("Multiply Actor Value Mult"). It's tempting as this is a really simple way to have dynamic perk values, but I would def. try to find another solution as sooner or later you'll run into trouble with this (mainly because someone else will have the same idea).
An alternative method would be to have several entry points with mutually exclusive conditions. If it's fine to only really need ~10 different values or so that should be fine. Alternatively, see if what you want to accomplish really has to be done with a perk or if there isn't another way.

There are other ways to do it, all much more tedious (and to a certain extent less useful compatibility wise). I could make a buttload of different perks all with a set value multiplier and then check the player's level via quest script and add them when/where appropriate.
1. The method using an Actor Value would scale all the way to whatever level the player may achieve (using uncapper/level scaling mods) using only one perk.
2.The method using multiple perks would only scale to whatever level I decide to stop at.
(barring compatibility, method 1 would be as close to perfect as a mere mortal like myself can hope to achieve)

I'd try to stave off compatibility issues by first, informing the community and uploading a basic .esp that updates the variable with level as a modder's resource. (I claim this variable in the name of Spain!)
User avatar
Abi Emily
 
Posts: 3435
Joined: Wed Aug 09, 2006 7:59 am

Post » Tue Jun 19, 2012 7:29 am

Faction Ranks are not binary and have never been, including in FO3/FO:NV -> you have to create each rank starting at "0" and going up to "255" -> more then enough range to store almost anything you want.
Combined with GetFactionRank(GetPCRank in Morrowind) that exists in every game using Beth's engine from Morrowind to Skyrim you can store and check vs any value you want on a per actor basis.
Yes, in theory. The important part was the "at least that was the case in FONV because the functions to increase/decrease the faction rank per actor reference did not work". For the base actor it worked, but if you want to modify the faction rank of a single reference you have to use http://geck.gamesas.com/index.php/AddToFaction.The rank parameter passed to that has no effect, the rank will always be 0. And any other functions to modify the faction rank later for this reference will have no effect. At least thats what I remember from when I last tried it.

There are other ways to do it, all much more tedious (and to a certain extent less useful compatibility wise). I could make a buttload of different perks all with a set value multiplier and then check the player's level via quest script and add them when/where appropriate.
Yes, more tedious, but also safer. IMHO sometimes it's better to compromise on a slightly more tedious solution if that means it's less likely to cause trouble. You can claim this variable, but nobody will know. And maybe nobody will ever care. But the fact that this is probably only easy solution to set dynamic perk values makes me think others may want to do the same at some point.

1. The method using an Actor Value would scale all the way to whatever level the player may achieve (using uncapper/level scaling mods) using only one perk.
2.The method using multiple perks would only scale to whatever level I decide to stop at.
Well, you can work around this to some extend (have the script select the respective perk relative to the max level for example).
User avatar
john page
 
Posts: 3401
Joined: Thu May 31, 2007 10:52 pm


Return to V - Skyrim