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 🙏

© 2024 – Pkg Stats / Ryan Hefner

partrick

v1.0.2

Published

SMM2 course editor. Core module for Mario Remaker

Downloads

2

Readme

Partrick

Overview

Partrick is a NodeJS module capable of decrypting, parsing, editing, and encrypting Super Mario Maker 2 courses. These courses can then be injected back into the users save and uploaded publically

It was designed for a course editor I am making and have not yet released called Mario Remaker

Example: Edit impossible course to bypass clear check

// Import tools for course editing
const { encryption, Course } = require('partrick');
const fs = require('fs');

const data = fs.readFileSync('./unbeatable_course.bcd');

// Decrypt the course data
const decrypted = encryption.decryptCourse(data);

// Use decrypted data to create a new Course
const course = new Course(decrypted);

// Trick the game into thinking the course has passed clear check, when in fact it has not
course.management_flags |= 3; // Can be uploaded

// All metadata can be changed
course.name = 'impossible';
course.description = 'I have not cleared this course, yet it uploads. It cannot be beaten';

// Encode and encrypt the edited course
const encrypted = encryption.encryptCourse(course.encode()); // Encode and encrypt the course again

// Save the new course to disk
fs.writeFileSync('impossible_course.bcd', encrypted);

// This course can now be injected back into the users save and uploaded, bypassing clear check

Notes

  1. 3DW support is limited at the moment, due to this being designed for a GUI course editor. Since 3DW uses 3D models and not 2D sprites, it is harder to easily get ahold of and implement these models into this editor, and thus 3DW support is not a priority (though it can be added)
  2. This is still highly unfinished. While it does work, it has some clear limitations
  3. 99% of the object classes are bare-bones and have no API for editing properties
  4. Object-specific blocks of course data are not handled at all, only the generic Objects block is parsed (meaning data like snakeblock nodes is lost at the moment)
  5. The subworld is not implemented at all, instead it is just stitched back to the end of the course data and re-used