npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@woodman231/exportedmonstersanctuarydata

v1.0.2

Published

Exported Monster Sanctuary data after using a BepInEx plugin to extract the data.

Downloads

18

Readme

Exported Monster Sanctuary Data

This repository is simply the results of executing this Monster Sanctuary BepInEx Plugin.

A few notes about the plugin and how it might affect the data

  • These objects have fields that are PascalCase and not camelCase like you might expect from typical JSON files.

  • The plugin adds monsters to the player, sets the level of the monster to 42. Removes all equipment (the stick) and reset's the skills.

  • Normalization and denomralization was hard to pick in some cases. Especially when avoiding reference loops. Sometimes only an ID is given, and sometimes additional details about the related data was given directly in the related field. If you feel like the wrong choices were made for normalized data and denomralized data, that is fine. Feel free to modify the source code of the Plugin and run it on your computer to suite your needs better. For a more clear example of what I mean see an Item and compare "UpgradesTo", and "UpgradeMaterials" properties. The "UpgradesTo" is just an item ID that references the next item; however, each "Item" in the "UpgradeMaterials" has the ID and all other properties associated with it.

  • The game uses Unity Engine where a bunch of Classes are Associated with a Game Object. For example there are many Classes that are SubClasses of PassiveSkill. So for every passive skill I kept querying the game object aginst all possible classes in the assembly and anytime it got a non-null game object it got all of the fields from that class and declared that skill as IsClassType, and then ClassTypeProperties were the properties associated with that SubClass. For example Aazerach has the "Enlightened" skill (for light shift). The skill IsPassiveSkill = true, and then was determined to be of type PassiveEnlighten and thus the "IsPassiveEnlighten" = true, and has "PassiveEnlightenProperties" to give those details. This could prove to be helpful in the JavaScript truthy world because if you want to find all IsPassiveElnlightend, it will resolve to false if it is undefined, and will only return true if it is both defined and has the boolean value of true. So for example that same skill did not have the PassiveCurseChain class associated with it. Instead of "IsPassiveCurseChain" = false, just "IsPassiveCurseChain" and "PassiveCurseChainProperties" are undefined for that specific skill.

  • Where possible descriptions were achieved by using a method on the class called GetToolTip, and then color codes, new lines and curly braces were removed.

  • If the skill or item had some "On" methods those "On" method names were extracted and properties like "IsOnReceiveBuffPreCheck" = true were made possible. Again this will either only be defined as "IsOnReceiveBuffPreCheck" = true, or just simply not defined at all. There is no such thing as "IsOnReceiveBuffPreCheck" = false.

Looking for TypeScript types?

Check out the ExportedMonsterSanctuaryDataTypes package. You may also be interested in how that types file was built. Check out the ExportedMonsterSanctuaryDataTypesGenerator package.

Looking for a sample web app that uses this data?

Check out the ExportedMonsterSanctuaryDataExplorer GitHub repository or the running site @ https://woodman231.github.io/ExportedMonsterSanctuaryDataExplorer

DISCLAIMER: This package was made by a fan of the game. I am not associated with Moi Rai Games the developer, nor Team 17 the distributor.