[Userscript] Lesson Lock

:warning: This is a third-party script/app and is not created by the WaniKani team. By using this, you understand that it can stop working at any time or be discontinued indefinitely.


A script requested by @ckadioglu. Something like it already existed, but I thought I would make my own take on it.

What it does is display 0 lessons when you have too many items in your system already. By default this is set to a total of 100 apprentice items, but you can change it to be whatever you want, and not just dependent on apprentice items.

Below are the available settings for the script. You have the score, whether and how to display it on the dashboard, whether to display how many more lessons you can do before they lock, and what each type of item is worth. By setting these you can adjust the script to lock lessons whenever you feel is right.

If you set the scores to [2, 1, 1, 0.5, 0.143, 0.0714, 0.0333, 0.00833] the score will reflect the daily number of reviews you are expected to have, given your SRS distribution. (see [Userscript] Expected Daily Reviews)

For now the settings don’t update the page dynamically, so you will have to refresh for them to take effect after change.

It is dependent on WKOF, so make sure you have that installed. If you don’t you will be prompted after installing the script.

Available at

→ The Bearded Goat ←


Ooh, blissful ignorance! :smiley:


What is this? Another @Kumirei masterpiece?

We’re not worthy, we’re not worthy :bowing_man::bowing_woman::bowing_man::bowing_woman:


Thanks! That was really quick and I really appreciate that you took the time.

I don’t really know JavaScript, but I was able to modify the script a bit for my purposes so that it shows exactly how many lessons are “unlocked” out of my available lesson pool as well as display the max number to see how close my current score is to maxing out.


This script works really well with the “Lesson Filter” script. Now after a review session I can see immediately if I have “unlocked” any lessons and use the Lesson Filter to manually set the lesson session item count to the displayed number.

If I had more time I would work on figuring out a way to have the two scripts communicate so that the “Lesson Filter” batch size is automatically set to the unlocked item count calculated by “Lesson Lock”, to have the fully automated kanji.garden self-pacing experience, but that’s more of an extreme luxury at this point.


I love you Kumi but one of these days you’re gonna have to learn how to spell “Enlightened”


Right, right, I completely forgot about that part of the request. I’ll add that to the published script when I get the time.

Good idea. I’ll add this as well. And an option for a percentage instead.

I can’t believe I keep doing this :joy:


Admit it: you did it on purpose to annoy me


Would I really do such a cruel thing?

Really, there are 5 places in the code where I have “enlightened”, and I managed to mess up only the one which people see


Thank you, Kumi! This will be good for people with no self-control when it comes to lessons (aka me).

Also, because it was you I was hesitant to click the link cause I didn’t know if it was a rick roll. Then, I realized there were no other links besides that.


Ooh, maybe you can link this to your “Expected Daily Reviews” script as well! Since the amount of Apprentice items is merely an indication of how busy you’ll get, but the expected daily reviews is much more accurate :wink:

Like for example if you have more than 3000 enlightened items like some people do :kissing::musical_note::notes:, then the average amount of englightened items you get a day is an additional 25 items a day.


Added a setting for displaying how many more lessons you can do. However, I decided not to show the amount you actually have available, only the number you can do before lessons lock.

Added this as a setting, as well as a setting for it as a percentage.

Might not be the most graceful of solutions, but I would just have Lesson Lock write the number of lessons you can do to localStorage, then have Lesson Filter read that. Should be pretty simple, I imagine.

Fixed. Now says “Enlighthened”

I have updated the OP to include a Rick Roll

Could not settle on a good way to include this as a setting, but I put the values you would need to set the scores to in the OP.

v.0.2.0 available at → The Bearded Rick Roll ←


Oh no! You did not @Kumirei:open_mouth::open_mouth::open_mouth: :face_with_hand_over_mouth:




This is perfect, @Kumirei! Thank you!

Just one question: The script updates the number of lessons in the top bar, but not in the big pink box. Is it possible to get it to update the number of lessons in both places?



Updated. Tell me if I broke anything in the process or if you have any other requests

You’re amazing! Thank you so much!


It looks great!


I keep getting a popup that the script needs Wanikani Open Framework to run even though I already have it installed.


Did you make sure to make the the framework run first?

1 Like

I’ve had it installed for weeks as many of my other scripts require it to be installed. Just added this Lesson Lock one today.


Hmm, there doesn’t seem to be a way for it to ask about WKOF if WKOF runs first. What browser are you on?