Skip to content

Conversation

@Alekhyo-Biswas
Copy link

Add HyperStore Extension

📝 Description

I am proposing the addition of HyperStore, a high-performance multidimensional storage extension. This extension allows users to move beyond standard 1D lists to create N-dimensional arrays (grids, cubes, tensors) with built-in memory management and bulk mathematical operations.

Documentation: HyperStore Docs

✨ Key Features

  • Dual Storage Modes:
    • Fixed: Created with specific bounds (e.g., 10x10). Writes outside bounds are clipped. Great for game maps.
    • Dynamic: Infinite expansion. Starts empty and grows automatically as data is written to new coordinates.
  • Bulk Math: Perform operations (Add, Multiply, Normalize, etc.) across entire datasets instantly using optimized JavaScript loops instead of slow Scratch blocks.
  • Developer Suite: Includes 15+ debugging blocks for tracking memory usage, logging internal state to the console, and platform detection.
  • Smart Integration: The "Dump" and "Load" blocks automatically detect Scratch Lists in the project and populate the dropdown menu.

🛠 Technical Details

  • Performance: Uses standard JS Arrays for flexibility, providing a significant speedup over native "List-of-List" logic.
  • Platform Detection: Dynamically detects if it is running on PenguinMod, TurboWarp (Web/Desktop), Snail IDE, or ElectraMod.
  • Localization: All block text and menus are wrapped in Scratch.translate() for full localization support.
  • Dependencies: Accesses Scratch.vm.runtime strictly to read variable names for the dropdown menu; no external network requests or unsafe evaluations are performed.

✅ Checklist

  • Extension added to extensions.json (before the last item).
  • Files follow the naming convention: alekhyo_0812/HyperStore.js and alekhyo_0812/HyperStore.png.
  • Image filename matches the script filename exactly.
  • License header (MIT) included at the top of the script.
  • Code formatted and linted (strings translated).

This commit introduces the HyperStore extension, which provides high-performance multidimensional arrays, tensors, and bulk math operations for Scratch. It includes various functionalities for storage management, data access, and mathematical operations.
@github-actions github-actions bot added the pr: new extension Pull requests that add a new extension label Feb 1, 2026
@PPPDUD
Copy link
Member

PPPDUD commented Feb 1, 2026

@Alekhyo-Biswas It seems like your PR text was written or modified by an LLM. If #2405 goes into effect, you will be required to provide transparency about what tools you used, and it will grant slightly more authority for reviewers to close stuff like this. Be prepared.

@Brackets-Coder
Copy link
Contributor

@PPPDUD I'm less concerned about the fact that the description was likely AI generated than the fact that this appears to be either a duplicate of existing PRs/extensions or able to be replicated with existing PRs/extensions

@PPPDUD
Copy link
Member

PPPDUD commented Feb 1, 2026

Also, why is there platform detection code? This is a repo for TurboWarp extensions; support for downstream mods is not a priority.

@Brackets-Coder
Copy link
Contributor

Brackets-Coder commented Feb 1, 2026

Also, why is there platform detection code? This is a repo for TurboWarp extensions; support for downstream mods is not a priority.

I know @SharkPool-SP has some extensions on multiple mods; I'm not terribly concerned about this, but it jumped out as odd to me as well. Ideally if an extension wants to be added to multiple scratch mods it should be able to function equally well on each platform without having platform detection, but I know some vendor-specific APIs limit this...

@Alekhyo-Biswas
Copy link
Author

Alright, the thing was done with some help from Google Gemini Pro
And the pull request looks a duplicate because I submitted the same pull request (minus some modifications) a week back
And the platform part does not, or so I think, contradict the statements of extension creation in TurboWarp, and it can be used to do this in multiple places

@PPPDUD
Copy link
Member

PPPDUD commented Feb 2, 2026

Alright, the thing was done with some help from Google Gemini Pro And the pull request looks a duplicate because I submitted the same pull request (minus some modifications) a week back And the platform part does not, or so I think, contradict the statements of extension creation in TurboWarp, and it can be used to do this in multiple places

Which parts were from Gemini? The docs, the PR, the code?

@Alekhyo-Biswas
Copy link
Author

Alekhyo-Biswas commented Feb 2, 2026

Alright, the thing was done with some help from Google Gemini Pro And the pull request looks a duplicate because I submitted the same pull request (minus some modifications) a week back And the platform part does not, or so I think, contradict the statements of extension creation in TurboWarp, and it can be used to do this in multiple places

Which parts were from Gemini? The docs, the PR, the code?

Well, the docs' HTML was written by Gemini (partly because I was too tired to do so), the extension code was partly written by Gemini but mainly written by me. PR was completely by me.

I hope I am transparent enough now
Happy?
Can you guys stop cross-questioning me a bit please?

@PPPDUD
Copy link
Member

PPPDUD commented Feb 2, 2026

Alright, the thing was done with some help from Google Gemini Pro And the pull request looks a duplicate because I submitted the same pull request (minus some modifications) a week back And the platform part does not, or so I think, contradict the statements of extension creation in TurboWarp, and it can be used to do this in multiple places

Which parts were from Gemini? The docs, the PR, the code?

Well, the docs' HTML was written by Gemini (partly because I was too tired to do so), the extension code was partly written by Gemini but mainly written by me. PR was completely by me.

I hope I am transparent enough now Happy? Can you guys stop cross-questioning me a bit please?

We have to stringently question LLM users to make sure that a human can be held fully responsible for every decision and code snippet in this repo.

@Alekhyo-Biswas
Copy link
Author

Alright, the thing was done with some help from Google Gemini Pro And the pull request looks a duplicate because I submitted the same pull request (minus some modifications) a week back And the platform part does not, or so I think, contradict the statements of extension creation in TurboWarp, and it can be used to do this in multiple places

Which parts were from Gemini? The docs, the PR, the code?

Well, the docs' HTML was written by Gemini (partly because I was too tired to do so), the extension code was partly written by Gemini but mainly written by me. PR was completely by me.

I hope I am transparent enough now Happy? Can you guys stop cross-questioning me a bit please?

We have to stringently question LLM users to make sure that a human can be held fully responsible for every decision and code snippet in this repo.

Alright.
I have no problem to be held responsible for any wrong or malicious code snippet here, I will try my best to correct it as fast as I can

@PPPDUD
Copy link
Member

PPPDUD commented Feb 2, 2026

@Brackets-Coder @SharkPool-SP What do you all think about how this should be handled?

@Brackets-Coder
Copy link
Contributor

To be honest I wouldn't make a big deal out of the AI stuff unless it seriously breaks the contributing guidelines and or review policy

I say we run it through the review process, if it passes it passes. If it doesn't, then it doesn't

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr: new extension Pull requests that add a new extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants