A custom library to interact with Scratch APIs and cloud variables.
This package provides a simple way to authenticate with Scratch, connect to cloud variables, and update their values using WebSockets. It is designed for developers who want to extend Scratch functionality programmatically.
- Authentication: Log in to Scratch using your credentials.
- Cloud Variables: Connect to a Scratch project's cloud variables and update their values.
- WebSocket Connection: Establish a persistent WebSocket connection for real-time updates.
To install @turtle2285/scratch-attach
, run the following command:
bash
npm install @turtle2285/scratch-attach
Here's a basic example of how to use the library:
javascript
import ScratchAttach from '@turtle2285/scratch-attach';
const scratch = new ScratchAttach("your_username", "your_password");
(async () => {
try {
await scratch.login();
scratch.connectCloud("123456789"); // Your project ID
scratch.setCloudVariable("☁score", 100);
} catch (err) {
console.error(err);
}
})();
- Initializes the
ScratchAttach
instance with your Scratch username and password.
- Authenticates with Scratch servers and retrieves a session token.
- Establishes a WebSocket connection to the specified Scratch project's cloud variables.
- Updates a cloud variable's value. The variable name must start with ☁.
- Closes the WebSocket connection.
Important Disclaimer
This library is provided as-is without warranty. The author(s) are not responsible for:
- Account bans/suspensions from Scratch
- Misuse of the library
- Modified versions of the code
- Violations of Scratch's Community Guidelines
Always test with backup accounts and follow Scratch's cloud variable rules.
- Credentials: Never hardcode your Scratch credentials in your code. Consider using environment variables instead.
This project is licensed under the MIT License. See the LICENSE file for details.
Special thanks to the Scratch community, they have helped me. If this does not work and you know python see the official scratchattach for python
For questions or feedback, you can reach me at npm profile.