Ascension Match History Add-on

:placard: Summary This is a add-on for the Ascension Stash plugin. Features streaks, color coding, and badges.
:link: Repository https://github.com/Servbot91/HotorNot-Stat-Addon/tree/main/plugins/HotorNotAddon
:information_source: Source URL https://raw.githubusercontent.com/Servbot91/HotorNot-Stat-Addon/main/plugins/manifest.yml
:open_book: Install How to install a plugin?

Ascension Stats Add-on

Add-on for the Hot or Not Stash plugin. Features streaks, color coding, performer win/loss ledger and accumulated streaks.

What is the Ascension plugin?

The Hot or not plugin for Stash uses an ELO-style rating system to rank performers and images through head-to-head comparisons. You can find find it here


Features

The Ascension plugin adds custom values to each performer detail page detailing total matches, last match, wins, losses, current streak, best streak and worst streak. This add-on formats the values in a more palatable structure, adds streaks, and color coding for wins\losses. Custom fields is also auto expanded so these values display on load. Supports mobile, and values are displayed as a single column.

Streaks

Streaks are marked by badges and are as follows:

Streak values 3-5: :fire:
Streak Values 6-9: :gem_stone:
Streak Values 10-14: :spade_suit:
Streak Value 15+ : :crown:

Easily modifiable via JS. If the streak is broken, the badge resets.

Best Streak

The best streak field retains all of the highest obtained streaks. A streak of 15+ for example will show :crown::spade_suit::gem_stone::fire: next to the performers best streak number. If a performer only has a best streak value of 8 for example then they only show :gem_stone::fire: next to their best streak.

Performer Ledger

The performer ledger tracks the last 10 win\losses for a performer. The win\loss cards contain win\loss performer name, the value their rank updated to, color coded for win\loss, and a link to the performer profile.

Installation

This plugin requires the Ascension plugin

  1. Settings β†’ Plugins β†’ Available Plugins
  2. Add Source β†’ Name: Ascension Match History Add-on
  3. Source URL: https://raw.githubusercontent.com/Servbot91/HotorNot-Stat-Addon/refs/heads/main/plugins/manifest.yml
  4. Click checkbox, Install
  5. Reload Plugins

Release Notes

  • 03-28-2026 - Version 1.3:

    • Tasks are now specific to hot or not fields. When wiping match history, it will not wipe all custom fields but only fields related to the hot or not plugin

    • Added wipe all performer ratings option

    • Fixed styles conflict with other plugins preventing performer page to load

  • 03-19-2026 - Version 1.2: Updated to include the new performer ledger feature prodded in update release notes of 3.1.0 - Added task to wipe custom fields or performer match history

  • 02-12-2026 - Version 1.1: Fixed backend UI errors when not in performer card.

Screenshots


Screenshot 2026-02-10 120427
Screenshot 2026-02-10 220314
Screenshot 2026-02-10 220227

3 Likes

Great addon! Any thoughts why I’m getting this error in the logs ? Error loading plugin C:\Users\….\.stash\plugins\HotorNotStatsDisplay\HotorNotStats\HotStats.yml: plugin ID HotStats already exists ?

Are you using the senpai theme by chance?

Not using the Senpai theme.

Thanks for calling this out. It is fixed, the github workflow was busted and has been corrected now. You should be able to fix by uninstalling via the UI. If it persists delete the folder from the plugins folder location then reinstall. Wont be an issue going forward.

I kept running into a weird read-only error in an entirely different plugin and pretty sure I have traced it back to this line here. Any chance this const variable could get a stronger name? Having a global const named simply style is pretty likely to conflict with anyone using a throw away variable of the same name. I’ve temporarily fixed this locally myself by renaming it but getting it fixed permanently would be nice so it doesn’t revert in the next update.

An example of this conflicting is in this plugin which uses style as a throwaway in a for loop. Example in code below. If you have both of these plugins enabled it errors out on rendering the performer page.

1 Like

wrapping everything in a function should do the trick

Yo thanks for letting me know. Since you got it working locally ill take my time pushing a hot fix but ill take care of this for you probably by the weekend.

1 Like

Should be good now. Let me know if its still a problem.

Ver 1.3 Fixes

  • Tasks are now specific to hot or not fields. When wiping match history, it will not wipe all custom fields but only fields related to the hot or not plugin
  • Added wipe all performer ratings option
  • Fixed styles conflict with other plugins preventing performer page to load

Patched for stash release v0.31.0. Corrected some minor CSS Styling bugs while I was at it.

Post the update, the details are shown as plain text. Pre update it was correct.

You need to update the plugin. My last post corrected this in version 1.3.1. Its due to the new stash release.

Edit: I need to add some backwards compatibility. Ill do that in the next hour.

I just pushed v1.3.2. Can you test and screenshot how it looks??

To be honest my dev env doesnt account for schema migrations but def something I should probably consider in the future.

now its working thanks

1 Like