Slime On Earth || Scrolling Platformer
@Stage\n\nwhen I receive [menutick v]\nif <(HideMenu) = [1]> then\n    switch backdrop to (backdrop2 v)\nelse\n    switch backdrop to (mainemenu2 v)\nend\n\nwhen I receive [tick v]\nif <<<(Background) = [8]> and <(Underground) = [0]>> or <<(Background2) = [8]> and <(Underground) = [1]>>> then\n    switch backdrop to (backdrop3 v)\nelse\n    switch backdrop to (backdrop1 v)\nend\n\nwhen flag clicked\nwait (2.5) seconds\nwait (0) seconds\nwait until <(HideMenu) = [0]>\nset [brightness v] effect to (25)\nrepeat (100)\n    change [brightness v] effect by (-0.25)\nend\nset [brightness v] effect to (0)\nforever\n    if <<<(Menu) = [0]> and <<(PassedGoal) = [0]> and <(Dead) = [0]>>> and <<(Pause) = [0]> and <(StartLevel) = [1]>>> then\n        if <(StarTimer) > [12]> then\n            play sound [Star v] until done\n        else\n            if <(PTimer) > [0]> then\n                play sound [P-Switch v] until done\n            else\n                wait (0.2) seconds\n                if <(Underground) = [1]> then\n                    play sound (Background2) until done\n                else\n                    play sound (Background) until done\n                end\n            end\n        end\n    end\nend\n\n@Empty\n\n@Blocks\n\nwhen flag clicked\nswitch costume to (11 v)\nset size to (350) %\nbroadcast (ClearAll v) and wait\nadd [600] to [blockx v]\nadd [-600] to [blocky v]\nadd [11] to [blockstype v]\nadd [-20] to [enemyxog v]\nadd [-9] to [enemyyog v]\nadd [11] to [enemytypeog v]\nadd [600] to [uniqueblocksx v]\nadd [-600] to [uniqueblocksy v]\nadd [11] to [uniqueblocksstate v]\nbroadcast (ResetLevel v) and wait\nset [pause v] to [1]\nset [globalcostumeno. v] to [0]\nset [startlevel v] to [1]\nset [menu v] to [1]\n\ndefine FormBlocks\nif <(costume [number v]) = [1]> then\n    set [blocksspawned v] to [0]\n    set [blocksstamped v] to [0]\n    set [movementsmade v] to [0]\n    show\n    set [blockno. v] to ((item # of ([floor v] of (((MapX) / (-28)) - (7.8)) ) in [blockx v]) - (1))\n    if <(BlockNo.) < [0]> then\n        set [blockno. v] to [0]\n    end\n    repeat until <<(((item (BlockNo.) of [blockx v]) * (28)) + (MapX)) > [248]> or <(BlockNo.) > ((length of [blockx v]) - (1))>>\n        change [movementsmade v] by (1)\n        show\n        change [blockno. v] by (1)\n        repeat until <not <(((item (BlockNo.) of [blocky v]) * (28)) + (MapY)) > [188]>>\n            change [blockno. v] by (1)\n        end\n        go to x: (((item (BlockNo.) of [blockx v]) * (28)) + (MapX)) y: (((item (BlockNo.) of [blocky v]) * (28)) + (MapY))\n        switch costume to (item (BlockNo.) of [blockstype v])\n        if <(((item (BlockNo.) of [blockx v]) * (28)) + (MapX)) > [260]> then\n            switch costume to (11 v)\n            hide\n            stop [this script v]\n        end\n        if <<<(((item (BlockNo.) of [blockx v]) * (28)) + (MapX)) < [248]> and <(((item (BlockNo.) of [blockx v]) * (28)) + (MapX)) > [-248]>> and <<(((item (BlockNo.) of [blocky v]) * (28)) + (MapY)) < [188]> and <(((item (BlockNo.) of [blocky v]) * (28)) + (MapY)) > [-188]>>> then\n            if <(Pause) = [1]> then\n                stamp\n                change [blocksstamped v] by (1)\n            else\n                if <<<<(letter (2) of (costume [name v])) = [b]> or <(letter (2) of (costume [name v])) = [y]>> and <<(distance to [player v]) > [32]> and <not <(letter (1) of (costume [name v])) = [b]>>>> or <<<(costume [name v]) = [k]> or <(costume [name v]) = [n]>> or <(letter (1) of (costume [name v])) = [q]>>> then\n                    stamp\n                    change [blocksstamped v] by (1)\n                else\n                    if <<(letter (1) of (costume [name v])) = [b]> or <<(costume [name v]) = [g]> or <<(costume [name v]) = [i]> or <<(costume [name v]) = [j]> or <(letter (1) of (costume [name v])) = [m]>>>>> then\n                        SemiSolidManagement\n                    end\n                    create clone of (_myself_ v)\n                    change [blocksspawned v] by (1)\n                end\n            end\n        end\n    end\n    switch costume to (11 v)\nend\nhide\n\nwhen I start as a clone\nif <(costume [name v]) = [Coll]> then\n    change y by (20)\n    if <<touching (enemies v)?> or <<touching (items v)?> or <touching (fireball v)?>>> then\n        show\n    else\n        hide\n    end\n    change y by (-20)\nend\nstop [this script v]\n\nwhen I receive [formblocksnow v]\nif <[1] = [1]> then\n    delete this clone\nend\nFormBlocks\nbroadcast (UpdateAll v)\n\nwhen [space v] key pressed\nif <<(costume [number v]) = [1]> and <(Menu) = [0]>> then\n    set [making v] to [1]\n    set [holdingshell v] to [0]\n    set [passedgoal v] to [0]\n    delete all of [itemx v]\n    delete all of [itemy v]\n    delete all of [itemdir v]\n    delete all of [itemtype v]\n    delete all of [itemyvel v]\n    if <(Pause) = [0]> then\n        set [pause v] to [1]\n    else\n        broadcast (Convert v)\n        set [pause v] to [0]\n    end\nend\n\nwhen [b v] key pressed\nScrollUp\n\nwhen I receive [costumeeverything v]\nif <not <(costume [number v]) = [1]>> then\n    show\n    switch costume to (item (BlockNo.) of [blockstype v])\n    if <<<(letter (1) of (item (BlockNo.) of [blockstype v])) = [b]> or <(letter (1) of (item (BlockNo.) of [blockstype v])) = [m]>> or <<(letter (1) of (item (BlockNo.) of [blockstype v])) = [g]> or <(letter (1) of (item (BlockNo.) of [blockstype v])) = [i]>>> then\n        go to [back v] layer\n    end\nend\n\nwhen I receive [tick v]\nif <(costume [number v]) = [1]> then\n    set [particles v] to [0]\n    change [globalcostumeno. v] by (0.1)\n    set [fps v] to ((1) / (timer))\n    reset timer\n    if <(Pause) = [0]> then\n        broadcast (FormBlocksNow v)\n    end\n    if <(Pause) = [1]> then\n        set [globalcostumeno. v] to [0]\n    end\n    if <<([y position v] of [player v]) < [-175]> and <<(Dead) = [0]> and <(PassedGoal) = [0]>>> then\n        broadcast (Death v) and wait\n    end\nend\n\nwhen I receive [clearall v]\ndelete all of [breaktype v]\ndelete all of [breakx v]\ndelete all of [breaky v]\ndelete all of [blockstype v]\ndelete all of [blockx v]\ndelete all of [blocky v]\ndelete all of [uniqueblocksstate v]\ndelete all of [uniqueblocksx v]\ndelete all of [uniqueblocksy v]\ndelete all of [enemyx v]\ndelete all of [enemyy v]\ndelete all of [enemyyvelocity v]\ndelete all of [enemydir v]\ndelete all of [enemystate v]\ndelete all of [enemyxog v]\ndelete all of [enemyyog v]\ndelete all of [enemytype v]\ndelete all of [enemytypeog v]\ndelete all of [itemx v]\ndelete all of [itemy v]\ndelete all of [itemdir v]\ndelete all of [itemtype v]\ndelete all of [itemyvel v]\ndelete all of [blockcontents v]\ndelete all of [pipex v]\ndelete all of [pipey v]\nset [background v] to [1]\nset [background2 v] to [7]\nset [autoscroll v] to [0]\nset [allowymovement v] to [1]\n\ndefine ScrollUp\nif <(BlockSelected) = [a]> then\n    set [blockselected v] to [b]\nelse\n    if <(BlockSelected) = [b]> then\n        set [blockselected v] to [e]\n    else\n        if <(BlockSelected) = [e]> then\n            set [blockselected v] to [h]\n        else\n            if <(BlockSelected) = [h]> then\n                set [blockselected v] to [r]\n            else\n                if <(BlockSelected) = [r]> then\n                    set [blockselected v] to [c]\n                else\n                    if <(BlockSelected) = [c]> then\n                        set [blockselected v] to [\]]\n                    else\n                        if <(BlockSelected) = [\]]> then\n                            set [blockselected v] to [d]\n                        else\n                            if <(BlockSelected) = [d]> then\n                                set [blockselected v] to [i]\n                            else\n                                if <(BlockSelected) = [i]> then\n                                    set [blockselected v] to [g]\n                                else\n                                    if <(BlockSelected) = [g]> then\n                                        set [blockselected v] to [f]\n                                    else\n                                        if <(BlockSelected) = [f]> then\n                                            set [blockselected v] to [m]\n                                        else\n                                            if <(BlockSelected) = [m]> then\n                                                set [blockselected v] to [n]\n                                            else\n                                                if <(BlockSelected) = [n]> then\n                                                    set [blockselected v] to [q]\n                                                else\n                                                    if <(BlockSelected) = [q]> then\n                                                        set [blockselected v] to [j]\n                                                    else\n                                                        if <(BlockSelected) = [j]> then\n                                                            set [blockselected v] to [k]\n                                                        else\n                                                            if <(BlockSelected) = [k]> then\n                                                                set [blockselected v] to [l]\n                                                            else\n                                                                if <(BlockSelected) = [l]> then\n                                                                    set [blockselected v] to [s]\n                                                                else\n                                                                    if <(BlockSelected) = [s]> then\n                                                                        set [blockselected v] to [u]\n                                                                    else\n                                                                        if <(BlockSelected) = [u]> then\n                                                                            set [blockselected v] to [t]\n                                                                        else\n                                                                            if <(BlockSelected) = [t]> then\n                                                                                set [blockselected v] to [\[]\n                                                                            else\n                                                                                if <(BlockSelected) = [\[]> then\n                                                                                    set [blockselected v] to [?C]\n                                                                                else\n                                                                                    if <(BlockSelected) = [?C]> then\n                                                                                        set [blockselected v] to [?M]\n                                                                                    else\n                                                                                        if <(BlockSelected) = [?M]> then\n                                                                                            set [blockselected v] to [?F]\n                                                                                        else\n                                                                                            if <(BlockSelected) = [?F]> then\n                                                                                                set [blockselected v] to [?R]\n                                                                                            else\n                                                                                                if <(BlockSelected) = [?R]> then\n                                                                                                    set [blockselected v] to [!]\n                                                                                                else\n                                                                                                    if <(BlockSelected) = [!]> then\n                                                                                                        set [blockselected v] to ["]\n                                                                                                    else\n                                                                                                        if <(BlockSelected) = ["]> then\n                                                                                                            set [blockselected v] to [}]\n                                                                                                        else\n                                                                                                            if <(BlockSelected) = [}]> then\n                                                                                                                set [blockselected v] to [%]\n                                                                                                            else\n                                                                                                                if <(BlockSelected) = [%]> then\n                                                                                                                    set [blockselected v] to [^]\n                                                                                                                else\n                                                                                                                    if <(BlockSelected) = [^]> then\n                                                                                                                        set [blockselected v] to [&]\n                                                                                                                    else\n                                                                                                                        if <(BlockSelected) = [&]> then\n                                                                                                                            set [blockselected v] to [*]\n                                                                                                                        else\n                                                                                                                            if <(BlockSelected) = [*]> then\n                                                                                                                                set [blockselected v] to [<]\n                                                                                                                            else\n                                                                                                                                if <(BlockSelected) = [<]> then\n                                                                                                                                    set [blockselected v] to [>]\n                                                                                                                                else\n                                                                                                                                    if <(BlockSelected) = [>]> then\n                                                                                                                                        set [blockselected v] to [1]\n                                                                                                                                    else\n                                                                                                                                        if <(BlockSelected) = [1]> then\n                                                                                                                                            set [blockselected v] to [2]\n                                                                                                                                        else\n                                                                                                                                            if <(BlockSelected) = [2]> then\n                                                                                                                                                set [blockselected v] to [3]\n                                                                                                                                            else\n                                                                                                                                                if <(BlockSelected) = [3]> then\n                                                                                                                                                    set [blockselected v] to [4]\n                                                                                                                                                else\n                                                                                                                                                    if <(BlockSelected) = [4]> then\n                                                                                                                                                        set [blockselected v] to [5]\n                                                                                                                                                    else\n                                                                                                                                                        if <(BlockSelected) = [5]> then\n                                                                                                                                                            set [blockselected v] to [6]\n                                                                                                                                                        else\n                                                                                                                                                            if <(BlockSelected) = [6]> then\n                                                                                                                                                                set [blockselected v] to [7]\n                                                                                                                                                            else\n                                                                                                                                                                if <(BlockSelected) = [7]> then\n                                                                                                                                                                    set [blockselected v] to [8]\n                                                                                                                                                                else\n                                                                                                                                                                    if <(BlockSelected) = [8]> then\n                                                                                                                                                                        set [blockselected v] to [9]\n                                                                                                                                                                    else\n                                                                                                                                                                        if <(BlockSelected) = [9]> then\n                                                                                                                                                                            set [blockselected v] to [11]\n                                                                                                                                                                        else\n                                                                                                                                                                            set [blockselected v] to [a]\n                                                                                                                                                                        end\n                                                                                                                                                                    end\n                                                                                                                                                                end\n                                                                                                                                                            end\n                                                                                                                                                        end\n                                                                                                                                                    end\n                                                                                                                                                end\n                                                                                                                                            end\n                                                                                                                                        end\n                                                                                                                                    end\n                                                                                                                                end\n                                                                                                                            end\n                                                                                                                        end\n                                                                                                                    end\n                                                                                                                end\n                                                                                                            end\n                                                                                                        end\n                                                                                                    end\n                                                                                                end\n                                                                                            end\n                                                                                        end\n                                                                                    end\n                                                                                end\n                                                                            end\n                                                                        end\n                                                                    end\n                                                                end\n                                                            end\n                                                        end\n                                                    end\n                                                end\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine ScrollDown\nif <(BlockSelected) = [b]> then\n    set [blockselected v] to [a]\nelse\n    if <(BlockSelected) = [e]> then\n        set [blockselected v] to [b]\n    else\n        if <(BlockSelected) = [h]> then\n            set [blockselected v] to [e]\n        else\n            if <(BlockSelected) = [r]> then\n                set [blockselected v] to [h]\n            else\n                if <(BlockSelected) = [c]> then\n                    set [blockselected v] to [r]\n                else\n                    if <(BlockSelected) = [\]]> then\n                        set [blockselected v] to [c]\n                    else\n                        if <(BlockSelected) = [d]> then\n                            set [blockselected v] to [\]]\n                        else\n                            if <(BlockSelected) = [i]> then\n                                set [blockselected v] to [d]\n                            else\n                                if <(BlockSelected) = [g]> then\n                                    set [blockselected v] to [i]\n                                else\n                                    if <(BlockSelected) = [f]> then\n                                        set [blockselected v] to [g]\n                                    else\n                                        if <(BlockSelected) = [m]> then\n                                            set [blockselected v] to [f]\n                                        else\n                                            if <(BlockSelected) = [n]> then\n                                                set [blockselected v] to [m]\n                                            else\n                                                if <(BlockSelected) = [q]> then\n                                                    set [blockselected v] to [n]\n                                                else\n                                                    if <(BlockSelected) = [j]> then\n                                                        set [blockselected v] to [q]\n                                                    else\n                                                        if <(BlockSelected) = [k]> then\n                                                            set [blockselected v] to [j]\n                                                        else\n                                                            if <(BlockSelected) = [l]> then\n                                                                set [blockselected v] to [k]\n                                                            else\n                                                                if <(BlockSelected) = [s]> then\n                                                                    set [blockselected v] to [l]\n                                                                else\n                                                                    if <(BlockSelected) = [u]> then\n                                                                        set [blockselected v] to [s]\n                                                                    else\n                                                                        if <(BlockSelected) = [t]> then\n                                                                            set [blockselected v] to [u]\n                                                                        else\n                                                                            if <(BlockSelected) = [\[]> then\n                                                                                set [blockselected v] to [t]\n                                                                            else\n                                                                                if <(BlockSelected) = [?C]> then\n                                                                                    set [blockselected v] to [\[]\n                                                                                else\n                                                                                    if <(BlockSelected) = [?M]> then\n                                                                                        set [blockselected v] to [?C]\n                                                                                    else\n                                                                                        if <(BlockSelected) = [?F]> then\n                                                                                            set [blockselected v] to [?M]\n                                                                                        else\n                                                                                            if <(BlockSelected) = [?R]> then\n                                                                                                set [blockselected v] to [?F]\n                                                                                            else\n                                                                                                if <(BlockSelected) = [!]> then\n                                                                                                    set [blockselected v] to [?R]\n                                                                                                else\n                                                                                                    if <(BlockSelected) = ["]> then\n                                                                                                        set [blockselected v] to [!]\n                                                                                                    else\n                                                                                                        if <(BlockSelected) = [}]> then\n                                                                                                            set [blockselected v] to ["]\n                                                                                                        else\n                                                                                                            if <(BlockSelected) = [%]> then\n                                                                                                                set [blockselected v] to [}]\n                                                                                                            else\n                                                                                                                if <(BlockSelected) = [^]> then\n                                                                                                                    set [blockselected v] to [%]\n                                                                                                                else\n                                                                                                                    if <(BlockSelected) = [&]> then\n                                                                                                                        set [blockselected v] to [^]\n                                                                                                                    else\n                                                                                                                        if <(BlockSelected) = [*]> then\n                                                                                                                            set [blockselected v] to [&]\n                                                                                                                        else\n                                                                                                                            if <(BlockSelected) = [<]> then\n                                                                                                                                set [blockselected v] to [*]\n                                                                                                                            else\n                                                                                                                                if <(BlockSelected) = [>]> then\n                                                                                                                                    set [blockselected v] to [<]\n                                                                                                                                else\n                                                                                                                                    if <(BlockSelected) = [1]> then\n                                                                                                                                        set [blockselected v] to [>]\n                                                                                                                                    else\n                                                                                                                                        if <(BlockSelected) = [2]> then\n                                                                                                                                            set [blockselected v] to [1]\n                                                                                                                                        else\n                                                                                                                                            if <(BlockSelected) = [3]> then\n                                                                                                                                                set [blockselected v] to [2]\n                                                                                                                                            else\n                                                                                                                                                if <(BlockSelected) = [4]> then\n                                                                                                                                                    set [blockselected v] to [3]\n                                                                                                                                                else\n                                                                                                                                                    if <(BlockSelected) = [5]> then\n                                                                                                                                                        set [blockselected v] to [4]\n                                                                                                                                                    else\n                                                                                                                                                        if <(BlockSelected) = [6]> then\n                                                                                                                                                            set [blockselected v] to [5]\n                                                                                                                                                        else\n                                                                                                                                                            if <(BlockSelected) = [7]> then\n                                                                                                                                                                set [blockselected v] to [6]\n                                                                                                                                                            else\n                                                                                                                                                                if <(BlockSelected) = [8]> then\n                                                                                                                                                                    set [blockselected v] to [7]\n                                                                                                                                                                else\n                                                                                                                                                                    if <(BlockSelected) = [9]> then\n                                                                                                                                                                        set [blockselected v] to [8]\n                                                                                                                                                                    else\n                                                                                                                                                                        if <(BlockSelected) = [11]> then\n                                                                                                                                                                            set [blockselected v] to [9]\n                                                                                                                                                                        else\n                                                                                                                                                                            set [blockselected v] to [11]\n                                                                                                                                                                        end\n                                                                                                                                                                    end\n                                                                                                                                                                end\n                                                                                                                                                            end\n                                                                                                                                                        end\n                                                                                                                                                    end\n                                                                                                                                                end\n                                                                                                                                            end\n                                                                                                                                        end\n                                                                                                                                    end\n                                                                                                                                end\n                                                                                                                            end\n                                                                                                                        end\n                                                                                                                    end\n                                                                                                                end\n                                                                                                            end\n                                                                                                        end\n                                                                                                    end\n                                                                                                end\n                                                                                            end\n                                                                                        end\n                                                                                    end\n                                                                                end\n                                                                            end\n                                                                        end\n                                                                    end\n                                                                end\n                                                            end\n                                                        end\n                                                    end\n                                                end\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen [up arrow v] key pressed\nif <not <key (up arrow v) pressed?>> then\n    ScrollUp\nend\n\nwhen [down arrow v] key pressed\nif <not <key (down arrow v) pressed?>> then\n    ScrollDown\nend\n\ndefine SemiSolidManagement\nif <<<<(letter (2) of (costume [name v])) = [a]> or <<(costume [name v]) = [g]> or <<(costume [name v]) = [i]> or <<(costume [name v]) = [j]> or <(letter (1) of (costume [name v])) = [m]>>>>> or <<(letter (2) of (costume [name v])) = [c]> or <(letter (2) of (costume [name v])) = [d]>>> and <<<not <(YVel) > [0]>> and <<([abs v] of ((x position) - ([x position v] of [player v])) ) < [15]> and <<((y position) - ([y position v] of [player v])) > [-52]> and <((y position) - ([y position v] of [player v])) < [-10]>>>> or <not <<([abs v] of ((x position) - ([x position v] of [player v])) ) < ((14) + (<(YVel) > [0]> * ([abs v] of (XVel) )))> and <([abs v] of ((y position) - ([y position v] of [player v])) ) < [29]>>>>> then\n    if <<<not <(YVel) > [0]>> and <not <(YVel) = [-0.1]>>> and <<([abs v] of ((x position) - ([x position v] of [player v])) ) < [15]> and <<((y position) - ([y position v] of [player v])) > [-52]> and <((y position) - ([y position v] of [player v])) < [-10]>>>> then\n        switch costume to (coll2 v)\n    else\n        switch costume to (coll v)\n    end\nelse\n    hide\nend\n\n@Placement\n\nwhen flag clicked\nset [editmode v] to [Place]\nset [blockselected v] to [a]\nset [detectextra v] to [0]\nset [allowymovement v] to [1]\nset [autoscroll v] to [0]\nset size to (350) %\nset [ghost v] effect to (50)\nhide\n\ndefine ScanForThisPosition\nset [allowplacement v] to [1]\nset [scanno. v] to (item # of ((round (((x position) - (MapX)) / (28))) - (2)) in [blockx v])\nrepeat until <<(ScanNo.) > ((length of [blockx v]) - (0))> and <<(ScanNo.) > ((length of [enemyxog v]) - (0))> and <(ScanNo.) > ((length of [uniqueblocksx v]) - (0))>>>\n    change [scanno. v] by (1)\n    if <<<(item (ScanNo.) of [blockx v]) = (round (((x position) - (MapX)) / (28)))> and <(item (ScanNo.) of [blocky v]) = (round (((y position) - (MapY)) / (28)))>> and <not <(BlockSelected) = [5]>>> then\n        set [allowplacement v] to [0]\n        stop [this script v]\n    end\n    if <(DetectExtra) = [1]> then\n        if <<(item (ScanNo.) of [uniqueblocksx v]) = (round (((x position) - (MapX)) / (28)))> and <(item (ScanNo.) of [uniqueblocksy v]) = (round (((y position) - (MapY)) / (28)))>> then\n            set [allowplacement v] to [0]\n            stop [this script v]\n        end\n        if <<(item (ScanNo.) of [enemyxog v]) = (round (((x position) - (MapX)) / (28)))> and <(item (ScanNo.) of [enemyyog v]) = (round (((y position) - (MapY)) / (28)))>> then\n            set [allowplacement v] to [0]\n            stop [this script v]\n        end\n    end\nend\n\ndefine FindSpot\nif <(length of [blockx v]) = [0]> then\n    set [scanno. v] to [1]\n    stop [this script v]\nelse\n    set [scanno. v] to (item # of ((round (((x position) - (MapX)) / (28))) - (1)) in [blockx v])\n    repeat until <<<(item (ScanNo.) of [blockx v]) > (round (((x position) - (MapX)) / (28)))> or <(item (ScanNo.) of [blockx v]) = (round (((x position) - (MapX)) / (28)))>> or <(ScanNo.) = (length of [blockx v])>>\n        change [scanno. v] by (1)\n    end\n    repeat until <<(item (ScanNo.) of [blocky v]) > (round (((y position) - (MapY)) / (28)))> or <not <(item (ScanNo.) of [blockx v]) = (round (((x position) - (MapX)) / (28)))>>>\n        change [scanno. v] by (1)\n        if <(ScanNo.) > (length of [blockx v])> then\n            stop [this script v]\n        end\n    end\n    stop [this script v]\nend\n\ndefine ScanFor (x) (y)\nset [foundthatposition v] to [0]\nset [scan2no. v] to (item # of ((x) - (1)) in [blockx v])\nrepeat (length of [blockx v])\n    change [scan2no. v] by (1)\n    if <<(item (Scan2No.) of [blockx v]) = (x)> and <(item (Scan2No.) of [blocky v]) = (y)>> then\n        set [foundthatposition v] to [1]\n        stop [this script v]\n    end\nend\n\ndefine Placement\nswitch costume to (BlockSelected)\nScanForThisPosition\nFindSpot\nif <(AllowPlacement) = [1]> then\n    CostumeBlock\n    insert (round (((x position) - (MapX)) / (28))) at (ScanNo.) of [blockx v] \n    insert (round (((y position) - (MapY)) / (28))) at (ScanNo.) of [blocky v] \n    insert (costume [name v]) at (ScanNo.) of [blockstype v] \nelse\n    ScanForBlocksOnly\n    if <(AllowPlacement) = [0]> then\n        set [blockmaterial v] to (BlockSelected)\n        CostumeBlock\n        replace item (ScanNo.) of [blockstype v] with (costume [name v])\n    end\nend\nFixSurroundings\ngo to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\n\ndefine FixSurroundings\ngo to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\nchange x by (28)\nScanForThisPosition\nset [blockmaterial v] to (letter (1) of (item (ScanNo.) of [blockstype v]))\nCostumeBlock\nif <(letter (1) of (item (ScanNo.) of [blockstype v])) = (BlockMaterial)> then\n    replace item (ScanNo.) of [blockstype v] with (costume [name v])\nend\ngo to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\nchange x by (-28)\nScanForThisPosition\nset [blockmaterial v] to (letter (1) of (item (ScanNo.) of [blockstype v]))\nCostumeBlock\nif <(letter (1) of (item (ScanNo.) of [blockstype v])) = (BlockMaterial)> then\n    replace item (ScanNo.) of [blockstype v] with (costume [name v])\nend\ngo to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\nchange y by (28)\nScanForThisPosition\nset [blockmaterial v] to (letter (1) of (item (ScanNo.) of [blockstype v]))\nCostumeBlock\nif <(letter (1) of (item (ScanNo.) of [blockstype v])) = (BlockMaterial)> then\n    replace item (ScanNo.) of [blockstype v] with (costume [name v])\nend\ngo to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\nchange y by (-28)\nScanForThisPosition\nset [blockmaterial v] to (letter (1) of (item (ScanNo.) of [blockstype v]))\nCostumeBlock\nif <(letter (1) of (item (ScanNo.) of [blockstype v])) = (BlockMaterial)> then\n    replace item (ScanNo.) of [blockstype v] with (costume [name v])\nend\ngo to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\nswitch costume to (BlockSelected)\n\ndefine CostumeBlock\nswitch costume to (BlockSelected)\nset [sides v] to []\nif <(EditMode) = [Erase]> then\n    ScanFor (round (((x position) - (MapX)) / (28))) (round (((y position) - (MapY)) / (28)))\n    set [blockmaterial v] to (letter (1) of (item (Scan2No.) of [blockstype v]))\n    if <(BlockMaterial) = []> then\n        set [blockmaterial v] to (BlockSelected)\n    end\nend\nScanFor (round (((x position) - (MapX)) / (28))) ((round (((y position) - (MapY)) / (28))) + (1))\nif <<<(FoundThatPosition) = [1]> and <<(letter (1) of (item (Scan2No.) of [blockstype v])) = (BlockMaterial)> or <<(BlockMaterial) = [c]> or <(BlockMaterial) = [u]>>>> or <((round (((y position) - (MapY)) / (28))) + (-1)) = [-8]>> then\n    set [sides v] to (join (Sides) [U])\nend\nScanFor (round (((x position) - (MapX)) / (28))) ((round (((y position) - (MapY)) / (28))) + (-1))\nif <<<(FoundThatPosition) = [1]> and <<(letter (1) of (item (Scan2No.) of [blockstype v])) = (BlockMaterial)> or <<(BlockMaterial) = [c]> or <(BlockMaterial) = [u]>>>> or <((round (((y position) - (MapY)) / (28))) + (-1)) = [-7]>> then\n    set [sides v] to (join (Sides) [D])\nend\nScanFor ((round (((x position) - (MapX)) / (28))) + (-1)) (round (((y position) - (MapY)) / (28)))\nif <<<(FoundThatPosition) = [1]> and <(letter (1) of (item (Scan2No.) of [blockstype v])) = (BlockMaterial)>> or <((round (((x position) - (MapX)) / (28))) + (-1)) = [-17]>> then\n    set [sides v] to (join (Sides) [L])\nend\nScanFor ((round (((x position) - (MapX)) / (28))) + (1)) (round (((y position) - (MapY)) / (28)))\nif <<(FoundThatPosition) = [1]> and <(letter (1) of (item (Scan2No.) of [blockstype v])) = (BlockMaterial)>> then\n    set [sides v] to (join (Sides) [R])\nend\nif <(BlockMaterial) = [m]> then\n    if << (Sides) contains [L]?> and < (Sides) contains [R]?>> then\n        switch costume to (join (BlockMaterial) [a])\n    else\n        if < (Sides) contains [L]?> then\n            switch costume to (join (BlockMaterial) [d])\n        else\n            switch costume to (join (BlockMaterial) [c])\n        end\n    end\nelse\n    if <(BlockMaterial) = [q]> then\n        if < (Sides) contains [D]?> then\n            switch costume to (BlockMaterial)\n        else\n            switch costume to (join (BlockMaterial) [a])\n        end\n    else\n        if <(BlockMaterial) = [t]> then\n            if < (Sides) contains [U]?> then\n                switch costume to (join (BlockMaterial) [a])\n            else\n                switch costume to (BlockMaterial)\n            end\n        else\n            if <(length of (Sides)) = [0]> then\n                switch costume to (join (BlockMaterial) [a])\n            end\n            if <(length of (Sides)) = [1]> then\n                if < (Sides) contains [U]?> then\n                    switch costume to (join (BlockMaterial) [i])\n                else\n                    if < (Sides) contains [D]?> then\n                        switch costume to (join (BlockMaterial) [a])\n                    else\n                        if < (Sides) contains [L]?> then\n                            switch costume to (join (BlockMaterial) [c])\n                        else\n                            switch costume to (join (BlockMaterial) [d])\n                        end\n                    end\n                end\n            end\n            if <(length of (Sides)) = [2]> then\n                if << (Sides) contains [L]?> and < (Sides) contains [D]?>> then\n                    switch costume to (join (BlockMaterial) [c])\n                else\n                    if << (Sides) contains [R]?> and < (Sides) contains [D]?>> then\n                        switch costume to (join (BlockMaterial) [d])\n                    else\n                        if << (Sides) contains [R]?> and < (Sides) contains [U]?>> then\n                            switch costume to (join (BlockMaterial) [g])\n                        else\n                            if << (Sides) contains [L]?> and < (Sides) contains [U]?>> then\n                                switch costume to (join (BlockMaterial) [h])\n                            else\n                                switch costume to (join (BlockMaterial) [a])\n                            end\n                        end\n                    end\n                end\n            end\n            if <(length of (Sides)) = [3]> then\n                if <not < (Sides) contains [R]?>> then\n                    if <<((round (((y position) - (MapY)) / (28))) + (-1)) = [-7]> and <(BlockMaterial) = [e]>> then\n                        switch costume to (join (BlockMaterial) [z])\n                    else\n                        switch costume to (join (BlockMaterial) [e])\n                    end\n                else\n                    if <not < (Sides) contains [L]?>> then\n                        if <<((round (((y position) - (MapY)) / (28))) + (-1)) = [-7]> and <(BlockMaterial) = [e]>> then\n                            switch costume to (join (BlockMaterial) [x])\n                        else\n                            switch costume to (join (BlockMaterial) [f])\n                        end\n                    else\n                        if < (Sides) contains [U]?> then\n                            switch costume to (join (BlockMaterial) [i])\n                        else\n                            switch costume to (join (BlockMaterial) [a])\n                        end\n                    end\n                end\n            end\n            if <(length of (Sides)) = [4]> then\n                if <<((round (((y position) - (MapY)) / (28))) + (-1)) = [-7]> and <(BlockMaterial) = [e]>> then\n                    switch costume to (join (BlockMaterial) [y])\n                else\n                    switch costume to (join (BlockMaterial) [b])\n                end\n            end\n            if <<(BlockMaterial) = [d]> or <<(BlockMaterial) = [f]> or <(BlockMaterial) = [l]>>> then\n                if <(length of (Sides)) = [4]> then\n                    switch costume to (join (BlockMaterial) [b])\n                else\n                    switch costume to (BlockMaterial)\n                end\n            end\n            if <<<(BlockMaterial) = [g]> or <<(BlockMaterial) = [i]> or <(BlockMaterial) = [k]>>> or <<(BlockMaterial) = [j]> or <(BlockMaterial) = [n]>>> then\n                switch costume to (BlockMaterial)\n            end\n        end\n    end\nend\n\nwhen [e v] key pressed\nif <(EditMode) = [Place]> then\n    set [editmode v] to [Erase]\nelse\n    set [editmode v] to [Place]\nend\n\ndefine Erasure\ngo to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\nScanForThisPosition\nif <(AllowPlacement) = [0]> then\n    delete (ScanNo.) of [blockx v]\n    delete (ScanNo.) of [blocky v]\n    delete (ScanNo.) of [blockstype v]\n    FixSurroundings\nend\n\ndefine ScanForBlocksOnly\nset [allowplacement v] to [1]\nset [scanno. v] to (item # of ((round (((x position) - (MapX)) / (28))) - (1)) in [blockx v])\nrepeat until <(ScanNo.) > ((length of [blockx v]) - (1))>\n    change [scanno. v] by (1)\n    if <<(item (ScanNo.) of [blockx v]) = (round (((x position) - (MapX)) / (28)))> and <(item (ScanNo.) of [blocky v]) = (round (((y position) - (MapY)) / (28)))>> then\n        set [allowplacement v] to [0]\n        stop [this script v]\n    end\nend\n\nwhen I receive [tick v]\nhide\nif <(Pause) = [1]> then\n    show\n    if <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n        change [mapy v] by ((-4) + (<key (z v) pressed?> * (-8)))\n    end\n    if <<key (s v) pressed?> or <key (down arrow v) pressed?>> then\n        change [mapy v] by ((4) + (<key (z v) pressed?> * (8)))\n    end\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        change [mapx v] by ((-4) + (<key (z v) pressed?> * (-8)))\n    end\n    if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n        change [mapx v] by ((4) + (<key (z v) pressed?> * (8)))\n    end\n    set [playerx v] to (([x position v] of [player v]) - (MapX))\n    set [playery v] to (([y position v] of [player v]) - (MapY))\nend\nif <(MapX) > [222]> then\n    set [mapx v] to [222]\nend\nif <(Underground) = [0]> then\n    if <(MapY) > [0]> then\n        set [mapy v] to [0]\n    end\n    if <(MapY) < [-280]> then\n        set [mapy v] to [-280]\n    end\nelse\n    if <(MapY) > [620]> then\n        set [mapy v] to [620]\n    end\n    if <(MapY) < [360]> then\n        set [mapy v] to [360]\n    end\nend\nif <(Pause) = [1]> then\n    if <(EditMode) = [Place]> then\n        set [brightness v] effect to (0)\n    else\n        set [brightness v] effect to (100)\n    end\n    switch costume to (BlockSelected)\n    if <(EditMode) = [Erase]> then\n        switch costume to (aa v)\n    end\n    go to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\n    if <<mouse down?> and <(TouchingMenus) = [0]>> then\n        if <<<(x position) < [240]> and <(x position) > [-240]>> and <<(y position) < [180]> and <(y position) > [-180]>>> then\n            if <(EditMode) = [Erase]> then\n                ScanFor (round (((x position) - (MapX)) / (28))) (round (((y position) - (MapY)) / (28)))\n                set [blockmaterial v] to (letter (1) of (item (Scan2No.) of [blockstype v]))\n            else\n                set [blockmaterial v] to (BlockSelected)\n            end\n            if <(EditMode) = [Place]> then\n                set [detectextra v] to [1]\n                ScanForThisPosition\n                set [detectextra v] to [0]\n                if <<< (BlockSelected) contains [?]?> or <<(BlockSelected) = [}]> or <(BlockSelected) = [%]>>> or <<<<<(BlockSelected) = [!]> or <<(BlockSelected) = [\[]> or <(BlockSelected) = [\]]>>> or <(BlockSelected) = [^]>> or <<(BlockSelected) = [&]> or <(BlockSelected) = [*]>>> or <<(BlockSelected) = ["]> or <<(BlockSelected) = [<]> or <(BlockSelected) = [>]>>>>> then\n                    if <(AllowPlacement) = [1]> then\n                        broadcast (PlaceUniqueBlock v)\n                    end\n                else\n                    if <(BlockSelected) < [99]> then\n                        if <(AllowPlacement) = [1]> then\n                            if <<<(x position) < [226]> and <(x position) > [-226]>> and <<(y position) < [170]> and <(y position) > [-166]>>> then\n                                FindSpotForEnemy\n                                if <(AllowPlacement) = [1]> then\n                                    insert (round (((x position) - (MapX)) / (28))) at (ScanNo.) of [enemyxog v] \n                                    insert (round (((y position) - (MapY)) / (28))) at (ScanNo.) of [enemyyog v] \n                                    insert (BlockSelected) at (ScanNo.) of [enemytypeog v] \n                                end\n                            end\n                        end\n                    else\n                        Placement\n                    end\n                end\n            else\n                broadcast (EraseEnemy v)\n                broadcast (PlaceUniqueBlock v)\n                Erasure\n                switch costume to (aa v)\n            end\n        end\n    end\n    broadcast (FormBlocksNow v)\nend\nset [touchingmenus v] to [0]\n\ndefine FindSpotForEnemy\nif <(length of [enemyyog v]) = [0]> then\n    set [scanno. v] to [1]\n    stop [this script v]\nelse\n    set [scanno. v] to (item # of ((round (((y position) - (MapY)) / (28))) - (1)) in [enemyyog v])\n    repeat until <<(item (ScanNo.) of [enemyyog v]) > (round (((y position) - (MapY)) / (28)))> or <(ScanNo.) = (length of [enemyyog v])>>\n        change [scanno. v] by (1)\n        if <<(round (((x position) - (MapX)) / (28))) = (item (ScanNo.) of [enemyxog v])> and <(round (((y position) - (MapY)) / (28))) = (item (ScanNo.) of [enemyyog v])>> then\n            set [allowplacement v] to [0]\n            stop [this script v]\n        end\n    end\n    stop [this script v]\nend\n\nwhen I receive [menutick v]\nhide\n\n@Player\n\nif <(AllowPlayerMovement) = [1]> then\n    switch costume to (playercentre v)\n    set [sliding v] to [0]\n    set [slidingfunction v] to [0]\n    set [crouching v] to [0]\n    change [tanookicooldown v] by ((-1) / (30))\n    change [statueswapcooldown v] by ((-1) / (10))\n    if <touching (water v)?> then\n        if <(Powerup) = [Frog]> then\n            if <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n                change [yvel v] by (1.8)\n            end\n            if <<key (s v) pressed?> or <key (down arrow v) pressed?>> then\n                change [yvel v] by (-1.8)\n            end\n            if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n                change [xvel v] by (1.5)\n                point in direction (90)\n            end\n            if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n                change [xvel v] by (-1.5)\n                point in direction (-90)\n            end\n            if <(YVel) > [0]> then\n                switch costume to (frogswimmingtop v)\n            else\n                switch costume to (allbottom v)\n            end\n            change y by (YVel)\n            if <<touching (map v)?> or <<<touching (semisolids v)?> or <touching (platforms v)?>> and <not <(YVel) > [0]>>>> then\n                change y by ((YVel) * (-1))\n                if <(YVel) > [0]> then\n                    FindCeilingV2\n                    set [yvel v] to [0]\n                else\n                    FindFloor\n                    set [yvel v] to [0]\n                end\n            end\n            switch costume to (frogswimmingsides v)\n            change x by (XVel)\n            YSmoothing\n            if <touching (map v)?> then\n                set [playerx v] to ((x position) - (MapX))\n                FindXPosition\n                set [xvel v] to [0]\n            end\n            if <([abs v] of (XVel) ) > [4.499999]> then\n                set [xvel v] to ((XVel) / (1.3))\n                set [yvel v] to ((YVel) / (1.3))\n            else\n                set [xvel v] to ((XVel) / (1.5))\n                set [yvel v] to ((YVel) / (1.5))\n            end\n            set [playerx v] to ((x position) - (MapX))\n            set [playery v] to ((y position) - (MapY))\n        else\n            if <(YVel) > [-2.5]> then\n                change [yvel v] by (-0.41)\n            end\n            if <(YVel) < [-2.5]> then\n                set [yvel v] to [-2.5]\n            end\n            if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <<(Statue) = [0]> and <<(YVel) < [-1.3]> or <(YVel) = [-0.41]>>>> then\n                if <not <(YVel) = [-1.41]>> then\n                    start sound [Swim v]\n                end\n                set [yvel v] to [6]\n            end\n            if <(YVel) > [0]> then\n                if <<(Powerup) = [None]> or <(Crouching) = [1]>> then\n                    switch costume to (nonetop v)\n                else\n                    switch costume to (bigtop v)\n                end\n            else\n                switch costume to (allbottom v)\n            end\n            change y by (YVel)\n            if <<touching (map v)?> or <<<touching (semisolids v)?> or <touching (platforms v)?>> and <not <(YVel) > [0]>>>> then\n                change y by ((YVel) * (-1))\n                if <(YVel) > [0]> then\n                    FindCeilingV2\n                    set [yvel v] to [-1]\n                else\n                    FindFloor\n                    if <<(Statue) = [0]> and <<key (s v) pressed?> or <key (down arrow v) pressed?>>> then\n                        set [crouching v] to [1]\n                    end\n                    set [yvel v] to [0]\n                end\n            end\n            if <<(Statue) = [0]> and <<(SlidingFunction) = [0]> and <(Crouching) = [0]>>> then\n                if <<<key (d v) pressed?> or <key (right arrow v) pressed?>> and <not <<key (a v) pressed?> or <key (left arrow v) pressed?>>>> then\n                    change [xvel v] by (2)\n                    point in direction (90)\n                    if <(YVel) = [0]> then\n                        if <([abs v] of (XVel) ) > [2]> then\n                            if <(XVel) > [0]> then\n                                set [xvel v] to [2]\n                            else\n                                set [xvel v] to [-2]\n                            end\n                        end\n                    else\n                        if <([abs v] of (XVel) ) > [4.5]> then\n                            if <(XVel) > [0]> then\n                                set [xvel v] to [4.5]\n                            else\n                                set [xvel v] to [-4.5]\n                            end\n                        end\n                    end\n                    if <(XVel) < [2]> then\n                        if <(YVel) = [0]> then\n                            change [xvel v] by (-1.9)\n                        else\n                            change [xvel v] by (-1.75)\n                        end\n                    end\n                end\n                if <<<key (a v) pressed?> or <key (left arrow v) pressed?>> and <not <<key (d v) pressed?> or <key (right arrow v) pressed?>>>> then\n                    change [xvel v] by (-2)\n                    point in direction (-90)\n                    if <(YVel) = [0]> then\n                        if <([abs v] of (XVel) ) > [2]> then\n                            if <(XVel) > [0]> then\n                                set [xvel v] to [2]\n                            else\n                                set [xvel v] to [-2]\n                            end\n                        end\n                    else\n                        if <([abs v] of (XVel) ) > [4.5]> then\n                            if <(XVel) > [0]> then\n                                set [xvel v] to [4.5]\n                            else\n                                set [xvel v] to [-4.5]\n                            end\n                        end\n                    end\n                    if <(XVel) > [-2]> then\n                        if <(YVel) = [0]> then\n                            change [xvel v] by (1.9)\n                        else\n                            change [xvel v] by (1.75)\n                        end\n                    end\n                end\n            end\n            if <<(Powerup) = [None]> or <(Crouching) = [1]>> then\n                switch costume to (nonesides v)\n            else\n                switch costume to (bigsides v)\n            end\n            if <<(Statue) = [0]> and <(SlidingFunction) = [0]>> then\n                change x by (XVel)\n                YSmoothing\n                if <touching (map v)?> then\n                    set [playerx v] to ((x position) - (MapX))\n                    FindXPosition\n                    set [xvel v] to [0]\n                end\n            end\n            set [xvel v] to ((XVel) / (1.05))\n            set [playerx v] to ((x position) - (MapX))\n            set [playery v] to ((y position) - (MapY))\n            if <<(Powerup) = [Fire]> and <(TanookiCooldown) < [0]>> then\n                if <key (space v) pressed?> then\n                    start sound [Fireball v]\n                    add ((((x position) + (((direction) / (90)) * (8))) - (MapX)) / (28)) to [fireballx v]\n                    add (((y position) - (MapY)) / (28)) to [firebally v]\n                    add (direction) to [fireballdir v]\n                    add [1] to [fireballtype v]\n                    add [0] to [fireballbounces v]\n                    set [tanookicooldown v] to [0.5]\n                end\n            end\n        end\n        switch costume to (playercentre v)\n        if <not <touching (water v)?>> then\n            if <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n                set [yvel v] to [12]\n                if <([abs v] of (XVel) ) > [1.5]> then\n                    set [xvel v] to ((direction) / (60))\n                end\n            end\n        end\n    else\n        if <(Powerup) = [Frog]> then\n            if <<<(YVel) > [-12]> and <(Statue) = [0]>> or <<(YVel) > [-16]> and <(Statue) = [1]>>> then\n                change [yvel v] by ((Gravity) / (3.2))\n                if <<(YVel) > [0]> and <not <<key (w v) pressed?> or <key (up arrow v) pressed?>>>> then\n                    set [yvel v] to ((YVel) / (1.3))\n                end\n            end\n            switch costume to (allbottom v)\n            change y by (Gravity)\n            if <<touching (map v)?> or <<<touching (semisolids v)?> or <touching (platforms v)?>> and <not <(YVel) > [0]>>>> then\n                change y by ((Gravity) * (-1))\n                set [yvel v] to [0]\n                if <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n                    start sound [Jump v]\n                    if <([abs v] of (XVel) ) > [2]> then\n                        set [yvel v] to [20]\n                    else\n                        set [yvel v] to [18]\n                    end\n                end\n                FindFloor\n            end\n            if <(YVel) > [0]> then\n                switch costume to (bigtop v)\n            else\n                switch costume to (allbottom v)\n            end\n            change y by (YVel)\n            if <<touching (map v)?> or <<<touching (semisolids v)?> or <touching (platforms v)?>> and <not <(YVel) > [0]>>>> then\n                if <(YVel) > [0]> then\n                    FindCeiling\n                    set [yvel v] to [3]\n                else\n                    change y by ((YVel) * (-1))\n                    FindFloor\n                    set [yvel v] to [0]\n                end\n            end\n            if <<(Statue) = [0]> and <<(SlidingFunction) = [0]> and <(Crouching) = [0]>>> then\n                if <<<key (d v) pressed?> or <key (right arrow v) pressed?>> and <not <<key (a v) pressed?> or <key (left arrow v) pressed?>>>> then\n                    change [xvel v] by (1)\n                    point in direction (90)\n                end\n                if <<<key (a v) pressed?> or <key (left arrow v) pressed?>> and <not <<key (d v) pressed?> or <key (right arrow v) pressed?>>>> then\n                    change [xvel v] by (-1)\n                    point in direction (-90)\n                end\n            end\n            switch costume to (bigsides v)\n            change x by (XVel)\n            YSmoothing\n            if <touching (map v)?> then\n                set [playerx v] to ((x position) - (MapX))\n                FindXPosition\n                set [xvel v] to [0]\n            end\n            if <<(Crouching) = [1]> or <(Sliding) = [1]>> then\n                set [xvel v] to ((XVel) / (1.1))\n            else\n                if <(YVel) = [0]> then\n                    set [xvel v] to ((XVel) / (1.2))\n                    if <(([floor v] of (((PlayerCostumeNo.) * (2.5)) mod (4)) ) + (1)) = [1]> then\n                        if <([abs v] of (XVel) ) > [1]> then\n                            if <(XVel) > [0]> then\n                                set [xvel v] to [1]\n                            else\n                                set [xvel v] to [-1]\n                            end\n                        end\n                    end\n                else\n                    set [xvel v] to ((XVel) / (1.15))\n                end\n            end\n            if <<<([abs v] of (XVel) ) > [4]> and <(TanookiFlying) = [1]>> and <<(YVel) = [-0.4]> and <<key (w v) pressed?> or <key (up arrow v) pressed?>>>> then\n                if <(XVel) > [0]> then\n                    set [xvel v] to [4]\n                else\n                    set [xvel v] to [-4]\n                end\n            end\n            set [playerx v] to ((x position) - (MapX))\n            set [playery v] to ((y position) - (MapY))\n        else\n            if <<<(YVel) > [-12]> and <(Statue) = [0]>> or <<(YVel) > [-16]> and <(Statue) = [1]>>> then\n                if <<(TanookiFlying) = [1]> and <(Statue) = [0]>> then\n                    if <(YVel) > [0]> then\n                        change [yvel v] by ((Gravity) / (3.4))\n                    else\n                        if <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n                            change [yvel v] by ((Gravity) / (6))\n                            if <(YVel) < [-0.4]> then\n                                set [yvel v] to [-0.4]\n                            end\n                        else\n                            change [yvel v] by ((Gravity) / (3.4))\n                        end\n                    end\n                else\n                    if <(Statue) = [1]> then\n                        change [yvel v] by ((Gravity) / (1))\n                    else\n                        change [yvel v] by ((Gravity) / (2.9))\n                        if <<(YVel) > [0]> and <not <<key (w v) pressed?> or <key (up arrow v) pressed?>>>> then\n                            set [yvel v] to ((YVel) / (1.3))\n                        end\n                    end\n                end\n            end\n            switch costume to (allbottom v)\n            if <<<(AllowTanookiFlightStart) = [1]> and <<(Powerup) = [Tanooki]> and <(Statue) = [0]>>> and <([abs v] of (XVel) ) > [2]>> then\n                if <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n                    set [allowtanookiflightstart v] to [0]\n                    set [tanookiflying v] to [1]\n                end\n            end\n            set [allowtanookiflightstart v] to [1]\n            change y by (Gravity)\n            if <<touching (map v)?> or <<<touching (semisolids v)?> or <touching (platforms v)?>> and <not <(YVel) > [0]>>>> then\n                change y by ((Gravity) * (-1))\n                set [yvel v] to [0]\n                set [tanookiflying v] to [0]\n                set [allowtanookiflightstart v] to [0]\n                set [allowtanookiflight v] to [0]\n                set [tanookiusesleft v] to [10]\n                if <(TanookiFlying) = [0]> then\n                    if <(Statue) = [0]> then\n                        if <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n                            start sound [Jump v]\n                            if <([abs v] of (XVel) ) > [2]> then\n                                set [yvel v] to [20]\n                            else\n                                set [yvel v] to [18]\n                            end\n                        else\n                            if <<key (s v) pressed?> or <key (down arrow v) pressed?>> then\n                                set [crouching v] to [1]\n                            end\n                        end\n                    end\n                end\n                FindFloor\n            end\n            if <not <(Powerup) = [Tanooki]>> then\n                set [tanookiflying v] to [0]\n            end\n            if <<<(TanookiFlying) = [1]> and <(YVel) < [-8]>> and <not <<<key (w v) pressed?> or <key (up arrow v) pressed?>> or <<<key (d v) pressed?> or <key (right arrow v) pressed?>> or <<key (a v) pressed?> or <key (left arrow v) pressed?>>>>>> then\n                set [tanookiflying v] to [0]\n                set [allowtanookiflightstart v] to [0]\n                set [allowtanookiflight v] to [0]\n            end\n            if <<(AllowTanookiFlight) = [0]> and <(TanookiFlying) = [1]>> then\n                if <not <<key (w v) pressed?> or <key (up arrow v) pressed?>>> then\n                    set [allowtanookiflight v] to [1]\n                    set [tanookiflying v] to [1]\n                end\n            end\n            if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <<<(AllowTanookiFlight) = [1]> and <<(Powerup) = [Tanooki]> and <(Statue) = [0]>>> and <<(TanookiUsesLeft) > [0]> and <(TanookiCooldown) < [0]>>>> then\n                set [yvel v] to [11]\n                set [allowtanookiflight v] to [0]\n                set [tanookicooldown v] to [0.12]\n                change [tanookiusesleft v] by (-1)\n            end\n            if <(YVel) > [0]> then\n                if <<(Powerup) = [None]> or <(Crouching) = [1]>> then\n                    switch costume to (nonetop v)\n                else\n                    switch costume to (bigtop v)\n                end\n            else\n                switch costume to (allbottom v)\n            end\n            change y by (YVel)\n            if <<touching (map v)?> or <<<touching (semisolids v)?> or <touching (platforms v)?>> and <not <(YVel) > [0]>>>> then\n                if <(YVel) > [0]> then\n                    FindCeiling\n                    set [yvel v] to [3]\n                else\n                    change y by ((YVel) * (-1))\n                    FindFloor\n                    set [yvel v] to [0]\n                end\n            end\n            if <<(Statue) = [0]> and <<(SlidingFunction) = [0]> and <(Crouching) = [0]>>> then\n                if <<<key (d v) pressed?> or <key (right arrow v) pressed?>> and <not <<key (a v) pressed?> or <key (left arrow v) pressed?>>>> then\n                    change [xvel v] by (2)\n                    point in direction (90)\n                    if <(XVel) < [2]> then\n                        change [xvel v] by (-1.99)\n                    end\n                end\n                if <<<key (a v) pressed?> or <key (left arrow v) pressed?>> and <not <<key (d v) pressed?> or <key (right arrow v) pressed?>>>> then\n                    change [xvel v] by (-2)\n                    point in direction (-90)\n                    if <(XVel) > [-2]> then\n                        change [xvel v] by (1.99)\n                    end\n                end\n            end\n            if <(SlidingFunction) = [0]> then\n                if <<(Powerup) = [None]> or <(Crouching) = [1]>> then\n                    switch costume to (nonesides v)\n                else\n                    switch costume to (bigsides v)\n                end\n                change x by (XVel)\n                YSmoothing\n                if <touching (map v)?> then\n                    set [playerx v] to ((x position) - (MapX))\n                    FindXPosition\n                    set [xvel v] to [0]\n                end\n            end\n            if <<(Crouching) = [1]> or <(Sliding) = [1]>> then\n                set [xvel v] to ((XVel) / (1.1))\n            else\n                if <([abs v] of (XVel) ) < [3.99999999999]> then\n                    set [xvel v] to ((XVel) / (2))\n                else\n                    if <(YVel) = [0]> then\n                        set [xvel v] to ((XVel) / (1.4))\n                    else\n                        set [xvel v] to ((XVel) / (1.3))\n                    end\n                end\n            end\n            if <<<([abs v] of (XVel) ) > [4]> and <(TanookiFlying) = [1]>> and <<(YVel) = [-0.4]> and <<key (w v) pressed?> or <key (up arrow v) pressed?>>>> then\n                if <(XVel) > [0]> then\n                    set [xvel v] to [4]\n                else\n                    set [xvel v] to [-4]\n                end\n            end\n            set [playerx v] to ((x position) - (MapX))\n            set [playery v] to ((y position) - (MapY))\n            if <<(Powerup) = [Fire]> and <(TanookiCooldown) < [0]>> then\n                if <key (space v) pressed?> then\n                    add ((((x position) + (((direction) / (90)) * (12))) - (MapX)) / (28)) to [fireballx v]\n                    add (((y position) - (MapY)) / (28)) to [firebally v]\n                    add (direction) to [fireballdir v]\n                    add [1] to [fireballtype v]\n                    add [0] to [fireballbounces v]\n                    set [tanookicooldown v] to [0.5]\n                    start sound [Fireball v]\n                end\n            end\n        end\n    end\n    if <<(Powerup) = [None]> or <(Crouching) = [1]>> then\n        switch costume to (nonesides v)\n    else\n        if <<(Powerup) = [Frog]> and <touching (water v)?>> then\n            switch costume to (frogswimmingsides v)\n        else\n            switch costume to (bigsides v)\n        end\n    end\nend\nif <(AllowPlayerMovement) = [1]> then\n    if <<(y position) < [-172]> and <(Dead) = [0]>> then\n        broadcast (Death v)\n    end\nend\nif <<(Dead) = [1]> or <(PassedGoal) = [1]>> then\n    set [spinning v] to [0]\n    set [statue v] to [0]\nend\nif <(Dead) = [0]> then\n    if <<(Level) = [8]> and <(Underground) = [0]>> then\n        change [mapx v] by (-1)\n    else\n        change [mapx v] by (round ((((PlayerX) * (-1)) - (MapX)) / (4)))\n        change [mapy v] by ([floor v] of (((((PlayerY) + (-32)) * (-1)) - (MapY)) / (4)) )\n    end\nend\nif <(MapX) > [600]> then\n    set [mapx v] to [600]\nend\nif <(MapX) < [-5640]> then\n    set [mapx v] to [-5640]\nend\nif <(Level) = [7]> then\n    if <(MapX) < [-3848]> then\n        set [mapx v] to [-3848]\n    end\nend\nif <(Underground) = [1]> then\n    if <<(Level) = [4]> or <(Level) = [8]>> then\n        set [mapx v] to [-2254]\n    end\n    if <(Level) = [8]> then\n        set [mapy v] to [400]\n    end\n    if <(MapY) < [222]> then\n        set [mapy v] to [222]\n    end\n    if <(MapY) > [428]> then\n        set [mapy v] to [428]\n    end\nelse\n    if <(MapY) > [-138]> then\n        set [mapy v] to [-138]\n    end\n    if <(MapY) < [-450]> then\n        set [mapy v] to [-450]\n    end\n    if <(Level) = [8]> then\n        set [mapy v] to [-153]\n        change [mapy v] by (([sin v] of ((GlobalCostumeNo.) * (24)) ) * (15))\n        if <(MapX) < [-2280]> then\n            set [mapx v] to [-2280]\n        end\n        if <(x position) > [0]> then\n            change [mapx v] by ((x position) / (-24))\n        end\n    end\nend\nif <<(Powerup) = [Tanooki]> and <<(Dead) = [0]> and <(PassedGoal) = [0]>>> then\n    if <<<<key (space v) pressed?> and <not <touching (water v)?>>> and <<(Spinning) = [0]> and <<(Statue) = [0]> and <(StatueSwapCooldown) < [-0.6]>>>> or <<(TanookiCooldown) < [-0.3]> and <(Spinning) = [1]>>> then\n        set [statue v] to [0]\n        set [tanookiflying v] to [0]\n        set [tanookiusesleft v] to [0]\n        if <(Spinning) = [1]> then\n            set [statue v] to [0]\n            set [allowplayerdamage v] to [1]\n            set [tanookicooldown v] to [0]\n            set [spinning v] to [0]\n        else\n            start sound [Spin v]\n            set [allowplayerdamage v] to [0]\n            set [tanookicooldown v] to [0]\n            set [spinning v] to [1]\n            set [playercostumeno. v] to [0.5]\n        end\n        set [statueswapcooldown v] to [0]\n    else\n        if <<<<key (m v) pressed?> or <key (e v) pressed?>> and <(StatueSwapCooldown) < [0]>> or <<(Statue) = [1]> and <(TanookiCooldown) < [-5]>>> then\n            set [spinning v] to [0]\n            set [tanookiflying v] to [0]\n            set [tanookiusesleft v] to [0]\n            if <(Statue) = [1]> then\n                set [statue v] to [0]\n                set [allowplayerdamage v] to [1]\n                set [tanookicooldown v] to [0]\n            else\n                set [statue v] to [1]\n                set [yvel v] to [-5]\n                set [allowplayerdamage v] to [0]\n                set [tanookicooldown v] to [0]\n            end\n            set [statueswapcooldown v] to [1]\n        end\n    end\nelse\n    set [statue v] to [0]\n    set [spinning v] to [0]\nend\nchange y by (-1)\nif <(Dead) = [0]> then\n    broadcast (PlayerUpdated v)\nend\nbroadcast (CostumeEverything v)\n\nwhen flag clicked\nset [ptimer v] to [0]\nset [startimer v] to [0]\nswitch costume to (idle1none v)\nset rotation style [left-right v]\npoint in direction (90)\nset size to (350) %\nbroadcast (ResetLevel v) and wait\nbroadcast (ResetLevel v) and wait\n\nwhen I receive [playerupdate v]\ndelete all of [condir v]\ndelete all of [conx v]\ndelete all of [cony v]\nset [conveyed v] to [0]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(PassedGoal) = [0]> then\n    show\nend\ngo to x: ((PlayerX) + (MapX)) y: ((PlayerY) + (MapY))\nif <(StarTimer) > [0]> then\n    change [color v] effect by (12)\n    set [brightness v] effect to ((([sin v] of ((GlobalCostumeNo.) * (360)) ) * (25)) + (15))\nend\nif <(AllowPlayerMovement) = [1]> then\n    if <(AbCooldown) > [0]> then\n        change [abcooldown v] by ((-1) / (10))\n        if <(AbCooldown) < [0]> then\n            set [abcooldown v] to [0]\n        end\n    end\n    if <<(AbCooldown) = [0]> and <not <key (z v) pressed?>>> then\n        set [abcooldown v] to [-1]\n    end\n    if <(FlyCooldown) > [0]> then\n        change [flycooldown v] by ((-1) / (10))\n        if <(FlyCooldown) < [0]> then\n            set [flycooldown v] to [0]\n        end\n    end\n    if <(StarTimer) > [0]> then\n        change [startimer v] by ((-1) / (10))\n        if <(StarTimer) < [0]> then\n            set [startimer v] to [0]\n            clear graphic effects\n        end\n    end\n    if <<(FlyCooldown) = [0]> and <not <<key (up arrow v) pressed?> or <key (x v) pressed?>>>> then\n        set [flycooldown v] to [-1]\n    end\n    if <<<(Background) = [5]> and <(Underground) = [0]>> or <<(Background2) = [5]> and <(Underground) = [1]>>> then\n        WaterPhysics\n    else\n        NormalPhysics\n    end\n    MorePlayerStuff\nend\nif <(y position) < [-175]> then\n    set [ghost v] effect to (100)\nend\nbroadcast (CostumeEverything v)\n\ndefine FindCeiling\nrepeat until <<touching (blocks v)?> or <touching (uniqueblocks v)?>>\n    change y by (1)\nend\nchange y by (-1)\n\ndefine FindFloor\nrepeat until <<touching (blocks v)?> or <touching (uniqueblocks v)?>>\n    change y by (-1)\nend\nchange y by (1)\n\nwhen I receive [costumeeverything v]\nchange [playercostumeno. v] by (((0.2) + (<<([abs v] of (XVel) ) > [2]> or <key (z v) pressed?>> * (0.06))) + (([abs v] of (XVel) ) / (40)))\nCostumeMe\n\ndefine FindXPosition\nset [playerx v] to ((x position) - (MapX))\nset [playery v] to ((y position) - (MapY))\nset [offset v] to [0]\nif <(Powerup) = [None]> then\n    switch costume to (nonesides v)\nelse\n    switch costume to (bigsides v)\nend\nrepeat until <<not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> or <(Offset) > [28]>>\n    set x to ((PlayerX) + (MapX))\n    if <(Offset) > [0]> then\n        change [offset v] by (0.5)\n    else\n        change [offset v] by (-0.5)\n    end\n    set [offset v] to ((Offset) * (-1))\n    change x by (Offset)\nend\nif <(Powerup) = [None]> then\n    switch costume to (nonetop v)\nelse\n    switch costume to (bigtop v)\nend\nif <(Offset) > [28]> then\n    set x to ((PlayerX) + (MapX))\n    set [offset v] to [0]\n    repeat until <<not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> or <(Offset) > [48]>>\n        set y to ((PlayerY) + (MapY))\n        if <(Offset) > [0]> then\n            change [offset v] by (0.5)\n        else\n            change [offset v] by (-0.5)\n        end\n        set [offset v] to ((Offset) * (-1))\n        change y by (Offset)\n    end\nend\nif <(Powerup) = [None]> then\n    switch costume to (nonesides v)\nelse\n    switch costume to (bigsides v)\nend\nif <(Offset) > [48]> then\n    set x to ((PlayerX) + (MapX))\n    set y to ((PlayerY) + (MapY))\n    if <(AllowPlayerDamage) = [1]> then\n        broadcast (Death v)\n    end\nend\n\nwhen I receive [formblocksnow v]\nif <(Pause) = [1]> then\n    set [playercostumeno. v] to [0]\nend\n\ndefine YSmoothing\nrepeat (6)\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by (1)\n    end\nend\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by (-6)\nend\n\nwhen I receive [resetlevel v]\nset [underground v] to [0]\nset [pipetravel v] to [0]\nset [on/offswitch v] to [0]\nset [playercostumeno. v] to [0]\nif <(Background) = [5]> then\n    set [gravity v] to [-1.2]\nelse\n    set [gravity v] to [-3]\nend\nset [xvel v] to [0]\nset [yvel v] to [0]\nset [mapx v] to [222]\nset [playerx v] to [-342]\nset [mapy v] to [0]\nset [playery v] to [0]\nset [passedgoal v] to [0]\nset [powerup v] to [None]\nset [holdingshell v] to [0]\nset [dead v] to [0]\nset [allowplayermovement v] to [1]\nset [allowplayerdamage v] to [1]\nset [ptimer v] to [0]\nset [startimer v] to [0]\ndelete all of [itemx v]\ndelete all of [itemy v]\ndelete all of [itemdir v]\ndelete all of [itemtype v]\ndelete all of [itemyvel v]\ndelete all of [firedir v]\ndelete all of [firetype v]\ndelete all of [firex v]\ndelete all of [firey v]\ngo to x: ((PlayerX) + (MapX)) y: ((PlayerY) + (MapY))\nclear graphic effects\nbroadcast (Convert v) and wait\n\nwhen I receive [win v]\nif <(Background) = [5]> then\n    wait until <<(YVel) = [0]> or <(y position) < [-25]>>\nelse\n    wait until <<<(YVel) = [0]> or <(y position) < [-175]>> or <(YVel) > [15]>>\nend\npoint in direction (90)\nrepeat (120)\n    if <(Background) = [5]> then\n        if <<(YVel) = [-1.5]> and <(y position) < [-30]>> then\n            set [yvel v] to [6]\n        end\n    end\n    set [xvel v] to [3]\n    if <(PassedGoal) = [0]> then\n        stop [this script v]\n    end\n    if <(x position) > [235]> then\n        hide\n    end\nend\nif <(Making) = [0]> then\n    broadcast (Blacken v) and wait\n    set [pause v] to [1]\n    set [menu v] to [1]\n    broadcast (Open v)\nelse\n    broadcast (Blacken v) and wait\n    go to x: (0) y: (0)\n    switch costume to (idle1none v)\n    set [pause v] to [1]\n    broadcast (ResetLevel v) and wait\n    broadcast (Convert v) and wait\n    broadcast (Open v)\nend\n\ndefine Jump\nif <<<(Background) = [5]> and <(Underground) = [0]>> or <<(Background2) = [5]> and <(Underground) = [1]>>> then\n    start sound [Swim v]\n    set [yvel v] to [7]\nelse\n    start sound [Jump v]\n    set [yvel v] to ((17) + ((([abs v] of (XVel) ) / (3.5)) + <([abs v] of (XVel) ) > ((5.999999) / (1.35))>))\nend\n\nwhen I receive [death v]\nstop all sounds\nstart sound [Death v]\nset [coins v] to [0]\nset [allowplayermovement v] to [0]\nset [dead v] to [1]\nset [yvel v] to [0]\nrepeat (30)\n    if <(Pause) = [1]> then\n        switch costume to (idle1none v)\n        set [allowplayermovement v] to [1]\n        set [dead v] to [0]\n        go to x: (0) y: (0)\n        stop [this script v]\n    end\nend\nset [yvel v] to [12]\nrepeat (120)\n    change [playery v] by (YVel)\n    change [yvel v] by (-1)\n    if <<(Pause) = [1]> or <(Dead) = [0]>> then\n        switch costume to (idle1none v)\n        set [allowplayermovement v] to [1]\n        set [dead v] to [0]\n        stop [this script v]\n    end\nend\nset [ghost v] effect to (0)\nset [allowplayermovement v] to [1]\nset [dead v] to [0]\n\nwhen I receive [powerdown v]\nif <<(PassedGoal) = [0]> and <(StarTimer) = [0]>> then\n    set [allowplayerdamage v] to [0]\n    if <(Powerup) = [None]> then\n        broadcast (Death v) and wait\n    else\n        set [flycooldown v] to [-1]\n        set [flying v] to [0]\n        set [abcooldown v] to [-1]\n        set [floating v] to [0]\n        start sound [Pipe/Powerdown v]\n        if <(Powerup) = [Big]> then\n            set [powerup v] to [None]\n        else\n            set [powerup v] to [Big]\n        end\n        repeat (15)\n            set [ghost v] effect to (100)\n            wait (0.05) seconds\n            set [ghost v] effect to (0)\n            wait (0.05) seconds\n        end\n        repeat (8)\n            set [ghost v] effect to (100)\n            wait (0.02) seconds\n            set [ghost v] effect to (0)\n            wait (0.02) seconds\n        end\n    end\n    set [allowplayerdamage v] to [1]\nend\n\nwhen I receive [powerup v]\nset [allowplayerdamage v] to [0]\nif <<<<(PowerupCollected) = [Big]> and <(Powerup) = [None]>> or <not <(PowerupCollected) = [Big]>>> and <not <(Powerup) = (PowerupCollected)>>> then\n    start sound [Powerup v]\n    set [powerup v] to (PowerupCollected)\n    repeat (5)\n        set [ghost v] effect to (100)\n        wait (0.05) seconds\n        set [ghost v] effect to (0)\n        wait (0.05) seconds\n    end\n    wait (0.1) seconds\nelse\n    start sound [Coin v]\n    repeat (2)\n        set [ghost v] effect to (100)\n        wait (0.05) seconds\n        set [ghost v] effect to (0)\n        wait (0.05) seconds\n    end\nend\nset [allowplayerdamage v] to [1]\n\nwhen [space v] key pressed\nset [pipetravel v] to [0]\nset [startimer v] to [0]\nset [flycooldown v] to [-1]\nset [abcooldown v] to [-1]\nset [flying v] to [0]\nset [floating v] to [0]\nset [on/offswitch v] to [0]\nif <<<(Background) = [5]> and <(Underground) = [0]>> or <<(Background2) = [5]> and <(Underground) = [1]>>> then\n    set [gravity v] to [-1.2]\nelse\n    set [gravity v] to [-3]\nend\nset [ptimer v] to [0]\nif <(Menu) = [0]> then\n    stop all sounds\n    set [coins v] to [0]\n    set [powerup v] to [None]\n    delete all of [firedir v]\n    delete all of [firetype v]\n    delete all of [firex v]\n    delete all of [firey v]\n    clear graphic effects\nend\n\nwhen I receive [gotofloor v]\nFindFloor\nset [playery v] to ((y position) - (MapY))\n\nwhen I receive [menutick v]\nhide\n\nwhen I receive [open v]\nshow\n\ndefine NormalPhysics\nif <(YVel) > [-12]> then\n    change [yvel v] by ((Gravity) / (3.1))\n    if <<<(YVel) > [0]> and <not <<key (up arrow v) pressed?> or <key (x v) pressed?>>>> and <(PassedGoal) = [0]>> then\n        set [yvel v] to ((YVel) / (1.2))\n    end\nend\nif <<(Powerup) = [Racc]> and <<key (up arrow v) pressed?> or <key (x v) pressed?>>> then\n    if <(YVel) < [-1]> then\n        set [yvel v] to [-1]\n        set [floating v] to [1]\n    end\nend\nset [floating v] to [0]\nswitch costume to (allbottom v)\nchange y by (Gravity)\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by ((Gravity) * (-1))\n    FindFloor\n    set [yvel v] to [0]\nend\nif <(AllowCrouchJump) < [1]> then\n    if <not <<key (up arrow v) pressed?> or <key (x v) pressed?>>> then\n        set [allowcrouchjump v] to [1]\n    end\n    if <<(Crouching) = [0]> and <(YVel) = [0]>> then\n        change [allowcrouchjump v] by (0.2)\n        if <(AllowCrouchJump) > [1]> then\n            set [allowcrouchjump v] to [1]\n        end\n    end\nend\nset [flying v] to [0]\nif <(YVel) = [0]> then\n    if <<<key (up arrow v) pressed?> or <key (x v) pressed?>> and <(PassedGoal) = [0]>> then\n        if <(Crouching) = [1]> then\n            switch costume to (bigtop v)\n            if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n                if <(AllowCrouchJump) = [1]> then\n                    set [allowcrouchjump v] to [0]\n                    Jump\n                    if <<key (right arrow v) pressed?> or <<key (left arrow v) pressed?> or <([abs v] of (XVel) ) > [0.05]>>> then\n                        change [xvel v] by ((direction) / (180))\n                    end\n                end\n            else\n                Jump\n            end\n        else\n            if <(AllowCrouchJump) = [1]> then\n                Jump\n            end\n        end\n    else\n        if <key (down arrow v) pressed?> then\n            set [crouching v] to [1]\n        else\n            if <(Powerup) = [None]> then\n                set [crouching v] to [0]\n            else\n                switch costume to (bigtop v)\n                if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n                    set [crouching v] to [0]\n                end\n            end\n        end\n    end\nelse\n    if <(Powerup) = [None]> then\n        set [crouching v] to [0]\n    else\n        switch costume to (bigtop v)\n        if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n            set [crouching v] to [0]\n        end\n        if <(Powerup) = [Racc]> then\n            if <<<(AllowFlightStart) = [1]> and <(FlyCooldown) = [-1]>> and <<key (up arrow v) pressed?> or <key (x v) pressed?>>> then\n                set [flycooldown v] to [0.7]\n                start sound [Spin v]\n            end\n            if <(FlyCooldown) > [0]> then\n                set [flying v] to [1]\n                set [yvel v] to [9]\n            end\n        end\n    end\nend\nif <(YVel) > [0]> then\n    if <<(Powerup) = [None]> or <(Crouching) = [1]>> then\n        switch costume to (nonetop v)\n    else\n        switch costume to (bigtop v)\n    end\nelse\n    switch costume to (allbottom v)\nend\nchange y by (YVel)\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by ((YVel) * (-1))\n    if <(YVel) > [0]> then\n        FindCeiling\n        set [yvel v] to [-0.1]\n        if <(Crouching) = [0]> then\n            set [allowcrouchjump v] to [0]\n        end\n    else\n        FindFloor\n        set [yvel v] to [0]\n    end\nend\nif <<(Powerup) = [None]> or <(Crouching) = [1]>> then\n    switch costume to (nonesides v)\nelse\n    switch costume to (bigsides v)\nend\nif <<<key (right arrow v) pressed?> and <not <key (left arrow v) pressed?>>> and <(PassedGoal) = [0]>> then\n    if <<(YVel) = [0]> or <<not <(YVel) = [0]>> and <<(Powerup) = [Racc]> and <(XVel) > [0]>>>> then\n        point in direction (90)\n    end\n    if <(Crouching) = [0]> then\n        change [xvel v] by (2)\n        if <(XVel) < [2]> then\n            if <(YVel) = [0]> then\n                change [xvel v] by (-1.96)\n            else\n                change [xvel v] by (-1.9)\n            end\n        end\n    end\nend\nif <<<key (left arrow v) pressed?> and <not <key (right arrow v) pressed?>>> and <(PassedGoal) = [0]>> then\n    if <<(YVel) = [0]> or <<not <(YVel) = [0]>> and <<(Powerup) = [Racc]> and <(XVel) < [0]>>>> then\n        point in direction (-90)\n    end\n    if <(Crouching) = [0]> then\n        change [xvel v] by (-2)\n        if <(XVel) > [-2]> then\n            if <(YVel) = [0]> then\n                change [xvel v] by (1.96)\n            else\n                change [xvel v] by (1.9)\n            end\n        end\n    end\nend\nchange x by (XVel)\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    YSmoothing\nend\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    FindXPosition\n    set [xvel v] to [0]\nend\nif <(Crouching) = [1]> then\n    set [xvel v] to ((XVel) / (1.07))\nelse\n    if <not <<key (right arrow v) pressed?> or <key (left arrow v) pressed?>>> then\n        set [xvel v] to ((XVel) / (1.25))\n    else\n        if <key (z v) pressed?> then\n            if <([abs v] of (XVel) ) > ((4.44444444) * (1.45))> then\n                set [xvel v] to ((XVel) / ((1.4) - (<(StarTimer) > [0]> * (0.05))))\n                if <(YVel) = [0]> then\n                    set [allowflightstart v] to [1]\n                end\n            else\n                set [xvel v] to ((XVel) / ((1.45) - (<(StarTimer) > [0]> * (0.01))))\n                if <(YVel) = [0]> then\n                    set [allowflightstart v] to [0]\n                end\n            end\n        else\n            set [xvel v] to ((XVel) / ((2) - (<(StarTimer) > [0]> * (0.05))))\n            set [allowflightstart v] to [0]\n        end\n    end\nend\nif <<([abs v] of (XVel) ) < [0.1]> and <(YVel) < [0]>> then\n    set [allowflightstart v] to [0]\nend\n\ndefine WaterPhysics\nif <(YVel) > [12]> then\n    set [yvel v] to [12]\nend\nif <(YVel) > [-1.5]> then\n    change [yvel v] by ((Gravity) / (2.6))\n    if <<<(YVel) > [0]> and <not <<key (up arrow v) pressed?> or <key (x v) pressed?>>>> and <(PassedGoal) = [0]>> then\n        set [yvel v] to ((YVel) / (1.2))\n    end\n    if <(YVel) < [-1.5]> then\n        set [yvel v] to [-1.5]\n    end\nend\nswitch costume to (allbottom v)\nchange y by (Gravity)\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by ((Gravity) * (-1))\n    FindFloor\n    set [yvel v] to [0]\nend\nif <(AllowCrouchJump) < [1]> then\n    if <not <<key (up arrow v) pressed?> or <key (x v) pressed?>>> then\n        set [allowcrouchjump v] to [1]\n    end\n    if <<(Crouching) = [0]> and <(YVel) = [0]>> then\n        change [allowcrouchjump v] by (0.2)\n        if <(AllowCrouchJump) > [1]> then\n            set [allowcrouchjump v] to [1]\n        end\n    end\nend\nif <<(YVel) < [-1]> or <(YVel) = [0]>> then\n    if <<<key (up arrow v) pressed?> or <key (x v) pressed?>> and <(PassedGoal) = [0]>> then\n        if <(Crouching) = [1]> then\n            switch costume to (bigtop v)\n            if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n                if <(AllowCrouchJump) = [1]> then\n                    set [allowcrouchjump v] to [0]\n                    Jump\n                    if <<key (right arrow v) pressed?> or <<key (left arrow v) pressed?> or <([abs v] of (XVel) ) > [0.05]>>> then\n                        change [xvel v] by ((direction) / (180))\n                    end\n                end\n            else\n                Jump\n            end\n        else\n            if <(AllowCrouchJump) = [1]> then\n                Jump\n            end\n        end\n    else\n        if <(YVel) = [0]> then\n            if <key (down arrow v) pressed?> then\n                set [crouching v] to [1]\n            else\n                if <(Powerup) = [None]> then\n                    set [crouching v] to [0]\n                else\n                    switch costume to (bigtop v)\n                    if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n                        set [crouching v] to [0]\n                    end\n                end\n            end\n        end\n    end\nelse\n    if <(Powerup) = [None]> then\n        set [crouching v] to [0]\n    else\n        switch costume to (bigtop v)\n        if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n            set [crouching v] to [0]\n        end\n    end\nend\nif <(YVel) > [0]> then\n    if <<(Powerup) = [None]> or <(Crouching) = [1]>> then\n        switch costume to (nonetop v)\n    else\n        switch costume to (bigtop v)\n    end\nelse\n    switch costume to (allbottom v)\nend\nchange y by (YVel)\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by ((YVel) * (-1))\n    if <(YVel) > [0]> then\n        FindCeiling\n        set [yvel v] to [-0.1]\n        if <(Crouching) = [0]> then\n            set [allowcrouchjump v] to [0]\n        end\n    else\n        FindFloor\n        set [yvel v] to [0]\n    end\nend\nif <<(Powerup) = [None]> or <(Crouching) = [1]>> then\n    switch costume to (nonesides v)\nelse\n    switch costume to (bigsides v)\nend\nif <<<key (right arrow v) pressed?> and <not <key (left arrow v) pressed?>>> and <(PassedGoal) = [0]>> then\n    if <(XVel) > [0]> then\n        point in direction (90)\n    end\n    if <(Crouching) = [0]> then\n        change [xvel v] by (0.5)\n        if <(XVel) < [0.5]> then\n            if <(YVel) = [0]> then\n                change [xvel v] by (-0.46)\n            else\n                change [xvel v] by (-0.4)\n            end\n        end\n    end\nend\nif <<<key (left arrow v) pressed?> and <not <key (right arrow v) pressed?>>> and <(PassedGoal) = [0]>> then\n    if <(XVel) < [0]> then\n        point in direction (-90)\n    end\n    if <(Crouching) = [0]> then\n        change [xvel v] by (-0.5)\n        if <(XVel) > [-0.5]> then\n            if <(YVel) = [0]> then\n                change [xvel v] by (0.46)\n            else\n                change [xvel v] by (0.4)\n            end\n        end\n    end\nend\nchange x by (XVel)\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    YSmoothing\nend\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    FindXPosition\n    set [xvel v] to [0]\nend\nif <(Crouching) = [1]> then\n    set [xvel v] to ((XVel) / ((1.05) - (<(StarTimer) > [0]> * (0.02))))\nelse\n    if <key (z v) pressed?> then\n        set [xvel v] to ((XVel) / ((1.1) - (<(StarTimer) > [0]> * (0.02))))\n    else\n        set [xvel v] to ((XVel) / ((1.2) - (<(StarTimer) > [0]> * (0.02))))\n    end\nend\n\nwhen I receive [playerconveyed v]\nif <(AllowPlayerMovement) = [1]> then\n    PlayerConveyed\nend\n\ndefine PlayerConveyed\nset [scanno. v] to [0]\nrepeat (length of [conx v])\n    change [scanno. v] by (1)\n    if <<([abs v] of ((x position) - (item (ScanNo.) of [conx v])) ) < [28]> and <<((y position) - (item (ScanNo.) of [cony v])) < [40]> and <((y position) - (item (ScanNo.) of [cony v])) > [0]>>> then\n        switch costume to (allbottom v)\n        change y by (3)\n        change x by ((item (ScanNo.) of [condir v]) / (30))\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n            change x by ((item (ScanNo.) of [condir v]) / (-30))\n        else\n            change [playerx v] by ((item (ScanNo.) of [condir v]) / (30))\n        end\n        change y by (-3)\n        CostumeMe\n        stop [this script v]\n    end\nend\n\ndefine CostumeMe\nif <(Dead) = [1]> then\n    switch costume to (join [Dead1] [None])\nelse\n    if <(PipeTravel) = [1]> then\n        switch costume to (join [Pipe] (Powerup))\n    else\n        if <(Crouching) = [1]> then\n            switch costume to (join [Crouch1] (Powerup))\n        else\n            if <<<(Background) = [5]> and <(Underground) = [0]>> or <<(Background2) = [5]> and <(Underground) = [1]>>> then\n                if <not <(YVel) = [0]>> then\n                    if <(AbCooldown) > [0.4]> then\n                        switch costume to (throw5 v)\n                    else\n                        if <(HoldingShell) = [1]> then\n                            switch costume to (join [GlideHold1] (Powerup))\n                        else\n                            switch costume to (join [Swim] (join (([floor v] of (((PlayerCostumeNo.) / (2)) mod (5)) ) + (1)) (Powerup)))\n                        end\n                    end\n                else\n                    if <<<<<(XVel) < [1]> and <<key (right arrow v) pressed?> and <not <key (left arrow v) pressed?>>>> or <<(XVel) > [-1]> and <<key (left arrow v) pressed?> and <not <key (right arrow v) pressed?>>>>> and <<not <(XVel) = [0]>> and <(PassedGoal) = [0]>>> and <(HoldingShell) = [0]>> then\n                        if <(Powerup) = [None]> then\n                            switch costume to (walk3none v)\n                        else\n                            switch costume to (join [Walk5] (Powerup))\n                        end\n                    else\n                        if <(AbCooldown) > [0.4]> then\n                            if <(AbCooldown) > [0.7]> then\n                                switch costume to (throw1 v)\n                            else\n                                switch costume to (throw2 v)\n                            end\n                        else\n                            if <([abs v] of (XVel) ) > [0.1]> then\n                                if <(Powerup) = [None]> then\n                                    if <(HoldingShell) = [1]> then\n                                        switch costume to (join [WalkHold] (join (([floor v] of ((PlayerCostumeNo.) mod (2)) ) + (1)) (Powerup)))\n                                    else\n                                        switch costume to (join [Walk] (join (([floor v] of ((PlayerCostumeNo.) mod (2)) ) + (1)) (Powerup)))\n                                    end\n                                else\n                                    if <(HoldingShell) = [1]> then\n                                        switch costume to (join [WalkHold] (join (([floor v] of ((PlayerCostumeNo.) mod (4)) ) + (1)) (Powerup)))\n                                    else\n                                        switch costume to (join [Walk] (join (([floor v] of ((PlayerCostumeNo.) mod (4)) ) + (1)) (Powerup)))\n                                    end\n                                end\n                            else\n                                if <(HoldingShell) = [1]> then\n                                    switch costume to (join [IdleHold1] (Powerup))\n                                else\n                                    switch costume to (join [Idle1] (Powerup))\n                                end\n                                set [playercostumeno. v] to [3]\n                            end\n                        end\n                    end\n                end\n            else\n                if <not <(YVel) = [0]>> then\n                    if <(AbCooldown) > [0.4]> then\n                        if <(Powerup) = [Racc]> then\n                            switch costume to (join [Spin] (([floor v] of (((PlayerCostumeNo.) * (1.3)) mod (4)) ) + (1)))\n                        else\n                            switch costume to (throw4 v)\n                        end\n                    else\n                        if <<(Flying) = [1]> or <<<(Powerup) = [Racc]> and <<key (up arrow v) pressed?> or <key (x v) pressed?>>> and <(YVel) = [-1]>>> then\n                            switch costume to (join [Racc] (([floor v] of (((PlayerCostumeNo.) * (1.3)) mod (4)) ) + (1)))\n                        else\n                            if <([abs v] of (XVel) ) > ((5.999999) / (1.35))> then\n                                if <(HoldingShell) = [1]> then\n                                    switch costume to (join [GlideHold1] (Powerup))\n                                else\n                                    switch costume to (join [Glide1] (Powerup))\n                                end\n                            else\n                                switch costume to (join [Jump1] (Powerup))\n                            end\n                        end\n                    end\n                else\n                    if <<<<<(XVel) < [1]> and <<key (right arrow v) pressed?> and <not <key (left arrow v) pressed?>>>> or <<(XVel) > [-1]> and <<key (left arrow v) pressed?> and <not <key (right arrow v) pressed?>>>>> and <<not <(XVel) = [0]>> and <(PassedGoal) = [0]>>> and <(HoldingShell) = [0]>> then\n                        if <(Powerup) = [None]> then\n                            switch costume to (walk3none v)\n                        else\n                            switch costume to (join [Walk5] (Powerup))\n                        end\n                    else\n                        if <(AbCooldown) > [0.4]> then\n                            if <(Powerup) = [Racc]> then\n                                switch costume to (join [Spin] (([floor v] of (((PlayerCostumeNo.) * (2)) mod (4)) ) + (1)))\n                            else\n                                if <(AbCooldown) > [0.7]> then\n                                    switch costume to (throw1 v)\n                                else\n                                    switch costume to (throw2 v)\n                                end\n                            end\n                        else\n                            if <([abs v] of (XVel) ) > [0.1]> then\n                                if <([abs v] of (XVel) ) > ((5.999999) / (1.35))> then\n                                    if <(Powerup) = [None]> then\n                                        if <(HoldingShell) = [1]> then\n                                            switch costume to (join [WalkHold] (join (([floor v] of (((PlayerCostumeNo.) * (1.3)) mod (2)) ) + (1)) (Powerup)))\n                                        else\n                                            switch costume to (join [Run] (join (([floor v] of ((PlayerCostumeNo.) mod (2)) ) + (1)) (Powerup)))\n                                        end\n                                    else\n                                        if <(HoldingShell) = [1]> then\n                                            switch costume to (join [WalkHold] (join (([floor v] of (((PlayerCostumeNo.) * (1.3)) mod (4)) ) + (1)) (Powerup)))\n                                        else\n                                            switch costume to (join [Run] (join (([floor v] of ((PlayerCostumeNo.) mod (4)) ) + (1)) (Powerup)))\n                                        end\n                                    end\n                                else\n                                    if <(Powerup) = [None]> then\n                                        if <(HoldingShell) = [1]> then\n                                            switch costume to (join [WalkHold] (join (([floor v] of ((PlayerCostumeNo.) mod (2)) ) + (1)) (Powerup)))\n                                        else\n                                            switch costume to (join [Walk] (join (([floor v] of ((PlayerCostumeNo.) mod (2)) ) + (1)) (Powerup)))\n                                        end\n                                    else\n                                        if <(HoldingShell) = [1]> then\n                                            switch costume to (join [WalkHold] (join (([floor v] of ((PlayerCostumeNo.) mod (4)) ) + (1)) (Powerup)))\n                                        else\n                                            switch costume to (join [Walk] (join (([floor v] of ((PlayerCostumeNo.) mod (4)) ) + (1)) (Powerup)))\n                                        end\n                                    end\n                                end\n                            else\n                                if <(HoldingShell) = [1]> then\n                                    switch costume to (join [IdleHold1] (Powerup))\n                                else\n                                    switch costume to (join [Idle1] (Powerup))\n                                end\n                                set [playercostumeno. v] to [3]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nchange y by (-2)\n\nwhen I receive [pipetravel v]\nset [xvel v] to [0]\nset [yvel v] to [0]\nstart sound [Pipe/Powerdown v]\ngo [backward v] (28) layers\nset [allowplayermovement v] to [0]\nset [allowplayerdamage v] to [0]\nset [playerx v] to (((item (UsePipeNo.) of [pipex v]) * (28)) - (14))\nrepeat (30)\n    change [playery v] by (-1)\nend\nbroadcast (Open v)\nrepeat (25)\n    stop all sounds\nend\nif <(item ((UsePipeNo.) + (1)) of [pipey v]) < [-6]> then\n    set [underground v] to [1]\nelse\n    set [underground v] to [0]\nend\nif <<<(Background) = [5]> and <(Underground) = [0]>> or <<(Background2) = [5]> and <(Underground) = [1]>>> then\n    set [gravity v] to [-1.2]\nelse\n    set [gravity v] to [-3]\nend\nset [playerx v] to (((item ((UsePipeNo.) + (1)) of [pipex v]) * (28)) - (14))\nset [playery v] to (((item ((UsePipeNo.) + (1)) of [pipey v]) * (28)) + (-29))\nset [mapx v] to ((PlayerX) * (-1))\nset [mapy v] to ((PlayerY) * (-1))\nwait (0) seconds\nstop all sounds\nclear graphic effects\nshow\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    repeat (30)\n        change [playery v] by (1)\n        if <(AllowYMovement) = [1]> then\n            change [mapy v] by (-1)\n            if <(Underground) = [0]> then\n                if <(MapY) > [0]> then\n                    set [mapy v] to [0]\n                end\n                if <(MapY) < [-280]> then\n                    set [mapy v] to [-280]\n                end\n            else\n                if <(MapY) > [620]> then\n                    set [mapy v] to [620]\n                end\n                if <(MapY) < [360]> then\n                    set [mapy v] to [360]\n                end\n            end\n        end\n    end\nelse\n    change y by (60)\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by (-60)\n        change [playery v] by (60)\n        change [mapy v] by (-60)\n        repeat (30)\n            change [playery v] by (-1)\n            if <(AllowYMovement) = [1]> then\n                change [mapy v] by (1)\n                if <(Underground) = [0]> then\n                    if <(MapY) > [0]> then\n                        set [mapy v] to [0]\n                    end\n                    if <(MapY) < [-280]> then\n                        set [mapy v] to [-280]\n                    end\n                else\n                    if <(MapY) > [620]> then\n                        set [mapy v] to [620]\n                    end\n                    if <(MapY) < [360]> then\n                        set [mapy v] to [360]\n                    end\n                end\n            end\n        end\n    else\n        change y by (-60)\n        repeat (30)\n            change [playery v] by (1)\n            if <(AllowYMovement) = [1]> then\n                change [mapy v] by (-1)\n                if <(Underground) = [0]> then\n                    if <(MapY) > [0]> then\n                        set [mapy v] to [0]\n                    end\n                    if <(MapY) < [-280]> then\n                        set [mapy v] to [-280]\n                    end\n                else\n                    if <(MapY) > [620]> then\n                        set [mapy v] to [620]\n                    end\n                    if <(MapY) < [360]> then\n                        set [mapy v] to [360]\n                    end\n                end\n            end\n        end\n    end\nend\nset [allowplayermovement v] to [1]\nset [pipetravel v] to [0]\ngo to [front v] layer\ngo [backward v] (10) layers\nwait (0.3) seconds\nset [allowplayerdamage v] to [1]\n\ndefine MorePlayerStuff\nset [playerx v] to ((x position) - (MapX))\nset [playery v] to ((y position) - (MapY))\nif <<(AutoScroll) > [0]> and <(PassedGoal) = [0]>> then\n    if <not <([x position v] of [end v]) < [-600]>> then\n        change [mapx v] by ((AutoScroll) * (-0.5))\n    end\nelse\n    if <([x position v] of [end v]) < [-600]> then\n        if <([floor v] of ((((PlayerX) * (-1)) - (MapX)) / (4)) ) > [0]> then\n            change [mapx v] by ([ceiling v] of ((((PlayerX) * (-1)) - (MapX)) / (4)) )\n        end\n    else\n        change [mapx v] by ([ceiling v] of ((((PlayerX) * (-1)) - (MapX)) / (4)) )\n    end\nend\nif <(AllowYMovement) = [1]> then\n    change [mapy v] by ([floor v] of ((((PlayerY) * (-1)) - (MapY)) / (4)) )\nelse\n    if <(Underground) = [0]> then\n        set [mapy v] to [0]\n    else\n        set [mapy v] to [360]\n    end\nend\nif <(MapX) > [222]> then\n    set [mapx v] to [222]\nend\nif <(Underground) = [0]> then\n    if <(MapY) > [0]> then\n        set [mapy v] to [0]\n    end\n    if <(MapY) < [-280]> then\n        set [mapy v] to [-280]\n    end\nelse\n    if <(MapY) > [620]> then\n        set [mapy v] to [620]\n    end\n    if <(MapY) < [360]> then\n        set [mapy v] to [360]\n    end\nend\nif <<<(Background) = [8]> and <(Underground) = [0]>> and <(AllowYMovement) = [0]>> then\n    set [mapy v] to ((([sin v] of ((GlobalCostumeNo.) * (20)) ) * (-14)) + (-14))\nend\nif <<key (z v) pressed?> and <<(AbCooldown) = [-1]> and <(Powerup) = [Fire]>>> then\n    start sound [Fireball v]\n    add [1] to [firetype v]\n    add (direction) to [firedir v]\n    add ((((x position) - (MapX)) / (28)) + ((direction) / (270))) to [firex v]\n    add (((y position) - (MapY)) / (28)) to [firey v]\n    set [abcooldown v] to [1]\nend\nif <<<key (z v) pressed?> and <not <<<(Background) = [5]> and <(Underground) = [0]>> or <<(Background2) = [5]> and <(Underground) = [1]>>>>> and <<(AbCooldown) = [-1]> and <(Powerup) = [Racc]>>> then\n    start sound [Spin v]\n    set [abcooldown v] to [1.5]\n    set [playercostumeno. v] to [6]\nend\nbroadcast (PlayerUpdated v)\n\n@UniqueBlocks\n\nwhen flag clicked\nswitch costume to (notaclone v)\nset size to (350) %\nset rotation style [don't rotate v]\nset pen size to (3)\nset pen (brightness v) to (100)\nset pen (saturation v) to (100)\n\ndefine FormUniqueBlocks\nshow\nif <(PTimer) > [0]> then\n    change [ptimer v] by (-0.1)\n    if <(PTimer) < [0]> then\n        set [ptimer v] to [0]\n        stop all sounds\n    end\nend\nif <(Pause) = [1]> then\n    set [blockno. v] to [0]\nelse\n    set [blockno. v] to ((item # of ([floor v] of (((MapX) / (-28)) - (8)) ) in [uniqueblocksx v]) - (1))\n    if <(BlockNo.) = [0]> then\n        set [blockno. v] to ((item # of ([floor v] of (((MapX) / (-28)) - (9)) ) in [uniqueblocksx v]) - (1))\n        if <(BlockNo.) = [0]> then\n            set [blockno. v] to ((item # of ([floor v] of (((MapX) / (-28)) - (10)) ) in [uniqueblocksx v]) - (1))\n            if <(BlockNo.) = [0]> then\n                set [blockno. v] to ((item # of ([floor v] of (((MapX) / (-28)) - (11)) ) in [uniqueblocksx v]) - (1))\n            end\n        end\n    end\nend\nif <(BlockNo.) < [0]> then\n    set [blockno. v] to [0]\nend\nrepeat ((length of [uniqueblocksx v]) - (BlockNo.))\n    change [blockno. v] by (1)\n    go to x: (((item (BlockNo.) of [uniqueblocksx v]) * (28)) + (MapX)) y: (((item (BlockNo.) of [uniqueblocksy v]) * (28)) + (MapY))\n    if <(((item (BlockNo.) of [uniqueblocksx v]) * (28)) + (MapX)) > [248]> then\n        switch costume to (notaclone v)\n        hide\n        stop [this script v]\n    end\n    if <(Pause) = [1]> then\n        if <(item (BlockNo.) of [uniqueblocksstate v]) = [2]> then\n            replace item (BlockNo.) of [uniqueblocksstate v] with [1]\n        end\n        if <(item (BlockNo.) of [uniqueblocksstate v]) = [4]> then\n            replace item (BlockNo.) of [uniqueblocksstate v] with [3]\n        end\n        if <(item (BlockNo.) of [uniqueblocksstate v]) = [7]> then\n            replace item (BlockNo.) of [uniqueblocksstate v] with [6]\n        end\n        if <(item (BlockNo.) of [uniqueblocksstate v]) = [9]> then\n            replace item (BlockNo.) of [uniqueblocksstate v] with [8]\n        end\n    end\n    if <<<(((item (BlockNo.) of [uniqueblocksx v]) * (28)) + (MapX)) < [248]> and <(((item (BlockNo.) of [uniqueblocksx v]) * (28)) + (MapX)) > [-248]>> and <<(((item (BlockNo.) of [uniqueblocksy v]) * (28)) + (MapY)) < [188]> and <(((item (BlockNo.) of [uniqueblocksy v]) * (28)) + (MapY)) > [-188]>>> then\n        if <not <<(item (BlockNo.) of [uniqueblocksstate v]) = [4]> or <(item (BlockNo.) of [uniqueblocksstate v]) = [7]>>> then\n            if <(Pause) = [1]> then\n                if <(item (BlockNo.) of [uniqueblocksstate v]) = [1]> then\n                    switch costume to (join [?] (item (BlockNo.) of [blockcontents v]))\n                else\n                    if <(item (BlockNo.) of [uniqueblocksstate v]) = [3]> then\n                        switch costume to (10 v)\n                    else\n                        if <(item (BlockNo.) of [uniqueblocksstate v]) = [5]> then\n                            switch costume to (11 v)\n                        else\n                            if <(item (BlockNo.) of [uniqueblocksstate v]) = [8]> then\n                                switch costume to (19 v)\n                            else\n                                if <(item (BlockNo.) of [uniqueblocksstate v]) = [10]> then\n                                    switch costume to (> v)\n                                else\n                                    if <(item (BlockNo.) of [uniqueblocksstate v]) = [11]> then\n                                        switch costume to (< v)\n                                    else\n                                        if <(item (BlockNo.) of [uniqueblocksstate v]) = [12]> then\n                                            switch costume to (29 v)\n                                        else\n                                            if <(item (BlockNo.) of [uniqueblocksstate v]) = [13]> then\n                                                switch costume to (31 v)\n                                            else\n                                                if <(item (BlockNo.) of [uniqueblocksstate v]) = [14]> then\n                                                    switch costume to (34 v)\n                                                else\n                                                    if <(item (BlockNo.) of [uniqueblocksstate v]) = [16]> then\n                                                        switch costume to (35 v)\n                                                    else\n                                                        if <(item (BlockNo.) of [uniqueblocksstate v]) = [15]> then\n                                                            switch costume to (pipe v)\n                                                            MyPipeNo.\n                                                            if <not <<(PipeNo.) = (length of [pipex v])> and <(((PipeNo.) - (1)) mod (2)) = [0]>>> then\n                                                                set pen (color v) to (([floor v] of (((PipeNo.) - (1)) / (2)) ) * (10))\n                                                                if <((PipeNo.) mod (2)) = [1]> then\n                                                                    change x by (-14)\n                                                                    pen down\n                                                                    go to x: ((((item ((PipeNo.) + (1)) of [pipex v]) * (28)) + (MapX)) - (14)) y: (((item ((PipeNo.) + (1)) of [pipey v]) * (28)) + (MapY))\n                                                                    pen up\n                                                                    change x by (14)\n                                                                    go to x: (((item (BlockNo.) of [uniqueblocksx v]) * (28)) + (MapX)) y: (((item (BlockNo.) of [uniqueblocksy v]) * (28)) + (MapY))\n                                                                else\n                                                                    switch costume to (pipe2 v)\n                                                                    change x by (-14)\n                                                                    pen down\n                                                                    go to x: ((((item ((PipeNo.) + (-1)) of [pipex v]) * (28)) + (MapX)) - (14)) y: (((item ((PipeNo.) + (-1)) of [pipey v]) * (28)) + (MapY))\n                                                                    pen up\n                                                                    change x by (14)\n                                                                    go to x: (((item (BlockNo.) of [uniqueblocksx v]) * (28)) + (MapX)) y: (((item (BlockNo.) of [uniqueblocksy v]) * (28)) + (MapY))\n                                                                end\n                                                            end\n                                                        else\n                                                            switch costume to (15 v)\n                                                        end\n                                                    end\n                                                end\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n                stamp\n                change [blocksstamped v] by (1)\n            else\n                show\n                if <<(item (BlockNo.) of [uniqueblocksstate v]) = [13]> and <(On/OffSwitch) = [1]>> then\n                    switch costume to (33 v)\n                    stamp\n                else\n                    if <<(item (BlockNo.) of [uniqueblocksstate v]) = [14]> and <(On/OffSwitch) = [0]>> then\n                        switch costume to (34 v)\n                        stamp\n                    else\n                        if <<(item (BlockNo.) of [uniqueblocksstate v]) = [6]> and <(PTimer) = [0]>> then\n                            if <(distance to [player v]) > ((50) + (<not <(PTimer) = [0]>> * (50)))> then\n                                switch costume to (([floor v] of (((GlobalCostumeNo.) * (1.5)) mod (4)) ) + (16))\n                                stamp\n                            else\n                                hide\n                                switch costume to (6 v)\n                                create clone of (_myself_ v)\n                            end\n                        else\n                            if <<(item (BlockNo.) of [uniqueblocksstate v]) = [3]> and <(PTimer) > [0]>> then\n                                if <(distance to [player v]) > ((50) + (<not <(PTimer) = [0]>> * (50)))> then\n                                    if <(PTimer) = [0]> then\n                                        switch costume to (([floor v] of (((GlobalCostumeNo.) * (1.5)) mod (4)) ) + (16))\n                                    else\n                                        switch costume to (15 v)\n                                    end\n                                    stamp\n                                else\n                                    hide\n                                    switch costume to (6 v)\n                                    create clone of (_myself_ v)\n                                end\n                            else\n                                if <(item (BlockNo.) of [uniqueblocksstate v]) = [9]> then\n                                    hide\n                                    if <(PTimer) = [0]> then\n                                        replace item (BlockNo.) of [uniqueblocksstate v] with [8]\n                                    end\n                                end\n                                if <(item (BlockNo.) of [uniqueblocksstate v]) = [15]> then\n                                    hide\n                                    if <(item (BlockNo.) of [uniqueblocksstate v]) = [15]> then\n                                        switch costume to (pipe v)\n                                    else\n                                        switch costume to (15 v)\n                                    end\n                                end\n                                switch costume to (6 v)\n                                create clone of (_myself_ v)\n                            end\n                        end\n                        change [blocksspawned v] by (1)\n                    end\n                end\n            end\n        end\n    end\nend\nswitch costume to (notaclone v)\nhide\n\nwhen I receive [updateall v]\nif <[1] = [1]> then\n    delete this clone\nend\nFormUniqueBlocks\nbroadcast (EnemiesUpdate v)\n\nwhen I receive [placeuniqueblock v]\ngo to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\nScanForThisPosition\nif <(EditMode) = [Place]> then\n    if <(AllowPlacement) = [1]> then\n        FindSpot\n        Add\n    end\nelse\n    if <(AllowPlacement) = [0]> then\n        if <(item (ScanNo.) of [uniqueblocksstate v]) = [15]> then\n            MyPipeNo.2\n            delete (PipeNo.) of [pipex v]\n            delete (PipeNo.) of [pipey v]\n        end\n        delete (ScanNo.) of [uniqueblocksx v]\n        delete (ScanNo.) of [uniqueblocksy v]\n        delete (ScanNo.) of [uniqueblocksstate v]\n        delete (ScanNo.) of [blockbump v]\n        delete (ScanNo.) of [blockcontents v]\n    end\nend\n\ndefine ScanForThisPosition\nset [allowplacement v] to [1]\nset [scanno. v] to [0]\nrepeat (length of [uniqueblocksx v])\n    change [scanno. v] by (1)\n    if <<(item (ScanNo.) of [uniqueblocksx v]) = (round (((x position) - (MapX)) / (28)))> and <(item (ScanNo.) of [uniqueblocksy v]) = (round (((y position) - (MapY)) / (28)))>> then\n        set [allowplacement v] to [0]\n        stop [this script v]\n    end\nend\n\nwhen I receive [playerupdated v]\nif <not <(costume [number v]) = [1]>> then\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [1]> then\n        change y by (-1)\n        if <touching (enemies v)?> then\n            set [blockhitx v] to (x position)\n            set [blockhity v] to (y position)\n            broadcast (BlockBounce v)\n            replace item (BlockNo.) of [blockbump v] with [0.1]\n            OpenBox\n        end\n        change y by (1)\n        if <<<<([abs v] of ((x position) - ([x position v] of [player v])) ) < [14]> and <<((y position) - ([y position v] of [player v])) < [50]> and <((y position) - ([y position v] of [player v])) > [14]>>> and <(YVel) = [-0.1]>> or <<<(Powerup) = [Racc]> and <(AbCooldown) > [0]>> and <<([abs v] of ((y position) - ([y position v] of [player v])) ) < [14]> and <([abs v] of ((x position) - ([x position v] of [player v])) ) < [32]>>>> then\n            set [blockhitx v] to (x position)\n            set [blockhity v] to (y position)\n            broadcast (BlockHit v)\n            OpenBox\n        end\n    end\n    if <<(item (BlockNo.) of [uniqueblocksstate v]) = [3]> or <<(item (BlockNo.) of [uniqueblocksstate v]) = [6]> and <(PTimer) > [0]>>> then\n        if <<<<([abs v] of ((x position) - ([x position v] of [player v])) ) < [14]> and <<((y position) - ([y position v] of [player v])) < [50]> and <((y position) - ([y position v] of [player v])) > [14]>>> and <(YVel) = [-0.1]>> or <<<(Powerup) = [Racc]> and <(AbCooldown) > [0]>> and <<([abs v] of ((y position) - ([y position v] of [player v])) ) < [14]> and <([abs v] of ((x position) - ([x position v] of [player v])) ) < [32]>>>> then\n            set [blockhitx v] to (x position)\n            set [blockhity v] to (y position)\n            broadcast (BlockHit v)\n            if <(Powerup) = [None]> then\n                replace item (BlockNo.) of [blockbump v] with [0.1]\n            else\n                if <(item (BlockNo.) of [uniqueblocksstate v]) = [3]> then\n                    replace item (BlockNo.) of [uniqueblocksstate v] with [4]\n                else\n                    replace item (BlockNo.) of [uniqueblocksstate v] with [7]\n                end\n                add (x position) to [breakx v]\n                add (y position) to [breaky v]\n                add [B] to [breaktype v]\n                broadcast (BreakParticles v)\n                start sound [Break v]\n            end\n        end\n    end\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [16]> then\n        if <([sin v] of ((GlobalCostumeNo.) * (45)) ) > [0.999]> then\n            start sound [SMA4-BulletBill v]\n            add (item (BlockNo.) of [uniqueblocksx v]) to [enemyx v]\n            add (item (BlockNo.) of [uniqueblocksy v]) to [enemyy v]\n            add [10] to [enemytype v]\n            if <([x position v] of [player v]) > (x position)> then\n                add [90] to [enemydir v]\n            else\n                add [-90] to [enemydir v]\n            end\n            add [0] to [enemyyvelocity v]\n            add [0] to [enemystate v]\n        end\n    end\nend\n\nwhen I receive [costumeeverything v]\nif <not <(costume [number v]) = [1]>> then\n    if <not <<(item (BlockNo.) of [blockbump v]) = [0]> or <(item (BlockNo.) of [uniqueblocksstate v]) = [4]>>> then\n        go to [front v] layer\n        go [backward v] (12) layers\n        if <<(item (BlockNo.) of [blockbump v]) > [2]> or <(item (BlockNo.) of [blockbump v]) < [-2]>> then\n            replace item (BlockNo.) of [blockbump v] with [0]\n        else\n            change y by (([sin v] of ((item (BlockNo.) of [blockbump v]) * (90)) ) * (14))\n            if <(item (BlockNo.) of [blockbump v]) > [0]> then\n                if <(item (BlockNo.) of [uniqueblocksstate v]) = [5]> then\n                    replace item (BlockNo.) of [blockbump v] with ((item (BlockNo.) of [blockbump v]) + (0.2))\n                else\n                    replace item (BlockNo.) of [blockbump v] with ((item (BlockNo.) of [blockbump v]) + (0.3))\n                end\n            else\n                if <(item (BlockNo.) of [uniqueblocksstate v]) = [5]> then\n                    replace item (BlockNo.) of [blockbump v] with ((item (BlockNo.) of [blockbump v]) + (-0.2))\n                else\n                    replace item (BlockNo.) of [blockbump v] with ((item (BlockNo.) of [blockbump v]) + (-0.3))\n                end\n            end\n        end\n    end\n    if <not <(costume [number v]) = [1]>> then\n        if <(item (BlockNo.) of [uniqueblocksstate v]) = [1]> then\n            if <(PTimer) = [0]> then\n                switch costume to (([floor v] of ((GlobalCostumeNo.) mod (4)) ) + (2))\n            else\n                switch costume to (1 v)\n            end\n        else\n            if <(item (BlockNo.) of [uniqueblocksstate v]) = [2]> then\n                switch costume to (5 v)\n            else\n                if <(item (BlockNo.) of [uniqueblocksstate v]) = [5]> then\n                    if <(PTimer) = [0]> then\n                        switch costume to (([floor v] of (((GlobalCostumeNo.) * (1.2)) mod (4)) ) + (12))\n                    else\n                        switch costume to (11 v)\n                    end\n                else\n                    if <<<(item (BlockNo.) of [uniqueblocksstate v]) = [6]> and <(PTimer) = [0]>> or <<(item (BlockNo.) of [uniqueblocksstate v]) = [3]> and <(PTimer) > [0]>>> then\n                        show\n                        if <(PTimer) = [0]> then\n                            switch costume to (([floor v] of (((GlobalCostumeNo.) * (1.5)) mod (4)) ) + (16))\n                        else\n                            switch costume to (15 v)\n                        end\n                        if <<(distance to [player v]) < [24]> or <<not <(Powerup) = [None]>> and <<(distance to [player v]) < [44]> and <([abs v] of ((x position) - ([x position v] of [player v])) ) < [16]>>>> then\n                            start sound [Coin v]\n                            change [coins v] by (1)\n                            if <(item (BlockNo.) of [uniqueblocksstate v]) = [3]> then\n                                replace item (BlockNo.) of [uniqueblocksstate v] with [4]\n                            else\n                                replace item (BlockNo.) of [uniqueblocksstate v] with [7]\n                            end\n                            hide\n                        end\n                    else\n                        if <(item (BlockNo.) of [uniqueblocksstate v]) = [8]> then\n                            switch costume to (19 v)\n                        else\n                            if <(item (BlockNo.) of [uniqueblocksstate v]) = [9]> then\n                                show\n                                switch costume to (20 v)\n                            else\n                                if <(item (BlockNo.) of [uniqueblocksstate v]) = [10]> then\n                                    if <(PTimer) = [0]> then\n                                        switch costume to (([floor v] of (((GlobalCostumeNo.) * (3)) mod (4)) ) + (22))\n                                    else\n                                        switch costume to (21 v)\n                                    end\n                                else\n                                    if <(item (BlockNo.) of [uniqueblocksstate v]) = [11]> then\n                                        if <(PTimer) = [0]> then\n                                            switch costume to (([floor v] of (((GlobalCostumeNo.) * (3)) mod (4)) ) + (26))\n                                        else\n                                            switch costume to (25 v)\n                                        end\n                                    else\n                                        if <(item (BlockNo.) of [uniqueblocksstate v]) = [12]> then\n                                            if <(On/OffSwitch) = [0]> then\n                                                switch costume to (29 v)\n                                            else\n                                                switch costume to (30 v)\n                                            end\n                                        else\n                                            if <(item (BlockNo.) of [uniqueblocksstate v]) = [13]> then\n                                                switch costume to (31 v)\n                                            else\n                                                if <(item (BlockNo.) of [uniqueblocksstate v]) = [14]> then\n                                                    switch costume to (32 v)\n                                                else\n                                                    if <(item (BlockNo.) of [uniqueblocksstate v]) = [16]> then\n                                                        switch costume to (35 v)\n                                                    else\n                                                        if <<(item (BlockNo.) of [uniqueblocksstate v]) = [3]> or <<(item (BlockNo.) of [uniqueblocksstate v]) = [6]> and <(PTimer) > [0]>>> then\n                                                            if <(PTimer) = [0]> then\n                                                                switch costume to (([floor v] of (((GlobalCostumeNo.) * (1.4)) mod (5)) ) + (7))\n                                                            else\n                                                                switch costume to (6 v)\n                                                            end\n                                                        else\n                                                            hide\n                                                        end\n                                                    end\n                                                end\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [resetlevel v]\nif <[1] = [1]> then\n    delete this clone\nend\nConvert\n\ndefine Convert\nset [scanno. v] to [0]\ndelete all of [blockbump v]\nrepeat (length of [uniqueblocksx v])\n    change [scanno. v] by (1)\n    if <(item (ScanNo.) of [uniqueblocksstate v]) = [2]> then\n        replace item (ScanNo.) of [uniqueblocksstate v] with [1]\n    end\n    if <(item (ScanNo.) of [uniqueblocksstate v]) = [4]> then\n        replace item (ScanNo.) of [uniqueblocksstate v] with [3]\n    end\n    if <(item (ScanNo.) of [uniqueblocksstate v]) = [7]> then\n        replace item (ScanNo.) of [uniqueblocksstate v] with [6]\n    end\n    add [0] to [blockbump v]\nend\n\nwhen I receive [shellhitblock v]\nif <<([abs v] of ((x position) - (ShellX)) ) < [32]> and <([abs v] of ((y position) - (ShellY)) ) < [14]>> then\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [1]> then\n        set [blockhitx v] to (x position)\n        set [blockhity v] to (y position)\n        broadcast (BlockHit v)\n        replace item (BlockNo.) of [uniqueblocksstate v] with [2]\n        replace item (BlockNo.) of [blockbump v] with [0.1]\n        OpenBox\n    else\n        if <(item (BlockNo.) of [uniqueblocksstate v]) = [5]> then\n            set [blockhitx v] to (x position)\n            set [blockhity v] to (y position)\n            broadcast (BlockBounce v)\n            replace item (BlockNo.) of [blockbump v] with [0.1]\n        else\n            if <(item (BlockNo.) of [uniqueblocksstate v]) = [12]> then\n                if <(On/OffSwitch) = [0]> then\n                    set [on/offswitch v] to [1]\n                else\n                    set [on/offswitch v] to [0]\n                end\n                start sound [PSwitch v]\n                replace item (BlockNo.) of [blockbump v] with [0.1]\n            else\n                if <<(item (BlockNo.) of [uniqueblocksstate v]) = [3]> or <<(item (BlockNo.) of [uniqueblocksstate v]) = [6]> and <(PTimer) > [0]>>> then\n                    set [blockhitx v] to (x position)\n                    set [blockhity v] to (y position)\n                    broadcast (BlockHit v)\n                    add (x position) to [breakx v]\n                    add (y position) to [breaky v]\n                    add [B] to [breaktype v]\n                    broadcast (BreakParticles v)\n                    start sound [Break v]\n                    if <(item (BlockNo.) of [uniqueblocksstate v]) = [3]> then\n                        replace item (BlockNo.) of [uniqueblocksstate v] with [4]\n                    else\n                        replace item (BlockNo.) of [uniqueblocksstate v] with [7]\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine OpenBox\nreplace item (BlockNo.) of [uniqueblocksstate v] with [2]\nreplace item (BlockNo.) of [blockbump v] with [0.1]\nif <(item (BlockNo.) of [blockcontents v]) = [C]> then\n    start sound [Coin v]\n    change [coins v] by (1)\n    add (x position) to [breakx v]\n    add ((y position) + (14)) to [breaky v]\n    add [C] to [breaktype v]\n    broadcast (CoinBox v)\nelse\n    start sound [Appear v]\n    add (item (BlockNo.) of [uniqueblocksx v]) to [itemx v]\n    if <(item (BlockNo.) of [blockcontents v]) = [R]> then\n        add ((item (BlockNo.) of [uniqueblocksy v]) + (1.6)) to [itemy v]\n    else\n        add ((item (BlockNo.) of [uniqueblocksy v]) + (0.6)) to [itemy v]\n    end\n    add [90] to [itemdir v]\n    add (item (BlockNo.) of [blockcontents v]) to [itemtype v]\n    add [0] to [itemyvel v]\nend\n\ndefine FindSpot\nif <(length of [uniqueblocksx v]) = [0]> then\n    set [scanno. v] to [1]\n    stop [this script v]\nelse\n    set [scanno. v] to (item # of ((round (((x position) - (MapX)) / (28))) - (1)) in [uniqueblocksx v])\n    repeat until <<<(item (ScanNo.) of [uniqueblocksx v]) > (round (((x position) - (MapX)) / (28)))> or <(item (ScanNo.) of [uniqueblocksx v]) = (round (((x position) - (MapX)) / (28)))>> or <(ScanNo.) = (length of [uniqueblocksx v])>>\n        change [scanno. v] by (1)\n    end\n    repeat until <<(item (ScanNo.) of [uniqueblocksy v]) > (round (((y position) - (MapY)) / (28)))> or <not <(item (ScanNo.) of [uniqueblocksx v]) = (round (((x position) - (MapX)) / (28)))>>>\n        change [scanno. v] by (1)\n        if <(ScanNo.) > (length of [uniqueblocksx v])> then\n            stop [this script v]\n        end\n    end\n    stop [this script v]\nend\n\nwhen I receive [formblocksnow v]\nif <(PTimer) = [0]> then\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [10]> then\n        if <<<([abs v] of ((x position) - ([x position v] of [player v])) ) < [24]> and <<(YVel) < [1]> and <(Conveyed) = [0]>>> and <<((y position) - ([y position v] of [player v])) < [0]> and <((y position) - ([y position v] of [player v])) > [-40]>>> then\n            add [90] to [condir v]\n            add (x position) to [conx v]\n            add (y position) to [cony v]\n            set [conveyed v] to [1]\n            broadcast (PlayerConveyed v)\n        end\n        change y by (14)\n        if <<touching (enemies v)?> or <touching (items v)?>> then\n            add [90] to [condir v]\n            add (x position) to [conx v]\n            add (y position) to [cony v]\n            broadcast (ConveyerBelt v)\n        end\n        change y by (-14)\n    end\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [11]> then\n        if <<<([abs v] of ((x position) - ([x position v] of [player v])) ) < [24]> and <<(YVel) < [1]> and <(Conveyed) = [0]>>> and <<((y position) - ([y position v] of [player v])) < [0]> and <((y position) - ([y position v] of [player v])) > [-40]>>> then\n            add [-90] to [condir v]\n            add (x position) to [conx v]\n            add (y position) to [cony v]\n            set [conveyed v] to [1]\n            broadcast (PlayerConveyed v)\n        end\n        change y by (3)\n        if <<touching (enemies v)?> or <touching (items v)?>> then\n            add [-90] to [condir v]\n            add (x position) to [conx v]\n            add (y position) to [cony v]\n            broadcast (ConveyerBelt v)\n        end\n        change y by (-3)\n    end\nend\n\nwhen I receive [thwomphitblock v]\nif <<([abs v] of ((x position) - (ThwompX)) ) < [32]> and <<((y position) - (ThwompY)) < [0]> and <((y position) - (ThwompY)) > [-28]>>> then\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [1]> then\n        OpenBox\n    end\n    if <<(item (BlockNo.) of [uniqueblocksstate v]) = [3]> or <<(item (BlockNo.) of [uniqueblocksstate v]) = [6]> and <(PTimer) > [0]>>> then\n        set [blockhitx v] to (x position)\n        set [blockhity v] to (y position)\n        broadcast (BlockHit v)\n        add (x position) to [breakx v]\n        add (y position) to [breaky v]\n        add [B] to [breaktype v]\n        if <(item (BlockNo.) of [uniqueblocksstate v]) = [3]> then\n            replace item (BlockNo.) of [uniqueblocksstate v] with [4]\n        else\n            replace item (BlockNo.) of [uniqueblocksstate v] with [7]\n        end\n        broadcast (BreakParticles v)\n        start sound [Break v]\n    end\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [5]> then\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [8]> then\n        if <<(PTimer) = [0]> and <(StarTimer) = [0]>> then\n            stop all sounds\n        end\n        start sound [PSwitch v]\n        replace item (BlockNo.) of [uniqueblocksstate v] with [9]\n        set [ptimer v] to [30]\n    end\n    if <<(item (BlockNo.) of [uniqueblocksstate v]) = [12]> and <(item (BlockNo.) of [blockbump v]) = [0]>> then\n        if <(On/OffSwitch) = [0]> then\n            set [on/offswitch v] to [1]\n        else\n            set [on/offswitch v] to [0]\n        end\n        start sound [PSwitch v]\n        replace item (BlockNo.) of [blockbump v] with [0.1]\n    end\nend\n\ndefine MyPipeNo.\nset [pipeno. v] to [0]\nrepeat until <<(item (BlockNo.) of [uniqueblocksx v]) = (item (PipeNo.) of [pipex v])> and <(item (BlockNo.) of [uniqueblocksy v]) = (item (PipeNo.) of [pipey v])>>\n    change [pipeno. v] by (1)\nend\nstop [this script v]\n\ndefine MyPipeNo.2\nset [pipeno. v] to [0]\nrepeat until <<(item (ScanNo.) of [uniqueblocksx v]) = (item (PipeNo.) of [pipex v])> and <(item (ScanNo.) of [uniqueblocksy v]) = (item (PipeNo.) of [pipey v])>>\n    change [pipeno. v] by (1)\nend\nstop [this script v]\n\nwhen I receive [playerupdated v]\nif <not <(costume [number v]) = [1]>> then\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [5]> then\n        switch costume to (bounce v)\n        change y by (4)\n        if <<touching (enemies v)?> or <touching (items v)?>> then\n            set [blockhitx v] to (x position)\n            set [blockhity v] to (y position)\n            broadcast (BlockBounce v)\n            replace item (BlockNo.) of [blockbump v] with [-0.1]\n        end\n        change y by (-4)\n        switch costume to (11 v)\n        if <<(item (BlockNo.) of [blockbump v]) = [0]> or <(item (BlockNo.) of [blockbump v]) < [-1]>> then\n            if <<<([abs v] of ((x position) - ([x position v] of [player v])) ) < [16]> and <([abs v] of ((y position) - ([y position v] of [player v])) ) < [48]>> or <<<(Powerup) = [Racc]> and <(AbCooldown) > [0]>> and <<([abs v] of ((y position) - ([y position v] of [player v])) ) < [14]> and <([abs v] of ((x position) - ([x position v] of [player v])) ) < [32]>>>> then\n                set [blockhitx v] to (x position)\n                set [blockhity v] to (y position)\n                if <((y position) - ([y position v] of [player v])) > [0]> then\n                    if <(YVel) = [-0.1]> then\n                        broadcast (BlockBounce v)\n                        replace item (BlockNo.) of [blockbump v] with [0.1]\n                    end\n                else\n                    if <<(YVel) = [0]> or <(YVel) > [17]>> then\n                        replace item (BlockNo.) of [blockbump v] with [-0.1]\n                        if <<([abs v] of ((x position) - ([x position v] of [player v])) ) < [16]> and <([abs v] of ((y position) - ([y position v] of [player v])) ) < [48]>> then\n                            set [yvel v] to [20]\n                            change [playery v] by (3.2)\n                        end\n                        broadcast (BlockBounce v)\n                    end\n                end\n            end\n        end\n    end\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [8]> then\n        if <<<<([abs v] of ((x position) - ([x position v] of [player v])) ) < [24]> and <(YVel) < [1]>> and <<((y position) - ([y position v] of [player v])) < [-14]> and <((y position) - ([y position v] of [player v])) > [-32]>>> or <<<(Powerup) = [Racc]> and <(AbCooldown) > [0]>> and <<([abs v] of ((y position) - ([y position v] of [player v])) ) < [14]> and <([abs v] of ((x position) - ([x position v] of [player v])) ) < [28]>>>> then\n            if <<(PTimer) = [0]> and <(StarTimer) = [0]>> then\n                stop all sounds\n            end\n            start sound [PSwitch v]\n            replace item (BlockNo.) of [uniqueblocksstate v] with [9]\n            set [ptimer v] to [30]\n        end\n    end\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [12]> then\n        if <<<<([abs v] of ((x position) - ([x position v] of [player v])) ) < [22]> and <<((y position) - ([y position v] of [player v])) < [50]> and <((y position) - ([y position v] of [player v])) > [14]>>> and <(YVel) = [-0.1]>> or <<<<(Powerup) = [Racc]> and <(AbCooldown) > [0]>> and <(item (BlockNo.) of [blockbump v]) = [0]>> and <<([abs v] of ((y position) - ([y position v] of [player v])) ) < [14]> and <([abs v] of ((x position) - ([x position v] of [player v])) ) < [32]>>>> then\n            if <(On/OffSwitch) = [0]> then\n                set [on/offswitch v] to [1]\n            else\n                set [on/offswitch v] to [0]\n            end\n            start sound [PSwitch v]\n            replace item (BlockNo.) of [blockbump v] with [0.1]\n        end\n    end\n    if <(item (BlockNo.) of [uniqueblocksstate v]) = [15]> then\n        if <<<([abs v] of (((x position) - (14)) - ([x position v] of [player v])) ) < [14]> and <<(YVel) = [0]> and <(PipeTravel) = [0]>>> and <<([abs v] of ((y position) - ([y position v] of [player v])) ) < [7]> and <key (down arrow v) pressed?>>> then\n            MyPipeNo.\n            if <<not <(PipeNo.) = (length of [pipex v])>> and <((PipeNo.) mod (2)) = [1]>> then\n                if <<(Dead) = [0]> and <(PassedGoal) = [0]>> then\n                    set [pipetravel v] to [1]\n                    set [usepipeno. v] to (PipeNo.)\n                    broadcast (PipeTravel v)\n                end\n            end\n        end\n    end\nend\n\ndefine Add\ninsert (round (((x position) - (MapX)) / (28))) at (ScanNo.) of [uniqueblocksx v] \ninsert (round (((y position) - (MapY)) / (28))) at (ScanNo.) of [uniqueblocksy v] \nif < (BlockSelected) contains [?]?> then\n    insert [1] at (ScanNo.) of [uniqueblocksstate v] \n    insert (letter (2) of (BlockSelected)) at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = [!]> then\n    insert [3] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = ["]> then\n    insert [5] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = [}]> then\n    insert [6] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = [%]> then\n    insert [8] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = [>]> then\n    insert [10] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = [<]> then\n    insert [11] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = [^]> then\n    insert [12] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = [&]> then\n    insert [13] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = [*]> then\n    insert [14] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\nif <(BlockSelected) = [\]]> then\n    insert [15] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \n    add (round (((x position) - (MapX)) / (28))) to [pipex v]\n    add (round (((y position) - (MapY)) / (28))) to [pipey v]\nend\nif <(BlockSelected) = [\[]> then\n    insert [16] at (ScanNo.) of [uniqueblocksstate v] \n    insert [0] at (ScanNo.) of [blockcontents v] \nend\ninsert [0] at (ScanNo.) of [blockbump v] \n\n@Enemies\n\nwhen flag clicked\nset rotation style [left-right v]\nswitch costume to (empty v)\nhide\nset size to (350) %\n\nwhen I receive [enemiesupdate v]\nif <[1] = [1]> then\n    delete this clone\nend\nswitch costume to (empty v)\nif <(Pause) = [0]> then\n    if <(length of [enemyx v]) > [0]> then\n        DeleteEnemies\n        FormEnemies\n    end\nelse\n    if <(length of [enemyxog v]) > [0]> then\n        FormEnemies\n    end\nend\nif <(Pause) = [0]> then\n    broadcast (PlayerUpdate v)\nend\n\nwhen I receive [convert v]\nif <[1] = [1]> then\n    delete this clone\nend\ndelete all of [enemyx v]\ndelete all of [enemyy v]\ndelete all of [enemyyvelocity v]\ndelete all of [enemydir v]\ndelete all of [enemystate v]\ndelete all of [enemytype v]\nset [enemyno. v] to [0]\nwait (0) seconds\nConvert\n\ndefine Convert\ndelete all of [enemyx v]\ndelete all of [enemyy v]\ndelete all of [enemyyvelocity v]\ndelete all of [enemydir v]\ndelete all of [enemystate v]\ndelete all of [enemytype v]\nset [enemyno. v] to [0]\nrepeat (length of [enemyxog v])\n    change [enemyno. v] by (1)\n    add (item (EnemyNo.) of [enemyxog v]) to [enemyx v]\n    add (item (EnemyNo.) of [enemyyog v]) to [enemyy v]\n    add (item (EnemyNo.) of [enemytypeog v]) to [enemytype v]\n    if <(item (EnemyNo.) of [enemytypeog v]) = [5]> then\n        add [90] to [enemydir v]\n    else\n        add [-90] to [enemydir v]\n    end\n    add [-0.01] to [enemyyvelocity v]\n    add [0] to [enemystate v]\nend\n\ndefine FormEnemies\nshow\nset [enemyno. v] to [0]\nif <(Pause) = [0]> then\n    repeat ((length of [enemyx v]) - (EnemyNo.))\n        change [enemyno. v] by (1)\n        go to x: (((item (EnemyNo.) of [enemyx v]) * (28)) + (MapX)) y: (((item (EnemyNo.) of [enemyy v]) * (28)) + (MapY))\n        if <<<<(x position) < [222]> and <(x position) > [-222]>> and <<<(y position) < [170]> or <<(AllowYMovement) = [0]> and <(Underground) = [0]>>> and <<(y position) > [-172]> or <<(item (EnemyNo.) of [enemytype v]) = [4]> and <(((item (EnemyNo.) of [enemyy v]) * (28)) + (MapY)) > [-168]>>>>> or <<(item (EnemyNo.) of [enemystate v]) = [3]> and <<(item (EnemyNo.) of [enemytype v]) = [2]> or <(item (EnemyNo.) of [enemytype v]) = [3]>>>> then\n            point in direction (item (EnemyNo.) of [enemydir v])\n            create clone of (_myself_ v)\n        end\n    end\nelse\n    repeat ((length of [enemyxog v]) - (EnemyNo.))\n        set rotation style [left-right v]\n        point in direction (-90)\n        change [enemyno. v] by (1)\n        go to x: (((item (EnemyNo.) of [enemyxog v]) * (28)) + (MapX)) y: (((item (EnemyNo.) of [enemyyog v]) * (28)) + (MapY))\n        if <(item (EnemyNo.) of [enemytypeog v]) = [1]> then\n            switch costume to (1 v)\n        end\n        if <(item (EnemyNo.) of [enemytypeog v]) = [2]> then\n            switch costume to (5 v)\n        end\n        if <(item (EnemyNo.) of [enemytypeog v]) = [3]> then\n            switch costume to (15 v)\n        end\n        if <(item (EnemyNo.) of [enemytypeog v]) = [4]> then\n            switch costume to (24 v)\n        end\n        if <(item (EnemyNo.) of [enemytypeog v]) = [5]> then\n            point in direction (90)\n            switch costume to (27 v)\n        end\n        if <(item (EnemyNo.) of [enemytypeog v]) = [6]> then\n            switch costume to (31 v)\n        end\n        if <(item (EnemyNo.) of [enemytypeog v]) = [7]> then\n            switch costume to (33 v)\n        end\n        if <(item (EnemyNo.) of [enemytypeog v]) = [8]> then\n            switch costume to (34 v)\n        end\n        if <(item (EnemyNo.) of [enemytypeog v]) = [9]> then\n            set rotation style [all around v]\n            switch costume to (36 v)\n        end\n        if <(item (EnemyNo.) of [enemytypeog v]) = [11]> then\n            switch costume to (43 v)\n        end\n        if <<<(x position) < [226]> and <(x position) > [-226]>> and <<(y position) < [170]> and <(y position) > [-166]>>> then\n            stamp\n        end\n    end\nend\nswitch costume to (empty v)\nhide\n\nwhen I start as a clone\nif <(item (EnemyNo.) of [enemytype v]) = [1]> then\n    Goomba\nend\nif <(item (EnemyNo.) of [enemytype v]) = [2]> then\n    GreenFella\nend\nif <(item (EnemyNo.) of [enemytype v]) = [3]> then\n    RedFella\nend\nif <(item (EnemyNo.) of [enemytype v]) = [4]> then\n    BigMouthBoi\nend\nif <(item (EnemyNo.) of [enemytype v]) = [5]> then\n    switch costume to (firehitbox v)\n    set rotation style [all around v]\n    point in direction (item (EnemyNo.) of [enemydir v])\n    turn right (2) degrees\n    replace item (EnemyNo.) of [enemydir v] with (direction)\n    hide\nend\n\ndefine ScanForThisPosition\nset [allowplacement v] to [1]\nset [scanno. v] to [0]\nrepeat (length of [enemyxog v])\n    change [scanno. v] by (1)\n    if <<(item (ScanNo.) of [enemyxog v]) = (round (((x position) - (MapX)) / (28)))> and <(item (ScanNo.) of [enemyyog v]) = (round (((y position) - (MapY)) / (28)))>> then\n        set [allowplacement v] to [0]\n        stop [this script v]\n    end\nend\n\nwhen I receive [eraseenemy v]\nif <(costume [name v]) = [Empty]> then\n    go to x: (((round (((mouse x) - (MapX)) / (28))) * (28)) + (MapX)) y: (((round (((mouse y) - (MapY)) / (28))) * (28)) + (MapY))\n    ScanForThisPosition\n    if <(AllowPlacement) = [0]> then\n        delete (ScanNo.) of [enemyxog v]\n        delete (ScanNo.) of [enemyyog v]\n        delete (ScanNo.) of [enemytypeog v]\n    end\nend\n\ndefine FindFloor\nif <(item (EnemyNo.) of [enemystate v]) = [0]> then\n    repeat until <<<<touching (blocks v)?> or <touching (uniqueblocks v)?>> or <touching (enemies v)?>> or <(y position) < [-175]>>\n        change y by (-1)\n    end\n    if <not <touching (enemies v)?>> then\n        change y by (1)\n    end\nelse\n    repeat until <<<touching (blocks v)?> or <touching (uniqueblocks v)?>> or <(y position) < [-175]>>\n        change y by (-1)\n    end\n    change y by (1)\nend\nreplace item (EnemyNo.) of [enemyyvelocity v] with [0]\n\nwhen I receive [costumeeverything v]\nCostumeMe\n\ndefine YSmoothing\nrepeat (6)\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by (1)\n    end\nend\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by (-6)\nend\n\nwhen I receive [playerupdated v]\nif <<<(distance to [player v]) < [124]> and <(StarTimer) > [0]>> and <not <(item (EnemyNo.) of [enemytype v]) = [5]>>> then\n    if <touching (player v)?> then\n        start sound [Stomp v]\n        add (EnemyNo.) to [deletethese v]\n    else\n        Enemy-PlayerColl\n    end\nelse\n    Enemy-PlayerColl\nend\n\nwhen I receive [shellhit v]\nif <not <<(item (EnemyNo.) of [enemytype v]) = [5]> or <<(item (EnemyNo.) of [enemytype v]) = [7]> or <(item (EnemyNo.) of [enemytype v]) = [8]>>>> then\n    set [scanno. v] to ([sqrt v] of ((((x position) - (ShellX)) * ((x position) - (ShellX))) + (((y position) - (ShellY)) * ((y position) - (ShellY)))) )\n    if <<<(ScanNo.) < [26]> and <(ScanNo.) > [1]>> and <not <(item (EnemyNo.) of [enemystate v]) = [3]>>> then\n        start sound [Stomp v]\n        if <(item (EnemyNo.) of [enemytype v]) = [11]> then\n            replace item (EnemyNo.) of [enemystate v] with ((([ceiling v] of (((item (EnemyNo.) of [enemystate v]) + (1)) / (3)) ) * (3)) + ((-29) / (30)))\n        else\n            add (EnemyNo.) to [deletethese v]\n        end\n    end\nend\n\nwhen I receive [blockhit v]\nif <not <<<(item (EnemyNo.) of [enemytype v]) = [5]> or <(item (EnemyNo.) of [enemytype v]) = [10]>> or <<(item (EnemyNo.) of [enemytype v]) = [7]> or <(item (EnemyNo.) of [enemytype v]) = [8]>>>> then\n    if <not <(item (EnemyNo.) of [enemystate v]) = [3]>> then\n        if <<([abs v] of ((x position) - (BlockHitX)) ) < [14]> and <<([abs v] of ((y position) - (BlockHitY)) ) < [36]> and <(y position) > (BlockHitY)>>> then\n            start sound [Stomp v]\n            if <(item (EnemyNo.) of [enemytype v]) = [11]> then\n                replace item (EnemyNo.) of [enemystate v] with ((([ceiling v] of (((item (EnemyNo.) of [enemystate v]) + (1)) / (3)) ) * (3)) + ((-29) / (30)))\n            else\n                add (EnemyNo.) to [deletethese v]\n            end\n        end\n    end\nend\n\ndefine YVelocityScript\nif <(item (EnemyNo.) of [enemystate v]) = [2]> then\n    if <(item (EnemyNo.) of [enemyyvelocity v]) > [0]> then\n        replace item (EnemyNo.) of [enemyyvelocity v] with ((item (EnemyNo.) of [enemyyvelocity v]) - (0.91))\n    end\nelse\n    if <(item (EnemyNo.) of [enemytype v]) = [7]> then\n        if <(item (EnemyNo.) of [enemyyvelocity v]) > [-14]> then\n            replace item (EnemyNo.) of [enemyyvelocity v] with ((item (EnemyNo.) of [enemyyvelocity v]) - (1.09))\n        end\n    else\n        if <(item (EnemyNo.) of [enemytype v]) = [8]> then\n            if <(item (EnemyNo.) of [enemyyvelocity v]) > [0]> then\n                replace item (EnemyNo.) of [enemyyvelocity v] with ((item (EnemyNo.) of [enemyyvelocity v]) - (0.41))\n                if <(item (EnemyNo.) of [enemyyvelocity v]) < [0]> then\n                    replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n                end\n            end\n        else\n            if <(item (EnemyNo.) of [enemyyvelocity v]) > [-4]> then\n                replace item (EnemyNo.) of [enemyyvelocity v] with ((item (EnemyNo.) of [enemyyvelocity v]) - (0.91))\n            end\n        end\n    end\nend\nif <(Background) = [5]> then\n    if <(item (EnemyNo.) of [enemyyvelocity v]) > [12]> then\n        replace item (EnemyNo.) of [enemyyvelocity v] with [12]\n    end\n    if <(item (EnemyNo.) of [enemyyvelocity v]) < [-1.5]> then\n        replace item (EnemyNo.) of [enemyyvelocity v] with [-1.5]\n    end\nend\nchange y by (item (EnemyNo.) of [enemyyvelocity v])\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by ((item (EnemyNo.) of [enemyyvelocity v]) * (-1))\n    if <(item (EnemyNo.) of [enemyyvelocity v]) > [0]> then\n        FindCeiling\n    else\n        FindFloor\n    end\n    if <(item (EnemyNo.) of [enemytype v]) = [4]> then\n        replace item (EnemyNo.) of [enemyyvelocity v] with [0.01]\n    else\n        replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n    end\nend\n\ndefine FindCeiling\nrepeat until <<<<touching (blocks v)?> or <touching (uniqueblocks v)?>> or <touching (enemies v)?>> or <(y position) > [175]>>\n    change y by (1)\nend\nchange y by (-1)\n\nwhen I receive [blockbounce v]\nif <not <<(item (EnemyNo.) of [enemytype v]) = [5]> or <(item (EnemyNo.) of [enemytype v]) = [10]>>> then\n    if <<<([abs v] of (((x position) - (<(item (EnemyNo.) of [enemytype v]) = [4]> * (14))) - (BlockHitX)) ) < [24]> and <<([abs v] of ((y position) - (BlockHitY)) ) < [56]> and <(y position) > ((BlockHitY) - (4))>>> and <not <(item (EnemyNo.) of [enemystate v]) = [3]>>> then\n        if <(item (EnemyNo.) of [enemytype v]) = [8]> then\n            replace item (EnemyNo.) of [enemyyvelocity v] with [8]\n            replace item (EnemyNo.) of [enemyy v] with ((item (EnemyNo.) of [enemyy v]) + (0.3))\n        else\n            replace item (EnemyNo.) of [enemyyvelocity v] with ((18) - (<(item (EnemyNo.) of [enemytype v]) = [4]> * (2)))\n            change y by (3)\n            if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n                replace item (EnemyNo.) of [enemyy v] with ((item (EnemyNo.) of [enemyy v]) + (0.3))\n            end\n            change y by (-3)\n        end\n    end\nend\n\nwhen I receive [firehit v]\nif <not <<<(item (EnemyNo.) of [enemytype v]) = [5]> or <(item (EnemyNo.) of [enemytype v]) = [9]>> or <<(item (EnemyNo.) of [enemytype v]) = [7]> or <(item (EnemyNo.) of [enemytype v]) = [8]>>>> then\n    set [scanno. v] to ([sqrt v] of ((((x position) - (FireX)) * ((x position) - (FireX))) + (((y position) - (FireY)) * ((y position) - (FireY)))) )\n    if <<(ScanNo.) < [56]> and <not <(item (EnemyNo.) of [enemystate v]) = [3]>>> then\n        if <touching (fireball v)?> then\n            start sound [Stomp v]\n            if <(item (EnemyNo.) of [enemytype v]) = [11]> then\n                replace item (EnemyNo.) of [enemystate v] with ((([ceiling v] of (((item (EnemyNo.) of [enemystate v]) + (1)) / (3)) ) * (3)) + ((-29) / (30)))\n            else\n                add (EnemyNo.) to [deletethese v]\n            end\n        end\n    end\nend\n\nwhen I receive [playerupdated v]\nif <<<<(Powerup) = [Racc]> and <(AbCooldown) > [0]>> and <not <<(item (EnemyNo.) of [enemytype v]) = [7]> or <(item (EnemyNo.) of [enemytype v]) = [5]>>>> and <<([abs v] of (((x position) - (<(item (EnemyNo.) of [enemytype v]) = [4]> * (14))) - ([x position v] of [player v])) ) < [34]> and <([abs v] of ((y position) - ([y position v] of [player v])) ) < [7]>>> then\n    if <(item (EnemyNo.) of [enemytype v]) = [11]> then\n        if <((item (EnemyNo.) of [enemystate v]) mod (1)) = [0]> then\n            replace item (EnemyNo.) of [enemystate v] with ((([ceiling v] of (((item (EnemyNo.) of [enemystate v]) + (1)) / (3)) ) * (3)) + ((-29) / (30)))\n            replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n            start sound [Boom v]\n        end\n    else\n        start sound [Stomp v]\n        add (EnemyNo.) to [deletethese v]\n    end\nend\n\nwait (0) seconds\ndelete (EnemyNo.) of [enemyx v]\ndelete (EnemyNo.) of [enemyy v]\ndelete (EnemyNo.) of [enemytype v]\ndelete (EnemyNo.) of [enemystate v]\ndelete (EnemyNo.) of [enemydir v]\ndelete (EnemyNo.) of [enemyyvelocity v]\n\nwhen I receive [conveyerbelt v]\nif <not <<(item (EnemyNo.) of [enemytype v]) = [5]> or <(item (EnemyNo.) of [enemytype v]) = [10]>>> then\n    ConveyerBelt\nend\n\ndefine ConveyerBelt\nset [scanno. v] to [0]\nrepeat (length of [conx v])\n    change [scanno. v] by (1)\n    if <<([abs v] of (((x position) - (<(item (EnemyNo.) of [enemytype v]) = [4]> * (14))) - (item (ScanNo.) of [conx v])) ) < [28]> and <<((y position) - (item (ScanNo.) of [cony v])) < [28]> and <((y position) - (item (ScanNo.) of [cony v])) > [0]>>> then\n        if <(item (EnemyNo.) of [enemytype v]) = [7]> then\n            switch costume to (thwomphitbox v)\n        else\n            if <(item (EnemyNo.) of [enemytype v]) = [9]> then\n                switch costume to (spiny v)\n            else\n                if <(item (EnemyNo.) of [enemytype v]) = [4]> then\n                    switch costume to (plantbox v)\n                else\n                    switch costume to (smaller v)\n                end\n            end\n        end\n        if <(item (EnemyNo.) of [enemytype v]) = [4]> then\n            replace item (EnemyNo.) of [enemyyvelocity v] with [-0.01]\n        end\n        if <(item (EnemyNo.) of [enemytype v]) = [9]> then\n            change x by ((item (ScanNo.) of [condir v]) / (30))\n        else\n            change y by (3)\n            change x by ((item (ScanNo.) of [condir v]) / (30))\n        end\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n            if <not <(item (EnemyNo.) of [enemytype v]) = [9]>> then\n                XFix\n            end\n        else\n            if <(item (EnemyNo.) of [enemytype v]) = [9]> then\n                change y by (-3)\n                if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n                    replace item (EnemyNo.) of [enemyx v] with ((item (EnemyNo.) of [enemyx v]) + (((item (ScanNo.) of [condir v]) / (30)) / (28)))\n                end\n                change y by (3)\n            else\n                replace item (EnemyNo.) of [enemyx v] with ((item (EnemyNo.) of [enemyx v]) + (((item (ScanNo.) of [condir v]) / (30)) / (28)))\n                change y by (-3)\n            end\n        end\n        stop [this script v]\n    end\nend\n\ndefine XFix\nchange y by (2)\nset [offset v] to [1]\nrepeat until <<not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> or <(Offset) > [84]>>\n    if <(Offset) > [0]> then\n        change [offset v] by (0.5)\n    else\n        change [offset v] by (-0.5)\n    end\n    set [offset v] to ((Offset) * (-1))\n    change x by (Offset)\nend\nchange y by (-2)\nif <not <(Offset) > [84]>> then\n    replace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\nend\n\ndefine CostumeMe\nif <(item (EnemyNo.) of [enemytype v]) = [1]> then\n    switch costume to (([floor v] of ((GlobalCostumeNo.) mod (2)) ) + (1))\nend\nif <(item (EnemyNo.) of [enemytype v]) = [2]> then\n    if <(item (EnemyNo.) of [enemystate v]) = [0]> then\n        switch costume to (([floor v] of ((GlobalCostumeNo.) mod (2)) ) + (4))\n    end\n    if <<(item (EnemyNo.) of [enemystate v]) = [1]> or <(item (EnemyNo.) of [enemystate v]) = [3]>> then\n        switch costume to (6 v)\n        if <(item (EnemyNo.) of [enemystate v]) = [3]> then\n            go [forward v] (2) layers\n            point in direction ([direction v] of [player v])\n            go to x: ([x position v] of [player v]) y: ([y position v] of [player v])\n            if <(YVel) = [0]> then\n                move (23) steps\n            else\n                if <<([abs v] of (XVel) ) > ((5.999999) / (1.4))> or <(Powerup) = [None]>> then\n                    move (19) steps\n                else\n                    move (12) steps\n                end\n            end\n            if <not <(Powerup) = [None]>> then\n                change y by (5)\n            end\n        end\n    end\n    if <(item (EnemyNo.) of [enemystate v]) = [2]> then\n        switch costume to (([floor v] of (((GlobalCostumeNo.) * (2)) mod (8)) ) + (6))\n    end\nend\nif <(item (EnemyNo.) of [enemytype v]) = [3]> then\n    if <(item (EnemyNo.) of [enemystate v]) = [0]> then\n        switch costume to (([floor v] of ((GlobalCostumeNo.) mod (2)) ) + (14))\n    end\n    if <<(item (EnemyNo.) of [enemystate v]) = [1]> or <(item (EnemyNo.) of [enemystate v]) = [3]>> then\n        switch costume to (16 v)\n        if <(item (EnemyNo.) of [enemystate v]) = [3]> then\n            go [forward v] (2) layers\n            point in direction ([direction v] of [player v])\n            go to x: ([x position v] of [player v]) y: ([y position v] of [player v])\n            if <(YVel) = [0]> then\n                move (23) steps\n            else\n                if <<([abs v] of (XVel) ) > ((5.999999) / (1.4))> or <(Powerup) = [None]>> then\n                    move (19) steps\n                else\n                    move (12) steps\n                end\n            end\n            if <not <(Powerup) = [None]>> then\n                change y by (5)\n            end\n        end\n    end\n    if <(item (EnemyNo.) of [enemystate v]) = [2]> then\n        switch costume to (([floor v] of (((GlobalCostumeNo.) * (2)) mod (8)) ) + (16))\n    end\nend\nif <(item (EnemyNo.) of [enemytype v]) = [4]> then\n    if <<<(item (EnemyNo.) of [enemystate v]) > [97]> or <(item (EnemyNo.) of [enemystate v]) < [15]>> and <(item (EnemyNo.) of [enemyyvelocity v]) = [0]>> then\n        switch costume to (26 v)\n    else\n        switch costume to (([floor v] of ((GlobalCostumeNo.) mod (2)) ) + (24))\n    end\nend\nif <(item (EnemyNo.) of [enemytype v]) = [5]> then\n    switch costume to (([floor v] of (((GlobalCostumeNo.) * (1.5)) mod (4)) ) + (27))\n    go to [front v] layer\n    show\n    go [backward v] (3) layers\nend\nif <(item (EnemyNo.) of [enemytype v]) = [6]> then\n    switch costume to (([floor v] of (((GlobalCostumeNo.) * (1)) mod (2)) ) + (31))\n    if <(Background) = [5]> then\n        change y by (([sin v] of ((GlobalCostumeNo.) * (45)) ) * (3))\n    end\nend\nif <(item (EnemyNo.) of [enemytype v]) = [7]> then\n    switch costume to (33 v)\nend\nif <(item (EnemyNo.) of [enemytype v]) = [8]> then\n    if <([direction v] of [player v]) = (direction)> then\n        switch costume to (34 v)\n    else\n        switch costume to (35 v)\n    end\nend\nif <(item (EnemyNo.) of [enemytype v]) = [9]> then\n    if <(item (EnemyNo.) of [enemystate v]) = [0]> then\n        switch costume to (([floor v] of (((GlobalCostumeNo.) * (1)) mod (2)) ) + (36))\n    else\n        switch costume to (([floor v] of (((GlobalCostumeNo.) * (3)) mod (4)) ) + (38))\n    end\nend\nif <(item (EnemyNo.) of [enemytype v]) = [10]> then\n    switch costume to (42 v)\n    go [backward v] (14) layers\nend\nif <(item (EnemyNo.) of [enemytype v]) = [11]> then\n    if <((item (EnemyNo.) of [enemystate v]) mod (3)) = [0]> then\n        if <(item (EnemyNo.) of [enemyyvelocity v]) = [0]> then\n            switch costume to (43 v)\n        else\n            switch costume to (44 v)\n        end\n    else\n        if <((item (EnemyNo.) of [enemystate v]) mod (3)) = [1]> then\n            switch costume to (([floor v] of (((GlobalCostumeNo.) * (5)) mod (7)) ) + (45))\n        else\n            show\n            if <([sin v] of ((GlobalCostumeNo.) * (720)) ) > [0]> then\n                switch costume to (([floor v] of (((GlobalCostumeNo.) * (1.8)) mod (3)) ) + (54))\n            else\n                switch costume to (53 v)\n            end\n        end\n    end\nend\n\ndefine Enemy-PlayerColl\nif <(item (EnemyNo.) of [enemytype v]) = [1]> then\n    if <(distance to [player v]) < [56]> then\n        if <touching (player v)?> then\n            if <([y position v] of [player v]) > ((y position) + (2))> then\n                start sound [Stomp v]\n                set [yvel v] to [18]\n                add (EnemyNo.) to [deletethese v]\n            else\n                if <(AllowPlayerDamage) = [1]> then\n                    broadcast (PowerDown v)\n                end\n            end\n        end\n    end\nelse\n    if <(item (EnemyNo.) of [enemytype v]) = [2]> then\n        if <(item (EnemyNo.) of [enemystate v]) = [0]> then\n            if <touching (player v)?> then\n                if <([y position v] of [player v]) > ((y position) + (3))> then\n                    start sound [Stomp v]\n                    set [yvel v] to [18]\n                    replace item (EnemyNo.) of [enemystate v] with [1]\n                else\n                    if <(AllowPlayerDamage) = [1]> then\n                        broadcast (PowerDown v)\n                    end\n                end\n            end\n        else\n            if <(item (EnemyNo.) of [enemystate v]) = [2]> then\n                if <touching (enemies v)?> then\n                    set [shellx v] to (x position)\n                    set [shelly v] to (y position)\n                    broadcast (ShellHit v)\n                end\n                if <touching (player v)?> then\n                    if <([y position v] of [player v]) > ((y position) + (4))> then\n                        start sound [Stomp v]\n                        set [yvel v] to [18]\n                        replace item (EnemyNo.) of [enemystate v] with [1]\n                    else\n                        if <(AllowPlayerDamage) = [1]> then\n                            broadcast (PowerDown v)\n                        end\n                    end\n                end\n            else\n                if <touching (player v)?> then\n                    if <([y position v] of [player v]) > ((y position) + (-1))> then\n                        if <not <([y position v] of [player v]) > ((y position) + (2))>> then\n                            if <(HoldingShell) = [0]> then\n                                if <key (z v) pressed?> then\n                                    set [holdingshell v] to [1]\n                                    replace item (EnemyNo.) of [enemystate v] with [3]\n                                    stop [this script v]\n                                end\n                            end\n                        end\n                        start sound [Kick v]\n                        set [yvel v] to [18]\n                        replace item (EnemyNo.) of [enemystate v] with [2]\n                        point in direction ([direction v] of [player v])\n                        move (14) steps\n                        replace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\n                        replace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\n                        replace item (EnemyNo.) of [enemydir v] with (direction)\n                        replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n                    end\n                end\n            end\n        end\n    else\n        if <(item (EnemyNo.) of [enemytype v]) = [10]> then\n            if <touching (player v)?> then\n                if <([y position v] of [player v]) > ((y position) + (2))> then\n                    start sound [Stomp v]\n                    set [yvel v] to [18]\n                    add (EnemyNo.) to [deletethese v]\n                else\n                    if <(AllowPlayerDamage) = [1]> then\n                        broadcast (PowerDown v)\n                    end\n                end\n            end\n        else\n            if <(item (EnemyNo.) of [enemytype v]) = [3]> then\n                if <(item (EnemyNo.) of [enemystate v]) = [0]> then\n                    if <touching (player v)?> then\n                        if <([y position v] of [player v]) > ((y position) + (3))> then\n                            start sound [Stomp v]\n                            set [yvel v] to [18]\n                            replace item (EnemyNo.) of [enemystate v] with [1]\n                        else\n                            if <(AllowPlayerDamage) = [1]> then\n                                broadcast (PowerDown v)\n                            end\n                        end\n                    end\n                else\n                    if <(item (EnemyNo.) of [enemystate v]) = [2]> then\n                        if <touching (enemies v)?> then\n                            set [shellx v] to (x position)\n                            set [shelly v] to (y position)\n                            broadcast (ShellHit v)\n                        end\n                        if <touching (player v)?> then\n                            if <([y position v] of [player v]) > ((y position) + (4))> then\n                                start sound [Stomp v]\n                                set [yvel v] to [18]\n                                replace item (EnemyNo.) of [enemystate v] with [1]\n                            else\n                                if <(AllowPlayerDamage) = [1]> then\n                                    broadcast (PowerDown v)\n                                end\n                            end\n                        end\n                    else\n                        if <touching (player v)?> then\n                            if <([y position v] of [player v]) > ((y position) + (-1))> then\n                                if <not <([y position v] of [player v]) > ((y position) + (2))>> then\n                                    if <(HoldingShell) = [0]> then\n                                        if <key (z v) pressed?> then\n                                            set [holdingshell v] to [1]\n                                            replace item (EnemyNo.) of [enemystate v] with [3]\n                                            stop [this script v]\n                                        end\n                                    end\n                                end\n                                start sound [Kick v]\n                                set [yvel v] to [18]\n                                replace item (EnemyNo.) of [enemystate v] with [2]\n                                point in direction ([direction v] of [player v])\n                                move (14) steps\n                                replace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\n                                replace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\n                                replace item (EnemyNo.) of [enemydir v] with (direction)\n                                replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n                            end\n                        end\n                    end\n                end\n            else\n                if <(item (EnemyNo.) of [enemytype v]) = [4]> then\n                    if <<<(item (EnemyNo.) of [enemystate v]) > [97]> or <(item (EnemyNo.) of [enemystate v]) < [15]>> and <(item (EnemyNo.) of [enemyyvelocity v]) = [0]>> then\n                        switch costume to (smallplant v)\n                    else\n                        switch costume to (plantbox v)\n                    end\n                    if <touching (player v)?> then\n                        if <(AllowPlayerDamage) = [1]> then\n                            broadcast (PowerDown v)\n                        end\n                    end\n                else\n                    if <(item (EnemyNo.) of [enemytype v]) = [5]> then\n                        show\n                        switch costume to (firehitbox v)\n                        if <touching (player v)?> then\n                            if <(AllowPlayerDamage) = [1]> then\n                                broadcast (PowerDown v)\n                            end\n                        end\n                    else\n                        if <(item (EnemyNo.) of [enemytype v]) = [11]> then\n                            if <touching (player v)?> then\n                                if <((item (EnemyNo.) of [enemystate v]) mod (3)) = [0]> then\n                                    if <<not <(item (EnemyNo.) of [enemyyvelocity v]) = [0]>> and <([y position v] of [player v]) > ((y position) + (3))>> then\n                                        set [yvel v] to [18]\n                                        replace item (EnemyNo.) of [enemystate v] with ((([ceiling v] of (((item (EnemyNo.) of [enemystate v]) + (1)) / (3)) ) * (3)) + ((-29) / (30)))\n                                        replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n                                        start sound [Boom v]\n                                    else\n                                        if <touching (player v)?> then\n                                            if <(AllowPlayerDamage) = [1]> then\n                                                broadcast (PowerDown v)\n                                            end\n                                        end\n                                    end\n                                else\n                                    if <((item (EnemyNo.) of [enemystate v]) mod (3)) = [1]> then\n                                        if <([y position v] of [player v]) > ((y position) + (3))> then\n                                            set [yvel v] to [18]\n                                            replace item (EnemyNo.) of [enemystate v] with ((([ceiling v] of (((item (EnemyNo.) of [enemystate v]) + (1)) / (3)) ) * (3)) + ((-29) / (30)))\n                                            replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n                                            start sound [Boom v]\n                                        else\n                                            if <touching (player v)?> then\n                                                if <(AllowPlayerDamage) = [1]> then\n                                                    broadcast (PowerDown v)\n                                                end\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        else\n                            if <touching (player v)?> then\n                                if <(AllowPlayerDamage) = [1]> then\n                                    broadcast (PowerDown v)\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine DeleteEnemies\nrepeat until <(length of [deletethese v]) = [0]>\n    delete (item (1) of [deletethese v]) of [enemyx v]\n    delete (item (1) of [deletethese v]) of [enemyy v]\n    delete (item (1) of [deletethese v]) of [enemytype v]\n    delete (item (1) of [deletethese v]) of [enemystate v]\n    delete (item (1) of [deletethese v]) of [enemydir v]\n    delete (item (1) of [deletethese v]) of [enemyyvelocity v]\n    delete (1) of [deletethese v]\nend\n\ndefine Goomba\nswitch costume to (smaller v)\nchange y by ((Gravity) * (1.5))\nif <<<touching (blocks v)?> or <touching (uniqueblocks v)?>> or <touching (enemies v)?>> then\n    if <touching (enemies v)?> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n        set y to (((round (((y position) - (MapY)) / (28))) * (28)) + (MapY))\n        change y by (1)\n    else\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n    end\nend\nYVelocityScript\nmove (1) steps\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    YSmoothing\nend\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    move (-1) steps\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\nend\nreplace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\nreplace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\nchange y by (-1)\nswitch costume to (smallhitbox v)\n\ndefine GreenFella\nif <(item (EnemyNo.) of [enemystate v]) = [0]> then\n    switch costume to (tallhitbox v)\n    change y by ((Gravity) * (1.5))\n    if <<<touching (blocks v)?> or <touching (uniqueblocks v)?>> or <touching (enemies v)?>> then\n        if <touching (enemies v)?> then\n            change y by ((Gravity) * (-1.5))\n            FindFloor\n            set y to (((round (((y position) - (MapY)) / (28))) * (28)) + (MapY))\n        else\n            change y by ((Gravity) * (-1.5))\n            FindFloor\n        end\n    end\n    YVelocityScript\n    move (1) steps\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        YSmoothing\n    end\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        move (-1) steps\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    end\nend\nif <(item (EnemyNo.) of [enemystate v]) = [1]> then\n    switch costume to (smallhitbox v)\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n    end\n    YVelocityScript\nend\nif <(item (EnemyNo.) of [enemystate v]) = [2]> then\n    switch costume to (shellhitbox v)\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n    end\n    move (6) steps\n    YVelocityScript\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        YSmoothing\n    end\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        if <touching (uniqueblocks v)?> then\n            set y to (((round ((((y position) - (MapY)) / (28)) - (0.2))) * (28)) + (MapY))\n            set [shellx v] to (x position)\n            set [shelly v] to (y position)\n            broadcast (ShellHitBlock v)\n            turn right (180) degrees\n            replace item (EnemyNo.) of [enemydir v] with (direction)\n            XFix\n        else\n            XFix\n            if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n                turn right (180) degrees\n                replace item (EnemyNo.) of [enemydir v] with (direction)\n            end\n        end\n    end\n    switch costume to (smallhitbox v)\nend\nif <(item (EnemyNo.) of [enemystate v]) = [3]> then\n    replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n    point in direction ([direction v] of [player v])\n    replace item (EnemyNo.) of [enemydir v] with (direction)\n    go to x: ((PlayerX) + (MapX)) y: ((PlayerY) + (MapY))\n    move (22) steps\n    if <not <(Powerup) = [None]>> then\n        change y by (5)\n    end\n    if <<not <key (z v) pressed?>> or <<(Crouching) = [1]> or <<(Dead) = [1]> or <(PassedGoal) = [1]>>>> then\n        start sound [Kick v]\n        move (14) steps\n        replace item (EnemyNo.) of [enemystate v] with [2]\n        set [holdingshell v] to [0]\n    end\nend\nreplace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\nreplace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\nchange y by (-1)\n\ndefine RedFella\nif <(item (EnemyNo.) of [enemystate v]) = [0]> then\n    switch costume to (tallhitbox v)\n    change y by ((Gravity) * (1.5))\n    if <<<touching (blocks v)?> or <touching (uniqueblocks v)?>> or <touching (enemies v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n        if <touching (enemies v)?> then\n            change y by ((Gravity) * (-1.5))\n            FindFloor\n            set y to (((round (((y position) - (MapY)) / (28))) * (28)) + (MapY))\n        else\n            change y by ((Gravity) * (-1.5))\n            FindFloor\n        end\n        switch costume to (floorcheck v)\n        if <not <<<touching (blocks v)?> or <touching (uniqueblocks v)?>> or <touching (enemies v)?>>> then\n            turn right (180) degrees\n            replace item (EnemyNo.) of [enemydir v] with (direction)\n        end\n        switch costume to (tallhitbox v)\n    end\n    YVelocityScript\n    move (1) steps\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        YSmoothing\n    end\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        move (-1) steps\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    end\nend\nif <(item (EnemyNo.) of [enemystate v]) = [1]> then\n    switch costume to (smallhitbox v)\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n    end\n    YVelocityScript\nend\nif <(item (EnemyNo.) of [enemystate v]) = [2]> then\n    switch costume to (shellhitbox v)\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n    end\n    YVelocityScript\n    move (6) steps\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        YSmoothing\n    end\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        if <touching (uniqueblocks v)?> then\n            set y to (((round ((((y position) - (MapY)) / (28)) - (0.2))) * (28)) + (MapY))\n            set [shellx v] to (x position)\n            set [shelly v] to (y position)\n            broadcast (ShellHitBlock v)\n            turn right (180) degrees\n            replace item (EnemyNo.) of [enemydir v] with (direction)\n            XFix\n        else\n            XFix\n            if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n                turn right (180) degrees\n                replace item (EnemyNo.) of [enemydir v] with (direction)\n            end\n        end\n    end\n    switch costume to (smallhitbox v)\nend\nif <(item (EnemyNo.) of [enemystate v]) = [3]> then\n    replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n    point in direction ([direction v] of [player v])\n    replace item (EnemyNo.) of [enemydir v] with (direction)\n    go to (player v)\n    move (22) steps\n    if <not <(Powerup) = [None]>> then\n        change y by (5)\n    end\n    if <<not <key (z v) pressed?>> or <<(Crouching) = [1]> or <<(Dead) = [1]> or <(PassedGoal) = [1]>>>> then\n        start sound [Kick v]\n        move (14) steps\n        replace item (EnemyNo.) of [enemystate v] with [2]\n        set [holdingshell v] to [0]\n    end\nend\nreplace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\nreplace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\nchange y by (-1)\n\ndefine BigMouthBoi\nswitch costume to (plantbox v)\nchange y by ((Gravity) * (1.5))\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by ((Gravity) * (-1.5))\n    FindFloor\nend\nif <(item (EnemyNo.) of [enemyyvelocity v]) = [0]> then\n    go to [back v] layer\n    change y by (-56)\n    replace item (EnemyNo.) of [enemystate v] with ((item (EnemyNo.) of [enemystate v]) + (1))\n    if <(item (EnemyNo.) of [enemystate v]) < [28]> then\n        change y by ((item (EnemyNo.) of [enemystate v]) * (2))\n    else\n        if <(item (EnemyNo.) of [enemystate v]) < [84]> then\n            change y by (56)\n        else\n            if <(item (EnemyNo.) of [enemystate v]) < [112]> then\n                change y by (((112) - ((item (EnemyNo.) of [enemystate v]) * (2))) + (112))\n            else\n                if <(item (EnemyNo.) of [enemystate v]) < [168]> then\n            end\n        end\n    end\n    if <(y position) < [-179]> then\n        hide\n    end\n    change y by (-1)\nelse\n    YVelocityScript\n    replace item (EnemyNo.) of [enemystate v] with [168]\n    replace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\n    replace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\nend\nswitch costume to (smallplant v)\nchange y by (-1)\n\ndefine FishyMan\nswitch costume to (fishboi v)\nif <<<(Background) = [5]> and <(Underground) = [0]>> or <<(Background2) = [5]> and <(Underground) = [1]>>> then\n    move (1) steps\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        move (-1) steps\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    end\nelse\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n        if <(pick random (1) to (24)) = [1]> then\n            replace item (EnemyNo.) of [enemyyvelocity v] with [12]\n        end\n    end\n    YVelocityScript\n    move ([abs v] of ((item (EnemyNo.) of [enemyyvelocity v]) / (2)) ) steps\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        YSmoothing\n    end\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        move (([abs v] of (item (EnemyNo.) of [enemyyvelocity v]) ) / (-2)) steps\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    end\nend\nreplace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\nreplace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\nchange y by (-1)\n\ndefine KABOOM\nswitch costume to (thwomphitbox v)\nif <(item (EnemyNo.) of [enemystate v]) = [0]> then\n    if <<([abs v] of ((x position) - ([x position v] of [player v])) ) < [54]> and <([y position v] of [player v]) < (y position)>> then\n        replace item (EnemyNo.) of [enemystate v] with [1]\n    end\nend\nif <(item (EnemyNo.) of [enemystate v]) = [1]> then\n    change y by ((Gravity) * (1))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        if <touching (uniqueblocks v)?> then\n            set [thwompx v] to (x position)\n            set [thwompy v] to (y position)\n            broadcast (ThwompHitBlock v)\n        end\n        change y by ((Gravity) * (-1))\n        FindFloor\n        replace item (EnemyNo.) of [enemystate v] with [2]\n        start sound [Thwomp v]\n        set [shake v] to [0.01]\n    end\n    YVelocityScript\n    replace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\nend\nif <<(item (EnemyNo.) of [enemystate v]) > [1]> and <(item (EnemyNo.) of [enemystate v]) < [30]>> then\n    change y by ((Gravity) * (1))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        if <touching (uniqueblocks v)?> then\n            set [thwompx v] to (x position)\n            set [thwompy v] to (y position)\n            broadcast (ThwompHitBlock v)\n        end\n        change y by ((Gravity) * (-1))\n        FindFloor\n    end\n    YVelocityScript\n    if <(item (EnemyNo.) of [enemyy v]) = (((y position) - (MapY)) / (28))> then\n        replace item (EnemyNo.) of [enemystate v] with ((item (EnemyNo.) of [enemystate v]) + (1))\n    end\n    replace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\nend\nif <(item (EnemyNo.) of [enemystate v]) = [30]> then\n    change y by ((Gravity) * (-0.7))\n    change y by (4)\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (0.7))\n        FindCeiling\n        replace item (EnemyNo.) of [enemystate v] with [31]\n    end\n    change y by (-4)\n    replace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\n    if <(((y position) - (MapY)) / (28)) > (item (EnemyNo.) of [enemyyog v])> then\n        replace item (EnemyNo.) of [enemyy v] with (item (EnemyNo.) of [enemyyog v])\n        set y to (((item (EnemyNo.) of [enemyy v]) * (28)) + (MapY))\n        replace item (EnemyNo.) of [enemystate v] with [31]\n    end\nend\nif <(item (EnemyNo.) of [enemystate v]) > [30]> then\n    replace item (EnemyNo.) of [enemystate v] with ((item (EnemyNo.) of [enemystate v]) + (1))\n    if <(item (EnemyNo.) of [enemystate v]) = [45]> then\n        replace item (EnemyNo.) of [enemystate v] with [0]\n    end\nend\nchange y by (-1)\n\ndefine SpinyFella\nif <(item (EnemyNo.) of [enemystate v]) = [0]> then\n    set rotation style [all around v]\n    switch costume to (spiny v)\n    if <(direction) = [-90]> then\n        if <(item (EnemyNo.) of [enemyyvelocity v]) = [-0.01]> then\n            change y by ((Gravity) * (1.5))\n            if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n                change y by ((Gravity) * (-1.5))\n                FindFloor\n            end\n        end\n    else\n        replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n    end\n    if <(item (EnemyNo.) of [enemyyvelocity v]) = [0]> then\n        move (1) steps\n        switch costume to (frontcheck v)\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n            move (-1) steps\n            turn right (90) degrees\n            replace item (EnemyNo.) of [enemydir v] with (direction)\n            replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n            move (3) steps\n        end\n        switch costume to (spinycheck v)\n        if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n            move (-1) steps\n            turn left (90) degrees\n            replace item (EnemyNo.) of [enemydir v] with (direction)\n            replace item (EnemyNo.) of [enemyyvelocity v] with [0]\n            move (3) steps\n        end\n    else\n        point in direction (-90)\n        change y by ((Gravity) * (1.5))\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n            change y by ((Gravity) * (-1.5))\n            FindFloor\n        end\n        YVelocityScript\n        move (1) steps\n    end\n    switch costume to (spiny v)\n    if <<(direction) = [90]> and <<([abs v] of ((x position) - ([x position v] of [player v])) ) < [54]> and <([y position v] of [player v]) < (y position)>>> then\n        replace item (EnemyNo.) of [enemystate v] with [1]\n    end\nend\nif <(item (EnemyNo.) of [enemystate v]) = [1]> then\n    switch costume to (shellhitbox v)\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n        if <(x position) < ([x position v] of [player v])> then\n            point in direction (-90)\n        else\n            point in direction (90)\n        end\n        replace item (EnemyNo.) of [enemydir v] with (direction)\n        replace item (EnemyNo.) of [enemystate v] with [2]\n    end\n    YVelocityScript\nend\nif <(item (EnemyNo.) of [enemystate v]) = [2]> then\n    switch costume to (shellhitbox v)\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n    end\n    YVelocityScript\n    move (6) steps\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        YSmoothing\n    end\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        if <touching (uniqueblocks v)?> then\n            set y to (((round ((((y position) - (MapY)) / (28)) - (0.2))) * (28)) + (MapY))\n            set [shellx v] to (x position)\n            set [shelly v] to (y position)\n            broadcast (ShellHitBlock v)\n            turn right (180) degrees\n            replace item (EnemyNo.) of [enemydir v] with (direction)\n            XFix\n        else\n            XFix\n            if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n                turn right (180) degrees\n                replace item (EnemyNo.) of [enemydir v] with (direction)\n            end\n        end\n    end\n    switch costume to (smallhitbox v)\nend\nreplace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\nreplace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\n\nwhen I start as a clone\nif <(item (EnemyNo.) of [enemytype v]) = [6]> then\n    FishyMan\nend\nif <(item (EnemyNo.) of [enemytype v]) = [7]> then\n    KABOOM\nend\nif <(item (EnemyNo.) of [enemytype v]) = [8]> then\n    switch costume to (fishboi v)\n    if <([direction v] of [player v]) = (direction)> then\n        point towards (player v)\n        move (1) steps\n    end\n    if <(x position) > ([x position v] of [player v])> then\n        point in direction (-90)\n    else\n        point in direction (90)\n    end\n    replace item (EnemyNo.) of [enemydir v] with (direction)\n    YVelocityScript\n    replace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\n    replace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\n    change y by (-1)\n    change y by (([sin v] of ((GlobalCostumeNo.) * (40)) ) * (4))\nend\nif <(item (EnemyNo.) of [enemytype v]) = [9]> then\n    SpinyFella\nend\nif <(item (EnemyNo.) of [enemytype v]) = [10]> then\n    BulletBoi\nend\nif <(item (EnemyNo.) of [enemytype v]) = [11]> then\n    BoomBoi\nend\n\ndefine BulletBoi\nswitch costume to (bullethitbox v)\nif <(item (EnemyNo.) of [enemystate v]) = [0]> then\n    move (3) steps\n    if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n        replace item (EnemyNo.) of [enemystate v] with [1]\n    end\nelse\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        replace item (EnemyNo.) of [enemystate v] with [1]\n        hide\n        add (EnemyNo.) to [deletethese v]\n    end\n    move (3) steps\nend\nreplace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\nreplace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\n\ndefine BoomBoi\npoint in direction ((([abs v] of ((x position) - ([x position v] of [player v])) ) / ((x position) - ([x position v] of [player v]))) * (-90))\nif <((item (EnemyNo.) of [enemystate v]) mod (3)) = [0]> then\n    switch costume to (boom v)\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n    end\n    if <([sin v] of ((GlobalCostumeNo.) * (50)) ) < [-0.99]> then\n        if <(item (EnemyNo.) of [enemyyvelocity v]) = [0]> then\n            replace item (EnemyNo.) of [enemyyvelocity v] with [18]\n        end\n    end\n    YVelocityScript\n    if <(item (EnemyNo.) of [enemyyvelocity v]) = [0]> then\n        if <<([abs v] of ([sin v] of ((GlobalCostumeNo.) * (50)) ) ) < [0.01]> and <(pick random (1) to (3)) = [1]>> then\n            replace item (EnemyNo.) of [enemystate v] with ((([ceiling v] of (((item (EnemyNo.) of [enemystate v]) - (2)) / (3)) ) * (3)) + (1))\n        end\n    else\n        if <([abs v] of ((x position) - ([x position v] of [player v])) ) > [3]> then\n            move (2) steps\n        end\n        switch costume to (boom2 v)\n        XFix\n        switch costume to (boom v)\n    end\nend\nif <((item (EnemyNo.) of [enemystate v]) mod (3)) = [1]> then\n    switch costume to (boom v)\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n    end\n    if <([abs v] of ((x position) - ([x position v] of [player v])) ) > [3]> then\n        move (4) steps\n    end\n    switch costume to (boom2 v)\n    XFix\n    switch costume to (boom v)\n    if <<([cos v] of ((GlobalCostumeNo.) * (50)) ) < [-0.99]> and <(pick random (1) to (4)) = [1]>> then\n        replace item (EnemyNo.) of [enemystate v] with (([ceiling v] of (((item (EnemyNo.) of [enemystate v]) - (2)) / (3)) ) * (3))\n    end\nend\nif <((item (EnemyNo.) of [enemystate v]) mod (3)) = [2]> then\nif <not <<((item (EnemyNo.) of [enemystate v]) mod (3)) = [0]> or <<((item (EnemyNo.) of [enemystate v]) mod (3)) = [1]> or <((item (EnemyNo.) of [enemystate v]) mod (3)) = [2]>>>> then\n    hide\n    replace item (EnemyNo.) of [enemystate v] with ((item (EnemyNo.) of [enemystate v]) + ((1) / ((30) + (<(item (EnemyNo.) of [enemystate v]) > [5.9]> * (30)))))\n    if <<((item (EnemyNo.) of [enemystate v]) mod (3)) > [0]> and <((item (EnemyNo.) of [enemystate v]) mod (3)) < [1]>> then\n        replace item (EnemyNo.) of [enemystate v] with ([floor v] of (item (EnemyNo.) of [enemystate v]) )\n    end\n    if <(item (EnemyNo.) of [enemystate v]) > [8.9]> then\n        add (EnemyNo.) to [deletethese v]\n    end\nend\nreplace item (EnemyNo.) of [enemyx v] with (((x position) - (MapX)) / (28))\nreplace item (EnemyNo.) of [enemyy v] with (((y position) - (MapY)) / (28))\nchange y by (-1)\n\n@Background\n\nwhen flag clicked\nset rotation style [don't rotate v]\ngo to x: (0) y: (0)\nset size to (100) %\nforever\n    if <not <(Menu) = [1]>> then\n        if <<<(MapY) < [0]> and <(Underground) = [0]>> or <<(MapY) < [600]> and <(Underground) = [1]>>> then\n            erase all\n        end\n        if <([abs v] of (((MapX) * (0.6)) mod (1152)) ) > [800]> then\n            switch costume to (bypass v)\n            set size to (240) %\n            if <<<<(Background) = [8]> and <(Underground) = [0]>> or <<(Background2) = [8]> and <(Underground) = [1]>>> and <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.98]>> then\n                if <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.99]> then\n                    switch costume to (8b v)\n                    if <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.999]> then\n                        start sound [Thunder v]\n                    end\n                else\n                    switch costume to (8a v)\n                end\n            else\n                if <(Underground) = [1]> then\n                    switch costume to (Background2)\n                else\n                    switch costume to (Background)\n                end\n            end\n            go to x: (((MapX) * (0.6)) mod (1152)) y: (((MapY) + (<(Underground) = [1]> * (-620))) / (4))\n            stamp\n            switch costume to (bypass v)\n            set size to (240) %\n            if <<<<(Background) = [8]> and <(Underground) = [0]>> or <<(Background2) = [8]> and <(Underground) = [1]>>> and <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.98]>> then\n                if <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.99]> then\n                    switch costume to (8b v)\n                else\n                    switch costume to (8a v)\n                end\n            else\n                if <(Underground) = [1]> then\n                    switch costume to (Background2)\n                else\n                    switch costume to (Background)\n                end\n            end\n            go to x: ((((MapX) * (0.6)) mod (1152)) + (-1152)) y: (((MapY) + (<(Underground) = [1]> * (-620))) / (4))\n            stamp\n        else\n            switch costume to (bypass v)\n            set size to (240) %\n            if <<<<(Background) = [8]> and <(Underground) = [0]>> or <<(Background2) = [8]> and <(Underground) = [1]>>> and <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.98]>> then\n                if <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.99]> then\n                    switch costume to (8b v)\n                    if <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.999]> then\n                        start sound [Thunder v]\n                    end\n                else\n                    switch costume to (8a v)\n                end\n            else\n                if <(Underground) = [1]> then\n                    switch costume to (Background2)\n                else\n                    switch costume to (Background)\n                end\n            end\n            go to x: ((((MapX) * (0.6)) mod (1152)) + (-1152)) y: (((MapY) + (<(Underground) = [1]> * (-620))) / (4))\n            stamp\n            switch costume to (bypass v)\n            set size to (240) %\n            if <<<<(Background) = [8]> and <(Underground) = [0]>> or <<(Background2) = [8]> and <(Underground) = [1]>>> and <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.98]>> then\n                if <([sin v] of ((GlobalCostumeNo.) * (18)) ) > [0.99]> then\n                    switch costume to (8b v)\n                else\n                    switch costume to (8a v)\n                end\n            else\n                if <(Underground) = [1]> then\n                    switch costume to (Background2)\n                else\n                    switch costume to (Background)\n                end\n            end\n            go to x: (((MapX) * (0.6)) mod (1152)) y: (((MapY) + (<(Underground) = [1]> * (-620))) / (4))\n            stamp\n        end\n        hide\n    end\n    if <(StartLevel) = [0]> then\n        broadcast (PlayerUpdate v)\n        broadcast (ShowName v)\n    else\n        if <(Menu) = [1]> then\n            erase all\n            broadcast (MenuTick v)\n        else\n            if <(Shake) > [0]> then\n                change [shake v] by (0.5)\n                change [mapx v] by (([sin v] of ((Shake) * (180)) ) * (3))\n                if <(Shake) > [5]> then\n                    set [shake v] to [0]\n                end\n            end\n            broadcast (Tick v)\n        end\n    end\nend\n\n@Overlay\n\nwhen flag clicked\nset rotation style [don't rotate v]\nshow list [save code v]\ngo to x: (0) y: (0)\nshow\nswitch costume to (costume3 v)\nset [brightness v] effect to (-100)\nwait (0.5) seconds\nstart sound [Start v]\nswitch costume to (bypass v)\nset size to (300) %\nswitch costume to (costume3 v)\nclear graphic effects\nwait (2.5) seconds\nswitch costume to (costume1 v)\nwait (0) seconds\nwait until <(HideMenu) = [0]>\nset size to (100) %\nshow\n\nwhen I receive [makesavecode v]\nhide\nask [Enter Level Name \(Avoid Symbols\)] and wait\nshow\nset [levelcreator v] to (username)\nFormCode\nadd [Keep clicking the code quickly until it all highlights, then right click it and copy.] to [save code v]\nadd [Do NOT post your code in the comments or use the forum as a chatroom.] to [save code v]\nrepeat until <(answer) = (SaveCode)>\n    hide list [save code v]\n    hide\n    ask [Re-Enter Save Code to check validility] and wait\n    if <not <(answer) = (SaveCode)>> then\n        add [Code Copied Incorrectly! You must triple click before copying it.] to [save code v]\n    end\nend\ndelete all of [save code v]\nadd [Code Copied Correctly! You can share it in the forum topic in the Notes.] to [save code v]\nadd [Or you can click the flag again and load it to play it through.] to [save code v]\nadd [Do not post it in the comments, even if it fits.] to [save code v]\nwait (7) seconds\nshow\nshow list [save code v]\n\ndefine FormCode\ndelete all of [save code v]\nset [savecode v] to []\nset [saveno. v] to [0]\nrepeat (length of [blockx v])\n    change [saveno. v] by (1)\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [blockx v]))\n    set [savecode v] to (join (SaveCode) [:])\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [blocky v]))\n    set [savecode v] to (join (SaveCode) [:])\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [blockstype v]))\n    set [savecode v] to (join (SaveCode) [:])\nend\nset [savecode v] to (join (SaveCode) [B])\nset [saveno. v] to [0]\nrepeat (length of [uniqueblocksx v])\n    change [saveno. v] by (1)\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [uniqueblocksx v]))\n    set [savecode v] to (join (SaveCode) [:])\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [uniqueblocksy v]))\n    set [savecode v] to (join (SaveCode) [:])\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [uniqueblocksstate v]))\n    set [savecode v] to (join (SaveCode) [:])\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [blockcontents v]))\n    set [savecode v] to (join (SaveCode) [:])\nend\nset [savecode v] to (join (SaveCode) [U])\nset [saveno. v] to [0]\nrepeat (length of [enemyxog v])\n    change [saveno. v] by (1)\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [enemyxog v]))\n    set [savecode v] to (join (SaveCode) [:])\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [enemyyog v]))\n    set [savecode v] to (join (SaveCode) [:])\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [enemytypeog v]))\n    set [savecode v] to (join (SaveCode) [:])\nend\nset [savecode v] to (join (SaveCode) [E])\nset [savecode v] to (join (SaveCode) [C])\nset [saveno. v] to [0]\nrepeat (length of [pipex v])\n    change [saveno. v] by (1)\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [pipex v]))\n    set [savecode v] to (join (SaveCode) [:])\n    set [savecode v] to (join (SaveCode) (item (SaveNo.) of [pipey v]))\n    set [savecode v] to (join (SaveCode) [:])\nend\nset [savecode v] to (join (SaveCode) [X])\nset [savecode v] to (join (SaveCode) (AutoScroll))\nset [savecode v] to (join (SaveCode) (AllowYMovement))\nset [savecode v] to (join (SaveCode) (LevelCreator))\nset [savecode v] to (join (SaveCode) [.])\nset [savecode v] to (join (SaveCode) (answer))\nset [savecode v] to (join (SaveCode) [.])\nset [savecode v] to (join (SaveCode) (Background))\nset [savecode v] to (join (SaveCode) (Background2))\nadd (SaveCode) to [save code v]\n\nwhen I receive [loadsavecode v]\nset [coins v] to [0]\nbroadcast (Blacken v)\nwait (0.33) seconds\nset [passedgoal v] to [1]\nset [pause v] to [0]\nLoadCode\nset [startlevel v] to [0]\nwait (2.5) seconds\nset [startlevel v] to [1]\nbroadcast (ResetLevel v) and wait\nset [passedgoal v] to [0]\n\ndefine LoadCode\nbroadcast (ClearAll v) and wait\nset [saveno. v] to [1]\nrepeat until <(letter (SaveNo.) of (SaveCode)) = [B]>\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [blockx v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [blocky v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [blockstype v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\nend\nchange [saveno. v] by (1)\nrepeat until <(letter (SaveNo.) of (SaveCode)) = [U]>\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [uniqueblocksx v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [uniqueblocksy v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [uniqueblocksstate v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [blockcontents v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\nend\nchange [saveno. v] by (1)\nrepeat until <(letter (SaveNo.) of (SaveCode)) = [E]>\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [enemyxog v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [enemyyog v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n        set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n        change [saveno. v] by (1)\n        if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n            stop [all v]\n        end\n    end\n    add (CodeExtraction) to [enemytypeog v]\n    change [saveno. v] by (1)\n    set [codeextraction v] to []\nend\nchange [saveno. v] by (1)\nif <(letter (SaveNo.) of (SaveCode)) = [C]> then\n    change [saveno. v] by (1)\n    repeat until <(letter (SaveNo.) of (SaveCode)) = [X]>\n        set [codeextraction v] to []\n        repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n            set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n            change [saveno. v] by (1)\n            if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n                stop [all v]\n            end\n        end\n        add (CodeExtraction) to [pipex v]\n        change [saveno. v] by (1)\n        set [codeextraction v] to []\n        repeat until <(letter (SaveNo.) of (SaveCode)) = [:]>\n            set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n            change [saveno. v] by (1)\n            if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n                stop [all v]\n            end\n        end\n        add (CodeExtraction) to [pipey v]\n        change [saveno. v] by (1)\n        set [codeextraction v] to []\n    end\n    change [saveno. v] by (1)\nend\nset [autoscroll v] to (letter (SaveNo.) of (SaveCode))\nchange [saveno. v] by (1)\nset [allowymovement v] to (letter (SaveNo.) of (SaveCode))\nchange [saveno. v] by (1)\nset [codeextraction v] to []\nrepeat until <<(letter (SaveNo.) of (SaveCode)) = [:]> or <(letter (SaveNo.) of (SaveCode)) = [.]>>\n    set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n    change [saveno. v] by (1)\n    if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n        stop [all v]\n    end\nend\nset [levelcreator v] to (CodeExtraction)\nchange [saveno. v] by (1)\nset [codeextraction v] to []\nrepeat until <<(letter (SaveNo.) of (SaveCode)) = [:]> or <(letter (SaveNo.) of (SaveCode)) = [.]>>\n    set [codeextraction v] to (join (CodeExtraction) (letter (SaveNo.) of (SaveCode)))\n    change [saveno. v] by (1)\n    if <(SaveNo.) > ((length of (SaveCode)) + (3))> then\n        stop [all v]\n    end\nend\nset [levelname v] to (CodeExtraction)\nchange [saveno. v] by (1)\nif <<(letter ((length of (SaveCode)) - (1)) of (SaveCode)) = [:]> or <(letter ((length of (SaveCode)) - (1)) of (SaveCode)) = [.]>> then\n    set [background v] to (letter (length of (SaveCode)) of (SaveCode))\n    if <<(Background) = []> or <<(Background) = [ ]> or <not <(Background) < [99]>>>> then\n        set [background v] to [1]\n    end\n    set [background2 v] to [1]\nelse\n    set [background v] to (letter ((length of (SaveCode)) - (1)) of (SaveCode))\n    if <<(Background) = []> or <<(Background) = [ ]> or <not <(Background) < [99]>>>> then\n        set [background v] to [1]\n    end\n    set [background2 v] to (letter (length of (SaveCode)) of (SaveCode))\n    if <<(Background2) = []> or <<(Background2) = [ ]> or <not <(Background2) < [99]>>>> then\n        set [background2 v] to [1]\n    end\nend\n\nwhen I receive [showname v]\nswitch costume to (costume2 v)\nclear graphic effects\nwait (0.1) seconds\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nswitch costume to (costume1 v)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nclear graphic effects\n\nwhen I receive [showname v]\nif <(costume [number v]) = [1]> then\n    go to x: (0) y: (0)\n    show\nend\n\nwhen I receive [blacken v]\nswitch costume to (costume2 v)\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\nwhen I receive [death v]\nrepeat (75)\n    if <(Pause) = [1]> then\n        switch costume to (costume1 v)\n        set [allowplayermovement v] to [1]\n        set [dead v] to [0]\n        set [passedgoal v] to [0]\n        clear graphic effects\n        stop [this script v]\n    end\nend\nif <(Pause) = [0]> then\n    switch costume to (costume2 v)\n    broadcast (Blacken v) and wait\n    set [startlevel v] to [1]\n    broadcast (ResetLevel v) and wait\n    broadcast (Convert v) and wait\n    set [allowplayermovement v] to [1]\n    set [dead v] to [0]\n    set [passedgoal v] to [0]\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    switch costume to (costume1 v)\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\n    clear graphic effects\nelse\n    switch costume to (costume1 v)\n    set [allowplayermovement v] to [1]\n    set [dead v] to [0]\n    set [passedgoal v] to [0]\n    clear graphic effects\nend\n\nwhen I receive [open v]\nswitch costume to (costume2 v)\nset [ghost v] effect to (0)\nwait (1) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nswitch costume to (costume1 v)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nclear graphic effects\n\n@End\n\nwhen flag clicked\nset rotation style [don't rotate v]\nhide\n\nwhen I receive [tick v]\nif <[1] = [1]> then\n    delete this clone\nend\nhide\nif <(Pause) = [1]> then\n    set [ghost v] effect to (50)\nelse\n    set [ghost v] effect to (0)\nend\nif <(Underground) = [0]> then\n    show\n    go to [back v] layer\n    go [forward v] (2) layers\n    switch costume to (bypass v)\n    set size to (350) %\n    if <(PassedGoal) = [1]> then\n        switch costume to (Costume)\n    else\n        switch costume to (([floor v] of (((GlobalCostumeNo.) * (1.5)) mod (3)) ) + (9))\n    end\n    if <((item ((length of [blockx v]) - (1)) of [blockx v]) - (3.5)) > [0]> then\n        go to x: ((((item ((length of [blockx v]) - (1)) of [blockx v]) - (8)) * (28)) + (MapX)) y: ((MapY) - ((-0.5) * (28)))\n    else\n        go to x: ((364) + (MapX)) y: ((MapY) - ((-0.5) * (28)))\n    end\n    if <([abs v] of (x position) ) = [247]> then\n        hide\n    end\n    if <<(PassedGoal) = [0]> and <(Pause) = [0]>> then\n        if <touching (player v)?> then\n            set [costume v] to (costume [name v])\n            stop all sounds\n            start sound [SMA4-GoalCard1 v]\n            set [passedgoal v] to [1]\n            broadcast (Win v)\n        end\n    end\n    create clone of (_myself_ v)\nelse\n    hide\nend\nif <(Underground) = [0]> then\n    go to [back v] layer\n    switch costume to (bypass v)\n    set size to (350) %\n    if <(Background) = [4]> then\n        switch costume to (5 v)\n    else\n        if <<(Background) = [3]> or <<(Background) = [5]> or <<(Background) = [6]> or <(Background) = [8]>>>> then\n            switch costume to (3 v)\n        else\n            if <(Background) = [2]> then\n                switch costume to (7 v)\n            else\n                switch costume to (1 v)\n            end\n        end\n    end\n    show\n    if <((item ((length of [blockx v]) - (1)) of [blockx v]) - (3.5)) > [0]> then\n        go to x: ((((item ((length of [blockx v]) - (1)) of [blockx v]) - (29.5)) * (28)) + (MapX)) y: ((MapY) - ((6) * (28)))\n    else\n        if <(Pause) = [1]> then\n            switch costume to (bypass v)\n            set size to (350) %\n            if <(Background) = [4]> then\n                switch costume to (6 v)\n            else\n                if <<(Background) = [3]> or <<(Background) = [5]> or <<(Background) = [6]> or <(Background) = [8]>>>> then\n                    switch costume to (4 v)\n                else\n                    if <(Background) = [2]> then\n                        switch costume to (8 v)\n                    else\n                        switch costume to (2 v)\n                    end\n                end\n            end\n        end\n        go to x: (((-8.5) * (28)) + (MapX)) y: ((MapY) - ((6) * (28)))\n    end\n    if <not <<(x position) = [-111]> or <(x position) = [-1065]>>> then\n        stamp\n    end\nelse\n    hide\nend\nhide\n\nwhen I receive [menutick v]\nif <[1] = [1]> then\n    delete this clone\nend\nhide\n\n@FX\n\nwhen flag clicked\nset [particles v] to [0]\ngo to x: (0) y: (0)\nset size to (350) %\nhide\nswitch costume to (notaclone v)\n\ndefine MakeParticles\nif <(item (1) of [breaktype v]) = [B]> then\n    set [myx v] to ((item (1) of [breakx v]) - (MapX))\n    set [myy v] to ((item (1) of [breaky v]) - (MapY))\n    set [mytype v] to (item (1) of [breaktype v])\n    set [myyvel v] to ((-60) + (pick random (-5) to (20)))\n    create clone of (_myself_ v)\n    if <(Particles) < [24]> then\n        set [myx v] to ((item (1) of [breakx v]) - (MapX))\n        set [myy v] to ((item (1) of [breaky v]) - (MapY))\n        set [mytype v] to (item (1) of [breaktype v])\n        set [myyvel v] to ((-15) + (pick random (-5) to (15)))\n        create clone of (_myself_ v)\n        set [myx v] to ((item (1) of [breakx v]) - (MapX))\n        set [myy v] to ((item (1) of [breaky v]) - (MapY))\n        set [mytype v] to (item (1) of [breaktype v])\n        set [myyvel v] to ((15) + (pick random (-15) to (5)))\n        create clone of (_myself_ v)\n        set [myx v] to ((item (1) of [breakx v]) - (MapX))\n        set [myy v] to ((item (1) of [breaky v]) - (MapY))\n        set [mytype v] to (item (1) of [breaktype v])\n        set [myyvel v] to ((60) + (pick random (-20) to (-5)))\n        create clone of (_myself_ v)\n    end\nelse\n    set [myx v] to ((item (1) of [breakx v]) - (MapX))\n    set [myy v] to ((item (1) of [breaky v]) - (MapY))\n    set [mytype v] to (item (1) of [breaktype v])\n    set [myyvel v] to [15]\n    create clone of (_myself_ v)\nend\ndelete (1) of [breakx v]\ndelete (1) of [breaky v]\ndelete (1) of [breaktype v]\n\nwhen I receive [updateall v]\nchange [particles v] by (1)\nif <not <(costume [name v]) = [NotAClone]>> then\n    show\n    go to x: ((MyX) + (MapX)) y: ((MyY) + (MapY))\n    if <(costume [name v]) = [B]> then\n        point in direction (MyYVel)\n        go to x: ((MyX) + (MapX)) y: ((MyY) + (MapY))\n        if <(MyYVel) > [0]> then\n            turn right ((8) - (<([abs v] of (MyYVel) ) < [90]> * (2))) degrees\n        else\n            turn left ((8) - (<([abs v] of (MyYVel) ) < [90]> * (2))) degrees\n        end\n        if <([abs v] of (MyYVel) ) > [175]> then\n            point in direction (180)\n        end\n        move (2) steps\n        change y by (([cos v] of (MyYVel) ) * (6))\n        if <([abs v] of (MyYVel) ) > [90]> then\n            change y by ((0) + (<(y position) < [0]> * ((y position) / (12))))\n        end\n        set [myx v] to ((x position) - (MapX))\n        set [myy v] to ((y position) - (MapY))\n        set [myyvel v] to (direction)\n        if <(y position) < [-178]> then\n            delete this clone\n        end\n    else\n        point in direction (90)\n        change [myyvel v] by (-1)\n        change y by (MyYVel)\n        set [myx v] to ((x position) - (MapX))\n        set [myy v] to ((y position) - (MapY))\n        if <(y position) < [-178]> then\n            delete this clone\n        end\n    end\nend\n\nwhen I receive [coinbox v]\nif <(costume [name v]) = [NotAClone]> then\n    point in direction (90)\n    switch costume to (item (1) of [breaktype v])\n    Break\n    switch costume to (notaclone v)\nend\n\nwhen I start as a clone\nchange [particles v] by (1)\nif <(costume [name v]) = [c]> then\n    wait (0.8) seconds\n    set [ghost v] effect to (25)\n    wait (0) seconds\n    set [ghost v] effect to (50)\n    wait (0) seconds\n    set [ghost v] effect to (75)\n    wait (0) seconds\n    delete this clone\nend\n\ndefine Break\nrepeat until <(length of [breakx v]) = [0]>\n    switch costume to (item (1) of [breaktype v])\n    MakeParticles\nend\nswitch costume to (notaclone v)\n\nwhen I receive [costumeeverything v]\nif <(costume [name v]) = [NotAClone]> then\n    Break\nend\n\n@Items\n\nwhen flag clicked\nset rotation style [don't rotate v]\nswitch costume to (notaclone v)\nset size to (350) %\nhide\n\ndefine FormUniqueBlocks\nshow\nswitch costume to (hitbox v)\nset [blockno. v] to [0]\nrepeat (length of [itemx v])\n    change [blockno. v] by (1)\n    go to x: (((item (BlockNo.) of [itemx v]) * (28)) + (MapX)) y: (((item (BlockNo.) of [itemy v]) * (28)) + (MapY))\n    if <<<(x position) < [235]> and <(x position) > [-235]>> and <<(y position) < [190]> and <(y position) > [-168]>>> then\n        point in direction (item (BlockNo.) of [itemdir v])\n        create clone of (_myself_ v)\n    end\n    change [blocksspawned v] by (1)\nend\nswitch costume to (notaclone v)\nhide\n\nwhen I start as a clone\nif <(item (BlockNo.) of [itemtype v]) = [R]> then\n    go to [front v] layer\n    go [backward v] (8) layers\n    turn right (4) degrees\n    if <<(direction) < [0]> and <(direction) > [-180]>> then\n        change y by (([cos v] of (direction) ) * (1))\n    else\n        change y by (([cos v] of (direction) ) * (-1))\n    end\n    replace item (BlockNo.) of [itemdir v] with (direction)\n    change x by (([sin v] of (direction) ) * (3))\n    change y by ((Gravity) / (4))\nelse\n    change y by ((Gravity) * (1.5))\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by ((Gravity) * (-1.5))\n        FindFloor\n        if <(item (BlockNo.) of [itemtype v]) = [S]> then\n            replace item (BlockNo.) of [itemyvel v] with [16]\n        end\n    end\n    if <(item (BlockNo.) of [itemtype v]) = [S]> then\n        set [brightness v] effect to ((([sin v] of ((GlobalCostumeNo.) * (420)) ) * (15)) + (15))\n    end\n    YVelocityScript\n    if <<(item (BlockNo.) of [itemtype v]) = [M]> or <(item (BlockNo.) of [itemtype v]) = [S]>> then\n        move (2) steps\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n            YSmoothing\n        end\n        if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n            XFix\n            if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n                change y by (-1)\n            else\n                turn right (180) degrees\n                replace item (BlockNo.) of [itemdir v] with (direction)\n                move (2) steps\n            end\n        end\n    end\nend\nreplace item (BlockNo.) of [itemx v] with (((x position) - (MapX)) / (28))\nreplace item (BlockNo.) of [itemy v] with (((y position) - (MapY)) / (28))\nchange y by (-2)\n\nwhen I receive [updateall v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(length of [itemx v]) > [0]> then\n    FormUniqueBlocks\nend\n\nwhen I receive [playerupdated v]\nif <not <(costume [number v]) = [1]>> then\n    if <touching (player v)?> then\n        if <(item (BlockNo.) of [itemtype v]) = [M]> then\n            set [powerupcollected v] to [Big]\n            broadcast (Powerup v)\n            hide\n            wait (0) seconds\n            delete (BlockNo.) of [itemdir v]\n            delete (BlockNo.) of [itemtype v]\n            delete (BlockNo.) of [itemx v]\n            delete (BlockNo.) of [itemy v]\n            delete (BlockNo.) of [itemyvel v]\n        else\n            if <(item (BlockNo.) of [itemtype v]) = [R]> then\n                set [powerupcollected v] to [Racc]\n                broadcast (Powerup v)\n                hide\n                wait (0) seconds\n                delete (BlockNo.) of [itemdir v]\n                delete (BlockNo.) of [itemtype v]\n                delete (BlockNo.) of [itemx v]\n                delete (BlockNo.) of [itemy v]\n                delete (BlockNo.) of [itemyvel v]\n            else\n                if <(item (BlockNo.) of [itemtype v]) = [S]> then\n                    set [startimer v] to [38]\n                    stop all sounds\n                    hide\n                    delete (BlockNo.) of [itemdir v]\n                    delete (BlockNo.) of [itemtype v]\n                    delete (BlockNo.) of [itemx v]\n                    delete (BlockNo.) of [itemy v]\n                    delete (BlockNo.) of [itemyvel v]\n                else\n                    if <(item (BlockNo.) of [itemtype v]) = [F]> then\n                        set [powerupcollected v] to [Fire]\n                        broadcast (Powerup v)\n                        hide\n                        delete (BlockNo.) of [itemdir v]\n                        delete (BlockNo.) of [itemtype v]\n                        delete (BlockNo.) of [itemx v]\n                        delete (BlockNo.) of [itemy v]\n                        delete (BlockNo.) of [itemyvel v]\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [costumeeverything v]\nif <not <(costume [number v]) = [1]>> then\n    switch costume to (item (BlockNo.) of [itemtype v])\nend\n\ndefine YVelocityScript\nif <(item (BlockNo.) of [itemtype v]) = [s]> then\n    if <(item (BlockNo.) of [itemyvel v]) > [-9]> then\n        replace item (BlockNo.) of [itemyvel v] with ((item (BlockNo.) of [itemyvel v]) - (0.96))\n    end\nelse\n    if <(item (BlockNo.) of [itemyvel v]) > [-4]> then\n        replace item (BlockNo.) of [itemyvel v] with ((item (BlockNo.) of [itemyvel v]) - (0.96))\n    end\nend\nchange y by (item (BlockNo.) of [itemyvel v])\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by ((item (BlockNo.) of [itemyvel v]) * (-1))\n    if <(item (BlockNo.) of [itemyvel v]) > [0]> then\n        FindCeiling\n    else\n        FindFloor\n    end\n    replace item (BlockNo.) of [itemyvel v] with [0]\nend\n\ndefine FindFloor\nrepeat until <<<touching (blocks v)?> or <touching (uniqueblocks v)?>> or <(y position) < [-175]>>\n    change y by (-1)\nend\nchange y by (1)\n\ndefine FindCeiling\nrepeat until <<<touching (blocks v)?> or <touching (uniqueblocks v)?>> or <(y position) > [175]>>\n    change y by (1)\nend\nchange y by (-1)\n\ndefine YSmoothing\nrepeat (6)\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        change y by (1)\n    end\nend\nif <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n    change y by (-6)\nend\n\nwhen I receive [blockbounce v]\nif <<([abs v] of ((x position) - (BlockHitX)) ) < [24]> and <<([abs v] of ((y position) - (BlockHitY)) ) < [56]> and <(y position) > ((BlockHitY) - (4))>>> then\n    replace item (BlockNo.) of [itemyvel v] with [19]\n    change y by (5)\n    if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n        replace item (BlockNo.) of [itemy v] with ((item (1) of [itemy v]) + (0.3))\n    end\n    change y by (-5)\nend\n\nwhen I receive [blockhit v]\nif <<([abs v] of ((x position) - (BlockHitX)) ) < [24]> and <<([abs v] of ((y position) - (BlockHitY)) ) < [56]> and <(y position) > ((BlockHitY) - (4))>>> then\n    replace item (BlockNo.) of [itemyvel v] with [15]\n    change y by (5)\n    if <not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> then\n        replace item (BlockNo.) of [itemy v] with ((item (1) of [itemy v]) + (0.3))\n    end\n    change y by (-5)\nend\n\nwhen I receive [menutick v]\ndelete all of [itemdir v]\ndelete all of [itemtype v]\ndelete all of [itemx v]\ndelete all of [itemy v]\ndelete all of [itemyvel v]\n\nwhen I receive [conveyerbelt v]\nif <(length of [itemx v]) > [0]> then\n    ConveyerBelt\nend\n\ndefine ConveyerBelt\nif <not <(costume [number v]) = [1]>> then\n    set [scanno. v] to [0]\n    repeat (length of [conx v])\n        change [scanno. v] by (1)\n        if <<([abs v] of ((x position) - (item (ScanNo.) of [conx v])) ) < [28]> and <<((y position) - (item (ScanNo.) of [cony v])) < [32]> and <((y position) - (item (ScanNo.) of [cony v])) > [0]>>> then\n            switch costume to (hitbox v)\n            change y by (3)\n            change x by ((item (ScanNo.) of [condir v]) / (30))\n            if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n                change x by ((item (ScanNo.) of [condir v]) / (-30))\n                XFix\n            else\n                replace item (BlockNo.) of [itemx v] with ((item (BlockNo.) of [itemx v]) + (((item (ScanNo.) of [condir v]) / (30)) / (28)))\n            end\n            change y by (-3)\n            switch costume to (item (BlockNo.) of [itemtype v])\n            stop [this script v]\n        end\n    end\nend\n\ndefine XFix\nset [offset v] to [1]\nrepeat until <<not <<touching (blocks v)?> or <touching (uniqueblocks v)?>>> or <(Offset) > [32]>>\n    if <(Offset) > [0]> then\n        change [offset v] by (0.5)\n    else\n        change [offset v] by (-0.5)\n    end\n    set [offset v] to ((Offset) * (-1))\n    change x by (Offset)\nend\nif <(Offset) > [32]> then\n    set x to (((item (BlockNo.) of [itemx v]) * (28)) + (MapX))\nelse\n    replace item (BlockNo.) of [itemx v] with (((x position) - (MapX)) / (28))\nend\n\n@Text\n\ndefine ShowText\nset [letter v] to [1]\nrepeat (length of (TextToShow))\n    switch costume to (item # of (letter (Letter) of (TextToShow)) in [letters v])\n    create clone of (_myself_ v)\n    change x by (((size) / (200)) * (16))\n    change [letter v] by (1)\nend\n\nwhen flag clicked\nset rotation style [don't rotate v]\nset [making v] to [1]\nhide\nListOfLetters\nset [hidemenu v] to [1]\nwait (2.5) seconds\nwait (2.6) seconds\nset [hidemenu v] to [0]\n\ndefine ListOfLetters\ndelete all of [letters v]\nswitch costume to (  v)\nrepeat (43)\n    add (costume [name v]) to [letters v]\n    next costume\nend\n\nwhen I receive [showname v]\ngo to [front v] layer\nif <[1] = [1]> then\n    delete this clone\nend\ngo to x: (0) y: (0)\nset [texttoshow v] to (LevelName)\nchange x by ((((length of (TextToShow)) - (1)) / (2)) * (-16))\nShowText\ngo to x: (0) y: (-90)\nset [texttoshow v] to (join [By ] (LevelCreator))\nchange x by ((((length of (TextToShow)) - (1)) / (2)) * (-16))\nShowText\nstop [this script v]\n\nwhen I start as a clone\nif <(Pause) = [0]> then\n    go to [front v] layer\nend\nshow\nwait (0) seconds\ndelete this clone\n\nwhen I receive [playerupdated v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(StartLevel) = [1]> then\n    go to x: (-224) y: (164)\n    set [texttoshow v] to (join [\]] (Coins))\n    ShowText\nend\n\nwhen I receive [menutick v]\ngo to [back v] layer\nif <[1] = [1]> then\n    delete this clone\nend\nif <(HideMenu) = [0]> then\n    clear graphic effects\n    go to x: (0) y: (-75)\n    set [texttoshow v] to [Make Level]\n    change x by ((((length of (TextToShow)) - (1)) / (2)) * (-16))\n    if <<(round (((mouse y) + (-5)) / (40))) = [-2]> and <([abs v] of (mouse x) ) < [120]>> then\n        set [brightness v] effect to (25)\n    end\n    ShowText\n    clear graphic effects\n    go to x: (0) y: (-115)\n    set [texttoshow v] to [Load Level]\n    change x by ((((length of (TextToShow)) - (1)) / (2)) * (-16))\n    if <<(round (((mouse y) + (-5)) / (40))) = [-3]> and <([abs v] of (mouse x) ) < [120]>> then\n        set [brightness v] effect to (25)\n    end\n    ShowText\n    clear graphic effects\n    if <<<(round (((mouse y) + (-5)) / (40))) = [-2]> and <mouse down?>> and <([abs v] of (mouse x) ) < [120]>> then\n        set [making v] to [1]\n        broadcast (Open v)\n        set [menu v] to [0]\n        set [pause v] to [1]\n        wait (1) seconds\n        broadcast (ClearAll v) and wait\n        broadcast (ResetLevel v) and wait\n        add [600] to [blockx v]\n        add [-600] to [blocky v]\n        add [11] to [blockstype v]\n        add [-20] to [enemyxog v]\n        add [-9] to [enemyyog v]\n        add [11] to [enemytypeog v]\n        add [600] to [uniqueblocksx v]\n        add [-600] to [uniqueblocksy v]\n        add [11] to [uniqueblocksstate v]\n    end\n    stop [this script v]\nend\n\nwhen flag clicked\nwait (5.2) seconds\nforever\n    if <(Menu) = [1]> then\n        if <<<(round (((mouse y) + (-5)) / (40))) = [-3]> and <mouse down?>> and <([abs v] of (mouse x) ) < [120]>> then\n            hide\n            ask [Enter Save Code] and wait\n            if <(length of (answer)) < [8]> then\n                ask [Codes are found in the forum topic linked in the Instructions.] and wait\n            end\n            if <(length of (answer)) < [8]> then\n                ask [That's it. I'm gonna cut the music if you don't give me a code.] and wait\n            end\n            if <(length of (answer)) < [8]> then\n                stop all sounds\n                play sound [SMA4-PlayerDown v] until done\n                hide\n            else\n                set [making v] to [0]\n                set [savecode v] to (answer)\n                set [hidemenu v] to [1]\n                broadcast (LoadSaveCode v)\n                wait (1) seconds\n                set [menu v] to [0]\n                set [hidemenu v] to [0]\n            end\n        end\n    end\nend\n\n@Fireball\n\nwhen I receive [updateall v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(length of [firex v]) > [0]> then\n    FormFire\nend\n\ndefine FormFire\nshow\nset [fireno. v] to [0]\nswitch costume to (5 v)\nrepeat (length of [firex v])\n    change [fireno. v] by (1)\n    go to x: (((item (FireNo.) of [firex v]) * (28)) + (MapX)) y: (((item (FireNo.) of [firey v]) * (28)) + (MapY))\n    if <<<(x position) < [240]> and <(x position) > [-240]>> and <<(y position) < [180]> and <(y position) > [-180]>>> then\n        point in direction (item (FireNo.) of [firedir v])\n        create clone of (_myself_ v)\n    end\nend\nhide\n\nwhen I start as a clone\nif <(item (FireNo.) of [firetype v]) > [0]> then\n    move (6) steps\n    if <(item (FireNo.) of [firedir v]) > [0]> then\n        turn right (6) degrees\n        if <(direction) > [135]> then\n            point in direction (135)\n        end\n    else\n        turn left (6) degrees\n        if <(direction) < [-135]> then\n            point in direction (-135)\n        end\n    end\n    if <<not <<<(x position) < [240]> and <(x position) > [-240]>> and <<(y position) < [180]> and <(y position) > [-180]>>>> or <(item (FireNo.) of [firetype v]) > [5]>> then\n        wait (0) seconds\n        delete (FireNo.) of [firex v]\n        delete (FireNo.) of [firey v]\n        delete (FireNo.) of [firetype v]\n        delete (FireNo.) of [firedir v]\n        delete this clone\n    end\n    if <<touching (blocks v)?> or <touching (uniqueblocks v)?>> then\n        move (-4) steps\n        if <([abs v] of (direction) ) > [90]> then\n            point in direction ((180) - (direction))\n        else\n            point in direction ((direction) * (-1))\n        end\n        move (4) steps\n        replace item (FireNo.) of [firetype v] with ((item (FireNo.) of [firetype v]) + (1))\n    end\n    replace item (FireNo.) of [firex v] with (((x position) - (MapX)) / (28))\n    replace item (FireNo.) of [firey v] with (((y position) - (MapY)) / (28))\n    replace item (FireNo.) of [firedir v] with (direction)\nend\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset rotation style [left-right v]\nset size to (350) %\nhide\n\nwhen I receive [playerupdated v]\nif <(length of [firex v]) > [0]> then\n    if <touching (enemies v)?> then\n        set [firex v] to (x position)\n        set [firey v] to (y position)\n        broadcast (FireHit v)\n        wait (0) seconds\n        delete (FireNo.) of [firex v]\n        delete (FireNo.) of [firey v]\n        delete (FireNo.) of [firetype v]\n        delete (FireNo.) of [firedir v]\n        delete this clone\n    end\nend\n\nwhen I receive [costumeeverything v]\nif <(length of [firex v]) > [0]> then\n    switch costume to (([floor v] of (((GlobalCostumeNo.) * (3)) mod (4)) ) + (1))\nend\n\n@Title\n\nwhen flag clicked\nset rotation style [don't rotate v]\nhide\nset volume to (100) %\nset [brightness v] effect to (-100)\nwait (2.5) seconds\nstart sound [01 v]\nwait (0.85) seconds\nshow\ngo to x: (0) y: (500)\nset size to (350) %\nrepeat (10)\n    change [brightness v] effect by (10)\n    set y to ((((y position) - (60)) / (1.1)) + (60))\n    set x to ((x position) / (1.1))\nend\nrepeat (38)\n    set y to ((((y position) - (60)) / (1.1)) + (60))\n    set x to ((x position) / (1.1))\nend\nset y to (60)\nset [brightness v] effect to (0)\nset drag mode [draggable v]\nrepeat until <(Menu) = [0]>\n    set y to ((((y position) - (60)) / (1.1)) + (60))\n    set x to ((x position) / (1.1))\nend\nset drag mode [not draggable v]\nhide\nstop all sounds\n\nwhen I receive [showname v]\nhide\n\nwhen I receive [open v]\nhide\n\nwhen I receive [blacken v]\nhide\nstop all sounds\n\nwhen I receive [menutick v]\ngo to [back v] layer\nif <(HideMenu) = [0]> then\n    show\nend\n\n@Toolbar\n\nwhen flag clicked\nset rotation style [don't rotate v]\nset size to (300) %\nhide\n\nwhen I receive [menutick v]\ndelete this clone\n\nwhen I receive [tick v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(Pause) = [1]> then\n    clear graphic effects\n    show\n    MakeBar\n    hide\nend\nif <<(Pause) = [0]> and <(Making) = [1]>> then\n    show\n    set size to (225) %\n    switch costume to (stop v)\n    go to x: (0) y: (-168)\n    create clone of (_myself_ v)\n    hide\nend\n\ndefine MakeBar\nset size to (200) %\nswitch costume to (a v)\ngo to x: (-227) y: (167)\nrepeat (22)\n    create clone of (_myself_ v)\n    next costume\n    change x by (((227) * (2)) / (21))\nend\nset x to (-227)\nchange y by (-24)\nrepeat (23)\n    create clone of (_myself_ v)\n    next costume\n    change x by (((227) * (2)) / (22))\nend\nset size to (300) %\ngo to x: (228) y: (-168)\ncreate clone of (_myself_ v)\nnext costume\nset size to (300) %\ngo to x: (-228) y: (-168)\ncreate clone of (_myself_ v)\nnext costume\nset size to (300) %\ngo to x: (-198) y: (-168)\ncreate clone of (_myself_ v)\nnext costume\nset size to (300) %\ngo to x: (-168) y: (-168)\ncreate clone of (_myself_ v)\nnext costume\nset size to (300) %\ngo to x: (198) y: (-168)\ncreate clone of (_myself_ v)\nnext costume\nset size to (300) %\ngo to x: (168) y: (-168)\ncreate clone of (_myself_ v)\nnext costume\nset size to (300) %\ngo to x: (-138) y: (-168)\ncreate clone of (_myself_ v)\nif <(length of [pipex v]) > [0]> then\n    switch costume to (underground v)\n    set size to (300) %\n    go to x: (0) y: (-168)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nchange size by (-50)\nif <touching (mouse-pointer v)?> then\n    set [touchingmenus v] to [1]\nend\nchange size by (50)\nif <([costume # v] of [overlay v]) = [1]> then\n    go to [front v] layer\n    go [backward v] (1) layers\nend\nif <(costume [name v]) = (BlockSelected)> then\n    set size to (200) %\n    set [brightness v] effect to (20)\n    go [forward v] (4) layers\nelse\n    if <([costume # v] of [overlay v]) = [1]> then\n        if <<<(costume [name v]) = [Save]> or <<(costume [name v]) = [Underground]> or <(costume [name v]) = [Auto0]>>> or <<(costume [name v]) = [Back]> or <<(costume [name v]) = [Y]> or <<<(costume [name v]) = [Test]> or <(costume [name v]) = [Stop]>> or <<(costume [name v]) = [Restart]> or <(costume [name v]) = [Pen]>>>>>> then\n            go to [front v] layer\n            if <touching (mouse-pointer v)?> then\n                if <(costume [name v]) = [Y]> then\n                    say [Allow Y Scrolling]\n                end\n                if <(costume [name v]) = [Auto0]> then\n                    say [Auto Scrolling Speed]\n                end\n                if <(costume [name v]) = [Save]> then\n                    say [Save]\n                end\n                if <(costume [name v]) = [Back]> then\n                    say [Change Background]\n                end\n                if <(costume [name v]) = [Test]> then\n                    say [Test Level \(Space\)]\n                end\n                if <(costume [name v]) = [Restart]> then\n                    say [Play from the Start]\n                end\n                if <(costume [name v]) = [Pen]> then\n                    say [Pen / Eraser Switch \(E\)]\n                end\n                if <(costume [name v]) = [Stop]> then\n                    say [Exit Test \(Space\)]\n                end\n                if <(costume [name v]) = [Underground]> then\n                    say [Switch between Above and Underground, only accessible by Pipes.]\n                end\n                change size by (40)\n                set [brightness v] effect to (10)\n            end\n            if <(costume [name v]) = [Pen]> then\n                if <(EditMode) = [Place]> then\n                    switch costume to (pen v)\n                else\n                    switch costume to (erase v)\n                end\n            end\n            if <(costume [name v]) = [Y]> then\n                if <(AllowYMovement) = [1]> then\n                    switch costume to (y v)\n                else\n                    switch costume to (y2 v)\n                end\n            end\n            if <(costume [name v]) = [Auto0]> then\n                switch costume to (join [Auto] (AutoScroll))\n            end\n        else\n            if <touching (mouse-pointer v)?> then\n                go to [front v] layer\n                set [brightness v] effect to (10)\n                change size by (25)\n            end\n        end\n    end\nend\n\nwhen this sprite clicked\nset [touchingmenus v] to [1]\nif <(costume [name v]) = [Save]> then\n    broadcast (MakeSaveCode v) and wait\nelse\n    if <(costume [name v]) = [Back]> then\n        if <(Underground) = [1]> then\n            change [background2 v] by (1)\n            if <(Background2) > [9]> then\n                set [background2 v] to [1]\n            end\n        else\n            change [background v] by (1)\n            if <(Background) > [9]> then\n                set [background v] to [1]\n            end\n        end\n    else\n        if <(costume [name v]) = [Underground]> then\n            if <(Underground) = [1]> then\n                set [underground v] to [0]\n                set [mapy v] to [0]\n            else\n                set [underground v] to [1]\n                set [mapy v] to [360]\n            end\n            broadcast (Open v)\n        else\n            if <(letter (1) of (costume [name v])) = [Y]> then\n                if <(AllowYMovement) = [1]> then\n                    set [allowymovement v] to [0]\n                else\n                    set [allowymovement v] to [1]\n                end\n            else\n                if <(costume [name v]) = [Test]> then\n                    set [flycooldown v] to [-1]\n                    set [abcooldown v] to [-1]\n                    set [flying v] to [0]\n                    set [floating v] to [0]\n                    if <(Background) = [5]> then\n                        set [gravity v] to [-1.2]\n                    else\n                        set [gravity v] to [-3]\n                    end\n                    set [ptimer v] to [0]\n                    stop all sounds\n                    set [coins v] to [0]\n                    set [powerup v] to [None]\n                    delete all of [firedir v]\n                    delete all of [firetype v]\n                    delete all of [firex v]\n                    delete all of [firey v]\n                    set [holdingshell v] to [0]\n                    set [passedgoal v] to [0]\n                    delete all of [itemx v]\n                    delete all of [itemy v]\n                    delete all of [itemdir v]\n                    delete all of [itemtype v]\n                    delete all of [itemyvel v]\n                    broadcast (Convert v)\n                    set [pause v] to [0]\n                else\n                    if <(costume [name v]) = [Stop]> then\n                        set [flycooldown v] to [-1]\n                        set [abcooldown v] to [-1]\n                        set [flying v] to [0]\n                        set [floating v] to [0]\n                        if <(Background) = [5]> then\n                            set [gravity v] to [-1.2]\n                        else\n                            set [gravity v] to [-3]\n                        end\n                        set [ptimer v] to [0]\n                        stop all sounds\n                        set [coins v] to [0]\n                        set [powerup v] to [None]\n                        delete all of [firedir v]\n                        delete all of [firetype v]\n                        delete all of [firex v]\n                        delete all of [firey v]\n                        set [holdingshell v] to [0]\n                        set [passedgoal v] to [0]\n                        delete all of [itemx v]\n                        delete all of [itemy v]\n                        delete all of [itemdir v]\n                        delete all of [itemtype v]\n                        delete all of [itemyvel v]\n                        set [pause v] to [1]\n                    else\n                        if <(costume [name v]) = [Restart]> then\n                            broadcast (Restart v)\n                        else\n                            if <(costume [name v]) = [Pen]> then\n                                set [editmode v] to [Erase]\n                            else\n                                if <(costume [name v]) = [Erase]> then\n                                    set [editmode v] to [Place]\n                                else\n                                    if < (costume [name v]) contains [Auto]?> then\n                                        change [autoscroll v] by (1)\n                                        if <(AutoScroll) > [5]> then\n                                            set [autoscroll v] to [0]\n                                        end\n                                    else\n                                        set [blockselected v] to (costume [name v])\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [restart v]\nbroadcast (Open v)\nset [dead v] to [0]\nwait (0.8) seconds\nbroadcast (ResetLevel v) and wait\nbroadcast (Convert v) and wait\nset [pause v] to [0]\n\n@Thumbnail\n\nwhen flag clicked\nset rotation style [don't rotate v]\nswitch costume to (finale v)\nshow\ngo to [front v] layer\ngo to x: (0) y: (0)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\nset [ghost v] effect to (100)\n\n@Levels\n\nwhen flag clicked\nset size to (350) %\nhide\nset [clonedata v] to []\n\nwhen I receive [menutick v]\nif <[1] = [1]> then\n    delete this clone\nend\nhide\nif <(HideMenu) = [0]> then\n    show\n    go to x: (-190) y: (-113)\n    switch costume to (1 v)\n    set [clonedata v] to [-16:-6:ab:-16:-5:ab:-16:-4:ab:-16:-3:ab:-16:-2:aa:-15:-6:ae:-15:-5:ae:-15:-4:ae:-15:-3:ab:-15:-2:aa:-14:-3:ai:-14:-2:aa:-13:-3:ai:-13:-2:aa:-12:-3:ai:-12:-2:aa:-11:-6:af:-11:-5:af:-11:-4:af:-11:-3:ab:-11:-2:aa:-10:-6:ae:-10:-5:ae:-10:-4:ae:-10:-3:ab:-10:-2:aa:-9:-3:ai:-9:-2:aa:-9:-1:bg:-9:0:bf:-9:1:bd:-8:-3:ai:-8:-2:aa:-8:-1:bi:-8:0:bb:-8:1:ba:-7:-3:ai:-7:-2:ac:-7:-1:bh:-7:0:be:-7:1:bc:-6:-6:af:-6:-5:af:-6:-4:af:-6:-3:aa:-5:-6:ae:-5:-5:ae:-5:-4:ae:-5:-3:ab:-5:-2:ad:-4:-3:ai:-4:-2:aa:-3:-3:ai:-3:-2:aa:-2:-3:ai:-2:-2:aa:-1:-6:af:-1:-5:af:-1:-4:af:-1:-3:ab:-1:-2:aa:0:-6:ae:0:-5:ae:0:-4:ae:0:-3:ab:0:-2:aa:1:-3:ai:1:-2:aa:2:-3:ai:2:-2:aa:3:-3:ai:3:-2:aa:3:-1:bg:3:0:bf:3:1:bd:4:-6:af:4:-5:af:4:-4:af:4:-3:ab:4:-2:ac:4:-1:bi:4:0:bb:4:1:ba:5:-6:ae:5:-5:ae:5:-4:ab:5:-3:aa:5:-2:bg:5:-1:bb:5:0:bb:5:1:ba:6:-4:ai:6:-3:aa:6:-2:bi:6:-1:bb:6:0:bb:6:1:ba:7:-4:ai:7:-3:aa:7:-2:bh:7:-1:be:7:0:be:7:1:bc:8:-4:ai:8:-3:aa:9:-6:af:9:-5:af:9:-4:ab:9:-3:aa:10:-6:ae:10:-5:ae:10:-4:ab:10:-3:aa:11:-4:ai:11:-3:aa:12:-4:ai:12:-3:aa:12:-2:cf:12:-1:cf:12:0:cd:13:-4:ai:13:-3:aa:13:-2:ce:13:-1:ce:13:0:cc:14:-6:af:14:-5:af:14:-4:ab:14:-3:aa:15:-6:ae:15:-5:ae:15:-4:ab:15:-3:aa:16:-4:ai:16:-3:aa:17:-4:ai:17:-3:aa:18:-4:ai:18:-3:aa:19:-6:af:19:-5:af:19:-4:ab:19:-3:aa:20:-6:ae:20:-5:ae:20:-4:ab:20:-3:aa:21:-4:ai:21:-3:aa:22:-4:ai:22:-3:aa:22:-2:bg:22:-1:bf:22:0:bf:22:1:bd:23:-4:ai:23:-3:aa:23:-2:bi:23:-1:bb:23:0:bb:23:1:ba:24:-6:af:24:-5:af:24:-4:ab:24:-3:aa:24:-2:bh:24:-1:be:24:0:be:24:1:bc:25:-6:ae:25:-5:ae:25:-4:ae:25:-3:ab:25:-2:ad:26:-3:ai:26:-2:aa:27:-3:ai:27:-2:aa:28:-3:ai:28:-2:aa:29:-6:af:29:-5:af:29:-4:af:29:-3:ab:29:-2:aa:30:-6:ab:30:-5:ab:30:-4:ae:30:-3:ae:30:-2:ac:31:-6:ab:31:-5:aa:31:-2:ba:32:-6:ab:32:-5:aa:33:-6:ab:33:-5:aa:34:-6:ab:34:-5:aa:34:-3:ag:34:-2:ad:35:-6:ae:35:-5:ac:35:-3:ai:35:-2:aa:36:-3:ai:36:-2:aa:37:-3:ai:37:-2:aa:38:-3:ah:38:-2:ac:39:-6:cf:39:-5:cf:39:-4:cf:39:-3:cf:39:-2:cd:40:-6:ce:40:-5:ce:40:-4:ce:40:-3:ce:40:-2:cc:41:-3:ag:41:-2:ad:42:-3:ai:42:-2:aa:43:-3:ai:43:-2:aa:43:-1:bg:43:0:bf:43:1:bd:44:-6:af:44:-5:af:44:-4:af:44:-3:ab:44:-2:aa:44:-1:bi:44:0:bb:44:1:ba:45:-6:ae:45:-5:ae:45:-4:ae:45:-3:ab:45:-2:aa:45:-1:bi:45:0:bb:45:1:ba:46:-3:ai:46:-2:aa:46:-1:bh:46:0:be:46:1:bc:47:-3:ai:47:-2:aa:48:-3:ah:48:-2:ac:49:-6:cf:49:-5:cf:49:-4:cf:49:-3:cf:49:-2:cd:50:-6:ce:50:-5:ce:50:-4:ce:50:-3:ce:50:-2:cc:51:-3:ag:51:-2:ad:52:-3:ai:52:-2:aa:53:-3:ai:53:-2:aa:54:-6:af:54:-5:af:54:-4:af:54:-3:ab:54:-2:ac:55:-6:ae:55:-5:ae:55:-4:ab:55:-3:aa:56:-4:ai:56:-3:aa:57:-4:ai:57:-3:aa:57:-2:bg:57:-1:bf:57:0:bf:57:1:bd:58:-4:ai:58:-3:aa:58:-2:bi:58:-1:bb:58:0:bb:58:1:ba:59:-6:af:59:-5:af:59:-4:ab:59:-3:aa:59:-2:bi:59:-1:bb:59:0:bb:59:1:ba:60:-6:ae:60:-5:ae:60:-4:ab:60:-3:aa:60:-2:bi:60:-1:bb:60:0:bb:60:1:ba:61:-4:ai:61:-3:aa:61:-2:bh:61:-1:be:61:0:be:61:1:bc:62:-4:ai:62:-3:aa:63:-4:ai:63:-3:aa:64:-6:af:64:-5:af:64:-4:ab:64:-3:aa:65:-6:ae:65:-5:ae:65:-4:ab:65:-3:aa:66:-4:ai:66:-3:aa:67:-4:ai:67:-3:aa:68:-4:ai:68:-3:aa:69:-6:af:69:-5:af:69:-4:ab:69:-3:aa:70:-6:ae:70:-5:ae:70:-4:ab:70:-3:aa:71:-4:ai:71:-3:aa:72:-4:ai:72:-3:aa:73:-4:ai:73:-3:aa:74:-6:af:74:-5:af:74:-4:ab:74:-3:aa:75:-6:ae:75:-5:ab:75:-4:ab:75:-3:aa:76:-5:ai:76:-4:ab:76:-3:aa:77:-5:ai:77:-4:ab:77:-3:aa:78:-5:ai:78:-4:ab:78:-3:aa:79:-6:af:79:-5:ab:79:-4:ab:79:-3:ac:80:-6:ab:80:-5:ab:80:-4:aa:81:-6:ab:81:-5:ab:81:-4:aa:82:-6:ab:82:-5:ab:82:-4:ac:83:-6:ab:83:-5:aa:84:-6:ab:84:-5:ac:85:-6:aa:86:-6:aa:87:-6:ac:600:-600:11:B-9:4:1:C:-6:-2:5:0:5:5:1:M:17:0:6:0:17:1:6:0:17:2:6:0:18:0:6:0:18:1:6:0:18:2:6:0:19:0:6:0:19:1:6:0:19:2:6:0:20:0:6:0:20:1:6:0:20:2:6:0:31:-4:1:F:31:-3:5:0:31:-1:3:0:34:-4:3:0:35:-4:3:0:58:4:6:0:58:5:6:0:59:4:6:0:59:5:1:F:60:4:6:0:60:5:6:0:80:-3:5:0:85:-5:5:0:600:-600:11::U-5:-1:3:9:-2:1:13:1:4:19:-2:2:23:2:3:28:-1:1:30:-1:1:31:0:3:40:-1:4:46:2:3:50:-1:4:61:2:1:67:-2:1:-20:-9:11:E01BenjaminWins11:Level 1:]\n    create clone of (_myself_ v)\n    go to x: (-190) y: (-138)\n    switch costume to (2 v)\n    set [clonedata v] to [-16:-6:ab:-16:-5:ab:-16:-4:ab:-16:-3:aa:-15:-6:ab:-15:-5:ab:-15:-4:ab:-15:-3:aa:-14:-6:ab:-14:-5:ab:-14:-4:ab:-14:-3:aa:-13:-6:ab:-13:-5:ab:-13:-4:ab:-13:-3:aa:-12:-6:ab:-12:-5:ab:-12:-4:ab:-12:-3:aa:-11:-6:ae:-11:-5:ae:-11:-4:ae:-11:-3:ac:-5:-6:cf:-5:-5:cf:-5:-4:cf:-5:-3:cf:-5:-2:cd:-4:-6:ce:-4:-5:ce:-4:-4:ce:-4:-3:ce:-4:-2:cc:2:-6:cf:2:-5:cf:2:-4:cf:2:-3:cf:2:-2:cd:3:-6:ce:3:-5:ce:3:-4:ce:3:-3:ce:3:-2:cc:9:-6:cf:9:-5:cf:9:-4:cf:9:-3:cf:9:-2:cf:9:-1:cd:10:-6:ce:10:-5:ce:10:-4:ce:10:-3:ce:10:-2:ce:10:-1:cc:11:-6:af:11:-5:af:11:-4:ad:12:-6:ab:12:-5:ab:12:-4:aa:13:-6:ab:13:-5:ab:13:-4:aa:14:-6:ab:14:-5:ab:14:-4:ac:15:-6:ab:15:-5:aa:16:-6:ab:16:-5:ab:16:-4:ad:17:-6:ab:17:-5:ab:17:-4:ab:17:-3:ad:18:-6:ab:18:-5:ab:18:-4:ab:18:-3:ab:18:-2:ad:19:-6:ab:19:-5:ab:19:-4:ab:19:-3:ab:19:-2:ab:19:-1:ad:20:-6:ab:20:-5:ab:20:-4:ab:20:-3:ae:20:-2:ae:20:-1:ac:21:-6:ab:21:-5:ab:21:-4:aa:22:-6:ab:22:-5:ab:22:-4:aa:23:-6:ab:23:-5:ab:23:-4:aa:24:-6:ab:24:-5:ab:24:-4:aa:25:-6:ab:25:-5:ab:25:-4:aa:26:-6:ab:26:-5:ab:26:-4:aa:27:-6:ab:27:-5:ab:27:-4:aa:28:-6:ab:28:-5:ab:28:-4:aa:29:-6:ab:29:-5:ab:29:-4:ac:30:-6:ab:30:-5:aa:31:-6:ab:31:-5:aa:32:-6:ab:32:-5:aa:33:-6:ab:33:-5:aa:34:-6:ab:34:-5:ab:34:-4:ad:35:-6:ab:35:-5:ab:35:-4:aa:36:-6:ab:36:-5:ab:36:-4:aa:37:-6:ab:37:-5:ab:37:-4:aa:38:-6:ab:38:-5:ab:38:-4:aa:39:-6:ab:39:-5:ab:39:-4:aa:40:-6:ab:40:-5:ab:40:-4:aa:41:-6:ab:41:-5:ab:41:-4:aa:42:-6:ab:42:-5:ab:42:-4:aa:43:-6:ab:43:-5:ab:43:-4:aa:44:-6:ab:44:-5:ab:44:-4:ab:44:-3:ad:45:-6:ab:45:-5:ab:45:-4:ab:45:-3:aa:46:-6:ab:46:-5:ab:46:-4:ab:46:-3:aa:46:-2:bg:46:-1:bf:46:0:bd:47:-6:ab:47:-5:ab:47:-4:ab:47:-3:aa:47:-2:bi:47:-1:bb:47:0:ba:48:-6:ab:48:-5:ab:48:-4:ab:48:-3:aa:48:-2:bi:48:-1:bb:48:0:ba:49:-6:ab:49:-5:ab:49:-4:ab:49:-3:aa:49:-2:bi:49:-1:bb:49:0:bb:49:1:bf:49:2:bf:49:3:bd:50:-6:ab:50:-5:ab:50:-4:ab:50:-3:aa:50:-2:bi:50:-1:bb:50:0:bb:50:1:bb:50:2:bb:50:3:ba:51:-6:ab:51:-5:ab:51:-4:ab:51:-3:aa:51:-2:bh:51:-1:be:51:0:be:51:1:be:51:2:be:51:3:bc:52:-6:ab:52:-5:ab:52:-4:ab:52:-3:aa:53:-6:ab:53:-5:ab:53:-4:ab:53:-3:aa:54:-6:ab:54:-5:ab:54:-4:ab:54:-3:aa:55:-6:ab:55:-5:ab:55:-4:ab:55:-3:ac:56:-6:ab:56:-5:ab:56:-4:aa:57:-6:ab:57:-5:ab:57:-4:aa:58:-6:ab:58:-5:ab:58:-4:aa:59:-6:ab:59:-5:ab:59:-4:aa:60:-6:ab:60:-5:ab:60:-4:aa:61:-6:ab:61:-5:ab:61:-4:aa:62:-6:ab:62:-5:ab:62:-4:aa:63:-6:ab:63:-5:ab:63:-4:aa:64:-6:ab:64:-5:ab:64:-4:aa:65:-6:ab:65:-5:ab:65:-4:aa:66:-6:ab:66:-5:ab:66:-4:aa:67:-6:ab:67:-5:ab:67:-4:ac:68:-6:ab:68:-5:aa:69:-6:ab:69:-5:ab:69:-4:ad:70:-6:ab:70:-5:ab:70:-4:aa:71:-6:ab:71:-5:ab:71:-4:aa:72:-6:ab:72:-5:ab:72:-4:aa:73:-6:ae:73:-5:ae:73:-4:ac:600:-600:11:B-8:-4:5:0:-5:-1:6:0:-5:0:6:0:-5:1:6:0:-4:-1:6:0:-4:0:6:0:-4:1:6:0:-1:-4:5:0:2:-1:6:0:2:0:6:0:2:1:6:0:3:-1:6:0:3:0:6:0:3:1:6:0:6:-4:5:0:11:-3:6:0:12:-3:6:0:13:-3:6:0:14:-3:6:0:15:-4:5:0:15:-3:6:0:16:-3:5:0:16:-2:6:0:17:-2:5:0:17:-1:6:0:18:-1:5:0:18:0:6:0:19:0:5:0:19:1:6:0:20:0:6:0:20:1:5:0:20:2:6:0:25:0:1:M:31:-4:6:0:31:-3:6:0:31:-2:5:0:32:-4:6:0:32:-3:6:0:32:-2:5:0:35:-3:6:0:35:-2:6:0:35:-1:3:0:36:-3:6:0:36:-2:6:0:36:-1:3:0:36:3:1:C:37:-3:3:0:37:-2:3:0:37:-1:5:0:38:-3:3:0:38:-2:3:0:39:-3:3:0:44:1:1:F:44:2:5:0:50:7:1:C:54:1:1:C:66:-3:6:0:67:-3:6:0:68:-4:5:0:68:-3:6:0:68:-2:6:0:68:-1:6:0:68:0:6:0:69:1:6:0:69:2:6:0:70:1:6:0:70:2:6:0:71:-3:6:0:71:-2:6:0:71:-1:6:0:71:0:6:0:72:-3:6:0:73:-3:6:0:600:-600:11::U10:0:4:22:-3:1:28:-3:1:32:2:4:42:-3:1:42:-2:1:42:-1:1:42:0:1:50:4:3:56:-3:1:-20:-9:11:E01BenjaminWins11:Level 2:]\n    create clone of (_myself_ v)\n    go to x: (-190) y: (-163)\n    switch costume to (3 v)\n    set [clonedata v] to [-16:-4:ai:-16:-3:ab:-16:-2:aa:-15:-4:ai:-15:-3:ab:-15:-2:aa:-14:-4:ai:-14:-3:ab:-14:-2:aa:-13:-4:ai:-13:-3:ab:-13:-2:aa:-12:-4:ai:-12:-3:ab:-12:-2:aa:-11:-4:ai:-11:-3:ab:-11:-2:aa:-10:-4:ai:-10:-3:ab:-10:-2:aa:-9:-4:ai:-9:-3:ab:-9:-2:aa:-9:-1:cf:-9:0:cf:-9:1:cd:-8:-4:ai:-8:-3:ab:-8:-2:aa:-8:-1:ce:-8:0:ce:-8:1:cc:-7:-4:ai:-7:-3:ab:-7:-2:aa:-6:-4:ai:-6:-3:ab:-6:-2:aa:-6:-1:d:-6:0:d:-6:1:d:-6:2:d:-6:3:d:-6:4:d:-6:5:d:-6:6:d:-6:7:d:-6:8:d:-6:9:d:-6:10:d:-5:-4:ai:-5:-3:ab:-5:-2:aa:-5:5:mc:-5:10:d:-4:-4:ai:-4:-3:ab:-4:-2:aa:-4:-1:cf:-4:0:cf:-4:1:cd:-4:5:ma:-4:6:qa:-4:7:q:-4:8:q:-4:9:q:-4:10:d:-3:-4:ai:-3:-3:ab:-3:-2:aa:-3:-1:ce:-3:0:ce:-3:1:cc:-3:5:md:-3:10:d:-2:-4:ai:-2:-3:ab:-2:-2:aa:-2:10:d:-1:-4:ai:-1:-3:ab:-1:-2:aa:-1:10:d:0:-4:ai:0:-3:ab:0:-2:aa:0:-1:cf:0:0:cf:0:1:cd:0:5:mc:0:10:d:1:-4:ai:1:-3:ab:1:-2:aa:1:-1:ce:1:0:ce:1:1:cc:1:5:ma:1:6:qa:1:7:q:1:8:q:1:9:q:1:10:d:2:-4:ai:2:-3:ab:2:-2:aa:2:5:md:2:10:d:3:-4:ai:3:-3:ab:3:-2:aa:3:-1:d:3:0:d:3:1:d:3:2:d:3:3:d:3:4:d:3:5:d:3:6:d:3:7:d:3:8:d:3:9:d:3:10:d:4:-4:ai:4:-3:ab:4:-2:aa:4:5:mc:4:10:d:5:-4:ai:5:-3:ab:5:-2:aa:5:2:cg:5:3:cf:5:4:cf:5:5:ma:5:6:qa:5:7:q:5:8:q:5:9:q:5:10:d:6:-4:ai:6:-3:ab:6:-2:aa:6:2:ch:6:3:ce:6:4:ce:6:5:md:6:10:d:7:-16:d:7:-15:d:7:-14:d:7:-13:d:7:-12:d:7:-11:d:7:-10:d:7:-9:d:7:-8:d:7:-7:d:7:-4:ai:7:-3:ab:7:-2:aa:7:10:d:8:-16:rg:8:-15:rd:8:-4:ai:8:-3:ab:8:-2:aa:8:10:d:9:-16:ri:9:-15:ra:9:-10:cg:9:-9:cf:9:-8:cf:9:-7:cf:9:-4:ai:9:-3:ab:9:-2:aa:9:-1:cf:9:0:cf:9:1:cd:9:5:mc:9:10:d:10:-16:ri:10:-15:ra:10:-10:ch:10:-9:ce:10:-8:ce:10:-7:ce:10:-4:ai:10:-3:ab:10:-2:aa:10:-1:ce:10:0:ce:10:1:cc:10:5:ma:10:6:qa:10:7:q:10:8:q:10:9:q:10:10:d:11:-16:ri:11:-15:ra:11:-4:ai:11:-3:ab:11:-2:aa:11:5:md:11:10:d:12:-16:ri:12:-15:ra:12:-4:ai:12:-3:ab:12:-2:aa:12:-1:d:12:0:d:12:1:d:12:2:d:12:3:d:12:4:d:12:5:d:12:6:d:12:7:d:12:8:d:12:9:d:12:10:d:13:-16:ri:13:-15:ra:13:-4:ai:13:-3:ab:13:-2:aa:13:5:d:13:10:d:14:-16:ri:14:-15:ra:14:-14:cf:14:-13:cf:14:-12:cd:14:-4:ai:14:-3:ab:14:-2:aa:14:-1:cf:14:0:cf:14:1:cd:14:5:d:14:10:d:15:-16:ri:15:-15:ra:15:-14:ce:15:-13:ce:15:-12:cc:15:-4:ai:15:-3:ab:15:-2:aa:15:-1:ce:15:0:ce:15:1:cc:15:5:d:15:10:d:16:-16:rh:16:-15:rc:16:-4:ai:16:-3:ab:16:-2:aa:16:5:d:17:-16:d:17:-15:d:17:-14:d:17:-13:d:17:-12:d:17:-11:d:17:-10:d:17:-9:d:17:-8:d:17:-7:d:17:-4:ai:17:-3:ab:17:-2:aa:17:5:d:18:-4:ai:18:-3:ab:18:-2:aa:18:5:d:19:-4:ai:19:-3:ab:19:-2:aa:19:5:d:20:-4:ai:20:-3:ab:20:-2:ac:20:1:d:20:2:d:20:3:d:20:4:d:20:5:d:21:-4:ai:21:-3:aa:22:-4:ai:22:-3:aa:23:-4:ai:23:-3:aa:24:-4:ai:24:-3:ab:24:-2:ad:25:-4:ai:25:-3:ab:25:-2:aa:26:-4:ai:26:-3:ab:26:-2:aa:27:-4:ai:27:-3:ab:27:-2:aa:28:-4:ai:28:-3:ab:28:-2:aa:29:-4:ai:29:-3:ab:29:-2:aa:30:-4:ai:30:-3:ab:30:-2:aa:31:-4:ai:31:-3:ab:31:-2:aa:32:-4:ai:32:-3:ab:32:-2:aa:33:-4:ai:33:-3:ab:33:-2:aa:34:-4:ai:34:-3:ab:34:-2:aa:35:-4:ai:35:-3:ab:35:-2:ac:36:-4:ai:36:-3:aa:37:-4:ai:37:-3:ab:37:-2:ad:38:-4:ai:38:-3:ab:38:-2:aa:39:-4:ai:39:-3:ab:39:-2:aa:40:-4:ai:40:-3:ab:40:-2:aa:41:-4:ai:41:-3:ab:41:-2:aa:42:-4:ai:42:-3:ab:42:-2:aa:43:-4:ai:43:-3:ab:43:-2:aa:44:-4:ah:44:-3:ae:44:-2:ac:600:-600:11:B-8:2:15:0:-3:2:15:0:1:2:15:0:6:1:15:0:10:-11:15:0:10:2:15:0:15:-11:15:0:15:2:15:0:21:-2:5:0:21:1:1:S:22:-2:11:0:23:-2:11:0:26:3:12:0:27:-1:14:0:28:-1:13:0:29:-1:14:0:30:-1:13:0:30:3:12:0:31:-1:14:0:32:-1:13:0:33:-1:14:0:34:-1:13:0:34:3:12:0:35:-1:14:0:36:-2:5:0:600:-600:11::U26:4:7:30:4:7:34:4:7:-20:-9:11:EC-8:2:-3:2:1:2:6:1:10:2:10:-11:15:-11:15:2:X01BenjaminWins11.How Pipes Work.27]\n    create clone of (_myself_ v)\n    set [clonedata v] to [0]\n    go to x: (-190) y: (-93)\n    switch costume to (premade v)\nend\n\nwhen I receive [tick v]\nhide\ndelete this clone\n\nwhen this sprite clicked\nif <(length of (CloneData)) > [5]> then\n    set [making v] to [0]\n    set [savecode v] to (CloneData)\n    set [hidemenu v] to [1]\n    broadcast (LoadSaveCode v)\n    broadcast (ClickedLevel v)\nend\n\nwhen I receive [clickedlevel v]\nif <(length of (CloneData)) < [5]> then\n    wait (1) seconds\n    set [menu v] to [0]\n    set [hidemenu v] to [0]\nend\n\nwhen I receive [open v]\nhide\ndelete this clone\n\nwhen I start as a clone\nif <touching (mouse-pointer v)?> then\n    set [brightness v] effect to (10)\n    change size by (25)\nend\n\n@Water\n\nwhen flag clicked\nswitch costume to (1 v)\nset [ghost v] effect to (50)\ngo to x: (0) y: (0)\nset size to (100) %\nhide\n\nwhen I receive [menutick v]\nhide\n\nwhen I receive [tick v]\nif <<<(Background) = [5]> and <(Underground) = [0]>> or <<(Background2) = [5]> and <(Underground) = [1]>>> then\n    show\nelse\n    hide\nend\n\n
This is an original amogus platformer! :)\n- Arrow keys to move\n- avoid lava\n- customize\n- #EnjoyThisProject!\n- ❤️ and ⭐ is free, and it helps out a ton!\n- Tell your highscores in the comments below!