I feel like I wanna make a Snap! mod

I think you need to add something module-like for Snap! 12 friendly users from now on.
snap 12 is now here

like what

changes on this to make the stage left?

IDE_Morph.prototype.fixLayout = function (situation) {
    // situation is a string, i.e.
    // 'selectSprite' or 'refreshPalette' or 'tabEditor'
    var padding = this.padding,
        cnf = this.config,
        border = cnf.border || 0,
        flag,
        maxPaletteWidth;

    // logo
    this.logo.setLeft(this.left() + border);
    this.logo.setTop(this.top() + border);

    if (situation !== 'refreshPalette') {
        // controlBar
        this.controlBar.setPosition(this.logo.topRight());
        this.controlBar.setWidth(
            this.right() - this.controlBar.left() - border
        );
        this.controlBar.fixLayout();

        // categories
        this.categories.setLeft(this.logo.left());
        this.categories.setTop(
            cnf.hideControls ? this.top() + border : this.logo.bottom()
        );
        this.categories.setWidth(this.paletteWidth);
        if (this.categories.scroller) {
            this.categories.scroller.setWidth(this.paletteWidth);
        }
    }

    // palette
    this.palette.setLeft(this.logo.left());
    this.palette.setTop(
        cnf.hideCategories ?
            (cnf.hideControls ?
                this.top() + border
                : this.controlBar.bottom() + padding)
            : this.categories.bottom()
    );
    this.palette.setHeight(this.bottom() - this.palette.top() - border);
    this.palette.setWidth(this.paletteWidth);

    if (situation !== 'refreshPalette') {
        // stage
        if (this.performerMode) {
            this.stage.setLeft(this.palette.right() + padding);
            this.stage.setTop(this.spriteBar.bottom() + padding);
            this.stage.setScale(1);
            this.stageRatio = 1;
            this.isSmallStage = false;
            this.stage.dimensions = new Point(
                    (this.width() - this.palette.width()) / this.performerScale,
                    (this.palette.height() -
                        this.corralBar.height() -
                        this.corral.childThatIsA(SpriteIconMorph).height()
                    ) / this.performerScale
            );
            this.stage.stopVideo();
            this.stage.setExtent(new Point(
                this.stage.dimensions.x * this.performerScale,
                this.stage.dimensions.y * this.performerScale
            ));
            this.stage.resizePenTrails();
            Costume.prototype.maxDimensions = this.stage.dimensions;
            this.paletteHandle.fixLayout();
            this.controlBar.stageSizeButton.hide();
        } else if (this.isEmbedMode) {
            this.stage.setScale(Math.floor(Math.min(
                this.width() / this.stage.dimensions.x,
                this.height() / this.stage.dimensions.y
                ) * 100) / 100);
            flag = this.embedPlayButton.flag;
            flag.size = Math.floor(Math.min(
                        this.width(), this.height())) / 5;
            flag.fixLayout();
            this.embedPlayButton.size = flag.size * 1.6;
            this.embedPlayButton.fixLayout();
            if (this.embedOverlay) {
                this.embedOverlay.setExtent(this.extent());
            }
            this.stage.setCenter(this.center());
            this.embedPlayButton.setCenter(this.stage.center());
            flag.setCenter(this.embedPlayButton.center());
            flag.setLeft(flag.left() + flag.size * 0.1); // account for slight asymmetry
        } else if (this.isAppMode) {
            this.stage.setScale(Math.floor(Math.min(
                (this.width() - padding * 2) / this.stage.dimensions.x,
                (this.height() - this.controlBar.height() * 2 - padding * 2)
                    / this.stage.dimensions.y
            ) * 10) / 10);
            this.stage.setCenter(this.center());
        } else {
            this.stage.setScale(this.isSmallStage ? this.stageRatio : 1);
            this.stage.setTop(
                cnf.hideControls ?
                    this.top() + border
                        : this.logo.bottom() + padding
            );
            this.stage.setRight(this.right() - border);
            if (cnf.noSprites) {
                maxPaletteWidth = Math.max(
                    200,
                    this.width() -
                    border * 2
                );
            } else {
                maxPaletteWidth = Math.max(
                    200,
                    this.width() -
                        this.stage.width() -
                        this.spriteBar.tabBar.width() -
                        padding * 2 -
                        border * 2
                );
            }
            if (this.paletteWidth > maxPaletteWidth) {
                this.paletteWidth = maxPaletteWidth;
                this.fixLayout();
            }
            this.stageHandle.fixLayout();
            this.paletteHandle.fixLayout();
        }

        // spriteBar
        this.spriteBar.setLeft(cnf.noPalette ?
            this.left() + border
            : this.paletteWidth + padding + border
        );
        this.spriteBar.setTop(
            cnf.hideControls ?
                this.top() + border
                    : this.logo.bottom() + padding
        );
        this.spriteBar.setWidth(
            Math.max(0, this.stage.left() - padding - this.spriteBar.left())
        );
        this.spriteBar.setHeight(
            Math.round(this.logo.height() * 2.6)
        );
        this.spriteBar.fixLayout();

        // spriteEditor
        if (this.spriteEditor.isVisible) {
            if (this.performerMode) {
                this.spriteEditor.setTop(this.stage.top());
                this.spriteEditor.setLeft(this.stage.left());
                this.spriteEditor.setWidth(this.stage.width());
                this.spriteEditor.setHeight(this.stage.height());
            } else {
                this.spriteEditor.setLeft(this.spriteBar.left());
                this.spriteEditor.setTop(
                    cnf.noSprites || cnf.noSpriteEdits ?
                    (cnf.hideControls ? this.top() + border
                        : this.controlBar.bottom() + padding)
                    : this.spriteBar.bottom() + padding
                );
                this.spriteEditor.setWidth(
                    cnf.noSprites ?
                        this.right() - this.spriteEditor.left() - border
                        : this.spriteBar.width()
                );
                this.spriteEditor.setHeight(
                    this.bottom() - this.spriteEditor.top() - border
                );
            }
        }

        // corralBar
        this.corralBar.setLeft(this.stage.left());
        this.corralBar.setTop(this.stage.bottom() + padding);
        this.corralBar.setWidth(this.stage.width());

        // corral
        if (!contains(['selectSprite', 'tabEditor'], situation)) {
            this.corral.setPosition(this.corralBar.bottomLeft());
            this.corral.setWidth(this.stage.width());
            this.corral.setHeight(this.bottom() - this.corral.top() - border);
            this.corral.fixLayout();
        }
    }
};

See what was changed while changing the Morphic version in Snap! version 12.

Tip: You can put js after the first text with ``` in the Markdown editor if you are writing or pasting in JavaScript.

Example
function squareNumber(value) {
  return value * value;
}
const squareResult = squareNumber(6);
console.log(squareResult);

I may need your help guys

Because this isn’t a JavaScript forum, you may not be able to find the help you need - so be forewarned. Perhaps modding Snap isn’t the best choice if you don’t know how.

I only changed the color of the blocks lol

I believe I could possibly assist.

I’ve never seen the source code of Snap!, but I understand some JavaScript in general.

Unrelated to the mod but related to JS open if you dare

In fact, I’ve been working on my own block-based coding site using JS!

(And HTML.)
(And CSS.)
(…it’s a site)

(Edit [ooooh an edit was used to add this edit mark]: ) (NOT NOT NOT EVER RECCOMENDING OFF-SITE MEETINGS, IT’S NOT A SITE YET NOR WILL IT HAVE ONLINE FEATURES [i feel like i just needed to clarify])

Please; read this.

And also:

Oh, I was bored lol

Okay, much as I enjoy hearing myself talk, this is getting repetitive. I’m closing the thread.