Jump to content

Which script governs the Player's Skill Leveling when a skill is used?


Recommended Posts

Skill leveling itself is hardcoded. Experience gained per use is not(but difficult to manage through scripting without using SKSE). Checking for skills that have leveled is through OnStoryIncreaseSkill. Problem with that event is, it wont fire for multiple skills level gains. If a skill gains 3 levels at once, the event fires only once, so you have to somehow account for such an occurrence.

Link to comment
Share on other sites

Thanks. I have a modded set of Skill books which give me 15 levels per Skill per book for that Skill, so I know it can handle multiple levels to one skill at once - you get several chances to pick HMS upgrades, depending on the number of full character levels each Skill book's bonus gives you. Reading all the Skill books in one sitting at Level 1 will add 73 levels to your character, so Level 74 + whatever increases you achieved getting from the cart to Helgen Keep.

 

However, what I'm actually looking for is a way to apply leveling-through-use to Followers, so their Skill levels increase like the Player's does, and not just tied to their overall level.

 

Now, what factors go into XP-per-use? I know target validity is one (can't level up on a vanilla training dummy, or a tree, or a corpse), and surely Actor Value (Base or Current?), but what about attack power? Do power attacks gain more XP than standard attacks? Do certain skills influence overall level more than others? I would think so, using Class Skill Weights (more Weight to a Skill means more leveling for it). I know Racial bonuses to Skills are a one-time deal - added to the Base and then not heard from again.

 

If this has been done already, I'd like to have a look at it.

Link to comment
Share on other sites

I believe it has been done before (as far as the companions leveling), given I can't recall the name of the mod. All hits gain the same amount of XP. One handed attacks, one handed power attacks yield the same amount of XP, barely drawn and fully drawn bow shots give the same XP, etc etc. If you're wanting to change skill rates, per se, I suggest Elys' Community Uncapper, which is highly configurable. It is done through an SKSE extension though, not through a script so much. Or maybe I'm just misunderstanding what you're looking for :P

Link to comment
Share on other sites

Not looking to change the rates, just looking for a way for Followers' Skill Use to result in their Skills leveling up. As of now, it's tied to their overall level, which is tied to the Player's overall level.

For Followers who are level-matched to the Player (which is most of them), they can never be above an enemy which is leveled to the Player. For those who are leveled below the player by default (Roggi Knot-Beard and Sven are both 0.75 of the Player) they will always be below the Player.

 

I do understand that this could result in a Follower being leveled well above the Player, and several Followers being disparate in their leveling, if some are given the bulk of the workload while others are not working as hard. This is not an issue, so long as enemy scaling is matched to the Player and not the Follower. I do also realize this means leveled items will always be at the Player's level, which means you can't put Followers in gear that matches their level.

 

I'm rebuilding my Improved Housecarls and Hirelings mod, and while I currently have several of them set some amount above the Player to reflect their experience level, I'd like to add a more realistic, Player-style leveling system for them, where Skill Use results in Skill Level increases, and where Skill Perks are unlocked when they reach the appropriate levels. Currently I've found that Followers can use Perks and cast Spells without meeting the same leveling requirements as the Player is limited to.

Link to comment
Share on other sites

Okay, so you want followers skills to increase. I can only think of one way to accomplish this. It's long, it's tedious, involves more scripting than I'd like to mention, and it probably won't work with all skills. You'll need 2 main scripts:

 

Main Leveling Script:

 

 

ScriptName NamedLevelScript extends Quest

Actor Property Follower Auto

Function XP(string skillname, float xp)

If skillname == "onehanded"
 Follower.AdvanceSkill("One-Handed" xp)
Elseif skillname == "twohanded"
 Follower.AdvaneSkill("Two-Handed", xp)
;;so on for each skill

EndFunction

 

 

 

I said you only need 2 scripts, but you need a script for each skill, but here's an example for Destruction

 

Destruction Script:

 

 

ScriptName DestructionXP extends activemagiceffect

NamedLevelScript Property Fetch Auto

Event OnEffectStart(actor target, actor caster)

 Fetch.XP("destruction", 4)

EndEvent

 

 

 

You may be thinking, "Oh, that's not too bad". However, you have to script each skill, attach the appropriate scripts to EVERY spell and EVERY weapon for the follower to actually be able to utilize it. I may be wrong about that and there could be some way around this, but nothing comes to mind at the time. Also, for the record, I don't even think followers have an incremental experience increase to their skills for this to even work. So, there is a good chance, that this may not even work. Hell, the AdvanceSkill function, as far as I know, can only be used on the player. It's the only method I could think of though, so maybe it will work, maybe not *shrug*

 

 

-Edit, if followers do NOT have incremental experience gains toward levels, then this gets even more complex, but it is not, I'll repeat that, IS NOT impossible. You'll have to modify and expand upon the first script, and more or less create an entire leveling system for the follower. This is something I am quite accustomed to, so if you find yourself needing help with it, let me know.

Edited by Rizalgar
Link to comment
Share on other sites

Okay, so you want followers skills to increase. I can only think of one way to accomplish this. It's long, it's tedious, involves more scripting than I'd like to mention, and it probably won't work with all skills. You'll need 2 main scripts:

 

Main Leveling Script:

 

 

ScriptName NamedLevelScript extends Quest

Actor Property Follower Auto

Function XP(string skillname, float xp)

If skillname == "onehanded"
 Follower.AdvanceSkill("One-Handed" xp)
Elseif skillname == "twohanded"
 Follower.AdvaneSkill("Two-Handed", xp)
;;so on for each skill

EndFunction

 

 

 

I said you only need 2 scripts, but you need a script for each skill, but here's an example for Destruction

 

Destruction Script:

 

 

ScriptName DestructionXP extends activemagiceffect

NamedLevelScript Property Fetch Auto

Event OnEffectStart(actor target, actor caster)

 Fetch.XP("destruction", 4)

EndEvent

 

 

 

You may be thinking, "Oh, that's not too bad". However, you have to script each skill, attach the appropriate scripts to EVERY spell and EVERY weapon for the follower to actually be able to utilize it. I may be wrong about that and there could be some way around this, but nothing comes to mind at the time. Also, for the record, I don't even think followers have an incremental experience increase to their skills for this to even work. So, there is a good chance, that this may not even work. Hell, the AdvanceSkill function, as far as I know, can only be used on the player. It's the only method I could think of though, so maybe it will work, maybe not *shrug*

 

 

-Edit, if followers do NOT have incremental experience gains toward levels, then this gets even more complex, but it is not, I'll repeat that, IS NOT impossible. You'll have to modify and expand upon the first script, and more or less create an entire leveling system for the follower. This is something I am quite accustomed to, so if you find yourself needing help with it, let me know.

 

Thanks!

I'll have to do some in-game testing to see if NPC skill use is actually being tracked.

 

Followers are basically friendly NPCs, and their skills are gained in a different way: https://www.creationkit.com/index.php?title=Class

Thanks. I actually forgot about the CK WIKI lol

I have been going through the various Classes lately since redesigning the mod, paying closer attention to that and Combat Style than I did before, so I had most of that figured out.

I've had to reassign the Classes of several Followers, as well as change their Combat Styles. Some were set to 1H Class but 2H Style, some were set to a Class that had no melee skills but were given a Combat Style that included more melee than I'd like (csHumanMagic for one). Others were set to utterly useless Classes, like CombatMystic, which has Weights to Alteration, Illusion, and Restoration, but nothing (or minimal) to Destruction or Conjuration.

 

So, based on that, it seems that only Player progression is tracked, and then NPCs get a full level with Skill increases based on their Class weights.

 

Hmmm.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...