Skip to main content

· 3 min read
rgantzos

ScratchTools previously used cloud variables to automatically verify users with the ScratchTools servers. However, ScratchTools has recently switched to Scratch Auth, instead.

Why the change?

This change has come primarily because Scratch's cloud data servers are broken. You may notice this whenever you try to view cloud variable history for projects. This means that ScratchTools is unable to see which users are verifying, and therefore can't verify that a user is actually who they say they are.

Without the ability to verify, we couldn't protect ScratchTools. Verification made sure that users could only set their own display names and emoji statuses, or fill out feedback in the extension under their own username. It also affected many other parts of ScratchTools. Due to this, we had to disable multiple features, the in-extension feedback system, and the support center chat.

In addition to this, the Scratch Team does not show any interest in fixing the issue. It has been reported numerous times on the Scratch website community, as well as the forums. While there have been responses to the reports, nothing has been fixed. The issue has existed for months.

What does this mean for me?

When verifying with ScratchTools, you will be redirected to Scratch Auth. Once verifying, you will be sent back to ScratchTools. Once you verify once with Scratch Auth, you can save your username. That way, you can log in with just the click of a button.

The entire process will take less than 5 seconds on average once you save your profile.

Here's when you would need to verify with Scratch Auth:

  • Changing your display name
  • Changing your emoji status
  • Opening a support chat with the developer team
  • Submitting feedback via the extension

Changes to display names and emoji statuses

With these new changes, we've made it even easier for you to update your display name and emoji status. Instead of using a modal to update each one, we've made a dashboard where you can change both of them easily!


Changing your emoji status and display name is even easier now. It will also make it a lot easier when ScratchTools begins to add more profile customization features.

· One min read
rgantzos

To ensure a smooth and enjoyable user experience, we implemented a caching system that temporarily stores project data on our secure servers. However, we recently encountered a challenge due to limited database space, which led us to make some necessary adjustments. Unfortunately, this meant that we had to remove all previously generated access links. We sincerely apologize for any inconvenience this may have caused. Rest assured, we have taken this opportunity to improve the system for an even better user experience moving forward.

With our latest enhancements, projects will now remain cached for a generous duration of 7 days. This extended caching period provides enough time for others to access, engage with, and appreciate your creative endeavors. Whether seeking feedback, collaboration, or simply sharing your coding with the Scratch community, the Unlisted Projects feature in ScratchTools has got you covered.

It's important to note that if a project gets cached again within the 7-day window, the caching timer will reset, ensuring that your projects remain accessible for an extended period. This way, you can continue to gather feedback, collaborate, and witness the impact of your creations within the vibrant Scratch ecosystem.

· 3 min read
Scatt

We have some exciting news for you! ScratchTools, the ultimate browser extension designed exclusively for Scratch, has just released a brand new feature that will enhance your Scratch experience like never before. Now, you can easily see which Scratch users are online, connecting you with a vibrant community of fellow coders and creators.

The Online Status Feature

We're thrilled to announce the latest addition to ScratchTools: the Online Status feature! This exciting feature allows you to see if other Scratch users are online, enabling you to connect, collaborate, and explore the Scratch community in real time. Imagine the possibilities of being able to interact with like-minded creators, exchange ideas, and seek assistance from others who share your passion for coding.

However, it's important to note that the Online Status feature is only available for users who have installed ScratchTools and have specifically enabled this feature. By installing ScratchTools and enabling the Online Status feature, you'll join a growing network of Scratch users who can easily connect and collaborate with each other, fostering a sense of community and unlocking new opportunities for learning and creativity.

How to Get ScratchTools

Installing ScratchTools is quick and simple. Just follow these easy steps:

  1. Visit our website at scratchtools.app to learn more about the extension and its features.
  2. From our website, click on the download link to install ScratchTools for your preferred browser (Chrome or Firefox).
  3. Once installed, open Scratch on your browser and navigate to the ScratchTools settings page.
  4. On the settings page, locate the Online Status feature and enable it to start seeing who's online.

Join the ScratchTools Community

By installing ScratchTools and enabling the Online Status feature, you become part of an ever-growing community of Scratch enthusiasts who are passionate about coding, creativity, and collaboration. The ScratchTools community offers a wealth of knowledge, resources, and support that can inspire and empower you on your Scratch journey.

If you love Scratch and want to enhance your experience on the platform, ScratchTools is the perfect companion. Join thousands of other users who have already discovered the power of this extension and its numerous features.

Contribute to ScratchTools

ScratchTools is an open-source project, and we welcome contributions from the community. If you have programming skills, artistic talent, or ideas to improve ScratchTools further, we encourage you to visit our GitHub repository at github.com/STForScratch/ScratchTools. Together, we can continue to make Scratch better than ever.

Don't miss out on the opportunity to connect with the Scratch community like never before. Install ScratchTools today and unlock the Online Status feature to see who's online on Scratch. Let's code, collaborate, and create together!

Stay connected with ScratchTools:

· 4 min read
rgantzos

As of ScratchTools v2.25.0, there's a new version for making ScratchTools features. It's called Feature v2, and makes it easier for developers to make new features and edit existing ones. I'll walk you through the changes that this new version brings. Head's up: Feature v2 is, in most cases, the only acceptable format for new features that you may want to add to ScratchTools. This means that all features should be made in Feature v2 before opening a pull request to the repository.

Feature File

In the features.json file, here's what a normal feature would look like before Feature v2:

{
"title": "Custom Studio Section",
"description": "On the homepage of the Scratch website, the newest projects from the studio of your choice are displayed above the Featured Projects.",
"credits": ["rgantzos"],
"urls": ["https://scratch.mit.edu/users/rgantzos/"],
"file": "custom-studio",
"tags": ["Featured", "New"],
"type": ["Website"],
"options": [
{ "id": "Studio ID", "name": "Studio ID", "default": "27205657" }
]
}

With Feature v2, here's what the changes to the features.json file would look like:

{
"version": 2,
"id": "emoji-status",
"versionAdded": "v2.29.0"
}

Yeah- it's a lot simpler. And organizing the features is easier than ever. Speaking of organizing features, here's how it works.

Feature Folder

Every feature has an id. This replaces the file key that is used in the features.json file in Feature v1. While the id remains in that file, a new folder is created within the /features/ directory, and the folder is named after the id.

Inside the folder you've made, create a file called data.json. This is where the feature's information goes. Here's what it looks like:

{
"title": "Emoji Statuses",
"description": "Set the status on your profile to an emoji. Other ScratchTools users will be able to see this status.",
"credits": [
{ "username": "rgantzos", "url": "https://scratch.mit.edu/users/rgantzos/" }
],
"tags": ["Featured"],
"scripts": [{ "file": "script.js", "runOn": "/users/*" }],
"styles": [{ "file": "style.css", "runOn": "/users/*" }],
"dynamic": true,
"default": true,
}

Here's what each key means:

title (string)

This is the title of the feature. It's how it's displayed in all languages on the settings page, as well as the website.

description (string)

This is the feature's description. Like the title, it will be displayed in all languages on the settings page and website.

credits (object)

This array should include the credits for the feature- who contributed to the feature in a significant way. Each object within the array should have a username key and a url key, both of which are strings. One is the username of the user who contributed, and the other is a link to their profile.

tags (object)

This is an array with multiple strings in it, each one meaning a different thing. Here are the different tags:

  • Featured (only maintainers will add this tag, usually during release)
  • Recommended (this a significant feature that users should try)
  • New (this is a new feature)

While tags aren't currently in full use, they will be soon.

scripts (object) and styles (object)

These are arrays that contains all the scripts/styles that the feature should run, and where to run them. Here are the keys that each item in the array should hold: file This is the file to run, relative to the folder itself. For example, if the file's path is /features/myfeaturefolder/script.js, then the it should look like this:

{ "file": "script.js", "runOn": "weWillGetToThisLater" }

The same is true for CSS files, but in the styles key of the data.json file. runOn This is what pages of the Scratch website the specified file should run on. It will never be inserted into other pages of the Scratch website. It's a regex. Here are some examples:

  • Scratch homepage: /
  • Project pages and the editor: /projects/*
  • Profile pages: /users/*

dynamic (boolean)

This specifies whether or not the feature can be enabled/disabled without reloading the Scratch page. If a dynamic feature has styles on an open page of a Scratch website, and the feature is disabled, then the CSS files will automatically be removed from the page.

When disabling a feature with JavaScript on a page (scripts), the file must specify how it should be disabled. Both CSS and JS files will be inserted into the page if they belong to a dynamic feature that has been enabled.

default (boolean)

This determines whether or not the feature should be automatically enabled for users that download the extension. This is usually only added by maintainers when merging a new feature.

Concluding

So, this is what Feature v2 looks like in ScratchTools. All new features should aim to use this new version, and many existing features are being converted into the new Feature version.

· One min read
rgantzos

After over a year, ScratchTools has officially reached 4,000 users worldwide! At the time I'm writing this, it has over 4,300! This is a big milestone, as just a few months ago, we hadn't even reached 1,000 users.

· One min read
rgantzos

Welcome to the official blog for ScratchTools! We'll post developer news and changes here. If you just want the basic ScratchTools news, you can find it on the main settings page of the ScratchTools browser extension, on the left side of the screen!