Platformer Maker! || #games #fun #platformer

Instructions: PLEASE READ CAREFULLY!\n[M] for menu\n[Q] and [E] to change block\nTHE BLUE AND WHITE BLOCK ERASES!\n[C] to save\n[L] to load\n[0] for DevTools |NEW!|\n[Space] to play the level!\n[Arrow Keys] to move!\n[Click] to place blocks!\nIf you accidentally press load, type cancel so you dont lose your progress!\nYOU CAN NOT PLACE BLOCKS WHILE YOU ARE IN THE MENU!\nYOU HAVE TO CLICK TOTAL LEVELS FIRST TO ADD A NEW LEVEL!

@Stage\n\nwhen flag clicked\nforever\n    play sound [Wallpaper v] until done\n    play sound [Valence - Infinite NCS Release v] until done\n    play sound [Scheming Weasel v] until done\n    play sound [Open Secrets v] until done\n    play sound [Disfigure - Blank v] until done\n    play sound [New Friendly v] until done\n    play sound [mbb-beach v] until done\nend\n\nwhen I receive [music off v]\nrepeat (10)\n    change volume by (-10)\nend\n\nwhen I receive [music on v]\nrepeat (10)\n    change volume by (10)\nend\n\nwhen flag clicked\nset volume to (0) %\nrepeat (100)\n    change volume by (1)\nend\n\nwait (0.01) seconds\n\n@Blank\n\n@Tiles\n\nwhen flag clicked\nset [mode v] to [edit]\nerase all\nscan\nforever\n    show\n    if <(mode) = [edit]> then\n        if <(costume [number v]) = [1]> then\n            switch costume to (d v)\n        end\n        clear graphic effects\n        set [ghost v] effect to (50)\n        go to (mouse-pointer v)\n        go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\n        if <mouse down?> then\n            if <not <(costume [number v]) = [6]>> then\n                if <not <(menu) = [show]>> then\n                    set [ghost v] effect to (0)\n                    upload xy\n                    stamp\n                    set [ghost v] effect to (50)\n                end\n            else\n                if <not <(menu) = [show]>> then\n                    set [ghost v] effect to (0)\n                    switch costume to (b v)\n                    upload xy\n                    stamp\n                    set [ghost v] effect to (50)\n                    switch costume to (e v)\n                end\n            end\n        end\n        if <key (e v) pressed?> then\n            next costume\n            wait until <not <key (e v) pressed?>>\n        end\n        if <key (q v) pressed?> then\n            switch costume to ((costume [number v]) - (1))\n            if <(costume [number v]) = [1]> then\n                switch costume to ((costume [number v]) - (1))\n            end\n            wait until <not <key (q v) pressed?>>\n        end\n    else\n        if <(mode) = [loading]> then\n            clear graphic effects\n        else\n            go to x: (0) y: (0)\n            set [ghost v] effect to (100)\n            hide\n        end\n    end\n    go to [back v] layer\nend\n\nswitch costume to (d v)\nstamp\n\nwhen [s v] key pressed\n\ndefine scan\ndelete all of [block storage v]\ndelete all of [block storage 2 v]\ndelete all of [block storage 3 v]\ndelete all of [block storage 4 v]\ndelete all of [block storage 5 v]\ndelete all of [data v]\ngo to x: (-240) y: (200)\nrepeat (16)\n    repeat (21)\n        add (join (x position) (join [ ] (y position))) to [data v]\n        change x by (24)\n        go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\n    end\n    set x to (-240)\n    change y by (-24)\n    go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\nend\nrepeat (336)\n    add [B] to [block storage v]\nend\nrepeat (336)\n    add [B] to [block storage 2 v]\nend\nrepeat (336)\n    add [B] to [block storage 3 v]\nend\nrepeat (336)\n    add [B] to [block storage 4 v]\nend\nrepeat (336)\n    add [B] to [block storage 5 v]\nend\n\ndefine upload xy\nadd (join (x position) (join [ ] (y position))) to [xy v]\nif <(Level) = [1]> then\n    replace item (item # of (xy) in [data v]) of [block storage v] with (costume [name v])\nend\nif <(Level) = [2]> then\n    replace item (item # of (xy) in [data v]) of [block storage 2 v] with (costume [name v])\nend\nif <(Level) = [3]> then\n    replace item (item # of (xy) in [data v]) of [block storage 3 v] with (costume [name v])\nend\nif <(Level) = [4]> then\n    replace item (item # of (xy) in [data v]) of [block storage 4 v] with (costume [name v])\nend\nif <(Level) = [5]> then\n    replace item (item # of (xy) in [data v]) of [block storage 5 v] with (costume [name v])\nend\ndelete all of [xy v]\n\nreplace item (item # of (xy) in [data v]) of [block storage v] with (costume [name v])\n\nsay [Hello!]\n\nwhen flag clicked\ndelete all of [xy v]\n\nwhen [l v] key pressed\nload\n\nrepeat (336)\n\ndefine load\nwait until <not <key (l v) pressed?>>\nhide\nask [Please Insert your save code] and wait\nif <not <<(answer) = [cancel]> or < (answer) contains [cancel]?>>> then\n    if <<[341] < (length of (answer))> or <(length of (answer)) = [341]>> then\n        erase all\n        set [mode v] to [loading]\n        wait (0.000000000001) seconds\n        set [letter number v] to [6]\n        go to x: (-240) y: (200)\n        fast load\n    else\n        say [Invalid Code!] for (2) seconds\n        broadcast (code it v)\n    end\nend\n\nwhen I receive [code it v]\nload\n\nupload xy\n\nwhen I receive [load last level v]\nset [mode v] to [loading]\nset [letter number v] to [1]\ngo to x: (-240) y: (200)\nwait () seconds\ninsta - build\n\ndefine insta - build\nrepeat (16)\n    repeat (21)\n        switch costume to (letter (letter number) of (sent level #))\n        stamp\n        change x by (24)\n        go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\n        change [letter number v] by (1)\n    end\n    set x to (-240)\n    change y by (-24)\n    go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\nend\nset [mode v] to [edit]\n\ndefine fast load\nset [total levels v] to (letter (1) of (answer))\nif <(letter (2) of (answer)) = [0]> then\n    set [walljump v] to [0]\nend\nif <(letter (2) of (answer)) = [1]> then\n    set [walljump v] to [1]\nend\nset [friction v] to (join [0.] (letter (3) of (answer)))\nset [jump height v] to (join (letter (4) of (answer)) (letter (5) of (answer)))\nrepeat (letter (1) of (answer))\n    repeat (16)\n        repeat (21)\n            switch costume to (letter (letter number) of (answer))\n            upload xy\n            stamp\n            change x by (24)\n            go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\n            change [letter number v] by (1)\n        end\n        set x to (-240)\n        change y by (-24)\n        go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\n    end\n    change [level v] by (1)\n    erase all\n    go to x: (-240) y: (200)\nend\nbroadcast (1 v)\nset [level v] to [1]\nerase all\ngo to x: (-240) y: (200)\nset [letter number v] to [6]\nrepeat (16)\n    repeat (21)\n        switch costume to (letter (letter number) of (answer))\n        upload xy\n        stamp\n        change x by (24)\n        go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\n        change [letter number v] by (1)\n    end\n    set x to (-240)\n    change y by (-24)\n    go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\nend\nset [mode v] to [edit]\n\nerase all\nset [letter number v] to [1]\nset [mode v] to [loading]\n\nset [mode v] to [edit]\n\nset [letter number v] to [1]\n\ngo to [back v] layer\ngo to [back v] layer\n\nrepeat (336)\n\ngo to [back v] layer\n\nset [level v] to [2]\n\n@Character\n\nwhen flag clicked\nset [yv v] to [0]\ngo to x: (-177) y: (94)\nset [xv v] to [0]\n\nwhen flag clicked\nforever\n    if <key (left arrow v) pressed?> then\n        if <not <(costume [number v]) = [3]>> then\n            wait (0.1) seconds\n            switch costume to (lookleft v)\n        end\n    end\n    if <key (right arrow v) pressed?> then\n        if <not <(costume [number v]) = [1]>> then\n            wait (0.1) seconds\n            switch costume to (lookright2 v)\n        end\n    end\n    if <<<not <key (left arrow v) pressed?>> and <not <key (right arrow v) pressed?>>> and <touching color (#666666)?>> then\n        switch costume to (lookforward v)\n    end\n    if <<key (up arrow v) pressed?> and <<not <key (left arrow v) pressed?>> and <not <key (right arrow v) pressed?>>>> then\n        switch costume to (lookup v)\n    end\n    if <<touching color (#dea059)?> and <(xv) = [0]>> then\n        switch costume to (lookforward v)\n    end\n    if <<<<not <key (left arrow v) pressed?>> and <not <key (right arrow v) pressed?>>> and <not <(costume [number v]) = [6]>>> and <(yv) < [0]>> then\n        wait (0.1) seconds\n        switch costume to (lookforward v)\n    end\n    clear graphic effects\n    set size to (68) %\nend\n\ngo to [front v] layer\n\nwhen flag clicked\nset [win v] to [0]\nset [xv v] to [0]\nforever\n    if <(mode) = [play]> then\n        if <touching color (#bfbfbf)?> then\n            set [yv v] to [20]\n        end\n        if <(y position) < [-178]> then\n            set [yv v] to [0]\n            set [xv v] to [0]\n            start sound [Game over v]\n            go to x: (x checkpoint) y: (y checkpoint)\n        end\n        if <<<touching color (#ffab63)?> or <touching color (#7d7d7d)?>> or <touching color (#cfcfcf)?>> then\n            set [yv v] to [0]\n            start sound [Game over v]\n            go to x: (x checkpoint) y: (y checkpoint)\n            set [xv v] to [0]\n        end\n        if <key (right arrow v) pressed?> then\n            change [xv v] by (1)\n        end\n        if <key (left arrow v) pressed?> then\n            change [xv v] by (-1)\n        end\n        set [xv v] to ((xv) * (Friction))\n        change x by (xv)\n        if <<<<touching color (#dea059)?> or <touching color (#79ff4a)?>> or <touching color (#b2ff96)?>> or <touching color (#a9a9a9)?>> then\n            change y by (1)\n            if <<<<touching color (#dea059)?> or <touching color (#79ff4a)?>> or <touching color (#b2ff96)?>> or <touching color (#a9a9a9)?>> then\n                change y by (1)\n                if <<<<touching color (#dea059)?> or <touching color (#79ff4a)?>> or <touching color (#b2ff96)?>> or <touching color (#a9a9a9)?>> then\n                    change y by (1)\n                    if <<<<touching color (#dea059)?> or <touching color (#79ff4a)?>> or <touching color (#b2ff96)?>> or <touching color (#a9a9a9)?>> then\n                        change y by (1)\n                        if <<<<touching color (#dea059)?> or <touching color (#79ff4a)?>> or <touching color (#b2ff96)?>> or <touching color (#a9a9a9)?>> then\n                            change y by (1)\n                            if <<<<touching color (#dea059)?> or <touching color (#79ff4a)?>> or <touching color (#b2ff96)?>> or <touching color (#a9a9a9)?>> then\n                                change x by ((xv) * (-1))\n                                change y by (-5)\n                                if <(walljump) = [1]> then\n                                    if <key (up arrow v) pressed?> then\n                                        if <(xv) > [0]> then\n                                            set [xv v] to [-5]\n                                        else\n                                            set [xv v] to [5]\n                                        end\n                                        set [yv v] to [10]\n                                    else\n                                        set [xv v] to [0]\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n        change [yv v] by (-1)\n        change y by (yv)\n        if <<<<touching color (#dea059)?> or <touching color (#79ff4a)?>> or <touching color (#b2ff96)?>> or <touching color (#a9a9a9)?>> then\n            change y by ((yv) * (-1))\n            set [yv v] to [0]\n        end\n        change y by (-1)\n        if <<<<touching color (#dea059)?> or <touching color (#79ff4a)?>> or <touching color (#b2ff96)?>> or <touching color (#a9a9a9)?>> then\n            if <key (up arrow v) pressed?> then\n                set [yv v] to (Jump Height)\n            end\n        end\n        change y by (1)\n    else\n        go to x: (-200) y: (100)\n        go to x: ((round ((x position) / (24))) * (24)) y: ((round ((y position) / (24))) * (24))\n    end\nend\n\nwhen flag clicked\nset [x checkpoint v] to [-192]\nset [y checkpoint v] to [96]\nforever\n    if <not <(mode) = [loading]>> then\n        if <key (space v) pressed?> then\n            set [mode v] to [play]\n            wait until <not <key (space v) pressed?>>\n            wait until <key (space v) pressed?>\n            wait until <not <key (space v) pressed?>>\n            set [yv v] to [0]\n            set [xv v] to [0]\n            set [x checkpoint v] to [-192]\n            set [y checkpoint v] to [96]\n            set [win v] to [0]\n            set [mode v] to [edit]\n        end\n    end\nend\n\nwait (0.1) seconds\nswitch costume to (lookright v)\n\nset [yv v] to [0]\ngo to x: (-177) y: (94)\nset [xv v] to [0]\n\nwhen I receive [set checkpoint v]\nset [x checkpoint v] to (round (x position))\nset [y checkpoint v] to ((y position) + (5))\n\nwhen flag clicked\nset [xv v] to [0]\nforever\n    if <(mode) = [play]> then\n        if <<<touching color (#2ca1d4)?> or <touching color (#53add4)?>> or <touching color (#5abce6)?>> then\n            start sound [Coin v]\n            broadcast (set checkpoint v)\n            wait until <not <<<touching color (#2ca1d4)?> or <touching color (#53add4)?>> or <touching color (#5abce6)?>>>\n        end\n    end\nend\n\ngo [backward v] (1) layers\n\ngo [backward v] (1) layers\n\nwhen flag clicked\nwait (1) seconds\nset [xv v] to [0]\nforever\n    if <(mode) = [play]> then\n        if <not <(win) = [1]>> then\n            if <<<touching color (#fffab7)?> or <touching color (#fff337)?>> or <touching color (#bfb52a)?>> then\n                start sound [Win! v]\n                broadcast (win v)\n                set [win v] to [1]\n                broadcast (set checkpoint v)\n                wait until <not <<<touching color (#fffab7)?> or <touching color (#fff337)?>> or <touching color (#bfb52a)?>>>\n            end\n        end\n    end\nend\n\nwhen [0 v] key pressed\nshow variable [friction v]\nshow variable [jump height v]\nwait until <not <key (0 v) pressed?>>\nwait until <key (0 v) pressed?>\nhide variable [friction v]\nhide variable [jump height v]\nwait until <not <key (0 v) pressed?>>\n\nwhen flag clicked\nset [friction v] to [0.9]\nset [jump height v] to [12]\nhide variable [friction v]\nhide variable [jump height v]\n\nset instrument to (20 v)\n\n@save\n\nwhen [c v] key pressed\ndelete all of [code v]\nset [code v] to []\nset [letter number v] to [1]\nset [total levels v] to [1]\nif <not <(Block Storage 2) = (Refrenced Blank)>> then\n    set [total levels v] to [2]\nend\nif <not <(Block Storage 3) = (Refrenced Blank)>> then\n    set [total levels v] to [3]\nend\nif <not <(Block Storage 4) = (Refrenced Blank)>> then\n    set [total levels v] to [4]\nend\nif <not <(Block Storage 5) = (Refrenced Blank)>> then\n    set [total levels v] to [5]\nend\nset [code v] to (Total Levels)\nset [code v] to (join (code) (walljump))\nset [code v] to (join (code) (letter (3) of (Friction)))\nif <<(Jump Height) = [10]> or <[10] < (Jump Height)>> then\n    set [code v] to (join (code) (Jump Height))\nelse\n    set [code v] to (join (code) (join [0] (Jump Height)))\nend\nset [code v] to (join (code) (Block Storage))\nif <<[1] < (Total Levels)> and <not <(Block Storage 2) = (Refrenced Blank)>>> then\n    set [code v] to (join (code) (Block Storage 2))\nend\nif <<[2] < (Total Levels)> and <not <(Block Storage 3) = (Refrenced Blank)>>> then\n    set [code v] to (join (code) (Block Storage 3))\nend\nif <<[3] < (Total Levels)> and <not <(Block Storage 4) = (Refrenced Blank)>>> then\n    set [code v] to (join (code) (Block Storage 4))\nend\nif <<[4] < (Total Levels)> and <not <(Block Storage 5) = (Refrenced Blank)>>> then\n    set [code v] to (join (code) (Block Storage 5))\nend\ndelete all of [code v]\nadd [Press C again to close!] to [code v]\nadd [Copy the numbers by triple clicking it, then pressing Ctrl + C, or Command + C] to [code v]\nif <[500] < (length of (code))> then\n    add [This code is too long to fit in the comments!] to [code v]\n    add [Full code:] to [code v]\n    add (code) to [code v]\n    add [Please use the one to fit the comment section here!] to [code v]\n    add [As a comment:] to [code v]\n    seperate\nelse\n    add (code) to [code v]\nend\nhide list [code v]\nwait until <not <key (c v) pressed?>>\nwait until <key (c v) pressed?>\nshow list [code v]\nwait until <not <key (c v) pressed?>>\n\nchange [letter number v] by (1)\nrepeat (336)\nend\n\nwhen flag clicked\nshow list [code v]\ndelete all of [code v]\nset [code v] to [0]\nset [fill v] to [0]\n\nwhen I receive [again v]\nask [Please paste your save code to ensure you did it correctly!] and wait\nif <(answer) = (code)> then\n    say [Saved!] for (2) seconds\nelse\n    say [Copy it again!] for (2) seconds\n    broadcast (again v)\nend\n\nif <(answer) = (code)> then\n    say [Saved!] for (2) seconds\nelse\n    say [Copy it again!] for (2) seconds\n    broadcast (again v)\nend\n\nbroadcast (Loading v)\n\nwhen I receive [loading v]\nsay [Loading... Please wait]\n\nset [code v] to (join (code) [banana])\n\ngo to [back v] layer\n\ndefine seperate\nset [letter number v] to [1]\nset [fill v] to []\nrepeat until <(letter (letter number) of (code)) = []>\n    repeat (500)\n        set [fill v] to (join (fill) (letter (letter number) of (code)))\n        change [letter number v] by (1)\n    end\n    add (fill) to [code v]\n    set [fill v] to []\nend\n\n\n\n@wall jump\n\nwhen flag clicked\nswitch costume to (no walljump v)\nset [walljump v] to [0]\nforever\n    if <(mode) = [edit]> then\n        if <not <(hide) = [yes]>> then\n            show\n            if <<touching (mouse-pointer v)?> and <mouse down?>> then\n                start sound [pop v]\n                set [walljump v] to [1]\n                switch costume to (yes walljump v)\n                wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n                wait until <<touching (mouse-pointer v)?> and <mouse down?>>\n                wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n                start sound [pop v]\n                set [walljump v] to [0]\n                switch costume to (no walljump v)\n            end\n        end\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <key (m v) pressed?> then\n        if <(mode) = [edit]> then\n            set [hide v] to [no]\n            wait until <not <key (m v) pressed?>>\n            wait until <key (m v) pressed?>\n            set [hide v] to [yes]\n            wait until <not <key (m v) pressed?>>\n        end\n    end\nend\n\nwhen flag clicked\nset [hide v] to [yes]\nforever\n    if <(hide) = [no]> then\n        show\n        repeat (5)\n            change [ghost v] effect by (-20)\n        end\n        wait until <(hide) = [yes]>\n    else\n        repeat (5)\n            change [ghost v] effect by (20)\n        end\n        hide\n        wait until <(hide) = [no]>\n    end\nend\n\nwhen flag clicked\nforever\n    if <(mode) = [play]> then\n        set [hide v] to [yes]\n    end\nend\n\nwhen flag clicked\nforever\n    if <(walljump) = [1]> then\n        switch costume to (yes walljump v)\n    end\n    if <(walljump) = [0]> then\n        switch costume to (no walljump v)\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\ngo to x: (140) y: (-130)\nforever\n    if <(hide) = [no]> then\n        if <touching (mouse-pointer v)?> then\n            change size by ((((([sin v] of ((y) / (2)) ) * (25)) + (200)) - (size)) / (6))\n        else\n            change size by ((((([sin v] of ((y) / (2)) ) * (25)) + (150)) - (size)) / (6))\n        end\n        change [y v] by (7)\n        change y by (([sin v] of (y) ) / (3))\n        turn right (([sin v] of ((100) - (y)) ) / (5)) degrees\n    end\nend\n\nwhen I receive [hide menu v]\nset [hide v] to [yes]\n\nwhen I receive [show menu v]\nset [hide v] to [no]\n\n@Thumbnail\n\nwhen flag clicked\nshow\nset [ghost v] effect to (100)\ngo to x: (0) y: (0)\nset size to (100) %\ngo to [front v] layer\n\nhide\n\n@winner\n\nwhen I receive [win v]\nshow\ngo to x: (0) y: (100)\nrepeat until <(round (y position)) = [0]>\n    set y to ((y position) + (((0) - (y position)) / (5)))\nend\nforever\n    switch costume to (hitbox v)\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        start sound [pop v]\n        broadcast (fade out v)\n        switch costume to (win v)\n        repeat until <(y position) = [-280]>\n            set y to ((y position) + (((-280) - (y position)) / (5)))\n        end\n        wait until <<touching (mouse-pointer v)?> and <mouse down?>>\n        stop [other scripts in sprite v]\n    end\n    switch costume to (win v)\nend\n\nwhen flag clicked\nhide\n\ngo to x: (0) y: (100)\nglide (0.1) secs to x: (0) y: (-20)\nglide (0.1) secs to x: (0) y: (0)\n\nwhen I receive [win v]\nrepeat (5)\n    change [ghost v] effect by (-20)\nend\n\nwhen flag clicked\nset [ghost v] effect to (100)\n\nwhen I receive [fade out v]\nrepeat (5)\n    change [ghost v] effect by (20)\nend\n\nbroadcast (win v)\n\nwhen I receive [show menu v]\n\nwhen I receive [hide menu v]\n\n@total level\n\nwhen flag clicked\nhide\n\nshow\n\nwhen flag clicked\n\nwhen flag clicked\nswitch costume to (1 level v)\ngo to x: (178) y: (143)\nset [hide level v] to [yes]\nforever\n    if <key (m v) pressed?> then\n        if <(mode) = [edit]> then\n            set [hide level v] to [no]\n            wait until <not <key (m v) pressed?>>\n            wait until <key (m v) pressed?>\n            set [hide level v] to [yes]\n            wait until <not <key (m v) pressed?>>\n        end\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(hide level) = [no]> then\n        show\n        repeat (5)\n            change [ghost v] effect by (-20)\n        end\n        wait until <(hide level) = [yes]>\n    else\n        repeat (5)\n            change [ghost v] effect by (20)\n        end\n        wait until <(hide level) = [no]>\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <(mode) = [play]> then\n        set [hide level v] to [yes]\n    end\nend\n\nwhen flag clicked\ngo to [front v] layer\nset [total levels v] to [1]\ngo [backward v] (10) layers\nswitch costume to (1 level v)\ngo to x: (178) y: (143)\nforever\n    if <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>> then\n        set [total levels v] to [1]\n        switch costume to (1 level v)\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>>>\n        wait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>>\n        set [total levels v] to [2]\n        switch costume to (2 level v)\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>>>\n        wait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>>\n        set [total levels v] to [3]\n        switch costume to (3 level v)\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>>>\n        wait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>>\n        set [total levels v] to [4]\n        switch costume to (4 level v)\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>>>\n        wait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>>\n        set [total levels v] to [5]\n        switch costume to (5 level v)\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide level) = [no]>>>\n    end\nend\n\nwhen I receive [show menu v]\nset [hide level v] to [no]\n\nwhen I receive [hide menu v]\nset [hide level v] to [yes]\n\nwhen flag clicked\nforever\n    switch costume to (Total Levels)\nend\n\n@Music\n\nwhen flag clicked\ngo to x: (0) y: (-130)\npoint in direction (90)\nforever\n    if <(hide music) = [no]> then\n        if <touching (mouse-pointer v)?> then\n            change size by ((((([sin v] of ((y) / (2)) ) * (25)) + (200)) - (size)) / (6))\n        else\n            change size by ((((([sin v] of ((y) / (2)) ) * (25)) + (150)) - (size)) / (6))\n        end\n        change [y v] by (7)\n        change y by (([sin v] of (y) ) / (3))\n        turn right (([sin v] of ((100) - (y)) ) / (6)) degrees\n    end\nend\n\nwhen flag clicked\nforever\n    if <key (m v) pressed?> then\n        if <(mode) = [edit]> then\n            set [hide music v] to [no]\n            set [menu v] to [show]\n            wait until <not <key (m v) pressed?>>\n            wait until <key (m v) pressed?>\n            set [hide music v] to [yes]\n            set [menu v] to [hide]\n            wait until <not <key (m v) pressed?>>\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <(mode) = [play]> then\n        set [hide music v] to [yes]\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(hide music) = [no]> then\n        show\n        repeat (5)\n            change [ghost v] effect by (-20)\n        end\n        wait until <(hide music) = [yes]>\n    else\n        repeat (5)\n            change [ghost v] effect by (20)\n        end\n        wait until <(hide music) = [no]>\n        hide\n    end\nend\n\nwhen flag clicked\nset [menu v] to [hide]\nswitch costume to (yes music v)\nset [hide music v] to [yes]\nforever\n    if <(mode) = [edit]> then\n        if <not <(hide music) = [yes]>> then\n            show\n            if <<touching (mouse-pointer v)?> and <mouse down?>> then\n                start sound [pop v]\n                broadcast (music off v)\n                switch costume to (no music v)\n                wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n                wait until <<touching (mouse-pointer v)?> and <mouse down?>>\n                start sound [pop v]\n                broadcast (music on v)\n                switch costume to (yes music v)\n                wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n            end\n        end\n    else\n        hide\n    end\nend\n\nclear graphic effects\n\nwhen I receive [hide menu v]\nset [hide music v] to [yes]\n\nwhen I receive [show menu v]\nset [hide music v] to [no]\n\nbroadcast (music on v)\n\n@Clear\n\nwhen flag clicked\nhide\nforever\n    if <(hide clear) = [no]> then\n        show\n        repeat (5)\n            change [ghost v] effect by (-20)\n        end\n        wait until <(hide clear) = [yes]>\n    else\n        repeat (5)\n            change [ghost v] effect by (20)\n        end\n        wait until <(hide clear) = [no]>\n        hide\n    end\nend\n\nwhen flag clicked\nswitch costume to (button v)\ngo to x: (-140) y: (-130)\nset [hide clear v] to [yes]\nforever\n    if <key (m v) pressed?> then\n        if <(mode) = [edit]> then\n            set [hide clear v] to [no]\n            wait until <not <key (m v) pressed?>>\n            wait until <key (m v) pressed?>\n            set [hide clear v] to [yes]\n            wait until <not <key (m v) pressed?>>\n        end\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\nforever\n    if <(hide clear) = [no]> then\n        if <(costume [name v]) = [Button]> then\n            if <touching (mouse-pointer v)?> then\n                change size by ((((([sin v] of ((y) / (2)) ) * (25)) + (200)) - (size)) / (6))\n            else\n                change size by ((((([sin v] of ((y) / (2)) ) * (25)) + (150)) - (size)) / (6))\n            end\n            change [y v] by (7)\n            change y by (([sin v] of (y) ) / (3))\n            turn right (([sin v] of ((100) - (y)) ) / (6)) degrees\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <(mode) = [edit]> then\n        if <not <(hide clear) = [yes]>> then\n            show\n            if <<touching (mouse-pointer v)?> and <mouse down?>> then\n                start sound [pop v]\n                broadcast (fade clear v)\n                broadcast (hide menu v)\n                repeat until <(y position) < [-200]>\n                    set y to ((y position) + (((-202) - (y position)) / (5)))\n                end\n                switch costume to (verify v)\n                set size to (150) %\n                go to x: (0) y: (300)\n                point in direction (90)\n                clear graphic effects\n                repeat until <(round (y position)) = [0]>\n                    set y to ((y position) + (((0) - (y position)) / (5)))\n                end\n                set [choice v] to [none]\n                repeat until <not <(choice) = [none]>>\n                    switch costume to (yes hitbox v)\n                    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n                        start sound [pop v]\n                        set [choice v] to [yes]\n                    end\n                    switch costume to (no hitbox v)\n                    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n                        start sound [pop v]\n                        set [choice v] to [no]\n                    end\n                    switch costume to (verify v)\n                end\n                if <(choice) = [no]> then\n                    broadcast (fade out clear 2 v)\n                    repeat until <(y position) < [-200]>\n                        set y to ((y position) + (((-202) - (y position)) / (5)))\n                    end\n                    switch costume to (button v)\n                    go to x: (-140) y: (-130)\n                    broadcast (show menu v)\n                    repeat (5)\n                        change [ghost v] effect by (-20)\n                    end\n                end\n                if <(choice) = [yes]> then\n                    repeat (5)\n                        change [ghost v] effect by (20)\n                    end\n                    switch costume to (clearing v)\n                    repeat (5)\n                        change [ghost v] effect by (-20)\n                    end\n                    set [letter # v] to [1]\n                    fast clear\n                    erase all\n                    repeat (5)\n                        change [ghost v] effect by (20)\n                    end\n                    switch costume to (button v)\n                    go to x: (-140) y: (-130)\n                    broadcast (show menu v)\n                    repeat (5)\n                        change [ghost v] effect by (-20)\n                    end\n                end\n                wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n            end\n        end\n    else\n        hide\n    end\nend\n\nwhen I receive [fade clear v]\nrepeat (5)\n    change [ghost v] effect by (20)\nend\n\nwhen I receive [fade out clear 2 v]\nrepeat (5)\n    change [ghost v] effect by (20)\nend\n\nclear graphic effects\n\nwhen flag clicked\nforever\n    if <(mode) = [play]> then\n        set [hide clear v] to [yes]\n    end\nend\n\ndefine fast clear\nif <(Level) = [1]> then\n    repeat (336)\n        replace item (letter #) of [block storage v] with [B]\n        change [letter # v] by (1)\n    end\nend\nif <(Level) = [2]> then\n    repeat (336)\n        replace item (letter #) of [block storage v] with [B]\n        change [letter # v] by (1)\n    end\nend\nif <(Level) = [3]> then\n    repeat (336)\n        replace item (letter #) of [block storage v] with [B]\n        change [letter # v] by (1)\n    end\nend\nif <(Level) = [4]> then\n    repeat (336)\n        replace item (letter #) of [block storage v] with [B]\n        change [letter # v] by (1)\n    end\nend\nif <(Level) = [5]> then\n    repeat (336)\n        replace item (letter #) of [block storage v] with [B]\n        change [letter # v] by (1)\n    end\nend\n\n@level picker\n\nwhen flag clicked\nhide\n\nshow\n\nwhen flag clicked\n\nwhen flag clicked\nswitch costume to (1 level v)\ngo to x: (178) y: (50)\nset [hide total v] to [yes]\nforever\n    if <key (m v) pressed?> then\n        if <(mode) = [edit]> then\n            set [hide total v] to [no]\n            wait until <not <key (m v) pressed?>>\n            wait until <key (m v) pressed?>\n            set [hide total v] to [yes]\n            wait until <not <key (m v) pressed?>>\n        end\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(hide total) = [no]> then\n        show\n        repeat (5)\n            change [ghost v] effect by (-20)\n        end\n        wait until <(hide total) = [yes]>\n    else\n        repeat (5)\n            change [ghost v] effect by (20)\n        end\n        wait until <(hide total) = [no]>\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <(mode) = [play]> then\n        set [hide total v] to [yes]\n    end\nend\n\nwhen flag clicked\ngo to [front v] layer\nset [level v] to [1]\nswitch costume to (1 level v)\nforever\n    if <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>> then\n        if <<[1] < (Total Levels)> and <<not <(Level) = [2]>> and <(Level) = [1]>>> then\n            broadcast (level 2 v)\n        end\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>>\n        wait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>\n        if <<[2] < (Total Levels)> and <<not <(Level) = [3]>> and <(Level) = [2]>>> then\n            broadcast (level 3 v)\n        end\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>>\n        wait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>\n        if <<[3] < (Total Levels)> and <<not <(Level) = [4]>> and <(Level) = [3]>>> then\n            broadcast (level 4 v)\n        end\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>>\n        wait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>\n        if <<[4] < (Total Levels)> and <<not <(Level) = [5]>> and <(Level) = [4]>>> then\n            broadcast (level 5 v)\n        end\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>>\n        wait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>\n        if <not <(Level) = [1]>> then\n            broadcast (level 1 v)\n        end\n    end\nend\n\nwhen I receive [hide menu v]\nset [hide total v] to [yes]\n\nwhen I receive [show menu v]\nset [hide total v] to [no]\n\nset [letter number v] to [1]\nset [level1holder v] to []\nswitch costume to (saving v)\nrepeat (336)\n    set [level1holder v] to (join (level1holder) (item (letter number) of [block storage v]))\n    change [letter number v] by (1)\nend\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (0) y: (0)\nswitch costume to (blank v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nerase all\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (178) y: (50)\nswitch costume to (2 level v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\nswitch costume to (5 level v)\n\nwhen I receive [level 2 v]\nset [level v] to [2]\nswitch costume to (saving v)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (0) y: (0)\nswitch costume to (blank v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nerase all\nset [sent level # v] to (Block Storage 2)\nbroadcast (load last level v) and wait\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (178) y: (50)\nswitch costume to (2 level v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\nchange [letter number v] by (1)\n\nwhen I receive [level 3 v]\nset [level v] to [3]\nset [letter number v] to [1]\nswitch costume to (saving v)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (0) y: (0)\nswitch costume to (blank v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nerase all\nset [sent level # v] to (Block Storage 3)\nbroadcast (load last level v) and wait\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (178) y: (50)\nswitch costume to (3 level v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\nwhen flag clicked\nset [level1holder v] to []\nset [level2holder v] to [BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB]\nset [level2holder v] to (join (join (level2holder) (join (level2holder) (level2holder))) [BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB])\nset [level3holder v] to [BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB]\nset [level3holder v] to (join (join (level3holder) (join (level3holder) (level3holder))) [BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB])\n\nset [sent level # v] to (level2holder)\nbroadcast (load last level v)\n\nwhen I receive [level 1 v]\nset [level v] to [1]\nset [letter number v] to [1]\nswitch costume to (saving v)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (0) y: (0)\nswitch costume to (blank v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nerase all\nset [sent level # v] to (Block Storage)\nbroadcast (load last level v) and wait\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (178) y: (50)\nswitch costume to (1 level v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\nswitch costume to (saving v)\nrepeat (336)\n    set [level2holder v] to (join (level2holder) (item (letter number) of [block storage 2 v]))\n    change [letter number v] by (1)\nend\n\nwhen I receive [test__ v]\nset [level v] to [2]\nset [letter number v] to [1]\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (0) y: (0)\nswitch costume to (blank v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nerase all\nset [sent level # v] to (Block Storage 2)\nbroadcast (load last level v) and wait\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (178) y: (50)\nswitch costume to (2 level v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\nset [level3holder v] to (join (join (level3holder) (join (level3holder) (level3holder))) [BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB])\n\nwhen flag clicked\ndelete all of [refrenced blank v]\nload blank\n\ndefine load blank\nrepeat (336)\n    add [B] to [refrenced blank v]\nend\n\nswitch costume to (1 level v)\n\nsay []\n\nset [level1holder v] to (Block Storage)\n\nset [letter number v] to [1]\n\nwhen I receive [level 2 v]\n\nwhen I receive [level 4 v]\nset [level v] to [4]\nswitch costume to (saving v)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (0) y: (0)\nswitch costume to (blank v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nerase all\nset [sent level # v] to (Block Storage 4)\nbroadcast (load last level v) and wait\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (178) y: (50)\nswitch costume to (4 level v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\nwhen I receive [level 5 v]\nset [level v] to [5]\nswitch costume to (saving v)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (0) y: (0)\nswitch costume to (blank v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nerase all\nset [sent level # v] to (Block Storage 5)\nbroadcast (load last level v) and wait\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to x: (178) y: (50)\nswitch costume to (5 level v)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\nwhen I receive [1 v]\nswitch costume to (1 level v)\n\nif <not <(Level) = [1]>> then\n    broadcast (level 1 v)\nend\n\nswitch costume to (hitbox v)\n\nwhen flag clicked\nforever\n    if <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>> then\n        wait until <not <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>>\n        wait until <<<touching (mouse-pointer v)?> and <mouse down?>> and <(hide total) = [no]>>\n        if < and <<not <[] = [5]>> and <(Level) = [4]>>> then\n            broadcast (level 1 v)\n        end\n    end\nend\n\n