[Userscript] WaniKani Dashboard Level Progress Detail 1.0+

: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.

Dashboard Level Progress Detail once again is not being maintained, so I have adopted the script. This is an update to that script.

View code & history at GitHub

It utilises and is dependent on the Wanikani Open Framework, so make sure it is installed!

What’s new:

  • v1.5.0: Fix selector after yet another site update (2023-10-26)
  • v1.4.1: Add spacing after last element of progression (2023-10-07)
  • v1.4.0: Fix selector after site update (2023-09-14)
  • v1.3.5: Bug fix (2023-09-10)
  • v1.3.4: Update common marker style (2023-09-10)
  • v1.3.3: Slightly more spacing in slim view (2023-09-10)
  • v1.3.2: Instantly apply settings (2023-09-10)
  • v1.3.1: Variable scope reforms (2023-09-09)
  • v1.3.0: Fix script after WK broke it (2023-09-09)
Changes before 1.3.0
  • v1.2.5: Fix hide current level setting (2023-05-20)
  • v1.2.4: Add official settings for new configurations (2023-05-20)
  • v1.2.3: Treat kana vocab as vocab (2023-05-20)
  • v1.2.2: Limit selector pursuant to request by @Hubbit200 (2023-03-30)
  • v1.2.1: Support the Real Score userscript (2022-05-01)
  • v1.2.0: Slim view, zero left, & highlight level threshold (thanks @Onusai) (2022-02-14)
  • v1.1.6: Setting to require one item be learned to show a progression (2022-02-07)
  • v1.1.5: Tweak label of gradient setting (thanks @anon33985902) (2022-01-15)
  • v1.1.4: Added settings for gradient colors & reworded some settings (thanks @MagicalGrill) (2022-01-05)
  • v1.1.3: Fixes by @Nightzus, a maximum line length for code readability, and more settings (2021-12-22)
  • v1.1.2: Fixed a bug in the bug fix (2021-12-21)
  • v1.1.1: Fix bug caused by redundant code when passed criteria not used (thanks @MagicalGrill) (2021-12-21)
  • v1.1.0: Opacity multiplier setting & post-guru distinction option (thanks @MagicalGrill) (2021-12-19)
  • v1.0.5: Fix the bug fix because I’m blind (thanks @rwesterhof yet again) (2021-04-06)
  • v1.0.4: Bug fix for max level users (thanks @rwesterhof again) (2021-04-06)
  • v1.0.3: Re-render if cache has changed (2020-10-05)
  • v1.0.2: Official setting for requiring 100% learned and the halfway marker, fixes location bug (2020-09-26)
  • v1.0.1: Official setting for border radius and hiding current level items (2020-09-25)
  • v1.0.0: Initial release - Breeze Dark support, constants, round progress (is also a constant), halfway marker, and settings for what progress to show! Now works with new dashboard (thanks to @rwesterhof) (2020-09-25)

History of how this script got here (this part has nothing to do with me):

  • v0.1.1.6: Minor error corrections (2019-07-18)
  • v0.1.1.5: Fix sorting of display (2018-11-26)
  • v0.1.1.4: Remove bad console logging & remove WK App Store script (2018-10-09)
  • v0.1.1.3: Fixed so it’ll show the non-unlocked items in the currently visible levels (2018-10-03)
  • v0.1.1.2: Fixed so it’ll work right if you’ve just guru’d a level’s kanji to 90% (2018-10-01)
  • v0.1.1: Use WK Open Framework instead of hitechbunny’s backend server, adds 90% marker, etc. (2018-09-18)
  • v0.1.0: Hook into App Store script (2017-11-19)
  • v0.0.3: Add tooltips, and display locked bars. (2017-11-07)
  • v0.0.2: Infinite loop bug fix (2017-11-07)
  • v0.0.1: Initial release (2017-11-06)

Hell ya, looks super good. Thanks man!


Thanks for updating this! I really love the old Dashboard Level Progress Detail script. I was able to change the bar radius constant to 0px in yours to bring it back to the old style of just bars, rather than bubbles (no offense to the new style, it’s cool too).
One thing I spent a few hours fiddling around with the old script to do was keep the default WK level progress section and have the script append the progress bars at the end. I did it in a really weird hacky way since I know nothing about WKOF or js in general, but it worked to let me display my dashboard like this, without having those progress bars appear twice (which happened if I just removed the empty() line)

Is there any chance that this could be a built in feature within the settings menu to not fully empty out the progress section and instead show the progress bars in addition to the base level progress? I like to be able to see all of the individual items for the current level, but be able to get a glance at the progress (especially for vocab) of the previous and current level items.


Released v1.0.1! You can get it on Greasyfork now!

What’s new:

  • Adds official setting for border radius and hiding current level items!

Remember, when you change settings, you need to reload the page for them to take effect. :muscle:


So awesome!! I just decided to look to see if there was something that would show my lingering vocabulary items and I found this right away - love it, love it, love it!! :heart: Thanks for grabbing and running with this. :pray:

1 Like

Hi! Thanks for adopting and improving upon that great Userscript!

It’s working fine for me on WK proper, but here’s something I’ve noticed that might be of interest to you:

I’m getting a weird new error message whenever I try to access the Community Forums from the WK dashboard site.

The thing is:

  1. I have the WaniKani Open Framework installed. Actually reinstalled the latest version, too.
  2. I’m not using the SRS Grid Userscript, nor did I have it installed (not sure if other scripts run it though)

Here’s what I’m packing:

Playing the “switch the latest installed scripts off and on to see what’s having hiccups” revealed that the Dashboard Level Progress Indicator is trying to run on the community forums as well and that’s what causes the message prompt.

Is it intended to do that? Is it just me who’s having that happen?
What can I do to avoid the unwanted redirect to the Open Framework thread?

For now I’ll just have to toggle the script on and off during durtling on the forums… maybe it’s a sign from the Crabigator that I’m shirking my duties. :cold_sweat:

1 Like

Released v1.0.2! You can get it on Greasyfork now!

What’s new:

  • Adds official setting for requiring 100% learned and the halfway marker!
  • Fixes location bug reported by @MiranTideturner, and adds official support for Preview WK.

Ohhhh! So good, thanks! :heartpulse: :sparkles: :sparkles: :sparkles: :sparkles: :sparkles:

Awesome, thanks for the quick fix! :smiley:

1 Like

when disabling the DarkBreeze theme, I see:

but when DarkBreeze is enabled again, the progress bars are not good-looking:

This is not specific to v1.0.2, it was an issue since v1.
As far as I remember, it was not a problem I’d observed with the original script.

It is related to the shadow-box line in my copy of the DarkBreeze:

      .progress > .bar > span {
        background-color: #484848 !important;
        border-radius: 5px !important;
        box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.7), 2px 2px 2px rgba(0, 0, 0, 0.7) !important;
        color: #bcbcbc !important; }

How did you even create that screenshot? When I use the official WK Breeze Dark in Stylus on Chrome, it instantly switches to the dark background.

Does it work properly with the official Breeze Dark?

In addition, what are you asking to change?

I would like to show that I too would like for some way to still see the progress of each individual kanji like @steelviper77 mentioned. Maybe have a hover-over option that displays a list of kanji with their srs indicator like how it is in vanilla.

Is there a particular reason the current script does render - retrieve and then does not render again?
When coming back from a review session, the old script used to render the cached status (pre-review), then retrieved the updates and rendered again - a visual indication of what you accomplished during the review.
Currently, I need to refresh the page to get the updates. Same after lessons - the display is always of the previous state.

I love the updates you’ve done so far (barring the mentioned one :slight_smile: ). I can now choose to keep the bars visible until all of the items are guru’ed at least once!

Version 1.0.3 is out!

What’s new:

  • Re-render if cached JSON has changed (as requested by @rwesterhof)

Shockingly… I found a bug :scream:

line 130

      var top_level = level_list.find(l => l.data.abandoned_at == null && l.data.passed_at == null && l.data.unlocked_at != null).data.level;

throws a

The problem here is that I have no more levels that satisfy

l.data.passed_at == null

after hitting 90% kanji passed on level 60. Assuming level 60 if the level cannot be found makes the script work again.

PS: I added a link to this thread to the Overview of scripts as a replacement for the original Dashboard Level Progress Detail so people don’t keep getting linked to the script that no longer works out of the box

1 Like

Version 1.0.4 is out!

What’s new:

  • Bug fix for max level users (thanks @rwesterhof again)
1 Like

Still get the same error, I locally changed

var top_level = level_list.find(l => l.data.abandoned_at == null && l.data.passed_at == null && l.data.unlocked_at != null).data.level || level_list.slice(-1)[0];


var top_level = (level_list.find(l => l.data.abandoned_at == null && l.data.passed_at == null && l.data.unlocked_at != null) || level_list.slice(-1)[0]).data.level;

Yeah that makes sense - I’m blind. Fixed that!

Version 1.0.5 is out!

What’s new:

  • Fix the bug fix because I’m blind (thanks @rwesterhof yet again)
1 Like

Works perfectly! I’m well aware of how difficult it is to debug situations you can’t reproduce locally - I’ve heavily relied on others loading my scripts too…

1 Like

You can just link to a https://pastebin.com/

1 Like