@Kryx Thanks for all the answers, very helpful. I was curious about this (regarding the class features and changing their text): "To reiterate what I've written before: If the text is more than 10% different it will be replaced." I read through the thread but I must have missed it, I didn't see the 10% different comment anywhere else? I was curious what you mean by that, or how is the 10% different calculated? After doing some testing, it only seems to care about (and change) the NAME of the clsas feature, not the display text / free text, correct? For instance, I changed the name of the feature to include the option: "Fighting Style (Defense)" and then changed the display text & free text to read "While you are wearing armor, you gain a +1 bonus to AC.". When I changed the character's level, it changed the name back to "Fighting Style" but kept my changes in the other fields. So is the only field that gets changed the name? I was wondering what the logic is in changing the name back? The code seems to recognize which feature it needs to change, because I *completely* changed the name so it was 0% the same (as well as the text fields) and it still changes the name back when I level up. Seems odd, if I changed it, why would the code assume I want to change it back? It's not a big deal though and I'm open to explanation I could be convinced why your way is better haha. For now, I will just put the option name (in this case, Defense) in the display text field rather than the name of the feature. It is indeed cool that the sheet automatically puts class features onto it now, when I first started using your sheet about a week ago it didn't do that! In the future, will you implement race features automatically when setting up the character?