Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

tjhm4

Uploaded by

tjhm4

Virus scan

Safe to use

Tags for this mod

About this mod

Choose how many perk points you gain on level up through an MCM.

Requirements
Permissions and credits
Changelogs
Donations


What it does

Configurable Perks Per Level provides a Mod Configuration Menu (MCM) that lets you choose how many perks you get on level up (in addition to the base game's one). Decimal values are permitted, for instance, 0.5 gives you one extra perk point every other level, while 1.34 gives you two extra perk points every third level, but one extra perk point otherwise. You can also change this value at any time and choose whether or not to apply the current value retroactively.

By default, you gain the additional perk points simply by exiting the skills menu after leveling up (i.e. after choosing your stat increase in the skills menu). But you can gain additional perk points on sleeping instead.



MCM configuration

The mod can be configured in the MCM with the three following options:

Bonus perks per level - How many perk points you gain per level in addition to the one you get from the vanilla game. Defaults to 1 (i.e. 2 perk points per level) and ranges from 0 to 5. Decimal values are permitted: 0.5 is one extra point every other level, 1.34 is one extra point every level, but two extra points every 3rd level, and so on. If you change the value mid game, you will proceed with the new value, but it will not retroactively apply to past level-ups unless you click gain perk points retroactively (see below).

Notifications - Whether or not the notification lets you know if you've got any extra perk points after level up.

Perk points on level up - Whether or not you gain perk points as soon as you exit the skill menu after leveling up. Defaults to true.

Perk points on wake up - Whether or not you gain perk points by sleeping. Defaults to true, but will only activate if perk points on level up is turned off. If you turn both options off, then you'll never gain additional perk points, so probably best not to do that!

Gain perk points retroactively - If you click this the game will retroactively apply the current value of bonus perks per level to all prior levels. This can cause you to gain a lot of extra perk points on your next level up, or even "owe" perk points back. After selecting this option a pop-up message box will let you know our balance. If you are owed points you still need to level up to gain them. See the following two examples for more information:

  • Imagine you are level 10, and had set bonus perks per level to 1. So far you would have gained 9 bonus perk points. If you now change bonus perks per level to 2, you will gain 2 bonus perk points on each level up going forwards. But if you change bonus perks per level to 2 and click gain perk points retroactively, the game will recognize that you should have received 18 bonus perk points so far, and so will "owe" you an additional 9 perk points. As such, at the next level up you will gain 11 perk points (2 for this level up, and the 9 you are owed), and you will gain two perk points from then on.
  • Imagine you are level 10, and had set bonus perks per level to 1. So far you would have gained 9 bonus perk points. If you now change bonus perks per level to 0.5, you will gain 1 bonus perk point on every other level up going forwards. But if you change bonus perks per level to 0.5 and click gain perk points retroactively, the game will recognize that you should only have received 4 bonus perk points so far, and so you will "owe" the game 5 perk points. The engine cannot take perk points away, and so instead you will simply not gain any extra perk points until you pay back your 5 perk point debt - in this case it will take 10 levels as bonus perks per level is set to 0.5.

Reset character - This resets the mod according to your character's current level. Any owed perks points (from applying settings retroactively) will be forgotten about and the mod will continue as if all is normal. This is only useful if you have switched characters with a mod like proteus.

Technical information

Requirements

SKSE - Required by SkyUI
SkyUI - For the MCM.

Installation
Install through your mod manager of choice. If installing on an existing save, use the "gain perk points retroactively" option in the MCM to apply settings to prior level ups. You will get bonus perk points starting on your next level up. If the MCM never appears, type "setstage SKI_ConfigManagerInstance 1" in the console.

Updating
If an update changes script properties it will require a new game, check the change logs for more information.

Uninstallation
Safe to uninstall at any time, but to be extra safe just set bonus perks per level to 0 in the MCM and then uninstall before starting your next playthrough. Perk points already acquired cannot be removed.

Compatibility
Compatible with everything. If you use proteus and switch between different characters you will want to reset character after each switch.

Performance impact
None.


How it works

At startup the player is given an ability that activates at each level up. While active, a script will run either immediately or when you sleep, depending on your selections in the MCM. The script compares how many extra perk points the player should have been given for their current level, to the number of extra perk points they have been given so far. Whatever the difference is, the player is given that many perk points and a notification is displayed. Here's the script:

Spoiler:  
Show

Scriptname cppl_script extends ActiveMagicEffect  
globalvariable property cppl_bonus_perks_per_level auto
globalvariable property cppl_player_level auto
globalvariable property cppl_bonus_perks_total auto
globalvariable property cppl_bonus_perks_given auto
globalvariable property cppl_notification auto
globalvariable property cppl_check_on_level_up auto
globalvariable property cppl_check_on_wake_up auto
actor property PlayerRef auto

event oneffectstart(Actor akTarget, Actor akCaster)
RegisterForSleep()
if cppl_check_on_level_up.getvalue() == 1
check_for_perks()
endif
endevent

event onsleepstop(bool abInterrupted)
if cppl_check_on_wake_up.getvalue() == 1
check_for_perks()
endif
endevent

function check_for_perks()
cppl_bonus_perks_total.setvalue(cppl_bonus_perks_total.getvalue() + cppl_bonus_perks_per_level.getValue()*(PlayerRef.getlevel() - cppl_player_level.getvalue()))
if cppl_bonus_perks_total.getvalue() >= (cppl_bonus_perks_given.getvalue() + 1)
int perks_to_gain = Math.floor(cppl_bonus_perks_total.getvalue() - cppl_bonus_perks_given.getvalue())
if cppl_notification.getvalue() == 1
if perks_to_gain == 1
debug.notification("Perk point gained.")
else
debug.notification(perks_to_gain+" perk points gained.")
endif
endif
game.addperkpoints(perks_to_gain)
cppl_bonus_perks_given.setvalue(cppl_bonus_perks_given.getvalue() + perks_to_gain)
endif
cppl_player_level.setvalue(PlayerRef.getlevel())
endfunction


The apply perk points retroactively function just recalculates how many perk points you should have been given based on the current value of bonus perks per level. The MCM script is long, but here's the relevant section:

Spoiler:  
Show

SetToggleOptionValue(cppl_reset, 1)
cppl_bonus_perks_total.setvalue( (cppl_player_level.getvalue() - 1) * cppl_bonus_perks_per_level.getvalue() )
int perks_owed = Math.floor(cppl_bonus_perks_total.getvalue() - cppl_bonus_perks_given.getvalue())
if perks_owed == 0
    debug.messagebox("Settings applied retroactively. You neither owe, nor are owed, perk points.")
elseif perks_owed > 0
debug.messagebox("Settings applied reotroactively. Sleep or level up to gain an additional "+perks_owed+" perk points.")
else
debug.messagebox("Settings applied reotroactively. You now owe "+(perks_owed*-1)+" perk points.")
endif
SetToggleOptionValue(cppl_reset, 0)



My other mods

Building Your Character - diverse and fun builds with strengths and weaknesses
Master of One - A perk overhaul that transforms perks from generic character progression into a means to craft unique and specialized builds.
Curse of the Firmament - A standing stones overhaul that emphasizes tough choices.
Legacy - A race overhaul that bring strengths and weaknesses to each race.
Acolyte - A progressive-yet-unobtrusive religion overhaul with a long path to divinity.

Enemies and Combat - challenging, varied and fair combat
Know Your Enemy (armor modulepatcher version) - A resistance and weakness overhaul for enemies and armors.
Know Your Enemy 2 (armor moduleintegration patch) - An upgraded resistance overhaul: more damage types, more configuration, more polish.
NPC Stat Rescaler - A patcher that adjusts player and NPC stats for faster, fairer, and less spongy combat.
Enemy Releveler - A patcher that adjusts NPC levels to truly delevel the world.

Stats and stat growth - drawing out character growth to stave off premature godhood
Exhaustion - Incremental Fatigue - An ultra-lightweight injury/fatigue system.
Exercise - Incremental Growth - An add-on for Exhaustion that converts fatigue into stat growth.
Geometric Stat Growth - Stats grow by a configurable percentage on level up, instead of a fixed value.

Miscellanea
Challenging Spell Learning
 - Spell Tomes trigger a costly ritual you must pass to learn spells.
Trainers Galore - An expansion of the training system designed for "training only" leveling.
Pick Your Poison - An alchemical handbook to support strategic foraging.
Configurable Perks Per Level - An MCM to edit how many perk points you get on level up.
XP Editor - A patcher that adjusts xp gain and leveling.
Sightseer - Standing Stones - Guidebooks for the standing stones, collectibles to find, and a hidden quest to unite them.

Mod Lists
Thoughtful Skyrim - A small, gameplay-focussed modlist that rewards preparation and planning.